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

aifc.md

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

1> **Источник:** https://python-all.ru/2.6/library/aifc.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 21.3. `aifc` – Чтение и запись файлов AIFF и AIFC89Этот модуль обеспечивает поддержку чтения и записи файлов AIFF и AIFF-C. AIFF – это формат Audio Interchange File Format, предназначенный для хранения цифровых аудио сэмплов в файле. AIFF-C – более новая версия формата, включающая возможность сжатия аудиоданных.1011> **Примечание**12>13> Some operations may only work under IRIX; these will raise [`ImportError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.ImportError) when attempting to import the `cl` module, which is only available on IRIX.1415Аудиофайлы имеют ряд параметров, описывающих аудиоданные. Частота дискретизации (частота кадров) – это количество измерений звука в секунду. Количество каналов указывает, является ли аудио моно, стерео или квадро. Каждый кадр состоит из одного отсчёта на канал. Размер отсчёта – это размер каждого отсчёта в байтах. Таким образом, кадр состоит из *nchannels* \* samplesize байтов, а одна секунда аудио – из *nchannels* \* samplesize \* framerate байтов.1617Например, аудио CD-качества имеет размер сэмпла два байта (16 бит), использует два канала (стерео) и имеет частоту кадров 44 100 кадров/сек. Это даёт размер кадра 4 байта (2\*2), а одна секунда аудио занимает 2\*2\*44100 байт (176 400 байт).1819Модуль `aifc` определяет следующую функцию:2021#### `aifc.open(file[, mode])`2223Открывает файл AIFF или AIFF-C и возвращает экземпляр объекта с методами, которые\\описаны ниже. Аргумент2425*file*2627может быть строкой с именем файла или файловым\\объектом.2829*mode*3031должен быть равен3233`'r'`3435или3637`'rb'`3839, если файл открывается для\\чтения, или4041`'w'`4243или4445`'wb'`4647, если для записи. Если\\параметр опущен, используется4849`file.mode`5051(если он существует), в противном случае –5253`'rb'`5455. При\\записи файловый объект должен поддерживать позиционирование, за исключением случая, когда заранее известно\\общее количество сэмплов и используются функции\\5657`writeframesraw()`5859и6061`setnframes()`6263.6465Объекты, возвращаемые [`open()`](https://python-all.ru/2.6/library/aifc.html#aifc.open) при открытии файла для чтения, имеют следующие методы:6667#### `aifc.getnchannels()`6869Возвращает количество аудиоканалов (1 для моно, 2 для стерео).7071#### `aifc.getsampwidth()`7273Возвращает размер отдельных сэмплов в байтах.7475#### `aifc.getframerate()`7677Возвращает частоту дискретизации (количество аудиокадров в секунду).7879#### `aifc.getnframes()`8081Возвращает количество аудиокадров в файле.8283#### `aifc.getcomptype()`8485Возвращает строку из четырёх символов, описывающую тип сжатия, используемый в аудиофайле. Для файлов AIFF возвращается значение8687`'NONE'`8889.9091#### `aifc.getcompname()`9293Возвращает человекочитаемое описание типа сжатия, используемого в аудиофайле. Для файлов AIFF возвращается значение9495`'not compressed'`9697.9899#### `aifc.getparams()`100101Возвращает кортеж, состоящий из всех указанных выше значений в том же порядке.102103#### `aifc.getmarkers()`104105Возвращает список маркеров в аудиофайле. Маркер состоит из кортежа из трёх элементов. Первый – идентификатор маркера (целое число), второй – позиция маркера в кадрах от начала данных (целое число), третий – имя маркера (строка).106107#### `aifc.getmark(id)`108109Возвращает кортеж, как описано в110111[`getmarkers()`](https://python-all.ru/2.6/library/aifc.html#aifc.aifc.getmarkers)112113, для маркера с заданным114115*id*116117.118119#### `aifc.readframes(nframes)`120121Читает и возвращает следующие122123*nframes*124125кадров из аудиофайла. Возвращаемые данные – это строка, содержащая для каждого кадра несжатые сэмплы всех каналов.126127#### `aifc.rewind()`128129Перематывает указатель чтения. Следующий вызов130131[`readframes()`](https://python-all.ru/2.6/library/aifc.html#aifc.aifc.readframes)132133начнётся с начала.134135#### `aifc.setpos(pos)`136137Перейти к указанному номеру кадра.138139#### `aifc.tell()`140141Возвращает текущий номер кадра.142143#### `aifc.close()`144145Закрывает файл AIFF. После вызова этого метода объект больше нельзя использовать.146147Объекты, возвращаемые [`open()`](https://python-all.ru/2.6/library/aifc.html#aifc.open) при открытии файла для записи, имеют все перечисленные выше методы, кроме `readframes()` и `setpos()`. Кроме того, существуют следующие методы. Методы `get*()` можно вызывать только после того, как соответствующие методы `set*()` были вызваны. Перед первым вызовом `writeframes()` или `writeframesraw()` должны быть заданы все параметры, кроме количества кадров.148149#### `aifc.aiff()`150151Создаёт AIFF-файл. По умолчанию создаётся файл AIFF-C, если только имя файла не заканчивается на152153`'.aiff'`154155– в этом случае по умолчанию создаётся AIFF-файл.156157#### `aifc.aifc()`158159Создаёт файл AIFF-C. По умолчанию создаётся файл AIFF-C, если только имя файла не заканчивается на160161`'.aiff'`162163; в этом случае по умолчанию создаётся файл AIFF.164165#### `aifc.setnchannels(nchannels)`166167Задаёт количество каналов в аудиофайле.168169#### `aifc.setsampwidth(width)`170171Задаёт размер аудиосэмплов в байтах.172173#### `aifc.setframerate(rate)`174175Задаёт частоту дискретизации в кадрах в секунду.176177#### `aifc.setnframes(nframes)`178179Задаёт количество кадров, которые будут записаны в аудиофайл. Если этот параметр не задан или задан неверно, файл должен поддерживать перемещение (seeking).180181#### `aifc.setcomptype(type, name)`182183Задаёт тип сжатия. Если он не указан, аудиоданные не будут сжаты. В файлах AIFF сжатие невозможно. Параметр name должен быть человекочитаемым описанием типа сжатия, параметр type должен быть строкой из четырёх символов. В настоящее время поддерживаются следующие типы сжатия: NONE, ULAW, ALAW, G722.184185#### `aifc.setparams(nchannels, sampwidth, framerate, comptype, compname)`186187Устанавливает все перечисленные выше параметры сразу. Аргументом является кортеж, состоящий из различных параметров. Это означает, что результат вызова188189[`getparams()`](https://python-all.ru/2.6/library/aifc.html#aifc.aifc.getparams)190191можно использовать как аргумент для192193[`setparams()`](https://python-all.ru/2.6/library/aifc.html#aifc.aifc.setparams)194195.196197#### `aifc.setmark(id, pos, name)`198199Добавляет метку с заданным id (больше 0) и заданным именем в заданной позиции. Этот метод можно вызывать в любое время до200201[`close()`](https://python-all.ru/2.6/library/aifc.html#aifc.aifc.close)202203.204205#### `aifc.tell()`206207Возвращает текущую позицию записи в выходном файле. Полезно в сочетании с208209[`setmark()`](https://python-all.ru/2.6/library/aifc.html#aifc.aifc.setmark)210211.212213#### `aifc.writeframes(data)`214215Записывает данные в выходной файл. Этот метод можно вызывать только после того, как параметры аудиофайла были заданы.216217#### `aifc.writeframesraw(data)`218219Аналогично220221[`writeframes()`](https://python-all.ru/2.6/library/aifc.html#aifc.aifc.writeframes)222223, за исключением того, что заголовок аудиофайла не обновляется.224225#### `aifc.close()`226227Закрывает AIFF-файл. Заголовок файла обновляется, чтобы отражать фактический размер аудиоданных. После вызова этого метода объект больше нельзя использовать.228