Generate Feishu voice replies in user required voice. Generate OPUS file to match Feishu audio.
Use this skill to turn text into a cloned-voice audio reply and deliver it to Feishu reliably.
Server implementation is kept with the skill (not workspace root):
server/voice_server_v3.py (FastAPI routes)server/voice_engine.py (generation and cache engine)Voice assets are also colocated with the skill:
voice/python -m uvicorn --app-dir server voice_server_v3:app --host 127.0.0.1 --port 8000/speak with text (and optional speed, exaggeration, cfg).
voice_name defaults to juno.audio/ogg) in Juno voice.C:\Users\hanli\.openclaw\media\outbound\message tool:
action=sendchannel=feishufilePath=<allowed-path>asVoice=truevoice_name: junospeed: 1.2/speak (no post-conversion)torch.inference_mode() during synthesis to reduce overhead./speak and /speak_stream.LocalMediaAccessError ... path-not-allowed.openclaw/media/outbound before sending.Use scripts/send_voice_reply.ps1 to generate Opus directly with defaults (voice_name=juno, speed=1.2).
It auto-selects /speak_stream for longer text (or when -Stream is passed) for better throughput.
ZIP package — ready to use