文字转语音/Text to Audio
v1.0.0使用 edge-tts 将中文或英文文本转为自然语音 MP3。此 技能 应在以下场景触发: 将图片或文本转成语音、朗读课文或作文、中文文字转语音、英文文字转语音、 TTS 文本朗读、生成音频 MP3、给文章配音、语音合成、 朗读故事、课文朗读、作文朗读、文字转 MP3、英文朗读。 支持晓晓等多款中文 Neural 语音,支持 Jenny 等英文 Neural 语音,支持语速调整和语音选择。
运行时依赖
安装命令
点击复制技能文档
文字转语音(免费)
将中文或英文文本转为自然语音 MP3 文件,使用微软 Edge TTS 在线服务,声音自然、文件小巧、跨设备通用。
前置条件 Python 3.8+ 已安装 edge-tts 包已安装(pip 安装 edge-tts) 网络连接可用(需访问微软 TTS 云服务) 环境初始化(首次使用时执行)
首次使用此 技能 时,运行环境检测脚本确认依赖是否就绪:
python scripts/检查_env.py
该脚本会自动检测并安装缺失的依赖。如果网络不通,提示用户开启 VPN 后重试。
工作流程 步骤 1:语言检测
保存文本后,必须先检测文本语言,以决定展示中文还是英文语音选项。
检测方法:如果文本中英文字母(a-zA-Z)占比超过 60%,判定为英文;否则判定为中文。
步骤 2:让用户选择语音和语速
在生成 MP3 之前,必须先让用户选择语音和语速。 使用 ask_followup_question 工具向用户展示选项,不要自行假设。
语音选择(根据语言自动切换)
如果检测为中文,展示中文语音选项:
问题:请选择朗读语音 选项:
- 晓晓(温暖女声,适合课文/故事朗读)
- 小艺(活泼女声,适合儿童故事)
- 云希(阳光男声,适合叙事/科普)
- 云健(激情男声,适合朗诵)
- 云扬(专业男声,适合新闻/说明文)
如果检测为英文,展示英文语音选项:
问题:请选择朗读语音 选项:
- Jenny(温暖女声,适合朗读/故事,推荐)
- Aria(自信女声,适合新闻/叙述)
- Emma(活泼女声,适合对话/讲解)
- Guy(激情男声,适合朗诵/叙事)
- Chri停止her(权威男声,适合新闻/分析)
- Michelle(亲切女声,适合日常叙述)
语速选择(输入式)
语速使用 三选一 + 数字输入 形式,让用户填写具体百分比:
问题:请选择朗读语速(在方括号中填写数字,0 为正常语速,负数更慢,正数更快) 选项:
- A 略慢 [ ]%(推荐填 10,即 -10%)
- B 正常语速
- C 略快 [ ]%(推荐填 10,即 +10%)
用户选择 A 或 C 时,解析其填写的数字作为 rate 值:
选 A + 填 10 → --rate -10 选 B → --rate +0 选 C + 填 10 → --rate +10
如果用户没有填写数字,使用推荐默认值(A 为 -10,C 为 +10)。
如果用户在对话中已经明确指定了语音或语速(如"用晓晓的声音"、"读慢一点"),则直接使用用户的选择,无需再次询问。
流程 A:图片转语音(最常见) 识别图片文字 — 读取用户上传的图片,识别其中的文字内容 保存文本 — 将识别的文字保存为 .txt 文件(UTF-8 编码) 语言检测 — 判断文本语言 让用户选择语音和语速 — 根据语言展示对应语音选项 + 语速选项 生成 MP3 — 根据用户选择调用 scripts/tts_生成.py 生成 MP3 文件 流程 B:文本转语音(用户直接提供文本) 保存文本 — 将用户提供的文字保存为 .txt 文件 语言检测 — 判断文本语言 让用户选择语音和语速 — 根据语言展示对应语音选项 + 语速选项 生成 MP3 — 根据用户选择调用生成脚本 流程 C:批量转换 语言检测 — 判断文本语言 让用户选择默认语音和语速 — 根据语言展示对应语音选项 + 语速选项 生成批量配置 — 创建 JSON 配置文件 执行批量生成 — 使用 --batch 参数 核心脚本用法 单文件生成 python scripts/tts_生成.py <文本文件> [选项]
参数 说明 默认值 --输出, -o 输出 MP3 文件路径 <输入名>_<语音别名>.mp3 --voice, -v 语音别名或完整 ID xiaoxiao(中文)/ jenny(英文) --rate, -r 语速调整 +0% --batch, -b 批量模式,传入 JSON 配置文件 — 常用示例 # 中文默认(晓晓女声,正常语速) python scripts/tts_生成.py story.txt
# 中文活泼女声 + 略慢语速(适合小学课文朗读) python scripts/tts_生成.py story.txt --voice xiaoyi --rate -10
# 英文默认(Jenny女声,正常语速) python scripts/tts_生成.py english.txt --voice jenny
# 英文男声 + 略慢语速 python scripts/tts_生成.py english.txt --voice guy --rate -10
# 指定输出文件名 python scripts/tts_生成.py story.txt -o my_story.mp3
# 批量模式 python scripts/tts_生成.py --batch batch_config.json
批量配置文件格式 { "defaults": { "voice": "xiaoxiao", "rate": "-10%" }, "files": [ { "输入": "story.txt", "输出": "story.mp3" }, { "输入": "essay.txt", "输出": "essay.mp3", "voice": "xiaoyi" } ] }
语音别名速查 中文语音 用户选择 别名(脚本参数) 性别 气质 推荐场景 晓晓 xiaoxiao 女 温暖 课文/故事朗读(默认) 小艺 xiaoyi 女 活泼 儿童故事 云希 yunxi 男 阳光 叙事/科普 云健 yunjian 男 激情 朗诵 云扬 yunyang 男 专业 新闻/说明文 英文语音 用户选择 别名(脚本参数) 性别 气质 推荐场景 Jenny jenny 女 温暖 朗读/故事(默认英文) Aria aria 女 自信 新闻/叙述 Emma emma 女 活泼 对话/讲解 Guy guy 男 激情 朗诵/叙事 Chri停止her chri停止her 男 权威 新闻/分析 Michelle michelle 女 亲切 日常叙述
用户选择"Jenny" → 脚本参数 --voice jenny
语速选项速查 用户选择 脚本参数 说明 A 略慢 10 --rate -10 适合课文朗读(推荐) A 略慢 20 --rate -20 适合跟读/低年级 B 正常语速 --rate +0 默认语速 C 略快 10 --rate +10 快速浏览
用户选"A 略慢"且填 15 → 脚本参数 --rate -15
注意事项 edge-tts 需要网络连接,如生成失败先检查网络 输出为 MP3 格式,任何设备均可播放 文件大小约 0.5-1MB/分钟音频,远小于 WAV 格式 无需 API Key,完全免费 中文语音读英文会有口音,英文语音读中文效果也差,请根据文本语言选择对应语音组