Skip to content

Commit a9b473e

Browse files
committedSep 19, 2024
s
1 parent 630b7a2 commit a9b473e

File tree

2 files changed

+338
-5
lines changed

2 files changed

+338
-5
lines changed
 

‎docs/ai/tts.md

+118-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 文本转语音
1+
# 文本转语音行情和概述
22

33
## 免费工具
44

@@ -65,6 +65,8 @@ Magic Data技术有限公司的语料库,语料库包含755小时的语音数
6565

6666
ChatTTS音色试听查找: https://www.modelscope.cn/studios/ttwwwaa/ChatTTS_Speaker
6767

68+
# 试验
69+
6870
## 第二次试验
6971

7072
本次语音合成系列对比说明:
@@ -120,6 +122,8 @@ ChatTTS抽卡得到的Speaker音频处理:
120122

121123
#### 本次试验主要调教参数参数:
122124

125+
本次试验中GPT模型和VITS模型的微调训练参数,除了如下记录外,其余参数均采用默认参数。
126+
123127
基于声学模型的语音切分:
124128

125129
| 参数 ||
@@ -157,6 +161,83 @@ GPT模型微调训练参数:
157161
| top_p | 1 |
158162
| temperature | 1 |
159163

164+
相关参数:
165+
166+
```
167+
{
168+
"train": {
169+
"log_interval": 100,
170+
"eval_interval": 500,
171+
"seed": 1234,
172+
"epochs": 8,
173+
"learning_rate": 0.0001,
174+
"betas": [0.8, 0.99],
175+
"eps": 1e-9,
176+
"batch_size": 8,
177+
"fp16_run": true,
178+
"lr_decay": 0.999875,
179+
"segment_size": 20480,
180+
"init_lr_ratio": 1,
181+
"warmup_epochs": 0,
182+
"c_mel": 45,
183+
"c_kl": 1.0,
184+
"text_low_lr_rate": 0.4,
185+
"pretrained_s2G": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth",
186+
"pretrained_s2D": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2D2333k.pth",
187+
"if_save_latest": true,
188+
"if_save_every_weights": true,
189+
"save_every_epoch": 4,
190+
"gpu_numbers": "0"
191+
},
192+
"data": {
193+
"max_wav_value": 32768.0,
194+
"sampling_rate": 32000,
195+
"filter_length": 2048,
196+
"hop_length": 640,
197+
"win_length": 2048,
198+
"n_mel_channels": 128,
199+
"mel_fmin": 0.0,
200+
"mel_fmax": null,
201+
"add_blank": true,
202+
"n_speakers": 300,
203+
"cleaned_text": true,
204+
"exp_dir": "logs/\u8046\u5c0f\u73ca_v1"
205+
},
206+
"model": {
207+
"inter_channels": 192,
208+
"hidden_channels": 192,
209+
"filter_channels": 768,
210+
"n_heads": 2,
211+
"n_layers": 6,
212+
"kernel_size": 3,
213+
"p_dropout": 0.1,
214+
"resblock": "1",
215+
"resblock_kernel_sizes": [3, 7, 11],
216+
"resblock_dilation_sizes": [
217+
[1, 3, 5],
218+
[1, 3, 5],
219+
[1, 3, 5]
220+
],
221+
"upsample_rates": [10, 8, 2, 2, 2],
222+
"upsample_initial_channel": 512,
223+
"upsample_kernel_sizes": [16, 16, 8, 2, 2],
224+
"n_layers_q": 3,
225+
"use_spectral_norm": false,
226+
"gin_channels": 512,
227+
"semantic_frame_rate": "25hz",
228+
"freeze_quantizer": true,
229+
"version": "v2"
230+
},
231+
"s2_ckpt_dir": "logs/\u8046\u5c0f\u73ca_v1",
232+
"content_module": "cnhubert",
233+
"save_weight_dir": "SoVITS_weights_v2",
234+
"name": "\u8046\u5c0f\u73ca_v1",
235+
"version": "v2"
236+
}
237+
238+
```
239+
240+
160241

161242
### 试验产出样本
162243

@@ -174,6 +255,7 @@ GPT模型微调训练参数:
174255
| 中文报站-9 | GPT_weights_v2-guodegang_01-e15-zh_2 | 其实说一千道一万还是个节目,啊,这个每一个人在里边表现都是很真实的。 --vocal_不装郭德纲采访之我是个无趣的人 金句频出_01.wav.reformatted.wav_10.wav_0001765440_0001996800 |
175256
| 中文报站-10 | 讯飞语音-聆小珊-咨询讲解-zh | |
176257
| 中文报站-11 | 讯飞语音-千雪-叙述品质-zh | |
258+
| 中文报站-12 | 讯飞语音-聆小珊-咨询讲解-zh-1 | |
177259
| 英语报站-1 | aoma-edge-江阳南路通南路-en | |
178260
| 英语报站-2 | 合成-松发路逸仙路-en | |
179261
| 英语报站-3 | 逸仙路何家弯路-en | |
@@ -185,13 +267,44 @@ GPT模型微调训练参数:
185267
| 英语报站-9 | 讯飞语音-千雪-叙述品质-en | |
186268
| 英语报站-10 | 讯飞语音-聆小珊-咨询讲解-en | |
187269
| 上海报站-1 | 讯飞-上海阮灵-车辆进站请注意安全,一二八纪念路江杨南路到了,请配合从后门下车,开门请当心 | |
270+
| 普通话英语混合-1 | 聆小珊-中英文一分钟多-1 | |
188271

189272

190273
#### 评估结果:
191274

192275
| 评估人 | 选择 |
193276
| --- | --- |
194-
| 朱总语音 | 朱总语音 |
195-
| 聆小珊语音 | 100 |
196-
| 郭德纲语音 | 100 |
197-
| ChatTTS语音 | 100 |
277+
| 喻斯进 | 英语报站-5.wav、中文报站-4.wav、英语报站-3.wav、中文报站-9.wav |
278+
| 殷剑 | 中文4和中文10、英文选 2、3 |
279+
| 朱总 | |
280+
281+
相关评价:
282+
283+
1. 英文站名挺别扭
284+
2. 中文都还行吧,只是从报站角度有的不合适
285+
3. 口语话,其中一个还一股子北京味道
286+
4. 要洪亮,有朝气
287+
5. 语调不太对
288+
6. 中文8、中文9两个是郭德纲的声纹,中文9从声纹还原度和效果上 比较好,2nd中文选了中文9中文9的超参可以用来合成有需求的其它声纹
289+
7. 中文10的 音色可以。语速间隔有问题。路名要连读,不能过快。要让人听清楚。路名后稍微停顿一下 报送“到了”,路名报的一定调整语速,太慢了拖沓,快了听不清,报站语音要听清楚每一个字,特别是路名,所以有间隔和重音的
290+
8. 你听中文四,人语言训练的会有连读的问题,我们先说信息的清晰度,中文四最清楚,只是感觉像机器人
291+
9. 中文2、3 听的清楚,但是音色不行,你或者实时2、3可以换音色么,太低沉了,要洪亮。听上去很累的样子
292+
293+
294+
## 第二次试验后续剩余
295+
296+
目的:
297+
1. 解决第一次实验中,评估人员提出的评价问题。
298+
2. 语音合成上海方言
299+
300+
目的1预计后续所需实验:
301+
302+
1. 弄清VITS和SoVITS中支持的语气、语调、停顿符号
303+
2. 拿应用场景下的原话高质量语音制作训练数据集,单独训练GPT网络
304+
3. 微调训练GPTSoVITS模型
305+
306+
目的2预计后续所需实验:
307+
308+
1. 搜集到正确的上海话语音制作训练集,训练方言语音合成的VITS基座模型
309+
2. 拿应用场景下的原话高质量语音制作训练数据集,单独训练GPT网络
310+
3. 微调训练GPTSoVITS模型
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
## 第二次试验
2+
3+
本次语音合成系列对比说明:
4+
5+
1. 不训练语音合成基座模型,只做微调训练
6+
2. 开源模型自带的音色
7+
3. 以开源模型为基座,抽取样本音色的特征,训练自己的声学模型,基于声学模型,训练自己的语音合成模型
8+
4. 上海话采用讯飞语音的“上海阮灵”音色。
9+
10+
### 试验过程
11+
12+
#### 数据来源:
13+
14+
1. 朱总给的在用公交车上报站语音文件
15+
2. 讯飞语音的聆小珊
16+
3. 郭德纲采访节目的视频
17+
4. ChatTTS抽卡得到的Speaker音频
18+
19+
#### 数据集搜集整理:
20+
21+
朱总给的在用公交车上报站语音文件处理:
22+
1. 通过人工手动剪辑分离出普通话、英语、上海话三种语音文件。
23+
2. 通过语音识别模型进行自动识别打标
24+
3. 人工核对打标结果,删除无效语音
25+
4. 剩余的语音文件,制作训练集
26+
27+
讯飞语音的聆小珊处理:
28+
1. 在线生成聆小珊的语音文件并下载聆小珊的语音文件
29+
2. 通过语音识别模型进行自动识别打标
30+
3. 人工核对语音文件,删除无效语音
31+
4. 剩余的语音文件,制作训练集
32+
33+
郭德纲采访节目的视频处理:
34+
1. 大量观看视频平台上郭德纲采访节目的视频,找到音质不错的视频并下载
35+
2. 通过人工手动剪辑分离出合适的视频片段,分离出视频中的语音
36+
3. 通过语音识别模型进行自动识别打标
37+
4. 人工核对语音文件,删除无效语音
38+
5. 剩余的语音文件,制作训练集
39+
40+
ChatTTS抽卡得到的Speaker音频处理:
41+
1. 改变生成随机数种子,生成不同音色的语音文件,细听,选择合适的音色
42+
43+
44+
45+
#### 模型和工具:
46+
1. GPT-SoVITS预训练模型
47+
2. G2PW
48+
3. UVR5
49+
4. funasr iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch
50+
5. funasr iic/speech_fsmn_vad_zh-cn-16k-common-pytorch
51+
6. funasr iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch
52+
7. faster-whisper-large-v3
53+
54+
#### 本次试验主要调教参数参数:
55+
56+
本次试验中GPT模型和VITS模型的微调训练参数,除了如下记录外,其余参数均采用默认参数。
57+
58+
基于声学模型的语音切分:
59+
60+
| 参数 ||
61+
| --- | --- |
62+
| threshold | -34 |
63+
| min_length | 4000 |
64+
| min_interval | 300 |
65+
| hop_size | 10 |
66+
| max | 0.9 |
67+
| alpha_mix | 0.25 |
68+
69+
声学模型微调训练参数:
70+
71+
| 参数 ||
72+
| --- | --- |
73+
| batch_size | 8 |
74+
| total_epoch | 8 |
75+
| learning_rate | 0.4 |
76+
| save_every_epoch | 4 |
77+
78+
GPT模型微调训练参数:
79+
80+
| 参数 ||
81+
| --- | --- |
82+
| batch_size | 8 |
83+
| total_epoch | 15 |
84+
| dpo | false |
85+
| save_every_epoch | 5 |
86+
87+
推理参数:
88+
89+
| 参数 ||
90+
| --- | --- |
91+
| top_k | 15 |
92+
| top_p | 1 |
93+
| temperature | 1 |
94+
95+
相关参数:
96+
97+
```
98+
{
99+
"train": {
100+
"log_interval": 100,
101+
"eval_interval": 500,
102+
"seed": 1234,
103+
"epochs": 8,
104+
"learning_rate": 0.0001,
105+
"betas": [0.8, 0.99],
106+
"eps": 1e-9,
107+
"batch_size": 8,
108+
"fp16_run": true,
109+
"lr_decay": 0.999875,
110+
"segment_size": 20480,
111+
"init_lr_ratio": 1,
112+
"warmup_epochs": 0,
113+
"c_mel": 45,
114+
"c_kl": 1.0,
115+
"text_low_lr_rate": 0.4,
116+
"pretrained_s2G": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth",
117+
"pretrained_s2D": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2D2333k.pth",
118+
"if_save_latest": true,
119+
"if_save_every_weights": true,
120+
"save_every_epoch": 4,
121+
"gpu_numbers": "0"
122+
},
123+
"data": {
124+
"max_wav_value": 32768.0,
125+
"sampling_rate": 32000,
126+
"filter_length": 2048,
127+
"hop_length": 640,
128+
"win_length": 2048,
129+
"n_mel_channels": 128,
130+
"mel_fmin": 0.0,
131+
"mel_fmax": null,
132+
"add_blank": true,
133+
"n_speakers": 300,
134+
"cleaned_text": true,
135+
"exp_dir": "logs/\u8046\u5c0f\u73ca_v1"
136+
},
137+
"model": {
138+
"inter_channels": 192,
139+
"hidden_channels": 192,
140+
"filter_channels": 768,
141+
"n_heads": 2,
142+
"n_layers": 6,
143+
"kernel_size": 3,
144+
"p_dropout": 0.1,
145+
"resblock": "1",
146+
"resblock_kernel_sizes": [3, 7, 11],
147+
"resblock_dilation_sizes": [
148+
[1, 3, 5],
149+
[1, 3, 5],
150+
[1, 3, 5]
151+
],
152+
"upsample_rates": [10, 8, 2, 2, 2],
153+
"upsample_initial_channel": 512,
154+
"upsample_kernel_sizes": [16, 16, 8, 2, 2],
155+
"n_layers_q": 3,
156+
"use_spectral_norm": false,
157+
"gin_channels": 512,
158+
"semantic_frame_rate": "25hz",
159+
"freeze_quantizer": true,
160+
"version": "v2"
161+
},
162+
"s2_ckpt_dir": "logs/\u8046\u5c0f\u73ca_v1",
163+
"content_module": "cnhubert",
164+
"save_weight_dir": "SoVITS_weights_v2",
165+
"name": "\u8046\u5c0f\u73ca_v1",
166+
"version": "v2"
167+
}
168+
169+
```
170+
171+
172+
173+
### 试验产出样本
174+
175+
176+
| 盲测名称 | 标准名称 | 参考音频 |
177+
| --- | --- | --- |
178+
| 中文报站-1 | aoma-edge-一二八纪念路江杨南路-zh | |
179+
| 中文报站-2 | chatts-1528-车辆起步-zh | |
180+
| 中文报站-3 | chattts-1528-一二八纪念路江杨南路-zh | |
181+
| 中文报站-4 | 合成-车辆起步下一站,江阳南路通南路-zh | |
182+
| 中文报站-5 | chattts-zh-0918-111017_8.0s-seed1528-temp0.1-top_p0.701-top_k20-len51-61860-merge | |
183+
| 中文报站-6 | chattts-zh-0918-134216_9.0s-seed2-temp0.12427-top_p0.701-top_k20-len59-18714-merge | |
184+
| 中文报站-7 | chattts-zh-0918-140651_8.1s-seed1509-temp0.10067-top_p0.701-top_k20-len58-74126-merge | |
185+
| 中文报站-8 | GPT_weights_v2-guodegang_01-e15-zh_1 | |
186+
| 中文报站-9 | GPT_weights_v2-guodegang_01-e15-zh_2 | |
187+
| 中文报站-10 | 讯飞语音-聆小珊-咨询讲解-zh | |
188+
| 中文报站-11 | 讯飞语音-千雪-叙述品质-zh | |
189+
| 英语报站-1 | aoma-edge-江阳南路通南路-en | |
190+
| 英语报站-2 | 合成-松发路逸仙路-en | |
191+
| 英语报站-3 | 逸仙路何家弯路-en | |
192+
| 英语报站-4 | 合成-128纪念路阳曲路-en | |
193+
| 英语报站-5 | chatts-en-0918-112011_33.3s-seed1528-temp0.1-top_p0.701-top_k20-len73-98929-merge | |
194+
| 英语报站-6 | chattts-en-0918-132112_31.5s-seed1244-temp0.1-top_p0.701-top_k20-len64-59882-merge | |
195+
| 英语报站-7 | chattts-en-0918-135359_5.0s-seed2-temp0.12427-top_p0.701-top_k20-len47-34033-merge | |
196+
| 英语报站-8 | chattts-zh-0918-141751_5.2s-seed1996-temp0.10067-top_p0.701-top_k20-len47-39130-merge | |
197+
| 英语报站-9 | 讯飞语音-千雪-叙述品质-en | |
198+
| 英语报站-10 | 讯飞语音-聆小珊-咨询讲解-en | |
199+
| 上海报站-1 | 讯飞-上海阮灵-车辆进站请注意安全,一二八纪念路江杨南路到了,请配合从后门下车,开门请当心 | |
200+
201+
202+
#### 评估结果:
203+
204+
| 评估人 | 选择 |
205+
| --- | --- |
206+
| 喻斯进 | 英语报站-5.wav、中文报站-4.wav、英语报站-3.wav、中文报站-9.wav |
207+
| 殷剑 | 中文4和中文10、英文选 2、3 |
208+
| 朱总 | |
209+
210+
相关评价:
211+
212+
1. 英文站名挺别扭
213+
2. 中文都还行吧,只是从报站角度有的不合适
214+
3. 口语话,其中一个还一股子北京味道
215+
4. 要洪亮,有朝气
216+
5. 语调不太对
217+
6. 中文8、中文9两个是郭德纲的声纹,中文9从声纹还原度和效果上 比较好,2nd中文选了中文9中文9的超参可以用来合成有需求的其它声纹
218+
7. 中文10的 音色可以。语速间隔有问题。路名要连读,不能过快。要让人听清楚。路名后稍微停顿一下 报送“到了”,路名报的一定调整语速,太慢了拖沓,快了听不清,报站语音要听清楚每一个字,特别是路名,所以有间隔和重音的
219+
8. 你听中文四,人语言训练的会有连读的问题,我们先说信息的清晰度,中文四最清楚,只是感觉像机器人
220+
9. 中文2、3 听的清楚,但是音色不行,你或者实时2、3可以换音色么,太低沉了,要洪亮。听上去很累的样子

0 commit comments

Comments
 (0)
Please sign in to comment.