NEWS DETAIL

GPT-SoVITS 闽南语 TTS 踩坑全记录

发布时间:2026/9/11 18:29:38 · 栏目:资讯中心

尧图网络原创建站知识分享正文
GPT-SoVITS 闽南语 TTS 踩坑全记录deepseek生成 背景试图在 GPT-SoVITS 中加入闽南语台语支持最终发现这条路比想象中复杂得多。本文记录了从零开始尝试的所有坑。️ 踩坑全记录按时间顺序坑 1盲目复制粤语方案时间第一天现象粤语能加音素为什么闽南语不行照着粤语的方式改symbols2.py添加min_symbols。真相粤语有现成的预训练模型支持闽南语没有。GPT-SoVITS 的预训练模型音素表是固定的732个添加新音素后变成 2966 个和预训练模型不兼容。教训不同语言的集成方案不能直接复制需要确认预训练模型是否支持。坑 2text_normalize把声调数字转成中文时间数据处理阶段现象taibun输出的 TLPA 是Gua2 cit8 miau2经过text_normalize后变成Gua二 cit八 miau二。原因TextNormalizer()会把数字转成中文2→二8→八这对中文是好事但对 TLPA 是灾难。教训闽南语的text_normalize只能做标点替换不能调用通用的TextNormalizer。坑 3assert len(norm_text) len(word2ph)断言失败时间训练数据准备阶段现象大量数据被跳过2-name2text.txt里只有几十条。原因norm_text是 TLPA 字符串Li2 ho2长度 6word2ph是[2, 2]长度 2。6 ≠ 2断言失败数据被丢弃。教训这个断言只对「汉字输入」有效对「拼音输入」会误判。坑 4min_symbols包含 4000 无用音素时间构建音素表阶段现象从taibun词库直接导入了 4000 音素包含大量无关内容英文单词、汉字、缩写。真相音素表应该从训练数据中提取而不是从词库中导入。训练数据只有 3000 句实际音素只有 500-800 个。教训音素表要「数据驱动」不要「词典驱动」。坑 5拆分声母韵母导致 UNK时间测试阶段现象python min.py测试正常但训练时出现大量UNK。真相测试不检查音素表训练会检查。min.py把Li2拆成[L, i2]但音素表里只有YLi2没有YL和Yi2。教训对 GPT-SoVITS不拆分声母韵母直接用完整音节作为音素。坑 6v2Pro和symbols2.py不兼容时间训练前夜现象size mismatch for enc_p.text_embedding.weight: copying a param with shape torch.Size([732, 192]) from checkpoint, the shape in current model is torch.Size([2966, 192]).真相v2Pro的预训练模型是用 732 个音素训练的但symbols2.py加了min_symbols后有 2966 个。教训要么放弃min_symbols用 732 音素要么放弃预训练模型从头训练。坑 7训练数据应该是拼音还是汉字时间数据处理阶段现象标注文件里写的是Hit4 ho7 ……拼音但训练时g2p又把拼音当汉字处理。真相GPT-SoVITS 的cleaner.py会根据语言调用对应的g2p。如果g2p内部又调用taibun转换就会把 TLPA 当作汉字二次转换。教训明确区分「训练输入是什么」和「推理输入是什么」。坑 8inp_wav_dir路径设置错误时间数据预处理阶段现象找不到音频文件1-get-text.py报错。真相list文件里写的是ImTong/SuiSiann_0001.wav如果inp_wav_dir填了/root/.../ImTong/系统会找/root/.../ImTong/ImTong/SuiSiann_0001.wav。教训inp_wav_dir应该指向list中路径的上级目录。坑 9BERT特征缺失时间数据处理阶段现象3-bert/*.pt文件没有生成。真相1-get-text.py里只对zh提取 BERT 特征。闽南语没有 BERT 模型所以跳过。教训BERT 特征对 TTS 有帮助但不是必须的闽南语可以跳过。坑 10taibun库安装位置不对时间刚开始现象ModuleNotFoundError: No module named taibun真相WebUI 运行在GPTSoVitsconda 环境中但taibun装在了 base 或其他环境里。教训确认运行环境在正确的位置安装依赖。 核心结论问题结论闽南语能否加入 GPT-SoVITS✅ 能但有代价要用预训练模型吗用 → 只能 732 音素不用 → 可以自定义音素但需要大量数据最小可行方案732 音素 预训练模型 → 快速出声音发音不纯最优方案收集至少 100 小时闽南语数据 → 从头训练 2966 音素模型 → 发音准确8 小时数据够吗够跑通流程效果一般 给后来者的建议先跑通再优化先用 732 音素跑一个模型听到声音再决定要不要深入音素表从数据生成不要从taibun词库导入从训练数据中提取不要拆分声母韵母直接用完整音节作为音素text_normalize只做标点替换不要调用TextNormalizer确认版本兼容性v2Pro不支持自定义音素表用v2或v4准备好数据标注wav_name|speaker|language|textlanguage必须匹配 最终结论在 GPT-SoVITS 中加入闽南语最核心的问题是预训练模型的音素表是固定的732个。要自定义音素必须从头训练而从头训练需要海量数据和算力。如果你只有几小时的数据用 732 音素 预训练模型是唯一现实的选择。记录时间2026年7月2日

本文为尧图网络原创建站知识分享。想针对自身行业获取定制化建站方案?欢迎咨询,资深顾问免费为你出思路。

RELATED

相关 资讯推荐

MORE

更多 新鲜资讯

JMeter入门实战:从零构建HTTP接口性能测试脚本与结果分析
2026/9/11 18:25:13

JMeter入门实战:从零构建HTTP接口性能测试脚本与结果分析

1. 项目概述:从零开始,用JMeter搞定HTTP性能测试 刚接触性能测试的新手,或者是从功能测试转过来的朋友,一听到“压测”两个字,心里可能就有点发怵。工具那么多,概念那么杂,从哪儿下手呢&#xf…

Earendel: 一个纯TS写的POSIX兼容的微内核Web操作系统
2026/9/10 14:29:58

Earendel: 一个纯TS写的POSIX兼容的微内核Web操作系统

最近我用TypeScript写了一个运行在浏览器里的Web操作系统 Earendel(目前已知的距离地球最遥远的恒星)。开发它的初衷主要是为了Linux和操作系统课程的教学。市面上绝大多数Web OS项目,要么只是做了一个长得像Windows/macOS的网页UI拼盘&#…

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形[特殊字符]
2026/9/10 5:46:41

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形[特殊字符]

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形🚀 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: http…

从零制作同人动画:技术路线、流程与实战避坑指南
2026/9/10 20:45:04

从零制作同人动画:技术路线、流程与实战避坑指南

1. 先搞清楚这个“粉丝动画”到底是什么,以及它能解决什么问题看到“五条悟VS宿傩/咒术回战粉丝动画”这个标题,很多人的第一反应可能是去找一个现成的视频。但如果你是一个想自己动手创作、或者想了解这类作品背后技术流程的创作者,这个标题…

闭源降价80%,开源却在涨价:AI定价的交叉路口
2026/9/10 5:46:41

闭源降价80%,开源却在涨价:AI定价的交叉路口

8月6日,两条价格曲线悄然交汇。 一条向下:OpenAI把GPT-5.6 Luna的输出价格从6美元砍到1.2美元/百万Token,降幅80%。另一条向上:同一天,DeepSeek公告全线涨价,措辞是"涨幅较大",非试探…

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买
2026/9/11 12:58:52

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买经常有工厂朋友拿着网上的"三防平板十大品牌排行榜"来问我:到底选哪个?说实话排行榜看看就行,真正选型得看你产线什么场景。今天挑五个在产线数字化里用得比较多的品牌—…

看完这篇,还想了解更多?

预约尧图网络顾问一对一沟通,针对你的行业与现状给出建站建议,全程免费。

免费咨询