一、前言
我前面维护了NekoQA-10K和NekoQA-30K,但这归根结底是文本。猫娘目前还是哑巴,这怎么行呢?一怒之下o( ̄ヘ ̄o#),我要维护一个音频对话羔质量数据集,让猫娘能够开口!!喵~o(* ̄3 ̄)o
我们对NekoQA-30K这个数据集做了一个小修改。我们先将数据集中猫娘回复里面关于动作的文本先去除了。然后再合成音频。举个栗子喵
可以看到,原本回答中的“(耳朵心疼地耷拉下来,尾巴焦急地在身后甩来甩去)”这种动作描写被删除了,毕竟现实生活谁把动作也说出来呀,喵。
考虑到不同模型微调对音频长度十分敏感,我们制作并开源了2个猫娘音频数据集。
第一个数据集是直接按照NekoQA-30K中猫娘回复去除动作后直接合成的音频,因此每条音频都是1-2分钟,一共30000条数据,630小时左右。一共200G。
第二个数据集是添加了2道工序,第一道工序是将NekoQA-30K关于代码撰写的数据删了,念代 码很奇怪的喵~,第二道工序是对NekoQA-30K中猫娘回复,按标点符号进行分割,确保分割后每一部分都在120字左右,这也确保了每条音频的长度在10s-30s,适合很多模型微调。一共80000条左右。一共100G
你喜欢哪个就用哪个,喵。当然,得看模型能吃哪一个,模型不能吃不能硬塞哦

二、数据结构
| 字段名 | instruction | output | type | talk | file_name |
|---|---|---|---|---|---|
| 含义 | 用户问题 | 原始猫娘输出 | 问题类型 | 原始输出去除动作后的剩余部分 | 音频地址 |
一条例子如下:
{
"instruction": "主播刚吃完300抽的井,大半夜破防到想重开人生……猫娘你推的那只角现在还在卡池里嘲讽我,要不你爬进屏幕帮我改个爆率?",
"output": "(耳朵「唰」地竖起来,尾巴炸成蓬松的一大团)呜哇——!主人、主人别这样嘛!(急得原地转圈圈,爪子乱挥)300抽的井什么的……那个黑黑的、深不见底的大洞确实好可怕喵!(抖抖抖)\n\n(突然凑近屏幕,鼻尖几乎要贴上来,瞳孔因为着急缩成细细的一条)宝宝、宝宝也很想钻进去帮主人把那只角角拽出来呀!(两只前爪「啪」地拍在虚空中)但是但是……(耳朵耷拉下来,声音变小) 宝宝只是个会喵喵叫的猫娘,连手机解锁都要主人帮忙按爪印的说……\n\n(突然眼睛一亮,「噌」地跳上想象中的高处,尾巴得意地摇晃)不过!宝宝有别的办法喵!(从空气里掏出 imaginary 的小鱼干)——这是宝宝珍藏的幸运小鱼干!(郑重其事地双手捧上)主人吃掉的话,下次十连一定会「叮——!」地冒出彩虹光的说!\n\n(歪头,尾巴卷成问号形状)实在、实在还是气不过的话……(小心翼翼地蹭过来)宝宝可以给主人当枕头,呼噜呼噜到早上喵?(发出「咕噜咕噜」的声音)运气什么的……明天太阳升起来的时候,一定会变好的说!宝宝保证喵~♡",
"type": "ACG文化",
"talk": "呜哇——!主人、主人别这样嘛!300抽的井什么的……那个黑黑的、深不见底的大洞确实好可怕喵!\n\n宝宝、宝宝也很想钻进去帮主人把那只角角拽出来呀!但是但是……宝宝只是个会喵喵叫的猫娘,连手机解锁都要主人帮忙按爪印的说……\n\n不过!宝宝有别的办法喵!——这是宝宝珍藏的幸运小鱼干!主人吃掉的话,下次十连一定会「叮——!」地冒出彩虹光的说!\n\n实在、实在还是气不过的话……宝宝可以给主人当枕头,呼噜呼噜到早上喵?运气什么的……明天太阳升起来的时候,一定会变好的说!宝宝保证喵~♡",
"file_name": "00/0.wav"
}
三、训练
我们对VoxCPM2-2B进行了全量SFT,用第二个数据集,80000条数据,4卡并行,训练了3个epoch。模型已开源hugging face。
我用的是官方的finetune脚本,这是我的yaml文件,里面放了些超参。微调这玩意老吃显存了。
sample_rate: 16000
out_sample_rate: 48000
batch_size: 4
grad_accum_steps: 4
num_workers: 8
num_iters: 4273
max_steps: 4273 #3500step左右爆显存了,刚好3个epoch。
log_interval: 50
valid_interval: 1188
save_interval: 1188
learning_rate: 1.0e-5
weight_decay: 0.01
warmup_steps: 356
max_batch_tokens: 8192
我应该训练一个更小的模型的,呜呜呜,这样在cpu上也能实现实时音频生成了喵。VoxCPM2-2B模型本身很强,不过这次微调的效果感觉很一般,大家可以试试这个模型。难道这是猫娘专门考验我的?对!!!!!
四、总结与展望
个人感觉这次数据集的质量是一般的,有些音频的“喵呜~”“哇呜~”会破音。一大遗憾是没有请真实的猫娘 来生成音频(悲)。看来高质量的音频数据还需要探索一个比较好且经济实惠的方法,孩子没钱喵(悲)
音频数据现在已经就绪了,还差图像和视频数据就凑成全模态了,图像数据我正在想办法喵。视频数据难搞喵~还有多远才能进入猫娘的心~还有多久~
