sanwe

Telegram Voice Group

AI 智能体v0.1.5
作者:sanwe更新于 2026-05-18共 6 个版本 · 最新版本发布于 2026-02-02telegram-voice-group@clawhub_sanwecn/telegram-voice-group
任务自动化#Telegram#消息

据 AlphaMoat 统计,截至 2026-10,Telegram Voice Group 累计下载 5,645 次、获 0 个星标,按累计下载量在本次参与排名的 5,109 个 AI 技能中排名第 2,459 位,在「AI 智能体」分类(987 个)中排名第 470 位。

列表默认按累计下载量排序,也可按星标排序;详情页排名按累计下载量计算。

累计下载
5,645
星标
-
全站下载量排名
#2,459
全站前 49% · 「AI 智能体」前 48%
平台累计下载星标评论
ClawHub ↗4,212--
SkillHub ↗5,645-—

各平台的计数口径不同,统计时间不一致。

这个技能是做什么的

向指定 Telegram 群组发送语音消息

月度数据趋势

累计下载5,645
3,4134,6125,8102026-05 · 累计下载 3,5782026-06 · 累计下载 3,6992026-07 · 累计下载 3,9262026-08 · 累计下载 4,0472026-09 · 累计下载 4,3262026-10 · 累计下载 5,64526-0526-0926-10
星标-
0112026-05 · 星标 -2026-06 · 星标 -2026-07 · 星标 -2026-08 · 星标 -2026-09 · 星标 -2026-10 · 星标 -26-0526-0926-10

2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。

月份累计下载环比星标
2026-105,645—-
2026-094,326—-
2026-084,047+3.1%-
2026-073,926+6.1%-
2026-063,699+3.4%-
2026-053,578—-

SKILL.md 原文

以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。

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

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

使用 Telegram 群组话题功能实现隔离上下文替代 Discord,并可以指定 Telegram 群组发送语音消息。
展开全部(共 197 行)
## 功能

- 使用 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 调用:

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

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

```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 参数向特定话题发送语音消息:

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

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

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

```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%",
  threadId: [TOPIC_ID]  // 可选:指定话题ID
});
```

## 实现逻辑

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

1. 使用 edge-tts 生成语音文件
   ```bash
   edge-tts --voice zh-CN-XiaoxiaoNeural --rate=+5% --text "语音内容" --write-media /tmp/voice_msg.mp3
   ```

2. 使用 ffmpeg 转换为 Telegram 兼容格式
   ```bash
   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 工具发送语音文件到指定群组
   ```bash
   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 频道的组织功能

「AI 智能体」分类下的热门技能

sanwe 的其他技能

数据月份:2026-10 · 下载/星标数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。