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

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

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

TL;DR

Этот туториал показывает, как в Octave (v4.0.0) на Ubuntu читать аудиофайлы, получать информацию о них, записывать простые сигналы и воспроизводить звук. Приведены основные команды audioread/audiowrite/audioplayer, советы по формату и небольшой чек‑лист для практики.

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

Ключевые темы

  • Установка Octave и запуск в Ubuntu
  • Просмотр метаданных аудиофайла (audioinfo)
  • Чтение (audioread) и запись (audiowrite) файлов OGG/WAV
  • Воспроизведение через встроенный audioplayer
  • Практические советы, альтернативы и чек‑листы для ролей

Что нужно установить и проверить

  1. Добавьте PPA Octave и установите программу (терминал):
sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave
  1. Откройте Octave (через меню или командой octave в терминале). Смените рабочий каталог через File Browser.

Открытие Octave 4.0

Альтернативы: в некоторых дистрибутивах Octave доступен из репозиториев без PPA; проверьте версию перед установкой.

Шаг 1 — Просмотр информации об аудиофайле

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

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

Использование audioinfo в Octave

Короткое определение: audioinfo — функция, возвращающая структуру с полями о формате и параметрах аудио.

Шаг 2 — Чтение аудиофайла (audioread)

Для работы с данными нужно загрузить файл в переменную. Файл должен быть в рабочем каталоге Octave.

>> file = 'yourfile.ogg'
>> [M, fs] = audioread(file)

Где:

  • M — матрица размеров N×C (N — число сэмплов, C — число каналов: 1 для моно, 2 для стерео)
  • fs — частота дискретизации в герцах (Гц), например 44100

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

Матрица Octave после чтения

График частоты

Дополнительные формы вызова 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 — низкоуровневое аудио для реального времени.

Мини‑методология для исследований и прототипов

  1. Конвертация: приведите все файлы к одному формату/частоте дискретизации (например, 44 100 Гц, 16 бит) через ffmpeg.
  2. Валидация: audioinfo для проверки каналов и длительности.
  3. Эксперименты: загружайте части файла (audioread с диапазоном) для тестов и визуализации.
  4. Сохранение результатов: audiowrite сохраняет обработанные сигналы.
  5. Документирование: сохраняйте код и параметры эксперимента вместе с временными метками.

Чек‑лист по ролям

Для инженера‑аудио:

  • Проверить частоту дискретизации и форматы
  • Использовать ‘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 предоставляет базовые и удобные средства для работы с аудиофайлами: быстрый просмотр метаданных, чтение/запись и простое воспроизведение. Для прототипирования и научных экспериментов этого достаточно, но для реального времени и продакшна стоит рассмотреть специализированные решения.

Короткая дорожная карта для дальнейшего изучения

  1. Работа с двухканальными сигналами и панорамированием
  2. Частотный анализ (FFT) и фильтрация
  3. Генерация более сложных сигналов и эффектов
  4. Интеграция с Python/ffmpeg для гибкой обработки
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро