Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
Голосовой агент научили принимать сразу несколько закрытых решений по речи, не расшифровывая её и не генерируя текстовый ответ. В препринте, который не проходил рецензирование и приводит замеры самих авторов, DuplexJev сработал в 17 раз быстрее генерации JSON на той же LLM. Для голосовых продуктов это позволяет вынести определение конца реплики, выбор заготовки и маршрутизацию в один пакетный проход.
Как один проход заменяет расшифровку и генерацию
DuplexJev соединяет замороженный кодировщик речи с замороженной LLM через небольшой связующий модуль (connector). Кодировщик превращает аудио в последовательность внутренних представлений, а модуль переводит их в формат входных данных LLM. Обучается только этот промежуточный слой.
Каждое решение оформлено как вопрос с конечным набором вариантов. Варианты получают буквенные обозначения, после чего система сравнивает оценки соответствующих токенов в позиции ответа. Она не выбирает слова по одному и не собирает JSON: один прямой проход сразу возвращает распределение вероятностей по допустимым вариантам.
Этот интерфейс подходит для определения состояния диалога, выбора маршрута, оценки срочности или подходящей заранее записанной фразы. Выход всегда соответствует объявленному типу, а вероятность лучшего варианта позволяет отказаться от ответа при низкой уверенности.
Вопросы от разных звонков можно объединять в пакет. Если несколько вопросов относятся к одной реплике и истории диалога, DuplexJev один раз вычисляет общую часть, а затем обрабатывает только разные окончания запросов. Маска внимания не даёт вопросам влиять друг на друга, поэтому совместная обработка сохраняет смысл независимых запросов.
Для содержания речи модуль учат повторять поведение LLM, которая видит эталонный транскрипт. Для закрытых решений используют перекрёстную энтропию только на токене ответа. Разделение принципиально: модель, которая учится у текста, не может получить от такого учителя сведения об эмоции или голосе говорящего.
Скорость не потребовала отказаться от понимания речи
На одном H200 пакет закрытых решений занял 92 мс, тогда как генерация JSON на том же движке потребовала 1,57 с без учёта распознавания речи. Преимущество проявилось при задержке, допустимой в разговоре. При полной загрузке разрыв по пропускной способности исчезал, поскольку пакетная генерация лучше распределяет свои расходы.
Связующий модуль, который использует последний слой кодировщика, дал 90% правильных ответов на двуязычных голосовых вопросах. Та же LLM с эталонным транскриптом получила 91%. Значит, на этом наборе переход к прямому чтению аудио почти не ухудшил понимание содержания.
Обычное обучение по транскрипту оставляло распознавание пола и эмоции около случайного уровня, хотя линейная проверка находила эти признаки внутри кодировщика. Обучение по токену ответа подняло точность обоих решений до 90% в смешанном режиме. Добавление перекрёстного внимания между слоями кодировщика не оказалось обязательным: простой модуль на последнем слое тоже извлекал нужные признаки.
Проверка охватывала Qwen3-32B с Qwen3-ASR-0.6B, два варианта связующего модуля, китайскую и английскую речь, вопросы на содержание, управление очередностью реплик, пол и четыре класса эмоций. Авторы также заменяли речевой кодировщик и LLM готовыми компонентами, не меняя интерфейс чтения ответа. Потоковую обработку аудио не проверяли: замеры начинались с готовых реплик.
Закрытые решения стоит отделить от разговорной генерации
Работа меняет архитектурный план там, где голосовой агент после каждой реплики запускает LLM ради коротких служебных ответов. Такие задачи можно описать как типизированные вопросы, объединить между звонками и выполнять отдельно от основного генератора ответа. Расшифровка остаётся нужна для поиска, журналирования и открытых запросов, но перестаёт быть обязательным промежуточным шагом для каждого управляющего решения.
Экономия зависит не только от модели, но и от реализации сервера. Если копировать длинную историю диалога для каждого вопроса, пакет быстро расходует память и повторно вычисляет один контекст. Совместное использование префикса здесь входит в архитектуру решения, а не служит необязательной оптимизацией.
Извлечение признаков голоса также придётся планировать отдельно. Дистилляция по транскрипту подходит для содержания, но не учит слышать интонацию и характеристики говорящего. Для таких решений нужны размеченные аудиопримеры и прямое обучение на варианте ответа; усложнять связующий модуль заранее работа не предлагает.
DuplexJev не заменяет специализированный классификатор, если продукт задаёт один неизменный вопрос. Его преимущество появляется, когда набор решений меняется во время работы, вопросы используют общий длинный контекст, а задержка генерации блокирует начало ответа. Опубликованные веса, схема обучения и пакетный конвейер позволяют проверить этот вариант на собственных репликах до перестройки голосового контура.
Источники
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



