exponenta event banner

openl3Features

Извлечение OpenL3 элементов

    Описание

    пример

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

    пример

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

    Эта функция требует как 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);

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

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

    Создайте 10-секундный сигнал розового шума, а затем извлеките OpenL3 элементы. openl3Features функция извлекает признаки из спектрограмм с 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;
    features = openl3Features(audioIn,fs,'OverlapPercentage',overlapPercentage);
    surf(features,'EdgeColor','none')
    view([30 65])
    axis tight
    xlabel('Feature Index')
    ylabel('Frame')
    zlabel('Feature Value')
    title('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'.

    Примечание

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

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

    Длина встраивания выходного звука, указанная как '512' или '6144'.

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

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

    Набор ContentType кому:

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

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

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

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

    свернуть все

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

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

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

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

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

    Ссылки

    [1] Крамер, Джейсон, и др. «Смотрите, слушайте и узнайте больше: варианты дизайна для глубоких аудиозаписей». В ICASSP 2019 Международная конференция IEEE по аустике, обработке речи и сигналов (ICASSP), IEEE, 2019, стр. 3852-56. DOI.org (Crossref), doi:/10.1109/ICASSP.2019.8682475.

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