Компоненты: Комплексное решение Электронная библиотека ИРБИС64/128 Завершено: 25.05.2026 14:01
Интеграция подсистемы транскрибации в модуль FT и добавление локального распознавания через Whisper
Удаление модуля Transcribation: Отдельный модуль Transcribation полностью удален. Весь его функционал (включая работу с Yandex Cloud Storage и Yandex Speech API) перенесен внутрь модуля FT.
Локальная транскрибация (Whisper): Добавлена поддержка локального перевода голоса в текст с использованием нейросети Whisper (whisper-cli.exe).
Реализовано автоматическое определение наличия видеокарт Nvidia для использования аппаратного ускорения (CUDA 11 / CUDA 12) с автоматическим переключением на процессор (CPU) при их отсутствии.
Добавлена возможность выбора модели Whisper (от Tiny до Large v3).
** Улучшения видеоплеера: Обновлен интерфейс плеера в модуле FT (ShowFTVideo и ShowFTVideoVanila). Добавлена поддержка подключения сгенерированных Whisper субтитров в форматах .vtt и .srt, а также вывод интерактивного (кликабельного) распознанного текста с привязкой ко времени видео/аудио.
Оптимизация работы с FFmpeg: В скрипт обработки медиафайлов ExecFFMPEGV добавлен параметр actionAfter, позволяющий автоматически ставить в очередь следующее задание (например, транскрибацию) сразу после завершения конвертации и извлечения аудио (forTranscribation.wav или .ogg). Также для формата mp4 добавлен флаг faststart.
Интерфейс и настройки:
Настройки транскрибации (выбор активного сервиса: Отключен / Whisper / Яндекс, параметры моделей и API-ключи) теперь централизованно находятся в настройках модуля FT (AdminModuleVariablesInit.inc).
В редактор документов FT (Variables.inc) перенесены кнопки подготовки медиафайлов и запуска транскрибации.
-
Интеграция подсистемы транскрибации в модуль FT и добавление локального распознавания через Whisper
Удаление модуля Transcribation: Отдельный модуль Transcribation полностью удален. Весь его функционал (включая работу с Yandex Cloud Storage и Yandex Speech API) перенесен внутрь модуля FT.
Локальная транскрибация (Whisper): Добавлена поддержка локального перевода голоса в текст с использованием нейросети Whisper (whisper-cli.exe).
Реализовано автоматическое определение наличия видеокарт Nvidia для использования аппаратного ускорения (CUDA 11 / CUDA 12) с автоматическим переключением на процессор (CPU) при их отсутствии.
Добавлена возможность выбора модели Whisper (от Tiny до Large v3).
Улучшения видеоплеера: Обновлен интерфейс плеера в модуле FT (ShowFTVideo и ShowFTVideoVanila). Добавлена поддержка подключения сгенерированных Whisper субтитров в форматах .vtt и .srt, а также вывод интерактивного (кликабельного) распознанного текста с привязкой ко времени видео/аудио.
Оптимизация работы с FFmpeg: В скрипт обработки медиафайлов ExecFFMPEGV добавлен параметр actionAfter, позволяющий автоматически ставить в очередь следующее задание (например, транскрибацию) сразу после завершения конвертации и извлечения аудио (forTranscribation.wav или .ogg). Также для формата mp4 добавлен флаг faststart.
Интерфейс и настройки:
Настройки транскрибации (выбор активного сервиса: Отключен / Whisper / Яндекс, параметры моделей и API-ключи) теперь централизованно находятся в настройках модуля FT (AdminModuleVariablesInit.inc).
В редактор документов FT (Variables.inc) перенесены кнопки подготовки медиафайлов и запуска транскрибации.
Обработка аудио и видео (FFmpeg)
Единые обертки: Созданы универсальные функции FFmpegAudioConvert и FFmpegVideoConvert для вызова FFmpeg как в синхронном, так и в асинхронном режимах (поддерживается Windows и Linux).
Новые классы действий (Actions): Добавлены ExecFFMPEGA (для аудио) и специализированные генераторы плейлистов PrepareViewerVideoDash и PrepareViewerVideoHls.
Автоопределение кодека: В api.php добавлена функция GetBestVideoCodec(), которая автоматически выбирает доступное аппаратное ускорение для видео (h264nvenc, h264qsv, h264_amf) или откатывается к программному libx264.
Очистка старого кода: Удалено большое количество устаревших и узкоспециализированных скриптов-конвертеров (например, ConvertFFMPEGVToMP4, ConvertMP3ToOGG, PrepareAdaptiveStreams и др.). Их логика перенесена в новые модули с передачей настроек через опции.
Транскрибация (Whisper и Яндекс)
VAD для Whisper: Добавлена модель Silero VAD (ggmlsilerov6.2.0.bin) для улучшения распознавания пауз и речи локальным Whisper.
Борьба с галлюцинациями: Параметры запуска Whisper улучшены (добавлен prompt для русского языка, отключено зацикливание). Написан регулярный фильтр, который удаляет типичные артефакты и "галлюцинации" нейросети из итоговых субтитров (например, «Субтитры подогнал Симон», «Аминь.», «Продолжение следует...»).
Яндекс SpeechKit: Экшен YandexStartRecognize теперь перед отправкой в бакет умеет самостоятельно "на лету" конвертировать исходный медиафайл в формат OGG (Opus), если это необходимо.
Интерактивный текст в плеере: Добавлена функция рендеринга JSON-результатов от Whisper в виде кликабельных таймкодов (под спойлером) прямо на странице с плеером.
Фоновые задачи и Очередь (Queue)
Точный парсинг логов: В большинство длительных действий (ExecFFMPEGA, ExecFFMPEGV, PrepareViewerVideoDash/Hls, OCRTesseract, WhisperLocalStart) внедрен метод GetProgressByLog. Теперь система читает стандартный вывод утилит в реальном времени (например, время из FFmpeg, проценты из Whisper, номера страниц из Tesseract) и корректно отображает полосу прогресса выполнения задачи от 0 до 100%.
Плеер и фронтенд (irbisvideovanila.js, adaptivePlayer.js)
Субтитры (
Улучшена обработка сенсорного управления в плеере (исправлены баги с событиями touchEnd, тапами и перетаскиванием).
Добавлен файл .gitattributes для корректного отслеживания бинарных файлов (.bin, .exe, .dll, .traineddata) через Git LFS.
Проведена ревизия папки bin/nix64/ffmpeg: удалены огромные мануалы в PDF/TXT, удален ffserver и ffmpeg-10bit, добавлен ffplay.
1. Связанные задачи
1.1. 🔗 Соответствует задача: I128-2366
[I128-2366] Интеграция подсистемы транскрибации в модуль FT и добавление локального распознавания через Whisper
Статус: Открытая задача | Автор: Ilya Mikhaylenko