600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 语音处理:Python实现wav与pcm文件格式转换

语音处理:Python实现wav与pcm文件格式转换

时间:2020-01-23 05:24:17

相关推荐

语音处理:Python实现wav与pcm文件格式转换

语音处理:Python实现wav与pcm格式转换

知识点wav转pcmpcm转wav参考资料

知识点

wave包的读写及参数设置文件路径操作拼接音频相关参数了解

wav文件存储的参数信息有:通道数、采样率、位深,其他参数如文件大小,数据大小等。详细内容见:wav文件格式解析。

wav转pcm

思路:

利用wav工具包,跳过包头,直接读取裸流bytes数据将裸流数据wb模式按二进制写入pcm文件中

import osimport wavedef wav2pcm(input_dir, out_dir) :with open(input_dir, 'rb') as wavfile:ori_data = wavfile.read() ## 读出来是裸流bytes数据wavfile.close()with open(out_dir, 'wb') as pcmfile:pcmfile.write(ori_data)pcmfile.close()if __name__ == '__main__':wav2pcm(os.path.join(r"D:\seq\input\6channel_file.wav"), r"D:\seq\out\6channel_file_48k_16bit.pcm")

pcm转wav

## 功能:将pcm文件转成对应wav文件,无压缩import osimport wavedef pcm2wav(pcm_path, out_path, channel, sample_rate):with open(pcm_path, 'rb') as pcm_file:pcm_data = pcm_file.read()pcm_file.close()with wave.open(out_path, 'wb') as wav_file:## 不解之处, 16 // 8, 第4个参数0为何有效wav_file.setparams((channel, 16 // 8, sample_rate, 0, 'NONE', 'NONE'))wav_file.writeframes(pcm_data)wav_file.close()if __name__ == '__main__':dir = r"C:\Users\Administrator\Desktop\test"out_dir = dir + r"\outwav"sample_rate = 48000channel = 1out_path = os.path.join(out_dir, "16k.wav")pcm2wav(os.path.join(dir, "16k.pcm"), out_path, channel, sample_rate)

参考资料

Python的wave工具包读写WAV操作说明WAV和PCM的转换(Python版本)python音频处理常用到的操作python标准库wave的使用说明PCM数据包格式说明WAV文件格式解析

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。