"sndhdr" --- 判定聲音檔案的型別
*******************************

**原始碼：**Lib/sndhdr.py

自從版本 3.11 後不推薦使用，將會自版本 3.13 中移除。: "sndhdr" 模組
(module) 即將被棄用（詳情與替代方案請見 **PEP 594**）。

======================================================================

"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()":

+--------------+--------------------------------------+
| 值           | 音频标头格式                         |
|==============|======================================|
| "'aifc'"     | Compressed Audio Interchange Files   |
+--------------+--------------------------------------+
| "'aiff'"     | Audio Interchange Files              |
+--------------+--------------------------------------+
| "'au'"       | Au 檔案                              |
+--------------+--------------------------------------+
| "'hcom'"     | HCOM 檔案                            |
+--------------+--------------------------------------+
| "'sndt'"     | Sndtool Sound Files                  |
+--------------+--------------------------------------+
| "'voc'"      | Creative Labs Audio Files            |
+--------------+--------------------------------------+
| "'wav'"      | Waveform Audio File Format Files     |
+--------------+--------------------------------------+
| "'8svx'"     | 8-Bit Sampled Voice Files            |
+--------------+--------------------------------------+
| "'sb'"       | Signed Byte Audio Data Files         |
+--------------+--------------------------------------+
| "'ub'"       | UB 檔案                              |
+--------------+--------------------------------------+
| "'ul'"       | uLAW 音檔                            |
+--------------+--------------------------------------+

sndhdr.tests

   执行单个测试的函数列表。每个函数都有两个参数：字节流和类似开放文件
   的对象。当 "what()" 用字节流调用时，类文件对象将是 "None"。

   如果测试成功，这个测试函数应当返回一个描述图像类型的字符串，否则返
   回 "None"。

範例：

   >>> import sndhdr
   >>> imghdr.what('bass.wav')
   'wav'
   >>> imghdr.whathdr('bass.wav')
   'wav'
