33.5 Обработка данных аудио
Octave предоставляет несколько функций для работы с данными аудио. Аудио «образец» — это одно выходное значение от АЦП, т. е. небольшое целое число (обычно 8 или 16 бит), а аудиоданные — это просто последовательность таких образцов. Их можно охарактеризовать тремя параметрами: частотой дискретизации (измеряется в образцах в секунду или Гц, например, 8000 или 44100), количеством бит на образец (например, 8 или 16) и количеством каналов (1 для моно, 2 для стерео и т. д.).
Существует множество различных форматов для представления таких данных. В настоящее время Octave поддерживает только два наиболее популярных формата: линейное кодирование и кодирование mu-закона. Существует отличная страница часто задаваемых вопросов по форматам аудио от Guido van Rossum guido@cwi.nl, которую можно найти на любом сайте FAQ, в частности, в каталоге /pub/usenet/news.answers/audio-fmts на сайте архива rtfm.mit.edu.
Octave просто обрабатывает аудиоданные как векторы образцов (моно-канальные данные пока не поддерживаются). Предполагается, что аудиофайлы с линейным кодированием имеют расширения lin или raw, а файлы, содержащие данные в кодировании mu-закона, заканчиваются на au, mu или snd.
- : y = lin2mu (x) ¶
- : y = lin2mu (x, n) ¶
-
Преобразовать аудиоданные из линейного в mu-закон.
Линейные значения используют числа с плавающей точкой в диапазоне -1 ≤ x ≤ 1, если n равно 0 (по умолчанию), или n-битовые знакомые целые числа, если n равно 8 или 16. Значения mu-закона — это 8-битовые беззнаковые целые числа в диапазоне 0 ≤ y ≤ 255.
См. также: mu2lin.
- : y = mu2lin (x) ¶
- : y = mu2lin (x, n) ¶
-
Преобразовать аудиоданные из mu-закона в линейный.
Значения mu-закона — это 8-битовые беззнаковые целые числа в диапазоне 0 ≤ y ≤ 255. Линейные значения используют числа с плавающей точкой в диапазоне -linmax ≤ x linmax (где
linmax = 32124/32768 =~ 0.98) когда n равно нулю (по умолчанию). Если n равно 8 или 16, вместо этого используются n-битовые знакомые целые числа.Примечание для программистов:
mu2linотображает максимальные входные значения mu-закона на значениях, немного меньших максимального значения ([-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/v8.1.0/Audio-Data-Processing.html