有没有一种方法可以强制一个流(stream)的.pipe每隔一段时间或大小写入文件?
基本上,我正在使用 socket io 流,从浏览器发送带有音频的缓冲区,并使用 emit 发送:
浏览器
c.onaudioprocess = function(o)
{
var input = o.inputBuffer.getChannelData(0);
stream1.write( new ss.Buffer( convertFloat32ToInt16( input ) ));
}
服务器 (nodejs)
var fileWriter = new wav.FileWriter('/tmp/demo.wav', {
channels: 1,
sampleRate: 44100,
bitDepth: 16
});
ss(socket).on('client-stream-request', function(stream)
{
stream.pipe(fileWriter);
}
我遇到的问题是,只有在我结束流并停止麦克风时,demo.wav文件才会被写入。但是,我希望它能始终写入,因为我将使用谷歌进行语音识别。你有什么建议吗?如果我使用管道调用谷歌的语音识别,数据块会非常小,谷歌无法识别。