gpt4 book ai didi

javascript - 下采样 48khz 到 16khz - Javascript

转载 作者:搜寻专家 更新时间:2023-11-01 00:41:28 24 4
gpt4 key购买 nike

目前 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

enter image description here

Matlab 图 - 48k

48khz

最佳答案

在我看来,数据正在写入立体声文件,对吧?这可以解释起伏不定的波形,因为您只有左 channel 的数据,而右 channel 充满了零。

此外,您正在创建 Int16Array() 使其成为原始缓冲区的长度,但它实际上应该只是长度的三分之一,因为您只使用每三个样本。这可能可以解释为什么渲染后它们的大小相同。

我不确定如何解释 matlab 图,但这就是我的样子。

关于javascript - 下采样 48khz 到 16khz - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32946461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com