目前我有一个C#程序,它使用MS Windows语音识别(SR)系统进行语音转换,将其转换为文本,将问题作为文本发送到Worlfram Alpha,然后使用text-to读取基于文本的回答-speech(TTS)。
不幸的是,计算机只能识别在输入到SR中的语法中定义的预定义句子和短语的列表。我需要程序识别任何句子而不必定义包含英语中每个单词的巨大语法文件。如何在不必定义包含完整英语规则的语法文件的情况下让程序识别任何英语短语?这可能吗?
答案 0 :(得分:1)
今天有两种基本类型的语音识别系统;一种类型支持使用grammars列出预期识别结果的规则,另一种使用statistical modeling(例如:隐马尔可夫模型)来获得基于匹配一组数据的概率的识别结果曾被用来“训练”这个系统。您所描述的“预定义句子和短语列表”是语法。我很确定MS Windows语音识别系统只支持基于语法的解决方案。您所描述的所需解决方案是SR的统计建模系统。您可能想看一下Sphinx项目。它是开源的,它支持统计建模。请注意,建立统计建模系统并不容易,需要花费大量时间才能正确调整。
答案 1 :(得分:0)
检查一下 - SpeechSynthetizer Class以及此相关的堆栈溢出问题How to write an application that reads text and produces speech
对于Speech to Text,请查看此代码项目文章http://www.codeproject.com/Articles/380027/Csharp-Speech-to-Text