{"skill":{"slug":"senseaudio-conversation-rehearsal","displayName":"senseaudio-conversation-rehearsal","summary":"Use when a user wants to rehearse a high-pressure conversation such as a performance review, reporting meeting, promotion defense, difficult manager conversa...","description":"---\nname: senseaudio-conversation-rehearsal\ndescription: Use when a user wants to rehearse a high-pressure conversation such as a performance review, reporting meeting, promotion defense, difficult manager conversation, or stakeholder alignment session, using AudioClaw ASR for spoken rehearsal intake, AudioClaw TTS or an authorized cloned voice for the counterpart, and transcript-based debriefing on tone, structure, and communication risk.\n---\n\n# AudioClaw Conversation Rehearsal\n\n## What this skill is for\n\nThis skill is for realistic conversation rehearsal in high-pressure situations:\n\n- 汇报述职\n- 向上沟通\n- 绩效面谈\n- 晋升答辩\n- 难搞老板或强势同事沟通\n- 需要脱敏的正式谈话\n\nIt is designed to simulate the **other person speaking back**, not just generate a script.\n\n## Default stance\n\nUse two voice modes:\n\n- `proxy_voice`\n  - Recommended default\n  - Use a role-appropriate system voice and behavior style\n- `authorized_clone`\n  - Only use when the voice sample is explicitly authorized for rehearsal or internal training\n  - Best official path: clone on the AudioClaw platform first, then pass the prepared clone `voice_id`\n  - A prepared cloned voice id commonly looks like `vc-...`, and can be passed directly with `--prepared-clone-voice-id`\n\nDo not default to cloning a real person's voice without clear permission.\n\n## Workflow\n\n1. Define the rehearsal:\n   - scenario\n   - counterpart role\n   - relationship\n   - talk topic\n   - desired outcome\n   - fear triggers\n   - difficulty\n2. Run `scripts/build_rehearsal_blueprint.py`.\n3. Decide voice mode:\n   - proxy voice\n   - authorized clone\n4. Run the live loop in your agent stack:\n   - counterpart turn via TTS\n   - user spoken reply via ASR\n   - if you want faster perceived intake, enable stream ASR\n   - agent judges tone, structure, and progress\n   - use `scripts/build_counterpart_turn.py` to generate the next counterpart reply\n   - use `scripts/senseaudio_counterpart_tts.py` to synthesize that reply\n   - official clone chain: prepare the clone on the AudioClaw platform first and pass the resulting `voice_id`\n   - if that `voice_id` is a clone id like `vc-...`, counterpart TTS now auto-routes to `SenseAudio-TTS-1.5`\n   - optional experimental path: if an authorized platform token is available, use `scripts/senseaudio_clone_workspace.py` to inspect clone slots or attempt a rehearsal-only clone from an authorized sample\n   - if the user wants to actually hear the counterpart turns in Feishu or AudioClaw, use `--send-feishu-audio` or run `scripts/send_rehearsal_counterparts_to_feishu.py`\n5. After the session, run `scripts/analyze_rehearsal_transcript.py`.\n6. Produce a debrief:\n   - weak openings\n   - over-explaining\n   - vague asks\n   - missing evidence\n   - apologetic or defensive tone\n   - better rewrites\n\n## AudioClaw Trigger Pattern\n\nUse this skill as a structured multi-turn rehearsal mode.\n\nRecommended user trigger:\n\n```text\n开始演练，用 $senseaudio-conversation-rehearsal。\n场景：manager_update\n对方身份：strict_manager\n主题：项目延期说明\n目标：获得补救方案认可\n害怕点：被打断，被质疑执行力\n难度：medium\nprepared clone voice_id：your_clone_voice_id\n后面我发语音，和我进行多轮演练，最后给我复盘。\n```\n\nThe agent should:\n\n1. Collect the rehearsal slots first.\n2. Build the blueprint.\n3. Enter rehearsal mode, with reply mode defaulting to `voice`.\n4. Start the scene with the opening counterpart turn as voice, not text.\n5. For every later rehearsal turn:\n   - transcribe with `scripts/senseaudio_asr.py`\n   - generate the next counterpart turn\n   - synthesize that turn with proxy voice or the prepared clone `voice_id`\n   - in ongoing rehearsal mode, default to `--send-feishu-audio` so the counterpart turns are sent as Feishu `audio` messages without needing the user to repeat that request\n   - only fall back to text-first replies if the user explicitly asks for text-only output or the channel cannot play voice\n6. End with `scripts/analyze_rehearsal_transcript.py` and return a concrete debrief.\n\nRehearsal mode should be sticky inside the same session:\n\n- Keep the same scenario, counterpart role, relationship, topic, desired outcome, fear triggers, difficulty, and chosen `voice_id`\n- Keep voice reply as the default from the opening turn onward until the user explicitly says to switch back to text replies or exit rehearsal mode\n- If the user says \"直接发语音给我练\" or \"每轮都发语音\", treat that as confirming the same sticky voice mode rather than a one-turn exception\n\nIf the user asks to \"use the cloned voice\", interpret that as:\n\n- use a platform-prepared clone `voice_id` when available\n- otherwise pause and ask for the clone `voice_id` or fall back to `proxy_voice`\n\n## Design rules\n\n- Prioritize behavior realism over exact voice likeness.\n- Treat the public documented clone flow and the experimental workspace automation flow as separate paths.\n- For scary-counterpart scenarios, structure the rehearsal in phases:\n  - opening pressure\n  - pushback\n  - challenge question\n  - close\n- Evaluate both:\n  - what the user said\n  - how the user said it\n- Keep debrief concrete and operational.\n\n## API key lookup\n\nFor this skill, use `SENSEAUDIO_API_KEY` as the default API key source again.\n\nPractical rule:\n- `scripts/run_live_rehearsal_session.py`, `scripts/run_complete_rehearsal_service.py`, and `scripts/senseaudio_counterpart_tts.py` now default to `SENSEAUDIO_API_KEY`\n- If the host app injects `SENSEAUDIO_API_KEY` as a login token such as `v2.public...`, the shared bootstrap replaces it with the real `sk-...` value from `~/.audioclaw/workspace/state/senseaudio_credentials.json` before the rehearsal call starts\n\n## Resources\n\n- `scripts/build_rehearsal_blueprint.py`\n  - Builds a structured rehearsal plan and counterpart persona\n- `scripts/build_counterpart_turn.py`\n  - Generates the next counterpart turn from rehearsal state and the user's latest reply\n- `scripts/senseaudio_asr.py`\n  - Transcribes user spoken rehearsal turns with the official AudioClaw HTTP ASR API\n- `scripts/senseaudio_counterpart_tts.py`\n  - Synthesizes a counterpart turn using a safe proxy voice or an explicitly authorized clone voice_id\n- `scripts/run_live_rehearsal_session.py`\n  - Runs a multi-turn live rehearsal session from user audio replies, counterpart generation, TTS, and automatic debrief\n  - Supports `--stream-asr` and `--send-feishu-audio`\n- `scripts/send_rehearsal_counterparts_to_feishu.py`\n  - Reuses the Feishu voice delivery path to send the generated counterpart turns one by one as audio messages\n- `scripts/senseaudio_clone_workspace.py`\n  - Lists clone slots, lists available voices, and creates an authorized rehearsal clone through the official AudioClaw workspace endpoints, preferring a platform token and otherwise trying a logged-in Chrome browser session\n- `scripts/senseaudio_platform_token.py`\n  - Resolves an AudioClaw workspace platform token from env or a logged-in Chrome AudioClaw tab when Apple Events JavaScript is enabled\n- `scripts/run_complete_rehearsal_service.py`\n  - One entry point that builds the blueprint, optionally resolves a prepared clone `voice_id` or attempts experimental workspace clone automation, runs the live rehearsal session, and writes a summary bundle\n  - Supports `--send-feishu-audio` so the rehearsal counterpart can proactively send voice turns to Feishu or AudioClaw-linked chats\n- `scripts/analyze_rehearsal_transcript.py`\n  - Scores a rehearsal transcript for tone and communication risks\n- `references/live_rehearsal_loop.md`\n  - A minimal multi-turn runtime pattern for AudioClaw or another agent orchestrator\n- `references/rehearsal_design.md`\n  - Product design, safety policy, and rollout plan\n","tags":{"latest":"1.0.2"},"stats":{"comments":0,"downloads":692,"installsAllTime":26,"installsCurrent":0,"stars":0,"versions":3},"createdAt":1773734900293,"updatedAt":1779078425831},"latestVersion":{"version":"1.0.2","createdAt":1774168673616,"changelog":"AudioClaw naming and sticky voice mode update\n\n- Renamed SenseAudio to AudioClaw throughout documentation, APIs, and workflows.\n- Updated skill to use \"AudioClaw ASR/TTS\" in both logic and description.\n- Default API key source is now SENSEAUDIO_API_KEY; auto-resolves sk-... credentials before rehearsal starts.\n- Voice-based reply mode is now sticky for the whole rehearsal session, unless the user asks to switch back.\n- Clarified trigger and design patterns for multi-turn rehearsal, emphasizing voice interaction as default.\n- Documentation and resource references updated to reflect new naming and workflow changes.","license":"MIT-0"},"metadata":null,"owner":{"handle":"kikidouloveme79","userId":"s1799r8kj1jk2d6bjcn61ycmx583hqp7","displayName":"Wu Ruixiao","image":"https://avatars.githubusercontent.com/u/62665119?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090030039}}