exponenta event banner

pitchnn

Оценка шага с помощью нейронной сети глубокого обучения

    Описание

    пример

    f0 = pitchnn(audioIn,fs) возвращает оценки основной частоты во времени для audioIn с частотой выборки fs. Столбцы ввода обрабатываются как отдельные каналы.

    f0 = pitchnn(audioIn,fs,Name,Value) указывает параметры, использующие один или несколько Name,Value аргументы. Например, f0 = pitchnn(audioIn,fs,'ConfidenceThreshold',0.5) устанавливает порог достоверности для каждого значения f0 кому 0.5.

    [f0,loc] = pitchnn(___) возвращает значения времени, loc, связанные с каждой оценкой фундаментальной частоты.

    [f0,loc,activations] = pitchnn(___) возвращает активации crepe предварительно обученная сеть.

    pitchnn(___) без выходных аргументов строит график расчетной основной частоты во времени.

    Примеры

    свернуть все

    Загрузите и распакуйте модель Audio Toolbox™ для CREPE.

    Напечатать crepe в окне команд. Если модель Audio Toolbox для CREPE не установлена, функция предоставляет ссылку на расположение весов сети. Чтобы загрузить модель, щелкните ссылку и распакуйте файл в расположение по пути MATLAB.

    Либо выполните эти команды для загрузки и распаковки модели CREPE во временную папку.

    downloadFolder = fullfile(tempdir,'crepeDownload');
    loc = websave(downloadFolder,'https://ssd.mathworks.com/supportfiles/audio/crepe.zip');
    crepeLocation = tempdir;
    unzip(loc,crepeLocation)
    addpath(fullfile(crepeLocation,'crepe'))

    Убедитесь, что установка выполнена успешно, введя crepe в окне команд. Если сеть установлена, то функция возвращает DAGNetwork(Панель инструментов глубокого обучения).

    crepe
    ans = 
      DAGNetwork with properties:
    
             Layers: [34×1 nnet.cnn.layer.Layer]
        Connections: [33×2 table]
         InputNames: {'input'}
        OutputNames: {'pitch'}
    
    

    Сеть CREPE требует предварительной обработки аудиосигналов для формирования буферизованных, перекрывающихся и нормализованных аудиокадров, которые могут использоваться в качестве входных данных в сети. В этом примере демонстрируется pitchnn выполнение всех этих шагов.

    Считывание звукового сигнала для оценки основного тона. Визуализация и прослушивание звука. В аудиоклипе девять вокальных высказываний.

    [audioIn,fs] = audioread('SingingAMajor-16-mono-18secs.ogg');
    soundsc(audioIn,fs)
    T = 1/fs;
    t = 0:T:(length(audioIn)*T) - T;
    plot(t,audioIn);
    grid on
    axis tight
    xlabel('Time (s)')
    ylabel('Ampltiude')
    title('Singing in A Major')

    Используйте pitchnn функция для получения оценки основного тона с использованием сети CREPE с ModelCapacity установить в значение tiny и ConfidenceThreshold отключено. Запрос pitchnn без выходных аргументов строит график оценки основного тона во времени. При звонке pitchnn перед загрузкой модели в командное окно выводится сообщение об ошибке со ссылкой на загрузку.

    pitchnn(audioIn,fs,'ModelCapacity','tiny','ConfidenceThreshold',0)

    С отключенным доверительным порогом, pitchnn обеспечивает оценку основного тона для каждого кадра. Увеличить ConfidenceThreshold кому 0.8.

    pitchnn(audioIn,fs,'ModelCapacity','tiny','ConfidenceThreshold',0.8)

    Звонить pitchnn с ModelCapacity установить в значение full. Существует девять первичных групп оценки основного тона, каждая группа соответствует одному из девяти речевых высказываний.

    pitchnn(audioIn,fs,'ModelCapacity','full','ConfidenceThreshold',0.8)

    Звонить spectrogram и сравнить частотное содержание сигнала с оценками основного тона из pitchnn. Использовать размер кадра 250 выборки и перекрытие 225 образцы или 90%. Использовать 4096 Точки DFT для преобразования.

    spectrogram(audioIn,250,225,4096,fs,'yaxis')

    Входные аргументы

    свернуть все

    Входной сигнал, заданный как вектор столбца или матрица. Если указать матрицу, pitchnn обрабатывает столбцы матрицы как отдельные аудиоканалы.

    Типы данных: single | double

    Частота дискретизации входного сигнала в Гц, заданная как положительный скаляр.

    Типы данных: single | double

    Аргументы пары «имя-значение»

    Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

    Пример: pitchnn(audioIn,fs,'OverlapPercentage',50) устанавливает процентное перекрытие между последовательными аудиокадрами равным 50.

    Процентное перекрытие между последовательными аудиокадрами, заданными как скаляр в диапазоне [0,100).

    Типы данных: single | double

    Порог достоверности для каждого значения f0, задается как скаляр в диапазоне [0,1).

    Чтобы отключить пороговое значение, установите TH кому 1.

    Примечание

    Если максимальное значение соответствующего activations вектор меньше, чем 'ConfidenceThreshold', f0 является NaN.

    Типы данных: single | double

    Мощность модели, указанная как 'tiny', 'small', 'medium', 'large', или 'full'.

    Совет

    'ModelCapacity' контролирует сложность лежащей в основе нейронной сети глубокого обучения. Чем выше емкость модели, тем больше количество узлов и слоев в модели.

    Типы данных: string | char

    Выходные аргументы

    свернуть все

    Оцененная основная частота в Герце, возвращаемая как массив N-на-C, где N - количество оценок основной частоты, а C - количество каналов в audioIn.

    Типы данных: single

    Значения времени, связанные с каждым f0 оценка, возвращенная как 1-по-N вектору, где N - число оценок основной частоты. Значения времени соответствуют последним выборкам, используемым для вычисления оценок.

    Типы данных: single | double

    Активации из сети CREPE, возвращенные как N-by-360- по-C матрице, где N - количество сформированных кадров из сети, а C - количество каналов в audioIn.

    Типы данных: single | double

    Ссылки

    [1] Ким, Чен Вук, Джастин Саламон, Питер Ли и Хуан Пабло Белло. «Crepe: Сверточное представление для оценки основного тона». В 2018 году IEEE Международная конференция по акустике, обработке речи и сигналов (ICASSP), 161-65. Калгари, AB: IEEE, 2018. https://doi.org/10.1109/ICASSP.2018.8461329.

    Представлен в R2021a