diff --git a/docs/deployment/systemd-services.md b/docs/deployment/systemd-services.md index b964c53..87a5b37 100644 --- a/docs/deployment/systemd-services.md +++ b/docs/deployment/systemd-services.md @@ -174,17 +174,19 @@ ExecStart=satellite-python -m wyoming_satellite ... ## TEST сервисы (для разработки) -Для тестирования новых функций без влияния на production службы созданы **TEST сервисы**. +Для тестирования новых функций без влияния на production службы создан **TEST satellite**. ### Отличия от production | Сервис | Production | Test | |--------|------------|------| -| Satellite | порт 10700 | порт 10701 + WebSocket :8675 | -| Wake Word | порт 10400 | порт 10401 | -| Event | порт 10500 | порт 10501 | +| Satellite | порт 10700 | порт 10700 + WebSocket :8675 + Audio Level | +| Wake Word | порт 10400 | production сервис | +| Event | порт 10500 | production сервис | -### Вариант 1: Установка TEST сервисов (рекомендуется) +**Важно:** TEST satellite использует production сервисы для wake word и event! + +### Вариант 1: Установка TEST сервиса (рекомендуется) **Установка:** @@ -196,10 +198,12 @@ sudo ./install_test_services.sh **Запуск:** ```bash -# Запуск всех test сервисов -sudo systemctl start wyoming-event-test.service +# Убедись что production сервисы запущены +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-wakeword-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 kill-session -t satellite-test ``` -**Структура окон:** -- **Окно 0:** Wake Word (порт 10401) -- **Окно 1:** Event Service (порт 10501) -- **Окно 2:** Satellite (порт 10701 + WebSocket :8675) +**Важно:** Production сервисы должны быть запущены отдельно! ### Тестирование WebSocket @@ -265,10 +266,8 @@ python3 examples/websocket-service/test_client.py --uri ws://127.0.0.1:8675 ### Остановка TEST сервисов ```bash -# systemd сервисы -sudo systemctl stop wyoming-event-test.service +# systemd сервис sudo systemctl stop wyoming-satelite-vosk-test.service -sudo systemctl stop wyoming-wakeword-vosk-test.service # tmux сессия tmux kill-session -t satellite-test diff --git a/install_test_services.sh b/install_test_services.sh index 8ac9fcc..2a7f6a7 100755 --- a/install_test_services.sh +++ b/install_test_services.sh @@ -73,16 +73,16 @@ sudo systemctl daemon-reload echo "" echo "✅ TEST сервисы установлены!" echo "" -echo "📋 TEST сервисы (не влияют на production):" -echo " - wyoming-event-test.service (LED управление, порт 10501)" -echo " - wyoming-satelite-vosk-test.service (спутник, порт 10701)" -echo " - wyoming-wakeword-vosk-test.service (wake word, порт 10401)" +echo "📋 TEST сервис (не влияет на production):" +echo " - wyoming-satelite-vosk-test.service (спутник, порт 10700)" +echo "" +echo "💡 Production сервисы должны быть запущены:" +echo " - wyoming-wakeword-vosk.service (:10400)" +echo " - wyoming-event.service (:10500)" echo "" echo "🚀 Команды управления:" -echo " # Запуск всех test сервисов" -echo " sudo systemctl start wyoming-event-test.service" +echo " # Запуск test satellite" echo " sudo systemctl start wyoming-satelite-vosk-test.service" -echo " sudo systemctl start wyoming-wakeword-vosk-test.service" echo "" echo " # Проверка статуса" echo " sudo systemctl status wyoming-satelite-vosk-test.service" @@ -91,9 +91,7 @@ echo " # Остановка" echo " sudo systemctl stop wyoming-satelite-vosk-test.service" echo "" echo "📊 Просмотр логов:" -echo " journalctl -u wyoming-event-test.service -f" echo " journalctl -u wyoming-satelite-vosk-test.service -f" -echo " journalctl -u wyoming-wakeword-vosk-test.service -f" echo "" echo "🌐 WebSocket для тестирования:" echo " ws://127.0.0.1:8675" diff --git a/services/test/start_test.sh b/services/test/start_test.sh index e2b1d44..c754aef 100755 --- a/services/test/start_test.sh +++ b/services/test/start_test.sh @@ -1,7 +1,8 @@ #!/usr/bin/env bash # -# Быстрый запуск TEST сервисов в tmux +# Быстрый запуск TEST satellite в tmux # Не требует установки systemd сервисов +# Production сервисы (wake word, event) должны быть запущены отдельно # set -e @@ -17,7 +18,7 @@ if [ ! -f "$PYTHON" ]; then exit 1 fi -echo "🚀 Запуск TEST сервисов в tmux..." +echo "🚀 Запуск TEST satellite в tmux..." echo "==================================" echo "" @@ -34,54 +35,37 @@ tmux kill-session -t satellite-test 2>/dev/null || true # Создание новой сессии echo "📡 Создание сессии 'satellite-test'..." -# Окно 1: Wake Word (порт 10401) -tmux new-session -d -s satellite-test -n "wakeword" \ - "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" \ +# Satellite (порт 10700 + WebSocket) +tmux new-session -d -s satellite-test -n "satellite" \ "cd ${SCRIPT_DIR} && source ${VENV_PATH}/bin/activate && \ python3 -m wyoming_satellite \ - --uri tcp://0.0.0.0:10701 \ + --uri tcp://0.0.0.0:10700 \ --name 'Wyoming Satellite Test' \ --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' \ - --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-port 8675 \ --audio-level-enabled \ --audio-level-interval-ms 100 \ --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 -echo "" echo "✅ Запуск завершён!" echo "" echo "📋 Сессия tmux: 'satellite-test'" echo "" -echo " Окна:" -echo " 0: Wake Word (порт 10401)" -echo " 1: Event (порт 10501)" -echo " 2: Satellite (порт 10701 + WebSocket :8675)" -echo "" echo "🎮 Управление tmux:" echo " tmux attach -t satellite-test # Подключиться" echo " tmux kill-session -t satellite-test # Остановить" diff --git a/services/test/wyoming-event-test.service b/services/test/wyoming-event-test.service deleted file mode 100644 index 191badb..0000000 --- a/services/test/wyoming-event-test.service +++ /dev/null @@ -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 diff --git a/services/test/wyoming-satelite-vosk-test.service b/services/test/wyoming-satelite-vosk-test.service index 233976f..e8a7f27 100644 --- a/services/test/wyoming-satelite-vosk-test.service +++ b/services/test/wyoming-satelite-vosk-test.service @@ -8,12 +8,15 @@ User=__CURRENT_USER__ WorkingDirectory=__SAT_BASE_DIR__ # Запуск satellite с WebSocket и Audio Level +# Для wake word и event используйте production сервисы (:10400, :10500) 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' \ --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' \ - --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-port 8675 \ --audio-level-enabled \ diff --git a/services/test/wyoming-wakeword-vosk-test.service b/services/test/wyoming-wakeword-vosk-test.service deleted file mode 100644 index 5082c7b..0000000 --- a/services/test/wyoming-wakeword-vosk-test.service +++ /dev/null @@ -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