“Sinovoice-2016-2-25”版本间的差异

来自cslt Wiki
跳转至: 导航搜索
(以“==数据== *16K 灵云数据 10000小时实际语料的标注目标,已立项400小时的标注; 语料从1000小时中,通过ASR打分,取出中间的400...”为内容创建页面)
 
 
(相同用户的一个中间修订版本未显示)
第86行: 第86行:
  
 
丢字问题:远端被识别为噪音。 sil_scale可以捞一些回来。
 
丢字问题:远端被识别为噪音。 sil_scale可以捞一些回来。
postscale乘法?指数?
 
 
找一个TestCase,怎么都调不回来的。(灵云输入法前面丢字)
 
找一个TestCase,怎么都调不回来的。(灵云输入法前面丢字)
 
16K的少些,8K的比较多;
 
16K的少些,8K的比较多;
 +
产品测试和Kaldi测试,小韩跑下
 +
 +
postscale乘法?指数?  softmax,则在之前乘,否则后乘,指数的scale,调节范围窄,需要试下,调整范围大些
 +
里面可能有问题,需要BadCase后,查一下。
 +
 +
平安100小时客户模型:
 +
<pre>
 +
new 100小时Inc,只替换声学模型 100小时Inc,替换声学语言模型
 +
Agent User Entire pingan_kf_1h pingan_kh_1h Agent User Entire pingan_kf_1h pingan_kh_1h Agent User Entire pingan_kf_1h pingan_kh_1h
 +
0.1069 0.3518 0.1495 0.11249 0.3629 0.1442 0.0641 0.3307 0.11861 0.3427 0.1523 0.0664 0.324
 +
 +
0.1095 0.3636 0.1403 0.0728 0.3756 0.11618 0.3577 0.1445 0.07501 0.3623 0.12014 0.357 0.1476 0.0779 0.35871
 +
</pre>
 +
PPL 150
 +
Test语料,加入LM,分析确认是AM还是LM上加重?
 +
口音、流畅度
 +
Kaldi解码地址和结果一起发
  
 
===嵌入式===
 
===嵌入式===
 
   * 10000h-chain 5*400+800 has been training.
 
   * 10000h-chain 5*400+800 has been training.
 
   * Dark-knowledge training scripts ready
 
   * 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
 
  
 
<pre>
 
<pre>
如果比较如下结果,似乎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前端以描述状态。
 
(1) 现在Chain model在大数据上遇到的瓶颈看起来是用的TDNN前端。应该改用LSTM前端以描述状态。
 
(2) LSTM对特征context不足,应结合TDNN
 
(2) LSTM对特征context不足,应结合TDNN
 
(3) LSTM不必特别多层,也不必所有gate都用上,只要能描述状态变化即可。
 
(3) LSTM不必特别多层,也不必所有gate都用上,只要能描述状态变化即可。
 
(4) 倾向构造这样的结构,底层是TDNN,高层是LSTM,LSTM只有一层即可,同时尽可能简化。
 
(4) 倾向构造这样的结构,底层是TDNN,高层是LSTM,LSTM只有一层即可,同时尽可能简化。
     LSTM+TDNN+Chain大模型中加入状态的信息; 一周
+
     LSTM+TDNN+Chain大模型中加入状态的信息;  
 
     Lattice-Alignment
 
     Lattice-Alignment
 +
   
 +
    LSTM + TDNN + Chain,跑了一个变差,小的100做的,大网络小数据;
 +
    Chain,说活人+ASR,Chain+MPE的模型   
  
 
(5) TDNN + state + Chain objective或许会比TDNN+state后接MPE有所提高。或者,一个类似的CTC+MPE objective function.  
 
(5) TDNN + state + Chain objective或许会比TDNN+state后接MPE有所提高。或者,一个类似的CTC+MPE objective function.  
第171行: 第130行:
 
*加重path或词边:组合词,lm中加重;                            晓明、小韩
 
*加重path或词边:组合词,lm中加重;                            晓明、小韩
 
:* 新词加重及添加
 
:* 新词加重及添加
 
+
加重新词,新建Path了,新词列表,1Gram,大于1的没有写。
 
+
Path加重;
===勤威项目===
+
老词构造新词,修改fst,再转hclg;
*发布了一个模型:数据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==
 
==粤语16K==
第227行: 第150行:
 
粤英文的模型,需要训练;
 
粤英文的模型,需要训练;
 
句子长,有两句,将CER拉下来了,分析这两句。
 
句子长,有两句,将CER拉下来了,分析这两句。
 
+
中英混,提高了2个点;对英文自身的提升有多少?统计一下。
 
                    
 
                    
 
==维语8K==
 
==维语8K==
第255行: 第178行:
 
真实场景下的测试集?考勤机里面的数据整理出来。
 
真实场景下的测试集?考勤机里面的数据整理出来。
 
考勤机Adaptation训练。
 
考勤机Adaptation训练。
 +
重训练和Adaptation;
 +
 +
[新疆伽师]
 +
Mic模型;26日;PLDA
 +
需要10人的数据;
  
 
8个Phone和1个Tele的录音模型已训练完;
 
8个Phone和1个Tele的录音模型已训练完;

2016年2月25日 (四) 06:45的最后版本

数据

  • 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可以捞一些回来。 找一个TestCase,怎么都调不回来的。(灵云输入法前面丢字) 16K的少些,8K的比较多; 产品测试和Kaldi测试,小韩跑下

postscale乘法?指数? softmax,则在之前乘,否则后乘,指数的scale,调节范围窄,需要试下,调整范围大些 里面可能有问题,需要BadCase后,查一下。

平安100小时客户模型:

new	100小时Inc,只替换声学模型	100小时Inc,替换声学语言模型
Agent	User	Entire	pingan_kf_1h	pingan_kh_1h	Agent	User	Entire	pingan_kf_1h	pingan_kh_1h	Agent	User	Entire	pingan_kf_1h	pingan_kh_1h
0.1069	0.3518	0.1495			0.11249	0.3629	0.1442	0.0641	0.3307	0.11861	0.3427	0.1523	0.0664	0.324

0.1095	0.3636	0.1403	0.0728	0.3756	0.11618	0.3577	0.1445	0.07501	0.3623	0.12014	0.357	0.1476	0.0779	0.35871

PPL 150 Test语料,加入LM,分析确认是AM还是LM上加重? 口音、流畅度 Kaldi解码地址和结果一起发

嵌入式

 * 10000h-chain 5*400+800 has been training.
 * Dark-knowledge training scripts ready
(1) 现在Chain model在大数据上遇到的瓶颈看起来是用的TDNN前端。应该改用LSTM前端以描述状态。
(2) LSTM对特征context不足,应结合TDNN
(3) LSTM不必特别多层,也不必所有gate都用上,只要能描述状态变化即可。
(4) 倾向构造这样的结构,底层是TDNN,高层是LSTM,LSTM只有一层即可,同时尽可能简化。
    LSTM+TDNN+Chain大模型中加入状态的信息; 
    Lattice-Alignment
    
    LSTM + TDNN + Chain,跑了一个变差,小的100做的,大网络小数据;
    Chain,说活人+ASR,Chain+MPE的模型    

(5) TDNN + state + Chain objective或许会比TDNN+state后接MPE有所提高。或者,一个类似的CTC+MPE objective function. 

新松机器人:

 接口

TagModel

  • 加重path或词边:组合词,lm中加重; 晓明、小韩
  • 新词加重及添加

加重新词,新建Path了,新词列表,1Gram,大于1的没有写。 Path加重; 老词构造新词,修改fst,再转hclg;

粤语16K

声学模型

已训练完成 130H

语言模型

下载语料,训练模型,PPL:1000+ 16K模型:字错误率21.78

粤语8K

69小时的(CER28%) FreeTalk 90小时的(CER27.5%)质检 190小时,73%

英文单词还没有加(英文的标音:用粤语的音素标); 粤英文的模型,需要训练; 句子长,有两句,将CER拉下来了,分析这两句。 中英混,提高了2个点;对英文自身的提升有多少?统计一下。

维语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训练。 重训练和Adaptation;

[新疆伽师] Mic模型;26日;PLDA 需要10人的数据;

8个Phone和1个Tele的录音模型已训练完; 跨信道,阈值不一致; 需要解决跨信道的识别问题;

手机和固定电话,需要分开测试; ubm256,需要加大; 组织一下数据,跑D-vector实验;

测试集,真实场景的

考勤系统,mic指定; 定制背景模型;

加入情绪,场景的分析,分类的分析;

将测试数据加入训练,看是否有提高?

使用条件的问题:

 音量的影响?
 背景噪音:如大厅中,人声噪杂的影响?

信道适应? 端点检测 Mic信道 背景噪音

端点检测,信噪比计算; 发音方式:坐着、站着

PLDA adaptation