读取本地音频文件 STT Google 语音转文本

read Local audio file STT Google speech-to-text

我找不到如何在 curl 命令行中使用 Google STT 发送本地文件。 正如他们的教程所遵循的那样,这里是我的 request.json :

{
"config": {
      "encoding":"FLAC",
      "sample_rate": 16000,
      "language_code": "fr-FR"
  },
  "audio": {
      "uri":"audio-file.flac"
  }
}

我的命令行是:

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1beta1/speech:syncrecognize?key=MY_API_KEY"

但是我收到错误结果:

{
  "error": {
    "code": 400,
    "message": "RecognitionAudio not set.",
    "status": "INVALID_ARGUMENT"
  }
}

如何编写request.json发送本地音频文件?? 感谢帮助 :)

您需要在 request.json 文件的内容部分使用 base64。除了有更多的 base64 数据外,它应该看起来像这样:

{
  'config': {
    "encoding":"FLAC",
    "sample_rate": 16000,
    "language_code": "fr-FR"
  },
  'audio': {
    'content':'UklGRuRDFQBXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YcBDFQAIAAgACAAIAAgA
CAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgA
CAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgA
CAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD4/wgACAD4//j/+P8IAPj/+P8IAAgA
+P8IAAgACAAIAAgA+
'
  }
}

Google 不提供在 json 对象中指定本地文件路径的选项,而使用 curl command.We 需要将音频文件转换为 base64 并将输出传递到 json对象

 base64 source_audio_file -w 0 > dest_base64_audio_file_content

或者 传递本地文件的最佳方法之一是使用 gcloud ml 命令.

gcloud ml speech recognize 'Clip48_Mike.wav' --language-code='en-US'  

示例:

注意: 如果尚未完成,请按照以下命令激活 gcloud 帐户。

gcloud auth activate-service-account --key-file /tmp/account-name.json