最近专门空出来很多时间,准备把一直犹豫不决要不要写的智能理论写出来,同时准备用语音识别做一些实验,所以有了这个项目。
语音识别实验比可选的工具有kaldi,wav2letter,espnet等,使用比较广泛工具是kaldi,但是对于前端语音处理的部分,我觉得kaldi所使用的HMM-GMM方式相当的不直观,Kaldi所使用的nnet神经网络也不是目前主流的深度学习工具。而kaldi创建者Daniel Povey要推出的与pytorch接口良好的kaldi新的版本也还没有出来。但是kaldi的WFST解码系统在处理文本模型的表现相当的出色,我想要的工具是pytorch处理语音前端,再加上WFST处理文本模型。
我在网上找了一下,找到了一个项目比较满足我的需求,它就是github上的eesen(https://github.com/isi-vista/eesen),eesen和传统kaldi处理方式对比如下:
传统的kaldi处理方式:
• Hidden Markov models (HMMs)
• Gaussian mixture models (GMMs)
• Decision trees and phonetic questions
• Dictionary, if characters are used as the modeling units
• ...
eesen的处理方式:
• Acoustic Model -- Bi-directional RNNs with LSTM units.
• Training -- Connectionist temporal classification (CTC) as the training objective.
• Decoding -- A
用pytorch+CTC+WFST实现汉语语音识别
本文介绍了作者使用pytorch进行语音前端处理,结合CTC和WFST技术进行汉语语音识别的实验过程。针对eesen项目的老化问题,作者参考了其他相关项目并进行了调试,最终在Ubuntu 16.04环境下,使用CUDA 9.2和pytorch 1.2成功编译。实验语料为thchs30,通过before_run.sh和run-ctc.sh脚本进行训练,训练模型可用于后续的识别任务。
摘要由CSDN通过智能技术生成