sunau
— Читання та запис файлів Sun AU¶
Вихідний код: Lib/sunau.py
Модуль sunau
забезпечує зручний інтерфейс для звукового формату Sun AU. Зауважте, що цей модуль інтерфейсно сумісний із модулями aifc
і wave
.
Аудіофайл складається із заголовка, за яким слідують дані. Поля заголовка:
Поле |
Зміст |
---|---|
чарівне слово |
Чотири байти |
розмір заголовка |
Розмір заголовка, включаючи інформацію, у байтах. |
розмір даних |
Фізичний розмір даних, у байтах. |
кодування |
Вказує, як закодовано аудіо зразки. |
частота дискретизації |
Частота дискретизації. |
# каналів |
Кількість каналів у вибірках. |
інформація |
Рядок ASCII, що містить опис аудіофайлу (доповнений нульовими байтами). |
Окрім інформаційного поля, усі поля заголовка мають розмір 4 байти. Усі вони являють собою 32-розрядні цілі числа без знаку, закодовані в порядку байтів у порядку байтів.
Модуль sunau
визначає такі функції:
-
sunau.
open
(file, mode)¶ Якщо file є рядком, відкрийте файл із таким іменем, інакше розглядайте його як файлоподібний об’єкт, який можна шукати. режим може бути будь-яким із
'r''
Режим тільки читання.
'w'
Режим лише запису.
Зверніть увагу, що він не дозволяє читати/записувати файли.
Режим
'r'
повертає об’єктAU_read
, тоді як режим'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()
.