Skip to content

skrashevich/microWakeWord-Trainer-AppleSilicon

 
 

Repository files navigation

🎙️ microWakeWord AppleSilicon Trainer & Recorder

Screenshot 2026-01-15 at 10 02 28 PM

Этот проект позволяет *создавать пользовательские wake word для Home Assistant Voice, используя комбинацию:

  • Локальных голосовых записей (ваш настоящий голос, необязательно, но рекомендуется)
  • Автоматически сгенерированных образцов TTS
  • Полностью автоматизированного конвейера обучения

Вы можете выбрать:

  1. Использовать локальный Web UI для записи реальных голосовых образцов и автообучения
  2. Или запустить скрипт обучения напрямую (только TTS или с готовыми образцами)

Примечание: Скрипт автоматически установит python3.11, ffmpeg и wget через Homebrew, если они отсутствуют. Сам Homebrew должен быть уже установлен: https://brew.sh/

Вам потребуется около 150 Гб свободного места для временных файлов. Весь процесс займет несколько часов на среднестатистичекском MacBook

Клонирование репозитория:

Клонируйте репозиторий и перейдите в папку:

git clone https://github.com/skrashevich/microWakeWord-Trainer-AppleSilicon.git
cd microWakeWord-Trainer-AppleSilicon

🚀 Вариант 1: Запуск Web UI (Рекомендуется)

Web UI проводит пользователя через:

  • Ввод ключевого слова
  • Тестирование произношения TTS
  • Запись реальных голосовых образцов (автостарт / автостоп)
  • Поддержку нескольких говорящих (членов семьи)
  • Автоматический запуск обучения после завершения записей

▶️ Запуск Web UI для записи

Из корневой папки проекта:

./run_recorder_macos.sh

Что это делает:

  • Создает и управляет .recorder-venv
  • Устанавливает все необходимые зависимости (один раз)
  • Запускает локальный FastAPI сервер с UI для записи

Затем откройте браузер по адресу:

http://127.0.0.1:8789

🎙️ Процесс записи

  1. Введите ваше ключевое слово
  2. Протестируйте произношение с помощью Test TTS
  3. Выберите:
    • Количество говорящих (например, членов семьи)
    • Количество записей на говорящего (по умолчанию: 10)
  4. Нажмите Begin recording
  5. Говорите естественно — запись:
    • Начинается, когда вы говорите
    • Останавливается автоматически после тишины
  6. Повторите для каждого говорящего

Файлы автоматически сохраняются в:

personal_samples/
  speaker01_take01.wav
  speaker01_take02.wav
  speaker02_take01.wav
  ...

⚠️ Конвейер обучения автоматически обнаруживает любые .wav файлы в personal_samples/ и придает им больший вес по сравнению с образцами TTS.


🧠 Автоматическое обучение

После завершения всех записей:

  • Микрофон останавливается
  • Обучение запускается автоматически
  • Логи обучения в реальном времени отображаются в Web UI

Перезагрузка страницы НЕ прерывает обучение — оно продолжается в фоновом режиме.


🧪 Вариант 2: Запуск только скрипта обучения (без Web UI)

Если вы не хотите записывать реальные голосовые образцы или они у вас уже есть, можно запустить обучение напрямую.

▶️ Базовое обучение (только TTS)

./train_microwakeword_macos.sh "hey_tater"

Это выполнит:

  • Создание/использование .venv
  • Генерацию образцов TTS
  • Обучение модели ключевого слова
  • Вывод финального файла модели

🎙️ Обучение с личными голосовыми образцами

Если любые .wav файлы существуют в:

personal_samples/

Они автоматически включаются и получают больший вес, чем образцы TTS.

Дополнительные флаги не требуются — скрипт обнаруживает их автоматически.


🇷🇺 Русский язык

Для русских ключевых слов используйте --lang ru (или оставьте Auto в Web UI):

./train_microwakeword_macos.sh --phrase "привет дом" --lang ru

По умолчанию скрипт скачает русскую TTS‑модель Piper (ru_RU, voice: dmitri).
Если хотите другую модель — передайте её явно:

./train_microwakeword_macos.sh --phrase "привет дом" --lang ru \
  --piper-model /path/to/ru_voice.onnx

Важно: имя файла модели (slug) строится отдельно от фразы, поэтому кириллица в --phrase безопасна.


⚠️ Примечания

  • Используйте одно ключевое слово на один запуск обучения
  • Избегайте знаков пунктуации или эмодзи в ключевых словах
  • Обучение выполняется последовательно
  • Несколько говорящих улучшают точность распознавания в реальных условиях
  • Перезагрузка страницы не прерывает обучение

🧩 Когда использовать каждый режим

Сценарий использования Рекомендуемый путь
Лучшая точность Web UI + реальные голосовые записи
Быстрое тестирование Только скрипт обучения
Семья / общее устройство Web UI с несколькими говорящими
Headless / CI Только скрипт обучения

About

Train microWakeWord models on Apple Silicon Macs (M1, M2, M3...) with full GPU acceleration via Metal (MPS). For use on Home Assistant Voice. Supports Russian and English languages

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 42.0%
  • Python 31.0%
  • HTML 27.0%