首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MS SpeechRecognitionEngine录制基础音频

MS SpeechRecognitionEngine录制基础音频
EN

Stack Overflow用户
提问于 2013-08-02 06:36:37
回答 2查看 479关注 0票数 3

我正在使用微软的System.Speech SpeechRecognitionEngine进行口述,我需要能够记录所有正在处理的音频,同时对其执行语音识别。

现在,我可以很好地进行语音识别,并且可以获得所识别内容的音频。但是,我需要能够同时保存音频流,以便以后可以使用语音识别中的元数据从整个音频流中获取附加信息。

这样做的适当方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2013-09-11 23:35:29

您可以通过以下方式将关联的音频文件以wave流的形式保存到磁盘。完整的例子见链接(http://msdn.microsoft.com/en-us/library/system.speech.recognition.recognizedaudio.writetowavestream.aspx)。

代码语言:javascript
运行
复制
 RecognizedAudio audio = e.Result.Audio;
TimeSpan start = e.Result.Words[3].AudioPosition;
TimeSpan duration = audio.Duration - start;

// Add code to verify and persist the audio.
string path = @"C:\temp\nameAudio.wav";
using (Stream outputStream = new FileStream(path, FileMode.Create))
{
  RecognizedAudio nameAudio = audio.GetRange(start, duration);
  nameAudio.WriteToWaveStream(outputStream);
  outputStream.Close();
}
票数 3
EN

Stack Overflow用户

发布于 2015-02-28 02:39:32

根据你的评论@Brien King,这可能不是你想要的,但我发现艾伦的答案很有用,但我想补充一句,如果你想从被拒绝的语音中保存音频,可以使用SpeechRecognitionRejected的EventHandler来完成

我之所以指出这一点,是因为对我来说,从不成功的识别中保存音频是不可能的。我之前曾尝试使用SpeechHypothesizedEventArgs中的Result对象,该对象没有我期望的大量数据。

我主要是添加这个答案,以防有人像我一样对此感到困惑。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18005818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档