supersam/docs/ats/prompt-generation.md

3.4 KiB
Raw Blame History

Озвучки робота: генерация и правки

Все реплики робота — edge-tts, голос fr-FR-VivienneMultilingualNeural, формат 8 кГц / моно / 16 бит PCM WAV. Лежат на АТС в /var/lib/asterisk/sounds/ru/ (ss_*.wav), имя файла = имя реплики в ss-dialog.agi.

edge-tts --voice fr-FR-VivienneMultilingualNeural --text "<текст>" --write-media out.mp3
ffmpeg -v error -y -i out.mp3 -ar 8000 -ac 1 -c:a pcm_s16le out.wav

Деплой (всегда с бэкапом — был случай, когда файл на АТС обнулился): scp в /tmp на АТС → test -s → cp в /var/lib/asterisk/sounds/ru/ → chown asterisk:asterisk + chmod 644 → сверить md5sum с локальным.

Название компании — только раздельно

Владелец попросил, чтобы «СуперСам» звучало раздельно. Проверено синтезом (пауза внутри названия):

Текст в подсказке Пауза внутри названия Вердикт
СуперСам нет было в проде — владелец забраковал, звучит слитно
Супер Сам +24 мс выбор владельца (14.09), стоит в проде
Супер, Сам +0,45 с пробовал, владелец отклонил — запятая слышится как обращение
Супер... Сам +0,7 с звучит неестественно

Речь в подсказке: Здравствуйте! Это Супер Сам. <дальше по сценарию>. Файлы с названием компании: ss_pkp_intro, ss_c_intro_dlv, ss_c_intro_pkp (в сценариях A и B компания не представляется).

⚠️ Владелец выбирает озвучку на слух: перед публикацией спорного варианта отправлять ему короткие пробники в чат (Telegram), а не решать по метрикам — по цифрам «Супер Сам» почти не отличается от слитного варианта, но ему слышно.

Проверка правки

  • Текст — распознать свой wav (faster_whisper, small, language="ru"): вернёт то, что услышит человек. Whisper пишет название одним словом («Суперсан») даже при раздельном произношении — по нему судить о паузе нельзя.
  • Пауза внутри названия — по энергии сигнала (RMS по кадрам 10 мс, порог −32 дБ от пика): у правильной версии появляется провал ≥ 0,3 с в районе названия, у старой его нет.
  • ⚠️ Генерировать файлы по одному в отдельных вызовах edge-tts: в цикле внутри Python два разных текста один раз вышли побайтово одинаковыми (артефакт), поэтому перед деплоем сверять md5sum всех файлов между собой и с ожидаемым.