Пустой результат в API речевого клиента Google - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь реализовать распознавание речи с помощью Google voice api.

Я записываю необработанный звук на свою веб-страницу, а затем отправляю необработанный файл на сервер, где он пытается распознать с помощью API речи Google.

Вот мой угловой код

start() {
navigator.mediaDevices.getUserMedia({ audio: true })
  .then(stream => {
    this.mediaRecorder = new MediaRecorder(stream);
    this.mediaRecorder.start();

    const audioChunks = [];

    this.mediaRecorder.addEventListener("dataavailable", event => {
      audioChunks.push(event.data);
    });

    this.mediaRecorder.addEventListener("stop", () => {
      const audioBlob = new Blob(audioChunks, { type: "audio/wav"});
      const audioUrl = URL.createObjectURL(audioBlob);

      this.fileService.saveFile(audioBlob).subscribe(res => { console.log(res); });

      const audio = new Audio(audioUrl);
      audio.play();
    });
  });
}

Вот мой код контроллера C # '

    private string GetSpeechToText()
    {
        string result = string.Empty;

        try
        {
            SpeechClient speechClient = SpeechClient.Create();

            RecognitionConfig config = new RecognitionConfig()
            {
                Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
                SampleRateHertz = 16000,
                LanguageCode = "en-US",
            };

            RecognizeResponse response = speechClient.Recognize(config,
                RecognitionAudio.FromFile(fileName));

            foreach (var responseResult in response.Results)
            {
                foreach (var alternative in responseResult.Alternatives)
                {
                    result += alternative.Transcript;
                }
            }
        }
        catch (System.Exception ex)
        {
            Console.WriteLine(ex.Message);
            return result;
        }

        return result;
    }

Звук хорошо воспроизводится как на стороне клиента, так и на файле на стороне сервера послезапись в файл.

Я правильно указал путь GOOGLE_APPLICATION_CREDENTIALS.

Но я получаю пустой ответ.Пожалуйста, скажите мне, если я что-то упустил

...