Google语音API v1beta1(syncrecognize和asyncrecognize API调用)

时间:2016-07-27 09:21:09

标签: google-app-engine google-speech-api

我是一名Java开发人员,我有几个与Google语音API V1Beta1相关的问题。

问题1(Syncrecognize case):

我尝试上传(通过GCS)小尺寸(运行文件少于一分钟)音频文件到google speech api它正在工作但是置信度输出级别仅为0.32497215。这是我的结果与我的音频输入不完全相同。

如何提高置信度输出?

问题2(Asyncrecognize case):

我尝试了大尺寸音频文件(运行文件超过一分钟)。这个案例我使用了 API调用

https://speech.googleapis.com/v1beta1/speech:asyncrecognize?key=XXXXXXXXXXXXXXXXXXXX

有效负载

"{"config":{"encoding":"LINEAR16","sample_rate": 16000},"audio":{"uri":"gs://" + bucketName +"/"+ objectName + ""}}"

这里我得到输出json ,如

{"name": "57...........................95"}.

获取此输出后,我使用此名称值进行新的API调用(操作界面)。

https://speech.googleapis.com/v1beta1/operations/57.................................95?key=XXXXXXXXXXXXXXXXX

我得到了输出

{
 "name": "57....................................95",
 "done": true,
 "response": {
   "@type": "type.googleapis.com/google.cloud.speech.v1beta1.AsyncRecognizeResponse"
 }
}

如何使用此值继续工作?我需要获得音频语音文本。

请帮我解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

Question 1的想法:

您应该在RecognitionConfig对象中提供更多详细信息,例如指定languageCode并通过SpeechContext object添加提示。

回答Question 2

检查音频文件的sample rate,您必须确保它等于您在请求中提供的费率。你可以检查它,例如使用以下代码soxi audio_file.flac(此代码需要sox)。