使用c++调用和使用Windows语音识别[关闭]

2024-03-19

我正在制作一个涉及使用 Windows 语音识别的应用程序。我正在考虑使用 C++ 来做到这一点,因为我对这种语言有一些经验。我想要使​​用语音识别的方式是让它在内部工作。如果我将音频文件上传到我的程序中,我希望语音识别将此音频写入为文本文件,但所有这些都应该在内部完成。请提供一些帮助,如果我没有正确解释我的问题,请告诉我,我会尝试再次解释。

提前致谢, 分区


(老问题,但没有被接受的答案,并且在谷歌中显得相当高)

如果您确实想在 C++ 中执行此操作,则必须下载 SAPI SDK,它不是 Windows 的标准配置:,选择SpeechSDK51.exe

您可以找到的有关 SAPI 的最佳文档不在 Web 上,而是在 SDK 本身的 Docs/ 文件夹中。 .chm 很好地解释了一切。Here http://msdn.microsoft.com/en-us/library/ms720163%28v=vs.85%29.aspx#InitializeCOM是一个帮助您入门的附加链接。

然而,C++ 对你来说不是必需的,我强烈建议你用 C# 来做。它确实简单得多(没有 COM 组件,没有单独的 SDK,MSDN 上有更多文档,更多教程,...)。看这篇 CodeProject 文章 http://www.codeproject.com/KB/vista/Vista_Speech_Recognition.aspx?msg=3047448;你必须删除所有 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
}

达达,完成

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用c++调用和使用Windows语音识别[关闭] 的相关文章

随机推荐