15分钟用MOSS-TTS合成中文语音

你有没有遇到过这种情况:手里有一段文案,需要马上变成一段听得过去的配音,但临时找人配音来不及,市面上的在线 TTS 工具又动不动要充会员,还限制字数。五分钟之前,我就是这么想的。

直到我试了 MOSS-TTS——一个完全开源的中文语音合成模型,下载下来就能用,不需要联网,不需要额外注册,几行 Python 代码就能把文字转成听起来很自然的语音。

这篇文章要做的,就是带你用 15 分钟(真的就 15 分钟),把一段中文文字变成可以播放的音频文件。不需要你懂语音合成,只需要你会复制粘贴命令。


它和那些“AI 配音”有什么不同?

现在网上的 TTS 服务大致分两种:要么是大厂的 API,效果好但收费,而且你的数据要传到云端;要么是开源模型,免费但多数对中文支持一言难尽,说话像机器人。

MOSS-TTS 正好卡在一个很舒服的位置:

  • 纯本地运行——文字不离开你的电脑,隐私和安全自己说了算
  • 中文发音自然——它不是把英文模型粗暴改几个音素,而是用大量中文语料训练的,断句、语调都像真人
  • 轻量——普通家用显卡甚至只用 CPU 就能跑起来,不需要动辄几十个 G 的显存

简单打个比方:如果说商业 TTS 是米其林餐厅的定制甜品,那 MOSS-TTS 就是你从冰箱掏出材料、自己组装就能吃的家庭版——味道不差,但成本极低,还随时能调整配方。


准备工作:三样东西,五分钟就够

  1. 一台电脑,Windows/Mac/Linux 都行,有 Python 环境(建议 3.8 以上)
  2. 网络畅通(第一次运行会从 Hugging Face 下载模型,大约几百 MB)
  3. 一个能写代码的编辑器,记事本都行,但我习惯用 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_sampletemperature),让语音的节奏和情感出现一点变化——这就有点像“给说话加点个人风格了”。


皖ICP备2025105865号-2|皖公网安备34010402704739号