<分区>
我正在制作一个涉及使用 Windows 语音识别的应用程序。我正在考虑使用 C++ 来执行此操作,因为我对这种语言有一些经验。我想使用语音识别的方式是让它在内部工作。如果我将音频文件上传到我的程序中,我希望语音识别将此音频写入文本文件,但所有这些都应该在内部完成。请为此提供一些帮助,如果我没有正确解释我的问题,请告诉我,我会再次尝试解释。
提前致谢, 分区
<分区>
我正在制作一个涉及使用 Windows 语音识别的应用程序。我正在考虑使用 C++ 来执行此操作,因为我对这种语言有一些经验。我想使用语音识别的方式是让它在内部工作。如果我将音频文件上传到我的程序中,我希望语音识别将此音频写入文本文件,但所有这些都应该在内部完成。请为此提供一些帮助,如果我没有正确解释我的问题,请告诉我,我会再次尝试解释。
提前致谢, 分区
最佳答案
(老问题,但没有被接受的答案,并且在谷歌中出现相当高)
如果您真的想在 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是帮助您入门的附加链接。
但是,C++ 不是您的要求,我强烈建议您使用 C#。它真的简单多了(没有 COM 组件,没有单独的 SDK,更多 MSDN 上的文档,更多教程,...)。参见 this CodeProject article ;你必须删除所有 GUI 的东西,以及所有的语音合成的东西,你会看到,语音识别归结为 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
}
大功告成
关于c++ - 使用c++调用和使用Windows语音识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609761/