使用pydub库操作与二进制音频数据互转
【代码】使用pydub库操作与二进制音频数据互转。
·
一、二进制数据转AudioSegment对象
binary_data = b'...' # 二进制音频数据
combined_audio = AudioSegment.from_file(io.BytesIO(binary_data))
二、AudioSegment对象转二进制数据
binary_data = b'...' # 二进制音频数据
combined_audio = AudioSegment.from_file(io.BytesIO(binary_data))
# 直接获取二进制字节数据时,会缺失44个头部说明字节,我们需要补全
# 获取二进制字节数据
raw_audio = combined_audio.raw_data
# 组装头部字节
header = struct.pack('<4sI4s', b'RIFF', len(raw_audio) + 36, b'WAVE')
header += struct.pack('<4sIHHIIHH', b'fmt ', 16, 1, combined_audio.channels, combined_audio.frame_rate,
combined_audio.frame_rate * combined_audio.channels * combined_audio.sample_width,
combined_audio.channels * combined_audio.sample_width, combined_audio.sample_width * 8)
header += struct.pack('<4sI', b'data', len(raw_audio))
# 添加上头部字节
binary_data_comeback = header + raw_audio
# 此时binary_data_comeback 跟 binary_data是完全相同的。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)