1

我已经尝试过,如 StackOverflow 上的建议,Openears 成功,并从 NSSTRINGS 数组生成自定义词汇表。但是,我们还需要从通讯录中识别姓名,而这里的回退方法不可避免地经常会惨败……</p>

我可以自己编写一个解析器并动态地将文本(主要是法语和荷兰语发音的名称)转录为音素,但这将是很多(猜测)工作……。我很确定我需要的数据是在识别过程中的某个地方生成的,所以也许有人可以以我可以在 iOS 上利用的方式将我指向 OpenEars 或 Flite 代码中的一个钩子?

或者其他一些可以将用户语音转换为我可以输入 Openears 的音素字符串的库?

4

1 回答 1

0

在openears中识别名字的正确方法是将特定的发音放入语音词典中。您不需要自己分析语音字符串,实际上识别器完全没有关于语音字符串的信息,因此您甚至无法检索它。此外,音频和音素序列之间没有明确的对应关系。

例如,字形到音素代码可以推迟以下发音:

tena    T IH N

虽然正确的发音是

tena    T EH N AH

由于预测的发音不正确,识别器将无法识别名称。更正后,它将准确识别名称

问题是 openears 中的自动单词到音素转换可能会失败。对于外来词,它可能会更频繁地失败。您需要做的是将名称添加到字典中,以便识别器知道它们的正确语音顺序。如果知道正确的顺序,识别器将能够自行检测单词。您还可以在 openears 中将字形改进为音素代码以使其更准确。现代的pocketsphinx 使用phonetisaurus API,它比flite 更准确,也可以在外国名字等特殊情况下进行训练。

对于您遇到的所有准确性问题,首先建议收集测试样本数据库以启用字符串准确性分析。一旦你有了这样的数据库,你就可以显着提高准确性。详情见

http://cmusphinx.sourceforge.net/wiki/faq#qwhy_my_accuracy_is_poor

于 2014-03-01T23:01:29.643 回答