Google Cloud-接收到无效的JSON有效负载。 'config'处的未知名称“ encoding”:Proto字段未重复,无法启动列表

时间:2019-02-12 16:08:14

标签: python google-cloud-platform google-cloud-speech

当我尝试使用以下配置调用 Google Cloud Speech to Text Api 进行长期识别时:

pd.read_csv

我收到此错误

  

接收到无效的JSON有效负载。 “ config”处的名称未知“ encoding”:Proto字段未重复,无法启动列表

如何解决?

1 个答案:

答案 0 :(得分:1)

能否请您提供更多信息...例如您在项目的此部分使用哪种语言和库版本?

假设您使用的是 Python ,您可以在此处找到连接到 Google云语音转文本 Api 的另一种官方方式:{{3 }}

我惯用的方法是将var person = { name: "Brendan Eich", hello: function(thing) { console.log(this.name + " says hello " + thing); } } var bind = function(func, thisValue) { console.log("Arguments are:", arguments); return func.apply(thisValue, arguments); } var boundHello = bind(person.hello, person); //boundHello("world") // "Uncaught TypeError: boundHello is not a function" phyton包与JSON数据结构一起使用,而不是与字典数据一起使用。

googleapiclient

如果您不知道如何安装python软件包,请参阅此官方文章:https://cloud.google.com/speech-to-text/docs/basics

有关LongRunning请求,请参阅: https://packaging.python.org/tutorials/installing-packages/#id13

在这种情况下,配置JSON结构为:

import base64
import googleapiclient.discovery

with open(speech_file, 'rb') as speech:
    # Base64 encode the binary audio file for inclusion in the JSON
    # request.
    speech_content = base64.b64encode(speech.read())

# Construct the request
service = googleapiclient.discovery.build('speech', 'v1')
service_request = service.speech().recognize(
    body={
        "config": {
            "encoding": "LINEAR16",  # raw 16-bit signed LE samples
            "sampleRateHertz": 16000,  # 16 khz
            "languageCode": "en-US",  # a BCP-47 language tag
        },
        "audio": {
            "content": speech_content
            }
        })

RecognitionConfig 是以下类型的JSON对象:

{
  "config": {
    object(RecognitionConfig)
  },
  "audio": {
    object(RecognitionAudio)
  }
}

RecognitionAudio 是这种类型的

{
  "encoding": enum(AudioEncoding),
  "sampleRateHertz": number,
  "languageCode": string,
  "maxAlternatives": number,
  "profanityFilter": boolean,
  "speechContexts": [
    {
      object(SpeechContext)
    }
  ],
  "enableWordTimeOffsets": boolean
}

对于LongRunning识别,您还可以参考以下链接: https://cloud.google.com/speech-to-text/docs/reference/rest/v1/speech/longrunningrecognize

它显示了如何将Phyton软件包{ // Union field audio_source can be only one of the following: "content": string, "uri": string // End of list of possible types for union field audio_source. } 用于长时间运行的请求,只需在Phyton类中使用以下方法即可:

googleapiclient.discovery