setAugmenterParams

Установите параметры алгоритма увеличения

    Описание

    пример

    setAugmenterParams(aug,algorithmName,params) устанавливает параметры алгоритма увеличения, сопоставленного с audioDataAugmenter объект.

    setAugmenterParams(aug,algorithmName) без params аргумент восстанавливает algorithmName параметры к их значениям по умолчанию.

    Примеры

    свернуть все

    Измените параметры по умолчанию shiftPitch и stretchAudio алгоритмы увеличения.

    Читайте в звуковом сигнале и слушайте его.

    [audioIn,fs] = audioread('FemaleSpeech-16-8-mono-3secs.wav');
    soundsc(audioIn,fs)

    Создайте audioDataAugmenter объект, который применяет сдвиг тангажа 3 полутоны и время простираются с SpeedupFactor из 1.5.

    aug = audioDataAugmenter('AugmentationParameterSource','specify', ...
                             'ApplyPitchShift',true, ...
                             'SemitoneShift',3, ...
                             'ApplyTimeStretch',true, ...
                             'SpeedupFactor',1.5, ...
                             'ApplyVolumeControl',false, ...
                             'ApplyAddNoise',false, ...
                             'ApplyTimeShift',false)
    aug = 
      audioDataAugmenter with properties:
    
                   AugmentationMode: 'sequential'
        AugmentationParameterSource: 'specify'
                   ApplyTimeStretch: 1
                      SpeedupFactor: 1.5000
                    ApplyPitchShift: 1
                      SemitoneShift: 3
                 ApplyVolumeControl: 0
                      ApplyAddNoise: 0
                     ApplyTimeShift: 0
    
    

    Вызовите setAugmenterParams установить LockPhase и PreserveFormants параметры shiftPitch алгоритм увеличения к false. Установите LockPhase параметр stretchAudio алгоритм увеличения к false. Установите CepstralOrder параметр shiftPitch алгоритм к 30.

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

    setAugmenterParams(aug,'shiftPitch','LockPhase',false,'PreserveFormants',false,'CepstralOrder',30);
    setAugmenterParams(aug,'stretchAudio','LockPhase',false);
    data = augment(aug,audioIn,fs);
    
    pause(3)
    
    augmentationPre = data.Audio{1};
    soundsc(augmentationPre,fs)
    
    data.AugmentationInfo(1)
    ans = struct with fields:
        SpeedupFactor: 1.5000
        SemitoneShift: 3
    
    
    augmenterParamsPre = getAugmenterParams(aug);
    augmenterParamsPre.stretchAudio
    ans = struct with fields:
        LockPhase: 0
    
    
    augmenterParamsPre.shiftPitch
    ans = struct with fields:
               LockPhase: 0
        PreserveFormants: 0
           CepstralOrder: 30
    
    

    Постройте представление временного интервала оригинала и увеличенных сигналов.

    t = (0:(numel(audioIn)-1))/fs;
    taug = (0:(numel(augmentationPre)-1))/fs;
    plot(t,audioIn,taug,augmentationPre)
    legend("Original Audio","Augmented Audio")
    ylabel("Amplitude")
    xlabel("Time (s)")

    Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original Audio, Augmented Audio.

    Чтобы частично компенсировать слышимое искажение и увеличить точность алгоритмов увеличения, примените сохранение форманты к shiftPitch алгоритм, примените блокировку фазы к обоим алгоритмам и измените cepstral порядок shiftPitch алгоритм к 25. Слушайте обработанное аудио.

    setAugmenterParams(aug,'shiftPitch','LockPhase',true,'PreserveFormants',true,'CepstralOrder',25);
    setAugmenterParams(aug,'stretchAudio','LockPhase',true);
    data = augment(aug,audioIn,fs);
    
    augmentationPost = data.Audio{1};
    soundsc(augmentationPost,fs)
    
    data.AugmentationInfo(1)
    ans = struct with fields:
        SpeedupFactor: 1.5000
        SemitoneShift: 3
    
    
    augmenterParamsPost = getAugmenterParams(aug);
    augmenterParamsPost.stretchAudio
    ans = struct with fields:
        LockPhase: 1
    
    
    augmenterParamsPost.shiftPitch
    ans = struct with fields:
               LockPhase: 1
        PreserveFormants: 1
           CepstralOrder: 25
    
    

    Постройте исходное аудио, а также увеличенные данные до и после сохранения форманты, блокировки фазы и модификации порядка cepstral.

    taug = (0:(numel(augmentationPost)-1))/fs;
    plot(t,audioIn,taug,augmentationPre)
    hold on
    plot(taug,augmentationPost,'LineStyle',':')
    legend("Original Audio","Pre Formant Preservation," + ...
        " Phase-Locking, and Cepstral Order", ...
        "Post Formant Preservation, Phase-Locking, and Cepstral Order")
    ylabel("Amplitude")
    xlabel("Time (s)")
    legend('Location','best')

    Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Original Audio, Pre Formant Preservation, Phase-Locking, and Cepstral Order, Post Formant Preservation, Phase-Locking, and Cepstral Order.

    Возвратите параметры алгоритма увеличения в их значения по умолчанию. Вызовите getAugmenterParams отобразить текущие значения параметров для audioAugmenter объект.

    setAugmenterParams(aug,'shiftPitch')
    setAugmenterParams(aug,'stretchAudio')
    augmenterParamsDefault = getAugmenterParams(aug);
    augmenterParamsDefault.stretchAudio
    ans = struct with fields:
        LockPhase: 0
    
    
    augmenterParamsDefault.shiftPitch
    ans = struct with fields:
               LockPhase: 0
        PreserveFormants: 0
           CepstralOrder: 30
    
    

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

    свернуть все

    Увеличение аудиоданных в виде audioDataAugmenter объект.

    Имя алгоритма в виде 'stretchAudio' или 'shiftPitch.

    Примечание

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

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

    Название параметра в виде вектора символов, строки или массива структур. Значения параметров зависят от algorithmName. Задайте params как один из них:

    • Когда вы устанавливаете algorithmName к 'stretchAudio', задайте params как 'LockPhase' и true или false.

    • Когда вы устанавливаете algorithmName к 'shiftPitch', задайте params как один или все они:

      • 'LockPhase' и true или false

      • 'PreserveFormants' и true или false

      • 'CepstralOrder' и положительное целое число

    Пример: setAugmenterParams(aug,'shiftPitch','LockPhase',true,'PreserveFormants',false,'CepstralOrder',15) включает LockPhase параметр, отключает PreserveFormants параметр, и устанавливает cepstral порядок 15 для shiftPitch алгоритм увеличения.

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

    Введенный в R2021a