首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何执行实时语音识别? Google语音到文本

如何执行实时语音识别? Google语音到文本
EN

Stack Overflow用户
提问于 2019-01-31 06:12:02
回答 1查看 756关注 0票数 0

我在试着把我的扬声器的声音录下来

我正在把声音从扬声器传到node.js文件(https://askubuntu.com/a/850174)

代码语言:javascript
复制
parec -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor --rate=16000 --channels=1 | node transcribe.js

这是我的transcribe.js

代码语言:javascript
复制
const speech = require('@google-cloud/speech');

const client = new speech.SpeechClient();

const encoding = 'LINEAR16';
const sampleRateHertz = 16000;
const languageCode = 'en-US';

const request = {
    config: {
        encoding: encoding,
        sampleRateHertz: sampleRateHertz,
        languageCode: languageCode,
    },
    interimResults: false, // If you want interim results, set this to true
};

const recognizeStream = client
    .streamingRecognize(request)
    .on('error', console.error)
    .on('data', data => {
        console.log(
            `Transcription: ${data.results[0].alternatives[0].transcript}`
        );
    });

process.stdin.pipe(recognizeStream);

但是Google语音到文本在1分钟内对流媒体识别有一个限制。因此,我有错误“超过了最大允许的流持续时间65秒。

我怎样才能把溪流分割成块,用沉默来分割,或者用30秒的时间分割成块?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-31 15:45:30

我们可以将音频传输到sox实用程序中,以便以0.3s的持续时间和不超过55s的沉默来分割它。

代码语言:javascript
复制
sox -t raw -r 16k -e signed -b 16 -c 1 - ./chunks/output.wav  silence 1 0.3 0.1% 1 0.3 0.1% trim 0 55 : newfile : restart

现在,我们可以查看新文件块dir,并将其流到Google Cloud语音到文本API。

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

https://stackoverflow.com/questions/54454383

复制
相关文章

相似问题

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