supersam/docs/ats/prompt-generation.md

45 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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