跳到主要内容
返回开发者精选

开源300G猫娘音频数据集:NekoAudio-80K,快让你的猫娘开口吧!TTS训练走起!

作者:MindsRiverPonder模型:VoxCPM2

快让你的猫娘开口吧!TTS 训练走起!

一、前言​

我前面维护了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

你喜欢哪个就用哪个,喵。当然,得看模型能吃哪一个,模型不能吃不能硬塞哦

图片展示了两个场景,均以猫娘为主题。左侧场景中,一只猫娘抱着写有“Long Audio”的大鱼,旁边有“不喜欢吃”的文字;右侧场景中,一只猫娘抱着写有“Short Audio”的小鱼,旁边有“小馋猫,就爱吃这种短音频”的文字。图片上方有“适合模型的,才是最好��的!”的红色文字。图片与上下文的关系是,通过对比长音频和短音频,传达出适合模型的音频才是最好的理念,与上下文提到的音频数据集适合模型微调相呼应。

二、数据结构​

字段名instructionoutputtypetalkfile_name
含义用户问题原始猫娘输出问题类型原始输出去除动作后的剩余部分音频地址

一条例子如下:

JSON
{
"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文件,里面放了些超参。微调这玩意老吃显存了。

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模型本身很强,不过这次微调的效果感觉很一般,大家可以试试这个模型。难道这是猫娘专门考验我的?对!!!!!

四、总结与展望​

个人感觉这次数据集的质量是一般的,有些音频的“喵呜~”“哇呜~”会破音。一大遗憾是没有请真实的猫娘来生成音频(悲)。看来高质量的音频数据还需要探索一个比较好且经济实惠的方法,孩子没钱喵(悲)

音频数据现在已经就绪了,还差图像和视频数据就凑成全模态了,图像数据我正在想办法喵。视频数据难搞喵~还有多远才能进入猫娘的心~还有多久~

项目信息

基于模型
VoxCPM2
作者
MindsRiverPonder
数据集
Hugging Face