skills$openclaw/telegram-voice-group
sanwecn4.8k

by sanwecn

telegram-voice-group – OpenClaw Skill

telegram-voice-group is an OpenClaw Skills integration for writing workflows. 向指定 Telegram 群组发送语音消息

4.8k stars9.7k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026writing

Skill Snapshot

nametelegram-voice-group
description向指定 Telegram 群组发送语音消息 OpenClaw Skills integration.
ownersanwecn
repositorysanwecn/telegram-voice-group
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @sanwecn/telegram-voice-group
last updatedFeb 7, 2026

Maintainer

sanwecn

sanwecn

Maintains telegram-voice-group in the OpenClaw Skills directory.

View GitHub profile
File Explorer
10 files
.
_meta.json
471 B
DEPENDENCIES.md
385 B
FEATURES.md
1.4 KB
index.js
3.4 KB
package.json
343 B
README.md
5.1 KB
send_telegram_voice.js
1.7 KB
SKILL.md
7.0 KB
TELEGRAM_TOPICS.md
3.8 KB
USE_CASES.md
1.3 KB
SKILL.md

name: telegram-voice-group description: 向指定 Telegram 群组发送语音消息 metadata: {"openclaw":{"emoji":"🔊","os":["linux"],"requires":{"bins":["ffmpeg","edge-tts"]}}}

Telegram 群组语音消息发送 (telegram-voice-group) 🔊

使用 Telegram 群组话题功能实现隔离上下文替代 Discord,并可以指定 Telegram 群组发送语音消息。

功能

  • 使用 Microsoft Edge-TTS 生成高质量中文语音
  • 转换为 Telegram 语音气泡兼容格式
  • 发送到指定的群组会话
  • 话题独立上下文:每个 Telegram 话题都有独立的会话上下文,格式为 agent:main:telegram:group:{groupId}:topic:{threadId}
  • 会话隔离:不同话题间的对话历史和上下文完全隔离,互不干扰,这使得 Telegram 群组话题功能可以有效替代 Discord 频道的组织功能
  • 支持向特定话题发送语音消息

依赖

  • edge-tts - 用于生成语音
  • ffmpeg - 用于格式转换

部署到 Telegram 群组完整教程

1. 创建 Telegram 群组

  • 打开 Telegram 应用
  • 点击右上角的 "+" 按钮
  • 选择 "新建群组" 或 "New Group"
  • 添加成员并设置群组名称和头像

2. 邀请 OpenClaw Bot 到群组

  • 在群组中点击群组名称进入群组信息页面
  • 点击 "添加成员" 或 "Add Member"
  • 搜索并选择你的 OpenClaw Bot(例如 @your_openclaw_bot)
  • 点击 "添加" 或 "Add"

3. 赋予 OpenClaw Bot 群组管理权限

  • 在群组信息页面,点击 OpenClaw Bot 的用户名
  • 选择 "提升为管理员" 或 "Promote to Admin"
  • 授予以下权限:
    • 删除消息 (Delete Messages)
    • 编辑群组信息 (Edit Group Info)
    • 发送消息 (Send Messages)
    • 发送媒体 (Send Media)
    • 限制成员 (Restrict Members)
    • 封禁成员 (Ban Members)
    • 添加管理员 (Add Admins) - 可选,根据需要

4. 获取群组的链接和 ID

  • 点击群组头像进入群组信息页面
  • 点击 "群组类型" 或 "Group Type" 下方的 "群组链接" 或 "Group Link"
  • 复制群组链接(例如 https://t.me/your_group_name)
  • 群组 ID 通常是链接后面的部分,或者在某些客户端可以直接看到数字 ID

5. 创建话题并获取话题序号

  • 在群组中,点击底部的 "+" 按钮
  • 选择 "新建话题" 或 "Create Topic"(如果群组启用了话题功能)
  • 设置话题名称
  • 点击话题头像进入话题详情
  • 查看邀请链接,链接末尾的数字即为话题序号(例如 https://t.me/your_group_name/123 中的 123)

6. 在 OpenClaw 中配置群组和话题

  • 将群组链接和 ID 发送给 OpenClaw Bot
  • 将话题序号发送给 OpenClaw Bot
  • 使用如下命令格式发送语音消息:
    向 agent:main:telegram:group:[GROUP_ID]:topic:[TOPIC_ID] 发送语音: 你的语音内容
    

使用方法

1. 直接在会话中使用此功能:

"向 {群组会话键} 发送语音: {语音内容}"

例如: "向 agent:main:telegram:group:[GROUP_ID]:topic:[TOPIC_ID] 发送语音: 大家好,我是[ASSISTANT_NAME],[NICKNAME]的AI助理。很高兴在[MOLTBOT_COMMUNITY]社区与大家见面,祝大家交流愉快!"

2. 通过 sessions_spawn 调用:

await sessions_spawn({
  task: "向 agent:main:telegram:group:[GROUP_ID]:topic:[TOPIC_ID] 发送语音: 这是一条测试消息",
  agentId: "telegram-voice-group"
})

3. 直接调用函数(在JS环境中):

const { sendVoiceToTelegramGroup } = require('./index.js');
await sendVoiceToTelegramGroup({
  text: "语音内容",
  groupId: "agent:main:telegram:group:[GROUP_ID]:topic:[TOPIC_ID]",
  voice: "zh-CN-XiaoxiaoNeural",
  rate: "+5%"
});

4. 向特定话题发送语音消息:

可通过 threadId 参数向特定话题发送语音消息:

const { message } = require('@openclaw/core');

await message({
  action: 'send',
  channel: 'telegram',
  to: '[GROUP_ID]',
  message: '语音消息内容',
  asVoice: true,
  media: '语音文件路径',
  threadId: [TOPIC_ID]  // 指定话题ID
});

5. 使用函数发送到指定话题:

const { sendVoiceToTelegramGroup } = require('./index.js');
await sendVoiceToTelegramGroup({
  text: "语音内容",
  groupId: "agent:main:telegram:group:[GROUP_ID]:topic:[TOPIC_ID]",
  voice: "zh-CN-XiaoxiaoNeural",
  rate: "+5%",
  threadId: [TOPIC_ID]  // 可选:指定话题ID
});

实现逻辑

当检测到用户请求向群组发送语音消息时,系统将自动执行以下步骤:

  1. 使用 edge-tts 生成语音文件

    edge-tts --voice zh-CN-XiaoxiaoNeural --rate=+5% --text "语音内容" --write-media /tmp/voice_msg.mp3
    
  2. 使用 ffmpeg 转换为 Telegram 兼容格式

    ffmpeg -y -i /tmp/voice_msg.mp3 -c:a libopus -b:a 48k -ac 1 -ar 48000 -application voip /tmp/voice_msg.ogg
    
  3. 使用 message 工具发送语音文件到指定群组

    message({action: 'send', channel: 'telegram', to: '[GROUP_ID]', message: '', asVoice: true, media: '/tmp/voice_msg.ogg', threadId: [TOPIC_ID]})
    

参数

  • 语音内容: 要转换为语音的文本
  • 群组会话键: 目标群组的完整会话键

技术规范

  • 生成 MP3 格式临时音频
  • 使用 FFmpeg 转换为 Telegram 兼容的 OGG Opus 格式
  • 音频参数:libopus编码,48k比特率,单声道,48kHz采样率,VOIP应用类型
  • 使用 asVoice: true 参数确保以语音气泡形式发送,而非文件
  • 自动清理临时文件
  • 文本格式清洗:自动移除 Markdown 标记、URL 链接和特殊符号,避免朗读出标记符号

文本格式清洗

为避免朗读出标记符号,技能会自动清洗文本内容:

需移除示例
Markdown 标记**加粗**`代码`# 标题
URL 链接https://example.com
特殊符号---***>>>

话题功能详解

完全替代 Discord 的能力

  • 话题独立上下文:每个 Telegram 话题都有独立的会话上下文,格式为 agent:main:telegram:group:{groupId}:topic:{threadId}
  • 会话隔离:不同话题间的对话历史和上下文完全隔离,互不干扰
  • 模型独立设置:可以在不同的话题中设置不同的 AI 模型
  • 上下文独立:每个话题维护自己的对话历史,就像 Discord 的不同频道一样

在不同话题中设置不同模型

  • 通过 OpenClaw 的会话管理功能,可以为每个话题(agent:main:telegram:group:{groupId}:topic:{threadId})单独配置 AI 模型
  • 每个话题的上下文完全独立,不会相互影响
  • 支持多话题并行运行,每个话题可以有不同的功能和配置

注意事项

  • 机器人必须已在目标群组中
  • 需要相应的消息发送权限
  • 语音内容应适合群组环境
  • 清洗后的文本将用于语音生成,确保朗读效果
  • 每个 Telegram 话题都有独立的会话上下文,格式为 agent:main:telegram:group:{groupId}:topic:{threadId}
  • 不同话题间的对话历史和上下文完全隔离,互不干扰,这使得 Telegram 群组话题功能可以有效替代 Discord 频道的组织功能
README.md

🤖 Telegram Voice Group 技能 for OpenClaw

📢 向指定 Telegram 群组和话题发送语音气泡消息的 OpenClaw 技能,支持上下文隔离和多模型配置。

📋 概述

这个技能允许 OpenClaw 助理向 Telegram 群组和话题发送语音消息,实现类似 Discord 服务器的多频道功能。通过 Telegram 话题功能,您可以创建多个独立的讨论区域,每个区域都有独立的上下文和可配置的 AI 模型。

✨ 主要功能

  • 📢 语音气泡发送:向 Telegram 群组和话题发送真正的语音气泡消息(非音频文件)
  • 🗂️ 话题上下文隔离:每个话题都有独立的会话上下文,互不干扰
  • 🧠 多模型配置:可在不同话题中设置不同的 AI 模型
  • 🔄 Discord 替代方案:利用 Telegram 话题功能实现类似 Discord 频道的组织结构
  • 🧹 自动文本清洗:自动移除 Markdown 标记、URL 和特殊符号,确保朗读效果

🚀 部署到 Telegram 群组完整教程

1. 🆕 创建 Telegram 群组

  • 打开 Telegram 应用
  • 点击右上角的 "+" 按钮
  • 选择 "新建群组" 或 "New Group"
  • 添加成员并设置群组名称和头像

2. 🤖 邀请 OpenClaw Bot 到群组

  • 在群组中点击群组名称进入群组信息页面
  • 点击 "添加成员" 或 "Add Member"
  • 搜索并选择你的 OpenClaw Bot(例如 @your_openclaw_bot)
  • 点击 "添加" 或 "Add"

3. ⚡ 赋予 OpenClaw Bot 群组管理权限

  • 在群组信息页面,点击 OpenClaw Bot 的用户名
  • 选择 "提升为管理员" 或 "Promote to Admin"
  • 授予以下权限:
    • 删除消息 (Delete Messages)
    • 编辑群组信息 (Edit Group Info)
    • 发送消息 (Send Messages)
    • 发送媒体 (Send Media)
    • 限制成员 (Restrict Members)
    • 封禁成员 (Ban Members)
    • 添加管理员 (Add Admins) - 可选,根据需要

4. 🔢 获取群组的链接和 ID

  • 点击群组头像进入群组信息页面
  • 点击 "群组类型" 或 "Group Type" 下方的 "群组链接" 或 "Group Link"
  • 复制群组链接(例如 https://t.me/your_group_name)
  • 群组 ID 通常是链接后面的部分,或者在某些客户端可以直接看到数字 ID

5. 🗂️ 创建话题并获取话题序号

  • 在群组中,点击底部的 "+" 按钮
  • 选择 "新建话题" 或 "Create Topic"(如果群组启用了话题功能)
  • 设置话题名称
  • 点击话题头像进入话题详情
  • 查看邀请链接,链接末尾的数字即为话题序号(例如 https://t.me/your_group_name/123 中的 123)

6. ⚙️ 在 OpenClaw 中配置群组和话题

  • 将群组链接和 ID 发送给 OpenClaw Bot
  • 将话题序号发送给 OpenClaw Bot
  • 使用如下命令格式发送语音消息:
    向 agent:main:telegram:group:[GROUP_ID]:topic:[TOPIC_ID] 发送语音: 你的语音内容
    

🗂️ 话题功能详解

🔄 完全替代 Discord 的能力

  • 🗂️ 话题独立上下文:每个 Telegram 话题都有独立的会话上下文,格式为 agent:main:telegram:group:{groupId}:topic:{threadId}
  • 🔒 会话隔离:不同话题间的对话历史和上下文完全隔离,互不干扰
  • 🧠 模型独立设置:可以在不同的话题中设置不同的 AI 模型
  • 📋 上下文独立:每个话题维护自己的对话历史,就像 Discord 的不同频道一样

🧠 在不同话题中设置不同模型

  • 通过 OpenClaw 的会话管理功能,可以为每个话题(agent:main:telegram:group:{groupId}:topic:{threadId})单独配置 AI 模型
  • 每个话题的上下文完全独立,不会相互影响
  • 支持多话题并行运行,每个话题可以有不同的功能和配置

📦 安装

openclaw skills install telegram-voice-group

🔧 依赖

  • edge-tts - 用于生成语音
  • ffmpeg - 用于格式转换

🛠️ 使用方法

1. 直接在会话中使用此功能:

"向 {群组会话键} 发送语音: {语音内容}"

例如: "向 agent:main:telegram:group:[GROUP_ID]:topic:[TOPIC_ID] 发送语音: 大家好,我是[ASSISTANT_NAME],[NICKNAME]的AI助理。很高兴在[MOLTBOT_COMMUNITY]社区与大家见面,祝大家交流愉快!"

2. 通过 sessions_spawn 调用:

await sessions_spawn({
  task: "向 agent:main:telegram:group:[GROUP_ID]:topic:[TOPIC_ID] 发送语音: 这是一条测试消息",
  agentId: "telegram-voice-group"
})

3. 直接调用函数(在JS环境中):

const { sendVoiceToTelegramGroup } = require('./index.js');
await sendVoiceToTelegramGroup({
  text: "语音内容",
  groupId: "agent:main:telegram:group:[GROUP_ID]:topic:[TOPIC_ID]",
  voice: "zh-CN-XiaoxiaoNeural",
  rate: "+5%"
});

⚙️ 技术规范

  • 生成 MP3 格式临时音频
  • 使用 FFmpeg 转换为 Telegram 兼容的 OGG Opus 格式
  • 音频参数:libopus编码,48k比特率,单声道,48kHz采样率,VOIP应用类型
  • 使用 asVoice: true 参数确保以语音气泡形式发送,而非文件
  • 自动清理临时文件
  • 文本格式清洗:自动移除 Markdown 标记、URL 链接和特殊符号,避免朗读出标记符号

📄 许可证

MIT License

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install telegram-voice-group?

Run openclaw add @sanwecn/telegram-voice-group in your terminal. This installs telegram-voice-group into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/sanwecn/telegram-voice-group. Review commits and README documentation before installing.