Skip to content

mitrokun/espeak-ng-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

189 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Обновленный русский словарь правил с добавленными йотированными фонемами и опцией проставлять ударения через U+0301. Необходимо для адекватной работы фонемайзера для piper. PR висит в репозитории espeak-ng, но из-за слишком сильного импакта на синтез звука в существующих проектах не был принят. Выставлять правильные значения звуков для фонем (что требуется только для генератор в espeak) - отдельная задача, вникать в которую нет желания. Если захочется внести изменения и скомпелировать data самостоятельно, в корне репозитория находится ru_rules (всё ешё требует оптимизации), а файл фонем можно дернуть из pr.

upd 03.2026 Сделал второй заход по правке фонем, чтоб решить проблему аканья и прочих коварных недочётов. Это, конечно же, немного сломало синтез на существующих моделях, но небольшое дообучение исправит ситуацию. Прикладываю файл фонем ph_russian и правил ru_rules. Старая версия скомпилированных данных оставлена в отдельном бранче.

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

Скопировать по пути расположения существующих данных. Например каталог, использующийся при обучении по стандартному гайду:

~/piper1-gpl/src/piper/espeak-ng-data/

Если в проекте испольуется библиотека, то данные будут находиться внутри, либо по глобальному пути установки, либо в venv:

.../Lib/site-packages/piper/espeak-ng-data/

Для оригинального пайпер:

/usr/local/share/espeak-ng-data/

После тренировки новые модели используются с этим же набором словарей. В voice примеры голосов, дообученные на небольших датасетах.

В каталоге wyoming_piper_accent лежит модифицированный код Wyoming Piper:

  • Выполняется разрешение омографов (список задан в homographs.py) с помощью библиотеки silero stress. Для отключения авторассановки предусмотрен ключ --no-automatic-stress.
  • Символ + перед гласной позволяет делать расстановку в ручном режиме. Оба пункта работают только при замене словаря и использование моделей, обученыx на нём. О процессе расскывал в этом видео.
  • Добавлен словарь ёфикатора(~60к замен), который активируется ключом --yo. Всё ещё остается около 4к спорных случаев: старайтесь изначально получать правильное значение, либо добавляйте проблемные слова в словарь омографов и надейтесь на библиотеку силеро. При подготовке датасетов не забывайте отключать всю автоматику.
  • Добавлена возможность держать несколько голосов в памяти, чтоб избежать потери времени на секундную загрузку модели, количестово активных моделей настраивается через ключ --max-cached-voices 2.
  • Вернул возможность добавлять тишину между предложениями --sentence-silence 0.2. Необходимость зависит от данных, на которых обучалась модель, но добавить пару десятых — никогда не будет лишним.
  • Отказ от временных файлов, все операции происходят в памяти.
  • Используется BCP 47, чтоб было красиво в интерфейсе HA

микрогайд

# Базовая установка Piper
git clone https://github.com/rhasspy/wyoming-piper.git
cd wyoming-piper
script/setup

# подготовка к установке silero-stress, CPU-only torch (без CUDA)
./.venv/bin/pip install torch --index-url https://download.pytorch.org/whl/cpu

# silero-stress — для автоматической расстановки ударений в русском
# eng-to-ipa — для улучшенного контроля преобразования английских слов
./.venv/bin/pip install silero-stress eng-to-ipa num2words

# Скачиваем репо для замены данных
git clone https://github.com/mitrokun/espeak-ng-data.git

# Файлы фонем и словарей. Существующие 4 голоса перестанут корректно работать
# Проверьте используемую версию python, при необходимости измените путь
cp -r ./espeak-ng-data/espeak-ng-data/* ./.venv/lib/python3.12/site-packages/piper/espeak-ng-data/
# Модификация кода
cp -r ./espeak-ng-data/wyoming_piper_accent/2.0+/* ./wyoming_piper/

# Запуск (использую data в домашнем каталоге)
# В качестве примера копируем существующую модель (обучена на актуальных данных) из этого репозитория
cp ./espeak-ng-data/voice/ru_RU-mari-medium* ~/data/

./script/run --voice ru_RU-mari-medium_epoch6399 --uri 'tcp://0.0.0.0:10200' --data-dir ~/data --download-dir ~/data

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors