В этом разделе описан процесс настройки и запуска функции расшифровки видео в гибидном DION.Видео.
После успешного выполнения всех пунктов инструкций гибридный видеопортал DION готов к расшифровке видео. По окончании записи встречи, её последующей конвертации и обработки текст расшифровки отобразится на странице видеозаписи в разделе Расшифровка видео.
Расшифровка видео тарифицируется отдельно. За подробностями обратитесь к своему аккаунт-менеджеру.
Расшифровка видео — это инструмент распознавания речи, который на основе аудиодорожки встречи формирует текст (полную стенограмму встречи по спикерам). Текст расшифровки также можно использовать как субтитры, отображая их прямо под видео во время просмотра.
Для работы инструмента необходим развернутый гибридный видеопортал DION.Видео.
Инструмент работает для всех видеоматериалов — как для записей конференций, так и для файлов, загруженных вручную.
Решение состоит из двух основных компонентов:
Транскрибация — это компонент, который:
Суммаризация — это компонент, который:
На данный момент для суммаризации доступен только один универсальный вариант протокола.

Дополнительную информацию о расшифровке видео см. здесь.
В разделе описаны требования, необходимые для корректной работы функционалности расшифровки видео.
Модуль расшифровки видео разворачивается на отдельной виртуальной машине с установленными на ней ОС Linux, компонентами docker и docker-compose.
Модуль может использовать для обработки видеозаписей как центральный (CPU), так и графический процессор (GPU). Среднее время обработки 1 часа видео:
Расчёт выполнялся на основе нагрузочного тестирования, проведенного на процессоре Intel(R) Xeon(R) Gold 6240R CPU @ 2.40GHz, и видеокарте c графическим процессором NVIDIA GeForce RTX 3080 и памятью объёмом 10гб. Для других моделей необходимо учитывать соотношение производительности.
Если объем загружаемых видео превышает скорость их обработки, формируется очередь, что приведет к задержкам в получении результатов транскрибации.
Суммаризация выполняется независимо от транскрибации и требует доступа к LLM-модели, работающей на GPU (не входит в поставку).
Требования зависят от используемой LLM-модели, объема видеопамяти, настройки контекста.
Адрес OpenAI-совместимого API указывается в конфигурационном файле .env.
Обработчик должен иметь сетевой доступ к LLM endpoint.
Видеокарта с объёмом памяти не менее 16 ГБ;
LLM-модель Qwen 3.5 с числом параметров не менее 9B;
Размер контекста — не менее 128k для обработки двухчасовой стенограммы.
В случае использования модели, отличной от рекомендуемой, качество результата суммаризации может быть неудовлетворительным.
В ходе работы по расшифровке аудиодорожки в текст создаются промежуточные файлы. Для их хранения необходимо создать дополнительный бакет s2t и настроить его ежедневную очистку.
Чтобы настроить ежедневное удаление файлов для MinIO:
s2t, откройте его настройки и перейдите в раздел Lifecycle.Подключитесь на подготовленную машину, и установите docker и docker-compose . Рекомендуем воспользоваться официальной инструкцией на сайте Docker.
Скачайте и распакуйте архив. Архив содержит следующие файлы:
docker-compose.yaml;.env;whisper.tar;worker.tar;models, содержащий модель для работы.Перейдите в каталог с распакованными файлами и загрузите Docker-образ из архива в локальный реестр, выполнив команду:
sudo docker load -i ./whisper.tar
sudo docker load -i ./worker.tar
Откройте для редактирования файл docker-compose.yaml:
nano ./docker-compose.yaml
Укажите локальный IP-адрес машины, на которой будет запущен Docker-compose, согласно комментарию:
# Вместо 192.168.0.1 укажите ip машины, на которой запущен сервис kafka (запущен этот docker-compose). ПОРТ МЕНЯТЬ НЕ НАДО!!!
x-kafka-controller-quorum-voters: &kafka-controller-quorum-voters "1@192.168.0.1:29093"
x-kafka-advertised-listeners: &kafka-advertised-listeners "PLAINTEXT://192.168.0.1:9092,PLAINTEXT_HOST://192.168.0.1:29092"
x-kafka-bootstrap-servers: &kafka-bootstrap-servers "192.168.0.1:9092"
#----------------------------------------------------------------
Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Откройте для редактирования файл .env:
nano ./.env
Отредактируйте файл по шагам:
a. Замените значение WHISPER_DEVICE на cuda, если в системе присутсвует видеокарта:
# Device (cpu,cuda)
WHISPER_DEVICE=cpu
b. В блоке S3 / MinIO укажите данные для подключения к S3-хранилищу, согласно примеру:
S3_ENDPOINT=http://192.168.0.2:9000
S3_ACCESS_KEY=<s3 access key>
S3_SECRET_KEY=<s3 secret key>
S3_BUCKET=s2t
c. В блоке Kafka замените IP-адрес 192.168.0.1 на локальный адрес машины:
KAFKA_ADDRESSES=192.168.0.1:29092
d. В блоке Whisper (s2t) замените IP-адрес 192.168.0.1 на локальный адрес машины:
WHISPER_URL=http://192.168.0.1:9000
e. В блоке OpenAI (Summary) укажите данные для подключения к вашей собственной LLM-инфраструктуре:
OPENAI_API_KEY=local-qwen
OPENAI_BASE_URL=http://192.168.0.1:11434
OPENAI_MODEL_NAME=default
OPENAI_VERIFY_SSL=false
Данная часть конфигурационного файла является опциональной и используется для генерации протокола (суммаризации) встречи.
Если у вас нет собственной LLM-инфраструктуры, вы можете воспользоваться примером установки сервера Ollama:
curl -fsSL https://ollama.com/install.sh | sh
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo tee /etc/systemd/system/ollama.service.d/override.conf > /dev/null <<'EOF'
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_CONTEXT_LENGTH=131072"
Environment="OLLAMA_ORIGINS=*"
EOF
sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl restart ollama
sudo systemctl status ollama
ollama pull qwen3.5:9b
Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Запустите контейнеры:
docker compose up -d
При первом запуске будут скачиваться дополнительные образы контейнеров, это может занять несколько минут.
Убедитесь, что все контейнеры запущены:
docker ps -a
После того, как был настроен и запущен модуль расшифровки видео, нужно связать его с гибридным видеопорталом. Для этого внесите правки в конфигурационный файл сервиса HLS-converter.
Подключитесь к серверу, на котором запущена служба HLS-converter и откройте для редактирования конфигурационный файл:
sudo nano /etc/dion/hls-converter.yml
Добавьте в раздел s3: дополнительный блок speech-to-text:, согласно примеру ниже:
s3:
dion-conferences:
host: *s3_host_port # Адрес и порт S3
accessKey: *s3_accessKey # Ключ доступа (Access Key)
secretKey: *s3_secretKey # Секретный ключ (Secret Key)
bucketName: *s3_conferences_bucketName # Bucket для conferences
useSSL: true # Включить TLS
insecureSkipVerify: true # Пропуск проверки сертификата
dion-video:
host: *s3_host_port # Адрес и порт S3
accessKey: *s3_accessKey # Ключ доступа (Access Key)
secretKey: *s3_secretKey # Секретный ключ (Secret Key)
bucketName: *s3_video_bucketName # Bucket для video
useSSL: true # Включить TLS
insecureSkipVerify: true # Пропуск проверки сертификата
speech-to-text:
host: *s3_host_port # Адрес и порт S3
accessKey: *s3_accessKey # Ключ доступа (Access Key)
secretKey: *s3_secretKey # Секретный ключ (Secret Key)
bucketName: s2t # Bucket для video
useSSL: true # Включить TLS
insecureSkipVerify: true # Пропуск проверки сертификата
Заполните раздел kafka:. В host: замените IP-адрес на адрес сервера, на котором развернут speech-to-text, остальные поля — согласно примеру ниже:
kafka:
main:
hosts:
- 192.168.0.1:29092
secretKey:
ssl:
isEnabled: false
caCertLocation:
insecureSkipVerify: true
sasl:
isEnabled: false
mechanism:
userName:
password:
isLoggerEnabled: false
topics:
speech-to-text-in-events:
topicName: onprem-test-transcription-jobs
writer:
timeout: 3s
batchSize: 100
requiredAcks: 1
batchTimeout: 1ms
speech-to-text-out-events:
topicName: onprem-test-transcription-results
reader:
groupName: "hls-s2t-results-consumer"
startOffset: -1
dialTimeout: 5s
maxWait: 500ms
commitInterval: 500ms
commitTimeout: 5s
handleTimeout: 30s
retentionTime: 5m
Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Перезапустите службу:
sudo systemctl restart dion-hls-converter.service
Убедитесь, что сервис запущен без ошибок и находится в статусе active (running):
sudo systemctl status dion-hls-converter.service