Я пытаюсь использовать Google речь для текста в моем коде. У меня есть прямая трансляция с видео и аудио в формате m3U8.
Я использую FFMPEG для извлечения аудио из живого URL.
Попытка отправить этот извлеченный звук в Google API (без сохранения на диске), чтобы получить обратно транскрипцию. Потоковая передача осуществляется с кусками.
API никогда не возвращает никакого результата, а также никогда не выдает никакой ошибки. Может кто-нибудь сказать мне, почему результаты всегда пустые?
Примечание. Использование byte [] для отправки извлеченного аудио в Google API. Результат: API возвращает пустой результат без сообщения об ошибке. используя код ниже для вызова 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);
}
}
}
}