google云语音转文字休息apireturn空回复

google cloud speech to text rest api return empty response

我尝试使用 google 云语音转文本 API,方法是使用示例页面 (https://cloud.google.com/speech-to-text/)。在我上传我的音频文件 (.m4a)

后它工作正常

然后我尝试使用 rest API 和相同的音频文件调用这些服务,它不起作用。

我得到 200 个空响应。

我用这个信息给 rest API 打电话

POST https://speech.googleapis.com/v1p1beta1/speech:recognize?key=SOME_KEY

body:

{
  "audio": {
    "content": "base64 audio content"
  },
  "config": {
    "sampleRateHertz": 16000,
    "encoding": "LINEAR16",
    "languageCode": "en-US"
  }
}

但是在 https://cloud.google.com/speech-to-text/ 上,body 有点不同,像这样

{
  "audio": {
    "content": "/* Your audio */"
  },
  "config": {
    "enableAutomaticPunctuation": true,
    "encoding": "LINEAR16",
    "languageCode": "en-US",
    "model": "default"
  }
}

我不知道为什么它在调用 rest 时不起作用 API。

请帮忙

已更新 =>

我通过此代码读取音频文件(来自 google 文档的示例)

const file = fs.readFileSync('FILE_LOCATION')
const audioBytes = file.toString('base64')

阅读文档,我找不到对 Google 文本转语音支持的“.m4a”(Apple Lossless)文件的引用。事实上,恰恰相反。

我的建议是,至少尝试将您的文件转换为 WAV 格式文件并提供。如果可行,请查看您是否无法以这种格式获取原始音频。

参见: