【发布时间】:2015-10-05 10:34:30
【问题描述】:
目前getUserMedia 正在获取 48Khz 的音频(来自麦克风)。但是我的语音识别服务器只能使用 16Khz 的音频(可能是 48Khz,但它会进行下采样)。我的目标是在客户端进行下采样时节省带宽。
recorder.onaudioprocess = function(e){
if(!recording) return;
console.log ('recording');
left = e.inputBuffer.getChannelData(0);
Stream.write(convertoFloat32ToInt16(left));//write to server
}
function convertoFloat32ToInt16(buffer) {
var l = buffer.length;
var buf = new Int16Array(l)
while (l--) {
if(l%3==0){
buf[l/3] = buffer[l]*0xFFFF;
}
}
return buf.buffer
}
您还有其他实现吗? 编辑: 我将nodejs服务器录制相同的音频放到一个文件中,然后用matlab打开它。这些文件具有相同的大小。不应该,对吧?
Matlab 绘图 - 16k
Matlab 绘图 - 48k
【问题讨论】:
-
既然您没有真正遇到问题,但您正在寻求确认,我会说您的帖子属于 codereview,而不是 stackoverflow。投票结束这里。 (codereview.stackexchange.com)
标签: javascript node.js web-audio-api getusermedia