0

如何访问由语音识别引擎处理的信号样本?[C#]

private void Form1_Load(object sender, EventArgs e)
{                                                    
    SpeechRecognitionEngine engine = new SpeechRecognitionEngine();

    Choices choices = new Choices();
    choices.Add(new string[] {"example", "example2"};

    GrammarBuilder grammarBuilder = new GrammarBuilder();
    grammarBuilder.Append(choices);
    Grammar grammar = new Grammar(grammarBuilder);

    engine.LoadGrammarAsync(grammar);
    engine.SetInputToDefaultAudioDevice();
    engine.SpeechRecognized += engine_SpeechRecognized;
    ...
}

private void engine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
   ...
}

基本上我的程序可以很好地识别语音,但是我如何才能访问识别信号的特定样本?我知道我可以选择:

RecognizedAudio audio = e.Result.Audio;

但它没有给我我想要的数据。我想要一个整数或其他东西的向量。请帮忙

4

1 回答 1

1

看起来您应该使用的方法是 WriteToAudioStream() 和/或 WriteToWavStream()。

有关详细信息,请参阅 Microsoft 页面WriteToAudioStream 示例

这样的事情可能会让你开始

        MemoryStream audioStream = new MemoryStream();
        e.Result.Audio.WriteToAudioStream(audioStream);
        //write to file
        FileStream file = new FileStream("d:\\file.txt", FileMode.Create, FileAccess.Write);
        audioStream.WriteTo(file);
        audioStream.Close();
        file.Close();
于 2018-01-04T21:42:20.253 回答