Установите параметры алгоритма увеличения
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)")

Чтобы частично компенсировать слышимое искажение и увеличить точность алгоритмов увеличения, примените сохранение форманты к 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')

Возвратите параметры алгоритма увеличения в их значения по умолчанию. Вызовите 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
aug — Увеличение аудиоданныхaudioDataAugmenter объектУвеличение аудиоданных в виде audioDataAugmenter объект.
algorithmName — Имя алгоритма'stretchAudio' | 'shiftPitch'Имя алгоритма в виде 'stretchAudio' или 'shiftPitch.
Примечание
Алгоритмы увеличения должны быть изменены независимо с помощью отдельных вызовов setAugmenterParams для каждого алгоритма.
Типы данных: char | string
params — Параметр используется с алгоритмом увеличенияНазвание параметра в виде вектора символов, строки или массива структур. Значения параметров зависят от 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
addAugmentationMethod | audioDataAugmenter | augment | getAugmenterParams | removeAugmentationMethod
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.