JoyAI-Talker: full-duplex голосовой агент с управлением перебиваниями
JoyAI-Talker интересен как системная работа про голосового агента, где важны не только распознавание и синтез, но и поведение при перекрывающейся речи. Авторы используют decoupled Duplex-Thinker-Talker: Thinker сохраняет reasoning и tool-use, Talker генерирует управляемую речь, а Joy-Duplex отдельно решает turn-taking. Главный инженерный ход - не строить полностью end-to-end dual-stream модель, а встроить состояние диалога в streaming decoding через специальные state tokens.
Метод. Базовая языковая часть построена вокруг 48.9B sparse MoE модели с примерно 3B active parameters. Speech-to-text training включает ASR, translation, QA, speech text continuation, audio captioning и empathetic response data. Talker следует архитектуре JoyVoice и управляется natural-language instructions и paralinguistic tokens вроде laughter/sigh. Joy-Duplex использует streaming audio encoder и 1.7B decoder-only модель, которая выдает состояния вроде accept/resume/checking, чтобы различать перебивание пользователя, backchannel, речь третьего лица и background speech.
Результаты. В S2T JoyAI-Talker-DPO получает WER 0.86% на Aishell-1, 2.17% на Aishell-2, 1.32% на LibriSpeech clean, 2.58% на LibriSpeech other, 9.39% на GigaSpeech. В speech QA он показывает 94.73% на OpenBookQA, 84.65% на MMSU и 75.77% на SD-QA. В Full-Duplex-Bench v1.5 Joy-Duplex достигает CRESPOND 0.88 при user interruption и CRESUME 0.07, а при background speech снижает false response до 0.10 при CRESUME 0.85. На Speech-ACEBench Single score 98.56, выше Qwen3-Omni 92.79 и text-only Qwen3.6 96.63.
Ограничения. Это крупная система с закрытым training recipe и большим sparse MoE backbone, поэтому воспроизводимость ограничена. Разделение на модули дает deployability, но сами авторы отмечают небольшой latency penalty у chunk-based streaming относительно более unified parallel models. Оценки empathy и части ответа используют LLM-as-a-judge; acoustic realization of empathy оценивается отдельно. Full-duplex benchmark полезен, но не заменяет полевые диалоги с шумом, несколькими людьми и долгой историей разговора.
Фишка из статьи. Самая конкретная часть - таблица Full-Duplex-Bench: модель должна отвечать на перебивание, но не реагировать на backchannel и фон. Это не обычный WER-бенчмарк; здесь качество определяется политикой управления ходом разговора.
| Сценарий Full-Duplex-Bench | Метрика | GPT-4o | Gemini 3.1 Live | Joy-Duplex |
|---|---|---|---|---|
| User interruption | CRESPOND выше лучше | 0.78 | 0.77 | 0.88 |
| User interruption | CRESUME ниже лучше | 0.10 | 0.20 | 0.07 |
| User backchannel | False CRESPOND ниже лучше | 0.03 | 0.02 | 0.01 |
| Talking to other | False CRESPOND ниже лучше | 0.91 | 0.27 | 0.17 |
| Background speech | False CRESPOND ниже лучше | 0.93 | 0.28 | 0.10 |
Как это читать: главное не в том, что агент "быстро говорит", а в том, что он лучше различает адресованное перебивание и постороннюю речь. Joy-Duplex агрессивнее отвечает на реальное interruption, но при background speech почти в 9 раз меньше ошибочно отвечает, чем GPT-4o в этой таблице.