我正在制作一个使用windows语音识别的应用程序。我正在考虑使用c++来做这件事,因为我对这门语言有一些经验。我想使用语音识别的方式是让它在内部工作。如果我上传一个音频文件到我的程序中,我希望语音识别将这个音频写成一个文本文件,但所有这些都应该在内部完成。请在这方面提供一些帮助,如果我没有正确地解释我的问题,请让我知道,我会尝试再次解释。
提前谢谢你,Div
发布于 2011-06-01 09:12:36
(老问题,但没有被接受的答案,在谷歌上显示得相当高)
如果你真的想在C++中做到这一点,你必须下载SAPI SDK,它不是Windows的标准配置:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5e86ec97-40a7-453f-b0ee-6583171b4530&displaylang=en,选择SpeechSDK51.exe
你能找到的关于SAPI的最好的文档不是在web上,而是在SDK本身的Docs/文件夹中。.chm很好地解释了一切。Here是一个额外的链接,可以帮助您入门。
但是,it C++对你不是必需的,我强烈建议你在C#中做。它真的简单多了(没有COM组件,没有单独的SDK,更多关于MSDN的文档,更多的教程,等等)。参见this CodeProject article;您将不得不删除所有的图形用户界面和语音合成的东西,您将看到,语音识别简化为10行代码。令人印象深刻。
编辑示例代码,未编译,未测试:
using System.Speech;
using System.Speech.Recognition;
// in constructor or initialisation
SpeechRecognitionEngine recognizer = null;
recognizer = new SpeechRecognitionEngine();
recognizer.SetInputToDefaultAudioDevice();
recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
recognizer.RecognizeAsync(RecognizeMode.Multiple);
// The callback called when a sentence is recognized
private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e){
string text = e.Result.Text;
// Do whatever you want with 'text' now
}
ta dah,完成
发布于 2011-01-06 15:40:17
Windows为客户端和服务器提供了语音识别引擎。两者都可以用C++或.NET语言编程。在C++中进行编程的传统应用编程接口称为SAPI。用于客户端和服务器语音.NET框架名称包是System.Speech和Microsoft.Speech。
SAPI文档- http://msdn.microsoft.com/en-us/library/ms723627(VS.85).aspx
用于客户端识别的.NET命名空间是System.Speech - http://msdn.microsoft.com/en-us/library/system.speech.recognition.aspx。Windows Vista和7包括语音引擎。
用于服务器识别的.NET命名空间是Microsoft.Speech,10.2版本的完整.NET可以在http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4上获得。语音引擎是免费下载的。
许多早期的问题都解决了这个问题。有关示例,请参阅Prototype based on speech recognition和SAPI and Windows 7 Problem。
https://stackoverflow.com/questions/4609761
复制