c++ - 使用c++调用和使用Windows语音识别

标签 c++ windows speech-recognition speech speech-to-text

<分区>

我正在制作一个涉及使用 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/

相关文章:

c++ - Qt - 从 QWidget 的布局中清除所有小部件

c++ sdl 根据鼠标位置绘制动态矩形

c++ - 应用在 RPC 上挂起

python - 在 Windows 上将 Word2vec 与 Tensorflow 结合使用

javascript - node.js 中 setInterval() 的奇怪行为(仅限 Windows,适用于 Linux)

android - 如何检查语音识别是否可用?

iOS 语音识别 - 不识别文本,通过其他记录识别

c++ - 面向对象的C++多线程

c++ - 安全地将字节写入流

python - 导入错误 : No module named SpeechRecognition