1. 程式人生 > 程式設計 >python wav模組獲取取樣率 取樣點聲道量化位數(例項程式碼)

python wav模組獲取取樣率 取樣點聲道量化位數(例項程式碼)

安裝:

pip install wave

在wav 模組中 ,主要介紹一種方法:getparams(),該方法返回的結果如下:

_wave_params(nchannels=1,sampwidth=2,framerate=48000,nframes=171698592,comptype='NONE',compname='not compressed')

引數解釋:

  • nchannels:聲道數
  • sampwidth:量化位數(byte)
  • framerate:取樣頻率
  • nframes:取樣點數

程式碼如下:

import wave

wavFile = r"C:\Users\Lenovo\Desktop\G0001.wav"
f = wave.open(wavFile)
# 音訊頭 引數
params = f.getparams()
Channels = f.getnchannels()
SampleRate = f.getframerate()
bit_type = f.getsampwidth() * 8
frames = f.getnframes()
Duration = frames / float(SampleRate) # 單位為s

print("音訊頭引數:",params)
print("通道數(Channels):",Channels)
print("取樣率(SampleRate):",SampleRate)
print("位元(Precision):",bit_type)
print("取樣點數(frames):",frames)
print("幀數(Duration):",Duration)

輸出結果:

音訊頭引數: _wave_params(nchannels=1,compname='not compressed')
通道數(Channels): 1
取樣率(SampleRate): 48000
位元(Precision): 16
取樣點數(frames): 171698592
幀數(Duration): 3577.054

驗證:

這是在win 下 使用sox 命令 檢查下的結果:
win 下的sox命令(需要安裝sox,可百度一下) : sox --i G0001.wav

可以看出 ,兩種方法,輸出的結果是一致的。

總結

以上所述是小編給大家介紹的python wav模組獲取取樣率 取樣點聲道量化位數,希望對大家有所幫助!