关于 voice-message
将文本生成音频文件,并提供按聊天渠道发送语音消息的步骤。适用于需要通过聊天平台传递合成语音的工作流程。
主要功能
- 01文本转语音音频生成
- 02可配置语音选择
- 03通用聊天渠道发送说明
- 04Feishu/Lark 语音消息脚本
- 05Discord 波形数据准备
适用场景
- 01在聊天中发送合成语音
- 02为 Feishu/Lark 准备语音消息
- 03制作 Discord 语音消息格式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ xmanrui/ voice-message --skill voice-message安装后在 Claude Code 中输入/voice-message确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/voices.mdscripts/send_feishu_voice.shgen_waveform.pygen_voice.sh详细介绍
语音消息
将文本作为语音消息发送到任意聊天频道。
前提条件
edge-tts— Microsoft Edge TTS(pip install edge-tts)ffmpeg/ffprobe— 音频转换和时长检测
默认语音
- 中文:
zh-CN-XiaoxiaoNeural - 英语:
en-US-JennyNeural - 其他语言:参见 references/voices.md
步骤 1:生成语音文件
使用 scripts/gen_voice.sh 将文本转换为 ogg/opus 文件:
scripts/gen_voice.sh "你好" /tmp/voice.ogg
scripts/gen_voice.sh "Hello" /tmp/voice.ogg en-US-JennyNeural
参数:<text> <output.ogg> [voice]
- 如果省略 voice,则默认使用
zh-CN-XiaoxiaoNeural。
步骤 2:按频道发送
通用(Telegram、Signal、WhatsApp 等)
直接使用消息工具:
action=send, asVoice=true, filePath=/tmp/voice.ogg
这适用于大多数频道。已确认可用于 Telegram。
Feishu/Lark
⚠️ Feishu 不支持通过消息工具设置 asVoice=true。必须使用专用脚本。
使用 scripts/send_feishu_voice.sh:
scripts/send_feishu_voice.sh /tmp/voice.ogg <receive_id> <tenant_access_token> [receive_id_type]
receive_id_type:open_id(默认)、chat_id、user_id、union_id、email- 该脚本会处理上传(作为带时长信息的 opus 文件),并以音频消息类型发送,从而显示语音气泡。
- 要获取
tenant_access_token,请使用 Feishu 租户令牌 API 和你的应用凭据。
Discord
Discord 语音消息需要波形和特殊标志。
- 使用
scripts/gen_voice.sh生成 ogg - 生成波形:
python3 scripts/gen_waveform.py /tmp/voice.ogg- 输出 JSON:
{"duration_secs": 4.2, "waveform": "base64..."}
- 输出 JSON:
- 通过 Discord API 发送,设置
flags: 8192(IS_VOICE_MESSAGE),并在附件元数据中包含波形和时长。- 缺少波形/时长会导致错误 50161。
备用方案
如果 asVoice=true 在某个频道无法生成语音气泡:
- 尝试通过平台的原生 API 发送
- 如果原生 API 不可用,则作为音频文件附件发送
评论
支持 Markdown