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