Когда мы говорим «улучшить голос бота», обычно имеем в виду записать голос покрасивее. Но клиент слышит не тембр, а весь речевой тракт: как бот произносит числа, где делает паузы, как быстро отвечает, замолкает ли, когда его перебили. Новый голос сам по себе не чинит ничего из этого списка. Здесь — карта того, из чего складывается речевой опыт и на что мы можем влиять.
Слово «голос» обычно относят только к шагу 05. А ощущение робота может создавать и то, что происходит на шагах 02 и 04: бот долго молчит, не замолкает, когда его перебили, или принимает «угу» за реплику. Что именно весит больше у нас — как раз и надо замерить. Поэтому направление правильнее называть не «новый голос», а качество речевого взаимодействия.
Если обсуждение уйдёт вглубь — вот четыре решения, ради которых всё это собрано.
Дефекты копятся с весны, и часть из них переезжала из версии в версию. Летом остаток B2C-обзвона откладывали в ожидании следующей версии ради улучшения перебиваний — это было ожиданием, а не подтверждённым результатом. То есть стратегию «подождём следующую версию» уже пробовали, и вопрос она не закрыла.
Что наблюдали в разные моменты — часть уже правили, что-то встречается редко, что-то живо до сих пор. Список нужен не как отчёт о текущем состоянии, а чтобы видеть масштаб темы.
Часть уже разбирали: смотрели логи IVR и GigaVoice, пробовали менять скорость речи. Но измеримого улучшения ни по одному заходу зафиксировано не было — именно поэтому нужны базовый замер и единый формат дефектов.
«Голос неестественный» — это ощущение, а не задача. С такой формулировкой смежники отвечают ровно то, что уже отвечали: без прослушивания прокомментировать нечего. Задача появляется тогда, когда у претензии есть адрес.
Начать стоит с того, что «естественностью» называют три разные вещи — с разными владельцами и разными способами починки.
Отсюда первый шаг — не выбрать рычаг, а разложить претензии на конкретные: запись, таймкод, одна фраза о том, что именно не так. «Здесь ударение в фамилии», «здесь пауза на четыре секунды», «здесь оборвал на полуслове» — у каждого такого дефекта есть адрес, а у «неестественно» адреса нет.
И это уже сработало. Ровно один раз претензию сформулировали точнее обычного — «звучит менее живо, чем в рознице» — и ответ пришёл сразу и по делу: технология одна, разница в технике записи, а наш голос вообще не рекомендован для разговоров с клиентами. Одна точная формулировка сэкономила месяцы обсуждений.
Карта ниже нужна именно для этого: чтобы каждому дефекту было куда лечь.
Каждый можно улучшать независимо от остальных. Два из шести — подготовка текста и замеры качества — целиком в нашей зоне и не требуют ничьих доработок; ещё по нескольким мы можем как минимум начать измерять. Метки «наша зона» и «смежники» ниже — рабочая гипотеза: точная граница между настройками GigaVoice, сценарием в SkillFlow и деревом IVR как раз предстоит установить.
Как звучит тембр: живо или по-дикторски, приятно или «петушино».
TTS — text-to-speech, синтез речи: превращение текста в звук.
voice model — голосовая модель, конкретный голос в каталоге.
fine-tuning — дообучение модели под нового диктора.
Одна и та же фраза может прозвучать как живой вопрос, как чтение с листа или как допрос. Тембр при этом одинаковый.
prosody — просодия: интонация, логические ударения, темп, длина пауз. Всё, кроме собственно тембра.
SSML — язык разметки речи: теги, которыми можно вручную задать паузу, ударение или темп.
Качество звучания зависит не только от модели, но и от текста, который до неё доходит. Существенная часть «роботизированности» рождается не в синтезе, а в том, что мы ему отдаём.
text normalization — нормализация: превращение цифр, сокращений и символов в произносимую форму.
lexicon — словарь произношений и ударений для имён, брендов и терминов.
Клиент договорил — и тишина. После заметной паузы даже хороший голос воспринимается как робот.
latency — задержка.
time-to-first-audio — время до первого звука: главная метрика, а не скорость синтеза сама по себе.
streaming — потоковый синтез: начинать говорить, не дожидаясь, пока модель допишет весь ответ.
p50 / p95 — медиана и «худшие 5 % случаев». Мерить надо оба: средним по больнице задержка не описывается.
Живой разговор — не рация. Человек говорит «угу», кашляет, задумывается, перебивает на середине фразы.
VAD — voice activity detection: определение, говорит человек или это шум.
barge-in — перебивание: возможность клиента оборвать речь бота, и способность бота при этом быстро замолчать.
endpointing — определение конца реплики: клиент закончил мысль или взял паузу?
backchannel — «угу», «ага», «понятно»: знак «я слушаю», а не попытка забрать слово.
«На слух приятнее» — не результат. Без замера мы не отличим улучшение от привыкания.
A/B — слепое сравнение двух вариантов, когда слушатель не знает, где какой.
MOS — mean opinion score: средняя оценка естественности по шкале от 1 до 5.
WER — word error rate: доля ошибок распознавания. Дешёвая автоматическая проверка разборчивости и произношения — удобно гонять на каждой правке. Человеческую оценку естественности не заменяет: голос может отлично распознаваться и при этом звучать деревянно.
Текущий рантайм работает на телефонных 8 кГц и другого режима не поддерживает — это уже проверено на августовском сравнении голосов. Узкая полоса срезает верхние частоты, поэтому сравнивать голоса, интонацию и произношение имеет смысл только через реальный звонок: демо-страница вендора в браузере ничего не доказывает. Открытый вопрос — только про целевой контур: останется ли он узкополосным.
Много споров возникает из-за того, что непонятно, куда нести проблему. Первичное правило простое.
И здесь есть отдельная сложность: наши локальные прогоны не воспроизводят реальный звонок. В ноутбуке мы отдаём промпт и функции прямо модели и смотрим ответ. В звонке тот же промпт живёт внутри голосового контура, который добавляет к нему свой системный слой и преобразует текст перед синтезом — что именно, мы не знаем.
Отсюда два следствия. Локальный регресс, каким бы хорошим он ни был, не может быть единственным приёмочным контуром: часть поведения он просто не видит. И вопрос «что голосовой контур добавляет к нашему промпту и делает с нашим текстом» — один из первых к владельцам GigaVoice.
Прослушивать сотни записей вручную не получится, да и не нужно. Оценку стоит разложить на три слоя и оставить человека там, где без него действительно нельзя.
Как это завести. Разметить вручную небольшую выборку, прогнать те же записи через автоматических судей и посчитать совпадение отдельно по каждому критерию. Где совпадение высокое — перебивания, паузы, темп — метрику можно автоматизировать. Где низкое — «приятность голоса», тонкие оттенки — оставить человеку. Дальше автоматика ловит регрессии на каждом релизе, а человек принимает решение по выбору голоса.
Две оговорки, без которых это не заработает. Записи реальных клиентских звонков за периметр банка не уходят — значит либо внутренние аудио-модели, либо локально разворачиваемые оценщики. Для сравнения голосов это не помеха: наш тестовый корпус состоит из синтезированных реплик, клиентских данных в них нет.
И любого такого судью надо калибровать на русской речи и на телефонных 8 кГц: оценщик, обученный на широкополосном английском, о нашем звонке скажет мало. Плюс проверить лицензии — часть открытых моделей качества речи разрешена только для некоммерческого использования.
Это отдельный архитектурный трек, который может потребовать глубокой перестройки текущего тракта. Его стоит вести параллельно улучшению текущего тракта, а не вместо него.
Сегодня работает конвейер: одна нейросеть переводит речь в текст, вторая придумывает ответ, третья озвучивает. Все по очереди — человек сказал, ИИ подумал, ИИ ответил. Full-duplex — это когда система слушает и говорит одновременно, как человек в телефонном разговоре: продолжает воспринимать речь собеседника, пока говорит сама. Технически так можно сделать и потоковым каскадом, но Сбер публично описывает свой подход именно как одну модель вместо трёх.
Это то, ради чего технология делается, а не измеренные свойства будущей модели. Архитектура даёт возможность — качество всё равно определяется реализацией и проверяется тестами.
Практический смысл карты: несколько направлений можно начать двигать уже на этой неделе, не дожидаясь чужих доработок.
Речевой контур не чёрный ящик: заметная часть поведения настраивается прямо в вызове, который отправляем мы. Это самый конкретный ответ на вопрос «на что мы вообще можем влиять».
По синтезу речи картина уже понятна: есть продакт-оунер синтеза, есть команда, принимающая разбор дефектов озвучивания и интонации, и есть те, кто выдаёт доступы и держит стенды. Контакты по всем трём ролям у нас есть. Не закрыта граница между настройками самого голосового движка, скрытым промптом голосового слоя, конфигурацией сценария в SkillFlow и деревом IVR. ЦП ИИ — это research и работа над критериями качества, а не владелец голосового контура.
Порядок важен: сначала понять, что именно портит восприятие сегодня, и только потом вкладываться в дорогое.
Снять базовый уровень
Собрать 50–100 реплик нашего сценария плюс десяток коротких диалогов с типичными проблемами. Озвучить, послушать через телефон, зафиксировать: естественность, произношение, задержки, поведение при перебивании. Это точка отсчёта, без неё все дальнейшие сравнения бессмысленны.
Разобрать тракт по владельцам
Вместе с владельцами GigaVoice и SkillFlow понять, кто отвечает за синтез, интонацию, нормализацию, перебивания и задержки. Сейчас организационная картина размытая, и это само по себе тормозит.
Выбрать три параллельных эксперимента
Голос и стиль из того, что уже доступно; нормализация текста и произношение; задержки и перебивания. Каждый меряется отдельно, чтобы не смешивать эффекты.
Завести единый формат дефектов
На каждый дефект — аудио, расшифровка, стенд, версии и конфигурация. Считать частоту, а не обсуждать единичные впечатления. Заодно это то, в каком виде смежники готовы принимать от нас баги.
Отдельно зайти к команде full-duplex
Не ждать готового продукта, а предложить наш сценарий как площадку для пилота и заранее выяснить, как в их архитектуре уживаются речь и вызов функций.
Сначала — кто есть кто в тракте звонка, потом речевые термины, которые будут звучать на встречах со смежниками.