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'