2010-05-25 162 views
5

我现在正在制作一个智能房屋控制系统,而且我有一个小问题。 我在考虑使用Cosmos作为基础系统,并为其添加所需的命名空间库,但正如通常的System.Speech.Recognition命名空间太依赖于Windows Speech API,我不得不忘记使用它。C#语音识别

所以我的问题是,有没有(免费的,如果可能的话)语音识别和/或C#语音语音合成库,什么有以下几点:

  • 多语言讲
  • 提取支持从语音样本文本内容
  • 合成具有可选择的(或用户编写的)语音模式(语音)的语音

的一般使用情况,非窗口相关库竟被d是最好的,当然,如果它也是免费的。

+2

哇,我从来不知道在.net框架中有[内置语音识别](http://msdn.microsoft.com/en-us/library/system.speech.recognition.aspx)。此外,[这](http://msdn.microsoft.com/en-us/library/system.speech.synthesis.aspx)。 – 2010-05-25 17:20:47

+0

@BlueRaja - 你应该做出这个答案。我会赞成你。我也不知道这一点。 – JasCav 2010-05-25 17:29:33

+0

我不相信fonix232没有使用Microsoft操作系统 - 他显然使用了一个用IL编写的开源操作系统。链接是http://www.gocosmos.org/index.en.aspx。 – 2010-05-27 16:16:38

回答

2

Voxeo offers developer accounts您可以使用它来开发语音驱动的家庭自动化系统。我已将它与my own home automation system接口,用于我家的一小部分命令,它的工作原理非常好。你需要学习一些VoiceXML才能使用它。

SAPI适用于语音合成;我在自己的系统中使用SAPI进行房间口头提示,就像早上走进浴室时发出的天气预报。如果Cosmos不允许你包含所有你需要的DLL,也许你可以使用SAPI创建一个单独的服务,然后使用WCF(或其他)在它们之间进行通信?

对于以打字的形式理解自然语言的相关问题,我开发了一个C# NLP Engine,我希望能够在未来的某个时间提供给非商业用途。

从语音中提取文本而没有指定任何语法预先是一个非常困难的问题,并且容易出错。即使你可以解决这个问题,你仍然有尝试理解他们使用NLP说的问题。构建一个指导识别器识别你想识别句子的语法(如VoiceXML)可能会达到更高的准确度。

2

看看这个项目:http://cmusphinx.sourceforge.net/

这是一个开源的语音识别项目。它可以用任何你想要的语言进行训练,加上自开源以来,你可以对其进行修改以适应你的需求或扩展它。

+0

唯一的问题是,它不是纯粹的C#库。正如我所说,我想使用纯粹的C#库,因为宇宙需要它。 – fonix232 2010-05-25 19:14:47

+0

嗨icemanind,我正在寻找一个语音识别程序来获得最好的结果,你认为CMU Sphinx能为我提供这个吗? – 2013-01-19 20:03:11

+0

@FernandoSantiago - 我认为它是最好的免费选择。如果你没有钱花,那么它的路要走。请记住,正如fonix232指出的那样,它不是纯粹的C#。它也得到了一些C++ – Icemanind 2013-01-20 00:50:15