Torch+DeepSpeech2的语音识别注意事项

来源:互联网 发布:苏州岩倍美工是真是假 编辑:程序博客网 时间:2024/05/21 22:48

上半年做了一些有关语音识别的工作,整理一下实践过程中容易被忽视的小tricks,以免忘记。本文是在Torch上使用了Baidu的DeepSpeech 2语音识别模型进行的实验。


1. 根据语音数据的格式(如***.wav,单声道等属性),在“MakeLMDB.lua”中将参数进行修改,(将sph格式改为wav,声道数设为1等)


2. 由于自己准备的数据的采样频率sampleRate与预设的16kHz可能不同,需要注意在“predict.lua文件中修改该参数,

cmd:option('-sampleRate', 16000, 'Rate of audio (default 16khz)')

由于采样频率的改变,RNN输入的数据size也有了改变,因此需要在"DeepSpeechModel.lua"文件中修改rnnInputsize的大小,

local rnnInputsize = 32 * 41 -- based on the above convolutions and 16khz audio.

如果不知道需要修改成多大的size,可以加入以下语句得到需要的size值

require 'dpnn' conv:add(nn.PrintSize("Conv Size"))


3. 根据输出的单词库的size(词或字母的个数),在"DeepSpeechModel.lua"中改全连接层的输出个数


4. 因为实现的是中文语音识别,要汉字文本在lunix不乱码需要设置UTF-8编码格式


# 5. 在一次实验后重新实验,需要删除生成的"sort_ids_test.t7“,"sort_ids_train.t7"文件(没有仔细研究,似乎是保存了上一次实验的lmdb数据,如果不删除则会使用原来的data),后来github上的代码修复了这一bug。


原创粉丝点击