Аудио в Octave на Ubuntu: чтение, запись, воспроизведение
TL;DR
Этот туториал показывает, как в Octave (v4.0.0) на Ubuntu читать аудиофайлы, получать информацию о них, записывать простые сигналы и воспроизводить звук. Приведены основные команды audioread/audiowrite/audioplayer, советы по формату и небольшой чек‑лист для практики.
Важно: примеры предполагают, что файл находится в рабочем каталоге Octave и что установлен пакет для воспроизведения аудио в вашей системе.
Ключевые темы
- Установка Octave и запуск в Ubuntu
- Просмотр метаданных аудиофайла (audioinfo)
- Чтение (audioread) и запись (audiowrite) файлов OGG/WAV
- Воспроизведение через встроенный audioplayer
- Практические советы, альтернативы и чек‑листы для ролей
Что нужно установить и проверить
- Добавьте PPA Octave и установите программу (терминал):
sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave- Откройте Octave (через меню или командой octave в терминале). Смените рабочий каталог через File Browser.

Альтернативы: в некоторых дистрибутивах Octave доступен из репозиториев без PPA; проверьте версию перед установкой.
Шаг 1 — Просмотр информации об аудиофайле
Команда audioinfo возвращает метаданные файла: длительность, частота дискретизации, число каналов и т. п.
>> info = audioinfo('testing.ogg')
Короткое определение: audioinfo — функция, возвращающая структуру с полями о формате и параметрах аудио.
Шаг 2 — Чтение аудиофайла (audioread)
Для работы с данными нужно загрузить файл в переменную. Файл должен быть в рабочем каталоге Octave.
>> file = 'yourfile.ogg'
>> [M, fs] = audioread(file)Где:
- M — матрица размеров N×C (N — число сэмплов, C — число каналов: 1 для моно, 2 для стерео)
- fs — частота дискретизации в герцах (Гц), например 44100



Дополнительные формы вызова audioread:
>> [y, fs] = audioread(filename, samples)
>> [y, fs] = audioread(filename, datatype)
>> [y, fs] = audioread(filename, samples, datatype)- samples — диапазон сэмплов [start end]
- datatype — тип возвращаемых данных, например ‘native’
Пример чтения части файла:
>> samples = [1, fs];
>> [y, fs] = audioread(filename, samples);Пример с native-типом:
>> [y, Fs] = audioread(filename, 'native')Если указать ‘native’, Octave вернёт данные того же типа, в котором они хранятся в файле.
Шаг 3 — Запись аудиофайла (audiowrite)
Создадим простой монофонический ogg-файл со значениями косинуса (A4 — 440 Гц). Частота дискретизации: 44100 Гц, длительность: 10 с.
>> filename = 'cosine.ogg';
>> fs = 44100; % частота дискретизации, Гц
>> t = 0:1/fs:10; % временная ось от 0 до 10 с
>> w = 2*pi*440*t; % угловая частота для 440 Гц
>> signal = cos(w); % сигнал косинуса
>> audiowrite(filename, signal, fs);После выполнения в рабочем каталоге появится файл cosine.ogg — 440 Гц тон (A4).

Чтобы проверить содержимое файла, прочитайте его обратно через audioread.
Замечание: для двух каналов передавайте матрицу N×2 в audiowrite.
Шаг 4 — Воспроизведение аудио (audioplayer)
Octave предоставляет объект audioplayer для тестового воспроизведения. Пример создания и запуска плеера:
>> [y, fs] = audioread('yourfile.ogg');
>> player = audioplayer(y, fs, 8);
% Демонстрация полей структуры player (пример вывода):
% BitsPerSample = 8
% CurrentSample = 0
% DeviceID = -1
% NumberOfChannels = 1
% Running = off
% SampleRate = 44100
% TotalSamples = 236473
% Type = audioplayer
>> play(player);Если воспроизведение не запускается, проверьте системный звуковой сервер (PulseAudio/ALSA) и наличие соответствующих кодеков для формата OGG.
Практическая шпаргалка — часто используемые команды
- Установка Octave:
sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave- Метаданные:
info = audioinfo('file.ogg') - Читать полностью:
[y, fs] = audioread('file.ogg') - Читать диапазон:
[y, fs] = audioread('file.ogg', [start end]) - Запись:
audiowrite('out.ogg', signal, fs) - Воспроизведение:
player = audioplayer(y, fs); play(player);
Когда этот подход не подходит
- Нужно низкоуровневое управление буфером/латентностью для реального времени — Octave не оптимизирован для live audio (лучше использовать C/C++ с ALSA/PortAudio, или DAW/соответствующие библиотеки).
- Большие проекты с множеством аудиодорожек и эффектов — профессиональные аудиоинструменты или специализированные библиотеки дадут лучшее быстродействие.
- Если требуется поддержка редких кодеков — используйте ffmpeg для конвертации перед работой в Octave.
Альтернативные инструменты
- MATLAB — коммерческий аналог с расширенными инструментами звуковой обработки.
- Python + librosa/soundfile/scipy — удобно для скриптов и интеграции в ML-пайплайны.
- SoX/ffmpeg — командная обработка и конвертация форматов.
- PortAudio/PyAudio — низкоуровневое аудио для реального времени.
Мини‑методология для исследований и прототипов
- Конвертация: приведите все файлы к одному формату/частоте дискретизации (например, 44 100 Гц, 16 бит) через ffmpeg.
- Валидация: audioinfo для проверки каналов и длительности.
- Эксперименты: загружайте части файла (audioread с диапазоном) для тестов и визуализации.
- Сохранение результатов: audiowrite сохраняет обработанные сигналы.
- Документирование: сохраняйте код и параметры эксперимента вместе с временными метками.
Чек‑лист по ролям
Для инженера‑аудио:
- Проверить частоту дискретизации и форматы
- Использовать ‘native’ для контроля типа сэмплов
- Тестировать воспроизведение на целевом оборудовании
Для исследователя:
- Использовать отрезки сигнала для быстрых итераций
- Логировать параметры эксперимента
- Конвертировать форматы через ffmpeg для согласованности
Для преподавателя/студента:
- Объяснить разницу между сэмплами и частотой дискретизации
- Демонстрировать простые синтезированные сигналы (синус/косинус)
Тест-кейсы и критерии приёмки
- Чтение файла: audioread должен вернуть матрицу NxC и fs > 0.
- Запись файла: audiowrite должен создать файл, который корректно читается и воспроизводится.
- Воспроизведение: play(player) должен начать звук без ошибок (зависит от системы).
Краткий словарь (1‑строчные определения)
- Сэмпл: дискретное значение сигнала во времени.
- Частота дискретизации (fs): число сэмплов в секунду, Гц.
- Канал: отдельная дорожка звука (моно = 1, стерео = 2).
- audioread/audiowrite: функции Octave для чтения и записи аудиофайлов.
Советы по отладки
- Если audioread выдаёт ошибку формата — конвертируйте через ffmpeg: ffmpeg -i input.ext output.wav
- Если нет звука при play — проверьте вывод ALSA/PulseAudio и права доступа к аудиоустройствам.
Заключение
Octave предоставляет базовые и удобные средства для работы с аудиофайлами: быстрый просмотр метаданных, чтение/запись и простое воспроизведение. Для прототипирования и научных экспериментов этого достаточно, но для реального времени и продакшна стоит рассмотреть специализированные решения.
Короткая дорожная карта для дальнейшего изучения
- Работа с двухканальными сигналами и панорамированием
- Частотный анализ (FFT) и фильтрация
- Генерация более сложных сигналов и эффектов
- Интеграция с Python/ffmpeg для гибкой обработки
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента