Node.js 解析来自watson的数据
大家好,我用沃森的演讲发短信,一切都很顺利,我设置了一个暂停时间,然后把我说的打印出来。我的下一个目标是实时解析我所说的内容,例如,当我说“停止”时,我停止识别流 代码是:Node.js 解析来自watson的数据,node.js,ibm-watson,Node.js,Ibm Watson,大家好,我用沃森的演讲发短信,一切都很顺利,我设置了一个暂停时间,然后把我说的打印出来。我的下一个目标是实时解析我所说的内容,例如,当我说“停止”时,我停止识别流 代码是: const recognizeStream = speechToText.createRecognizeStream({ content_type: 'audio/wav', }); const micInstance = mic({ channels: 2, debug: true, rate: '44100'
const recognizeStream = speechToText.createRecognizeStream({
content_type: 'audio/wav',
});
const micInstance = mic({
channels: 2,
debug: true,
rate: '44100',
});
const wavStream = new wav.Writer({
channels: 2,
sampleRate: 44100
});
const micInputStream = micInstance.getAudioStream();
micInputStream.on('data', (_data) => {
console.log('Recieve Input Stream: ' + _data.length);
});
micInputStream.on('error', (err) => {
console.log('Error in Input Stream: ' + err);
});
micInputStream.on('startComplete', () => {
console.log('Got SIGNAL startComplete');
setTimeout(() => {
micInstance.stop();
}, 5000);
});
micInputStream.on('silence', () => {
console.log('Got SIGNAL silence');
});
micInputStream.on('processExitComplete', () => {
console.log('Got SIGNAL processExitComplete');
});
micInputStream.pipe(wavStream);
wavStream.pipe(recognizeStream);
// process.stdin.resume();
recognizeStream.on('end', () => {
process.exit();
});
recognizeStream.on('data', (data) => {
console.log('data: ', data.toString());
});
micInstance.start();
这是可能的吗?您将面临的问题是延迟。即,从您说“停止”到您的应用程序意识到已请求“停止”和关闭流之间的时间间隔
当您说“停止”时,流的一部分必须转移到云中的服务;服务对“停止”之前、期间和之后发出的语音执行语音到文本操作;服务将转录发送回应用程序。应用程序意识到已请求“停止”。与此同时,该应用程序继续将音频流传送到该服务 似乎您只需要在“停止”时取消订阅流。你有什么问题?我在停车后接收数据,我的目标是在说话时接收数据。我不确定问题出在哪里。例如,定义一个布尔变量isDataReceived。有什么解决方案吗?