Поиск по сайту:

Научная обработка звука, часть I. Как читать и записывать аудиофайлы с помощью Octave 4.0.0 в Ubuntu


На этой странице

  1. Предпосылки
  2. Шаг 1. Открытие октавы.
  3. Шаг 2. Информация об аудио
  4. Шаг 3. Чтение аудиофайла
  5. Шаг 4. Запись аудиофайла
    1. Создание файла 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);


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