Div*_*ivs 3 c++ windows speech-recognition speech speech-to-text
我正在制作一个涉及使用 Windows 语音识别的应用程序。我正在考虑使用 C++ 来做到这一点,因为我对这种语言有一些经验。我想使用语音识别的方式是让它在内部工作。如果我将音频文件上传到我的程序中,我希望语音识别将此音频写成文本文件,但这一切都应该在内部完成。请对此提供一些帮助,如果我没有正确解释我的问题,请告诉我,我会再次尝试解释。
提前致谢, Divs
(老问题,但没有被接受的答案,在谷歌中显得相当高)
如果你真的想在 C++ 中做到这一点,你必须下载 SAPI SDK,它不是 Windows 的标准:http : //www.microsoft.com/downloads/en/details.aspx? FamilyID=5e86ec97-40a7- 453f-b0ee-6583171b4530&displaylang=en,选择 SpeechSDK51.exe
您可以在 SAPI 上找到的最佳文档不在网络上,而是在 SDK 本身的 Docs/ 文件夹中。.chm 很好地解释了一切。这是一个额外的链接,可以帮助您入门。
但是,C++ 不是您的必需品,我强烈建议您使用 C# 来完成。它真的简单得多(没有 COM 组件,没有单独的 SDK,MSDN 上的更多文档,更多教程,......)。请参阅此 CodeProject 文章;你必须删除所有的 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
}
Run Code Online (Sandbox Code Playgroud)
达达,完成