2014-01-30 3 views
0

Я использую библиотеку opencoreamr в режиме реального времени. Я вижу, что библиотека имеет своего рода функцию VAD, которая заставляет шумовые пакеты отключать. Я хочу отличить шумовые пакеты от голосовых, которые декодируют до пакеты молчания. Как я могу это сделать? Как я могу отличить тихие пакеты AMR (чтобы их не обрабатывать)?Найти AMR тихие пакеты

+0

Можете ли вы получить доступ к данным образца? Если да, то тихие - те, где все образцы равны 0. – Dithermaster

+0

Да, поскольку я не нашел простого способа сделать это, я вызываю метод декодирования после кодирования звукового фрейма, а затем проверяю все его значение, чтобы увидеть, 0 или нет. Я искал более оптимальный способ сделать это, но кажется, что он отлично работает, не добавляя разумной задержки. – harsini

ответ

0

Вычислить средний среднеквадратичный квадрат для каждого пакета. Если он не значительно выше фонового шума, это тишина. Это отличается от функциональности голосовой активности. Для голосовой активности лучше использовать CELP-кодек, который вы уже используете в amr, так как реализация сама по себе - это как изобретать колесо (это то, что вы сказали в комментарии, который вы делаете).

Смежные вопросы