【CRIWARE】BEATWIZ功能解说故事 第四话:最新Beatwiz功能介绍特别篇

发表于2021-02-23
评论0 7.7k浏览
640?wx_fmt=jpeg

BEATWIZ功能解说故事 第四话:

最新Beatwiz功能介绍特别篇 使用Constant-Q变化进行和弦解析的现状

 

大家好,我是CRIWARE的增野。

  • 第一话是关于“打节拍的秘密”,
  • 第二话是关于“乐曲的热闹程度以及乐句解析”,
  • 第三话是关于“主唱分离与主旋律的乐谱生成”, 我们做了简单的介绍。

    本来预定全部三话,这次作为附加的特别篇,如同标题所写的我想简单的介绍一下Beatwiz最新搭载的功能“和弦解析”的现状。这个“和弦解析”并不是由以前的方法进化而来,而是从根本上替换解析手法,使用新的“Constant-Q变换”的解析手法来解析乐曲。
    在这Beatwiz出生15年的时候,这次实装的“Constant-Q变换”以及随之而来的“和弦解析”,在Beatwiz的历史中也是非常大的进化。
    毫不夸张的说现在的Beatwiz以及有了和以往的不是一个次元的解析能力。
    这次我们就来探究这个叫做“Constant-Q”的这个超强力的魔法的秘密。
     
图片

▲只需输入乐曲就可以自动输出和弦的构成,调号,乐句,强度符号。



 

关于主旋律乐谱生成(eMUTE)・・・


上一回里(第3回)介绍的,在CEDEC2019上我们介绍了关于输入一个带有主唱的乐曲,然后通过分离主唱的部分,最后获取主旋律的乐谱的eMUTE。(https://cedil.cesa.or.jp/cedil_sessions/view/2048)
不过,在发表演讲的时候,我就已经发现这个eMUTE解析系统存在着几个大的问题。问题为以下5点。

 

  1.  一些听感上能够很明确的听见的主旋律无法出现在乐谱上。
  2. 像是一个吉他边弹边唱这种单纯的构成,也会出现互相干涉的现象导致乐谱出现混乱。
  3. 无法解析那些加了Chorus或者delay的声音。
  4. 无法解析两个人以上歌唱的曲子。
  5.  有些领域的曲子的正确率基本上为0。


 



eMUTE 的主旋律分析手法的流程如下。

640?wx_fmt=png

问题1和2主要是因为上图绿色所示的“歌声分离滤波器(CSV-HA)”的性能不够为原音。问题3和4主要是因为上图粉色所示的“音高识别(AMDF)”只能识别单音。问题5则是上图红色所示的“Post Filter”的时候在以下两个假设“歌声的音高没有瞬间上的很大的变动”以及“无视4分音符里超过1个音阶的变动”不成立的曲子中会出现。不满足这两种假设的领域其实就是约德尔,实际上使用了约德尔独特的唱法的音高快速切换的部分,解析的正确率几乎是0%。

eMUTE中实装的参数大约有20个,从用户的角度来看都是些很奇怪的参数的集合体,参数的调整经常就会花上半天时间。这样一来就出现了,“自己用耳朵来听反而更快”这样本末倒置的状况。能够解决以上的5个问题的策略的里面,既高速精度又高的在当时完全想不出来,完全进了死胡同。

 

 

 

 

重回离散傅里叶变换的基础

 

“遇到困难的时候就重温基础”,经常会有人这样说。因此这次,我决定回到最开始认为音高解析里无法使用的,离散傅里叶变换的基础里。首先,采样率为44,100Hz的CD的波形,以窗口幅度1,024进行傅里叶变换之后,则会输出如以下的,512个实数部和512个虚数部。

640?wx_fmt=png

 

512个频率领域的各自的增益(power)和位相(phase)可以使用以下公式求得:

640?wx_fmt=png

 

将增益的部分图表化之后,其实就是高级的声音机器等里可以见到的“波谱分析器”,因此这个波谱分析器并不包含上图右边的位相成分。

640?wx_fmt=png

 

512个频率领域的中央频率如下图所示:

640?wx_fmt=png

在这里最重要的是,这个傅里叶变换的频率分解能,是用采样率除以窗口幅度得到的(比如这里,44,100Hz(采样率)/1,024(窗口幅度)=43.066Hz(频率分解能))。在这里,我们做以下的逆向思考:

 采样率除以窗口幅度得到频率分解能
 

波谱分析器表示的是频率分解能的整数倍的倍音的强度。



这样的话:对想要获取的音阶(MIDI的Key编号)所对应的频率的窗口幅度进行逆运算,每个音阶都通过不同的窗口幅度计算增益,是不是就能获得每个MIDI的key编号对应的输出。这个就是叫做Constant-Q变换(CQT)的方法。关于Constant-Q的实现方法,技术的详细,以及高速化,由于篇幅关系这里就不做详细说明,从后面的CEDiL的链接里可以下载到我的CEDEC2020的演讲稿,可以去参考里面的内容。在这里,我说明一下使用了Constant-Q变换的乐曲解析的一个比较大的特征。以下是利用了Constant-Q变换的乐曲解析的例子“DoMiSo”,也就是同时奏响“C的3和弦”的结果。

640?wx_fmt=png

 

作为Constant-Q变换的特征,下面的横轴表示MIDI的note编号,可以看到,DO(60),MI(64),SO(67)有三处很明显的波峰。这表示了从以前的AMDF无法解析的和弦可以通过Constant-Q变换来解析。这对于和弦解析,乐句解析等等各种乐曲的解析来说都是非常强力的武器。毫不夸张的说,Beatwiz获得了Constant-Q变换这种最终boss级别的强力魔法。使用Constant-Q变换的解析的现状现在最新的Beatwiz中使用Constant-Q变换,实装了以下的功能。

640?wx_fmt=png

▲和弦解析以及Code名称的自动生成和结果的乐谱输出

 

640?wx_fmt=png

▲调号与旋法的解析

 

640?wx_fmt=png

▲根据解析后的和弦进行乐句和副歌的解析以及强弱符号的自动生成现在的解析速度,使用标准配置的Windows解析1分钟的原曲需要大约0.5秒的时间,一般长度的曲子大概2到3秒可以解析完毕。今后,不仅仅是解析精度的提高,还有主旋律分离,演奏法符号的追加等等,进行一系列的功能追加和改良。

最后全4话的Beatwiz功能解说物语大家感觉如何呢?15年前,“想用喜欢的音乐来玩音游”这样的愿望中诞生的Beatwiz,到现在已经能够解析各种各样的音乐了。不仅仅是音游的制作,和各种音乐同步的各类演出的制作也可以使用Beatwiz。想要了解更多的商业细节,请联系我们。
 

640?wx_fmt=png

 

参考文献
 

- CEDEC2019演讲的eMUTE(乐谱生成引擎)的滤波器,以及AMDF法的音高识别技术的详细,请参考CEDiL(CEDEC Digital Library)

https://cedil.cesa.or.jp/cedil_sessions/view/2048

- CEDEC2020演讲的使用Constant-Q变换的乐曲解析以及和弦解析的详细请参考

https://cedil.cesa.or.jp/cedil_sessions/view/2331

- Gamesindustry发表的CEDEC 2020演讲的详细

https://jp.gamesindustry.biz/article/2009/20090201/

- AVWatch发表的关于BEATWIZ和弦解析功能的详细

https://av.watch.impress.co.jp/docs/series/dal/1300658.html

  • 允许他人重新传播作品,但他人重新传播时必须在所使用作品的正文开头的显著位置,注明用户的姓名、来源及其采用的知识共享协议,并与该作品在磨坊上的原发地址建立链接
  • 可对作品重新编排、修改、节选或者以作品为基础进行创作和发布
  • 不可将作品进行商业性使用
  • 需在以作品基础上创作的演绎作品上适用相同类型的知识共享许可条款

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引