当前位置:网站首页>英雄联盟|王者|穿越火线 bgm AI配乐大赛分享
英雄联盟|王者|穿越火线 bgm AI配乐大赛分享
2022-07-06 16:47:00 【weixin_42001089】
前言
最近和同事打了一个多模态的比赛,最后获得第一名。分享给大家,这里有个小插曲,本来初赛期间一直处于领先地位,结果最后一天被突然反超,不过在答辩的时候翻盘了,最后比赛分数主要是通过对技术思路(占30%)、理论深度(占30%)、现场表现(占10%)和准确率(占30%,由初赛的得分进行换算)四个维度的分数计算。
废话不多说,开始主题
赛题
简单来说就是给视频自动匹配bgm,涉及到的游戏共有三种:王者荣耀 (HoK)、英雄联盟 (LOL) 和穿越火线 (CF)。目标就是给一个游戏video,输出其embedding以及所有候选bgm区库的embedding。
评价指标如下:
由于授权问题,这里就不提供给大家数据集了,但是笔者网上找了一个类似的数据【侵权可联系笔者删除】,可以感受下(由于csdn上传不了,大家想看可以看笔者知乎:)
EDA
我们对数据进行了摸底
(1)视频画面示例:
可以看到对于同一种游戏的画面来说其实是比较相似的
(2)时长
训练集: 长尾分布, 中位数: 67.6s, 平均数: 94.6s。测试集: 时长均为 32s。
(3)有分离好的主播解说音频数据, 但 分离后BGM 噪声偏大。
(4)缺乏文本数据 (比如标题, ASR 等)
Method
整体框架
总体上也很简单是个双塔模型,输入端有文本、音频、视频三种模态。
基于前期的摸底,我们认为视频的画面是特别相似的,除非能给精确的提取出转场等有代表性的帧否则随机采帧是没有多大帮助的,而主播的解说是非常关键的,音调(音频)可直接体现激动、搞笑等等情绪,其次就是解说的内容(文本)也是很关键的。
注意这里不是说视频不重要,这里所说的是性价比,重心放到后两种更容易在一定时间内拿到较高的收益,如果往技术深度上走,视频模态是一定要好好挖掘的。
为了突出重点,下面只说有用的策略。
(1)音频
首先说音频的特征提取,目前大家使用比较多的是 VGGish,答辩的时候也发现大多数用的基本都是 VGGish,但是我们采用了HuBERT,它是一种基于bert思想训练的一个音频预训练模型,框架如下:
更多细节大家可以看:Light Sea:HuBERT:基于BERT的自监督 (self-supervised)语音表示学习
(2)数据增强
官方给的数据集是很少的,如何充分利用好数据集也是一个考虑的点,我们这里是对视频进行了切分。以 20s 为间隔对视频进行切割, 视频和相应 BGM 同步切割, 进行数据增强. 我们对切割时长也进行了实验,5s, 20s, 32s, 其中 20s 效果最好。
要点: 训练和预测采用相同时长, 保持策略一致,不然效果会很差
(3)loss
最后要求给出的是embedding,可以猜到大概率是根据做欧式相似度来判断结果的,所以我们这里采用了基于对比学习的Triplet Loss
核心代码:
最终:
收获
看到这里其实trick就已经讲完了,是不是感觉很简单,但是!笔者认为上面不是最重要的,接下来才是最重要的那就是:整个过程中的那些思考和实验细节!
关于视频模态,虽然一开始我们就预期其不会有太大的收益,但是还是实验验证了一下即每个视频片段抽 10 帧图片, 与配音模态融合,结果确实是没有收益。
另外对配音进行 ASR, 利用 BERT 提取特征, 效果无提升,这个挺意外的,很不符合预期,追了一下原因可能是ASR的效果不好,这里是直接用了一个开源模型识别的,文本结果也没有标点符号,由于时间原因这里也没再试了。
添加游戏类别预测作为辅助任务, 效果无提升,这里一个可能的解释就是BGM 具有通用性。
另外一个插曲就是前期本来遥遥领先榜单第一,但是最后一天晚上突然有个同学猛的上升了14名,到了第二,接着最后一个小时上到了第一,这一度让我们非常好奇究竟是什么trick?哈哈,最后得知整个的关键就是使用了两个音频很强的backbone,尽管很多选手设计了一些小trick点,但是在绝对强模型面前都黯然失色,由此可见在这个任务上解说的重要性以及基线模型选择的重要性。
除此之外还有一些小的碎碎念的点,就不说了,感兴趣的可联系笔者
探索方向
这里我们也给出一些后续可能优化的点吧。
(1)文本模态:能否提供一些比如标题, tag等文本模态以及一个好的ASR解说文本,这块天花板还是很高的。
(2)如何更好捕获视觉模态特征? 比如场景切换、游戏大招特效等等的关键帧。
(3)配音和 BGM 音频不共享同一个 backbone,我们的框架目前是共享的,理论上来讲解说和bgm的分布还是不一样的
(4)不同模态特征如何更好的交互?
大家如果有感兴趣的可以一起交流~
关注
欢迎关注,下期再见啦~
欢迎关注笔者微信公众号:
github:
Mryangkaitong · GitHubhttps://github.com/Mryangkaitong
知乎:
边栏推荐
- 什么是响应式对象?响应式对象的创建过程?
- 2022年PMP项目管理考试敏捷知识点(9)
- Pinia module division
- 48页数字政府智慧政务一网通办解决方案
- 【vulnhub】presidential1
- 【vulnhub】presidential1
- 使用yum来安装PostgreSQL13.3数据库
- Tourism Management System Based on jsp+servlet+mysql framework [source code + database + report]
- Jenkins' user credentials plug-in installation
- 工程师如何对待开源 --- 一个老工程师的肺腑之言
猜你喜欢
On February 19, 2021ccf award ceremony will be held, "why in Hengdian?"
量子时代计算机怎么保证数据安全?美国公布四项备选加密算法
Liuyongxin report | microbiome data analysis and science communication (7:30 p.m.)
Business process testing based on functional testing
Everyone is always talking about EQ, so what is EQ?
The way of intelligent operation and maintenance application, bid farewell to the crisis of enterprise digital transformation
Building lease management system based on SSM framework
Introduction to GPIO
Racher integrates LDAP to realize unified account login
Introduction au GPIO
随机推荐
vector的使用方法_vector指针如何使用
[vector retrieval research series] product introduction
web渗透测试是什么_渗透实战
DAY FOUR
Business process testing based on functional testing
openresty ngx_lua子请求
Data operation platform - data collection [easy to understand]
ldap创建公司组织、人员
48页数字政府智慧政务一网通办解决方案
Liuyongxin report | microbiome data analysis and science communication (7:30 p.m.)
Introduction au GPIO
C language input / output stream and file operation [II]
TypeScript增量编译
Oracle中使用包FY_Recover_Data.pck来恢复truncate误操作的表
Leecode brush question record sword finger offer 56 - ii Number of occurrences of numbers in the array II
The programmer resigned and was sentenced to 10 months for deleting the code. Jingdong came home and said that it took 30000 to restore the database. Netizen: This is really a revenge
uniapp实现从本地上传头像并显示,同时将头像转化为base64格式存储在mysql数据库中
37 pages Digital Village revitalization intelligent agriculture Comprehensive Planning and Construction Scheme
2022/2/12 summary
System activity monitor ISTAT menus 6.61 (1185) Chinese repair