基于Sphinx的语音识别系统搭建

Sphinx中文训练教程

  1. 准备工作
    (1)软件安装 (2)文本语料及录音文件的准备 (3)环境:windows10 X64操作系统
  2. 注意事项
    (1)语料文件中的语句应该尽量选择领域相关的,在覆盖领域内名词的前提下,覆盖尽可能多的通用词汇(比如新闻联播)。
    (2)语料文件必须使用UltraEdit进行编辑,在编辑后,使用 UTF-8保存,指定文件中的中文使用utf8编码。
    (3)录音文件(设定:采样率(16000Hz)、通道(单声道)、比特率(16Kbps)
  3. 软件安装(安装软件之后附上链接)
    (1) 点击安装ActivePerl.msi和ActivePython-2.7.2.5.msi(可默认安装路径,也可自己指定)
    (2)解压如图所示的四个文件到 D:\sphinxtrain 目录下
    这里写图片描述
  4. 准备文本语料
    (1)这里需要使用我们提供的脚本对input.txt进行处理,得到所需的文件()。
    (2)将D:\sphinxtrain\cnprepare.py剪切到D:\sphinxtrain\sphinxtrain-1.0.8-win32\python目录下。
    (3)将D:\sphinxtrain\jieba.rar解压到D:\sphinxtrain\sphinxtrain-1.0.8-win32\python目录,确保jieba.rar中的文件dict.txt解压后的目录是D:\sphinxtrain\sphinxtrain-1.0.8-win32\python\jieba\dict.txt
    (4) 在DOS(win+R)环境下,运行如下命令:python D:\sphinxtrain\sphinxtrain-1.0.8-win32\python\cnprepare.py D:\sphinxtrain\userDic_utf8.dic D:\sphinxtrain\bergtrain\etc\input.txt D:\sphinxtrain\bergtrain\etc\bergtrain.txt D:\sphinxtrain\bergtrain\etc\bergtrain_train.transcription D:\sphinxtrain\bergtrain\etc\bergtrain.dic D:\sphinxtrain\bergtrain\etc\bergtrain_train.fileids
    cnprepare.py命令的格式是cnprepare
  5. 接拷贝用于训练的两个文件,命令行如下:
    copy D:\sphinxtrain\bergtrain\etc\bergtrain_train.transcription D:\sphinxtrain\bergtrain\etc\bergtrain_test.transcription
    copy D:\sphinxtrain\bergtrain\etc\bergtrain_train.fileids D:\sphinxtrain\bergtrain\etc\bergtrain_test.fileids
  6. 训练
    (1)生成训练目录
    进入 D:\sphinxtrain\bergtrain
    命令:python D:\sphinxtrain\sphinxtrain-1.0.8-win32\scripts\sphinxtrain -t bergtrain setup
    (2)语料预处理
    D:\sphinxtrain\cmuclmtk-0.7-win32\text2wfreq < bergtrain.txt > bergtrain.wfreq
    D:\sphinxtrain\cmuclmtk-0.7-win32\wfreq2vocab < bergtrain.wfreq > bergtrain.vocab
    D:\sphinxtrain\cmuclmtk-0.7-win32\text2idngram -vocab bergtrain.vocab -idngram bergtrain.idngram < bergtrain.txt
    D:\sphinxtrain\cmuclmtk-0.7-win32\idngram2lm -idngram bergtrain.idngram -vocab bergtrain.vocab -arpa bergtrain.arpa
    D:\sphinxtrain\sphinxbase-0.8-win32\bin\Release\sphinx_lm_convert -i bergtrain.arpa -o bergtrain.lm.DMP
    rem 生成.phone文件
    D:\sphinxtrain\sphinxtrain-1.0.8-win32\scripts\prepare\make_phoneset.pl bergtrain.dic bergtrain.filler > bergtrain.phone
    (3)训练与测试
    命令:python D:\sphinxtrain\sphinxtrain-1.0.8-win32\scripts\sphinxtrain run
    命令:python D:\sphinxtrain\sphinxtrain-1.0.8-win32\scripts\sphinxtrain -s decode run
  7. 测试
    md D:\sphinxtrain\bergtrain\test\bergtrain.cd_cont_200
    copy /Y D:\sphinxtrain\bergtrain\model_parameters\bergtrain.cd_cont_200*.* D:\sphinxtrain\bergtrain\test\bergtrain.cd_cont_200
    copy /Y D:\sphinxtrain\bergtrain\etc\bergtrain.dic D:\sphinxtrain\bergtrain\test\bergtrain.dic
    copy /Y D:\sphinxtrain\bergtrain\etc\bergtrain.lm.DMP D:\sphinxtrain\bergtrain\test\bergtrain.lm.DMP
    进入:D:\sphinxtrain\bergtrain\test(播放1_1.wav文件 识别后将结果放入到d盘res.txt中。准确路大概在90%左右)
    pocketsphinx_continuous -infile 1_1.wav -hmm bergtrain.cd_cont_200 -lm bergtrain.lm.DMP -dict bergtrain.dic >>d:/res.txt
本文档介绍Sphinx4在Windows下的中文训练过程及注意事项,与本文档配套的是我自己的训练实例bergtrain和用到的软件。 本文档编写日期 2013-04-23 1、为什么要训练? sphinx4目前的版本中仅提供了英文等语音识别库。中文的库是PTM或semi类型的,在java版sphinx中无法使用。 2、Sphinx的训练指哪些内容? 在Sphinx中有语言模型、声学模型等概念,如果你不想了解这些,请参考以下内容: a1、中文每个字的标准发音已经有一个较为全面的文件进行了标注 这个文件就是zh_broadcastnews_utf8.dic(下称这类文件为发音字典),在sphinx网站上可以下载,我们也包含了它。 下面是该文件的片断,它用类似拼音的方式标注了每个字或词的发音。 昌 ch ang 昌北 ch ang b ei 昌必 ch ang b i 昌都 ch ang d u 昌赫 ch ang h e a2、需要告诉sphinx我们经常使用的字、词是哪些,它们出现的频率如何 由于开放式语音识别尚难实现,所以sphinx实际上只能较好的处理相对小的语言集合。 因此,针对特定的领域,告诉sphinx该领域的词汇和各词出现的频率将极大提高识别率。 a3、需要告诉sphinx每个字、词的真正读音 发音字典告诉sphinx每个字的标准读音,但面对的说话人往往不会以标准读音来朗读。 因此sphinx需要学习说话人的“口音”。 如果训练时的读者发音比较标准,则sphinx能“举一反三”,识别其他不那么标准的读者的语音。 推荐的做法是训练一些典型的口音:标准男、女声,童音,最后再考虑特定用户的口音。 3、如何准备训练内容所需的原料? 需要准备两大内容:1)文本语料文件,2)语料录音文件。 文本语料文件给出2.a2中需要的内容,在bergtrain的etc文件下的berginput.txt文件就是一个预料文件。 它以行为单位,给出了150个中文句子。 语料录音文件是根据文本语料文件,朗读它的每行/句话,保存到每一个语音文件即可。 语料文件中的语句应该尽量选择领域相关的,在覆盖领域内名词的前提下,覆盖尽可能多的通用词汇。 4、训练环境及注意事项 本文的训练软硬件如下: 硬件:T60P笔记本,机器自带录音设备;操作系统为Win7 32位。 软件:Sphinx cmuclmtk-0.7-win32.zip pocketsphinx-0.8-win32.zip sphinxbase-0.8-win32.zip sphinxtrain-1.0.8-win32.zip sphinx4-1.0beta6-bin.zip,用于编写java版的识别软件所需的库 脚本执行软件 ActivePerl-5.16.3.1603-MSWin32-x86-296746.msi ActivePython-2.7.2.5-win32-x86.msi 录音和处理软件 audacity-win-2.0.3rc1.zip,可进行录音和声音文件处理(如降噪),免费软件 FairStars.zip,可进行批量录音(V3.5绿色版) 文本编辑软件UltraEdit,UltraEdit-32.rar绿色版 注意: 文件格式 语料文件必须使用UltraEdit进行编辑, 在编辑后,使用 文件-转换-ASCII转UTF-8(UNICODE编辑),指定文件中的中文使用utf8编码。 在保存前,设置格式如下: 换行符:UNIX终束符 - LF 指定文件中的回车/换行符为编码0A的换行符 格式:UTF-8 - 无BOM 每个文件的末尾必须有一个回车! 这个回车将在保存时被替换为编码0A的换行符,训练脚本需要这个符号来确认文件的结束。 录音文件 如果你不希望去编辑训练中的配置文件,则在使用FairStars录音时作如下设定: 进入菜单和对话框 选项-显示录音选项-编码-WMA, 设定:采样率(16000Hz)、通道(单声道)、比特率(16Kbps) 5、训练步骤 下面逐步从零开始进行训练 5.1 软件环境的安装 将本文档所在的文件夹解压或拷贝到d:\,即本文档路径是d:\sphinxtrain\Sphinx中文训练教程.txt 1)点击安装ActivePerl-5.16.3.1603-MSWin32-x86-296746.msi和ActivePython-2.7.2.5-win32-x86.msi; 2)解压Sphinx中除sphinx4-1.0beta6-bin.zip外的压缩文件到d:\sphinxtrain下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值