# Озвучки робота: генерация и правки Все реплики робота — edge-tts, голос **`fr-FR-VivienneMultilingualNeural`**, формат 8 кГц / моно / 16 бит PCM WAV. Лежат на АТС в `/var/lib/asterisk/sounds/ru/` (`ss_*.wav`), имя файла = имя реплики в `ss-dialog.agi`. ```bash 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` всех файлов между собой и с ожидаемым.