代码改变世界

wav 与 pcm 互转

2021-09-26 10:40  dreamboy2000  阅读(2157)  评论(0编辑  收藏  举报

语音wav转pcm可以用ffmpeg工具,也可以自己写,主要是要了解pcm和wav的格式以及头信息的: pcm 是没有头信息的,wav有44字节的头文件,所以去掉44字节的头文件就okay了

1 import os
2 import numpy as np
3 f = open("sw02725-A_018202-018583#sw02141-B_013798-014064.wav")
4 f.seek(0)
5 f.read(44)
6 data = np.fromfile(f, dtype=np.int16)
7 data.tofile("test.pcm")

PCM转wav就比较简单了,有wave库, 可以直接加头信息

 1 imprort wave
 2 import os
 3 
 4 f = open(pcm_file,'rb')
 5 str_data  = f.read()
 6 wave_out=wave.open(wav_file,'wb')
 7 wave_out.setnchannels(1)
 8 wave_out.setsampwidth(2)
 9 wave_out.setframerate(8000)
10 wave_out.writeframes(str_data)