语音到文本 RecognitionAudio fromBytes 总是 returns 空白结果

Speech to text RecognitionAudio fromBytes always returns blank result

我正尝试在我的代码中使用 google 语音发送文本。我有 m3U8 格式的视频和音频直播。 我正在使用 FFMPEG 从实时 url 中提取音频。 尝试将此提取的音频发送到 google api(不保存在磁盘上)以取回转录。流式传输是用块完成的。 API 从不 returns 任何结果,也从不抛出任何错误。谁能告诉我为什么结果总是空白? 注意:使用 byte[] 将提取的音频发送到 google api。结果:API returns 空白结果,没有任何错误消息。使用以下代码调用 RecognitionAudio FromBytes。

            outputStream = ffmpeg.StandardOutput.BaseStream;
            byte[] buffer = new byte[16 * 1024];
            using (MemoryStream ms = new MemoryStream())
            {
            int read;
            while ((read = outputStream.Read(buffer, 0, buffer.Length)) > 0)
            {
            ms.Write(buffer, 0, read);
            System.Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "Demo.json");
            var speech = SpeechClient.Create();
            var longOperation = speech.Recognize(new RecognitionConfig()
            {
            Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
            EnableSeparateRecognitionPerChannel = true,
            SampleRateHertz = 16000,
            LanguageCode = "en",
            }, RecognitionAudio.FromBytes(ms.ToArray()));
            //    longOperation = longOperation.PollUntilCompleted();
            //  var response = longOperation.Results;
            foreach (var result in longOperation.Results)
            {
            foreach (var alternative in result.Alternatives)
            {
            Console.WriteLine(alternative.Transcript);
            }
            }
            }
            }                   

空白响应可能表示音频编码不正确。发现故障排除 here.