在使用语音识别时记录音频数据?

Posted

技术标签:

【中文标题】在使用语音识别时记录音频数据?【英文标题】:record audio data while using speech recognition? 【发布时间】:2013-08-20 14:34:16 【问题描述】:

我成功地在我的 C# 应用程序中使用 .NET 语音识别部分来处理基本的谈话内容。

除此之外,是否可以在我的应用程序识别它的同时记录它在我的应用程序中拾取的音频。我想保存它以备日后分析。

当我对着麦克风讲话时,您会创建一个单独的线程,然后将一些 .NET 录音放在那里吗?我只想将它们以 .wav 格式保存在本地目录中。轻松录制,例如 48khz 和 16 位采样。

我正在使用普通表单应用程序,这是我现在拥有的语音代码类型,只是为了给你一个想法。

using System.Speech.Recognition;

//then inside the class and namespace I have 
    public partial class Form1 : Form
    
        SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine();


//declared variables here
//now I initialize

        public Form1()
        
            InitializeComponent();
            _recognizer.SetInputToDefaultAudioDevice();
            _recognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"Commands.txt")))));
            _recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_recognizer_SpeechRecognized);
            _recognizer.RecognizeAsync(RecognizeMode.Multiple);
            systemOnline();
        

void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        
            string time = now.GetDateTimeFormats('t')[0];
            int ranNum;
            string speech = e.Result.Text;
            switch (speech)
            

                //Open Google
                case "Google":
                //code opens google in default browser

【问题讨论】:

它看起来已经将其保存在内存中,因此您所要做的就是让它在从应用程序释放该记录之前将内存位置发送到文件。我认为。 【参考方案1】:

查看 Windows API。我相信您可以在那里注册一个处理程序/事件处理程序/拦截器,以获取音频数据。查看以下链接:maybe helpfull

【讨论】:

你的链接中的第二个我会研究更多。看来我可以将其用作共享事件。谢谢:) 不确定,线程不是我擅长的领域,你得看你的CPU和它上面的特性,如果它是多核并且每个核心支持多个音频数据/流计算,那么线程会有帮助的!

以上是关于在使用语音识别时记录音频数据?的主要内容,如果未能解决你的问题,请参考以下文章

语音识别,录制的音频去哪了?

是否可以将实时数据发送到 Bing 语音识别?

语音依赖语音识别

基于kaldi的iOS实时语音识别(本地)+03+音频采集传输

保存 Android Stock 语音识别引擎的音频输入

语音识别