我正在使用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这样的商业应用程序,因为我没有预算。 简单地在语法中添加单词是行不通的,因为这些单词不符合英语的正常发音规则。
基本上,我正在寻找的是某种工具,它可以将用英语写成的单词与来自麦克风的一组不同发音(如在预训练中)连接起来,然后可以在语音引擎期间引用它。运行。这可能吗?
我愿意接受任何选择。
感谢。
答案 0 :(得分:0)
我认为您要做的是为识别器指定自定义词典。如你所说,这将允许你“用一组不同的发音连接一个用英语写的单词”。
词典将书面文字映射到用拼音字母书写的发音。您可以通过将新词典作为XML文档编写,或者通过指定内联的单个发音来覆盖默认词典(如果您使用英语识别器,则将使用英语识别器具有英语发音)。
因此,您可以将阿拉伯语单词的发音定义为一系列电话(我认为您必须仅使用英语出现的电话,否则识别可能无法正常工作),然后将其链接到英语书写单词(字母)在词典或内联中。
此页面解释了所有内容:About Lexicons and Phonetic Alphabets (Microsoft.Speech)