【问题标题】:read Local audio file STT Google speech-to-text读取本地音频文件 STT Google Speech-to-Text
【发布时间】:2018-06-24 12:15:16
【问题描述】:

我没有找到如何在 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 来发送本地音频文件? 感谢帮助 :)

【问题讨论】:

    标签: json curl command-line speech google-speech-api


    【解决方案1】:

    您需要在 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+
    '
      }
    }
    

    【讨论】:

      【解决方案2】:

      Google 在使用 curl 命令时没有提供在 json 对象中指定本地文件路径的选项。我们需要将音频文件转换为 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
      

      【讨论】:

        猜你喜欢
        • 2016-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多