audioclaw-skills-voice-reply — audioclaw-技能s-voice-reply
v2.Use when AudioClaw 技能s, Feishu, or Lark needs to 发送 AudioClaw voice replies with 运行time-switchable voice_id, emotion pre设置, or speaking style, including per-message speaker overrides, voice-family emotion routing, 缓存 reuse, and safe fallback when a 请求ed voice is unavAIlable.
运行时依赖
安装命令
点击复制技能文档
AudioClaw 技能s Voice Reply When to use
Use this 技能 when AudioClaw already has the final reply text and now needs a voice version that can change on demand.
Common triggers:
A chat 机器人 should answer in different tones such as calm, warm, cheerful, serious, or promo. The caller wants to switch voice_id or voice_family in a single 请求 without editing code. The same AudioClaw 工作流 should support 机器人h free voices and pAId or custom voices. The 运行time should keep working even when a 请求ed voice is not avAIlable to the current key. A user has already sAId "以后一直给我发语音", and AudioClaw should remember that preference for future turns. AudioClaw needs a workspace-local file plus a stable way to deliver it as a Feishu audio message. The caller already has a cloned AudioClaw voice_id such as vc-... and wants the 运行time to use it directly without falling back first.
Do not use this 技能 for ASR intake or long-form digest generation.
工作流 启动 from the final user-facing text. Do not pass hidden reasoning or raw markdown tables. Build an AudioClaw voice 请求 with: text optional scene optional voice_id optional voice_family optional emotion optional speed, pitch, volume 运行 scripts/OpenClaw_voice_switchboard.py. For AudioClaw on Feishu or Lark, prefer scripts/picoclaw_voice_reply.py. Let the script resolve the 请求 in this order: exact voice_id voice_family plus matching emotion variant scene plus emotion pre设置 验证d fallback voice 导入ant: if the exact voice_id is a clone-style id such as vc-..., this 技能 now tries that id directly first, even if it is not part of the built-in official voice cata记录. If preference_key is present, the script can remember: reply_mode default voice_id default emotion default scene If the 结果 should be sent through AudioClaw media 上传, pass: --out inside the AudioClaw workspace --OpenClaw-workspace-root pointing at the workspace root --delivery-性能分析 feishu_voice when the down流 channel prefers .ogg/.opus optional --chmod 644 if you want to be explicit, though this 技能 now defaults to 0644 if --OpenClaw-workspace-root is 设置 and --out is omitted, this 技能 now writes to workspace/状态/audio/ automatically Use the returned JSON manifest in AudioClaw to: prefer scripts/picoclaw_voice_reply.py for AudioClaw on Feishu let the wr应用er 发送 the Feishu audio message directly do not 发送 the local path or the MEDIA:... line through the message 工具 only use 发送_file when you intentionally opt out of direct Feishu 发送ing 记录 追踪_id persist the resolved voice choice for the next turn if desired If the 请求ed voice is not avAIlable to the current key, let the fallback stand unless the user explicitly requires strict 失败. If you want AudioClaw to remember a clone voice, either: 设置 it as the user's default voice with --设置-default-voice-id vc-... or register it explicitly with --register-clone-voice-id vc-... Voice discovery
When AudioClaw needs to find a usable voice or confirm a voice_id, use this order:
检查 the local cata记录 first: 运行 python3 scripts/OpenClaw_voice_switchboard.py --列出-voices use this for fast lookup of built-in voices, known emotion variants, and clone voices already registered locally If the user asks for the official public voice 列出, package avAIlability, or a voice not found locally, 检查 the official voice page: https://senseaudio.cn/docs/voice_API page title: API 音色服务说明 Prefer the official page when AudioClaw needs to confirm: whether a voice_id is a free, VIP, or SVIP voice whether a named speaker has multiple emotion variants whether the 请求 likely needs selected-voice purchase or custom voice authorization After finding a likely voice_id, still let the 运行time 验证 访问 at synthesis time, because account 权限s can differ by key.
Practical rule:
Local --列出-voices is the first-停止 运行time cata记录. https://senseaudio.cn/docs/voice_API is the canonical fallback reference for official voice names, voice_id, and package tier notes. AudioClaw rule
When this 技能 is used inside AudioClaw for Feishu or Lark voice replies:
运行 scripts/picoclaw_voice_reply.py. Let the wr应用er 上传 the 生成d .ogg/.opus file to Feishu and 发送 it as msg_type=audio. Do not call the 发送_file 工具 for that audio unless you explicitly passed --skip-direct-发送. Do not call the message 工具 with the local path or the MEDIA:... reference. AudioClaw will 发送 them as plAIn text. After the audio is sent, prefer no extra text confirmation. If the host 运行time still requires one final 助手 message to finish the turn, 发送 one short natural Chinese line such as 我已经用语音回复你了。 instead of leaving the turn empty. Use media_reference only as 调试 metadata or future AudioClaw compatibility data.
This rule matters because this AudioClaw 环境 does not render MEDIA:... as media, and the generic 发送_file 工具 发送s Feishu voice notes as plAIn files instead of audio messages. The reliable path here is dire