Python讀取WAV檔案的幾種方式整理
阿新 • • 發佈:2018-12-03
1)scipy
from scipy.io import wavfile
import numpy as np
sample_rate, sig = wavfile.read('new.wav')
print("取樣率: %d" % sample_rate)
print(sig)
if sig.dtype == np.int16:
print("PCM16位整形")
if sig.dtype == np.float32:
print("PCM32位浮點")
輸出如下:
取樣率: 16000
[-1466 -733 -733 ... 2199 1832 1466]
PCM16位整形
2)pysoundfile
import soundfile as sf
sig, sample_rate = sf.read('new.wav')
print("取樣率:%d" % sample_rate)
print(sig)
輸出如下:
取樣率:16000
[-0.04473877 -0.02236938 -0.02236938 ... 0.06710815 0.0559082
0.04473877]
3)wave
不推薦此庫
————————————————分割線———————————————–
WAV格可以用16位整形或者32位浮點編碼
scipy可以通過輸出資料的 dtype 格式來判斷
pysoundfile 全部自動轉換成float32來輸出