按照StackOverflow上的建议,我已经成功地尝试了Openears,并从NSSTRINGS数组生成自定义词汇表。然而,我们还需要从地址簿中识别姓名,而在这里,回退方法不可避免地失败了,这是非常糟糕的,经常是…
我可以自己编写一个解析器并动态地将文本(主要是听起来像法语和荷兰语的名字)转录成音素,但这将是大量的(猜测)工作…。我很确定我需要的数据是在识别过程中的某个地方生成的,所以也许有人可以用一种我可以在iOS上利用的方式,在OpenEars或Flite代码中指出一个钩子。
或者其他一些库,可以将用户语音转换为我可以输入到Openears中的音素字符串?
发布于 2014-03-02 07:01:30
在openears中识别名字的正确方法是将特定的发音放在语音词典中。你不需要自己分析拼音字符串,实际上识别器没有关于拼音字符串的全部信息,所以你甚至不能检索它。此外,音频和音素序列之间也没有明确的对应关系。
例如,字素到音素代码可以推迟以下发音:
tena T IH N而正确的发音是
tena T EH N AH如果预测了错误的发音,识别器将无法识别名称。更正后,它将准确地识别该名称
问题是,在openears中自动进行单词到音素的转换可能会失败。对于外来词,它可能会更频繁地失败。您需要做的是将名称添加到字典中,以便识别器知道它们的正确拼音顺序。如果知道正确的序列,识别器将能够自己检测单词。您还可以改进openears中的字素到音素代码,使其更加准确。现代的口袋狮身人面像使用的是phonetisaurus API,它比flite更准确,而且在外国名字等特殊情况下也可以训练。
对于所有与准确性有关的问题,首先建议收集一个测试样本数据库,以便能够进行精确分析。一旦你有了这样的数据库,你就可以显着提高准确性。请参阅了解详细信息
http://cmusphinx.sourceforge.net/wiki/faq#qwhy_my_accuracy_is_poor
https://stackoverflow.com/questions/22121358
复制相似问题