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',
}