开源!Edge TTS 音频转换工具 v2.1:批量文本转语音,支持段落拆分与多发音人

📌 写在前面

在日常工作和学习中,我们经常需要将文本内容转换为音频文件------制作有声书、生成课程音频、为视频配音等等。市面上的 TTS 工具要么收费昂贵,要么需要联网调用 API,要么功能单一不能满足批量处理的需求。

今天给大家推荐一款完全免费、本地运行、功能强大 的音频转换工具:Edge TTS 音频转换工具 v2.1

它基于微软 Edge 浏览器官方 TTS 引擎开发,支持 TXT、DOC、DOCX 格式文件的批量转换,内置多种中文发音人 (大陆普通话、香港粤语、台湾国语),还能按段落或按行拆分文本,每个段落生成独立的音频文件。

开源地址:见文末(代码已附)


🚀 主要功能

功能模块 说明
📁 文件管理 支持添加单个文件、整个文件夹,支持移除/清空
🎤 发音人选择 大陆/香港/台湾三地发音人,按性别和风格分类展示
📢 参数调节 语速(-50%~+100%)、音量(-100%~+100%)、音调(-20Hz~+20Hz)
✂️ 拆分模式 整文件模式 / 按段落拆分 / 按行拆分
💾 输出设置 自定义输出目录,自动避免文件名冲突
📋 运行日志 实时显示转换进度,支持导出日志
💾 设置保存 自动保存上次使用的参数和输出目录

🖼️ 界面预览

🔧 核心代码解析

1. 文本拆分逻辑

复制代码
def split_text_by_mode(text: str, mode: str) -> List[str]:
    """根据模式拆分文本"""
    if mode == 'single':
        return [text]
    elif mode == 'paragraph':
        # 按空行分割段落
        paragraphs = [p.strip() for p in text.split('\n\n') if p.strip()]
        return paragraphs if paragraphs else [text]
    elif mode == 'line':
        # 按行分割
        lines = [line.strip() for line in text.split('\n') if line.strip()]
        return lines if lines else [text]
    return [text]

2. 异步转换核心

复制代码
async def convert_single_file(self, file_path: str, ...):
    text_content = read_text_file(file_path)
    text_segments = split_text_by_mode(text_content, self.split_mode)
    
    for seg_idx, segment in enumerate(text_segments, 1):
        communicate = edge_tts.Communicate(
            text=segment,
            voice=self.params['voice'],
            rate=self.params['rate'],
            volume=self.params['volume'],
            pitch=self.params.get('pitch', '+0Hz')
        )
        await communicate.save(str(output_path))

3. 发音人分类加载

复制代码
# 按地区分类中文发音人
categorized_voices = {'zh-CN': [], 'zh-HK': [], 'zh-TW': []}
for voice in voices:
    locale = voice["Locale"]
    if locale.startswith("zh-CN"):
        categorized_voices['zh-CN'].append(voice)
    # ...

📦 环境依赖

bash

复制代码
pip install edge-tts PyQt5 python-docx

注意:无需安装 FFmpeg(edge-tts 不依赖 FFmpeg)


🎯 使用场景

场景 推荐配置
有声书制作 晓伊/晓柔 + 按段落拆分 + 语速 -10%
课程音频 晓晓 + 整文件模式 + 语速 0%
粤语内容 曉佳/雲龍 + 香港发音人
广告配音 云希 + 语速 +20% + 音调 +5Hz
批量文档转音频 任意发音人 + 添加文件夹 + 批量处理

💡 使用技巧

  1. 拆分模式的选择

    • 整文件模式:适合完整的文章、报告

    • 按段落拆分:适合有声书、章节分明的文档

    • 按行拆分:适合诗歌、台词、逐句跟读材料

  2. 发音人推荐

    • 通用场景:晓晓(女)、云健(男)

    • 故事有声书:晓伊(女)

    • 广告促销:云希(男)

  3. 参数调节

    • 语速 -10%~0%:适合学习、跟读

    • 语速 +10%~+20%:适合快速浏览

    • 音量可根据原始文本适当调整


📝 完整代码

代码可以通过以下方式获取:

在评论区留言666.


🏆 版本更新记录

版本 更新内容
v1.0 基础 TTS 转换功能
v2.0 图形界面重构,三地发音人分类
v2.1 新增段落/行拆分模式,自动保存设置

📌 总结

这款工具的核心优势在于:

完全免费 - 基于 Edge 官方 TTS,无需 API Key

本地运行 - 数据不上传,保护隐私

批量处理 - 支持文件夹批量导入

灵活拆分 - 按段落/按行,满足多种需求

界面友好 - 中文界面,操作直观

无论是制作有声书、生成课程音频,还是批量处理文档,这款工具都能帮你高效完成任务。


如果觉得有用,欢迎点赞、收藏、转发!

有任何问题或建议,欢迎在评论区留言交流~

相关推荐
笃行3503 小时前
使用Rokid AIUI做了一个童年推箱子游戏
前端
excel4 小时前
前端加密的作用与使用场景
前端
镭封5 小时前
短剧多人对白怎么配?一人完成多角色配音的办法
人工智能·音视频·语音识别·媒体
计算机魔术师5 小时前
纽约时报版权诉讼披露:微软高管内部称训练 AI 是人类历史上最大规模劳动窃取
前端
去伪存真6 小时前
大模型的参数量为什么那么大?
前端·人工智能
IT_陈寒6 小时前
Java空指针这次真把我坑惨了
前端·人工智能·后端
技灵AI7 小时前
Wan 3.0 API怎么做多参考商品视频?从图片、视频、音频分工到30秒交付
人工智能·prompt·aigc·音视频·wan 3.0
八荒启·交互动画7 小时前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计7 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能
用户938515635077 小时前
从小米前端面试题,彻底搞懂闭包、作用域链与 useState 惰性初始化
前端·面试