openl3Features

Извлечение OpenL3 функций

    Описание

    пример

    embeddings = openl3Features(audioIn,fs) возвращает OpenL3 встроенные функции с течением времени для аудиовхода audioIn со скоростью дискретизации fs. Столбцы входа обрабатываются как отдельные каналы.

    пример

    embeddings = openl3Features(audioIn,fs,Name,Value) задает опции с использованием одного или нескольких Name,Value аргументы. Для примера, embeddings = openl3Features(audioIn,fs,'OverlapPercentage',75) применяет 75% перекрытие между последовательными системами координат, используемыми для создания вставок звука.

    Эта функция требует как Audio Toolbox™, так и Deep Learning Toolbox™.

    Примеры

    свернуть все

    Загрузите и разархивируйте модель Audio Toolbox™ для OpenL3.

    Тип openl3Features в командной строке. Если модель Audio Toolbox для OpenL3 не установлена, функция предоставляет ссылку на расположение весов сети. Чтобы скачать модель, щелкните ссылку. Разархивируйте файл в местоположении по пути MATLAB.

    Также выполните следующие команды, чтобы загрузить и разархивировать модель OpenL3 в свою временную директорию.

    downloadFolder = fullfile(tempdir,'OpenL3Download');
    loc = websave(downloadFolder,'https://ssd.mathworks.com/supportfiles/audio/openl3.zip');
    OpenL3Location = tempdir;
    unzip(loc,OpenL3Location)
    addpath(fullfile(OpenL3Location,'openl3'))

    Чтение в аудио файла.

    [audioIn,fs] = audioread('MainStreetOne-16-16-mono-12secs.wav');

    Вызовите openl3Features функция со скоростью звука и частоты дискретизации для извлечения встроенных OpenL3 признаков из аудио.

    featureVectors = openl3Features(audioIn,fs);

    The openl3Features функция возвращает матрицу из 512-элементных векторов признаков с течением времени.

    [numHops,numElementsPerHop,numChannels] = size(featureVectors)
    numHops = 111
    
    numElementsPerHop = 512
    
    numChannels = 1
    

    Создайте 10-секундный сигнал розового шума и затем извлеките OpenL3 функции. The openl3Features функция извлекает функции из спектрограмм mel с 90% перекрытием.

    fs = 16e3;
    dur = 10;
    audioIn = pinknoise(dur*fs,1,'single');
    features = openl3Features(audioIn,fs);

    Постройте график OpenL3 функций с течением времени.

    surf(features,'EdgeColor','none')
    view([30 65])
    axis tight
    xlabel('Feature Index')
    ylabel('Frame')
    xlabel('Feature Value')
    title('OpenL3 Features')

    Чтобы уменьшить разрешение OpenL3 функций с течением времени, задайте процент перекрытия между спектрограммами mel. Постройте график результатов.

    overlapPercentage = 10;
    функции = openl3Features (audioIn, fs,'OverlapPercentage', overlapPercent);
    surf (функции,'EdgeColor','none')
    просмотр ([30 65])
    ось tight
    xlabel ('Feature Index')
    ylabel ('Frame')
    zlabel ('Feature Value')
    заголовок ('OpenL3 Features')

    Входные параметры

    свернуть все

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

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

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

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

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

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

    Пример: openl3Features(audioIn,fs,'SpectrumType','mel256')

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

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

    Тип спектра, сгенерированный из аудио и используемый как вход в нейронную сеть, заданный как 'mel128', 'mel256', или 'linear'.

    Примечание

    The SpectrumType выбранный объект управляет спектрограммой, используемой в сети. Посмотрите openl3 или openl3Preprocess для получения дополнительной информации.

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

    Длина выхода audio embedding, заданная как '512' или '6144'.

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

    Аудио содержимого тип обученной нейронной сети, заданный как 'env' или 'music'.

    Задайте ContentType кому:

    • 'env' когда вы хотите использовать модель, обученную экологическим данным.

    • 'music' когда вы хотите использовать модель, обученную на музыкальных данных.

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

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

    свернуть все

    Компактное представление аудиоданных, возвращаемое как N -by- L -by- C массив, где:

    • N - Представляет количество буферизованных систем координат, в которые разбит аудиосигнал, и зависит от длины audioIn и 'OverlapPercentage'.

    • L -- Представляет длину встраивания аудио.

    • C -- Представляет количество входных каналов.

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

    Ссылки

    [1] Cramer, Jason, et al. Look, Listen, and Learn More: Design Choices for Deep Audio Embeddings (неопр.) (недоступная ссылка). В ICASSP 2019 IEEE International Conference on Aoustics, Speech and Signal Processing (ICASSP), IEEE, 2019, pp. 3852-56. DOI.org (Crossref), doi:/10.1109/ICASSP.2019.8682475.

    Введенный в R2021a