你有没有遇到过这种情况:手里有一段文案,需要马上变成一段听得过去的配音,但临时找人配音来不及,市面上的在线 TTS 工具又动不动要充会员,还限制字数。五分钟之前,我就是这么想的。
直到我试了 MOSS-TTS——一个完全开源的中文语音合成模型,下载下来就能用,不需要联网,不需要额外注册,几行 Python 代码就能把文字转成听起来很自然的语音。
这篇文章要做的,就是带你用 15 分钟(真的就 15 分钟),把一段中文文字变成可以播放的音频文件。不需要你懂语音合成,只需要你会复制粘贴命令。
它和那些“AI 配音”有什么不同?
现在网上的 TTS 服务大致分两种:要么是大厂的 API,效果好但收费,而且你的数据要传到云端;要么是开源模型,免费但多数对中文支持一言难尽,说话像机器人。
MOSS-TTS 正好卡在一个很舒服的位置:
- 纯本地运行——文字不离开你的电脑,隐私和安全自己说了算
- 中文发音自然——它不是把英文模型粗暴改几个音素,而是用大量中文语料训练的,断句、语调都像真人
- 轻量——普通家用显卡甚至只用 CPU 就能跑起来,不需要动辄几十个 G 的显存
简单打个比方:如果说商业 TTS 是米其林餐厅的定制甜品,那 MOSS-TTS 就是你从冰箱掏出材料、自己组装就能吃的家庭版——味道不差,但成本极低,还随时能调整配方。
准备工作:三样东西,五分钟就够
- 一台电脑,Windows/Mac/Linux 都行,有 Python 环境(建议 3.8 以上)
- 网络畅通(第一次运行会从 Hugging Face 下载模型,大约几百 MB)
- 一个能写代码的编辑器,记事本都行,但我习惯用 VS Code
先打开终端(PowerShell 或 macOS 的终端),安装必要的库:
pip install torch transformers soundfile
这三个库分别负责:深度学习框架、加载 TTS 模型、保存音频文件。一次性装完,不需要再手动配置别的东西。
核心环节:三行代码,让电脑开口说话
下面是整篇文章最值钱的几行代码。把它保存成 tts_demo.py,然后运行,就能在同一个文件夹里得到一个 output.wav 文件。
from transformers import AutoTokenizer, AutoModelForTextToSpeech
import soundfile as sf
model_name = "OpenMOSS-Team/MOSS-TTS-v1.5"
# 加载模型和分词器(首次运行会自动下载)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForTextToSpeech.from_pretrained(model_name, trust_remote_code=True)
# 把你想要合成的文字写在这里
text = "你好,欢迎使用MOSS-TTS语音合成。这是你的第一段中文语音。"
# 文本转成语音波形
inputs = tokenizer(text, return_tensors="pt")
speech = model.generate(**inputs)
# 保存为 WAV 文件,可以直接用播放器打开
sf.write("output.wav", speech.numpy(), samplerate=22050)
print("语音已保存为 output.wav,快去听听看吧。")
整个执行流程不到 10 秒(文本越长,时间会稍长一点)。第一次运行因为要下载模型,可能多等一两分钟。之后就快了。
你唯一需要修改的地方是 text 变量的内容。换成你自己的文案,重新运行,就能得到对应的音频。
这对我意味着什么?
不是让你马上把配音工作全丢掉,而是你不用再为“临时要一段中文语音”这件事焦虑了。短视频口播、产品演示旁白、有声书样音、甚至个人微信语音的自动化回复,都可以用这个办法快速搞定。
省去的是时间,也是心态上的“折腾感”。而且因为是纯本地运行,你可以随意调整文字内容,不用担心敏感信息被上传到某个服务器。
如果想再进一步:你可以把这段代码封装成一个简单的命令行工具,传入文本文件路径就能批量生成音频;也可以调一下 generation_config 参数(比如 do_sample 和 temperature),让语音的节奏和情感出现一点变化——这就有点像“给说话加点个人风格了”。
