Гид по технологиям

Обработка аудио в Octave на Ubuntu: чтение, запись и воспроизведение

5 min read Аудио Обновлено 07 Nov 2025
Octave: чтение, запись и воспроизведение аудио в Ubuntu
Octave: чтение, запись и воспроизведение аудио в Ubuntu

Введение

Octave — свободная альтернатива Matlab на Linux. Он содержит функции для захвата, записи, воспроизведения и цифровой обработки аудиосигналов, которые применимы в развлечениях, науке, медицине и исследовании. В этом руководстве мы используем Octave v4.0.0 в Ubuntu и покажем базовые операции: чтение аудиофайлов, запись синусоидального сигнала и воспроизведение.

Важно: цель не научить пользоваться полнофункциональным аудиоредактором, а объяснить работу механизмов с точки зрения проектирования и аудиоинженерии.

Основные термины

  • Сэмплинг (sampling): число отсчётов в секунду, измеряется в герцах (Гц). 1 строка: частота дискретизации — количество выборок в секунду.
  • Каналы: моно — один столбец данных, стерео — два столбца.
  • Frame / sample frame: набор значений всех каналов в один момент времени.

Требования

Перед началом установите Octave. В терминале Ubuntu выполните:

sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave

Проверьте версию Octave и рабочую директорию внутри приложения. Все примеры выполняются в терминальном окне Octave.

Шаг 1: Открытие Octave

Откройте Octave через меню приложений или по ярлыку. При необходимости измените рабочую папку через выпадающее меню File Browser.

Открытие главного окна Octave 4.0

Шаг 2: Получение информации о файле

Команда audioinfo показывает метаданные аудиофайла: длительность, частоту дискретизации, число каналов и формат.

>> info = audioinfo ('testing.ogg')

Просмотр информации аудиофайла в Octave

Пример использования: перед обработкой проверьте поля info.SampleRate, info.NumChannels и info.Duration.

Шаг 3: Чтение аудиофайла

В примерах используются файлы .ogg. Убедитесь, что файл находится в рабочем каталоге Octave.

>> file='yourfile.ogg'

>> [M, fs] = audioread(file)

Переменная M — матрица с одной или двумя колонками (каналами). fs — частота дискретизации в герцах (например, 44100).

Чтение аудиофайла в переменную в Octave

Структура матрицы аудио в Octave

Частота дискретизации в окне Octave

Опции audioread:

>> [y, fs] = audioread (filename, samples)

>> [y, fs] = audioread (filename, datatype)

>> [y, fs] = audioread (filename, samples, datatype)
  • samples — вектор [start, end] в сэмплах.
  • datatype — тип возвращаемых данных; ‘native’ вернёт тип, используемый в файле.

Пример задания диапазона и native-формата:

>> samples = [1, fs]
>> [y, fs] = audioread (filename, samples)
>> [y,Fs] = audioread(filename,'native')

Если datatype равен ‘native’, Octave вернёт данные в том же типе, в котором они сохранены в файле.

Шаг 4: Запись аудиофайла

Создание ogg-файла со синусоидой

Сгенерируем файл cosine.ogg со строгой частотой 440 Гц (нота A), частотой дискретизации 44100 Гц и длительностью 10 секунд.

>> filename='cosine.ogg';
>> fs=44100;
>> t=0:1/fs:10;
>> w=2*pi*440*t;
>> signal=cos(w);
>> audiowrite(filename, signal, fs);

Это создаст файл cosine.ogg в рабочей директории с одноканальным сигналом.

Файл cosine.ogg в рабочей папке Octave

Если прочитать cosine.ogg с помощью audioread, вы получите матрицу значений для дальнейшей обработки. В следующем уроке можно сделать стереофайл, записав два канала.

Шаг 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);

Игровой цикл можно приостанавливать/останавливать вызовом stop(player) или pause(player).

Частые ошибки и обходы

  • Файл не найден: убедитесь, что рабочая директория Octave совпадает с расположением файла или укажите полный путь.
  • Неподдерживаемый формат: установите дополнительные кодеки в систему или сконвертируйте файл (ffmpeg или sox).
  • Звук не воспроизводится: проверьте устройство вывода звука и права доступа к ALSA/PulseAudio.

Альтернативные подходы

  • Python + librosa/soundfile — быстрый скриптовый путь для анализа и ML-прототипов.
  • Audacity — удобный GUI-редактор для визуальной манипуляции и экспорта.
  • Matlab — если требуется коммерческая поддержка и дополнительные тулбоксы.

Мини-методология для проектов с Octave и аудио

  1. Определите цель: анализ, синтез, тестирование устройства.
  2. Подготовьте данные: конвертируйте в стандартную частоту 44100 или 48000 Гц.
  3. Инструментируйте код: храните метаданные (SampleRate, NumChannels, Duration).
  4. Тестируйте на краевых случаях: очень короткие файлы, многоканальные, нестандартный битрейт.
  5. Документируйте форматы вывода и требования к оборудованию.

Рольовые чек-листы

Для исследователя:

  • Проверить метаданные audioinfo
  • Прочитать аудио в переменную и сохранить копию
  • Сохранить версии с разными частотами дискретизации

Для разработчика ПО:

  • Обернуть операции чтения/записи в функции
  • Добавить обработку ошибок для отсутствующих файлов
  • Написать unit-тесты на чтение диапазонов samples

Для саунд-дизайнера:

  • Быстро генерировать тональные сигналы (sine, cosine)
  • Экспортировать в требуемый формат для DAW
  • Проверять моно/стерео совместимость

Критерии приёмки

  • Успешное чтение файла: audioread возвращает массив и частоту дискретизации.
  • Правильная запись: audiowrite создаёт файл, который корректно открывается внешними плеерами.
  • Воспроизведение: audioplayer запускается и слышен звук на целевом устройстве.

Факт-бокс: ключевые числа

  • Стандартная частота: 44100 Гц — часто используется для аудио высокого качества.
  • Частота тона A: 440 Гц — эталон музыкальной ноты A4.
  • Длительность примера: 10 с в примере синусоиды.

Когда этот подход не подходит

  • Если нужны низкоуровневые операции с задержкой в реальном времени, Octave может быть не лучшим выбором; лучше C/C++ с ALSA/PortAudio.
  • Для сложной спектральной обработки с визуализацией и интерактивностью удобнее использовать специализированные DAW или Python-инструменты.

Краткий пример рабочего сценария

  1. Скопировать тестовый ogg-файл в рабочую папку Octave.
  2. Проверить info = audioinfo(‘file.ogg’).
  3. [y,fs] = audioread(‘file.ogg’);
  4. player = audioplayer(y,fs,8); play(player);
  5. При изменениях сигналов — audiowrite(‘out.ogg’, y_mod, fs);

1-строчный глоссарий

  • audioread — функция чтения аудиофайлов; возвращает матрицу сэмплов и частоту дискретизации.
  • audiowrite — функция записи массива сэмплов в аудиофайл.
  • audioplayer — объект-плеер для воспроизведения аудиоданных.

Заключение

Octave предоставляет достаточный набор функций для базовой работы со звуком: чтение, запись, синтез простых сигналов и проигрывание. Этот урок даёт основу для дальнейшего изучения фильтрации, анализа спектра и разработки звуковых прототипов.

Краткое резюме — проверьте метаданные, используйте audioread/audiowrite и тестируйте воспроизведение на целевых устройствах. В следующих материалах можно рассмотреть стереозапись, фильтры и визуализацию спектра.

Важно: если вы сталкиваетесь с несовместимостью форматов, используйте ffmpeg/sox для конвертации перед обработкой в Octave.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти