教授Microsoft.Speech Engine发音的一些非英语单词

时间:2013-09-16 12:39:08

标签: c# speech-recognition speech-to-text microsoft-speech-platform

我正在使用Kinect开发一个c#应用程序,它依赖语音输入来做事。我有一个阿拉伯语单词列表,用户可以说它来选择不同的菜单项。

过去几天我一直在寻找,但收效甚微。 我找到的东西:

CMU Sphinx:http://www.ccse.kfupm.edu.sa/~elshafei/AASR.htm 这个问题的第一个问题是它是基于java的。我已经看过KVM和桥接器了,但是我对这个东西不能太过分了。我无法将其设置为使用Java。没有关于如何使用已准备好的文件的步骤。

我还看过使用此链接建议的SRGS文档Specifying a pronunciation of a word in Microsoft Speech API 但这对我的目的来说太复杂了,我甚至不知道它是否是我需要的。

我也看过Microsoft Speech Recognition Custom Training 这个人的问题很相似,但我不能以同样的方式解决我的问题。

我不能使用像Sakhr这样的商业应用程序,因为我没有预算。 简单地在语法中添加单词是行不通的,因为这些单词不符合英语的正常发音规则。

基本上,我正在寻找的是某种工具,它可以将用英语写成的单词与来自麦克风的一组不同发音(如在预训练中)连接起来,然后可以在语音引擎期间引用它。运行。这可能吗?

我愿意接受任何选择。

感谢。

1 个答案:

答案 0 :(得分:0)

我认为您要做的是为识别器指定自定义词典。如你所说,这将允许你“用一组不同的发音连接一个用英语写的单词”。

词典将书面文字映射到用拼音字母书写的发音。您可以通过将新词典作为XML文档编写,或者通过指定内联的单个发音来覆盖默认词典(如果您使用英语识别器,则将使用英语识别器具有英语发音)。

因此,您可以将阿拉伯语单词的发音定义为一系列电话(我认为您必须仅使用英语出现的电话,否则识别可能无法正常工作),然后将其链接到英语书写单词(字母)在词典或内联中。

此页面解释了所有内容:About Lexicons and Phonetic Alphabets (Microsoft.Speech)