# Тюнинг Silero-VAD модели > Код тюнинга создан при поддержке Фонда содействия инновациям в рамках федерального проекта «Искусственный интеллект» национальной программы «Цифровая экономика Российской Федерации». Тюнинг используется для улучшения качества детекции речи Silero-VAD модели на кастомных данных. ## Подготовка данных Датафреймы для тюнинга должны быть подготовлены и сохранены в формате `.feather`. Следующие колонки в `.feather` файлах тренировки и валидации являются обязательными: - **audio_path** - абсолютный путь до аудиофайла в дисковой системе. Аудиофайлы должны представлять собой `PCM` данные, предпочтительно в форматах `.wav` или `.opus` (иные популярные форматы аудио тоже поддерживаются). Для ускорения темпа дообучения рекомендуется предварительно выполнить ресемплинг аудиофайлов (изменить частоту дискретизации) до 16000 Гц; - **speech_ts** - разметка для соответствующего аудиофайла. Список, состоящий из словарей формата `{'start': START_SEC, 'end': 'END_SEC'}`, где `START_SEC` и `END_SEC` - время начало и конца речевого отрезка в секундах соответственно. Пример `.feather` датафрейма можно посмотреть в файле `example_dataframe.feather` ## Файл конфигурации `config.yml` Файл конфигурации `config.yml` содержит пути до обучающей и валидационной выборки, а также параметры дообучения: - `train_dataset_path` - абсолютный путь до тренирового датафрема в формате `.feather`, Должен содержать колонки `audio_path` и `speech_ts`, описанные в пункте "Подготовка данных". Пример устройства датафрема можно посмотреть в `example_dataframe.feather`; - `val_dataset_path` - абсолютный путь до валидационного датафрема в формате `.feather`, Должен содержать колонки `audio_path` и `speech_ts`, описанные в пункте "Подготовка данных". Пример устройства датафрема можно посмотреть в `example_dataframe.feather`; - `use_torchhub` - Если `True`, то модель для дообучения будет загружена с помощью torch.hub. Если `False`, то модель для дообучения будет загружена с помощью библиотеки silero-vad (необходимо заранее установить командой `pip install silero-vad`); - `tune_8k` - данный параметр отвечает, какую голову Silero-VAD дообучать. Если `True`, дообучаться будет голова с 8000 Гц частотой дискретизации, иначе с 16000 Гц; - `model_save_path` - путь сохранения добученной модели; - `noise_loss` - коэффициент лосса, применяемый для неречевых окон аудио; - `max_train_length_sec` - максимальная длина аудио в секундах на этапе дообучения. Более длительные аудио будут обрезаны до этого показателя; - `aug_prob` - вероятность применения аугментаций к аудиофайлу на этапе дообучения; - `learning_rate` - темп дообучения; - `batch_size` - размер батча при дообучении и валидации; - `num_workers` - количество потоков, используемых для загрузки данных; - `num_epochs` - количество эпох дообучения. За одну эпоху прогоняются все тренировочные данные; - `device` - `cpu` или `cuda`. ## Дообучение Дообучение запускается командой `python tune.py` Длится в течение `num_epochs`, лучший чекпоинт по показателю ROC-AUC на валидационной выборке будет сохранен в `model_save_path` в формате jit. ## Цитирование ``` @misc{Silero VAD Dataset, author = {Silero Team}, title = {Silero-VAD Dataset: a large public Internet-scale dataset for voice activity detection for 6000+ languages}, year = {2024}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/snakers4/silero-vad/datasets/README.md}}, email = {hello@silero.ai} } ```