从沃森解析数据

时间:2018-06-16 17:33:48

标签: node.js ibm-watson

嗨,我正在使用Watson语音文本,一切顺利,我设置了超时,然后打印我说的。我的下一个目标是实时解析我在说什么,例如,当我说“停止”时,我会停止识别流。

代码是:

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();

这可能吗?

1 个答案:

答案 0 :(得分:0)

您将在此处遇到的问题是延迟。即。你说'停止'和你的应用程序意识到已经请求'停止'并关闭流之间的时间间隔。

当你说“停止”时,必须将流的一部分转移到云中的服务;该服务在“停止”之前,期间和之后发出的语音上执行语音操作。该服务将转录发送回应用程序。该应用程序意识到已经请求“停止”。与此同时,应用程序继续将音频流式传输到服务。