语音识别的简单语法

6

我有一个使用GrammarBuilders和Grammar的程序,用于SpeechRecognitionEngine识别语音。我可以使用相同的语法来识别输入的命令(以字符串形式),而不是从音频中识别吗?就像commandGrammar.parse(commandString)这样的东西?


+1 真的是一个非常有趣的想法。那么文本转语音再转回文本呢? - Jason
自从一年前我认真玩过语音识别API(最多也只能算是原始的)以来,可能我的印象和理解已经过时了。但是,难道语音识别语法的目标不是为了使其能够识别特定的声音吗?这是无法仅凭文本实现的。 - M.Babcock
不,这个实例的重点是获取基于逻辑的输入,比如“在30秒内完成此操作”。语音算法目前可以很好地处理它,但如果有人打字呢?我认为应该有一种相当简单的方法来解决这个问题。语音识别将其转换为文本,然后再进行解析,对吗? - Christian Stewart
1个回答

3
你应该使用SpeechRecognitionEngine.EmulateRecognize,它可以接受文本输入代替语音进行语音识别。
我不确定预期的用途是什么,但如果将其用于类似于聊天机器人的自动与IM或短信文本交互的东西,我认为您会发现语法非常难以维护和限制。 我建议使用Artificial Intelligence Markup Language (AIML)来处理文本响应。 它很容易学习且功能强大。 与ASR所需的简洁语法不同,此语言允许您使用通配符,这更有助于文本输入。 甚至有一些C#开源项目提供了与AIML一起工作的库,并简化了聊天机器人的创建。

编辑了我的答案,包括使用SpeechRecognitionEngine方法来进行文本输入。 - Kevin Junghans
感谢您指出这种方法。我正在使用它通过NUnit测试语法文件。 - Corey Cole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接