Правки фраз и паузы
Правки фраз
Отдельный раздел кабинета «Правки фраз» — словарь организации из пар «неправильно → правильно». Замена буквальная: платформа ищет ровно ту строку, что вы записали, и ставит на её место вашу. Регулярных выражений здесь нет намеренно — словарь ведут не программисты, а цена ошибки в регулярке выше пользы.- Правило можно привязать к одному агенту; пустая привязка означает «все агенты организации».
- Правка применяется и к звуку, и к тексту в истории: абонент слышит исправленную фразу, и в транскрипте стоит она же.
- Словарь живой. Правки не замерзают в снимке сессии: изменили словарь — следующая же реплика идёт исправленной, перезапускать ничего не нужно.
- В панели голоса агента есть тумблер, включающий словарь для этого агента. По умолчанию он выключен — существующие агенты ничего не заметили.
В realtime-режиме словарь не действует. Там речь синтезируется моделью целиком, и точки, в которой можно подменить текст перед озвучиванием, просто нет.
Паузы в речи
Агент, читающий номер телефона или сумму на одном дыхании, звучит как машина. Напишите между словами[pause N], где N — секунды от 0,1 до 3,0, и агент остановится в этом месте: Наш номер — восемь [pause 0.4] шесть шесть [pause 0.4] два два. Регистр слова и лишние пробелы значения не имеют, дробная часть отделяется точкой. Значение округляется до ближайших 0,05 с, а выходящее за диапазон подтягивается к границе: [pause 5] прозвучит как три секунды, [pause 0] — как 0,1. Из-за паузы фраза не отклоняется никогда.
Тег работает в фиксированном тексте узла, в генерируемых репликах и во всём остальном, что агент произносит вслух: первой реплике, напоминаниях при тишине, фразе после неудавшегося перевода, прощании конечного узла. Паузы может расставлять и сама модель — опишите в промпте, когда пауза нужна, и приведите тег как пример; написанный моделью тег обрабатывается точно так же, как набранный вами. Copilot тег знает и предложит [pause N], а не форму конкретного провайдера.
Что услышит абонент, зависит от голоса. Там, где голос умеет паузу точной длины — ElevenLabs на всех моделях, кроме eleven_v3, Cartesia, Inworld, Azure, — пауза настоящая, с точностью до сетки 0,05 с. Там, где не умеет — OpenAI, Soniox, собственный голос cybernet, ElevenLabs eleven_v3, — платформа ставит вместо паузы знак препинания: до 0,4 с запятую, от 0,4 с многоточие. Остановка слышна, но её длина принадлежит голосу: по замерам знак препинания даёт от 0,18 до 0,64 с, поэтому [pause 2] на OpenAI звучит примерно как 0,6 с и неотличим от [pause 0.5]. Тишину платформа аудио не вставляет — на прослушиваниях это звучало так, будто рвётся связь.
Голос, заданный на узле, и резервный голос, включающийся при недоступности основного, получают паузу в той форме, которую понимает именно их голос: тег компилируется для каждого голоса отдельно, а не один раз на агента.
У плотности есть потолок. До ElevenLabs и Cartesia настоящими доходят три паузы на запрос (двадцать у Inworld, без предела у Azure); четвёртая и следующие, считая слева направо, становятся пунктуацией. От предложения, набитого тегами, голоса начинают сбоить, а для номера телефона трёх хватает, если сгруппировать цифры.
[pause] без числа удаляется, а не произносится. Как и любая неразобранная конструкция, начинающаяся с [pause: само слово вслух не читается ни при какой опечатке. Квадратная скобка, за которой не следует pause, остаётся текстом — [1, 2, 3] по-прежнему читается как «один, два, три». Старая форма <break time="0.5s"/> продолжает работать и означает ровно то же на любом голосе, включая те, что её никогда не понимали, — переписывать существующие тексты не нужно; недописанный <break теперь вырезается, а не зачитывается по буквам.realtime_pause_markup по каждому месту, где она стоит, — предупреждение, а не запрет на публикацию.

pause_markup со статусом warning пишется на тёрн только если компиляция что-то потеряла: density_capped — сработал потолок и лишние паузы стали пунктуацией; value_clamped — значение вне 0,1–3,0 подтянули к границе; markup_dropped — удалена неразобранная конструкция или битый <break. Штатная компиляция события не порождает. Отдельно то, что у голоса нет настоящей паузы, пишется один раз на звонок событием tts_capability с заголовком no_native_pause — так и понимают, какой случай у агента, не слушая запись. На health-вердикт звонка ни то, ни другое не влияет.
Одна оговорка про учёт: счётчик символов TTS в звонке считает символы, которые набрали вы, а провайдер тарифицирует скомпилированный текст — [pause 0.5] это 11 символов против 20 у <break time="0.50s"/> и 1 у запятой. Счёт самого провайдера будет отличаться примерно на десять символов на каждую паузу.
Какой длины делать. 0,3–0,5 с между группами цифр, после имени, перед «верно?» — это читается как вдох. 0,8–1,2 с перед вопросом, требующим решения, или после плохой новости. Больше двух секунд — почти никогда: по телефону такая тишина означает «связь пропала?», и люди начинают говорить поверх агента. И не в каждом предложении — пауза работает потому, что остальная речь течёт.