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(___) возвращает активации a 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 (Deep Learning Toolbox) объект.

    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 Точки ДПФ для преобразования.

    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 -by - C массив, где N - количество фундаментальных оценок частоты, а C - количество каналов в audioIn.

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

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

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

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

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

    Ссылки

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

    Введенный в R2021a