Feishu Voice Bubble
Send native voice bubble messages (语音气泡) in Feishu/Lark chats using Edge TTS. Converts text to opus audio via Microsoft Edge TTS (free, no API key needed), t...
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 26 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
OpenClaw
Suspicious
high confidencePurpose & Capability
The skill's name/description promise sending native Feishu voice-bubble messages, but the only included code (scripts/gen_voice.js) generates .opus files using node-edge-tts and prints JSON. There is no Feishu API client, no upload/send logic, and no credential requirements. The SKILL.md shows a JSON "Send to Feishu" example but does not implement or document how the file gets uploaded or authenticated. This is an incoherence between claimed capability and actual implementation.
Instruction Scope
The runtime instructions and the script stay within TTS generation: they call node-edge-tts, write .opus files, split text, and log results. They do not read unrelated system files, environment variables, or transmit data to unexpected external endpoints beyond what node-edge-tts uses. The SKILL.md does instruct 'npm install node-edge-tts' which is appropriate for the task.
Install Mechanism
There is no formal install spec (instruction-only). The SKILL.md requests installing the npm package node-edge-tts. That is a normal dependency, but installing npm packages pulls third-party code — users should vet the package and version. No downloads from arbitrary URLs or extract operations are present in the skill bundle itself.
Credentials
The skill declares no required environment variables or credentials, which aligns with the fact it does not call Feishu APIs. This is proportionate, but it also explains why the skill cannot perform the 'send' action on its own.
Persistence & Privilege
Flags show default behavior (always: false, user-invocable: true). The skill does not request persistent presence, system modifications, or access to other skills' configurations.
What to consider before installing
This skill will convert text to .opus files using Microsoft Edge TTS (node-edge-tts) but does not itself upload or send messages to Feishu. If you expect an end-to-end Feishu sender, you'll need a separate integration that uploads the .opus file to Feishu (and that integration will require Feishu API credentials). Before installing: 1) verify/trust the node-edge-tts npm package and its network behavior (it will call Microsoft TTS endpoints and send your text there), 2) confirm how your agent or environment will upload the generated .opus to Feishu (authorization/permissions), and 3) if you need automatic sending, request or add a Feishu upload/sending component that securely handles credentials rather than relying on this script alone.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.1.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
Feishu Voice Bubble
Send native voice bubble messages in Feishu using Edge TTS + opus format.
Why This Exists
Feishu bot API only renders voice bubbles for audio message type with opus format.
Standard TTS outputs mp3 → Feishu shows it as a file attachment, not a voice bubble.
This skill: Edge TTS → opus → Feishu audio → native voice bubble.
Prerequisites
npm install node-edge-tts
No API keys required. Edge TTS is free.
Usage
Basic
node scripts/gen_voice.js "你好世界" output.opus
With Options
node scripts/gen_voice.js "播报内容" output.opus --voice zh-CN-YunxiNeural --rate +15% --pitch -5%
Long Text Auto-Split
node scripts/gen_voice.js "很长的文本..." output.opus --split 500
Produces output_1.opus, output_2.opus, etc. Split at sentence boundaries.
Send to Feishu
{ "action": "send", "filePath": "output.opus" }
The .opus extension triggers Feishu's native audio message type automatically.
Arguments
| Arg | Description | Default |
|---|---|---|
<text> | Text to convert | required |
<output> | Output .opus path | required |
--voice | Edge TTS voice name | zh-CN-XiaoxiaoNeural |
--rate | Speech rate (+20%, -10%) | +0% |
--pitch | Pitch adjust (+5%, -5%) | +0% |
--split | Auto-split at N chars | 0 (disabled) |
Chinese Voices
| Voice | Gender | Style |
|---|---|---|
| zh-CN-XiaoxiaoNeural | F | Warm, versatile (default) |
| zh-CN-XiaoyiNeural | F | Gentle, storytelling |
| zh-CN-YunxiNeural | M | Young, energetic |
| zh-CN-YunjianNeural | M | Broadcast, professional |
| zh-CN-YunyangNeural | M | News anchor, authoritative |
| zh-CN-liaoning-XiaobeiNeural | F | Northeastern dialect |
| zh-CN-shaanxi-XiaoniNeural | F | Shaanxi dialect |
How It Works
- Edge TTS converts text →
webm-24khz-16bit-mono-opus - Saved as
.opusfile - Feishu plugin detects
.opus→ uploads asopustype → sends asaudiomessage - Feishu client renders native voice bubble with play button
Limitations
- Requires internet (Microsoft hosted service)
- No SLA (free public service)
- ~10 min max audio per request
node-edge-ttsmust be installed in the working directory or globally
Files
2 totalSelect a file
Select a file to preview.
Comments
Loading comments…
