文本转语音
我要提建议把中文文字读成声音(仅限中文):本机跑中文语音模型(187 个说话人,首次使用下载约 115MB、之后存在本机缓存),可以先「预览音色」听一遍再挑,合成后还能用「音高 / 共振峰 / 温暖 · 临场 · 齿音 / 气声 / 压缩」和 50 个模板继续塑造音色,导出 WAV / MP3。全程本地,文字数据不出设备。
相关工具
这个工具是做什么的
把讲稿变成配音、给视频做旁白、做无障碍朗读,都需要文字转语音。这个工具把**中文语音模型放在本机跑**(16kHz、187 个说话人,模型 115MB,首次使用下载一次、之后存在本机缓存里),所以文字数据不出设备。注意:仅限中文 —— 文本前端是中文词典查表,英文字母会被跳过不发音(不接英文模型)。**挑音色不用等模型**:点「预览音色」会列出每个说话人预先烘好的一段试听音频(十来 KB 一条),点哪听哪,听中意的那个再把它选为说话人。选好之后还能继续调:语速、句间停顿,以及一整套音色参数 —— 音高、共振峰 F1/F2(决定「像哪一类人」)、温暖(低频厚度)、临场(清晰度)、齿音抑制、气声、动态压缩,再加 50 个现成模板(电台主播 / 甜妹音 / 低音炮 / 有声书 / 电话听筒…)一键套用。需要说明两点:模型的采样率是 **16kHz**(带宽上限 8kHz),所以音色链里的「齿音抑制(5~9kHz)」只有 5~8kHz 那一段起作用;另外音色来自公开语料,不是某个具体的人。
使用方法
- 输入要朗读的中文文字(最多 300 字,长文请分次;仅限中文,英文字母不发音),首次使用会下载约 115MB 的语音模型,之后存在本机缓存里(刷新、重开浏览器、离线都不用再下)。
- 不确定挑哪个音色时先点「预览音色」:弹窗里是每个说话人烘好的试听音频,点一行就听、顺手选中(这一步不用加载模型)。
- 选说话人(187 个,没有性别 / 姓名标注,靠试听挑)、调语速与句间停顿,点「合成语音」试听;没下载模型会先问你一句要下多少 MB。
- 需要的话套一个音色模板,或手动调音高 / 共振峰 / 温暖 / 临场 / 气声 / 压缩。
- 选导出格式,点「处理音频」导出成品。
常见问题
- 音质为什么不是真人那种感觉?
- 这是「本机跑得动」的取舍:当前模型 16kHz(带宽上限 8kHz)、体积 115.6MB,比电话音质(8kHz 采样)好一档,但离真人还有距离,而且越大越慢(实测 13 字约 4.5 秒、21 字约 7.1 秒)。想要更接近真人得上几百 MB 的 22kHz 以上模型,需要单独接入 —— 那已经不「轻」了,会明显吃带宽与算力。另外因为带宽上限是 8kHz,音色链里的「齿音抑制(5~9kHz)」只有 5~8kHz 那一段生效。
- 和系统自带的朗读(Web Speech API)有什么区别?
- 系统朗读只往扬声器输出,拿不到音频数据,所以既不能导出文件、也没法做音色处理。这里用的是本地语音模型,直接产出采样数据,因此可以:叠加音色处理、导出 WAV / MP3、离线使用(模型缓存后不联网)。代价是首次要下载 115.6MB 模型,且合成要等(实测 13 字约 4.5 秒),速度取决于机器。
- 文字会上传吗?
- 不会。模型与文本前端数据都在浏览器里跑,合成、音色处理、编码全部在本机用本地引擎完成,没有把文字发出去的请求。
- 能调成某个人的声音吗?
- 不能。模型提供 187 个说话人(来自公开中文语音语料),你可以在这 187 个之间挑,再用音色参数把音高、共振峰、亮度、气声往某个方向调;但要「变成某个具体的人」需要说话人转换模型,不在这个工具的范围里。
- 「预览音色」为什么点开就能听,不用等模型?
- 那些试听音频是**提前用同一个模型烘好**的 MP3(试听句固定「你好,欢迎使用文本转语音。」,187 条共 3.4MB,每条十来 KB),静态文件里直接播,所以不下载模型也能先挑音色,也不会因为现合成一句要 3~4 秒而挑不动。真正点「合成语音」时才需要模型。模型文件里没有性别 / 姓名标注(这个模型连 speakers.txt 都没有,界面按「音色 1…187」编号),所以挑音色靠听,而不是靠标签。
- 支持英文吗?
- 不支持,本工具仅限中文。当前模型是中文模型(注音前端,字 → 注音符号),没有英文拼读规则 —— 英文字母会被直接跳过(实测 Hello world → 可读音节 0 个),个别字母因为中文词典里恰好有条目,会被念成中文音。做英文朗读要换模型(纯英文的多音色模型还得再引一个英文音素化引擎),已决定不做。