我找不到在curl命令行中如何使用Google STT发送本地文件的方法。 就像他们的tuto一样,这里是我的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以发送本地音频文件? 感谢帮助 :)
答案 0 :(得分:0)
您需要在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+
'
}
}
答案 1 :(得分:0)
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