Нам хотелось бы знать, когда в аудиофайле начинается высказывание. Выражение может быть целым предложением или очень коротким, например одно слово. Может быть некоторый фоновый шум (дыхание, скрип, вентиляторы и т. Д.). В настоящее время мы используем простой пороговый метод (если звук довольно громкий, пользователь начинает говорить), но иногда он не срабатывает, если слышен достаточно громкий шум.
Мы экспериментировали с webrtc-vad ( hs , js ), но похоже, что ответы 1 / True ("is voice") так же часто звучат как шум что касается голоса.
В примере кода, использующем webrtc-vad, я вижу, что они часто ищут последовательности из 1-ответов в строке / в течение промежутка времени, как в примере кода mozilla webrtcvad_js , но это не кажется чтобы помочь нам много. Постоянно писать ответ, когда тестирование освещает, например, первая серия 1 от меня говорит «я», а вторая от меня осторожно ставит чашку с кофе на стол:
00000000000000000001111111000000000000000000001111111100000000000000
Последовательности имеют примерно одинаковую длину :( Игра с агрессивностью только делает ее немного хуже.
Разве webrtc-vad
просто не подходит для этой задачи? Или это все еще может быть полезным в качестве первого фильтра? Может быть, второй фильтр должен проверить, что большая часть звука находится в диапазоне 50–300 Hz
? (Я знаю, что мог бы отправить его через полный конвейер преобразования текста в речь и посмотреть, удастся ли ему превратить это в нечто разборчивое, но это кажется излишним, если просто узнать , когда кто-то начинает говорить…)