精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
介绍
语音词典为系统提供词汇单词到音素序列的映射。它可能看起来像这样:
hello H EH L OW
world W ER L D
字典还可以包含替代发音。在这种情况下,您可以使用括号中的数字指定它们:
the TH IH
the(2) TH AH
有各种发音集合代表发音,如 IPA或 SAMPA。CMUSphinx尚未要求您使用任何知名发音集,此外,它更喜欢使用没有特殊符号的仅限字母的发音名称。此要求简化了某些处理算法,例如,您可以使用发音名称创建文件作为文件名的一部分,而不会违反操作系统文件名要求。
字典应包含您感兴趣的所有单词,否则识别器将无法识别它们。但是,在词典中使用单词是不够的。识别器在字典和语言模型中查找单词。如果没有语言模型,即使词语中存在单词,也无法识别单词。
除非您想节省内存,否则无需从字典中删除未使用的单词,字典中的额外单词不会影响准确性。
使用现有的词典
有许多词典涵盖我们支持的语言 - 美国英语,法语,德语,俄语,荷兰语,意大利语,西班牙语和普通话的CMUDict。其他词典可能在网上找到。如果字典具有适当的格式,您可以使用它。
如果字典未涵盖您感兴趣的所有单词,则可以使用g2p工具对其进行扩展。
使用g2p-seq2seq扩展字典
有各种工具可以帮助您扩展新单词的现有字典或从头开始构建新字典。其中两个是 Phonetisaurus和Sequitur。
我们建议使用我们最新的工具g2p-seq2seq 。它基于Tensorflow框架中实现的神经网络,并提供最先进的转换准确性。
可在CMUSphinx网站上下载具有512个隐藏单元的英文模型2层LSTM 。下载后打开模型包装。它是在CMU英语词典上训练的。顾名思义,这个模型仅适用于英语。对于其他语言,您首先需要如下所述引导字典,然后使用G2P工具对其进行扩展。
检查G2P工具如何工作的最简单方法是使用上面的模型运行交互模式:
g2p-seq2seq --interactive --model model_folder_path
> hello
HH EH L OW
要使用训练模型为英语单词列表生成发音,请运行:
g2p-seq2seq --decode your_wordlist --model model_folder_path
wordlist是一个带有单词的文本文件,每行一个单词。
要训练G2P,你需要一本字典(标准表格中每行一个单词和音节序列)。运行培训:
g2p-seq2seq --train train_dictionary.dic --model model_folder_path
有关G2P工具的更多信息,请查看G2P项目的自述文件。
引导其他语言的字典
如果您没有适合您的语言的字典,通常有几种方法可以创建它们。
通常,字典是用手写规则引导的。您可以在维基百科页面中找到有关您的语言的音素列表,并编写一个简单的Python脚本来将单词映射到音素。最好的字典不能用规则来涵盖,大多数语言都有相当不规则的发音,即使传统上认为你会说出写的内容,对于新手也可能不是很明显。这是由于人类语音中的共同作用。但是,对于基本字典,规则足够好。
您可以抓取维基词典以获取其中覆盖的大量单词的映射。
您可以使用TTS工具,如从OpenMary用Java编写或espeak的 C语言编写的创建语音字典为他们所支持的语言。
许多使用像韩语或日语这样的象形文字的语言都有像Mecab这样的专用软件来对他们的单词进行罗马化。您可以使用Mecab通过将单词转换为罗马化形式来构建语音字典,然后简单地应用规则将它们转换为电话。
只需转录几千个最常用的单词来引导字典就足够了。
一旦您的字典被引导,您可以使用g2p-seq2seq工具扩展它以保持更大的词汇量,如上一节所述。