Автоматическая запись и транскрибирование лекций из платформы Webinar / Zoom или стороннего видео/аудио
- Автоматический вход по ссылке (Webinar / Zoom) с указанным именем, ожидание начала мероприятия
- Возможность нескольких ссылок (по завершении мероприятия автоматическое переключение на следующее)
- Вход, используя прокси
- Автоматическое написание приветственного сообщения в чат
- Автоматическое блокирование микрофона и камеры
- Автоматическое блокирование всплывающих окон и диалогов
- Автоматическое подтверждение присутствия
- Автоматическая активность путём периодического фокусирования на чате
- Автоматическая запись звука с возможностью задания порога чувствительности
- Автоматическое сохранение скриншотов
- Автоматическое переключение ссылок при превышении заданного времени ожидания
- Сборка скриншотов и аудио-фрагментов из стороннего видео-файла или аудио-файла
- Транскрибирование аудио в текст со знаками препинания при помощи локальной оффлайн-модели
- Разделение на параграфы по паузе
- Сопоставление скриншотов и транскрибированного текста в документ формата
.docx
- Вычисление примерного оставшегося времени до окончания процесса транскрибирования
- Скачайте и распакуйте архив последней версии Lecture-hacker: https://github.com/F33RNI/Webinar-hacker/releases/latest
- Скачайте и установите Google Chrome, если у вас его нет: https://www.google.com/chrome/
- Запустите приложение, используя файл
Lecture-hacker.exe
Запись и сборка лекций всегда проходит в 2 этапа независимо от того, с Webinar / Zoom она или из видео/аудио:
- Непосредственно запись лекции. На этом этапе Lecture-hacker извлекает аудио-фрагменты в которых есть звук, по громкости превышающий установленный порог (каждый фрагмент записывается в отдельный WAV файл 16КГц PCM16 (signed int16)). А также следит за изменением изображения. Если изменения выше порога, сохраняется скриншот.
- Из обработанных данных (набора .wav файлов и скриншотов) непосредственно собирается лекция. Для этого, в начале, аудио транскрибируется с сохранением времени, далее, текст вместе со скриншотами, согласно времени, записывается в .docx файл.
Основной функционал Lecture-hacker подразумевает автоматический вход по ссылке (и ожидание начала мероприятия), отправку приветственного сообщения в чат, симуляцию активности и запись лекции
- Для этого, перейдите на вкладку Webinar / Zoom
- Вставьте ссылку на мероприятие в поле
Webinar / Zoom links:
- Если мероприятий несколько, нажмите на кнопку
+
чтобы добавить новую ссылку и на кнопки-
чтобы удалить ссылки - Укажите имя, с которым нужно подключиться в поле
Connect with name:
- Укажите приветственное сообщение, которое необходимо отправить в чат после начала мероприятия в поле
Hello message:
- Если требуется, укажите прокси в формате
IP:PORT
в полеProxy:
- Укажите время, через которое нужно переключить / закрыть ссылку в полях
Link timeout:
. Если это не требуется, снимите галочку или выставите 0 и 0 - Для Zoom, укажите, нужно ли перезаходить по той же ссылке и сколько раз в поле
Zoom reconnects:
. Если это не требуется, снимите галочку или выставите 0 - Укажите, нужно ли записывать это мероприятие для последующего транскрибирования в поле
Enable Recording
- Нажмите кнопку
Start
и дождитесь открытия браузера - Готово! Вход, запись и выход будут выполнены автоматически. Чтобы закрыть браузер раньше, нажмите на кнопку
Stop
Во время мероприятия можно настраивать таймаут (Link timeout
), количество переподключений в Zoom (Zoom reconnects
) и порог громкости для начала записи (Audio threshold
)
Перед сборкой лекции (транскрибированием), необходимо обработать видео- / аудио- файл.
- Для этого, перейдите на вкладку Video / Audio file
- Вставьте путь к файлу (или выберите файл при помощи кнопки
Browse
) - Нажмите кнопку
Start
и дождитесь окончания обработки файла - Файл можно закрыть в любой момент, нажав на кнопку
Stop
- После обработки файла, можно транскрибировать данную лекцию
После завершения мероприятия, записанный материал можно транскрибировать в .docx
документ с картинками:
- Для этого обновите список записей нажав на кнопку
Refresh
- Выберите из списка нужную запись
- Нажмите на кнопку
Build
. После окончания процесса, будет показано окно с путём сохранения конечного документа - Важно! Процесс сборки лекции может занимать длительное время! (может быть больше времени записанного материала) Не закрывайте приложение до разблокировки кнопок
- Для ускорения процесса транскрибирования, установите CUDA 11.7: https://developer.nvidia.com/cuda-11-7-0-download-archive и убедитесь что при запуске сборки, внизу окна есть сообщение
Device: cuda
- Настройки Lecture-hacker хранятся в файле
settings.json
- Настройки с префиксом
gui_
редактируются при помощи элементов интерфейса в реальном времени - Для изменения других настроек, закройте приложение, откройте данный файл в текстовом редакторе, измените нужные параметры и откройте приложение заново
- Важно! Lecture-hacker не проводит автоматическую проверку настроек. Если вы задали неверное значение, ошибка появится в неожиданный момент! Будьте внимательны при редактировании файла
Текущий список настроек:
{
"screenshot_diff_threshold_percents": 5,
"opencv_threshold": 10,
"loop_interval_seconds": 3.0,
"timestamp_format": "%d_%m_%Y__%H_%M_%S",
"audio_chunk_size": 4096,
"audio_recording_chunks_min": 20,
"audio_wav_sampling_rate": 16000,
"audio_wav_resampling_type": "soxr_mq",
"paragraph_audio_distance_min_milliseconds": 10000,
"recordings_directory_name": "recordings",
"lectures_directory_name": "lectures",
"audio_directory_name": "audio",
"screenshots_directory_name": "screenshots",
"whisper_model_name": "medium",
"whisper_model_language": "ru",
"lecture_build_time_filter_factor": 0.8,
"lecture_picture_width_inches": 6.0,
"lecture_font_size_pt": 12,
"lecture_default_text_color": [
0,
0,
0
],
"lecture_low_confidence_text_color": [
150,
0,
0
],
"word_low_confidence_threshold_percents": 70,
"save_lecture_to_directory": "",
"gui_links": [],
"gui_name": "Tester",
"gui_hello_message": "\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435!",
"gui_hello_message_enabled": true,
"gui_recording_enabled": true,
"gui_proxy": "",
"gui_max_event_time_enabled": true,
"gui_max_event_time_milliseconds": 6000000,
"gui_zoom_reconnects_enabled": true,
"gui_zoom_reconnects_max": 2,
"gui_audio_threshold_dbfs": 0,
"gui_video_audio_file": "",
"gui_tabs_current_index": 0
}
- whisper-timestamped: https://github.com/linto-ai/whisper-timestamped
- openai/whisper-medium: https://huggingface.co/openai/whisper-medium
- Другие зависимости и пакеты, указанные в файле
requirements.txt
- Подробных инструкции пока неть 🙃
- Но можно попробовать склонировать репозиторий
git clone https://github.com/F33RNI/Webinar-hacker
- Установить пакеты
pip install -r requirements.txt --upgrade
- Установить CUDA 11.7
- Скачать файл
ffmpeg.exe
https://ffbinaries.com/downloads в папку с проектом - И попробовать запустить приложение
python main.py
- Хотите добавить что-то новое / исправить баг? Создайте пул-реквест / issue!