refactor: упростить test сервисы — только satellite (wake word и event production)

- services/test/*.service — удалены wake word и event test сервисы
- services/test/wyoming-satelite-vosk-test.service — использует production порты
- install_test_services.sh — обновлён для одного сервиса
- services/test/start_test.sh — запуск только satellite
- docs/deployment/systemd-services.md — обновлена документация

Test satellite использует:
- Production wake word (:10400)
- Production event (:10500)
- Те же порты что и production (:10700)
- WebSocket :8675 + Audio Level (новые функции)
This commit is contained in:
2026-05-20 17:50:16 +03:00
parent e5914b23b3
commit b27d633f06
6 changed files with 43 additions and 116 deletions
+15 -16
View File
@@ -174,17 +174,19 @@ ExecStart=satellite-python -m wyoming_satellite ...
## TEST сервисы (для разработки) ## TEST сервисы (для разработки)
Для тестирования новых функций без влияния на production службы созданы **TEST сервисы**. Для тестирования новых функций без влияния на production службы создан **TEST satellite**.
### Отличия от production ### Отличия от production
| Сервис | Production | Test | | Сервис | Production | Test |
|--------|------------|------| |--------|------------|------|
| Satellite | порт 10700 | порт 10701 + WebSocket :8675 | | Satellite | порт 10700 | порт 10700 + WebSocket :8675 + Audio Level |
| Wake Word | порт 10400 | порт 10401 | | Wake Word | порт 10400 | production сервис |
| Event | порт 10500 | порт 10501 | | Event | порт 10500 | production сервис |
### Вариант 1: Установка TEST сервисов (рекомендуется) **Важно:** TEST satellite использует production сервисы для wake word и event!
### Вариант 1: Установка TEST сервиса (рекомендуется)
**Установка:** **Установка:**
@@ -196,10 +198,12 @@ sudo ./install_test_services.sh
**Запуск:** **Запуск:**
```bash ```bash
# Запуск всех test сервисов # Убедись что production сервисы запущены
sudo systemctl start wyoming-event-test.service sudo systemctl status wyoming-wakeword-vosk.service
sudo systemctl status wyoming-event.service
# Запуск test satellite
sudo systemctl start wyoming-satelite-vosk-test.service sudo systemctl start wyoming-satelite-vosk-test.service
sudo systemctl start wyoming-wakeword-vosk-test.service
# Проверка статуса # Проверка статуса
sudo systemctl status wyoming-satelite-vosk-test.service sudo systemctl status wyoming-satelite-vosk-test.service
@@ -230,14 +234,11 @@ cd ~/projects/satellite-dev
# Подключиться к сессии # Подключиться к сессии
tmux attach -t satellite-test tmux attach -t satellite-test
# Остановить все сервисы # Остановить
tmux kill-session -t satellite-test tmux kill-session -t satellite-test
``` ```
**Структура окон:** **Важно:** Production сервисы должны быть запущены отдельно!
- **Окно 0:** Wake Word (порт 10401)
- **Окно 1:** Event Service (порт 10501)
- **Окно 2:** Satellite (порт 10701 + WebSocket :8675)
### Тестирование WebSocket ### Тестирование WebSocket
@@ -265,10 +266,8 @@ python3 examples/websocket-service/test_client.py --uri ws://127.0.0.1:8675
### Остановка TEST сервисов ### Остановка TEST сервисов
```bash ```bash
# systemd сервисы # systemd сервис
sudo systemctl stop wyoming-event-test.service
sudo systemctl stop wyoming-satelite-vosk-test.service sudo systemctl stop wyoming-satelite-vosk-test.service
sudo systemctl stop wyoming-wakeword-vosk-test.service
# tmux сессия # tmux сессия
tmux kill-session -t satellite-test tmux kill-session -t satellite-test
+7 -9
View File
@@ -73,16 +73,16 @@ sudo systemctl daemon-reload
echo "" echo ""
echo "✅ TEST сервисы установлены!" echo "✅ TEST сервисы установлены!"
echo "" echo ""
echo "📋 TEST сервисы (не влияют на production):" echo "📋 TEST сервис (не влияет на production):"
echo " - wyoming-event-test.service (LED управление, порт 10501)" echo " - wyoming-satelite-vosk-test.service (спутник, порт 10700)"
echo " - wyoming-satelite-vosk-test.service (спутник, порт 10701)" echo ""
echo " - wyoming-wakeword-vosk-test.service (wake word, порт 10401)" echo "💡 Production сервисы должны быть запущены:"
echo " - wyoming-wakeword-vosk.service (:10400)"
echo " - wyoming-event.service (:10500)"
echo "" echo ""
echo "🚀 Команды управления:" echo "🚀 Команды управления:"
echo " # Запуск всех test сервисов" echo " # Запуск test satellite"
echo " sudo systemctl start wyoming-event-test.service"
echo " sudo systemctl start wyoming-satelite-vosk-test.service" echo " sudo systemctl start wyoming-satelite-vosk-test.service"
echo " sudo systemctl start wyoming-wakeword-vosk-test.service"
echo "" echo ""
echo " # Проверка статуса" echo " # Проверка статуса"
echo " sudo systemctl status wyoming-satelite-vosk-test.service" echo " sudo systemctl status wyoming-satelite-vosk-test.service"
@@ -91,9 +91,7 @@ echo " # Остановка"
echo " sudo systemctl stop wyoming-satelite-vosk-test.service" echo " sudo systemctl stop wyoming-satelite-vosk-test.service"
echo "" echo ""
echo "📊 Просмотр логов:" echo "📊 Просмотр логов:"
echo " journalctl -u wyoming-event-test.service -f"
echo " journalctl -u wyoming-satelite-vosk-test.service -f" echo " journalctl -u wyoming-satelite-vosk-test.service -f"
echo " journalctl -u wyoming-wakeword-vosk-test.service -f"
echo "" echo ""
echo "🌐 WebSocket для тестирования:" echo "🌐 WebSocket для тестирования:"
echo " ws://127.0.0.1:8675" echo " ws://127.0.0.1:8675"
+16 -32
View File
@@ -1,7 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Быстрый запуск TEST сервисов в tmux # Быстрый запуск TEST satellite в tmux
# Не требует установки systemd сервисов # Не требует установки systemd сервисов
# Production сервисы (wake word, event) должны быть запущены отдельно
# #
set -e set -e
@@ -17,7 +18,7 @@ if [ ! -f "$PYTHON" ]; then
exit 1 exit 1
fi fi
echo "🚀 Запуск TEST сервисов в tmux..." echo "🚀 Запуск TEST satellite в tmux..."
echo "==================================" echo "=================================="
echo "" echo ""
@@ -34,54 +35,37 @@ tmux kill-session -t satellite-test 2>/dev/null || true
# Создание новой сессии # Создание новой сессии
echo "📡 Создание сессии 'satellite-test'..." echo "📡 Создание сессии 'satellite-test'..."
# Окно 1: Wake Word (порт 10401) # Satellite (порт 10700 + WebSocket)
tmux new-session -d -s satellite-test -n "wakeword" \ tmux new-session -d -s satellite-test -n "satellite" \
"cd ${SCRIPT_DIR} && source ${VENV_PATH}/bin/activate && \
python3 local/vosk-wake-dev/script/run \
--uri tcp://0.0.0.0:10401 \
--model-path /home/${USER}/projects/models/vosk-model-small-ru-0.22 \
--rate 16000 \
--wake-word 'привет дройд'"
echo " ✅ Wake Word запущен (порт 10401)"
# Окно 2: Event Service (порт 10501)
tmux split-window -t satellite-test:0 -h \
"cd ${SCRIPT_DIR}/examples && source ${VENV_PATH}/bin/activate && \
python3 wyoming-led.py --host 127.0.0.1 --port 10501"
echo " ✅ Event Service запущен (порт 10501)"
# Окно 3: Satellite (порт 10701 + WebSocket)
tmux new-window -t satellite-test -n "satellite" \
"cd ${SCRIPT_DIR} && source ${VENV_PATH}/bin/activate && \ "cd ${SCRIPT_DIR} && source ${VENV_PATH}/bin/activate && \
python3 -m wyoming_satellite \ python3 -m wyoming_satellite \
--uri tcp://0.0.0.0:10701 \ --uri tcp://0.0.0.0:10700 \
--name 'Wyoming Satellite Test' \ --name 'Wyoming Satellite Test' \
--mic-command 'arecord -D plughw:CARD=Array,DEV=0 -q -r 16000 -c 1 -f S16_LE -t raw' \ --mic-command 'arecord -D plughw:CARD=Array,DEV=0 -q -r 16000 -c 1 -f S16_LE -t raw' \
--snd-command 'aplay -D plughw:CARD=Array,DEV=0 -q -r 22050 -c 1 -f S16_LE -t raw' \ --snd-command 'aplay -D plughw:CARD=Array,DEV=0 -q -r 22050 -c 1 -f S16_LE -t raw' \
--event-uri tcp://127.0.0.1:10501 \ --event-uri tcp://127.0.0.1:10500 \
--wake-uri tcp://127.0.0.1:10400 \
--wake-word-name 'привет дройд' \
--websocket-enabled \ --websocket-enabled \
--websocket-port 8675 \ --websocket-port 8675 \
--audio-level-enabled \ --audio-level-enabled \
--audio-level-interval-ms 100 \ --audio-level-interval-ms 100 \
--debug" --debug"
echo " ✅ Satellite запущен (порт 10701 + WebSocket :8675)" echo " ✅ Satellite запущен (порт 10700 + WebSocket :8675)"
echo ""
echo "💡 Production сервисы должны быть запущены:"
echo " - Wake Word (:10400): sudo systemctl status wyoming-wakeword-vosk.service"
echo " - Event (:10500): sudo systemctl status wyoming-event.service"
echo ""
# Возврат к первому окну # Возврат к окну
tmux select-window -t satellite-test:0 tmux select-window -t satellite-test:0
echo ""
echo "✅ Запуск завершён!" echo "✅ Запуск завершён!"
echo "" echo ""
echo "📋 Сессия tmux: 'satellite-test'" echo "📋 Сессия tmux: 'satellite-test'"
echo "" echo ""
echo " Окна:"
echo " 0: Wake Word (порт 10401)"
echo " 1: Event (порт 10501)"
echo " 2: Satellite (порт 10701 + WebSocket :8675)"
echo ""
echo "🎮 Управление tmux:" echo "🎮 Управление tmux:"
echo " tmux attach -t satellite-test # Подключиться" echo " tmux attach -t satellite-test # Подключиться"
echo " tmux kill-session -t satellite-test # Остановить" echo " tmux kill-session -t satellite-test # Остановить"
-37
View File
@@ -1,37 +0,0 @@
[Unit]
Description=Wyoming Event Service Test (LED control)
After=network.target
[Service]
Type=simple
# 🔹 Запуск от имени вашего пользователя
User=__CURRENT_USER__
Group=__CURRENT_USER__
# 🔹 Рабочая директория — где лежит wyoming-led.py
WorkingDirectory=__SAT_BASE_DIR__/examples
# 🔹 Test порт 10501 вместо 10500
ExecStart=satellite-python __SAT_BASE_DIR__/examples/wyoming-led.py --host 127.0.0.1 --port 10501
# 🔹 Критически важно: передаём окружение
Environment="HOME=__HOME_DIR__"
Environment="USER=__CURRENT_USER__"
Environment="PATH=__SAT_VENV__/bin:/usr/local/bin:/usr/bin:/bin"
Environment="VIRTUAL_ENV=__SAT_VENV__"
# 🔹 Разрешаем доступ к устройству (на всякий случай)
PrivateDevices=false
# 🔹 Перезапуск при ошибке
Restart=on-failure
RestartSec=3
# 🔹 Логирование в journal
StandardOutput=journal
StandardError=journal
SyslogIdentifier=wyoming-event-test
[Install]
WantedBy=multi-user.target
@@ -8,12 +8,15 @@ User=__CURRENT_USER__
WorkingDirectory=__SAT_BASE_DIR__ WorkingDirectory=__SAT_BASE_DIR__
# Запуск satellite с WebSocket и Audio Level # Запуск satellite с WebSocket и Audio Level
# Для wake word и event используйте production сервисы (:10400, :10500)
ExecStart=__SAT_VENV__/bin/python3 -m wyoming_satellite \ ExecStart=__SAT_VENV__/bin/python3 -m wyoming_satellite \
--uri tcp://0.0.0.0:10701 \ --uri tcp://0.0.0.0:10700 \
--name 'Wyoming Satellite Test' \ --name 'Wyoming Satellite Test' \
--mic-command 'arecord -D plughw:CARD=Array,DEV=0 -q -r 16000 -c 1 -f S16_LE -t raw' \ --mic-command 'arecord -D plughw:CARD=Array,DEV=0 -q -r 16000 -c 1 -f S16_LE -t raw' \
--snd-command 'aplay -D plughw:CARD=Array,DEV=0 -q -r 22050 -c 1 -f S16_LE -t raw' \ --snd-command 'aplay -D plughw:CARD=Array,DEV=0 -q -r 22050 -c 1 -f S16_LE -t raw' \
--event-uri tcp://127.0.0.1:10501 \ --event-uri tcp://127.0.0.1:10500 \
--wake-uri tcp://127.0.0.1:10400 \
--wake-word-name "привет дройд" \
--websocket-enabled \ --websocket-enabled \
--websocket-port 8675 \ --websocket-port 8675 \
--audio-level-enabled \ --audio-level-enabled \
@@ -1,20 +0,0 @@
[Unit]
Description=voskWakeWord Test
[Service]
Type=simple
User=__CURRENT_USER__
# Test порт 10401 вместо 10400
ExecStart=satellite-python __SAT_BASE_DIR__/local/vosk-wake-dev/script/run \
--uri tcp://0.0.0.0:10401 \
--model-path /home/__CURRENT_USER__/projects/models/vosk-model-small-ru-0.22 \
--rate 16000 \
--wake-word "привет дройд"
WorkingDirectory=__SAT_BASE_DIR__/local/vosk-wake-dev
Restart=always
RestartSec=1
[Install]
WantedBy=default.target