1. 程式人生 > >Python讀取WAV檔案的幾種方式整理

Python讀取WAV檔案的幾種方式整理

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來輸出