Google Speech to Text API дает разные результаты локально, чем онлайн-демонстрация - PullRequest
2 голосов
/ 25 июня 2019

6-секундный аудиофайл в формате mp3 ( загрузка ) Сначала был протестирован непосредственно на https://cloud.google.com/speech-to-text/, и ответ был таким, как ожидалось.

«Привет, брат, как дела? У меня все хорошо, надеюсь, у мамы все хорошо»

Затем я создал Firebase Function (см. Код ниже):

const speech = require('@google-cloud/speech').v1p1beta1
exports.speechToText = functions.https.onRequest(async (req, res) => {
  try {
    // Creates a client
    const client = new speech.SpeechClient()
    const gcsUri = `gs://xxxxx.appspot.com/speech.mp3`

    const config = {
      encoding: 'MP3',
      languageCode: 'en-US',
      enableAutomaticPunctuation: false,
      enableWordTimeOffsets: false,
    }
    const audio = {
      uri: gcsUri,
    }

    const request = {
      config: config,
      audio: audio,
    }

    // Detects speech in the audio file
    const [response] = await client.recognize(request)
    const transcription = response.results
      .map(result => result.alternatives[0].transcript)
      .join('\n')
    console.log(`Transcription: ${transcription}`)
    res.send({ response })
  } catch (error) {
    console.log('error:', error)
    res.status(400).send({
      error,
    })
  }
})

И я получаю следующий НЕПРАВИЛЬНЫЙ ответ:

«Привет, брат, как дела, надеюсь, у тебя все хорошо»

ОБНОВЛЕНИЕ: Такой же НЕПРАВИЛЬНЫЙ ответ получен при локальном запуске.Таким образом, облачные функции не являются проблемой.

ОБНОВЛЕНИЕ # 2: Установка model:'video' ИЛИ model:'phone_call' в конфигурации решает проблему.то есть

    const config = {
      encoding: 'MP3',
      languageCode: 'en-US',
      enableAutomaticPunctuation: false,
      enableWordTimeOffsets: false,
      model: 'phone_call',
    }

1 Ответ

0 голосов
/ 25 июня 2019

установка model:'video' ИЛИ model:'phone_call' в config решила проблему. * 1004 т.е. *

const config = {
 encoding: 'MP3',
 languageCode: 'en-US',
 enableAutomaticPunctuation: false,
 enableWordTimeOffsets: false,
 model: 'phone_call', 
}

Полагаю, модель default не работает с определенным типом звука.

...