Deepspeech v2版本deepspeech.pytorch中文语音识别笔记

代码地址https://github.com/SeanNaren/deepspeech.pytorch

中文语音数据库采用thchs30

(1)首先提取data文件下的trn翻译文本,生成包含空格在内的生字表并保存为json格式lexicon.json,是汉字字典,不是拼音,我在这一步卡了很久,后来发现data_loader只能读取单个字符,所以中文识别的词汇表是翻译文本的汉字生字表

(2)生成train.csv,dev.csv,test.csv路径文件,包含wav位置和对应的trn翻译文本位置

(3)修改train.py中的这三个参数,分别是训练集,验证集和生字表

'--train-manifest'
'--val-manifest'
'--labels-path'

(4)data_loader.py读取翻译到的翻译文本是以空格对词进行区别,在实际训练中效果很差,loss值一直降不下来。参考deepspeech v1将翻译文本改为以字加空格的格式

在165行读取翻译文本的时加入两行代码,得到单字+空格+单字.......格式翻译文本

transcript=transcript.replace(' ','')
transcript=''.join([f + ' ' for f in transcript])

(5)进行训练,在30轮迭代后,验证集的wer降至5%左右,cer降至2.5%,在测试集的wer为50%,cer为25%

对thchs30数据集进行分析,发现翻译文本只有1000句,其中训练集包含750句,测试集包含250句,验证集使用的句子与训练集重合,这也解释了为什么在验证集识别结果极好,在测试机集效果极差的原因。数据集样本不够多,训练时出现过拟合,这也是测试集结果不佳的原因。

下面将改用aishell数据集对deepspeech v2进行进一步性能测试。

thchs30生字表和路径生成文件代码

链接:https://pan.baidu.com/s/1GUnsLbVweDrnZnmYdssMYg 
提取码:y38d 

猜你喜欢

转载自blog.csdn.net/hw200855/article/details/89639304