4.5 KiB
4.5 KiB
Генерация аудио для Благаявести
Описание
Скрипты для генерации аудиоверсий книги с умной фильтрацией и голосом Svetlana (Microsoft).
Что делает умная фильтрация:
- ✅ Римские нумерации → текст (I → первая, II → вторая)
- ✅ Цифры → текст где нужно (9 января 2026 → девятого января две тысячи двадцать шестого)
- ✅ Ссылки → "ссылка из текстовой книги"
- ✅ Markdown разметка → чистый текст (убирает **, *, `, #)
- ✅ Единый поток → без лишних пауз между предложениями
Использование
Один файл
python3 generate_audio_smart.py "00. ПРЕЛЮДИЯ.md"
Все файлы разом
python3 generate_all_audio.py
Настройки голоса
В файле generate_audio_smart.py:
- Голос:
ru-RU-SvetlanaNeural(Microsoft Svetlana - бесплатный) - Скорость:
-5%(чуть медленнее для вдумчивого чтения) - Высота:
+0Hz(нормальная)
Изменить скорость
RATE = "-10%" # Медленнее
RATE = "+5%" # Быстрее
Изменить голос
Доступные русские голоса Microsoft:
VOICE = "ru-RU-SvetlanaNeural" # Светлана (женский, спокойный)
VOICE = "ru-RU-DmitryNeural" # Дмитрий (мужской)
Полный список голосов:
edge-tts --list-voices | grep ru-RU
Выходные файлы
Аудио сохраняется в:
audio_smart/
├── 00. ПРЕЛЮДИЯ.mp3
├── 01. Симуляция.mp3
├── 02. Унижение.mp3
└── ...
Проверка
Воспроизвести аудио:
afplay "audio_smart/00. ПРЕЛЮДИЯ.mp3"
Если edge-tts не подключается (Connection timeout)
Microsoft speech.platform.bing.com иногда недоступен локально — блокировка провайдером, VPN, firewall. TLS handshake зависает, все попытки дают timeout.
Решение: генерация через удалённый сервер
- Проверь какой сервер видит Microsoft:
ssh montana-moscow "curl -s --max-time 5 -o /dev/null -w '%{http_code}' https://speech.platform.bing.com"
# 400 = сервер доступен (это нормальный ответ)
- Установи edge-tts на сервере (один раз):
ssh montana-moscow "python3 -m pip install --break-system-packages edge-tts"
- Загрузи файлы, сгенерируй, скачай обратно:
# Загрузить
scp "Книга Монтана 📕/51. Время.md" montana-moscow:/tmp/chapter.md
scp generate_audio_smart.py montana-moscow:/tmp/generate_audio_smart.py
# Сгенерировать
ssh montana-moscow "cd /tmp && python3 generate_audio_smart.py chapter.md"
# Скачать
scp montana-moscow:/tmp/chapter.mp3 "Книга Монтана 📕/51. Время.mp3"
# Почистить
ssh montana-moscow "rm /tmp/chapter.md /tmp/chapter.mp3 /tmp/generate_audio_smart.py"
Доступные серверы
| Сервер | Команда | Статус |
|---|---|---|
| Moscow | montana-moscow |
Проверен, работает |
| Frankfurt | montana-frankfurt |
Проверен, работает |
| Amsterdam | montana-ams |
Не проверен |
Диагностика проблемы
# Проверить DNS
nslookup speech.platform.bing.com 8.8.8.8
# Проверить TCP-соединение
curl -v --max-time 10 https://speech.platform.bing.com
# Если TLS handshake зависает — проблема на уровне сети, используй удалённый сервер
Требования
- Python 3.7+
- edge-tts (установлен)
pip3 install edge-tts
Голос: Microsoft Svetlana Neural (бесплатный через edge-tts) Качество: Естественная интонация, плавное чтение