Задача
Прямой эфир конференции на несколько языков: классический синхронист дорог, не масштабируется на десяток языков и ошибается к концу смены. Нужен пайплайн речь → перевод → речь с задержкой, при которой зал и онлайн-зрители слышат перевод почти синхронно со спикером.
Главный враг — задержка в цепочке из трёх тяжёлых шагов (распознавание, перевод, синтез) плюс необходимость начинать перевод до конца фразы, иначе отставание копится и к середине доклада становится неприличным.
Подход
Все три стадии сделали потоковыми: распознавание отдаёт частичные гипотезы, перевод работает инкрементально с политикой ожидания (сколько слов накопить перед переводом), синтез стартует, не дожидаясь конца предложения. Это управляемый размен «задержка против качества» под формат мероприятия.
Чтобы цепочка не рассыпалась, стадии связали очередями с backpressure: под наплывом быстрой речи система держит задержку в бюджете, а не копит лаг до обвала. Термины и имена собственные подхватываются из глоссария доклада, чтобы перевод не плыл на специфике.
Стек
streaming ASR · incremental MT (wait-k) · streaming TTS · очереди + backpressure · GPU serving
Результат
- 8 языков одновременно с одного спикера.
- 1.9 с задержка речь-в-речь на живом докладе.
- Задержка держится в бюджете даже на быстрой речи.
- Терминология доклада подхватывается из глоссария.