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
Импорт (важно)
- Скопировать на телефон
Voice_Headset_Unified_Project.prj.xml(через AndroidChat Файлы → Incoming → Tasker). - Tasker → долгое нажатие на нижнюю панель → Import Project.
- НЕ Data → Restore (перезапишет весь Tasker).
- Появится вкладка 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 — без гарнитуры
- Vars:
%VOICE_BUSY= 0 - ▶ Test Voice Loop Call
- После Say/Beep сказать фразу (например «тест голоса»)
- Scene: Voice: тест голоса
- WpfChat: сообщение «тест голоса»
%VOICE_BUSY= 0
B — busy
%VOICE_BUSY= 0 → ▶ Test Voice Loop Call → дождаться Say- Сразу второй ▶ → Flash STOP: busy=1
C — гарнитура
- Только BT Headset Play Pause ON
- Закрыть плееры (YouTube и т.д.)
- Play → Say «listening» → Beep → говорите → Beep → Scene + WpfChat
- Повторный 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.
Связанные документы
- Tasker-BT-Headset-Continue-Guide.md — Call Play Log,
%par1 - Tasker-Implementation-Plan.md — шаги 3–13 Voice Command Loop
- Tasker-AI-Fix-Voice-Busy-Prompt.md — busy-check
Краткая шпаргалка
Импорт: 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