Документация Python неофициальный перевод

aifc.md

144 строк · 12.0 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.9/library/aifc.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# [`aifc`](https://python-all.ru/3.9/library/aifc.html#module-aifc) – Чтение и запись файлов AIFF и AIFC89**Исходный код:** [Lib/aifc.py](https://python-all.ru/src/3.9/Lib/aifc.py)1011Устарело с версии 3.11: Модуль [`aifc`](https://python-all.ru/3.9/library/aifc.html#module-aifc) устарел (подробнее см. [**PEP 594**](https://python-all.ru/3.9/library/aifc.html)).1213---1415Этот модуль обеспечивает поддержку чтения и записи файлов AIFF и AIFF-C. AIFF – это формат Audio Interchange File Format, предназначенный для хранения цифровых аудио сэмплов в файле. AIFF-C – более новая версия формата, включающая возможность сжатия аудиоданных.1617Аудиофайлы имеют ряд параметров, описывающих аудиоданные. Частота дискретизации (или частота кадров) – это количество раз в секунду, которое звук дискретизируется. Количество каналов указывает, является ли аудио моно, стерео или квадро. Каждый кадр состоит из одного сэмпла на канал. Размер сэмпла – это размер в байтах каждого сэмпла. Таким образом, кадр состоит из `nchannels * samplesize` байт, а секунда аудио занимает `nchannels * samplesize * framerate` байт.1819Например, аудио CD-качества имеет размер сэмпла два байта (16 бит), использует два канала (стерео) и имеет частоту кадров 44 100 кадров/сек. Это даёт размер кадра 4 байта (2\*2), а одна секунда аудио занимает 2\*2\*44100 байт (176 400 байт).2021Модуль [`aifc`](https://python-all.ru/3.9/library/aifc.html#module-aifc) определяет следующую функцию:2223#### `aifc.open(file, mode=None)`2425Открывает файл AIFF или AIFF-C и возвращает экземпляр объекта с методами, которые описаны ниже. Аргумент *file* – это либо строка с именем файла, либо [файловый объект](https://python-all.ru/3.9/glossary.html#term-file-object). *mode* должен быть `'r'` или `'rb'`, если файл открывается для чтения, или `'w'` или `'wb'`, если файл открывается для записи. Если не указан, используется `file.mode` (если файл существует), иначе `'rb'`. При использовании для записи файловый объект должен поддерживать позиционирование, если заранее не известно общее количество сэмплов и не используются `writeframesraw()` и `setnframes()`. Функция [`open()`](https://python-all.ru/3.9/library/aifc.html#aifc.open) может использоваться в операторе [`with`](https://python-all.ru/3.9/reference/compound_stmts.html#with). После завершения блока `with` вызывается метод [`close()`](https://python-all.ru/3.9/library/aifc.html#aifc.aifc.close).2627Изменено в версии 3.4: Добавлена поддержка оператора [`with`](https://python-all.ru/3.9/reference/compound_stmts.html#with).2829Объекты, возвращаемые [`open()`](https://python-all.ru/3.9/library/aifc.html#aifc.open) при открытии файла для чтения, имеют следующие методы:3031#### `aifc.getnchannels()`3233Возвращает количество аудиоканалов (1 для моно, 2 для стерео).3435#### `aifc.getsampwidth()`3637Возвращает размер отдельных сэмплов в байтах.3839#### `aifc.getframerate()`4041Возвращает частоту дискретизации (количество аудиокадров в секунду).4243#### `aifc.getnframes()`4445Возвращает количество аудиокадров в файле.4647#### `aifc.getcomptype()`4849Возвращает массив байтов длиной 4, описывающий тип сжатия, используемый в аудиофайле. Для файлов AIFF возвращаемое значение – `b'NONE'`.5051#### `aifc.getcompname()`5253Возвращает массив байтов, преобразуемый в читаемое человеком описание типа сжатия, используемого в аудиофайле. Для файлов AIFF возвращаемое значение – `b'not compressed'`.5455#### `aifc.getparams()`5657Возвращает [`namedtuple()`](https://python-all.ru/3.9/library/collections.html#collections.namedtuple) `(nchannels, sampwidth, framerate, nframes, comptype, compname)`, эквивалентный результату методов `get*()`.5859#### `aifc.getmarkers()`6061Возвращает список маркеров в аудиофайле. Маркер состоит из кортежа из трёх элементов. Первый – идентификатор маркера (целое число), второй – позиция маркера в кадрах от начала данных (целое число), третий – имя маркера (строка).6263#### `aifc.getmark(id)`6465Возвращает кортеж, как описано в [`getmarkers()`](https://python-all.ru/3.9/library/aifc.html#aifc.aifc.getmarkers), для маркера с заданным *id*.6667#### `aifc.readframes(nframes)`6869Читает и возвращает следующие *nframes* кадров из аудиофайла. Возвращаемые данные – это строка, содержащая для каждого кадра несжатые сэмплы всех каналов.7071#### `aifc.rewind()`7273Перематывает указатель чтения. Следующий вызов [`readframes()`](https://python-all.ru/3.9/library/aifc.html#aifc.aifc.readframes) начнётся с начала.7475#### `aifc.setpos(pos)`7677Перейти к указанному номеру кадра.7879#### `aifc.tell()`8081Возвращает текущий номер кадра.8283#### `aifc.close()`8485Закрывает файл AIFF. После вызова этого метода объект больше нельзя использовать.8687Объекты, возвращаемые [`open()`](https://python-all.ru/3.9/library/aifc.html#aifc.open) при открытии файла для записи, имеют все перечисленные выше методы, за исключением `readframes()` и `setpos()`. Кроме того, существуют следующие методы. Методы `get*()` можно вызывать только после вызова соответствующих методов `set*()`. До первого `writeframes()` или `writeframesraw()` должны быть заданы все параметры, кроме количества кадров.8889#### `aifc.aiff()`9091Создаёт файл AIFF. По умолчанию создаётся файл AIFF-C, если только имя файла не заканчивается на `'.aiff'`, – в этом случае по умолчанию создаётся файл AIFF.9293#### `aifc.aifc()`9495Создаёт файл AIFF-C. По умолчанию создаётся файл AIFF-C, если только имя файла не заканчивается на `'.aiff'`, – в этом случае по умолчанию создаётся файл AIFF.9697#### `aifc.setnchannels(nchannels)`9899Задаёт количество каналов в аудиофайле.100101#### `aifc.setsampwidth(width)`102103Задаёт размер аудиосэмплов в байтах.104105#### `aifc.setframerate(rate)`106107Задаёт частоту дискретизации в кадрах в секунду.108109#### `aifc.setnframes(nframes)`110111Задаёт количество кадров, которые будут записаны в аудиофайл. Если этот параметр не задан или задан неверно, файл должен поддерживать перемещение (seeking).112113#### `aifc.setcomptype(type, name)`114115Задаёт тип сжатия. Если не указан, аудиоданные не сжимаются. В файлах AIFF сжатие невозможно. Параметр name должен быть человекопонятным описанием типа сжатия в виде массива байтов, параметр type должен быть массивом байтов длиной 4. В настоящее время поддерживаются следующие типы сжатия: `b'NONE'`, `b'ULAW'`, `b'ALAW'`, `b'G722'`.116117#### `aifc.setparams(nchannels, sampwidth, framerate, comptype, compname)`118119Устанавливает все перечисленные выше параметры за один раз. Аргументом является кортеж, состоящий из различных параметров. Это означает, что результат вызова [`getparams()`](https://python-all.ru/3.9/library/aifc.html#aifc.aifc.getparams) можно использовать в качестве аргумента для [`setparams()`](https://python-all.ru/3.9/library/aifc.html#aifc.aifc.setparams).120121#### `aifc.setmark(id, pos, name)`122123Добавляет метку с заданным id (больше 0) и заданным именем в указанной позиции. Этот метод можно вызывать в любое время до [`close()`](https://python-all.ru/3.9/library/aifc.html#aifc.aifc.close).124125#### `aifc.tell()`126127Возвращает текущую позицию записи в выходном файле. Полезно в сочетании с [`setmark()`](https://python-all.ru/3.9/library/aifc.html#aifc.aifc.setmark).128129#### `aifc.writeframes(data)`130131Записывает данные в выходной файл. Этот метод можно вызывать только после того, как параметры аудиофайла были заданы.132133Изменено в версии 3.4: Теперь принимается любой [байтоподобный объект](https://python-all.ru/3.9/glossary.html#term-bytes-like-object).134135#### `aifc.writeframesraw(data)`136137Как [`writeframes()`](https://python-all.ru/3.9/library/aifc.html#aifc.aifc.writeframes), за исключением того, что заголовок аудиофайла не обновляется.138139Изменено в версии 3.4: Теперь принимается любой [байтоподобный объект](https://python-all.ru/3.9/glossary.html#term-bytes-like-object).140141#### `aifc.close()`142143Закрывает AIFF-файл. Заголовок файла обновляется, чтобы отражать фактический размер аудиоданных. После вызова этого метода объект больше нельзя использовать.144