360 Secure SkillHub
360 安全技能中心

Multi Edge Tts Cn

基于微软Edge TTS引擎,1-2秒快速生成语音,支持多种官方及自定义音色,适配飞书(OGG/Opus)、企业微信(AMR)等格式。典型场景为生成语音消息用于企业办公平台发送,支持CLI和Python API调用,输入中文文本输出指定格式音频,需注意文件路径在白名单目录,企业微信语音限AMR格式且≤2MB。

itian932
itian932
热度 52.12
最近更新 2026-05-11 17:46:21
分类:创作依赖:代码执行 / 第三方 API / 读写文件应用场景:未知

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add multi-edge-tts-cn
Metadata
name
multi-edge-tts-cn
description
Edge-TTS 在线语音合成 skill。基于微软 Edge TTS 引擎,生成速度快(1-2秒),支持多种音色和输出格式。同时支持飞书(OGG/Opus)和企业微信(AMR)。默认音色 xiaoxiao_lively。需联网。

Multi Edge-TTS 语音合成 Skill

概述

  • 引擎: edge-tts 7.2.8
  • 路径: ~/.openclaw/workspace/skills/multi-edge-tts-cn/
  • 入口脚本: scripts/engine.py
  • 音色配置: config/voices.json
  • 速度: 1-2 秒生成
  • 多平台支持: 飞书(OGG/Opus)、企业微信(AMR)

官方音色

来自 Edge-TTS 引擎原始音色,使用默认参数。

zh-CN(普通话)

音色 性别 音色 ID
zh-CN-XiaoxiaoNeural 女 xiaoxiao
zh-CN-XiaoyiNeural 女 xiaoyi
zh-CN-YunjianNeural 男 yunjian
zh-CN-YunxiNeural 男 yunxi
zh-CN-YunxiaNeural 男 yunxia
zh-CN-YunyangNeural 男 yunyang
zh-CN-liaoning-XiaobeiNeural 女 liaoning_xiaobei
zh-CN-shaanxi-XiaoniNeural 女 shaanxi_xiaoni

zh-HK(粤语)

音色 性别 音色 ID
zh-HK-HiuGaaiNeural 女 hk_hiuGaai
zh-HK-HiuMaanNeural 女 hk_hiuMaan
zh-HK-WanLungNeural 男 hk_wanLung

zh-TW(台湾)

音色 性别 音色 ID
zh-TW-HsiaoChenNeural 女 tw_hsiaoChen
zh-TW-HsiaoYuNeural 女 tw_hsiaoYu
zh-TW-YunJheNeural 男 tw_yunJhe

自定义音色

基于官方音色调试过 rate/pitch/volume 参数的音色。

音色 ID 基础音色 参数 描述
xiaoxiao_lively(默认) xiaoxiao +8%速 +10Hz +5%音量 女声 活泼偏高音
xiaoxiao_gentle xiaoxiao +5%速 +4Hz 女声 甜美温柔
xiaoxiao_fast xiaoxiao +15%速 +2Hz +10%音量 女声 快速明亮
xiaoxiao_slow xiaoxiao +5%速 -2Hz 女声 温柔慢速
xiaoyi_lively xiaoyi +15%速 +5Hz +10%音量 女声 卡通元气
yunxi_sunny yunxi +15%速 +3Hz +5%音量 男声 阳光活泼

调用方式

CLI

# 默认音色(xiaoxiao_lively),默认 .ogg 输出(飞书气泡语音格式)
python3 scripts/engine.py --text "你好呀"

# 指定音色
python3 scripts/engine.py --text "你好呀" --voice xiaoyi

# 企业微信语音消息(AMR 格式)
python3 scripts/engine.py --text "你好呀" --output /tmp/voice.amr

# 指定其他输出格式
python3 scripts/engine.py --text "你好呀" --output /tmp/goodnight.wav

# 列出全部音色
python3 scripts/engine.py --list-voices

Python API

import sys, os
sys.path.insert(0, os.path.expanduser("~/.openclaw/workspace/skills/multi-edge-tts-cn/scripts"))
from engine import generate

# 1. 生成语音(飞书用 OGG 格式)
code, path = generate("你好呀", voice_id="xiaoxiao_lively", output_path="/tmp/voice.ogg")

# 2. 生成语音(企业微信用 AMR 格式)
code, path = generate("你好呀", voice_id="xiaoxiao_lively", output_path="/tmp/voice.amr")

发送语音消息

企业微信发送(推荐方式)

在企业微信通道中,使用 MEDIA: 指令发送语音消息:

MEDIA: /tmp/openclaw/voice.amr

注意事项:

  • 语音消息仅支持 AMR 格式(.amr)
  • 文件大小需 ≤ 2 MB
  • 使用绝对路径
  • 路径必须在白名单目录内:/tmp/openclaw、~/.openclaw/workspace 等

完整示例:

# 1. 生成语音
python3 ~/workspace/skills/multi-edge-tts-cn/scripts/engine.py \
  --text "你好呀,我是小梦" \
  --output /tmp/openclaw/voice.amr

# 2. 在回复中使用 MEDIA: 指令发送
# MEDIA: /tmp/openclaw/voice.amr

飞书发送

在飞书通道中,使用 message 工具发送:

# 使用 message 工具发送
message.send(filePath="/tmp/openclaw/voice.ogg")

注意事项:

  • 飞书推荐 OGG/Opus 格式
  • 文件大小需 ≤ 10 MB

💡 核心提示: 在 OpenClaw 环境中,生成语音文件后,直接使用 MEDIA: 指令(企业微信)或 message.send(filePath=...)(飞书)即可实现语音消息推送。不需要上传到云空间再发送,这是最高效的用法!

输出格式

根据 --output 的扩展名自动选择编码器:

扩展名 编码器 采样率 声道 备注
.ogg / .opus libopus 48kHz mono 飞书推荐,voip 优化,64kbps
.amr libopencore_amrnb 8kHz mono 企业微信推荐,12.2kbps
.mp3 libmp3lame 48kHz mono 64kbps
.wav pcm_s16le 48kHz mono 无损 PCM
.flac flac 48kHz mono 无损压缩
.aac aac 48kHz mono 64kbps
未知 自动回退 .ogg 48kHz mono 打印警告

输出路径与存放规范

⚠️ 重要:OpenClaw 媒体发送安全限制

文件发送仅允许读取以下"白名单"目录下的文件:

  1. /tmp/openclaw (推荐默认路径)
  2. ~/.openclaw/media
  3. ~/.openclaw/workspace
  4. ~/.openclaw/sandboxes

请使用绝对路径发送文件,无需上传云空间。

默认路径:/tmp/openclaw/edge_{音色ID}_{时间戳}.ogg

飞书发送推荐格式:OGG/Opus 企业微信发送推荐格式:AMR(文件大小需 ≤ 2MB)

文本规范

  • ✅ 使用中文标点(,。!?)
  • ⚠️ 标点决定停顿:句号(。)= 长停顿,逗号(,)= 短停顿
  • ✅ 可包含语气词

文件大小与格式限制

类型 大小上限 格式要求 备注
图片 10 MB 常见图片格式均可 openclaw 默认会对图片进行压缩处理
视频 10 MB 常见视频格式均可
语音 2 MB 仅支持 AMR 格式(.amr) 企业微信语音消息
文件 20 MB 不限

⚠️ 重要提示:

  • 语音格式: 语音消息仅支持 AMR 格式(.amr)。非 AMR 格式的音频文件将以文件消息的形式发送。
  • 自动降级: 语音文件超过 2 MB 时,系统会自动将其转为文件消息发送。
  • 硬性上限: 文件大小超过 20 MB 时无法发送。

技术细节

处理流程

加载音色配置 → 申请速率许可 → Edge-TTS 生成 MP3 → ffmpeg 转目标格式 → 清理临时文件 → 返回路径

引擎特性

  • 速率控制:每秒最多 3 个请求(防 429 限速)
  • 429 重试:指数退避 1s → 2s → 4s,最多 3 次
  • 临时文件:MP3 中间文件生成后自动清理
  • 整段合成:不分段,直接处理完整文本
  • 格式自适应:根据输出扩展名自动选择编码器和参数

依赖

  • Python 3.8+
  • edge-tts 7.2.8
  • ffmpeg