Comments 16
Интересно, а есть алгоритм для определения погрешности произношения. Типа есть оригинал нормального носителя языка и на графиках показывает, насколько ты отстал от нормального.
Несмотря на то, что у G729 размер фрейма 10мс, кодеки поновенее (AMR1/2; AFE и в особенности Skype SILK) используют фреймы длиной 20мс. (АMR, SILK) и 30мс. (AFE). И на практике, простейшие VAD алгоритмы (основанные на энергии, энтропии и пересечении нулевой отметки) хорошо работают как раз с фреймами размером 30мс и пересечением 10мс.
И вообще проблема VAD не столько в белом шуме (это дело как раз таки решили), а в энергии этого шума. Лишние 5db экспоненциально ухудшают работу VAD.
И вообще проблема VAD не столько в белом шуме (это дело как раз таки решили), а в энергии этого шума. Лишние 5db экспоненциально ухудшают работу VAD.
Да, соглашусь, энергия самого шума критически влияет на работу этих алгоритмов, независимо от того, на каких характеристиках они основаны. Поэтому ищут алгоритмы, которые успешно справляются с шумами разных характеров.
А на счет работы с пересекающимися фреймами — на основе более продолжительного окна времени можно достать больше информации о присутствующем шуме, потому новые кодеки работают на порядок лучше. Но они соответственно сложнее в реализации. Я же для начала решил сделать перевод статьи с довольно простым алгоритмом VAD.
А на счет работы с пересекающимися фреймами — на основе более продолжительного окна времени можно достать больше информации о присутствующем шуме, потому новые кодеки работают на порядок лучше. Но они соответственно сложнее в реализации. Я же для начала решил сделать перевод статьи с довольно простым алгоритмом VAD.
Проблема VAD в психологии. Без генерации комфортного шума он невыносим — возникает ощущение, что связь прервалась. С генерацией комфортного шума все равно заметны дефекты. Плюс чаще всего проглатываются первые миллисекунды речи. Поэтому обычно VAD принято отключать.
Ну, скажем, VAD ведь нужен не только для средств связи, не так ли? Насколько я знаю, в TeamView используется реализация VAD из-за которой слушать собеседника во время совместной работы сложно. Но сам VAD это подоснова для многих других алгоритмов. В том числе алгоритмов улучшения качества речевых отрезков, распознавания, выделения дикторов. Скажем, это весьма важный алгоритм в области обработки аудио или речи и от качества его реализации сильно зависит итоговый результат комплексной системы.
На днях как раз сочинял такую штуку для самодельной цифровой рации. Обошёлся простым сравнением с порогом. Это то, что тут называют short time energy?
Проверяли поведение на шипящих звуках?
Вот бы еще пример реализации увидеть на каком-нибудь языке, например java или с++. Это было бы идеально…
Примеров даже в сети не очень много, да и то что есть редко выходит за рамки грязного едва-рабочего куска кода. Разработки в этой области мало кто выкладывает, так как зачастую они несут коммерческий интерес. Есть мысли до весны реализовать пару базовых алгоритмов из этой области, в том числе и VAD и, если повезет, несомненно поделюсь примером.
В этих графиках есть одна странность.
С какого перепугу Most dominant frequency component должна выглядеть как на графике.
Скорее всего в моменты появления речи перескок должен быть сделан на форманту F1, а не улетать куда-то сильно вверх.
Я набросал код, а сейчас смотрю на графики. Шипящие-свистящие безусловно дают высокий подрос частоты, но это обычно обрамление гласных звуков, которые по крайней мере у нас в русском находятся в центре слов. А у гласных — там доминирует первая форманта.
С какого перепугу Most dominant frequency component должна выглядеть как на графике.
Скорее всего в моменты появления речи перескок должен быть сделан на форманту F1, а не улетать куда-то сильно вверх.
Я набросал код, а сейчас смотрю на графики. Шипящие-свистящие безусловно дают высокий подрос частоты, но это обычно обрамление гласных звуков, которые по крайней мере у нас в русском находятся в центре слов. А у гласных — там доминирует первая форманта.
Sign up to leave a comment.
Простой, но эффективный Voice Activity Detection алгоритм реального времени