Научная обработка звука, часть I. Как читать и записывать аудиофайлы с помощью Octave 4.0.0 в Ubuntu
На этой странице
- Предпосылки
- Шаг 1. Открытие октавы.
- Шаг 2. Информация об аудио
- Шаг 3. Чтение аудиофайла
- Шаг 4. Запись аудиофайла
- Создание файла ogg:
Octave, программное обеспечение, эквивалентное Matlab в Linux, имеет ряд функций и команд, которые позволяют осуществлять сбор, запись, воспроизведение и цифровую обработку аудиосигналов для развлекательных приложений, исследований, медицины или любых других научных областей. В этом руководстве мы будем использовать Octave V4.0.0 в Ubuntu и начнем читать аудиофайлы, записывая и воспроизводя сигналы для имитации звуков, используемых в самых разных действиях.
Обратите внимание, что основное внимание в этом руководстве уделяется не установке или обучению использованию уже установленного программного обеспечения для обработки звука, а скорее пониманию того, как оно работает с точки зрения дизайна и аудиотехники.
Предпосылки
Первый шаг – установка октавы. Выполните следующие команды в терминале, чтобы добавить Octave PPA в Ubuntu и установить программное обеспечение.
sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octaveШаг 1: Открытие Октавы.
Шаг 2: Информация об аудио
Команда \audioinfo\ показывает нам соответствующую информацию об аудиофайле, который мы будем обрабатывать.>> info = audioinfo ('testing.ogg')
Шаг 3: Чтение аудиофайла
В этом уроке я буду читать и использовать файлы ogg, для которых можно прочитать такие характеристики, как сэмплирование, тип звука (стерео или моно), количество каналов и т. д. Я должен отметить, что для целей этого урока все используемые команды будут выполняться в терминальном окне Octave. Во-первых, мы должны сохранить файл ogg в переменной. Примечание: важно, чтобы файл находился в рабочем пути Octave.>> file='yourfile.ogg'
>> [M, fs] = audioread(file)
>> [y, fs] = audioread (filename, samples)
>> [y, fs] = audioread (filename, datatype)
>> [y, fs] = audioread (filename, samples, datatype)
Где образцы указывают начальный и конечный кадры, а тип данных указывает возвращаемый тип данных. Мы можем присваивать значения любой переменной:
>> samples = [1, fs)
>> [y, fs] = audioread (filename, samples)
И о типе данных:
>> [y,Fs] = audioread(filename,'native')
Если значение является собственным, то тип данных зависит от того, как данные хранятся в аудиофайле.
Шаг 4: Запись аудиофайла
Создание файла ogg:
Для этого мы собираемся сгенерировать файл ogg со значениями из косинуса. Частота дискретизации, которую я буду использовать, составляет 44100 выборок в секунду, а файл будет длиться 10 секунд. Частота косинусоидального сигнала составляет 440 Гц.
>> filename='cosine.ogg';
>> fs=44100;
>> t=0:1/fs:10;
>> w=2*pi*440*t;
>> signal=cos(w);
>> audiowrite(filename, signal, fs);Шаг 5: Воспроизведение аудиофайла
В Octave по умолчанию есть аудиоплеер, который мы можем использовать для тестирования. В качестве примера используйте следующие функции:>> [y,fs]=audioread('yourfile.ogg');
>> player=audioplayer(y, fs, 8)
scalar structure containing the fields:
BitsPerSample = 8
CurrentSample = 0
DeviceID = -1
NumberOfChannels = 1
Running = off
SampleRate = 44100
TotalSamples = 236473
Tag =
Type = audioplayer
UserData = [](0x0)
>> play(player);
В следующих частях руководства мы увидим расширенные функции обработки звука и возможные варианты использования в научных и коммерческих целях.