谷歌语音到文本(语音识别)只识别音频的前几秒



我在node-js中使用Google的Speech-to-Text API。它返回对前几个单词的识别,但随后忽略音频文件的其余部分。截止点是任何上传文件的5-7秒左右。

我尝试过对较短的音频文件进行同步语音识别。(使用MP3文件的示例如下所示(

filename = './TEST/test.mp3';
const client = new speech.SpeechClient();
//configure the request:
const config = {
enableWordTimeOffsets: true,
sampleRateHertz: 44100,
encoding: 'MP3',
languageCode: 'en-US',
};
const audio = {
content: fs.readFileSync(filename).toString('base64'),
};
const request = {
config: config,
audio: audio,
};

// Detects speech in the audio file
const [response] = await client.recognize(request);

我还尝试过对较长音频文件进行异步识别(使用WAV文件的示例如下所示(

filename = './TEST/test.wav';
const client = new speech.SpeechClient();
//configure the request:
const config = {
enableWordTimeOffsets: true,
languageCode: 'en-US',
};
const audio = {
content: fs.readFileSync(filename).toString('base64'),
};
const request = {
config: config,
audio: audio,
};
//Do a longRunningRecognize request
const [operation] = await client.longRunningRecognize(request);
const [response] = await operation.promise();

我在WAV文件和MP3中都尝试过这些实现。结果总是完全一样的:前5秒识别良好,然后什么都没有。

如有任何帮助,我们将不胜感激!

@Ricco D绝对正确,我打印的结果不正确。。。

当你试图转录更长的文件时,谷歌语音到文本会根据检测到语音停顿的时间来分解你的转录。

您的response.results[]数组将有多个条目,您需要循环这些条目才能打印完整的成绩单。

有关更多详细信息,请参阅文档:https://cloud.google.com/speech-to-text/docs/basics#responses

相关内容

  • 没有找到相关文章

最新更新