wave
— Read and write WAV files¶
Вихідний код: Lib/wave.py
The wave
module provides a convenient interface to the WAV sound format.
It does not support compression/decompression, but it does support mono/stereo.
Модуль wave
визначає таку функцію та виняток:
-
wave.
open
(file, mode=None)¶ Якщо file є рядком, відкрийте файл під таким іменем, інакше розглядайте його як файлоподібний об’єкт. режим може бути:
'rb'
Режим тільки читання.
'wb'
Режим лише запису.
Зауважте, що він не дозволяє читати/записувати файли WAV.
Режим
'rb'
повертає об’єктWave_read
, а режим'wb'
повертає об’єктWave_write
. Якщо mode опущено, а файлоподібний об’єкт передається як file,file.mode
використовується як значення за замовчуванням для mode.If you pass in a file-like object, the wave object will not close it when its
close()
method is called; it is the caller’s responsibility to close the file object.The
open()
function may be used in awith
statement. When thewith
block completes, theWave_read.close()
orWave_write.close()
method is called.Змінено в версії 3.4: Додано підтримку файлів, які неможливо шукати.
-
exception
wave.
Error
¶ Помилка виникає, коли щось неможливо, оскільки воно порушує специфікацію WAV або стикається з недоліком реалізації.
Об’єкти Wave_read¶
Об’єкти Wave_read, які повертає open()
, мають такі методи:
-
Wave_read.
close
()¶ Закрийте потік, якщо його відкрив
wave
, і зробіть екземпляр непридатним для використання. Це викликається автоматично під час колекції об’єктів.
-
Wave_read.
getnchannels
()¶ Повертає кількість аудіоканалів (
1
для моно,2
для стерео).
-
Wave_read.
getsampwidth
()¶ Повертає ширину вибірки в байтах.
-
Wave_read.
getframerate
()¶ Повертає частоту вибірки.
-
Wave_read.
getnframes
()¶ Повертає кількість звукових кадрів.
-
Wave_read.
getcomptype
()¶ Повертає тип стиснення (
'NONE'
є єдиним підтримуваним типом).
-
Wave_read.
getcompname
()¶ Зрозуміла для людини версія
getcomptype()
. Зазвичай'not compressed'
паралелі'NONE'
.
-
Wave_read.
getparams
()¶ Returns a
namedtuple()
(nchannels, sampwidth, framerate, nframes, comptype, compname)
, equivalent to output of theget*()
methods.
-
Wave_read.
rewind
()¶ Перемотайте покажчик файлу на початок аудіопотоку.
The following two methods are defined for compatibility with the aifc
module, and don’t do anything interesting.
-
Wave_read.
getmarkers
()¶ Повертає
None
.
-
Wave_read.
getmark
(id)¶ Викликати помилку.
Наступні два методи визначають термін «позиція», який є сумісним між ними, а в інших випадках залежить від реалізації.
-
Wave_read.
setpos
(pos)¶ Встановити вказівник файлу у вказане положення.
-
Wave_read.
tell
()¶ Повернути поточне положення покажчика файлу.
Об’єкти Wave_write¶
For seekable output streams, the wave
header will automatically be updated
to reflect the number of frames actually written. For unseekable streams, the
nframes value must be accurate when the first frame data is written. An
accurate nframes value can be achieved either by calling
setnframes()
or setparams()
with the number
of frames that will be written before close()
is called and
then using writeframesraw()
to write the frame data, or by
calling writeframes()
with all of the frame data to be
written. In the latter case writeframes()
will calculate
the number of frames in the data and set nframes accordingly before writing
the frame data.
Wave_write objects, as returned by open()
, have the following methods:
Змінено в версії 3.4: Додано підтримку файлів, які неможливо шукати.
-
Wave_write.
close
()¶ Переконайтеся, що nframes правильний, і закрийте файл, якщо його відкрив
wave
. Цей метод називається колекцією об’єктів. Це викличе виняток, якщо вихідний потік не доступний для пошуку та nframes не відповідає кількості фактично записаних кадрів.
-
Wave_write.
setnchannels
(n)¶ Встановіть кількість каналів.
-
Wave_write.
setsampwidth
(n)¶ Встановіть ширину вибірки на n байтів.
-
Wave_write.
setframerate
(n)¶ Встановіть частоту кадрів на n.
Змінено в версії 3.2: Неінтегральний вхід у цей метод округлюється до найближчого цілого числа.
-
Wave_write.
setnframes
(n)¶ Встановіть кількість кадрів на n. Це буде змінено пізніше, якщо фактично записана кількість кадрів буде іншою (ця спроба оновлення викличе помилку, якщо вихідний потік не доступний для пошуку).
-
Wave_write.
setcomptype
(type, name)¶ Встановіть тип стиснення та опис. На даний момент підтримується лише тип стиснення
NONE
, що означає відсутність стиснення.
-
Wave_write.
setparams
(tuple)¶ The tuple should be
(nchannels, sampwidth, framerate, nframes, comptype, compname)
, with values valid for theset*()
methods. Sets all parameters.
-
Wave_write.
tell
()¶ Повертає поточну позицію у файлі з тим самим застереженням для методів
Wave_read.tell()
іWave_read.setpos()
.
-
Wave_write.
writeframesraw
(data)¶ Записуйте аудіокадри, не виправляючи nframes.
Змінено в версії 3.4: Тепер приймається будь-який bytes-like object.
-
Wave_write.
writeframes
(data)¶ Напишіть звукові кадри та переконайтеся, що nframes правильний. Це викличе помилку, якщо вихідний потік недоступний для пошуку, а загальна кількість кадрів, які були записані після запису data, не збігається з попередньо встановленим значенням для nframes.
Змінено в версії 3.4: Тепер приймається будь-який bytes-like object.
Зауважте, що не можна встановлювати будь-які параметри після виклику writeframes()
або writeframesraw()
, і будь-яка спроба зробити це викличе wave.Error
.