目前的语音合成技术方案都会随组件自带一系列男女老少的音色作为模板,合成的结果自然而且流畅,已经十分接近普通人正常的说话和表达的水平了。这里想介绍一种采用用户自己或他人的声音样本,经过训练以后能够以极低的成本并快速得到个性化音色模型的实现过程。
这里用到的个性化音色训练模型是指语音合成模型是专门为个人定制的个性化语音合成模型;模型中使用了 sambert 算法和组件,这是一种特定的语音合成算法和语音处理技术;此外它还用到了 HiFi-GAN 对抗网络(GAN)模型,用于生成高质量的语音;NSF 指的是 "non-silent frames",它在语音处理中表示非静音的音频帧;模型训练支持中文、英文和中英文混排,在大量数据上经过预训练,支持采用 16kHz 采样率的高质量语音输出。
首先导入依赖包,download 包用于从远程下载用户的声音训练样本文件,modelscope 为个性化音色训练所用到的第三方依赖包。
import os
import time
from utils.download import download
from modelscope.metainfo import Trainers
from modelscope.tools import run_auto_label
from modelscope.trainers import build_trainer
from modelscope.utils.audio.audio_utils import TtsTrainType
接下来需要创建一系列目录,用于保存用户的声音训练样本文件,以及个性化音色模型存储路径。用户的存储路径为用户 ID 加时间戳,以确保路径的唯一性。