Этот проект позволяет *создавать пользовательские wake word для Home Assistant Voice, используя комбинацию:
- Локальных голосовых записей (ваш настоящий голос, необязательно, но рекомендуется)
- Автоматически сгенерированных образцов TTS
- Полностью автоматизированного конвейера обучения
Вы можете выбрать:
- Использовать локальный Web UI для записи реальных голосовых образцов и автообучения
- Или запустить скрипт обучения напрямую (только 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-AppleSiliconWeb UI проводит пользователя через:
- Ввод ключевого слова
- Тестирование произношения TTS
- Запись реальных голосовых образцов (автостарт / автостоп)
- Поддержку нескольких говорящих (членов семьи)
- Автоматический запуск обучения после завершения записей
Из корневой папки проекта:
./run_recorder_macos.shЧто это делает:
- Создает и управляет
.recorder-venv - Устанавливает все необходимые зависимости (один раз)
- Запускает локальный FastAPI сервер с UI для записи
Затем откройте браузер по адресу:
http://127.0.0.1:8789
- Введите ваше ключевое слово
- Протестируйте произношение с помощью Test TTS
- Выберите:
- Количество говорящих (например, членов семьи)
- Количество записей на говорящего (по умолчанию: 10)
- Нажмите Begin recording
- Говорите естественно — запись:
- Начинается, когда вы говорите
- Останавливается автоматически после тишины
- Повторите для каждого говорящего
Файлы автоматически сохраняются в:
personal_samples/
speaker01_take01.wav
speaker01_take02.wav
speaker02_take01.wav
...
⚠️ Конвейер обучения автоматически обнаруживает любые.wavфайлы вpersonal_samples/и придает им больший вес по сравнению с образцами TTS.
После завершения всех записей:
- Микрофон останавливается
- Обучение запускается автоматически
- Логи обучения в реальном времени отображаются в Web UI
Перезагрузка страницы НЕ прерывает обучение — оно продолжается в фоновом режиме.
Если вы не хотите записывать реальные голосовые образцы или они у вас уже есть, можно запустить обучение напрямую.
./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 | Только скрипт обучения |
