本文主要是介绍使用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是完全相同的。
这篇关于使用pydub库操作与二进制音频数据互转的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!