supersam/docs/ats/prompt-generation.md

41 lines
2.9 KiB
Markdown
Raw 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 мс | почти не слышно |
| **`Супер, Сам`** | **+0,45 с** | **слышно отчётливо — используем** |
| `Супер... Сам` | +0,7 с | звучит неестественно |
Речь в подсказке: `Здравствуйте! Это Супер, Сам. <дальше по сценарию>`.
Файлы с названием компании: `ss_pkp_intro`, `ss_c_intro_dlv`, `ss_c_intro_pkp`
(в сценариях A и B компания не представляется).
## Проверка правки
- **Текст** — распознать свой wav (`faster_whisper`, `small`, `language="ru"`): вернёт то, что
услышит человек. Whisper пишет название одним словом («Суперсан») даже при раздельном
произношении — по нему судить о паузе нельзя.
- **Пауза внутри названия** — по энергии сигнала (RMS по кадрам 10 мс, порог −32 дБ от пика):
у правильной версии появляется провал ≥ 0,3 с в районе названия, у старой его нет.
- ⚠️ Генерировать файлы по одному в отдельных вызовах `edge-tts`: в цикле внутри Python два
разных текста один раз вышли побайтово одинаковыми (артефакт), поэтому перед деплоем
сверять `md5sum` всех файлов между собой и с ожидаемым.