KVoiceWalk是一款针对Kokoro文本转语音(TTS)系统的语音风格克隆应用,通过随机游走算法与混合评分方法(结合Resemblyzer相似度、特征提取和自相似度),生成接近目标语音的新Kokoro语音风格张量。

KVoiceWalk早期仅使用Resemblyzer相似度的尝试导致模型过拟合,生成效果不佳。后来团队引入自相似度以确保模型输出稳定性,避免不同输入导致的音质波动,同时增加音频特征相似度对比,防止因单纯追求相似度而牺牲音质(例如生成类似金属碰撞的噪音)。

评分函数采用调和平均计算,允许自相似度、特征相似度和目标相似度在合理范围内波动,避免因要求所有指标同步提升而导致算法停滞。特征相似度的权重较低,主要用于防止语音特征偏离合理范围。

KVoiceWalk安装使用

环境要求 1、克隆仓库:

git clone https://github.com/RobViren/kvoicewalk.git
cd kvoicewalk

2、准备目标音频:

• 格式要求:24000 Hz采样率的WAV文件,时长建议20-30秒,单 speaker 录音。

• 转换示例(使用FFmpeg):

ffmpeg -i input_file.wav -ar 24000 target.wav

基础运行命令

uv run main.py --target_text "待合成的文本内容" --target_audio ./路径/目标音频.wav

程序会遍历voices文件夹中的语音文件,筛选与目标音频最接近的初始样本,通过随机游走迭代优化,将结果保存至out文件夹。

高级功能:插值启动

uv run main.py --target_text "音频中的文本内容" --target_audio ./路径/目标音频.wav --interpolate_start

该模式会先对预训练语音进行插值搜索,生成优化后的初始张量种群(保存于interpolated文件夹),再启动随机游走,该过程需较强计算资源(GPU加速效果显著)。

效果对比

example/target.wav为例:

基线模型:Kokoro内置的af_heart.pt,Resemblyzer相似度71%,评分为81.22。

插值搜索结果:生成的af_jessica.pt_if_sara.pt_0.10.pt,相似度提升至78%,评分84.20。

随机游走10,000步后:相似度达93%,评分92.99,在保持模型稳定性的同时显著提升音质匹配度。

KVoiceWalk特点

1、非并行运行:支持对低质量张量提前终止计算,单卡(如RTX 3070)可并行运行2个实例。

2、结果随机性:迭代过程可能长期停滞或突然优化,需多次尝试以获得理想效果。

3、未来改进方向

• 构建结果数据库,训练相似度预测模型以引导语音生成;

• 探索PCA以外的语音生成方法;

• 实现遗传算法替代随机游走,提升优化效率。

KVoiceWalk文件结构

文件/文件夹 功能描述
example 包含示例音频和配置文件
voices 存储预训练语音张量
main.py 主程序入口,处理核心逻辑
voice_generator.py 语音张量生成模块
speech_generator.py 语音合成模块
fitness_scorer.py 评分函数实现