montana/Русский/Благаявесть/README/ПРОЧТИ_МЕНЯ_АУДИО.md

4.5 KiB
Raw Permalink Blame History

Генерация аудио для Благаявести

Описание

Скрипты для генерации аудиоверсий книги с умной фильтрацией и голосом Svetlana (Microsoft).

Что делает умная фильтрация:

  1. Римские нумерации → текст (I → первая, II → вторая)
  2. Цифры → текст где нужно (9 января 2026 → девятого января две тысячи двадцать шестого)
  3. Ссылки → "ссылка из текстовой книги"
  4. Markdown разметка → чистый текст (убирает **, *, `, #)
  5. Единый поток → без лишних пауз между предложениями

Использование

Один файл

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.

Решение: генерация через удалённый сервер

  1. Проверь какой сервер видит Microsoft:
ssh montana-moscow "curl -s --max-time 5 -o /dev/null -w '%{http_code}' https://speech.platform.bing.com"
# 400 = сервер доступен (это нормальный ответ)
  1. Установи edge-tts на сервере (один раз):
ssh montana-moscow "python3 -m pip install --break-system-packages edge-tts"
  1. Загрузи файлы, сгенерируй, скачай обратно:
# Загрузить
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) Качество: Естественная интонация, плавное чтение