- write on english
- Перевести
preprocessor.pyc CPU на CUDA
- CUDA(желательно)
- 16 GB RAM
- Python 3.12
- Create venv
- pip install -r requirements.txt
- Докачать другие пакеты, которые пока не указаны в requirements.txt. Постараюсь поправить позже
- Для работы желательно иметь CUDA
- Запускаем скрипт Transcriber/main.py заранее обновив список аудиозаписей для обработки
python312 -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python312 main.py --testСкорее всего тебе так же вручуню придется докачать либы для CUDA с сайта torch
- Перед запуском на реальных аудиозаписях рекомендуется проверить работу приложения на тестовых записях. для
этого нужно запустить скрипт с флагом
test:python main.py --test
Не обращай внимание на это предупреждение. В коде чанки поступают уже попиленными на нужные части.
Pipeline этого приложения следующий:
- Запускаем preprocessor.py, в котором
- делим аудиозапись на 30 секундные чанки, в которых
- нормируем аудиозапись
- применяем compress dynamic range
- используем denoiser от meta
- сохраняем результат работы над чанком в папку
Processed/{audio_name}/parts
- Собираем все вместе
- делим аудиозапись на 30 секундные чанки, в которых
- Запускаем vad.py для поиска частей, в которых есть голос
- Запускаем transcriber.py, в котором:
- полученные временные границы от прошлого скрипта vad.py используется для нарезки обработанного аудио
- для лучшего распознавания объеденяем маленькие куски в один большой размером < 30 секунд
- подаем на вход модели whisper large-v3
- Транскрипция сохраняется в файл
Transcription/Lectures/{audio_name}.txt
- Если нужно использовать для других целей или как то настроить обработку
аудио, то нужно поковыряться в
preprocessor.py - Для экономии RAM памяти все модельки подгружаются постепенно. Если вы считаете, что у вас достаточно оперативки,
вы можете отключить данную логику в
main.py - Не советуется использовать распараллеливание для
Preprocessor. denoiser с pydub плохо работают вместе и на параллели - Лучше понастраивать batch_size для
Transcriber.load(batch_size=6). Но не устанавливайте слишком большой, иначе видеокарта может простаивать.(deprecated) - Для каждого пакета есть скрипт
main.py. В нем можно по отдельности что то поисполнять - В Tools есть полезные скрипты
- Лучше запускать в терминале и держать терминал открытым(то есть не сворачивать). Глупо, но когда сворачиваешь, то производетльность уменьшается(+1 секнуда к обработке каждого чанка)