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