Обнаружение контуров речи в аудиосигнале
задает опции с использованием одного или нескольких idx
= detectSpeech(audioIn
,fs
,Name,Value
)Name,Value
аргументы в виде пар.
detectSpeech(audioIn,fs,'Window',hann(512,'periodic'),'OverlapLength',256)
обнаруживает речь с помощью 512-точечного периодического окна Ханна с 256-точечным перекрытием.[
также возвращает пороги, используемые для вычисления контуров речи.idx
,thresholds
] = detectSpeech(___)
detectSpeech(___)
без выходных аргументов отображает график обнаруженных речевых областей во входном сигнале.
detectSpeech
алгоритм основан на [1], хотя и изменен так, что статистика до порога является краткосрочной энергией и спектральным распространением, вместо краткосрочной энергии и спектрального центроида. Схема и шаги обеспечивают высокоуровневый обзор алгоритма. Для получения дополнительной информации см. раздел [1].
Аудиосигнал преобразуется в представление частота-время с помощью заданного Window
и OverlapLength
.
Краткосрочный энергетический и спектральный разброс вычисляется для каждой системы координат. Спектральный разброс вычисляется согласно spectralSpread
.
Гистограммы создаются как для краткосрочных энергетических, так и для спектральных распределений.
Для каждой гистограммы порог определяется согласно , где M 1 и M 2 являются первым и вторым локальными максимумами, соответственно. W установлено на 5
.
Как спектральный спред, так и краткосрочная энергия сглаживаются через время, проходя через последующие пятиэлементные движущиеся средние фильтры.
Маски создаются путем сравнения краткосрочной энергии и спектрального распространения с их соответствующими порогами. Чтобы объявить систему координат содержащим речь, функция должна быть выше своего порога.
Маски объединяются. Чтобы система координат был объявляема как речь, и краткосрочная энергия, и спектральный разброс должны быть выше их соответствующих порогов.
Области, объявленные как речь, объединяются, если расстояние между ними меньше MergeDistance
.
[1] Джаннакопулос, Теодорос. «Метод удаления тишины и сегментации речевых сигналов, реализованный в MATLAB» (Афинский университет, Афины, 2009).