# `sndhdr` --- サウンドファイルの識別

ソースコード: Lib/sndhdr.py

バージョン 3.11 で非推奨、バージョン 3.13 で削除予定: The `sndhdr` module is deprecated (see PEP 594 for details and alternatives).

`sndhdr` モジュールには、ファイルに保存されたサウンドデータの形式を識別するのに便利な関数が定義されています。どんな形式のサウンドデータがファイルに保存されているのか識別可能な場合、これらの関数は5つの属性、つまり(`filetype`, `framerate`, `nchannels`, `nframes`, `sampwidth`)で構成される `namedtuple()` を返します。 type はデータの形式を示す文字列で、 `'aifc'`, `'aiff'`, `'au'`, `'hcom'`, `'sndr'`, `'sndt'`, `'voc'`, `'wav'`, `'8svx'`, `'sb'`, `'ub'`, `'ul'` のうちの一つです。 sampling_rate は実際のサンプリングレート値で、未知の場合や読み取ることが出来なかった場合は `0` です。同様に、 channels はチャンネル数で、識別できない場合や読み取ることが出来なかった場合は `0` です。 frames はフレーム数で、識別できない場合は `-1` です。タプルの最後の要素 bits_per_sample はサンプルサイズを示すビット数ですが、A-LAWなら `'A'`, u-LAWなら `'U'` です。

sndhdr.what(filename)

  `whathdr()` を使って、ファイル filename に保存されたサウンドデータの形式を識別します。識別可能なら上記のnamedtupleを返し、識別できない場合は `None` を返します。

  バージョン 3.5 で変更: 結果が tuple から namedtuple に変更されました。

sndhdr.whathdr(filename)

  ファイルのヘッダ情報をもとに、保存されたサウンドデータの形式を識別します。ファイル名は filename で渡されます。識別可能なら上記の namedtuple を返し、識別できない場合は `None` を返します。

  バージョン 3.5 で変更: 結果が tuple から namedtuple に変更されました。

The following sound header types are recognized, as listed below with the return value from `whathdr()`: and `what()`:

値 | Sound header format
--- | ---
`'aifc'` | Compressed Audio Interchange Files
`'aiff'` | Audio Interchange Files
`'au'` | Au Files
`'hcom'` | HCOM Files
`'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 Files
`'ul'` | uLAW Audio Files

sndhdr.tests

  個別のテストを行う関数のリスト。それぞれの関数は二つの引数をとります: バイトストリームとオープンされたファイルのようにふるまうオブジェクト。 `what()` がバイトストリームとともに呼び出されたときは、ファイルのようにふるまうオブジェクトは `None` でしょう。

  テストが成功した場合は、テスト関数は画像形式を表す文字列を返すべきです。あるいは、失敗した場合は `None` を返すべきです。

例:

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