33.5 Обработка аудиоданных
Octave предоставляет несколько функций для работы с аудиоданными. Аудио«образец» — это одно выходное значение от АЦП, то есть небольшое целое число (обычно 8 или 16 бит), а аудиоданные — это просто последовательность таких образцов. Их можно охарактеризовать тремя параметрами: частотой дискретизации (измеряемой в образцах в секунду или Гц, например, 8000 или 44100), количеством бит на образец (например, 8 или 16) и количеством каналов (1 для моно, 2 для стерео и т. д.).
Существует множество различных форматов для представления таких данных. В настоящее время Octave поддерживает только два самых популярных формата: *линейное кодирование* и *кодирование с законом μ*. Есть замечательный FAQ по форматам аудио от Гайдо ван Россума guido@cwi.nl, который можно найти на любом ftp-сайте FAQ, в частности, в каталоге /pub/usenet/news.answers/audio-fmts на сайте архива rtfm.mit.edu.
Octave просто обрабатывает аудиоданные как векторы образцов (еще не поддерживаются данные, не являющиеся моно). Предполагается, что аудиофайлы с линейным кодированием имеют одно из расширений lin или raw, а файлы, содержащие данные с кодированием по закону μ, заканчиваются на au, mu или snd.
- y = lin2mu (x, n)
-
Преобразование аудиоданных из линейного в кодирование с законом μ.
Значения с законом μ используют 8-битные беззнаковые целые числа. Линейные значения используют n-битные знакомые целые числа или числа с плавающей точкой в диапазоне -1 ≤ x ≤ 1, если n равно 0.
Если n не указан, он по умолчанию равен 0, 8 или 16 в зависимости от диапазона значений в x.
См. также: mu2lin.
- y = mu2lin (x, n)
-
Преобразование аудиоданных из кодирования с законом μ в линейное.
Значения с законом μ являются 8-битными беззнаковыми целыми числами. Линейные значения используют n-битные знакомые целые числа или числа с плавающей точкой в диапазоне -1 ≤ y ≤ 1, если n равно 0.
Если n не указан, он по умолчанию равен 0.
См. также: lin2mu.
- record (sec)
- record (sec, fs)
-
Запись sec секунд аудио с системного аудиовхода по умолчанию с частотой дискретизации 8000 образцов в секунду.
Если задан необязательный аргумент fs, он задает частоту дискретизации для записи.
Для большего контроля над записью аудио используйте класс
audiorecorder.
- sound (y)
- sound (y, fs)
- sound (y, fs, nbits)
-
Воспроизведение аудиоданных y с частотой дискретизации fs на устройстве вывода звука по умолчанию.
Аудиосигнал y может быть вектором или двумерным массивом, представляющим соответственно моно- или стереоаудио.
Если fs не указан, используется частота дискретизации по умолчанию 8000 образцов в секунду.
Необязательный аргумент nbits задает разрядность для воспроизведения на аудиоустройстве и по умолчанию равен 8 битам.
Для большего контроля над воспроизведением звука используйте класс
audioplayer.
- 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.
© 1996–2022 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/v6.4.0/Audio-Data-Processing.html