Обвязка озвучки: снятие маркеров разметки для TTS и проверка целостности синтеза
This commit is contained in:
@@ -172,6 +172,41 @@ rm -rf out/tr/progress out/tr/context out/tr/translations
|
||||
cd scripts && python3 test_translate.py
|
||||
```
|
||||
|
||||
## Озвучка (опционально)
|
||||
|
||||
Синтез тоже делает `book_translator` (`05_create_audiobook.py`, движок
|
||||
edge-tts от Microsoft — бесплатный, нужен интернет). В `scripts/audiobook.py`
|
||||
две обвязки; чужой репозиторий по-прежнему не трогаем.
|
||||
|
||||
```bash
|
||||
pip install edge-tts pydub # ffmpeg нужен отдельно, из пакетов системы
|
||||
|
||||
# 1. снять маркеры разметки — иначе TTS проговорит ⟦i⟧
|
||||
python3 scripts/audiobook.py prep out/tr/translations out/tr/translations_tts
|
||||
|
||||
# 2. синтез (в фоне; на 12 часов звучания уходит 1.5–3 часа)
|
||||
cd out/tr && python3 ~/Projects/book_translator/05_create_audiobook.py \
|
||||
--translations-dir translations_tts --voice dmitry --rate '+0%'
|
||||
|
||||
# 3. проверка ДО того, как скрипт уберёт temp_audio/
|
||||
python3 scripts/audiobook.py verify out/tr/translations_tts out/tr/audiobook
|
||||
```
|
||||
|
||||
`verify` находит главы с недостающими фрагментами, битые и нулевые mp3 и главы,
|
||||
которые короче расчётной длительности. Норму «секунд на знак» он берёт как
|
||||
медиану по всем главам, поэтому не зависит от выбранного голоса и скорости.
|
||||
Код возврата ненулевой, если что-то не так.
|
||||
|
||||
Повторный запуск синтеза добирает пропущенное: сторонний скрипт пропускает
|
||||
фрагмент, если файл существует **и непустой**. Битые файлы, названные `verify`,
|
||||
надо удалить руками — их он проверять не станет.
|
||||
|
||||
Ограничения чужой стадии: на выходе один слитный `audiobook_complete.mp3` без
|
||||
разбивки по главам и без меток — для плеера неудобно, разбивка здесь не
|
||||
реализована. Для технической книги стоит сначала прогнать фонетику
|
||||
(`07_extract_terms.py` + `08_generate_phonetics.py`), иначе русский голос
|
||||
исковеркает все английские термины.
|
||||
|
||||
## Проверка результата
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user