Как получить действительный ответ от Google Speech to Text API? - PullRequest
1 голос
/ 14 июня 2019

Я записываю звук пользователя через микрофон ноутбука и пытаюсь преобразовать сказанное в текст с помощью Google Speech-to-Text API.Тем не менее, я продолжаю получать пустой ({}) ответ.

После записи аудио с помощью navigator.getUserMedia я создаю аудио-блоб, а base64 его кодирует, поскольку это то, что API требует для аудио-контента.С параметрами конфигурации ниже, я затем отправляю сообщение в конечную точку распознавания, но получаю пустой ответ.Я не уверен, где я иду не так.

Я уже пробовал другие кодировки (LINEAR16, OGG_OPUS и т. Д.), Но я все еще получаю пустой ответ.

        const audioBlob = new Blob(audioChunks, { 'type': 'audio/wav' });
        const audioUrl = URL.createObjectURL(audioBlob);
        const audio = new Audio(audioUrl);
        //audio.play();

        var encodedAudio = btoa(audioUrl); // encode to base 64
        console.log(audioBlob);
        console.log(audioUrl);
        console.log(encodedAudio);

        document.getElementById("screen_div").innerHTML += "<audio controls src=\"" + audioUrl + "\"></audio>";

        var params = {
          "config": {
            "encoding":"FLAC",
            "sampleRateHertz": 16000,
            "audioChannelCount": 1,
            "languageCode": "en-US"
          },
          "audio": {
            "content": encodedAudio
          }
        };

        var xhrSpeechToText = new XMLHttpRequest();
        xhrSpeechToText.open('POST', 'https://speech.googleapis.com/v1/speech:recognize');
        xhrSpeechToText.setRequestHeader('Authorization', 'Bearer ' + accessToken);     
        xhrSpeechToText.setRequestHeader("Content-Type", "application/json");       

        xhrSpeechToText.send(JSON.stringify(params));
        xhrSpeechToText.onload = function() {
            var xhrTextResponse = JSON.parse(xhrSpeechToText.response);
            console.log(xhrTextResponse);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...