VioletVoice — Deadlock「Violet」音色模型

用 OmniVoice 0.6B 做 LoRA 微调得到的 Deadlock 英雄 Violet 音色模型。

来源

  • 游戏:Deadlock(Valve / Citadel,Source 2 引擎)
  • 英雄:Violet,游戏内内部代号 artist,语音目录 sounds/vo/artist/
  • 语料:官方英文字幕(citadel_generated_vo_english.txt),未经 ASR 改写
  • 提取 2111 clips / 50.8 min → 清洗分桶后 1289 条进训练集(train 1269 / dev 20)

Deadlock 没有中文语音包(citadel_schinese/ 仅含 panorama UI 资源), 因此本模型是英文音色。

用法

1. 独立模型(推荐)

from omnivoice.models.omnivoice import OmniVoice
import soundfile as sf, torch

model = OmniVoice.from_pretrained(
    "wjcwqc/VioletVoice", device_map="cuda:0", dtype=torch.float16
)
audios = model.generate(text="Stop bickering and get out of my way.", language="en")
sf.write("out.wav", audios[0], model.sampling_rate)

2. 命令行

python -m omnivoice.cli.infer \
    --model wjcwqc/VioletVoice \
    --text "Stop bickering and get out of my way." \
    --language en \
    --output out.wav

3. 两种生成模式

模式 说明
ref 带参考音频 + 参考文本,音色最稳
noref 纯文本,音色已内化进 LoRA 参数,日常使用推荐

本仓库的评估脚本 scripts/eval/test_infer.py 会同时生成两种模式, 便于对比音色是否真的学进去了。

目录结构

VioletVoice/
├── merged/        合并模型(独立可用,约 3.2 GB)
├── lora/          LoRA adapter(adapter_config.json + adapter_model.safetensors)
├── training/      训练配置、data_config、train.log
└── README.md

训练

项 值
基座 OmniVoice 0.6B(Qwen3-0.6B)
方法 LoRA r=16 / alpha=32(4.2% 参数可训练)+ audio_embeddings/audio_heads 全训
超参 lr 1e-4,600 步,batch_tokens 1024 × grad_accum 8,bf16,sdpa
硬件 RTX 3050 Ti 4 GB + OMNIVOICE_CPU_OFFLOAD=1(冻结权重常驻内存逐层流转 GPU)
耗时 约 5 h 7 min(600 步 × 约 31 s/步,RTX 3050 Ti 4 GB)

完整报告见 examples/deadlock_paige/REPORT.md。

数据集

配套数据集仓库:wjcwqc/VioletVoice-dataset

许可与声明

本仓库发布的是模型权重与训练脚本(MIT)。游戏语音资源的版权归 Valve / Valve Corporation 所有,本仓库仅供研究与个人学习使用, 请勿用于商业分发,并遵守 Deadlock 的最终用户许可协议(EULA)。

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for wjcwqc/VioletVoice

Finetuned
Qwen/Qwen3-0.6B
Finetuned
k2-fsa/OmniVoice
Adapter
(37)
this model