Files
sirmrakandQwen-Coder 61b1532757 docs: перевод документации на русский язык
Полностью переведена вся документация в docs/:

- docs/architecture/overview.md — Архитектура Wyoming Satellite
- docs/settings-cheatsheet.md — Шпаргалка по настройкам (CLI флаги)
- docs/deployment/systemd-services.md — Настройка systemd сервисов
- docs/integration/mqtt-led.md — MQTT LED управление
- docs/integration/vad-wakeword.md — Уже был на русском
- docs/tutorials/2mic-hat.md — Tutorial для 2-MIC HAT
- docs/tutorials/installer.md — Интерактивный установщик
- docs/README.md — Индекс документации

Обновлены корневые файлы:
- README.md — Полностью на русском
- DEPLOY.md — Полностью на русском

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

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-05-19 23:25:34 +03:00

405 lines
15 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2-MIC HAT Tutorial
Создание голосового спутника на [Raspberry Pi Zero 2 W](https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/) и [ReSpeaker 2Mic HAT](https://wiki.keyestudio.com/Ks0314_keyestudio_ReSpeaker_2-Mic_Pi_HAT_V1.0).
**Предварительные требования:** См. [Руководство по развёртыванию](../../DEPLOY.md) для базовой установки.
## Установка ОС
Следуйте инструкциям по [установке Raspberry Pi OS](https://www.raspberrypi.com/software/). В разделе "Choose OS" выберите "Raspberry Pi OS (other)" и "Raspberry Pi OS (**64-bit**) Lite".
Когда спросят о применении настроек кастомизации, выберите "Edit Settings" и:
* Установите имя пользователя/пароль
* Настройте беспроводную LAN
* На вкладке Services включите SSH и используйте аутентификацию по паролю
## Установка ПО
После прошивки и загрузки спутника, подключитесь к нему по SSH, используя имя пользователя/пароль, настроенные при прошивке.
**На спутнике**, убедитесь, что системные зависимости установлены:
```sh
sudo apt-get update
sudo apt-get install --no-install-recommends \
git \
python3-venv
```
Склонируйте репозиторий `wyoming-satellite`:
```sh
git clone https://github.com/rhasspy/wyoming-satellite.git
```
Если у вас ReSpeaker 2Mic или 4Mic HAT, перекомпилируйте и установите драйверы (это займёт много времени):
```sh
cd wyoming-satellite/
sudo bash etc/install-respeaker-drivers.sh
```
После установки драйверов необходимо перезагрузить спутник:
```sh
sudo reboot
```
После перезагрузки подключитесь снова по SSH и продолжите установку:
```sh
cd wyoming-satellite/
python3 -m venv .venv
.venv/bin/pip3 install --upgrade pip
.venv/bin/pip3 install --upgrade wheel setuptools
.venv/bin/pip3 install \
-f 'https://synesthesiam.github.io/prebuilt-apps/' \
-e '.[all]'
```
Если установка прошла успешно, вы сможете запустить:
```sh
script/run --help
```
## Определение аудиоустройств
Правильный выбор устройств микрофона/динамика критически важен для работы спутника. В этом разделе мы сделаем тестовую запись и воспроизведение.
Список доступных микрофонов:
```sh
arecord -L
```
Если у вас ReSpeaker 2Mic HAT, вы увидите:
```
plughw:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0
Hardware device with all software conversions
```
Для других микрофонов предпочитайте устройства, начинающиеся с `plughw:` или используйте `default`, если не знаете, что выбрать.
Запишите 5-секундный образец с выбранного микрофона:
```sh
arecord -D plughw:CARD=seeed2micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t wav -d 5 test.wav
```
Скажите что-нибудь во время работы `arecord`. Если получили ошибки, попробуйте другое устройство микрофона, изменив `-D <device>`.
Список доступных динамиков:
```sh
aplay -L
```
Если у вас ReSpeaker 2Mic HAT, вы увидите:
```
plughw:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0
Hardware device with all software conversions
```
Для других динамиков предпочитайте устройства, начинающиеся с `plughw:` или используйте `default`, если не знаете, что выбрать.
Воспроизведите записанный образец WAV:
```sh
aplay -D plughw:CARD=seeed2micvoicec,DEV=0 test.wav
```
Вы должны услышать записанный образец. Если есть проблемы, попробуйте другое устройство динамика, изменив `-D <device>`.
Запомните устройства микрофона и динамика для следующего шага.
## Запуск спутника
В директории `wyoming-satellite` выполните:
```sh
script/run \
--debug \
--name 'my satellite' \
--uri 'tcp://0.0.0.0:10700' \
--mic-command 'arecord -D plughw:CARD=seeed2micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t raw' \
--snd-command 'aplay -D plughw:CARD=seeed2micvoicec,DEV=0 -r 22050 -c 1 -f S16_LE -t raw'
```
Измените `-D <device>` для `arecord` и `aplay` в соответствии с аудиоустройствами из предыдущего раздела.
Вы можете установить `--name <NAME>` на любое значение, но оно должно оставаться одинаковым при каждом запуске спутника.
В Home Assistant проверьте раздел "Devices & services" в настройках. Через некоторое время вы увидите ваш спутник как "Discovered" (Wyoming Protocol). Нажмите кнопку "Configure" и "Submit". Выберите зону, где расположен ваш спутник, и нажмите "Finish".
Ваш спутник должен сказать "Streaming audio", и вы можете использовать wake word предпочитаемого пайплайна.
## Создание сервисов
Вы можете запустить wyoming-satellite как systemd сервис, создав файл сервиса:
```sh
sudo systemctl edit --force --full wyoming-satellite.service
```
Вставьте следующий шаблон и измените `/home/pi` и аргументы `script/run` в соответствии с вашей настройкой:
```text
[Unit]
Description=Wyoming Satellite
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecStart=/home/pi/wyoming-satellite/script/run --name 'my satellite' --uri 'tcp://0.0.0.0:10700' --mic-command 'arecord -D plughw:CARD=seeed2micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t raw' --snd-command 'aplay -D plughw:CARD=seeed2micvoicec,DEV=0 -r 22050 -c 1 -f S16_LE -t raw'
WorkingDirectory=/home/pi/wyoming-satellite
Restart=always
RestartSec=1
[Install]
WantedBy=default.target
```
Сохраните файл и выйдите из редактора. Далее включите сервис для автозагрузки и запустите:
```sh
sudo systemctl enable --now wyoming-satellite.service
```
(возможно, вам придётся нажать CTRL+C, чтобы вернуться к командной оболочке)
После запуска сервиса вы можете просматривать логи в реальном времени:
```sh
journalctl -u wyoming-satellite.service -f
```
При необходимости отключите и остановите сервис:
```sh
sudo systemctl disable --now wyoming-satellite.service
```
## Аудио улучшения
Вы можете запустить спутник с автоматическим усилением и шумоподавлением:
```sh
script/run \
... \
--mic-auto-gain 5 \
--mic-noise-suppression 2
```
Автоматическое усиление от 0 до 31 dbFS, где 31 — самое громкое.
Шумоподавление от 0 до 4, где 4 — максимальное подавление (может вызывать искажения аудио).
Вы также можете использовать `--mic-volume-multiplier X` для умножения всех аудиосэмплов на `X`. Например, использование 2 для `X` удвоит громкость микрофона (но может вызвать искажения). Соответствующий `--snd-volume-multiplier` делает то же самое для воспроизведения аудио.
## Локальная детекция Wake Word
Установите необходимые системные зависимости:
```sh
sudo apt-get update
sudo apt-get install --no-install-recommends \
libopenblas-dev
```
Из домашней директории установите Wyoming сервис openWakeWord:
```sh
git clone https://github.com/rhasspy/wyoming-openwakeword.git
cd wyoming-openwakeword
script/setup
```
Создайте systemd сервис для него:
```sh
sudo systemctl edit --force --full wyoming-openwakeword.service
```
Вставьте следующий шаблон и измените `/home/pi` и аргументы `script/run` в соответствии с вашей настройкой:
```text
[Unit]
Description=Wyoming openWakeWord
[Service]
Type=simple
ExecStart=/home/pi/wyoming-openwakeword/script/run --uri 'tcp://127.0.0.1:10400'
WorkingDirectory=/home/pi/wyoming-openwakeword
Restart=always
RestartSec=1
[Install]
WantedBy=default.target
```
Сохраните файл и выйдите из редактора.
Теперь вы можете обновить сервис спутника:
```sh
sudo systemctl edit --force --full wyoming-satellite.service
```
Обновите только следующие части:
```text
[Unit]
...
Requires=wyoming-openwakeword.service
[Service]
...
ExecStart=/home/pi/wyoming-satellite/script/run ... --wake-uri 'tcp://127.0.0.1:10400' --wake-word-name 'ok_nabu'
...
[Install]
...
```
Перезагрузите и перезапустите сервис спутника:
```sh
sudo systemctl daemon-reload
sudo systemctl restart wyoming-satellite.service
```
Вы должны увидеть, что сервис wake загрузился автоматически:
```sh
sudo systemctl status wyoming-satellite.service wyoming-openwakeword.service
```
Все они должны быть "active (running)" и зелёные.
Протестируйте спутник, сказав "ok, nabu" и голосовую команду. Используйте `journalctl` для проверки логов сервисов на наличие ошибок:
```sh
journalctl -u wyoming-openwakeword.service -f
```
Убедитесь, что запускаете `sudo systemctl daemon-reload` каждый раз при внесении изменений в сервис.
## LED сервис
Примеры сервисов событий для ReSpeaker 2Mic и 4Mic HAT включены в `wyoming-satellite/examples`, они изменяют цвет LED в зависимости от состояния спутника. Пример ниже для 2Mic HAT с использованием `2mic_service.py`. Если вы используете 4Mic HAT, используйте `4mic_service.py`, так как светодиоды и GPIO пины немного отличаются.
Установите его из домашней директории:
```sh
cd wyoming-satellite/examples
python3 -m venv --system-site-packages .venv
.venv/bin/pip3 install --upgrade pip
.venv/bin/pip3 install --upgrade wheel setuptools
.venv/bin/pip3 install 'wyoming==1.5.2'
```
Если вы используете ReSpeaker USB 4mic array v2.0, дополнительно установите pixel-ring:
```sh
.venv/bin/pip3 install 'pixel-ring'
```
Аргумент `--system-site-packages` используется для доступа к предустановленным пакетам `gpiozero` и `spidev`. Если они **ещё не установлены** в вашей системе, выполните:
```sh
sudo apt-get install python3-spidev python3-gpiozero
```
Протестируйте сервис:
```sh
.venv/bin/python3 2mic_service.py --help
```
Создайте systemd сервис:
```sh
sudo systemctl edit --force --full 2mic_leds.service
```
Вставьте следующий шаблон и измените `/home/pi` и аргументы `script/run` в соответствии с вашей настройкой:
```text
[Unit]
Description=2Mic LEDs
[Service]
Type=simple
ExecStart=/home/pi/wyoming-satellite/examples/.venv/bin/python3 2mic_service.py --uri 'tcp://127.0.0.1:10500'
WorkingDirectory=/home/pi/wyoming-satellite/examples
Restart=always
RestartSec=1
[Install]
WantedBy=default.target
```
Сохраните файл и выйдите из редактора.
Теперь вы можете обновить сервис спутника:
```sh
sudo systemctl edit --force --full wyoming-satellite.service
```
Обновите только следующие части:
```text
[Unit]
...
Requires=2mic_leds.service
[Service]
...
ExecStart=/home/pi/wyoming-satellite/script/run ... --event-uri 'tcp://127.0.0.1:10500'
...
[Install]
...
```
Перезагрузите и перезапустите сервис спутника:
```sh
sudo systemctl daemon-reload
sudo systemctl restart wyoming-satellite.service
```
Вы должны увидеть, что сервис загрузился автоматически:
```sh
sudo systemctl status wyoming-satellite.service 2mic_leds.service
```
Все они должны быть "active (running)" и зелёные.
Попробуйте голосовую команду и посмотрите, реагируют ли светодиоды. Используйте `journalctl` для проверки логов сервисов на наличие ошибок:
```sh
journalctl -u 2mic_leds.service -f
```
Если возникли проблемы, добавьте аргумент `--debug` в командную строку для увеличения уровня логирования.
Для управления яркостью светодиодов используйте аргумент `--led-brightness`, который принимает целые числа от 1 до 31.
Убедитесь, что запускаете `sudo systemctl daemon-reload` каждый раз при внесении изменений в сервис.
---
## 🔗 Связанное
- [Руководство по развёртыванию](../../DEPLOY.md)
- [Интерактивный установщик](installer.md)