sunau
— Чтение и запись файлов Sun AU¶
Исходный код: Lib/sunau.py
Модуль sunau
предоставляет удобный интерфейс для звукового формата Sun AU.
Обратите внимание, что этот модуль совместим с aifc
и wave
модулями.
Аудиофайл состоит из заголовка, за которым следуют данные. Поля заголовка:
Поле | Содержание |
---|---|
magic word | Четыре байта .snd . |
header size | Размер заголовка, включая информацию, в байтах. |
data size | Физический размер данных, в байтах. |
encoding | Указывает способ кодированный аудиоотсчетов. |
sample rate | Частота выборки. |
# of channels | Количество каналов в выборках. |
info | ASCII строка с описанием аудиофайла (дополненного нулевыми байтами). |
Кроме поля информации, все поля заголовка имеют размер 4 байта. Все они представляют собой 32-битные беззнаковые целые числа, кодированный в обратном порядоке байт (обратный порядок байт).
Модуль sunau
определяет следующие функции:
-
sunau.
open
(file, mode)¶ Если file является строкой, открыть файл с таким именем, в противном случае обработайте его как искомый файлообразный объект. mode может быть любой из них
'r'
режим «только чтение».'w'
режим только записи.Обратите внимание, что он не разрешает чтение и запись файлов.
mode
'r'
возвращает объектAU_read
, в то время как mode'w'
или'wb'
возвращает объектAU_write
.
-
sunau.
openfp
(file, mode)¶ Синоним
open()
, поддерживаемый для обратной совместимости.Deprecated since version 3.7, will be removed in version 3.9.
Модуль sunau
определяет следующее исключение:
-
exception
sunau.
Error
¶ Ошибка возникает, когда что-то невозможно из-за specs 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)¶ Установить указатель файла в указанное положение. Только значения возвращенный от
tell()
должен быть используемый для pos.
-
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)¶ Этот tuple должен быть
(nchannels, sampwidth, framerate, nframes, comptype, compname)
с значения, действительными дляset*()
методов. Установить все параметры.
-
AU_write.
tell
()¶ Возвращает текущее положение в файле с тем же отказом от ответственности для методов
AU_read.tell()
иAU_read.setpos()
.
-
AU_write.
writeframesraw
(data)¶ Запись аудиокадров без исправления nframes.
Изменено в версии 3.4: Теперь принимается любой байтоподобный объект.
-
AU_write.
writeframes
(data)¶ Запишите аудиокадры и убедитесь, что nframes правильно.
Изменено в версии 3.4: Теперь принимается любой байтоподобный объект.
-
AU_write.
close
()¶ Проверить правильность nframes и закройте файл.
Этот метод вызывается при удалении.
Следует отметить, что установка каких-либо параметров после вызова writeframes()
или writeframesraw()
недопустима.