33.5 Обработка данных аудио ¶
Octave предоставляет несколько функций для работы с аудиоданными. Аудио«образец» — это одно выходное значение АЦП, то есть небольшое целое число (обычно 8 или 16 бит), а аудиоданные — это просто последовательность таких образцов. Их можно охарактеризовать тремя параметрами: частотой дискретизации (измеряется в образцах в секунду или Гц, например, 8000 или 44100), количеством бит на образец (например, 8 или 16) и количеством каналов (1 для моно, 2 для стерео и т. д.).
Существует множество различных форматов представления таких данных. В настоящее время Octave поддерживает только два наиболее популярных формата: линейное кодирование и кодирование по закону μ. Отличное руководство по форматам аудио от Гайдо ван Россума guido@cwi.nl можно найти на любом ftp-сайте с часто задаваемыми вопросами, в частности в каталоге /pub/usenet/news.answers/audio-fmts на сайте архива rtfm.mit.edu.
Octave просто обрабатывает аудиоданные как векторы образцов (немонофонические данные пока не поддерживаются). Предполагается, что аудиофайлы с линейным кодированием имеют расширение lin или raw, а файлы, содержащие данные в кодировании по закону μ, заканчиваются на au, mu или snd.
-
:
y =lin2mu(x)¶ -
:
y =lin2mu(x, n)¶ -
Преобразовать аудиоданные из линейного кодирования в кодирование по закону μ.
Линейные значения используют значения с плавающей точкой в диапазоне -1 ≤ x ≤ 1, если n равно 0 (по умолчанию), или n-битовые знаковые целые числа, если n равно 8 или 16. Значения кодирования по закону μ — это 8-битовые беззнаковые целые числа в диапазоне 0 ≤ y ≤ 255.
См. также: mu2lin.
-
:
y =mu2lin(x)¶ -
:
y =mu2lin(x, n)¶ -
Преобразовать аудиоданные из кодирования по закону μ в линейное кодирование.
Значения кодирования по закону μ — это 8-битовые беззнаковые целые числа в диапазоне 0 ≤ y ≤ 255. Линейные значения используют значения с плавающей точкой в диапазоне -linmax ≤ x linmax (где
linmax = 32124/32768 =~ 0.98) при n равном нулю (по умолчанию). Если n равно 8 или 16, вместо этого используются n-битовые знакомые целые числа.Примечание по программированию:
mu2linотображает максимальные входные значения кодирования по закону μ на значения, немного меньшие максимального значения ([-0.98, +0.98]), которые можно представить с линейной шкалой. Из-за этогоmu2lin (lin2mu (x))может не воспроизводить исходный вход.См. также: lin2mu.
-
:
data =record(sec)¶ -
:
data =record(sec, fs)¶ -
Записать sec секунд аудио из системного стандартного аудиовхода с частотой дискретизации 8000 образцов в секунду.
Если задан необязательный аргумент fs, он задает частоту дискретизации для записи.
Для более точного управления аудиозаписью используйте класс
audiorecorder.См. также: @audiorecorder/audiorecorder, sound, soundsc.
-
: sound
(y)¶ -
: sound
(y, fs)¶ -
: sound
(y, fs, nbits)¶ -
Воспроизвести аудиоданные y с частотой дискретизации fs на стандартном аудиоустройстве.
Аудиосигнал y может быть вектором или двумерным массивом с двумя столбцами, представляющим моно- или стереоаудио, соответственно.
Если fs не задан, используется стандартная частота дискретизации 8000 образцов в секунду.
Необязательный аргумент nbits задает разрядность в битах для воспроизведения на аудиоустройстве и по умолчанию равен 8 битам.
Для более точного управления воспроизведением аудио используйте класс
audioplayer.См. также: soundsc, @audioplayer/audioplayer, record.
-
: soundsc
(y)¶ -
: soundsc
(y, fs)¶ -
: soundsc
(y, fs, nbits)¶ -
: soundsc
(…, [ymin, ymax])¶ -
Масштабировать аудиоданные y и воспроизвести их с частотой дискретизации fs на стандартном аудиоустройстве.
Аудиосигнал y может быть вектором или двумерным массивом с двумя столбцами, представляющим моно- или стереоаудио, соответственно.
Если fs не задан, используется стандартная частота дискретизации 8000 образцов в секунду.
Необязательный аргумент nbits задаёт разрядность в битах для воспроизведения на аудиоустройстве и по умолчанию равен 8 битам.
По умолчанию y автоматически нормализуется к диапазону [-1, 1]. Если задан диапазон [ymin, ymax], элементы y, которые попадают в диапазон ymin ≤ y ≤ ymax, масштабируются к диапазону [-1, 1] вместо этого.
Для более точного управления воспроизведением аудио используйте класс
audioplayer.См. также: sound, @audioplayer/audioplayer, record.
© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.2.0/Audio-Data-Processing.html