如何解决使用 zlib 压缩 pyaudio 流
我正在尝试使用 pyaudio 从服务器和客户端之间的麦克风输入发送音频,我只需要以 8000 的速率采样的语音质量。没有压缩它工作正常,我正在尝试添加 zlib 压缩以减少带宽.
在我的服务器中,stream_callback 函数是
def callback(in_data,frame_count,time_info,status):
for s in read_list[1:]:
s.send(zlib.compress(in_data))
return (None,pyaudio.paContinue)
在我的客户中,我试图像这样解压
try:
while True:
data = s.recv(CHUNK)
stream.write(zlib.decompress(data,zlib.MAX_WBITS | 16))
except KeyboardInterrupt:
pass
我用 zlib.MAX_WBITS 尝试了各种参数,但都返回此错误:
zlib.error: Error -3 while decompressing data: incorrect header check
编辑:我也试过用 zlib.decompress 不带第二个参数
有人可以建议我做错了什么吗,TIA
解决方法
您根本不需要 arr1 = [
{
name: 'Rohan',surname: 'Mehra',age: '15',date: "2021-01-19",location: 'Goa'
},{
name: 'Aman',surname: 'Kohli',age: '14',location: 'Kolkata'
},{
name: 'Sam',surname: 'Sharma',age: '16',date: "2021-01-21",location: 'Mumbai'
}
]
arr2 = [
{
rollNo: 1,marks: 100,name: 'Rohan',},{
rollNo: 2,marks: 90,{
rollNo: 3,marks: 70,ExamCenter: {
place: 'Mumbai'
}
}
]
res = arr1.map(item => {
keys1 = Object.keys(item);
let max = 0;
const temp = arr2.reduce((prev,item2) => {
maxTemp = keys1.filter(key => item[key] === item2[key]).length;
if(maxTemp > max) {
max = maxTemp;
prev = item2;
}
return prev;
},{})
if(temp) {
return {...item,...temp}
}
});
console.log(res);
的第二个参数。您在问题中的内容将寻找 gzip 流而不是 zlib 流。
要压缩音频,您应该使用音频压缩器。看看this answer。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。