Sinovoice-2016-2-18
目录
数据
- 16K 灵云数据
10000小时实际语料的标注目标,已立项400小时的标注; 语料从1000小时中,通过ASR打分,取出中间的400小时;
任务优先 覆盖优先
领域和口音或信道的覆盖性!!! Darkknowledge方法 标注:听不懂的掠过;
- 粤语标注了一个测试集,增量9小时,CER:54%;30h,50%
60h trained. no tag text to lm, CER 45% discard english text;
- 维语
已完成120小时;last train 50h; 目标200小时; 16K标注,灵云,180小时,收集验收;
大模型
1)16K10000小时的跑一个DNN训练,加深加宽:7层2400x10000 rectifier 保留英文
MPE的训练: Condition: LM:1e-5/1e-9
test_8000ju test_10000ju 6000H 600*4_800 xEnt : 15.16 28.03 6000H 600*4_800 mpe : 12.09 23.51 6776H 1200*4_10000 mpe : 9.48 18.07 10000H 600*4_800 xEnt(迭代21轮) : 15.91 10000H 600*4_800 xEnt(迭代完成) : 15.56 26.71 10000H 2048*7_12000 xEnt(迭代1.7轮) : 10.12 10000H 2048*7_12000 xEnt(迭代2.6轮) : 9.73 10000H 2048*7_12000 xEnt(迭代3.8轮) : 9.51 10000H 2048*7_12000 xEnt(迭代5.1轮) : 9.53 10000H 2048*7_12000 xEnt(迭代6.0轮) : 9.41 17.75 10000H 2048*7_12000 xEnt(700.mdl ) : 9.35 17.71 10000H 2048*7_12000 xEnt(800.mdl ) : 9.27 17.57 10000H 2048*7_12000 xEnt(900.mdl ) : 9.20 17.51 10000H 2048*7_12000 xEnt(965.mdl ) : 9.20 17.60 10000H 2048*7_12000 200H mpe(2.mdl ) : 8.80 15.99 10000H 2048*7_12000 200H mpe(8.mdl ) : 8.71 15.91 10000H 2048*7_12000 1000H mpe(13.mdl) : 8.60 15.84
10000H 2048*7_12000 1000H mpe(13.mdl) : 8.60 15.84 10000H 2048*7_12000 1000H mpe(17.mdl) : 8.46 15.76 10000H 2048*7_12000 1000H mpe(26.mdl) : 8.47 15.71 10000H 2048*7_12000 1000H mpe(35.mdl) : 8.43 15.84 10000H 2048*7_12000 1000H mpe(42.mdl) : 8.40 15.87 10000H 2048*7_12000 1000H mpe(56.mdl) : 8.49 15.96
10000H 2048*7_6565 chain (2700.mdl) : 8.90 17.51
10000小时MPE,开跑,但是提升空间不大。
2)8K 领域模型,领域通用:设备 7层TDNN2048x10000,含有英文 信道、口音
华为V3信道压缩:4000小时,GMM
结果如下: | | BJYD | JS2h |ShaanXi2h| ShanXi2h|huaweiFuCe|UnKnown2h| | nnet1 1400h MPE | 22.49 | 19.81 | 19.63 | 21.90 | 16.72 | 22.00 | | nnet1 4200h xEnt | 26.89 | 19.90 | 25.43 | 26.90 | 16.15 | 24.13 | | nnet1 4200h MPE | 24.53 | 18.39 | 22.82 | 23.97 | 14.22 | 21.35 |
8k:
huaweiFuCe nnet3_xEnt 7*2048+8393 : 14.61 chain 7*2048+6558 200.mdl: 17.83 chain 400.mdl: 17.09 chain 600.mdl: 18.13 chain 800.mdl: 19.05
在A01辽宁移动测试集上的实验结果:
dnn模型(mpe增量训练后): 22.39
华为信道模型: 20.26
用辽宁移动数据在华为信道模型上做增量(6 mdl): 18.16
用辽宁移动数据在华为信道模型上做增量(16 mdl): 17.85
平安提高1个点;客户测试集提升3个点; 分析一下客户错误的原因?在LM上提升。是否有奇怪的噪声。
丢字问题:远端被识别为噪音。 sil_scale可以捞一些回来。 postscale乘法?指数? 找一个TestCase,怎么都调不回来的。(灵云输入法前面丢字) 16K的少些,8K的比较多;
嵌入式
* 10000h-chain 5*400+800 has been training. * Dark-knowledge training scripts ready
16k 嵌入式模型最新结果如下:
| nnet1_xEnt | nnet1_MPE | nnet3_xEnt | nnet3_MPE | chain |
test_8000ju | 16.12 | 11.31 | 14.89 | 12.77 | 11.74 | test_10000ju | 28.83 | 23.82 | 27.43 | 25.05 | 22.35 |
LM = 1e-5, 1e-9 biglm, beam = 13
| nnet1_xEnt | nnet1_MPE | nnet3_xEnt | nnet3_MPE | chain |
test_8000ju | 16.12 | 11.31 | 14.89 | 12.77 | 11.10 | test_10000ju | 28.83 | 23.82 | 27.43 | 25.05 | 21.33 |
前4个模型结构是4*600+800,chain模型结构是5*400+800。 与nnet1_MPE相比,chain模型在8000ju上稍差,但在10000句上已经明显超过了。 目前chain模型训练还没结束,10000h数据大约过了2遍,不到总进度的1/3,但估计再往后的提升不会太显著了。
MPE没有做完;
TDNN+CTC 10000小时16K 8K5000小时Chain 16K10000小时Chain
TDDN -> Context -> 类CTC
如果比较如下结果,似乎chain的结果还好,毕竟output少了一半。 10000H 2048*7_12000 xEnt(965.mdl ) : 9.20 17.60 10000H 2048*7_6565 chain (2700.mdl) : 8.90 17.51 然而,因为chain的objective中是有区分性信息的,导致这一对比不是很合理。需要等MPE出来结果再看。 Chain 包含如下结构: single state + MMI 我们现在的triphone模型包含如下结构: 3 states + MPE 这意味着: (1)Chain output 可以比较少 (2)Chain+MPE可能提高不很明显 (3) Chain缺少模型状态的精细结构,这些精细结构在大数据大模型时可能是有用的。 所以这里面有个权衡,对于上下文相关建模而言,在输出一定的前提下,是牺牲state来换取更多上下文建模(Chain),还是牺牲一些上下文来描述精细结构 (triphone)。从现在的结果看,似乎是在小模型时,前者重要,而当输出可以很大时,再加入phone context可能已经不重要了,这时state的精细结构就有意义。 这似乎可以得到结论,当我们有足够的数据和足够的计算资源的话,用triphone还是有意义。 之所以出现上面的问题,在于梦原用的Chain是基于TDNN,即用长的context来得到state condition,或者说,NN需要经过一系列网络从context里infer出state。这一方法看起来并不能特别好地描述信号的动态特性,因为对信号的发展过程缺少记忆性。这一记忆性在HMM里信靠状态转移矩阵进行累积,在LSTM里利用recurrent connection进行累积。 这是为什么TDNN离开state,效果不明显的原因。 如果要想较大结构里描述精细结构,或者TDNN+ HMM state (triphone系统),或者LSTM + CD phone。后者用LSTM来代替HMM,即end-to-end training。传统CTC用的是这一结构。 所以在我看来, LSTM + CD phone应该是最理想的结构,LSTM取代HMM的离散状态成为连续状态。如果能用Chain的objective,则应该足够好了。这就是LSTM的Chain model. 可以总结如下: (1) 训练中在模型输出一定时,优先描述context,再描述state。在模型较大时,state必须描述。 (2) state描述可以用HMM,也可以用RNN(LSTM),前者简单,后者精确。 (3) 当用LSTM描述状态时,网络输出不必考虑state。 (4) 训练时需要考虑alignment不确定性问题,CTC解决此问题。 (5) 训练时需要考虑训练目标和评价指标(WER)匹配,MMI/MPE解决此问题。 (6) 可以在训练时考虑CTC+MPE/MMI。可以逐步加(一般方法),可能会有问题,因为MPE又遇到不确定性,可以同时加。小汤说Chain是后者,我需要再确认。 (7) TDNN增加上下的context,有利于更多信息加入,部分解决state或context dependent的问题,但和LSTM/MPE/CTC等并不冲突,也没什么直接关系。 (8) TDNN + CD state 在大数据下看起来是最容易训练的方法,即是我们的state-of-the-art系统。 建议如下: (1) 现在Chain model在大数据上遇到的瓶颈看起来是用的TDNN前端。应该改用LSTM前端以描述状态。 (2) LSTM对特征context不足,应结合TDNN (3) LSTM不必特别多层,也不必所有gate都用上,只要能描述状态变化即可。 (4) 倾向构造这样的结构,底层是TDNN,高层是LSTM,LSTM只有一层即可,同时尽可能简化。 LSTM+TDNN+Chain大模型中加入状态的信息; 一周 Lattice-Alignment (5) TDNN + state + Chain objective或许会比TDNN+state后接MPE有所提高。或者,一个类似的CTC+MPE objective function.
新松机器人:
接口
TagModel
- 加重path或词边:组合词,lm中加重; 晓明、小韩
- 新词加重及添加
勤威项目
- 发布了一个模型:数据62H台湾POI,在6776MPE3上增量;词表量250多万,识别不好;
省市路,分词,句式:tag的方法来做。 晓明 需要测试集,数据中心14日标完。
语音自适应
针对个人的 能提高2~3%(基数CER约10%) 客户端提取ivector,传给服务器;
End-To-End/CTC
Kaldi-nnet1, Kaldi-CTC, Kaldi-Chain and Eesen on WSJ. If GPU Parallel, then on grid-12 and grid-13. mpe-2 means method that considering Transition instead of CctcTransition when mpe, while mpe-1 means method that considering CctcTransition.
model %WER (test_eval92) %WER (after MPE)
kaldi/nnet1/dnn_2048_4(cd-dnn-hmm) 4.18
kaldi/ctc/decode_bd_tgpr_plm0.15 8.01 kaldi/ctc/decode_bd_tgpr_plm0.15, mpe-2, iter1 7.78 kaldi/ctc/decode_bd_tgpr_plm0.15, mpe-2, iter2 __7.73__
Test CTC-mpe (considering CctcTransition) on aurora4.
model %WER learning rate
kaldi/ctc/decode_bd_tgpr_plm0.15 13.86 kaldi/ctc/decode_bd_tgpr_plm0.15_mpe_iter1 12.70 0.0002 kaldi/ctc/decode_bd_tgpr_plm0.15_mpe_iter2 12.28 kaldi/ctc/decode_bd_tgpr_plm0.15_mpe_iter3 12.43 kaldi/ctc/decode_bd_tgpr_plm0.15_mpe_iter4 12.34
CTC MPE上已成功。 原理上:CTC+MMI = Chain
粤语16K
声学模型
已训练完成 130H
语言模型
下载语料,训练模型,PPL:1000+ 16K模型:字错误率21.78
粤语8K
69小时的(CER28%) FreeTalk 90小时的(CER27.5%)质检 190小时,73%
英文单词还没有加(英文的标音:用粤语的音素标); 粤英文的模型,需要训练; 句子长,有两句,将CER拉下来了,分析这两句。
维语8K
声学模型
已训练35小时;借用梦原的模型;用16K的lm Model,WER:30%左右;
语言模型
和新疆大学调试:公司Word;实验室 35H标注文本数据已提供实验室处理; toolkit做完了,维语句子转成monphone串;
发布了一个维语模型,需要识别标注语料,发布的是word模型: model_35h_20150828 CER:0.419693683925
导出64小时,声学和语言模型进行优化。
声纹识别
- 数字串模型训练 正在采集数字串语音数据,预期本月内完成;
- 聚类分类算法 基于Affinity距离的算法研究
- D-Vector
- 短语音的识别:
数字模型:单独训练,ivector和plda需要用数字需要训练。 之前录得语料,独立人只有100人; 16K的找到一个1200人的数据,从中挑选; 8K的采购;但是音量小,是否会有影响?
真实场景下的测试集?考勤机里面的数据整理出来。 考勤机Adaptation训练。
8个Phone和1个Tele的录音模型已训练完; 跨信道,阈值不一致; 需要解决跨信道的识别问题;
手机和固定电话,需要分开测试; ubm256,需要加大; 组织一下数据,跑D-vector实验;
测试集,真实场景的
考勤系统,mic指定; 定制背景模型;
加入情绪,场景的分析,分类的分析;
将测试数据加入训练,看是否有提高?
使用条件的问题:
音量的影响? 背景噪音:如大厅中,人声噪杂的影响?
信道适应? 端点检测 Mic信道 背景噪音
端点检测,信噪比计算; 发音方式:坐着、站着
PLDA adaptation