Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 解析来自watson的数据_Node.js_Ibm Watson - Fatal编程技术网

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。有什么解决方案吗?