# telegram-voice-group
Telegram 群组语音消息发送 (telegram-voice-group) 🔊 使用 Telegram 群组话题功能实现隔离上下文替代 Discord,并可以指定 Telegram 群组发送语音消息。 功能 使用 SkillBoss API Hub TTS 生成高质量中文语音(通过 /v1/pilot 自动路由最优 TTS 模型) 转换为 Telegram 语音气泡兼容格式 发送到指定的群组会话 话题独立上下文:每个 Telegram 话题都有独立的会话上下文,格式为 agent:main:telegram:group:{groupId}:topic:{threadId} 会话隔离:不同话题间的对话历史和上下文完全隔离,互不干扰,这使得 Telegram 群组话题功能可以有效替代 Discord 频道的组织功能 支持向特定话题发送语音消息 依赖 SKILLBOSS_API_KEY - SkillBoss API Hub 认证密钥,用于调用 TTS 语音合成服务 ffmpeg - 用于音频格式转换 部署到 Telegram 群组完整教程
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
}); 实现逻辑 当检测到用户请求向群组发送语音消息时,系统将自动执行以下步骤: 调用 SkillBoss API Hub TTS 接口生成语音文件 const ttsResult = await fetch('https://api.heybossai.com/v1/pilot', {
method: 'POST',
headers: { 'Authorization': `Bearer ${SKILLBOSS_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ type: 'tts', inputs: { text: cleanedText, voice: 'zh-CN-XiaoxiaoNeural' }, prefer: 'balanced' })
});
const audioUrl = (await ttsResult.json()).data.result.audio_url;
使用 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
使用 message 工具发送语音文件到指定群组
message({action: 'send', channel: 'telegram', to: '[GROUP_ID]', message: '', asVoice: true, media: '/tmp/voice_msg.ogg', threadId: [TOPIC_ID]})
参数
语音内容: 要转换为语音的文本
群组会话键: 目标群组的完整会话键
技术规范
调用 SkillBoss API Hub /v1/pilot(type: tts)生成 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 频道的组织功能
Join 80,000+ one-person companies automating with AI