3.4 KiB
Озвучки робота: генерация и правки
Все реплики робота — 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всех файлов между собой и с ожидаемым.