当前位置:首页 > 软件应用 > 正文内容

【音频工具】通过Edge-TTS 实现批量txt转mp3,完全免费

2026年02月09日软件应用37

近期,在工作中遇到TXT文件批量转MP3音频的实际需求,

上网查了一些资料,终于跑通了一个比较靠谱的方案。

完全免费!不过需要安装Python环境。

这个方案是利用微软的语音合成服务,

语音质量高,且完全免费,非常适合批量处理。

今天就分享给大家吧。

使用 Edge-TTS 从零开始实现批量 TXT 转 MP3 的完整步骤如下:

第一步:环境准备与安装

确保你的电脑已准备好运行Python脚本的环境。

1、安装 Python

访问 Python官网 下载并安装最新版本(建议3.7或更高)。

网址:https://www.python.org/downloads/

ScreenShot_2026-02-09_142610_979.png

在安装过程中,请务必勾选 “Add Python to PATH” 选项。

2、安装必要库

打开命令提示符 (CMD) 或 PowerShell,输入以下命令安装核心库:

pip install edge-tts

2.png

这个命令会自动安装 edge-tts 及其依赖。

第二步:创建并配置脚本

在一个方便的位置(例如D盘)新建一个文件夹,命名为 TTS_Project。

在这个文件夹内:

1、新建 Python 脚本文件

创建一个新的文本文件,将其重命名为 batch_convert.py(注意扩展名是 .py)。

右键用记事本或任何代码编辑器(如VS Code, Notepad++)打开它。

2、编写核心脚本代码

将以下代码完整复制到 batch_convert.py 中:

# batch_convert.py
import os
import asyncio
import edge_tts

# ============== 配置区域 (开始) ==============
# 1. 设置你的TXT文件所在的文件夹路径(支持绝对或相对路径)
TXT_FOLDER = "./txt_files"  # 默认当前目录下的txt_files文件夹

# 2. 设置语音参数
VOICE = "zh-CN-YunyangNeural"  # 最常用的中文男声,发音清晰自然
RATE = "+0%"   # 语速调节,-50%更慢,+100%更快
VOLUME = "+0%" # 音量调节,-50%更小,+50%更大

# 3. 设置输出MP3的文件夹路径
OUTPUT_FOLDER = "./mp3_output"
# ============== 配置区域 (结束) ==============

async def convert_single_file(txt_file_path, output_file_path):
    """转换单个TXT文件为MP3"""
    try:
        # 读取TXT文件内容(使用utf-8编码以支持中文)
        with open(txt_file_path, "r", encoding="utf-8") as f:
            text_content = f.read().strip()

        if not text_content:
            print(f"  [警告] 文件内容为空,跳过: {txt_file_path}")
            return

        print(f"  [处理中] 文本长度: {len(text_content)}字符")

        # 创建TTS通信对象并合成语音
        tts = edge_tts.Communicate(
            text=text_content,
            voice=VOICE,
            rate=RATE,
            volume=VOLUME
        )
        await tts.save(output_file_path)
        print(f"  [完成] 已保存: {output_file_path}")

    except Exception as e:
        print(f"  [错误] 处理文件 {txt_file_path} 时出错: {str(e)}")

async def batch_convert():
    """批量转换主函数"""
    # 检查并创建输出文件夹
    if not os.path.exists(OUTPUT_FOLDER):
        os.makedirs(OUTPUT_FOLDER)
        print(f"[信息] 创建输出文件夹: {OUTPUT_FOLDER}")

    # 获取所有TXT文件
    txt_files = [f for f in os.listdir(TXT_FOLDER) if f.lower().endswith(".txt")]
    if not txt_files:
        print(f"[错误] 在文件夹 '{TXT_FOLDER}' 中未找到任何TXT文件!")
        return

    print(f"[信息] 找到 {len(txt_files)} 个TXT文件,开始转换...")

    # 遍历并转换每个文件
    for filename in txt_files:
        txt_path = os.path.join(TXT_FOLDER, filename)
        # 生成对应的MP3文件名(同名,仅扩展名改为.mp3)
        mp3_name = os.path.splitext(filename)[0] + ".mp3"
        mp3_path = os.path.join(OUTPUT_FOLDER, mp3_name)

        print(f"\n▶ 正在处理: {filename}")
        await convert_single_file(txt_path, mp3_path)

    print(f"\n{'='*50}")
    print(f"[批量转换全部完成!]")
    print(f"MP3文件已保存至: {os.path.abspath(OUTPUT_FOLDER)}")

if __name__ == "__main__":
    # 运行异步主函数
    asyncio.run(batch_convert())

3.png

第三步:准备与运行

1、准备文件结构

在你的 TTS_Project 文件夹内,按脚本配置创建一个名为 txt_files 的文件夹。

将所有需要转换的 .txt 文件放入其中。

TTS_Project/
├── batch_convert.py   (你刚创建的脚本)
└── mp3_output/  (生成MP3的目录)
└── txt_files/   (放txt文件的目录)
    ├── 文章1.txt
    ├── 文章2.txt
    └── 文章3.txt

注意:如果TXT文件在其他位置,可以修改脚本中 TXT_FOLDER 的路径,例如 TXT_FOLDER = "D:/TTS_Project/txt_files"。

提示:TXT文件编码必须是UTF-8,如果不是UTF-8,请用记事本打开TXT文件,另存为时选择“UTF-8”编码。

4.png

2、运行脚本

然后,在 TTS_Project 文件夹内,空白区域,点击鼠标右键,选择 “在此处打开Powershell窗口” 或 “打开命令窗口”或“在终端中打开”。

在打开的终端中,输入以下命令并回车:

python batch_convert.py

脚本将开始运行。

你会看到详细的处理日志,

完成后会提示保存路径。

456.gif

5.png

第四步:语音个性化与高级技巧

1、更换发音人

脚本中 VOICE = "zh-CN-YunyangNeural" 使用的是云阳(中文男生)。Edge-TTS支持多种声音,你可以通过以下命令查看所有可用语音:

edge-tts --list-voices

将输出列表中的 ShortName 赋值给 VOICE 即可更换,例如:

zh-CN-YunxiNeural (云希,男声,年轻活泼)

zh-CN-XiaoyiNeural (晓伊,女声,情感丰富)

en-US-AriaNeural (阿丽亚,美式英语女声)

123.gif

2、调节语速与音量

语速 (RATE):"+0%" 是正常语速。"-30%"会更慢更清晰,适合听书;"+30%"会更快。

音量 (VOLUME):"+0%" 是正常音量。通常不需要调整。

6.png

3、处理长文本与超时

如果文本非常长,可能会遇到超时错误。可以通过增加超时限制来解决:

# 在convert_single_file函数中,修改tts对象创建
tts = edge_tts.Communicate(
    text=text_content,
    voice=VOICE,
    rate=RATE,
    volume=VOLUME,
    proxy=None,  # 如有需要可设置代理
    timeout=30   # 将超时时间设为30秒或更长
)


4、直接使用命令行单文件转换(快速测试)

如果你想快速测试某个TXT文件的效果,可以直接在终端中使用命令:

edge-tts --text "$(cat 你的文件.txt)" --voice zh-CN-XiaoxiaoNeural --write-media 输出.mp3

这个方案的优势在于高质量语音、完全免费、可高度自定义。

一旦设置好脚本,后续的批量转换就只是一条命令的事情。

本文用到的文件已为大家打包好,可以按照下面方法下载:

httpsyun.139.comshareweb#wi2sUfEoAVVRgst.png

微信扫一扫,下载本文项目源码

好了,今天就讲到这里了,

下期再见!

免责声明:本站所发布信息部分整理自互联网具有公开性、共享性的信息,发布此信息旨在传播更多信息之目的,不代表本网站立场,转载请联系原作者并注明出处,如果侵犯了您的权益请与我们联系;本站提供的一切软件、教程和内容信息仅限用于学习和研究目的,无法保证有效性,真实性需自行辨别,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容;如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务,我们非常重视版权问题,如有侵权请邮件与我们联系处理,我们将在24小时内更正、删除。E-mail:admin@bsfc.net

返回列表

上一篇:【实用工具】PDFgear 完全免费的PDF软件

没有最新的文章了...