首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google Speech to Text (Speech Recognition)只识别音频的前几秒钟

Google Speech to Text (Speech Recognition)只识别音频的前几秒钟
EN

Stack Overflow用户
提问于 2021-03-29 22:19:19
回答 1查看 101关注 0票数 0

我在node js中使用了Google的语音转文本API。它返回对前几个单词的识别,但随后会忽略音频文件的其余部分。对于任何上传的文件,截止点大约是5-7秒。

我试过synchronous speech recognition for shorter audio files。(使用如下所示的MP3文件的示例)

代码语言:javascript
运行
复制
    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);

我也尝试过asynchronous recognition for longer audio files (使用WAV文件的例子如下所示)

代码语言:javascript
运行
复制
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秒内识别良好,然后什么都没有。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2021-04-01 00:11:58

@Ricco D是绝对正确的,我错误地打印了结果...

当你试图转录更长的文件时,Google speech to Text会根据它在语音中检测到停顿的时间来打断你的转录。

您的response.results[]数组将有多个条目,您需要遍历这些条目才能打印完整的文本。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66855927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档