sndhdr
--- 判定聲音檔案的型別¶
原始碼:Lib/sndhdr.py
sndhdr
提供了企圖猜測檔案中聲音資料型別的工具函式。當這些函式可以推測出儲存在檔案中聲音資料的型別,它們分別回傳一個 collections.namedtuple()
,包含了五種屬性:(filetype
、framerate
、nchannels
、nframes
、sampwidth
)。這些 type 的值表示資料的型別,會是以下字串之一:'aifc'
、'aiff'
、'au'
、'hcom'
、'sndr'
、'sndt'
、'voc'
、'wav'
、'8svx'
、'sb'
、'ub'
或 'ul'
。sampling_rate(取樣頻率)可能是實際值、或者當未知或者難以解碼時為 0
。同樣的,channels(影像通道數)也會回傳實際值或者在無法推測或難以解碼時回傳 0
。frames(幀數)則是實際值或 -1
。tuple 的最後一項,bits_per_sample 為位元表示的取樣大小,或者在 A-LAW 時為 'A'
,u-LAW 時為 'U'
。
- sndhdr.what(filename)¶
使用
whathdr()
推測儲存在 filename 檔案中聲音資料的型別。如果成功,回傳上述的 namedtuple(附名元組),否則回傳None
。在 3.5 版本變更: 結果從 tuple 改為 namedtuple。
- sndhdr.whathdr(filename)¶
根據檔案標頭 (header) 推測儲存在檔案中的聲音資料型別。檔名由 filename 給定。這個函式在成功時回傳上述 namedtuple,或在失敗時回傳
None
。在 3.5 版本變更: 結果從 tuple 改為 namedtuple。
下列音频标头类型是可识别的,带有如下来自 whathdr()
的返回值: 以及 what()
:
值 |
音频标头格式 |
---|---|
|
Compressed Audio Interchange Files |
|
Audio Interchange Files |
|
Au 檔案 |
|
HCOM 檔案 |
|
Sndtool Sound Files |
|
Creative Labs Audio Files |
|
Waveform Audio File Format Files |
|
8-Bit Sampled Voice Files |
|
Signed Byte Audio Data Files |
|
UB 檔案 |
|
uLAW 音檔 |
- sndhdr.tests¶
执行单个测试的函数列表。每个函数都有两个参数:字节流和类似开放文件的对象。当
what()
用字节流调用时,类文件对象将是None
。如果测试成功,这个测试函数应当返回一个描述图像类型的字符串,否则返回
None
。
範例:
>>> import sndhdr
>>> imghdr.what('bass.wav')
'wav'
>>> imghdr.whathdr('bass.wav')
'wav'