sndhdr — Определите тип звукового файла

Исходный код: Lib/sndhdr.py

Утратил актуальность с версии 3.11, будет удален в версии 3.13: Модуль sndhdr устарел (подробности и альтернативные варианты см. в разделе PEP 594).


sndhdr предоставляет служебные функции, которые пытаются определить тип звуковых данных, содержащихся в файле. Когда эти функции могут определить, какой тип звуковых данных хранится в файле, они возвращают значение 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. Последний элемент в кортеже, bits_per_sample, будет либо размером выборки в битах, либо 'A' для A-ЗАКОНА, либо 'U' для u-ЗАКОНА.

sndhdr.what(filename)

Определяет тип звуковых данных, хранящихся в файле filename, с помощью whathdr(). В случае успешного завершения возвращает namedtuple, как описано выше, в противном случае возвращается None.

Изменено в версии 3.5: Результат изменен с кортежа на именованный кортеж.

sndhdr.whathdr(filename)

Определяет тип звуковых данных, хранящихся в файле, на основе заголовка файла. Имя файла задается через filename. В случае успешного выполнения эта функция возвращает значение namedtuple, как описано выше, или None.

Изменено в версии 3.5: Результат изменен с кортежа на именованный кортеж.

Распознаются следующие типы звуковых заголовков, перечисленные ниже, с возвращаемым значением из whathdr(): и what():

Ценность

Формат звукового заголовка

'aifc'

Сжатые аудиофайлы для обмена данными

'aiff'

Файлы для обмена аудиосигналами

'au'

Файлы Au

'hcom'

COM-файлы

'sndt'

Звуковые файлы Sndtool

'voc'

Аудиофайлы Creative Labs

'wav'

Файлы формата аудиофайла с формой сигнала

'8svx'

8-Разрядные дискретизированные голосовые файлы

'sb'

Подписанные байтовые файлы аудиоданных

'ub'

Файлы UB

'ul'

Аудиофайлы uLAW

sndhdr.tests

Список функций, выполняющих отдельные тесты. Каждая функция принимает два аргумента: поток байтов и открытый файловый объект. Когда what() вызывается с помощью потока байтов, файловым объектом будет None.

Тестовая функция должна возвращать строку, описывающую тип изображения, если тест прошел успешно, или None в случае неудачи.

Пример:

>>> import sndhdr
>>> imghdr.what('bass.wav')
'wav'
>>> imghdr.whathdr('bass.wav')
'wav'
Вернуться на верх