sunau
— Чтение и запись файлов Sun AU¶
Исходный код: Lib/sunau.py.
Модуль sunau
предоставляет удобный интерфейс к звуковому формату Sun AU. Обратите внимание, что этот модуль совместим по интерфейсу с модулями aifc
и wave
.
Аудиофайл состоит из заголовка, за которым следуют данные. Поля заголовка следующие:
Поле |
Содержание |
---|---|
волшебное слово |
Четыре байта |
размер заголовка |
Размер заголовка, включая информацию, в байтах. |
размер данных |
Физический размер данных, в байтах. |
кодирование |
Указывает, как кодируются аудиосэмплы. |
частота дискретизации |
Частота дискретизации. |
# каналов |
Количество каналов в выборках. |
информация |
ASCII-строка, дающая описание аудиофайла (заполненная нулевыми байтами). |
Кроме поля info, все поля заголовка имеют размер 4 байта. Все они представляют собой 32-битные целые числа без знака, закодированные в порядке следования байтов big-endian.
Модуль sunau
определяет следующие функции:
-
sunau.
open
(file, mode)¶ Если file - строка, откройте файл с таким именем, в противном случае рассматривайте его как объект, похожий на искомый файл. mode может быть любым из
'r'
Режим только для чтения.
'w'
Режим «только запись».
Обратите внимание, что он не позволяет читать/записывать файлы.
Значение mode
'r'
возвращает объектAU_read
, а значение mode'w'
или'wb'
возвращает объектAU_write
.
Модуль sunau
определяет следующее исключение:
-
exception
sunau.
Error
¶ Ошибка, возникающая, когда что-то невозможно из-за спецификаций Sun AU или недостатков реализации.
Модуль sunau
определяет следующие элементы данных:
-
sunau.
AUDIO_FILE_MAGIC
¶ Целое число, с которого начинается каждый допустимый файл Sun AU, хранящееся в форме старшего порядка. Это строка
.snd
, интерпретированная как целое число.
-
sunau.
AUDIO_FILE_ENCODING_MULAW_8
¶ -
sunau.
AUDIO_FILE_ENCODING_LINEAR_8
¶ -
sunau.
AUDIO_FILE_ENCODING_LINEAR_16
¶ -
sunau.
AUDIO_FILE_ENCODING_LINEAR_24
¶ -
sunau.
AUDIO_FILE_ENCODING_LINEAR_32
¶ -
sunau.
AUDIO_FILE_ENCODING_ALAW_8
¶ Значения поля кодировки из заголовка AU, которые поддерживаются данным модулем.
-
sunau.
AUDIO_FILE_ENCODING_FLOAT
¶ -
sunau.
AUDIO_FILE_ENCODING_DOUBLE
¶ -
sunau.
AUDIO_FILE_ENCODING_ADPCM_G721
¶ -
sunau.
AUDIO_FILE_ENCODING_ADPCM_G722
¶ -
sunau.
AUDIO_FILE_ENCODING_ADPCM_G723_3
¶ -
sunau.
AUDIO_FILE_ENCODING_ADPCM_G723_5
¶ Дополнительные известные значения поля кодировки из заголовка AU, но которые не поддерживаются данным модулем.
AU_read Объекты¶
Объекты AU_read, возвращаемые командой open()
выше, имеют следующие методы:
-
AU_read.
close
()¶ Закрыть поток и сделать экземпляр непригодным для использования. (Это вызывается автоматически при удалении).
-
AU_read.
getnchannels
()¶ Возвращает количество аудиоканалов (1 для моно, 2 для стерео).
-
AU_read.
getsampwidth
()¶ Возвращает ширину выборки в байтах.
-
AU_read.
getframerate
()¶ Возвращает частоту дискретизации.
-
AU_read.
getnframes
()¶ Возвращает количество аудиокадров.
-
AU_read.
getcomptype
()¶ Возвращает тип сжатия. Поддерживаются следующие типы сжатия:
'ULAW'
,'ALAW'
и'NONE'
.
-
AU_read.
getcompname
()¶ Человекочитаемая версия
getcomptype()
. Поддерживаемые типы имеют соответствующие имена'CCITT G.711 u-law'
,'CCITT G.711 A-law'
и'not compressed'
.
-
AU_read.
getparams
()¶ Возвращает
namedtuple()
(nchannels, sampwidth, framerate, nframes, comptype, compname)
, эквивалентный выводу методовget*()
.
-
AU_read.
readframes
(n)¶ Считывает и возвращает не более n кадров аудио, как объект
bytes
. Данные будут возвращены в линейном формате. Если исходные данные находятся в формате u-LAW, они будут преобразованы.
-
AU_read.
rewind
()¶ Перемотка указателя файла к началу аудиопотока.
Следующие два метода определяют термин «позиция», который совместим между ними, а в остальном зависит от реализации.
-
AU_read.
setpos
(pos)¶ Установить указатель файла в указанную позицию. Для pos следует использовать только значения, возвращаемые из
tell()
.
-
AU_read.
tell
()¶ Возвращает текущую позицию указателя файла. Обратите внимание, что возвращаемое значение не имеет ничего общего с фактической позицией в файле.
Следующие две функции определены для совместимости с aifc
и не делают ничего интересного.
-
AU_read.
getmarkers
()¶ Возвращает
None
.
-
AU_read.
getmark
(id)¶ Вызвать ошибку.
AU_write Объекты¶
Объекты AU_write, возвращаемые командой open()
выше, имеют следующие методы:
-
AU_write.
setnchannels
(n)¶ Установите количество каналов.
-
AU_write.
setsampwidth
(n)¶ Установите ширину выборки (в байтах).
Изменено в версии 3.4: Добавлена поддержка 24-битных сэмплов.
-
AU_write.
setframerate
(n)¶ Установите частоту кадров.
-
AU_write.
setnframes
(n)¶ Установите количество кадров. Это значение может быть изменено позже, когда и если будет записано больше кадров.
-
AU_write.
setcomptype
(type, name)¶ Установите тип и описание сжатия. На выходе поддерживаются только
'NONE'
и'ULAW'
.
-
AU_write.
setparams
(tuple)¶ Кортеж* должен быть
(nchannels, sampwidth, framerate, nframes, comptype, compname)
, со значениями, действительными для методовset*()
. Установите все параметры.
-
AU_write.
tell
()¶ Возвращает текущую позицию в файле, с той же оговоркой, что и для методов
AU_read.tell()
иAU_read.setpos()
.
-
AU_write.
writeframesraw
(data)¶ Запись аудиокадров, без коррекции nframes.
Изменено в версии 3.4: Теперь принимаются любые bytes-like object.
-
AU_write.
writeframes
(data)¶ Запишите аудиокадры и убедитесь, что nframes является правильным.
Изменено в версии 3.4: Теперь принимаются любые bytes-like object.
-
AU_write.
close
()¶ Убедитесь, что nframes является правильным, и закройте файл.
Этот метод вызывается при удалении.
Обратите внимание, что после вызова writeframes()
или writeframesraw()
устанавливать какие-либо параметры недопустимо.