Ошибка 400 неверный запрос в Google распознавания речи AJAX вызова - PullRequest
0 голосов
/ 27 июня 2018

400 неверный запрос запроса в Google Ajax Call для распознавания речи

Я получаю ответное сообщение как Invalid JSON payload received. Unknown name "config[encoding]": Cannot bind query parameter. Field 'config[encoding]' could not be found in request message. Invalid JSON payload received. Unknown name "config[languageCode]": Cannot bind query parameter. Field 'config[languageCode]' could not be found in request message. Invalid JSON payload received. Unknown name "audio[content]": Cannot bind query parameter. Field 'audio[content]' could not be found in request message. Invalid JSON payload received. Unknown name "config[sampleRateHertz]": Cannot bind query parameter. Field 'config[sampleRateHertz]' could not be found in request message.

Но та же полезная нагрузка JSON и URL с ключом токена отлично работает в почтальоне.

 var jsonObjects ={  "audio": {
                                "content": mainStringBuf
                                   },
                          "config": {
                                "encoding":"FLAC",
                                "sampleRateHertz":16000,
                                "languageCode":"en-US"
                               }
                        };

    $(document).ready(function(){
        $('#speechID').click(function(){
       jQuery.ajax({
                  url: "https://speech.googleapis.com/v1/speech:recognize?key=myKey" ,
                  type: "POST",
                  data: jsonObjects,
                  dataType: "json",
                  beforeSend: function(x) {
                    if (x && x.overrideMimeType) {
                      x.overrideMimeType("Content-Type:application/json");  
                      alert("beforeSend");
                    }
                  },
                  success: function(result) {
                    alert("result");
                  },
                  error: function(error){
                      alert("error");
                  }
        });
    });
                });

1 Ответ

0 голосов
/ 16 октября 2018

С помощью API-ключа Google Cloud от вашей учетной записи (https://cloud.google.com/docs/authentication/api-keys) попробуйте код ниже, заменив your-api-key в сценарии:

$( document ).ready(function() {

    // The settings for the Ajax Request
    var settings = {
        "async": true,
        "crossDomain": true,
        "url": "https://speech.googleapis.com/v1/speech:recognize",
        "method": "POST",
        "headers": {
            "x-goog-api-key": "**your-api-key**",
            "content-type": "application/json",
            "cache-control": "no-cache",
        },
        "processData": false,
        "data": "{'audio':{'content':'"+mainStringBuf+"'},'config': {'encoding':'FLAC','sampleRateHertz':'16000','languageCode':'en-US'}}"
    }

    // The Ajax Request, on success play the speech
    $.ajax(settings).done(function (response) {
      console.log(response);
    });

});
...