Комментарии 12
Планируете выложить код для тренировки на собственных данных?
Хотя формально сам код является отделимым и лаконичным, часть пайплайнов для данных не очень отделимы от приватных вещей, поэтому скорее нет чем да (опыт open-stt "научил" нас общению с коммьюнити)
Также мы скорее рассматриваем наше решение скорее как конечное решение, а не тулкит, чтобы сделать свое решение, да и как показывает практика по-настоящему универсальных и портативных решений не так много, поэтому лучше собрать фидбек и самим запилить новые фичи
Но как и в случае с silero-models
мы собираем запросы на фичи и будем понемногу их добавлять, например больше устойчивости к мелким чанкам или детектор музыки
Ну и никто не мешает естественно использовать готовую модель как экстрактор фич для своей модели
[{'end': 35000, 'start': 0},
{'end': 112000, 'start': 35000},
{'end': 124000, 'start': 112000},
{'end': 288000, 'start': 143000},
{'end': 320000, 'start': 287000},
{'end': 628000, 'start': 319000},
{'end': 752000, 'start': 632000},
{'end': 801000, 'start': 775000},
{'end': 960000, 'start': 811000}]
В каких единицах измерения эти числа?
Уже есть даже тикет с аналогичным вопросом — https://github.com/snakers4/silero-vad/discussions/25
"а в детекцию тишины (тишина — это отсутствие и голоса и шума), " - из опыта работы в телефонии и кол-центрах мне кажется такое понимание неправильно на практике, хотя может теоретически и правильно. Дело втом что разные модели телефонов и блютуф гарнитур имеют системы автоматической регулировки уровня сигнала и системы подавления шумов - все это работает по разному и таких моделей сотни если не тысячи, из-за этого уровень фонового шума приходит в кол центр очень сильно разный, в 10 раз и более, (в тихом доме и в шуме у дороги или в метро и т.д.) и пороговый метод работает очень слабо. Точнее как бы тишина это отсутсвие голоса или многократно более слабый сигнал по сравнению с голосом но пока голоса не было порог не выставить, ну и в метро или у дороги с интенсивным движением шум или как бы тишина из-за АРУ может быть и громче голоса.
Мы сталкивались с этой проблемой, новый VAD ее частично решает. Более полно решает уже с неким набором эвристик уже в самих дистрибутивах.
на практике в крупном кол-центре где я работал как раз это отличить шум от голоса была главной нерешенной проблемой (а не нет сигнала - от есть сигнал), подход с эвристиками использовался в Инфинити в результате их число быстро разрослось до нескольких тысяч и постоянно пополнялось ввиду быстрого изменения условий и даже сверх супер мега мощный сервер за 20 млн. руб. перестал справляться. У меня сложилось впечатление что подход с эвристикми в корне неправильный и продать вашу систему в кол цент где уже обожглись на эвристиках будет невозможно. Нужен какой-то кардинально другой подход! И кстати гонка за скоростью на практиуке не нужна, в пределах 1 сек это очень даже Ок если 99.99% правильных срабатываний и вероятность пропуска близка к нулю.
День добрый! Если я получаю данные с микрофона в виде последовательности целых чисел (pvrecorder), как их лучше обрабатывать перед подачей в Silero VAD?
Там в репозитории есть примеры
Но вообще нормализовать к -1 ... 1
А дальше преобразовать в тензор или оставить список?
Со списком работают get_speech_timestamps и vad_iterator.
Команда collect_chunks(speech_timestamps, sound_scaled) выдает ошибку "TypeError: expected Tensor as element 0 in argument 0, but got list"
model(chunk, SAMPLING_RATE) выдает ошибку "forward() Expected a value of type 'Tensor' for argument 'x' but instead found type 'list'."
Мы опубликовали современный Voice Activity Detector и не только