实例介绍
【实例简介】
本文档介绍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下
【实例截图】
【核心代码】
16359647490842699662.rar
└── sphinxtrain
├── bergtrain
│ ├── etc
│ │ ├── berginput.txt
│ │ └── bergtrain.filler
│ ├── test
│ │ ├── bergtrain.cd_cont_200
│ │ │ ├── feat.params
│ │ │ ├── mdef
│ │ │ ├── means
│ │ │ ├── mixture_weights
│ │ │ ├── noisedict
│ │ │ ├── transition_matrices
│ │ │ └── variances
│ │ ├── bergtrain.dic
│ │ ├── bergtrain.lm.DMP
│ │ ├── pocketsphinx_continuous.exe
│ │ ├── pocketsphinx.dll
│ │ └── sphinxbase.dll
│ └── wav
│ └── speaker_1
│ ├── 1_100.wav
│ ├── 1_101.wav
│ ├── 1_102.wav
│ ├── 1_103.wav
│ ├── 1_104.wav
│ ├── 1_105.wav
│ ├── 1_106.wav
│ ├── 1_107.wav
│ ├── 1_108.wav
│ ├── 1_109.wav
│ ├── 1_10.wav
│ ├── 1_110.wav
│ ├── 1_111.wav
│ ├── 1_112.wav
│ ├── 1_113.wav
│ ├── 1_114.wav
│ ├── 1_115.wav
│ ├── 1_116.wav
│ ├── 1_117.wav
│ ├── 1_118.wav
│ ├── 1_119.wav
│ ├── 1_11.wav
│ ├── 1_120.wav
│ ├── 1_121.wav
│ ├── 1_122.wav
│ ├── 1_123.wav
│ ├── 1_124.wav
│ ├── 1_125.wav
│ ├── 1_126.wav
│ ├── 1_127.wav
│ ├── 1_128.wav
│ ├── 1_129.wav
│ ├── 1_12.wav
│ ├── 1_130.wav
│ ├── 1_131.wav
│ ├── 1_132.wav
│ ├── 1_133.wav
│ ├── 1_134.wav
│ ├── 1_135.wav
│ ├── 1_136.wav
│ ├── 1_137.wav
│ ├── 1_138.wav
│ ├── 1_139.wav
│ ├── 1_13.wav
│ ├── 1_140.wav
│ ├── 1_141.wav
│ ├── 1_142.wav
│ ├── 1_143.wav
│ ├── 1_144.wav
│ ├── 1_145.wav
│ ├── 1_146.wav
│ ├── 1_147.wav
│ ├── 1_148.wav
│ ├── 1_149.wav
│ ├── 1_14.wav
│ ├── 1_150.wav
│ ├── 1_15.wav
│ ├── 1_16.wav
│ ├── 1_17.wav
│ ├── 1_18.wav
│ ├── 1_19.wav
│ ├── 1_1.wav
│ ├── 1_20.wav
│ ├── 1_21.wav
│ ├── 1_22.wav
│ ├── 1_23.wav
│ ├── 1_24.wav
│ ├── 1_25.wav
│ ├── 1_26.wav
│ ├── 1_27.wav
│ ├── 1_28.wav
│ ├── 1_29.wav
│ ├── 1_2.wav
│ ├── 1_30.wav
│ ├── 1_31.wav
│ ├── 1_32.wav
│ ├── 1_33.wav
│ ├── 1_34.wav
│ ├── 1_35.wav
│ ├── 1_36.wav
│ ├── 1_37.wav
│ ├── 1_38.wav
│ ├── 1_39.wav
│ ├── 1_3.wav
│ ├── 1_40.wav
│ ├── 1_41.wav
│ ├── 1_42.wav
│ ├── 1_43.wav
│ ├── 1_44.wav
│ ├── 1_45.wav
│ ├── 1_46.wav
│ ├── 1_47.wav
│ ├── 1_48.wav
│ ├── 1_49.wav
│ ├── 1_4.wav
│ ├── 1_50.wav
│ ├── 1_51.wav
│ ├── 1_52.wav
│ ├── 1_53.wav
│ ├── 1_54.wav
│ ├── 1_55.wav
│ ├── 1_56.wav
│ ├── 1_57.wav
│ ├── 1_58.wav
│ ├── 1_59.wav
│ ├── 1_5.wav
│ ├── 1_60.wav
│ ├── 1_61.wav
│ ├── 1_62.wav
│ ├── 1_63.wav
│ ├── 1_64.wav
│ ├── 1_65.wav
│ ├── 1_66.wav
│ ├── 1_67.wav
│ ├── 1_68.wav
│ ├── 1_69.wav
│ ├── 1_6.wav
│ ├── 1_70.wav
│ ├── 1_71.wav
│ ├── 1_72.wav
│ ├── 1_73.wav
│ ├── 1_74.wav
│ ├── 1_75.wav
│ ├── 1_76.wav
│ ├── 1_77.wav
│ ├── 1_78.wav
│ ├── 1_79.wav
│ ├── 1_7.wav
│ ├── 1_80.wav
│ ├── 1_81.wav
│ ├── 1_82.wav
│ ├── 1_83.wav
│ ├── 1_84.wav
│ ├── 1_85.wav
│ ├── 1_86.wav
│ ├── 1_87.wav
│ ├── 1_88.wav
│ ├── 1_89.wav
│ ├── 1_8.wav
│ ├── 1_90.wav
│ ├── 1_91.wav
│ ├── 1_92.wav
│ ├── 1_93.wav
│ ├── 1_94.wav
│ ├── 1_95.wav
│ ├── 1_96.wav
│ ├── 1_97.wav
│ ├── 1_98.wav
│ ├── 1_99.wav
│ └── 1_9.wav
├── cnprepare.py
├── jieba.rar
├── Sphinx中文训练教程.txt
└── zh_broadcastnews_utf8.dic
7 directories, 168 files
本文档介绍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下
【实例截图】
【核心代码】
16359647490842699662.rar
└── sphinxtrain
├── bergtrain
│ ├── etc
│ │ ├── berginput.txt
│ │ └── bergtrain.filler
│ ├── test
│ │ ├── bergtrain.cd_cont_200
│ │ │ ├── feat.params
│ │ │ ├── mdef
│ │ │ ├── means
│ │ │ ├── mixture_weights
│ │ │ ├── noisedict
│ │ │ ├── transition_matrices
│ │ │ └── variances
│ │ ├── bergtrain.dic
│ │ ├── bergtrain.lm.DMP
│ │ ├── pocketsphinx_continuous.exe
│ │ ├── pocketsphinx.dll
│ │ └── sphinxbase.dll
│ └── wav
│ └── speaker_1
│ ├── 1_100.wav
│ ├── 1_101.wav
│ ├── 1_102.wav
│ ├── 1_103.wav
│ ├── 1_104.wav
│ ├── 1_105.wav
│ ├── 1_106.wav
│ ├── 1_107.wav
│ ├── 1_108.wav
│ ├── 1_109.wav
│ ├── 1_10.wav
│ ├── 1_110.wav
│ ├── 1_111.wav
│ ├── 1_112.wav
│ ├── 1_113.wav
│ ├── 1_114.wav
│ ├── 1_115.wav
│ ├── 1_116.wav
│ ├── 1_117.wav
│ ├── 1_118.wav
│ ├── 1_119.wav
│ ├── 1_11.wav
│ ├── 1_120.wav
│ ├── 1_121.wav
│ ├── 1_122.wav
│ ├── 1_123.wav
│ ├── 1_124.wav
│ ├── 1_125.wav
│ ├── 1_126.wav
│ ├── 1_127.wav
│ ├── 1_128.wav
│ ├── 1_129.wav
│ ├── 1_12.wav
│ ├── 1_130.wav
│ ├── 1_131.wav
│ ├── 1_132.wav
│ ├── 1_133.wav
│ ├── 1_134.wav
│ ├── 1_135.wav
│ ├── 1_136.wav
│ ├── 1_137.wav
│ ├── 1_138.wav
│ ├── 1_139.wav
│ ├── 1_13.wav
│ ├── 1_140.wav
│ ├── 1_141.wav
│ ├── 1_142.wav
│ ├── 1_143.wav
│ ├── 1_144.wav
│ ├── 1_145.wav
│ ├── 1_146.wav
│ ├── 1_147.wav
│ ├── 1_148.wav
│ ├── 1_149.wav
│ ├── 1_14.wav
│ ├── 1_150.wav
│ ├── 1_15.wav
│ ├── 1_16.wav
│ ├── 1_17.wav
│ ├── 1_18.wav
│ ├── 1_19.wav
│ ├── 1_1.wav
│ ├── 1_20.wav
│ ├── 1_21.wav
│ ├── 1_22.wav
│ ├── 1_23.wav
│ ├── 1_24.wav
│ ├── 1_25.wav
│ ├── 1_26.wav
│ ├── 1_27.wav
│ ├── 1_28.wav
│ ├── 1_29.wav
│ ├── 1_2.wav
│ ├── 1_30.wav
│ ├── 1_31.wav
│ ├── 1_32.wav
│ ├── 1_33.wav
│ ├── 1_34.wav
│ ├── 1_35.wav
│ ├── 1_36.wav
│ ├── 1_37.wav
│ ├── 1_38.wav
│ ├── 1_39.wav
│ ├── 1_3.wav
│ ├── 1_40.wav
│ ├── 1_41.wav
│ ├── 1_42.wav
│ ├── 1_43.wav
│ ├── 1_44.wav
│ ├── 1_45.wav
│ ├── 1_46.wav
│ ├── 1_47.wav
│ ├── 1_48.wav
│ ├── 1_49.wav
│ ├── 1_4.wav
│ ├── 1_50.wav
│ ├── 1_51.wav
│ ├── 1_52.wav
│ ├── 1_53.wav
│ ├── 1_54.wav
│ ├── 1_55.wav
│ ├── 1_56.wav
│ ├── 1_57.wav
│ ├── 1_58.wav
│ ├── 1_59.wav
│ ├── 1_5.wav
│ ├── 1_60.wav
│ ├── 1_61.wav
│ ├── 1_62.wav
│ ├── 1_63.wav
│ ├── 1_64.wav
│ ├── 1_65.wav
│ ├── 1_66.wav
│ ├── 1_67.wav
│ ├── 1_68.wav
│ ├── 1_69.wav
│ ├── 1_6.wav
│ ├── 1_70.wav
│ ├── 1_71.wav
│ ├── 1_72.wav
│ ├── 1_73.wav
│ ├── 1_74.wav
│ ├── 1_75.wav
│ ├── 1_76.wav
│ ├── 1_77.wav
│ ├── 1_78.wav
│ ├── 1_79.wav
│ ├── 1_7.wav
│ ├── 1_80.wav
│ ├── 1_81.wav
│ ├── 1_82.wav
│ ├── 1_83.wav
│ ├── 1_84.wav
│ ├── 1_85.wav
│ ├── 1_86.wav
│ ├── 1_87.wav
│ ├── 1_88.wav
│ ├── 1_89.wav
│ ├── 1_8.wav
│ ├── 1_90.wav
│ ├── 1_91.wav
│ ├── 1_92.wav
│ ├── 1_93.wav
│ ├── 1_94.wav
│ ├── 1_95.wav
│ ├── 1_96.wav
│ ├── 1_97.wav
│ ├── 1_98.wav
│ ├── 1_99.wav
│ └── 1_9.wav
├── cnprepare.py
├── jieba.rar
├── Sphinx中文训练教程.txt
└── zh_broadcastnews_utf8.dic
7 directories, 168 files
标签:
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论