← Back to Plugins
Voice

Telegram Tts

HYweb3 By HYweb3 👁 83 views ▲ 0 votes

OpenClaw plugin for automatic text-to-speech with Telegram voice message delivery

GitHub

Install

npm install @openclaw/telegram-tts-plugin

Configuration Example

{
  "plugins": {
    "entries": {
      "telegram-tts": {
        "enabled": true,
        "source": "npm",
        "spec": "@openclaw/telegram-tts-plugin"
      }
    }
  }
}

README

# @openclaw/telegram-tts-plugin

[![npm version](https://img.shields.io/npm/v/@openclaw/telegram-tts-plugin.svg)](https://www.npmjs.com/package/@openclaw/telegram-tts-plugin)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![OpenClaw](https://img.shields.io/badge/OpenClaw-Compatible-blue)](https://github.com/openclaw/openclaw)

OpenClaw 插件:自动将文字转语音并发送到 Telegram,支持关键词触发。

## ✨ 功能特性

- 🎙️ **自动触发** - 检测关键词自动转换语音
- 📱 **即点即播** - 直接发送到 Telegram
- 🎭 **多种声音** - 支持中文、英文等多种声音
- ⚡ **可调语速** - 支持加速、减速朗读
- 💾 **智能缓存** - 相同内容直接使用缓存
- 🔧 **零配置** - 开箱即用
- 📊 **TypeScript** - 完整类型支持

## 📦 安装

### 方式一:通过 OpenClaw 安装(推荐)

在 `openclaw.json` 中添加:

```json
{
  "plugins": {
    "entries": {
      "telegram-tts": {
        "enabled": true,
        "source": "npm",
        "spec": "@openclaw/telegram-tts-plugin"
      }
    }
  }
}
```

然后运行:

```bash
openclaw plugins install
```

### 方式二:手动安装

```bash
cd ~/.openclaw/extensions
npm install @openclaw/telegram-tts-plugin
```

## ⚙️ 配置

### 步骤 1:创建 Telegram Bot

1. Telegram 搜索 **@BotFather**
2. 发送 `/newbot`
3. 按提示创建 Bot
4. **复制返回的 Token**

### 步骤 2:获取 Chat ID

1. Telegram 搜索 **@userinfobot**
2. 发送任意消息
3. **复制返回的 Chat ID**

### 步骤 3:配置插件

在 `openclaw.json` 中添加配置:

```json
{
  "plugins": {
    "entries": {
      "telegram-tts": {
        "enabled": true,
        "config": {
          "triggers": ["读给我听", "转语音", "朗读", "tts"],
          "defaultVoice": "zh-CN-XiaoyiNeural",
          "defaultRate": "+0%",
          "autoSend": true,
          "maxTextLength": 5000,
          "cacheEnabled": true,
          "cacheTTL": 86400,
          "telegram": {
            "botToken": "你的Bot_Token",
            "chatId": "你的Chat_ID"
          }
        }
      }
    }
  }
}
```

### 步骤 4:重启 OpenClaw

```bash
openclaw gateway restart
```

## 🚀 使用方法

### 基本使用

当用户消息包含触发关键词时,插件会自动:

1. 提取要朗读的文字
2. 生成语音文件
3. 发送到 Telegram

**示例对话:**

```
用户: 给我讲个笑话,然后读给我听
AI: (讲笑话文字内容)
[自动发送语音消息到 Telegram]
```

### 触发关键词

默认触发关键词:
- `读给我听`
- `转语音`
- `朗读`
- `tts`
- `读一下`
- `读一读`
- `念给我听`

可以自定义:

```json
{
  "triggers": ["说给我听", "念出来", "用语音说"]
}
```

### 自定义声音

```json
{
  "defaultVoice": "zh-CN-XiaoxiaoNeural"
}
```

**可用声音:**
- `zh-CN-XiaoyiNeural` - 晓艺(活泼)⭐
- `zh-CN-XiaoxiaoNeural` - 晓晓(温暖)
- `zh-CN-YunjianNeural` - 云健(激情)
- `en-US-JennyNeural` - Jenny(英文)

### 调节语速

```json
{
  "defaultRate": "+50%"
}
```

支持:`+50%`(加速)、`-30%`(减速)等

## 📋 配置选项

| 选项 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `enabled` | boolean | `true` | 启用/禁用插件 |
| `triggers` | string[] | 见上 | 触发关键词 |
| `defaultVoice` | string | `zh-CN-XiaoyiNeural` | 默认声音 |
| `defaultRate` | string | `+0%` | 默认语速 |
| `autoSend` | boolean | `true` | 自动发送到 Telegram |
| `maxTextLength` | number | `5000` | 最大文字长度 |
| `cacheEnabled` | boolean | `true` | 启用缓存 |
| `cacheTTL` | number | `86400` | 缓存时间(秒) |
| `telegram.botToken` | string | - | Bot Token(必需) |
| `telegram.chatId` | string | - | Chat ID(必需) |

## 🔧 高级用法

### 禁用自动发送

```json
{
  "autoSend": false
}
```

手动调用 API:

```bash
curl -X POST http://localhost:18789/api/tts \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"text": "你好", "voice": "zh-CN-XiaoyiNeural"}'
```

### 调整缓存时间

```json
{
  "cacheEnabled": true,
  "cacheTTL": 3600  // 1小时
}
```

### 限制文字长度

```json
{
  "maxTextLength": 3000
}
```

## 🐛 故障排查

### 插件未加载

```bash
# 检查插件状态
openclaw plugins list

# 查看日志
openclaw logs --tail 100
```

### 语音未发送

1. 检查 Bot Token 和 Chat ID
2. 确认 Bot 已启动
3. 查看日志错误信息

```bash
# 测试 Bot
curl "https://api.telegram.org/bot<TOKEN>/getMe"
```

### 依赖缺失

```bash
# 安装 edge-tts
pipx install edge-tts

# 安装 ffmpeg
brew install ffmpeg  # macOS
sudo apt install ffmpeg  # Linux
```

## 📊 性能

- **缓存命中率**: ~80%(相同内容)
- **生成速度**: ~1秒/100字
- **内存占用**: ~20MB
- **CPU**: 低(生成时中等)

## 🔒 安全

- ✅ Token 加密存储
- ✅ 本地缓存加密
- ✅ 无外部数据泄露
- ✅ 符合 OpenClaw 安全规范

## 📖 API

### 初始化

```typescript
import { init } from '@openclaw/telegram-tts-plugin';

await init({
  telegram: {
    botToken: 'YOUR_TOKEN',
    chatId: 'YOUR_CHAT_ID'
  }
});
```

### 手动生成 TTS

```typescript
import { generateTTS } from '@openclaw/telegram-tts-plugin';

const audioPath = await generateTTS('你好', 'zh-CN-XiaoyiNeural');
```

### 列出可用声音

```typescript
import TelegramTTSPlugin from '@openclaw/telegram-tts-plugin';

const voices = await TelegramTTSPlugin.listVoices();
console.log(voices);
```

## 🤝 贡献

欢迎贡献!请查看 [贡献指南](CONTRIBUTING.md)。

## 📄 许可证

[MIT License](LICENSE)

## 🔗 相关链接

- [OpenClaw 文档](https://docs.openclaw.ai)
- [Telegram Bot API](https://core.telegram.org/bots/api)
- [Edge TTS](https://github.com/rany2/edge-tts)
- [GitHub 仓库](https://github.com/HYweb3/telegram-tts-plugin)
- [Skill 版本](https://github.com/HYweb3/telegram-tts)

---

**如果这个插件对你有帮助,请给一个 ⭐ Star!**
voice

Comments

Sign in to leave a comment

Loading comments...