如何在nodejs中禁用谷歌云语音转换为文本

时间:2019-05-18 09:28:39

标签: google-cloud-speech

我无法通过任何方法停止streamingRecognize。我尝试取消流传输,尝试取消设置客户端,但仍然收到“音频超时错误:”。有什么方法可以停止识别?

2 个答案:

答案 0 :(得分:0)

如果有人以这种方式遇到相同的问题,我可以无错误地停止它:

let recognizeStream = client
.streamingRecognize(request)
.on('error', console.error)
.on('data', data =>
    {
        console.log(data.results[0].alternatives[0].transcript);
        // first stop the microphone stream
        micInstance.stop();
        //call again to client.streamingRecognize with request set to null
        client.streamingRecognize(null);
    }
);

但是现在我得到一个错误响应:[4]在node_modules / grpc / src / common.js:91:15上的DEADLINE_EXCEEDED)

答案 1 :(得分:0)

当我们呼叫streamingRecognize()时,返回给我们的是输入stream。然后,只要有输入,我们就将数据记录推入流中。当我们发送完所有希望发送的数据后,我们必须指示语音给文本处理器,不再有要处理的数据。为此,我们调用流的end()方法。

在您的示例片段中:

let recognizeStream = client
.streamingRecognize(request)
.on('error', console.error)
.on('data', data =>
    {
        console.log(data.results[0].alternatives[0].transcript);
        recognizeStream.end();
    }
);