kushan1988 commited on
Commit
146102a
·
1 Parent(s): 0b65cde

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +13 -489
README.md CHANGED
@@ -1,489 +1,13 @@
1
- # SoftVC VITS Singing Voice Conversion
2
-
3
- [**English**](./README.md) | [**中文简体**](./README_zh_CN.md)
4
-
5
- #### ✨ A studio that contains f0 curve editor, speaker mix timeline editor and other features (The purpose of the Onnx model) : [MoeVoiceStudio(Comming soon)](https://github.com/NaruseMioShirakana/MoeVoiceStudio)
6
-
7
- #### ✨ A fork with a greatly improved interface: [34j/so-vits-svc-fork](https://github.com/34j/so-vits-svc-fork)
8
-
9
- #### ✨ A client supports real-time conversion: [w-okada/voice-changer](https://github.com/w-okada/voice-changer)
10
-
11
- **This project is fundamentally different from Vits. Vits is TTS and this project is SVC. TTS cannot be carried out in this project, and Vits cannot carry out SVC, and the two project models are not universal.**
12
-
13
- ## Announcement
14
-
15
- The project was developed to allow the developers' favorite anime characters to sing, Anything involving real people is a departure from the intent of the developer.
16
-
17
- ## Disclaimer
18
-
19
- This project is an open source, offline project, and all members of SvcDevelopTeam and all developers and maintainers of this project (hereinafter referred to as contributors) have no control over this project. The contributor of this project has never provided any organization or individual with any form of assistance, including but not limited to data set extraction, data set processing, computing support, training support, infering, etc. Contributors to the project do not and cannot know what users are using the project for. Therefore, all AI models and synthesized audio based on the training of this project have nothing to do with the contributors of this project. All problems arising therefrom shall be borne by the user.
20
-
21
- This project is run completely offline and cannot collect any user information or obtain user input data. Therefore, contributors to this project are not aware of all user input and models and therefore are not responsible for any user input.
22
-
23
- This project is only a framework project, which does not have the function of speech synthesis itself, and all the functions require the user to train the model themselves. Meanwhile, there is no model attached to this project, and any secondary distributed project has nothing to do with the contributors of this project
24
-
25
- ## 📏 Terms of Use
26
-
27
- # Warning: Please solve the authorization problem of the dataset on your own. You shall be solely responsible for any problems caused by the use of non-authorized datasets for training and all consequences thereof.The repository and its maintainer, svc develop team, have nothing to do with the consequences!
28
-
29
- 1. This project is established for academic exchange purposes only and is intended for communication and learning purposes. It is not intended for production environments.
30
- 2. Any videos based on sovits that are published on video platforms must clearly indicate in the description that they are used for voice changing and specify the input source of the voice or audio, for example, using videos or audios published by others and separating the vocals as input source for conversion, which must provide clear original video or music links. If your own voice or other synthesized voices from other commercial vocal synthesis software are used as the input source for conversion, you must also explain it in the description.
31
- 3. You shall be solely responsible for any infringement problems caused by the input source. When using other commercial vocal synthesis software as input source, please ensure that you comply with the terms of use of the software. Note that many vocal synthesis engines clearly state in their terms of use that they cannot be used for input source conversion.
32
- 4. It is forbidden to use the project to engage in illegal activities, religious and political activities. The project developers firmly resist the above activities. If they do not agree with this article, the use of the project is prohibited.
33
- 5. Continuing to use this project is deemed as agreeing to the relevant provisions stated in this repository README. This repository README has the obligation to persuade, and is not responsible for any subsequent problems that may arise.
34
- 6. If you use this project for any other plan, please contact and inform the author of this repository in advance. Thank you very much.
35
-
36
- ## 📝 Model Introduction
37
-
38
- The singing voice conversion model uses SoftVC content encoder to extract source audio speech features, then the vectors are directly fed into VITS instead of converting to a text based intermediate; thus the pitch and intonations are conserved. Additionally, the vocoder is changed to [NSF HiFiGAN](https://github.com/openvpi/DiffSinger/tree/refactor/modules/nsf_hifigan) to solve the problem of sound interruption.
39
-
40
- ### 🆕 4.1-Stable Version Update Content
41
-
42
- - Feature input is changed to [Content Vec](https://github.com/auspicious3000/contentvec) Transformer output of 12 layer, And compatible with 4.0 branches.
43
- - Update the shallow diffusion, you can use the shallow diffusion model to improve the sound quality.
44
- - Added Whisper speech encoder support
45
- - Added static/dynamic sound fusion
46
- - Added loudness embedding
47
- - Added feature Retrieve from [RVC](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI)
48
-
49
- ### 🆕 Questions about compatibility with the 4.0 model
50
-
51
- - You can support the 4.0 model by modifying the config.json of the 4.0 model, adding the speech_encoder field to the Model field of config.json, see below for details
52
-
53
- ```
54
- "model": {
55
- .........
56
- "ssl_dim": 256,
57
- "n_speakers": 200,
58
- "speech_encoder":"vec256l9"
59
- }
60
- ```
61
-
62
- ### 🆕 About shallow diffusion
63
- ![Diagram](shadowdiffusion.png)
64
-
65
- ## 💬 About Python Version
66
-
67
- After conducting tests, we believe that the project runs stably on `Python 3.8.9`.
68
-
69
- ## 📥 Pre-trained Model Files
70
-
71
- #### **Required**
72
-
73
- **The following encoder needs to select one to use**
74
-
75
- ##### **1. If using contentvec as speech encoder(recommended)**
76
-
77
- `vec768l12` and `vec256l9` require the encoder
78
-
79
- - ContentVec: [checkpoint_best_legacy_500.pt](https://ibm.box.com/s/z1wgl1stco8ffooyatzdwsqn2psd9lrr)
80
- - Place it under the `pretrain` directory
81
-
82
- Or download the following ContentVec, which is only 199MB in size but has the same effect:
83
- - contentvec :[hubert_base.pt](https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt)
84
- - Change the file name to `checkpoint_best_legacy_500.pt` and place it in the `pretrain` directory
85
-
86
- ```shell
87
- # contentvec
88
- wget -P pretrain/ http://obs.cstcloud.cn/share/obs/sankagenkeshi/checkpoint_best_legacy_500.pt
89
- # Alternatively, you can manually download and place it in the hubert directory
90
- ```
91
-
92
- ##### **2. If hubertsoft is used as the speech encoder**
93
- - soft vc hubert:[hubert-soft-0d54a1f4.pt](https://github.com/bshall/hubert/releases/download/v0.1/hubert-soft-0d54a1f4.pt)
94
- - Place it under the `pretrain` directory
95
-
96
- ##### **3. If whisper-ppg as the encoder**
97
- - download model at [medium.pt](https://openaipublic.azureedge.net/main/whisper/models/345ae4da62f9b3d59415adc60127b97c714f32e89e936602e85993674d08dcb1/medium.pt), the model fits `whisper-ppg`
98
- - or download model at [large-v2.pt](https://openaipublic.azureedge.net/main/whisper/models/81f7c96c852ee8fc832187b0132e569d6c3065a3252ed18e56effd0b6a73e524/large-v2.pt), the model fits `whisper-ppg-large`
99
- - Place it under the `pretrain` director
100
-
101
- ##### **4. If cnhubertlarge as the encoder**
102
- - download model at [chinese-hubert-large-fairseq-ckpt.pt](https://huggingface.co/TencentGameMate/chinese-hubert-large/resolve/main/chinese-hubert-large-fairseq-ckpt.pt)
103
- - Place it under the `pretrain` director
104
-
105
- ##### **5. If dphubert as the encoder**
106
- - download model at [DPHuBERT-sp0.75.pth](https://huggingface.co/pyf98/DPHuBERT/resolve/main/DPHuBERT-sp0.75.pth)
107
- - Place it under the `pretrain` director
108
-
109
- ##### **6. If OnnxHubert/ContentVec as the encoder**
110
- - download model at [MoeSS-SUBModel](https://huggingface.co/NaruseMioShirakana/MoeSS-SUBModel/tree/main)
111
- - Place it under the `pretrain` directory
112
-
113
- #### **List of Encoders**
114
- - "vec768l12"
115
- - "vec256l9"
116
- - "vec256l9-onnx"
117
- - "vec256l12-onnx"
118
- - "vec768l9-onnx"
119
- - "vec768l12-onnx"
120
- - "hubertsoft-onnx"
121
- - "hubertsoft"
122
- - "whisper-ppg"
123
- - "cnhubertlarge"
124
- - "dphubert"
125
- - "whisper-ppg-large"
126
-
127
- #### **Optional(Strongly recommend)**
128
-
129
- - Pre-trained model files: `G_0.pth` `D_0.pth`
130
- - Place them under the `logs/44k` directory
131
-
132
- - Diffusion model pretraining base model file: `model_0.pt`
133
- - Put it in the `logs/44k/diffusion` directory
134
-
135
- Get Sovits Pre-trained model from svc-develop-team(TBD) or anywhere else.
136
-
137
- Diffusion model references [DDSP-SVC](https://github.com/yxlllc/DDSP-SVC) diffusion model. The pre-trained diffusion model is universal with the DDSP-SVC's. You can go to [DDSP-SVC](https://github.com/yxlllc/DDSP-SVC) to get the pre-trained diffusion model.
138
-
139
- Although the pretrained model generally does not cause any copyright problems, please pay attention to it. For example, ask the author in advance, or the author has indicated the feasible use in the description clearly.
140
-
141
- #### **Optional(Select as Required)**
142
-
143
- If you are using the `NSF-HIFIGAN enhancer` or `shallow diffusion`, you will need to download the pre-trained NSF-HIFIGAN model, or not if you do not need it.
144
-
145
- - Pre-trained NSF-HIFIGAN Vocoder: [nsf_hifigan_20221211.zip](https://github.com/openvpi/vocoders/releases/download/nsf-hifigan-v1/nsf_hifigan_20221211.zip)
146
- - Unzip and place the four files under the `pretrain/nsf_hifigan` directory
147
-
148
- ```shell
149
- # nsf_hifigan
150
- wget -P pretrain/ https://github.com/openvpi/vocoders/releases/download/nsf-hifigan-v1/nsf_hifigan_20221211.zip
151
- \unzip -od pretrain/nsf_hifigan pretrain/nsf_hifigan_20221211.zip
152
- # Alternatively, you can manually download and place it in the pretrain/nsf_hifigan directory
153
- # URL:https://github.com/openvpi/vocoders/releases/tag/nsf-hifigan-v1
154
- ```
155
-
156
- ## 📊 Dataset Preparation
157
-
158
- Simply place the dataset in the `dataset_raw` directory with the following file structure.
159
-
160
- ```
161
- dataset_raw
162
- ├───speaker0
163
- │ ├───xxx1-xxx1.wav
164
- │ ├───...
165
- │ └───Lxx-0xx8.wav
166
- └───speaker1
167
- ├───xx2-0xxx2.wav
168
- ├───...
169
- └───xxx7-xxx007.wav
170
- ```
171
-
172
- You can customize the speaker name.
173
-
174
- ```
175
- dataset_raw
176
- └───suijiSUI
177
- ├───1.wav
178
- ├───...
179
- └───25788785-20221210-200143-856_01_(Vocals)_0_0.wav
180
- ```
181
-
182
- ## 🛠️ Preprocessing
183
-
184
- ### 0. Slice audio
185
-
186
- Slice to `5s - 15s`, a bit longer is no problem. Too long may lead to `torch.cuda.OutOfMemoryError` during training or even pre-processing.
187
-
188
- By using [audio-slicer-GUI](https://github.com/flutydeer/audio-slicer) or [audio-slicer-CLI](https://github.com/openvpi/audio-slicer)
189
-
190
- In general, only the `Minimum Interval` needs to be adjusted. For statement audio it usually remains default. For singing audio it can be adjusted to `100` or even `50`.
191
-
192
- After slicing, delete audio that is too long and too short.
193
-
194
- **If you use whisper-ppg encoder for training,the wav must shorter than 30s.**
195
-
196
- ### 1. Resample to 44100Hz and mono
197
-
198
- ```shell
199
- python resample.py
200
- ```
201
-
202
- #### Attention
203
-
204
- Although this project has the script resample.py for resampling, to mono and loudness matching, the default loudness matching is to match to 0db. This may cause damage to the sound quality. While python's loudness matching package pyloudnorm is unable to limit the level, this results in a burst. Therefore, it is suggested to consider using professional sound processing software such as `adobe audition` for loudness matching processing. If you have already used other software for loudness matching, run the command with the argument `--skip_loudnorm`:
205
-
206
- ```shell
207
- python resample.py --skip_loudnorm
208
- ```
209
-
210
- ### 2. Automatically split the dataset into training and validation sets, and generate configuration files.
211
-
212
- ```shell
213
- python preprocess_flist_config.py --speech_encoder vec768l12
214
- ```
215
-
216
- speech_encoder has 7 choices
217
-
218
- ```
219
- vec768l12
220
- vec256l9
221
- hubertsoft
222
- whisper-ppg
223
- cnhubertlarge
224
- dphubert
225
- whisper-ppg-large
226
- ```
227
-
228
- If the speech_encoder argument is omitted, the default value is vec768l12
229
-
230
- **Use loudness embedding**
231
-
232
- Add `--vol_aug` if you want to enable loudness embedding:
233
-
234
- ```shell
235
- python preprocess_flist_config.py --speech_encoder vec768l12 --vol_aug
236
- ```
237
-
238
- After enabling loudness embedding, the trained model will match the loudness of the input source; otherwise, it will be the loudness of the training set.
239
-
240
- #### You can modify some parameters in the generated config.json and diffusion.yaml
241
-
242
- * `keep_ckpts`: Keep the last `keep_ckpts` models during training. Set to `0` will keep them all. Default is `3`.
243
-
244
- * `all_in_mem`, `cache_all_data`: Load all dataset to RAM. It can be enabled when the disk IO of some platforms is too low and the system memory is **much larger** than your dataset.
245
-
246
- * `batch_size`: The amount of data loaded to the GPU for a single training session can be adjusted to a size lower than the video memory capacity.
247
-
248
- * `vocoder_name` : Select a vocoder. The default is `nsf-hifigan`.
249
-
250
- ##### **List of Vocoders**
251
-
252
- ```
253
- nsf-hifigan
254
- nsf-snake-hifigan
255
- ```
256
-
257
- ### 3. Generate hubert and f0
258
-
259
- ```shell
260
- # python preprocess_hubert_f0.py --f0_predictor dio
261
- python preprocess_hubert_f0.py --f0_predictor crepe
262
- ```
263
-
264
- f0_predictor has four options
265
-
266
- ```
267
- crepe
268
- dio
269
- pm
270
- harvest
271
- ```
272
-
273
- If the training set is too noisy, use crepe to handle f0
274
-
275
- If the f0_predictor parameter is omitted, the default value is dio
276
-
277
- If you want shallow diffusion (optional), you need to add the --use_diff parameter, for example
278
-
279
- ```shell
280
- python preprocess_hubert_f0.py --f0_predictor dio --use_diff
281
- ```
282
-
283
- After completing the above steps, the dataset directory will contain the preprocessed data, and the dataset_raw folder can be deleted.
284
-
285
- ## 🏋️‍♀️ Training
286
-
287
- ### Diffusion Model (optional)
288
-
289
- If the shallow diffusion function is needed, the diffusion model needs to be trained. The diffusion model training method is as follows:
290
-
291
- ```shell
292
- python train_diff.py -c configs/diffusion.yaml
293
- ```
294
-
295
- ### Sovits Model
296
-
297
- ```shell
298
- python train.py -c configs/config.json -m 44k
299
- ```
300
-
301
- After the model training, the model file is saved in the directory `logs/44k`, and the diffusion model is stored under `logs/44k/diffusion`
302
-
303
- ## 🤖 Inference
304
-
305
- Use [inference_main.py](https://github.com/svc-develop-team/so-vits-svc/blob/4.0/inference_main.py)
306
-
307
- ```shell
308
- # Example
309
- python inference_main.py -m "logs/44k/G_30400.pth" -c "configs/config.json" -n "君の知らない物語-src.wav" -t 0 -s "nen"
310
- ```
311
-
312
- Required parameters:
313
- - `-m` | `--model_path`: path to the model.
314
- - `-c` | `--config_path`: path to the configuration file.
315
- - `-n` | `--clean_names`: a list of wav file names located in the raw folder.
316
- - `-t` | `--trans`: pitch adjustment, supports positive and negative (semitone) values.
317
- - `-s` | `--spk_list`: target speaker name for synthesis.
318
- - `-cl` | `--clip`: voice forced slicing, set to 0 to turn off(default), duration in seconds.
319
-
320
- Optional parameters: see the next section
321
- - `-lg` | `--linear_gradient`: The cross fade length of two audio slices in seconds. If there is a discontinuous voice after forced slicing, you can adjust this value. Otherwise, it is recommended to use the default value of 0.
322
- - `-f0p` | `--f0_predictor`: Select F0 predictor, can select crepe,pm,dio,harvest, default pm(note: crepe is original F0 meaning pooling)
323
- - `-a` | `--auto_predict_f0`: automatic pitch prediction for voice conversion, do not enable this when converting songs as it can cause serious pitch issues.
324
- - `-cm` | `--cluster_model_path`: Cluster model or feature retrieval index path, if there is no training cluster or feature retrieval, fill in at will.
325
- - `-cr` | `--cluster_infer_ratio`: The proportion of clustering scheme or feature retrieval ranges from 0 to 1. If there is no training clustering model or feature retrieval, the default is 0.
326
- - `-eh` | `--enhance`: Whether to use NSF_HIFIGAN enhancer, this option has certain effect on sound quality enhancement for some models with few training sets, but has negative effect on well-trained models, so it is turned off by default.
327
- - `-shd` | `--shallow_diffusion`: Whether to use shallow diffusion, which can solve some electrical sound problems after use. This option is turned off by default. When this option is enabled, NSF_HIFIGAN intensifier will be disabled
328
- - `-usm` | `--use_spk_mix`: whether to use dynamic voice/merge their role
329
- - `-lea` | `--loudness_envelope_adjustment`:The input source loudness envelope replaces the output loudness envelope fusion ratio. The closer to 1, the more the output loudness envelope is used
330
- - `-fr` | `--feature_retrieval`:Whether to use feature retrieval? If clustering model is used, it will be disabled, and cm and cr parameters will become the index path and mixing ratio of feature retrieval
331
-
332
- Shallow diffusion settings:
333
- - `-dm` | `--diffusion_model_path`: Diffusion model path
334
- - `-dc` | `--diffusion_config_path`: Diffusion model profile path
335
- - `-ks` | `--k_step`: The larger the number of diffusion steps, the closer it is to the result of the diffusion model. The default is 100
336
- - `-od` | `--only_diffusion`: Only diffusion mode, which does not load the sovits model to the diffusion model inference
337
- - `-se` | `--second_encoding`:Secondary encoding, secondary coding of the original audio before shallow diffusion, mystery options, sometimes good, sometimes bad
338
-
339
- ### Attention
340
-
341
- If reasoning using `whisper-ppg` speech encoder, you need to set `--clip` to 25 and `-lg` to 1. Otherwise it will fail to reason properly.
342
-
343
- ## 🤔 Optional Settings
344
-
345
- If the results from the previous section are satisfactory, or if you didn't understand what is being discussed in the following section, you can skip it, and it won't affect the model usage. (These optional settings have a relatively small impact, and they may have some effect on certain specific data, but in most cases, the difference may not be noticeable.)
346
-
347
- ### Automatic f0 prediction
348
-
349
- During the 4.0 model training, an f0 predictor is also trained, which can be used for automatic pitch prediction during voice conversion. However, if the effect is not good, manual pitch prediction can be used instead. But please do not enable this feature when converting singing voice as it may cause serious pitch shifting!
350
- - Set `auto_predict_f0` to true in inference_main.
351
-
352
- ### Cluster-based timbre leakage control
353
-
354
- Introduction: The clustering scheme can reduce timbre leakage and make the trained model sound more like the target's timbre (although this effect is not very obvious), but using clustering alone will lower the model's clarity (the model may sound unclear). Therefore, this model adopts a fusion method to linearly control the proportion of clustering and non-clustering schemes. In other words, you can manually adjust the ratio between "sounding like the target's timbre" and "being clear and articulate" to find a suitable trade-off point.
355
-
356
- The existing steps before clustering do not need to be changed. All you need to do is to train an additional clustering model, which has a relatively low training cost.
357
-
358
- - Training process:
359
- - Train on a machine with good CPU performance. According to my experience, it takes about 4 minutes to train each speaker on a Tencent Cloud machine with 6-core CPU.
360
- - Execute `python cluster/train_cluster.py`. The output model will be saved in `logs/44k/kmeans_10000.pt`.
361
- - The clustering model can currently be trained using the gpu by executing `python cluster/train_cluster.py --gpu`
362
- - Inference process:
363
- - Specify `cluster_model_path` in `inference_main.py`.
364
- - Specify `cluster_infer_ratio` in `inference_main.py`, where `0` means not using clustering at all, `1` means only using clustering, and usually `0.5` is sufficient.
365
-
366
- ### Feature retrieval
367
-
368
- Introduction: As with the clustering scheme, the timbre leakage can be reduced, the character is slightly better than clustering, but it will reduce the reasoning speed, using the fusion method, can linearly control the proportion of feature retrieval and non-feature retrieval.
369
-
370
- - Training process:
371
- First, it needs to be executed after generating hubert and f0:
372
-
373
- ```shell
374
- python train_index.py -c configs/config.json
375
- ```
376
-
377
- The output of the model will be in `logs/44k/feature_and_index.pkl`
378
-
379
- - Inference process:
380
- - The `--feature_retrieval` needs to be formulated first, and the clustering mode automatically switches to the feature retrieval mode.
381
- - Specify `cluster_model_path` in `inference_main.py`.
382
- - Specify `cluster_infer_ratio` in `inference_main.py`, where `0` means not using feature retrieval at all, `1` means only using feature retrieval, and usually `0.5` is sufficient.
383
-
384
- ### [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/svc-develop-team/so-vits-svc/blob/4.1-Stable/sovits4_for_colab.ipynb) [sovits4_for_colab.ipynb](https://colab.research.google.com/github/svc-develop-team/so-vits-svc/blob/4.1-Stable/sovits4_for_colab.ipynb)
385
-
386
- ## 🗜️ Model strip
387
-
388
- The generated model contains data that is needed for further training. If you confirm that the model is final and not be used in further training, it is safe to strip these data to get smaller file size (about 1/3).
389
-
390
- ```shell
391
- # Example
392
- python compress_model.py -c="configs/config.json" -i="logs/44k/G_30400.pth" -o="logs/44k/release.pth"
393
- ```
394
-
395
- ## 👨‍🔧 Timbre mixing
396
-
397
- ### Stable Timbre mixing
398
-
399
- **Refer to `webui.py` file for stable Timbre mixing of the gadget/lab feature.**
400
-
401
- Introduction: This function can combine multiple sound models into one sound model (convex combination or linear combination of multiple model parameters) to create sound lines that do not exist in reality
402
-
403
- **Note:**
404
- 1. This function only supports single-speaker models
405
- 2. If the multi-speaker model is forced to be used, it is necessary to ensure that the number of speakers in multiple models is the same, so that the voices under the same SpaekerID can be mixed
406
- 3. Ensure that the model fields in config.json of all models to be mixed are the same
407
- 4. The output hybrid model can use any config.json of the model to be synthesized, but the clustering model will not be used
408
- 5. When batch uploading models, it is best to put the models into a folder and upload them together after selecting them
409
- 6. It is suggested to adjust the mixing ratio between 0 and 100, or to other numbers, but unknown effects will occur in the linear combination mode
410
- 7. After mixing, the file named output.pth will be saved in the root directory of the project
411
- 8. Convex combination mode will perform Softmax to add the mix ratio to 1, while linear combination mode will not
412
-
413
- ### Dynamic timbre mixing
414
-
415
- **Refer to the `spkmix.py` file for an introduction to dynamic timbre mixing**
416
-
417
- Character mix track writing rules:
418
-
419
- Role ID: \[\[Start time 1, end time 1, start value 1, start value 1], [Start time 2, end time 2, start value 2]]
420
-
421
- The start time must be the same as the end time of the previous one. The first start time must be 0, and the last end time must be 1 (time ranges from 0 to 1).
422
-
423
- All roles must be filled in. For unused roles, fill \[\[0., 1., 0., 0.]]
424
-
425
- The fusion value can be filled in arbitrarily, and the linear change from the start value to the end value within the specified period of time. The
426
-
427
- internal linear combination will be automatically guaranteed to be 1 (convex combination condition), so it can be used safely
428
-
429
- Use the `--use_spk_mix` parameter when reasoning to enable dynamic timbre mixing
430
-
431
- ## 📤 Exporting to Onnx
432
-
433
- Use [onnx_export.py](https://github.com/svc-develop-team/so-vits-svc/blob/4.0/onnx_export.py)
434
-
435
- - Create a folder named `checkpoints` and open it
436
- - Create a folder in the `checkpoints` folder as your project folder, naming it after your project, for example `aziplayer`
437
- - Rename your model as `model.pth`, the configuration file as `config.json`, and place them in the `aziplayer` folder you just created
438
- - Modify `"NyaruTaffy"` in `path = "NyaruTaffy"` in [onnx_export.py](https://github.com/svc-develop-team/so-vits-svc/blob/4.0/onnx_export.py) to your project name, `path = "aziplayer"`(onnx_export_speaker_mix makes you can mix speaker's voice)
439
- - Run [onnx_export.py](https://github.com/svc-develop-team/so-vits-svc/blob/4.0/onnx_export.py)
440
- - Wait for it to finish running. A `model.onnx` will be generated in your project folder, which is the exported model.
441
-
442
- Note: For Hubert Onnx models, please use the models provided by MoeSS. Currently, they cannot be exported on their own (Hubert in fairseq has many unsupported operators and things involving constants that can cause errors or result in problems with the input/output shape and results when exported.)
443
-
444
- ## ☀️ Previous contributors
445
-
446
- For some reason the author deleted the original repository. Because of the negligence of the organization members, the contributor list was cleared because all files were directly reuploaded to this repository at the beginning of the reconstruction of this repository. Now add a previous contributor list to README.md.
447
-
448
- *Some members have not listed according to their personal wishes.*
449
-
450
- <table>
451
- <tr>
452
- <td align="center"><a href="https://github.com/MistEO"><img src="https://avatars.githubusercontent.com/u/18511905?v=4" width="100px;" alt=""/><br /><sub><b>MistEO</b></sub></a><br /></td>
453
- <td align="center"><a href="https://github.com/XiaoMiku01"><img src="https://avatars.githubusercontent.com/u/54094119?v=4" width="100px;" alt=""/><br /><sub><b>XiaoMiku01</b></sub></a><br /></td>
454
- <td align="center"><a href="https://github.com/ForsakenRei"><img src="https://avatars.githubusercontent.com/u/23041178?v=4" width="100px;" alt=""/><br /><sub><b>しぐれ</b></sub></a><br /></td>
455
- <td align="center"><a href="https://github.com/TomoGaSukunai"><img src="https://avatars.githubusercontent.com/u/25863522?v=4" width="100px;" alt=""/><br /><sub><b>TomoGaSukunai</b></sub></a><br /></td>
456
- <td align="center"><a href="https://github.com/Plachtaa"><img src="https://avatars.githubusercontent.com/u/112609742?v=4" width="100px;" alt=""/><br /><sub><b>Plachtaa</b></sub></a><br /></td>
457
- <td align="center"><a href="https://github.com/zdxiaoda"><img src="https://avatars.githubusercontent.com/u/45501959?v=4" width="100px;" alt=""/><br /><sub><b>zd小达</b></sub></a><br /></td>
458
- <td align="center"><a href="https://github.com/Archivoice"><img src="https://avatars.githubusercontent.com/u/107520869?v=4" width="100px;" alt=""/><br /><sub><b>凍聲響世</b></sub></a><br /></td>
459
- </tr>
460
- </table>
461
-
462
- ## 📚 Some legal provisions for reference
463
-
464
- #### Any country, region, organization, or individual using this project must comply with the following laws.
465
-
466
- #### 《民法典》
467
-
468
- ##### 第一千零一十九条
469
-
470
- 任何组织或者个人不得以丑化、污损,或者利用信息技术手段伪造等方式侵害他人的肖像权。未经肖像权人同意,不得制作、使用、公开肖像权人的肖像,但是法律另有规定的除外。未经肖像权人同意,肖像作品权利人不得以发表、复制、发行、出租、展览等方式使用或者公开肖像权人的肖像。对自然人声音的保护,参照适用肖像权保护的有关规定。
471
-
472
- ##### 第一千零二十四条
473
-
474
- 【名誉权】民事主体享有名誉权。任何组织或者个人不得以侮辱、诽谤等方式侵害他人的名誉权。
475
-
476
- ##### 第一千零二十七条
477
-
478
- 【作品侵害名誉权】行为人发表的文学、艺术作品以真人真事或者特定人为描述对象,含有侮辱、诽谤内容,侵害他人名誉权的,受害人有权依法请求该行为人承担民事责任。行为人发表的文学、艺术作品不以特定人为描述对象,仅其中的情节与该特定人的情况相似的,不承担民事责任。
479
-
480
- #### 《[中华人民共和国宪法](http://www.gov.cn/guoqing/2018-03/22/content_5276318.htm)》
481
-
482
- #### 《[中华人民共和国刑法](http://gongbao.court.gov.cn/Details/f8e30d0689b23f57bfc782d21035c3.html?sw=%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD%E5%88%91%E6%B3%95)》
483
-
484
- #### 《[中华人民共和国民法典](http://gongbao.court.gov.cn/Details/51eb6750b8361f79be8f90d09bc202.html)》
485
-
486
- ## 💪 Thanks to all contributors for their efforts
487
- <a href="https://github.com/svc-develop-team/so-vits-svc/graphs/contributors" target="_blank">
488
- <img src="https://contrib.rocks/image?repo=svc-develop-team/so-vits-svc" />
489
- </a>
 
1
+ ---
2
+ title: so-vits-svc-41-Stable-gradio
3
+ emoji: 📉
4
+ colorFrom: red
5
+ colorTo: red
6
+ sdk: gradio
7
+ sdk_version: 3.45.2
8
+ app_file: app.py
9
+ pinned: false
10
+ license: mit
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference