声音的波形实验(用波形检测乐曲音调的强弱)
声音的波形实验(用波形检测乐曲音调的强弱)在声振动中,振幅是声压与静止压强之差的最大值。声波的振幅以分贝为单位。声波振幅的大小能够决定音强。——百度百科振幅的物理意义,振幅描述了物体振动幅度的大小和振动的强弱。发音体振动的位移幅度,振幅大小同发音受到的外力大小有关,振幅的大小决定声音的强弱。——互动百科3、人工成本的耗费。不仅仅薪酬的消耗,人工精力也是消耗。不可能像机器一样,一致保持一种“性能”。精力、状态不同,导致的工作结果也会不同,最终选出的分类、歌单自然也质量参差不齐。4、曲库一般量非常大,多则千万首乐曲,人工挑选不太可能百分百的将歌曲都予以筛选一遍,如果再加上返工优化,那么工作量是非常大的。曲库不能全部输出,它的存在意义就会折扣。声音的波形表示着它自身的物理属性。波形中随着时间轴幅值的变化表示音的强弱变化。
大家在日常听音乐时,偶尔会有对一些音调低弱的、或相反音调高昂的乐曲有需求。例如:伤感轻柔的流行歌曲,或轻音乐、或高昂的振动人心的乐曲。普遍满足这类需求的方式是通过人工编辑的歌单、分类。今天给大家分享的是我个人寻索的一种通过程序计算乐曲波形自动匹配、区分乐曲音调强弱的方法。
传统解决方案缺点
面对上文中所描述的需求,传统的解决方案是从分类或者歌单当中选取歌曲。这种选取歌曲的方式是通过人工编辑的方式实现的,缺点非常明显:
1、会存在主观层面的局限性,听觉、感觉、理解上,人人各异,选出来的同类强弱音调的歌曲自然会不同,即:无一个标准。
2、缺乏可维护性。一个分类、歌单如果人工筛选挑出一遍,那么再人工去维护优化一遍,这几乎是无意义的,也无标准可参考去优化。在没有明显的错误情况下,人工优化空间很小。随着不断新的歌曲的出现,人工去翻旧账优化历史歌单、分类的意义又不大。
3、人工成本的耗费。不仅仅薪酬的消耗,人工精力也是消耗。不可能像机器一样,一致保持一种“性能”。精力、状态不同,导致的工作结果也会不同,最终选出的分类、歌单自然也质量参差不齐。
4、曲库一般量非常大,多则千万首乐曲,人工挑选不太可能百分百的将歌曲都予以筛选一遍,如果再加上返工优化,那么工作量是非常大的。曲库不能全部输出,它的存在意义就会折扣。
波形测算方法
声音的波形表示着它自身的物理属性。波形中随着时间轴幅值的变化表示音的强弱变化。
振幅的物理意义,振幅描述了物体振动幅度的大小和振动的强弱。发音体振动的位移幅度,振幅大小同发音受到的外力大小有关,振幅的大小决定声音的强弱。——互动百科
在声振动中,振幅是声压与静止压强之差的最大值。声波的振幅以分贝为单位。声波振幅的大小能够决定音强。——百度百科
即按照此原理,进行以下工作:
1、将乐曲的波形幅值一一取值。
2、对音调进行强弱等级划分,我个人的具体划分等级为“强中弱”三个等级音调。具体的划分幅值区间是非线性的。之所选择非线性是因为人们对音强弱感知是非线性的。这种非线性的划分其实也具有人工主管性,不过这个仅仅是一个程序参数,完全可以不断进行大量歌曲的实验,进行优化。所以初始的误差并不影响整体。
3、将一首乐曲的所有波形幅值进行按等级区间进行比较,分别落在每个等级区间的占比如何。在哪个等级区间占比越大,说明乐曲越倾向于哪个区间的音调强弱程度。
在这里,我着重说一下,其实乐曲在数字流媒体中播放时,是数字信号,离散的。类似视频是一帧一帧的连续,乐曲也是由有限个“音点”组成的。例如我们看到的上面一张波形图,被放大后其实是:
相信大家看到这里便一目了然了。明白我说的取值、然后匹配所在每个区间的比例等等的意思了。
4、得到每首乐曲的在每个强弱等级的占比,然后再进行乐曲之间的相似对比,即可将同类的歌曲分为一类。如此一来,强音、弱音即可分辨而来。其实可以几秒即可跑完一首歌曲的,面对百万、千万的乐曲库,在服务器端同时跑一定数据乐曲,估计很快即可跑完。
5、以上都是程序中的原理,至于产品层面的设计,其实非常类似于现在的歌单、分类,并无多难、深层次的东西在里面。
好了,说了这么多,不Demo一下,是不是只管卖弄,不够意思?就把自己用Java编写的效果图拿出来献丑啦~(在图片最下面不断变化的就是这首乐曲音的强中弱音在已播放音中的占比值,是滚动动态的,因为程序不知道后面的音的强弱多少,程序跑多少才能知道多少占比值。)
我也整理了一些歌曲的测算结果,大家也可以用播放器软件试听一下强弱度是不是我个人测出来的顺序:
整个过程就是这样了。但可能有些人会提到,波形是复杂的各个频率波形的“集合”,而人们对不同频率的强弱听觉是不同的,正如韩宝强先生的著作《音的历程-现代音乐声学导论》所讲:“相同音量的声音出现在不同音区时,我们听起来响度会有差异。”(并且该书中给出了“等响度曲线”。)
然而按我个人以上的算法其实是把不同频率下的音强弱感知视为同一了。下面我来解释一下:其实歌曲音频的确是复杂。按照“等响度曲线”所描述的,只有高频或低频中的感觉会差异比较大,而一首乐曲并非只有高频和低频阶段,往往是各个频段都包含在内。尽管我可以这么解释,但的确是存在误差的,尤其是对高频或低频占比比较大的乐曲,误差较大,仍然有待优化。
就到这儿了。周末无所事事,写了这篇稿子,把2016年的想法和大家分享一下。这也是我计划写一个《产品与技术》系列的第一篇文章。虽然有些偏向技术,但回看一下你会发现,这其实是产品的体验思维贯穿始终。以解决用户听音乐的需求为出发点,以用户对乐曲强弱的感知为体验点,技术依然只是实现手段。我们产品经理的口号是:“技术改变产品,产品改变世界”,耶~~~
新的一周,祝大家工作顺利。
对了,别忘了来我的其他文章看看哦~~评论,点赞、打个赏~~
本文由 @中人PM 原创发布于人人都是产品经理。未经许可,禁止转载。