是什么导致 Microsoft 认知服务语音识别器对象发送 SessionStopped 事件?

What causes Microsoft Cognitive Services Speech Recognizer objects to send SessionStopped events?

什么导致语音识别器会话结束?作为参考,这是我的代码:

        Stream sos = new MemoryStream();
        byte channels = 1;
        byte bitsPerSample = 16;
        uint samplesPerSecond = 16000;
        var audioFormat = AudioStreamFormat.GetWaveFormatPCM(samplesPerSecond, bitsPerSample, channels);
        AudioInputStream audioInputStream = AudioInputStream.CreatePullStream(new BinaryAudioStreamReader(sos), audioFormat);
        var t = Task.Run(() => SpeechRecognitionSamples.RecognitionWithBufferStreamAsync(audioInputStream));

日志打印如下:

会话开始事件。

阅读:尺寸:3200

阅读:databuffer.Length:3200

线程 0x19850 已退出,代码为 0 (0x0)。

会话停止事件。

当我将 DataAvailable 写入器指向一个文件时,它写入成功。什么会触发识别器会话结束?

此事件不会像已取消的事件那样发送原因代码。

如果您使用的是连续模式,会话结束的唯一方式是当您到达文件末尾时(return 0 表示写入的数据量),或者调用 Stop。

如果您处于 RecognizeOnce 模式,则会话在识别出第一个短语后(当有足够的静音时)或当您到达文件末尾时结束,以先到者为准。