CMU Sphinx 语音识别入门:构建拼音字典

简介

  拼音字典(phonetic dictionary,我自己是这么翻译的,可能不准确,能力所限,勿喷_)为语音识别系统提供了语音音素向词汇表的映射。大致形式如下:

hello H EH L OW
world W ER L D

  拼音字典可以同时包含多音字,这种情况下,可以用括号中的数字来指定多音字。例如:

the TH IH
the(2) TH AH

  语音拼音有多种表示方式,如:IPA和SAMPA。CMUSphinx 不需要我们去使用任何高级的语音表示方式,它更倾向于单纯使用字母而不是特殊字符来表示。这样可以简化一下处理算法。
  在语音识别实际应用中,拼音字典应该包含所有我们感兴趣的单词,否则这些单词将不能被识别出来。当然,仅仅在拼音字典中囊括这些单词也是不行的,因为识别器会同时从拼音字典和语音模型中进行检索,如果该单词不在语音模型中,即使这个单词在拼音字典中,也不能被识别出来。当然,我们也不需要为了节约存储空间而将拼音字典中不需要识别的单词移除,这样做其实对提升性能没有任何太大的意义,因为多余的单词并不影响识别的准确率。

使用现有模型

  CMUSphinx提供了大量可以支持的语言的拼音字典,包括US English, French, German, Russian, Dutch, Italian, Spanish and Mandarin(中文)。除了上述的拼音字典外,CMUSphinx提供了构件新的拼音字典或扩展现有字典的方法。

使用g2p-seq2seq扩展拼音字典

  目前有许多工具可以用于扩展现有的拼音字典或构建新的拼音字典,PhonetisaurusSequitur是其中的两个,这里推荐使用CMU最新版本的g2p-seq2seq。它是目前转换精度最好的基于神经网络实现的tensorflow框架。
  查看G2P工具如何工作的,可以使用交互模式:

g2p-seq2seq --interactive --model model_folder_path

> hello
HH EH L OW

用训练好的G2P模型生成单词列表的发音的命令如下:

g2p-seq2seq --decode your_wordlist --model model_folder_path

  单词列表的格式为每行一个单词或文字。为了训练G2P模型,需要一个拼音字典,然后用以下命令进行训练:

g2p-seq2seq --train train_dictionary.dic --model model_folder_path

  最后,至于拼音字典如何生成,每个语音有不同的生成方式,一般都跟发音方式有关。具体的可以去百度或者维基百科搜索。

参考:https://cmusphinx.github.io/wiki/tutorialdict/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,381评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,951评论 19 139
  • 长的美也许苦难多,但穿的美一定运气好。前者傻白甜活不过两集很容易理解,高智商心机girl修炼为人生赢家也是有科学道...
    天青色Gracy阅读 511评论 4 5
  • 介绍 在 JSON 出现以前,XML 是互联网上传输结构化数据的标准,不过在 JSON 出现之后这种情况就改变了,...
    ghwaphon阅读 409评论 0 3
  • 说两句 先放上花不少功夫做的期末总结图。我们东北大学老师给了两年的试卷。。根据两年的试卷我将题目分布标记在了总结图...
    梁思宇阅读 741评论 0 2