So-vits-svc(Softvc SInging Voice Conversion)

So-vits-svc(Softvc Singing Voice Conversion)

git clone地址GitHub
下载预训练模型地址:checkpoint_best_legacy_500.pt | Powered by Box
将checkpoint_best_legacy_500.pt放在 pretrain文件夹下

准备训练数据

将纯人声的wav音频切分为15秒左右的短音频,将整理好的wav文件放在在 .\so-vits-svc\dataset_raw 文件夹中新建一个文件夹,命名为该音色的名字。(音频总时长控制在1-2h)
下面是我写的切分wav音频的Python脚本

import soundfile as sf
import os


def split_audio(input_file, output_folder):
    # 读取音频文件
    data, sample_rate = sf.read(input_file)

    # 计算每个15秒段的样本数
    segment_duration = 15 * sample_rate

    # 创建目标文件夹(如果不存在)
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 当前片段的索引
    segment_index = 0

    # 分割音频文件
    for start_sample in range(0, len(data), segment_duration):
        end_sample = start_sample + segment_duration
        segment = data[start_sample:end_sample]

        # 创建输出文件名
        output_file = os.path.join(output_folder, f'{segment_index}.wav')

        # 写入新的.wav文件
        sf.write(output_file, segment, sample_rate)

        segment_index += 1


# 示例用法
input_file = ''  # 输入文件的路径
output_folder = ''  # 输出文件夹的路径
split_audio(input_file, output_folder)

预处理

1.重新采样至44100Hz和单声道

python resample.py

2.自动将数据集拆分为训练集和验证集,并生成配置文件。

python preprocess_flist_config.py --speech_encoder vec768l12

3.生成休伯特和f0

python preprocess_hubert_f0.py --f0_predictor dio

训练

python train.py -c configs/config.json -m 44k
  • 在训练期间,模型文件将保存到 ,扩散模型将保存到logs/44k

推理

1.可使用 python webUI.py程序启服务进行推理

在选择模型文件的选择框中上传自己训练的模型,在选择配置文件中上传相应的config.json

2.使用命令行推理

# Example
python inference_main.py -m "logs/44k/G_980090.pth" -c "configs/config.json" -n "凤凰传奇.wav" -t 0 -s "nen"
### So-VITS-SVC 介绍 So-VITS-SVC (SoftVC VITS Singing Voice Conversion) 是一款开源的歌声转换项目,旨在实现高质量的歌唱声音转换。此版本为 SO-VITS-SVC 4.0-v2,在多个方面进行了优化和改进[^1]。 该项目采用 Python 编程语言开发,并利用 PyTorch 深度学习框架构建模型架构。核心算法基于 Variational Inference with Tokenized Speech (VITS),这是一种先进的神经网络结构,能够有效捕捉语音信号的时间序列特性以及频谱特征。 ### 主要功能与应用场景 #### 高质量音质输出 通过引入更精细的数据预处理流程,如推荐使用的 UVR5 工具来清理原始音频素材,可以显著提高最终合成语音的质量。UVR5 能够有效地从复杂背景噪声中分离出清晰的人声部分,从而改善输入数据集的整体品质,进而增强训练后的模型表现力[^2]。 #### 实时在线服务部署 为了方便用户快速体验和集成到实际产品中,官方提供了完整的 RESTful API 接口文档和支持 Flask Web Server 的一键启动脚本。开发者只需简单配置几个环境参数即可轻松搭建起一套稳定可靠的线上服务平台。具体来说,`raw_infer` 变量控制着不同的推理逻辑;而 `svc_model` 和 `svc` 对象则负责加载已训练好的权重文件并执行具体的预测任务。最后调用 `app.run()` 方法指定监听 IP 地址及端口号完成整个系统的上线工作[^3]。 ```python from flask import Flask, request, jsonify import torch app = Flask(__name__) device = 'cuda' if torch.cuda.is_available() else 'cpu' model_path = './pretrained/model.pth' # 加载模型 def load_svc_model(): model = ... # 初始化模型类 checkpoint = torch.load(model_path,map_location=device) model.load_state_dict(checkpoint['state_dict']) return model.to(device) @app.route('/infer', methods=['POST']) def infer_api(): global svc_model audio_data = request.files.get('audio') processed_audio = preprocess(audio_data) # 数据前处理函数 result = svc_model.infer(processed_audio).detach().cpu().numpy() response = {'status': 'success','output':result.tolist()} return jsonify(response) if __name__ == '__main__': raw_infer = False svc_model = load_svc_model() app.run(host='0.0.0.0', port=8080) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值