Google 语音转文本文件大于 10MB

Google Speech to Text files bigger than 10MB

我正在尝试使用 Google Speech to Text 处理长文件 (~100MB)

但即使我使用 https://cloud.google.com/speech-to-text/docs/async-recognize

中的代码(改编)

我得到以下异常:

Status(StatusCode=InvalidArgument, Detail="Request payload size exceeds the limit: 10485760 bytes.")

到目前为止,这是我的代码:

string convertedFile = WavUtils.WavUtils.EncodeToWav(filename);
Dictionary<string, long> wavData = WavUtils.WavUtils.GetWAVData(convertedFile);

var speech = SpeechClient.Create();
var longOperation = speech.LongRunningRecognize(
  new RecognitionConfig()
  {
    Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
    SampleRateHertz = (int)wavData["sampleRateHz"],
    LanguageCode = LanguageCodes.English.UnitedStates
  },
  RecognitionAudio.FromFile(convertedFile));
longOperation = longOperation.PollUntilCompleted();

var response = longOperation.Result;
foreach (var result in response.Results)
{
  foreach (var alternative in result.Alternatives)
  {
    Console.WriteLine(alternative.Transcript);
  }
}

即使使用 LongRunningRecognize,最大文件大小真的是 10MB 吗?

原始文件实际上是录制的网络广播中的 MP3。 但据我所知 Google Speech to Text 不支持 MP3 作为输入。这就是我将其转换为 Wav 的原因。

欢迎任何帮助。

您需要先将音频文件上传到 Google 存储。 https://cloud.google.com/speech-to-text/docs/async-recognize#speech-async-recognize-gcs-csharp

我没有足够的声誉来对 Daniel Brower 的问题添加评论,但答案是使用

RecognitionAudio.FromStorageUri("gs://my-bucket/my-file"); 

而不是

RecognitionAudio.FromFile(convertedFile));