Skip to content

[Feature Request] 支持发送微信原生语音消息(绿色语音条) #78

@manong-MAX

Description

@manong-MAX

功能请求:支持发送微信原生语音消息(绿色语音条)

背景

当前版本(2.1.7)的 openclaw-weixin 插件发送音频时,会将音频作为文件附件发送,显示为蓝色进度条附件,而非微信原生语音消息(绿色语音条)。

期望行为

用户希望 AI 助手用 TTS(文字转语音)生成的语音,能够以微信原生语音消息的格式发送,显示为绿色进度条,可直接播放。

技术分析

根据插件源码 (src/api/types.ts),API 已支持原生语音消息格式:

  • MessageItem.type = 3 (VOICE)
  • VoiceItem.encode_type = 6 (SILK)
  • 采样率:sample_rate = 24000
  • 需要先上传到 CDN,再发送

但 send-media.ts 中所有非图片/视频的媒体都被路由到文件附件通道(sendFileMessageWeixin),缺少语音消息的发送路径。

已有基础设施

  • silk-wasm npm 包已内置于插件依赖中,可用于 SILK 编码/解码
  • src/media/silk-transcode.ts 已实现 SILK → WAV 解码(用于接收语音)
  • edge-tts 可生成高质量中文 TTS

建议实现方案

  1. 新增 sendVoiceMessageWeixin 函数,构造 VoiceItem 并通过 CDN 上传 SILK 数据
  2. 在 send-media.ts 中新增 MIME 类型路由:�udio/* → sendVoiceMessageWeixin
  3. 或新增 �oice 消息类型,与 ext、image、�ideo 并列

参考

  • 插件版本:2.1.7
  • OpenClaw 版本:2026.4.15

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions