首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在socket.io上传输原始PCM会产生噪声

在socket.io上传输原始PCM会产生噪声
EN

Stack Overflow用户
提问于 2022-03-10 16:18:28
回答 1查看 159关注 0票数 0

我正在制作奇妙的样本这里

本质上,我使用getUserMedia从麦克风捕捉音频,然后将每帧的采样降到每秒16000个样本的Int16Array。

在服务器端,我可以接收音频和使用wav包,我也可以保存WAV文件。

问题是,当我不想降低采样(是的,我知道带宽的含义,但这是我的要求)。

我能够流原始音频(在Float32Array中),并能够将其保存为WAV。然而,有很多白噪音加进来。

当我在服务器端下样例时,WAV包无法处理它,因为它不再是一个可行的WAV帧。

我试着用

代码语言:javascript
复制
var samples = new Float32Array(e.inputBuffer.getChannelData(0))
socket.emit('binaryData',samples.buffer);

并在服务器端接收到

代码语言:javascript
复制
socket.on('binaryData',function (data){
 var recovered = new Float32Array(data);
 wavFileWriter.write(recovered.buffer);
});

但这也行不通。

我现在想知道Socket.io是否对下采样函数中涉及的数据做了些什么。

还是我漏掉了什么明显的东西?

编辑1:为了排除Socket.io问题,我创建了具有以下设置的服务器,但没有任何改进:

代码语言:javascript
复制
{
    perMessageDeflate: false,
    httpCompression: false,
    maxHttpBufferSize:1e8
  }
EN

回答 1

Stack Overflow用户

发布于 2022-03-11 19:50:53

解决办法如下:

代码语言:javascript
复制
const f32 = new Float32Array(data.buffer, 0, data.byteLength / Float32Array.BYTES_PER_ELEMENT);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71427419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档