Connecting to Supabase…

Tasker — Voice Headset Unified (Play → голос → WpfChat)

Дата: 2026-06-28
Устройство: Pixel 6a, Tasker 6.6.20
Проект: Voice Headset Unified (proj129) — отдельная вкладка, не Home

Файл: Docs/TaskerTasks/Outcoming/Voice_Headset_Unified_Project.prj.xml
Сборщик: Docs/TaskerTasks/build_voice_headset_unified.py


Что объединено из бэкапов

Источник Что взято
backup28JunePlayIsOk.xml Call Play Log, Scene Headset Event, профиль BT Headset Play Pause, Hide/Clear
VoiceCommandLoop_LoggingAndVoiceFix.xml Voice Command Loop (busy, Say, Beep, Get Voice, SEND_CHAT, LOG), Test Voice Loop Call, Voice Test, Log to WpfChat
VoiceCommandLoop_TestVoiceLoopCall_Fixed.xml логика %VOICE_BUSY + Perform Task с %par2
BT_KeyDebug.xml BT Key Debug HEADSET (HEADSET_BUTTON)
Bt_Key_Project.xml паттерн Test Send Chat

Новое в unified:

  • Call Play Voice — посредник Play → Voice Command Loop (как Call Play Log для Scene)
  • Headset Show Voice — Scene с текстом %VOICE_TEXT
  • Beep после Get Voice (конец записи)

Цепочка (6 шагов)

Play на гарнитуре
  → профиль BT Headset Play Pause
  → Call Play Voice (%par1=Play, %par2=%VOICE_BUSY)
  → Voice Command Loop
       1. busy-check (%VOICE_BUSY=1 → STOP)
       2. Say «listening»
       3. Beep (800 Hz)
       4. Flash «Слушаю»
       5. Get Voice (ru-RU, 15 с)
       6. Beep (конец записи)
       7. %VOICE_TEXT ← %VOICE
       8. Headset Show Voice → Scene «Voice: …»
       9. SEND_CHAT → AndroidChat → WpfChat
      10. LOG → androidchat.log / WpfChat
      11. %VOICE_BUSY = 0  → снова ждём Play

Импорт (важно)

  1. Скопировать на телефон Voice_Headset_Unified_Project.prj.xml (через AndroidChat Файлы → Incoming → Tasker).
  2. Tasker → долгое нажатие на нижнюю панельImport Project.
  3. НЕ Data → Restore (перезапишет весь Tasker).
  4. Появится вкладка Voice Headset Unified (не Home).

Проект использует proj129, не proj0 — Home не затрагивается.


Подготовка (один раз)

Tasker Permissions

  • Media Buttons → Grant (Debug-Guide §1.1)
  • Tasker → Preferences → Monitor → On

AndroidChat

Настройка Значение
Tasker → WpfChat: текстовые команды (SEND_CHAT) ON
Tasker → WpfChat: передавать кнопки в чат ON (опционально)
Захват гарнитуры в AndroidChat OFF (конфликт с Tasker)

Переменные (Vars)

Переменная Начало Назначение
%VOICE_BUSY 0 1 = цикл голоса идёт
%VOICE_TEXT пусто распознанный текст
%VOICE (системная) результат Get Voice

Профили после импорта

Профиль По умолчанию Задача
BT Headset Play Pause ON Call Play Voice
BT Headset Any (debug) OFF (limit) Call Play Log → Scene
BT Headset Play (debug) OFF (limit) Call Play Log → Scene

Правило: для голосового цикла ON только BT Headset Play Pause.

State Play Pause: Button=Play Pause (arg0=2), Grab On, Stop Event On.


Задачи для ручных тестов

Задача ▶ Run Ожидание
Test Voice Loop Call busy=0 Say + Beep + Get Voice + WpfChat
Voice Test только Get Voice → Flash %VOICE_TEXT
Test Send Chat «тест из Tasker» в WpfChat
Test Log to WpfChat строка в логах AndroidChat
BT Key Debug HEADSET %par1=Play 🎧 в WpfChat
Headset Debug Start пустая Scene «ожидание»

Проверка по шагам

A — без гарнитуры

  1. Vars: %VOICE_BUSY = 0
  2. Test Voice Loop Call
  3. После Say/Beep сказать фразу (например «тест голоса»)
  4. Scene: Voice: тест голоса
  5. WpfChat: сообщение «тест голоса»
  6. %VOICE_BUSY = 0

B — busy

  1. %VOICE_BUSY = 0 → ▶ Test Voice Loop Call → дождаться Say
  2. Сразу второй ▶ → Flash STOP: busy=1

C — гарнитура

  1. Только BT Headset Play Pause ON
  2. Закрыть плееры (YouTube и т.д.)
  3. Play → Say «listening» → Beep → говорите → Beep → Scene + WpfChat
  4. Повторный Play — снова цикл

D — Run Log

More → Run Log → Enable → Play:

Active ... BT Headset Play Pause
Task Start ... Call Play Voice
Task Start ... Voice Command Loop

Scene Headset Event

  • Dialog (не Overlay)
  • Voice: %VOICE_TEXT
  • Hide / Clear logs — как в backup28JunePlayIsOk
  • Debug-путь без голоса: профиль Any/Play (debug) → Call Play Log → Scene с p1:Play

Логи

Куда Как
WpfChat чат SEND_CHAT %VOICE_TEXT
WpfChat лог Tasker Intent LOG (категория VoiceLoop)
ПК Docs/Logs/ChatLogs/wpfchat-chat.log, Docs/Logs/AndroidChatLogs/

После сессии

Выключить профиль BT Headset Play Pause — иначе Play на гарнитуре не работает в YouTube/плеерах.
См. Tasker-BT-Key-Policy.md.


Пересборка XML

python Docs\TaskerTasks\build_voice_headset_unified.py

Обновляет Outcoming/ и Incoming/Voice_Headset_Unified_Project.prj.xml.


Связанные документы


Краткая шпаргалка

Импорт:    Import Project → Voice Headset Unified
Профиль:   BT Headset Play Pause ON → Call Play Voice
Тест:      ▶ Test Voice Loop Call (busy=0)
Гарнитура: Play → listening → Beep → голос → Beep → Scene + WpfChat
После:     профиль OFF