返回顶部
a

article-tts文章转语音

拍照或文字转音频:文章照片 OCR 提取文字,或直接接收文字,生成 Microsoft Edge TTS 语音,支持中英文、自动转写、语速调节、逐句拆分。| Capture article photos (OCR) or plain text, generate natural audio via Edge TTS. Bilingual support (EN/ZH), configurable speed, voice, and sentence splitting.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 2.1.0
安全检测
已通过
155
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

article-tts

文章 TTS 技能

默认配置

参数默认值说明
langen语言:en 或 zh
skipConfirmation
false | 是否跳过文字确认步骤 | | speed | 90% | TTS 语速(--rate=-10% = 90%) | | voice | en-US-EmmaNeural(英文)/ zh-CN-XiaoxiaoNeural(中文) | TTS 声音 | | splitSentences | false | 是否生成按句拆分的音频 |

支持的语言

语言OCR 语言包TTS 声音
eneng(预装)en-US-EmmaNeural
zh
chi_sim(需安装) | zh-CN-XiaoxiaoNeural |

中文 OCR 语言包安装:

  • - Linux(WSL/Debian/Ubuntu):apt-get install tesseract-ocr-chi-sim
  • macOS:brew install tesseract-lang(自带中文)
  • Windows:下载 chi_sim.traineddata 放入 Tesseract 安装目录的 tessdata 文件夹

工作流程

输入类型

  • - 图片:OCR 提取文字(需要 lang 指定语言)
  • 纯文字:直接 TTS,无需 OCR

标准流程(默认,需确认)

图片 → OCR 提取文字 → 展示给用户确认 → 用户确认 → 生成 TTS → 发送
文字 → 直接生成 TTS → 发送

跳过确认流程 ⚠️

用户说不需要确认或直接生成时,跳过确认步骤。

⚠️ 安全提示:skipConfirmation 会跳过文字确认步骤,OCR 提取的文本(可能包含敏感信息)会直接转为音频并发送。适用于可信来源、低敏感内容。建议默认关闭(skipConfirmation: false)。

OCR 步骤

python

图片预处理


from PIL import Image, ImageOps
img = Image.open(image_path)
img = ImageOps.autocontrast(img.convert(L), cutoff=10)
w, h = img.size
img = img.resize((w4, h4), Image.LANCZOS)
img.save(/tmp/ocr_input.jpg, quality=99)

bash

英文


tesseract /tmp/ocr_input.jpg stdout -l eng --psm 4

中文

tesseract /tmp/ocrinput.jpg stdout -l chisim --psm 4

TTS 步骤

全文音频

bash
uvx edge-tts \
-t 全文文字 \
-v en-US-EmmaNeural \
--rate=-10% \
--write-media OUTPUTDIR/fullarticle.mp3

中文

uvx edge-tts \ -t 中文文字内容 \ -v zh-CN-XiaoxiaoNeural \ --rate=-10% \ --write-media OUTPUTDIR/fullarticle.mp3

按句拆分(仅 splitSentences=true)

python
import subprocess, re

def split_sentences(text, lang=en):
if lang == zh:
# 中文按句号/感叹号/问号拆分
sentences = re.split(r(?<=[。!?])\s*, text)
else:
# 英文按 .!? 拆分
sentences = re.split(r(?<=[.!?])\s+, text)
return [s.strip() for s in sentences if s.strip()]

sentences = split_sentences(text, lang=lang)
for i, sentence in enumerate(sentences, 1):
num = str(i).zfill(2)
voice = zh-CN-XiaoxiaoNeural if lang == zh else en-US-EmmaNeural
subprocess.run([
uvx, edge-tts,
-t, sentence,
-v, voice,
--rate=-10%,
--write-media, fOUTPUTDIR/sentence{num}.mp3
])

输出目录

/mnt/d/wslspace/workspace/articles/YYYY-MM-DD-article-slug/
├── original_text.md
├── full_article.mp3
└── sentence_01.mp3 ...

通过消息渠道发送

代理从运行时上下文检测活跃渠道,并相应调用 message(...)。不硬编码渠道——代理使用用户当前聊天所用的任何渠道。

python

自动检测活跃渠道(来自运行时入站元数据)


渠道推断:飞书 / Telegram / Discord / WhatsApp / Signal / iMessage / 企业微信

发送全文

message(action=send, channel={active_channel}, message=📄 全文音频, media=PATH/full_article.mp3, filename=full_article.mp3)

发送每句

for i, sentence in enumerate(sentences, 1): num = str(i).zfill(2) message(action=send, channel={active_channel}, message=f📝 {num}: {sentence}, media=fPATH/sentence_{num}.mp3, filename=fsentence_{num}.mp3)

渠道行为说明

渠道音频支持备注
飞书推荐使用 feishu-voice-send 技能发送语音消息
Telegram
✅ | 直接发送 mp3 | | Discord | ✅ | 作为附件发送 | | WhatsApp | ✅ | 直接发送 mp3 | | Signal | ⚠️ | 取决于信号强度,可能不支持 | | iMessage | ⚠️ | 通过 macOS 发送,mp3 兼容性一般 | | 企业微信 | ✅ | 同飞书 |

如果渠道不支持音频,代理将文件保存到 OUTPUT_DIR,并以文本消息形式发送文件路径。



如何发送为语音消息(而非附件)

重要说明: OpenClaw 内置的飞书媒体发送存在 bug(缺少 duration 参数),导致 .ogg 文件有时显示为附件而非语音消息。

推荐方案:使用 feishu-voice-send 技能

该技能调用飞书官方 API,正确传递 duration 参数,确保语音消息正常显示。

方式一:通过 feishu-voice-send 技能发送

bash

发送现有的 .ogg 文件


python3 /mnt/d/wslspace/workspace/skills/feishu-voice-send/scripts/send_voice.py \
/path/to/audio.ogg \
<接收者open_id>

或直接生成 TTS 并发送

python3 /mnt/d/wslspace/workspace/skills/feishu-voice-send/scripts/ttsandsend.py \ 要转换的文字 \ <接收者open_id> \ -v zh-CN-YunjianNeural \ -r -10%

方式二:手动调用(不推荐)

如果必须使用 OpenClaw 内置的 message 工具,需要:

  1. 1. 将 mp3 转换为标准 Ogg Opus 格式
  2. 发送时必须带 message 参数
  3. 注意:即使带 message 参数,仍可能因为缺少 duration 而显示为附件

bash

1. 用 edge-tts 生成 mp3


uvx edge-tts \
-t Your text here \
-v en-US-EmmaNeural \
--rate=-10% \
--write-media OUTPUT_DIR/voice.mp3

2. 用 ffmpeg 转换为标准 Ogg Opus

ffmpeg -i OUTPUT_DIR/voice.mp3 \ -c:a libopus \ -b:a 32k \ -ar 24000 \ -ac 1 \ OUTPUT_DIR/voice.ogg

3. 使用 message 工具发送(仍可能显示为附件)

message(action=send, channel=feishu, \ message=📄 语音, \ media=OUTPUT_DIR/voice.ogg)

可用的 TTS 声音

英文

en-US-EmmaNeural, en-US-BrianNeural, en-GB-LibbyNeural, ...

中文

zh-CN-XiaoxiaoNeural(女声), zh-CN-YunxiNeural(男声), zh-CN-YunyangNeural(新闻男声), ...

查看完整列表:uvx edge-tts -l | grep zh-CN

备注

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 article-tts-1776050957 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 article-tts-1776050957 技能

通过命令行安装

skillhub install article-tts-1776050957

下载

⬇ 下载 article-tts v2.1.0(免费)

文件大小: 4.44 KB | 发布时间: 2026-4-14 14:09

v2.1.0 最新 2026-4-14 14:09
更新飞书语音消息发送说明:推荐使用 feishu-voice-api skill

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部