> **Источник:** https://python-all.ru/3.6/library/sndhdr.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 22.8. [`sndhdr`](https://python-all.ru/3.6/library/sndhdr.html#module-sndhdr) – Определение типа звукового файла

**Исходный код:** [Lib/sndhdr.py](https://python-all.ru/src/3.6/Lib/sndhdr.py)

---

Модуль [`sndhdr`](https://python-all.ru/3.6/library/sndhdr.html#module-sndhdr) предоставляет вспомогательные функции, которые пытаются определить тип звуковых данных в файле. Если этим функциям удаётся определить тип звуковых данных, хранящихся в файле, они возвращают именованный кортеж [`namedtuple()`](https://python-all.ru/3.6/library/collections.html#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`. Последний элемент кортежа, *bits\_per\_sample*, будет либо размером выборки в битах, либо `'A'` для A-LAW, либо `'U'` для u-LAW.

#### `sndhdr.what(filename)`

Определяет тип звуковых данных, хранящихся в файле *filename*, с помощью [`whathdr()`](https://python-all.ru/3.6/library/sndhdr.html#sndhdr.whathdr). В случае успеха возвращает именованный кортеж, как описано выше, в противном случае возвращается `None`.

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

#### `sndhdr.whathdr(filename)`

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

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