pdf-to-speech

SKILL前端设计
前端设计 未标注权限 许可证不明确
安装这个技能

将 PDF / DOCX / TXT 文档按章节转换为语音音频文件,使用微软 Edge TTS 在线语音合成(免费、无需 API Key)。适用于以下场景:(1) 用户要求"把文档转成语音""把PDF变成有声书""做成音频",(2) 用户想"听书""开车时听",(3) 用户提供 PDF/DOCX/TXT 文件并要求输出 MP3 音频。支持自动检测章节标题、分章输出、多种语音(女声/男声)、语速/音量/音调调节。

一句话选型结论

按资料字段整理

pdf-to-speech是前端设计类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类前端设计 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_cac68f26/pdf-to-speech
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

前端设计
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_cac68f26仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791625047
正文体量6.0 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
出页面与组件

按描述生成页面结构和组件草稿。

调整样式与布局

改间距、配色与响应式布局。

生成设计说明

把设计稿整理成开发能接的说明。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在前端设计场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
pdf-to-speech当前 未标注权限 未标注 未标注 未标注 有
前端设计 只读 GitHub 仓库 882.3 万 Codex、Claude、Cursor 有
Vercel 组合模式 联网访问 GitHub 仓库 385.9 万 Codex、Claude、Cursor 有
Vercel React native skills 前端 只读 GitHub 仓库 246.9 万 Codex、Claude、Cursor 有
adapt 搜索 浏览器控制 GitHub 仓库 202.7 万 Codex、Claude、Cursor 有
使用我的浏览器 浏览器控制 GitHub 仓库 184.8 万 Codex、Claude、Cursor 有

SKILL.md 全文

6.0 KB
模型实际读到的说明书原文,来自技能仓库

PDF/DOCX/TXT 转语音

核心工作流

将文档转为章节语音音频的完整流程:提取文本 → 检测章节 → 合成语音 → 输出MP3

# 一句话调用(自动提取+分章+合成+输出)
import asyncio
from scripts.pdf_to_speech import process_book

result = asyncio.run(process_book(
    input_path="精益医院.pdf",
    output_dir="./audio",                # 音频输出目录
    voice="zh-CN-XiaoxiaoNeural",        # 女声(推荐听书场景)
    rate="0%",                           # 语速调节
    per_chapter=True,                    # 按章节分文件输出
))

环境要求

pip install edge-tts pypdf2 python-docx pdfplumber

详细步骤

第一步:提取文本

from scripts.pdf_to_speech import extract_text

# 自动识别文件类型(.pdf / .docx / .txt)
text = extract_text("精益医院.pdf")
  • PDF 优先使用 pdfplumber(提取质量更好),回退到 PyPDF2
  • DOCX 使用 python-docx 提取
  • 长文本会自动分段合成,无需手动分割

第二步:检测章节

from scripts.pdf_to_speech import detect_chapters, split_into_chapters

# 自动检测章节标题(支持中英文多种格式)
chapters = detect_chapters(text)

# 按章节切分内容
chapter_contents = split_into_chapters(text, chapters)

支持的章节标题格式:
- 第一章 引言、第1章 概述、第1节 内容
- Chapter 1: xxx、Part 1. xxx
- 1.、1、、1) 等行列标题

注意: 某些文档的章节格式可能不规范(如标题分两行、编号缺失等)。此时可手动传入自定义正则:

# 自定义章节检测模式
import re
custom_patterns = [
    r"第[一二三四五六七八九十百零]+章",  # 仅匹配"第X章"格式
]
chapters = detect_chapters(text, patterns=custom_patterns)

第三步:合成语音

from scripts.pdf_to_speech import synth_text_to_speech

# 单段文本合成
result = await synth_text_to_speech(
    text="要朗读的文本内容",
    output_path="chapter1.mp3",
    voice="zh-CN-XiaoxiaoNeural",  # 女声
    rate="0%",                      # 语速(+10%加快,-10%减慢)
    volume="0%",                    # 音量
    pitch="0Hz",                    # 音调
    chunk_size=2500                 # 每段最大字符数
)

自动分段机制: 超长文本(>2500字符)会自动按段落切分为多个合成段,合成完成后二进制拼接为单一 MP3 文件(无需 ffmpeg)。

第四步:完整处理(一键全流程)

import asyncio
from scripts.pdf_to_speech import process_book

async def main():
    result = await process_book(
        input_path="精益医院.pdf",
        output_dir="./audio",
        voice="zh-CN-XiaoxiaoNeural",   # 女声
        rate="0%",
        per_chapter=True,               # 分章输出
        chunk_size=2500,
        naming="auto"                   # 自动从章节标题命名
    )

    # result = {"chapters": [(title, mp3_path), ...], "total_size": int}
    for title, mp3 in result["chapters"]:
        print(f"  ✓ {title} -> {mp3}")

asyncio.run(main())

语音选择

参见 references/voices.md 获取完整语音列表。

推荐配置:
- 听书/小说: zh-CN-XiaoxiaoNeural(女声温柔自然,首选)
- 汇报材料/公文: zh-CN-YunxiNeural(男声沉稳专业)
- 新闻/公告: zh-CN-YunyangNeural(男声浑厚有力)
- 教学/培训: zh-CN-XiaoyiNeural(女声热情清晰)

CLI 命令行用法

也可直接在终端使用脚本,适合不需要 Python 代码的场景:

# 基本用法(默认女声)
python pdf_to_speech.py 精益医院.pdf --output-dir ./audio

# 指定男声 + 减慢语速
python pdf_to_speech.py 报告.docx -v zh-CN-YunxiNeural -r -10% -o ./audio

# 整篇合成一个文件(不分章)
python pdf_to_speech.py 文章.txt --no-chapter -o ./audio

实际案例:《精益医院》全书12章合成

以下是处理 1.4MB PDF/DOCX、165,382 字符、12章全书时的参数:

result = asyncio.run(process_book(
    input_path="精益医院_世界最佳医院管理实践_GLMOCR版.docx",
    output_dir="./ebook_output/audio",
    voice="zh-CN-XiaoxiaoNeural",    # 女声
    chunk_size=2500,                 # 每段2500字符
))
# 输出:12章 MP3,总计约 172MB

已知问题与处理建议

问题 建议
章节标题格式不规范(分两行/无编号) 手动传入 chapter_patterns 自定义正则匹配
合成超时(沙箱600s限制) 使用子进程运行脚本,或用 python pdf_to_speech.py CLI 模式
PDF 扫描版(图片格式) 需先使用 OCR 工具提取文本(如 GLM-OCR),本技能不包含 OCR
文本中包含特殊字符影响合成 脚本已自动过滤 \\/:*?"<>| 等非法文件名字符
文件过大超长 按章节分文件合成,每章节自动分段2500字符

完整流程示意图

输入文件(.pdf/.docx/.txt)
    │
    ▼
提取文本(自动识别格式)
    │
    ▼
检测章节标题(正则匹配中英文格式)
    │
    ▼
逐章合成(长文本自动分段→Edge TTS→二进制拼接)
    │
    ▼
输出 MP3 文件(每章一个独立文件)

资源说明

scripts/

  • pdf_to_speech.py — 核心脚本,包含全部功能(文本提取、章节检测、语音合成、CLI入口)

references/

  • voices.md — Edge TTS 语音列表及参数说明

常见问题

5 问
答案由本站依据条目字段整理
pdf-to-speech怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_cac68f26/pdf-to-speech。安装方式为未标注。装完刷新技能列表或重开客户端。

pdf-to-speech支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

pdf-to-speech权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

pdf-to-speech收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

pdf-to-speech用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。