程式語言:Python
Package:wave
官方文件
功能:讀寫 WAV 檔
Package:wave
官方文件
功能:讀寫 WAV 檔
基礎知識
參考此篇 [Python] Pyaudio 教學讀檔範例
寫檔範例
wave
- wave.open(file, mode=None)
- file
- string
- file-like object
- mode
- 'rb' returns a Wave_read object
- 'wb' returns a Wave_write object
- wave.openfp(file, mode)
- for 相容性,功能同 open()
- exception
- wave.Error
- 違反 WAV 規範或應用上的錯誤
Wave_read
- 由 open(file, 'rb') 所回傳
- Wave_read.close()
- 關閉
- Wave_read.getnchannels()
- 取得聲道數 (1 for mono, 2 for stereo)
- Wave_read.getsampwidth()
- 取得 sample width (bytes)
- Wave_read.getframerate()
- 取得取樣率
- Wave_read.getnframes()
- 取得 frames 數目
- Wave_read.getcomptype()
- 取得壓縮格式,目前只支援 'NONE',也就是無壓縮
- Wave_read.getcompname()
- 取得可讀的壓縮格式,通常為 'not compressed'
- Wave_read.getparams()
- 取得所有參數
(nchannels, sampwidth, framerate, nframes, comptype, compname) - Wave_read.readframes(n)
- 讀取 n frames 為 bytes object
- Wave_read.rewind()
- 回到開頭
- Wave_read.getmarkers()
- 回傳 None,單純只為了相容 aifc module
- Wave_read.getmark(id)
- Raise an error,單純只為了相容 aifc module
- Wave_read.setpos(pos)
- 設定讀取位置
- Wave_read.tell()
- 取得目前讀取位置
Wave_write
- 由 open(file, 'wb') 所回傳
- 一旦寫入資料,不可再設定任何參數
- Wave_write.close()
- 需確認寫入資料與 nframes 一致,才可關閉
- Wave_write.setnchannels(n)
- 設定聲道數 (1 for mono, 2 for stereo)
- Wave_write.getnchannels()
- 取得聲道數 (1 for mono, 2 for stereo)
- Wave_write.setsampwidth(n)
- 設定 sample width (bytes)
- Wave_write.getsampwidth(n)
- 取得 sample width (bytes)
- Wave_write.setframerate(n)
- 設定取樣率,非整數自動四捨五入
- Wave_write.getframerate(n)
- 取得取樣率
- Wave_write.setnframes(n)
- 設定 frames 數目
- 若不一致,且 stream 可 seek,則會自動更正
- Wave_write.getnframes(n)
- 取得 frames 數目
- Wave_write.setcomptype(type, name)
- 只支援 type NONE
- Wave_write.getcomptype()
- 取得壓縮格式,目前只支援 'NONE',也就是無壓縮
- Wave_write.getcompname()
- 取得可讀的壓縮格式,通常為 'not compressed'
- Wave_write.setparams(tuple)
- 設定所有參數
(nchannels, sampwidth, framerate, nframes, comptype, compname) - Wave_write.getparams()
- 取得所有參數
(nchannels, sampwidth, framerate, nframes, comptype, compname) - Wave_write.tell()
- 取得目前寫入位置
- Wave_write.writeframesraw(data)
- 寫入資料,但不更正 nframes,格式可為 bytes-like object
- Wave_write.writeframes(data)
- 寫入資料,並確認 nframes 的正確性
stream 可 seek 的則會自動更正,格式可為 bytes-like object
留言
張貼留言