mcpField
V
voice-message

voice-message

github.com/xmanrui其他3172 次安装35 周前更新
代码仓库

关于 voice-message

将文本生成音频文件,并提供按聊天渠道发送语音消息的步骤。适用于需要通过聊天平台传递合成语音的工作流程。

主要功能

  1. 01文本转语音音频生成
  2. 02可配置语音选择
  3. 03通用聊天渠道发送说明
  4. 04Feishu/Lark 语音消息脚本
  5. 05Discord 波形数据准备

适用场景

  1. 01在聊天中发送合成语音
  2. 02为 Feishu/Lark 准备语音消息
  3. 03制作 Discord 语音消息格式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/xmanrui/voice-message --skill voice-message

安装后在 Claude Code 中输入/voice-message确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
voices.md
scripts/
send_feishu_voice.sh
gen_waveform.py
gen_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 语音消息需要波形和特殊标志。

  1. 使用 scripts/gen_voice.sh 生成 ogg
  2. 生成波形:python3 scripts/gen_waveform.py /tmp/voice.ogg
    • 输出 JSON:{"duration_secs": 4.2, "waveform": "base64..."}
  3. 通过 Discord API 发送,设置 flags: 8192(IS_VOICE_MESSAGE),并在附件元数据中包含波形和时长。
    • 缺少波形/时长会导致错误 50161。
备用方案

如果 asVoice=true 在某个频道无法生成语音气泡:

  1. 尝试通过平台的原生 API 发送
  2. 如果原生 API 不可用,则作为音频文件附件发送

评论

支持 Markdown