# Генерация аудио для Благаявести ## Описание Скрипты для генерации аудиоверсий книги с **умной фильтрацией** и голосом **Svetlana (Microsoft)**. ### Что делает умная фильтрация: 1. ✅ **Римские нумерации** → текст (I → первая, II → вторая) 2. ✅ **Цифры** → текст где нужно (9 января 2026 → девятого января две тысячи двадцать шестого) 3. ✅ **Ссылки** → "ссылка из текстовой книги" 4. ✅ **Markdown разметка** → чистый текст (убирает \*\*, \*, \`, #) 5. ✅ **Единый поток** → без лишних пауз между предложениями ## Использование ### Один файл ```bash python3 generate_audio_smart.py "00. ПРЕЛЮДИЯ.md" ``` ### Все файлы разом ```bash python3 generate_all_audio.py ``` ## Настройки голоса В файле `generate_audio_smart.py`: - **Голос**: `ru-RU-SvetlanaNeural` (Microsoft Svetlana - бесплатный) - **Скорость**: `-5%` (чуть медленнее для вдумчивого чтения) - **Высота**: `+0Hz` (нормальная) ### Изменить скорость ```python RATE = "-10%" # Медленнее RATE = "+5%" # Быстрее ``` ### Изменить голос Доступные русские голоса Microsoft: ```python VOICE = "ru-RU-SvetlanaNeural" # Светлана (женский, спокойный) VOICE = "ru-RU-DmitryNeural" # Дмитрий (мужской) ``` Полный список голосов: ```bash edge-tts --list-voices | grep ru-RU ``` ## Выходные файлы Аудио сохраняется в: ``` audio_smart/ ├── 00. ПРЕЛЮДИЯ.mp3 ├── 01. Симуляция.mp3 ├── 02. Унижение.mp3 └── ... ``` ## Проверка Воспроизвести аудио: ```bash afplay "audio_smart/00. ПРЕЛЮДИЯ.mp3" ``` ## Если edge-tts не подключается (Connection timeout) Microsoft `speech.platform.bing.com` иногда недоступен локально — блокировка провайдером, VPN, firewall. TLS handshake зависает, все попытки дают timeout. ### Решение: генерация через удалённый сервер 1. Проверь какой сервер видит Microsoft: ```bash ssh montana-moscow "curl -s --max-time 5 -o /dev/null -w '%{http_code}' https://speech.platform.bing.com" # 400 = сервер доступен (это нормальный ответ) ``` 2. Установи edge-tts на сервере (один раз): ```bash ssh montana-moscow "python3 -m pip install --break-system-packages edge-tts" ``` 3. Загрузи файлы, сгенерируй, скачай обратно: ```bash # Загрузить 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` | Не проверен | ### Диагностика проблемы ```bash # Проверить 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 (установлен) ```bash pip3 install edge-tts ``` --- **Голос**: Microsoft Svetlana Neural (бесплатный через edge-tts) **Качество**: Естественная интонация, плавное чтение