6秒mp3音频文件(download) 首先直接在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,
})
}
})
然后我得到以下错误响应:
“你好兄弟,你好吗,希望一切都很好”
更新: 在本地运行时,会收到相同的INCORRECT响应。因此,云功能不是问题。
更新#2:
在配置中设置model:'video'
或model:'phone_call'
解决了这个问题。即
const config = {
encoding: 'MP3',
languageCode: 'en-US',
enableAutomaticPunctuation: false,
enableWordTimeOffsets: false,
model: 'phone_call',
}
答案 0 :(得分:0)
在model:'video'
中设置model:'phone_call'
或config
解决了该问题。即
const config = {
encoding: 'MP3',
languageCode: 'en-US',
enableAutomaticPunctuation: false,
enableWordTimeOffsets: false,
model: 'phone_call',
}
我认为default
模型不适用于某些类型的音频。