饭盒里的女儿情
今天在微信中友人给我发送了一段有趣的视频。这段视频演示一段清新优雅的弹拨乐:女儿情来自于饭盒上的九条橡皮筋,令人不禁感慨: 飞花摘叶皆可伤人,草木竹石均可为剑,诚不我欺也.
▲ 图1 利用饭盒演奏的音乐
作为五音不全的我在欣赏音乐的同时,不禁要问:虽然曲调好听,但这个饭盒弹拨乐器音调准吗?
当然要回答这个问题,就需要借助一点点信号处理的知识。
利用 如何从MP4视频文件中抽取MP3音频? 介绍的方法把微信中下载的MP4视频中提取相应的音频。由于原来的视频中音量比较小,使用 Audacity 软件对音频进行了初步处理,提升了音频数据音量。
时间波形
下面是视频中音乐时间波形,显然这只是告诉我们声音随着时间变化的大体趋势,但如果要回答饭盒乐器的质量(音调、音色)问题,还无法直接获得答案。
▲ 图2 音乐数据的波形
频谱波形
乐器的音调反映在数据的频谱上。下面是利用短视傅里叶变换获得音乐数据的频谱随着时间变化的波形。
- 短时FFT参数:
-
频率范围
:10~2000Hz
时间长度
:100ms
▲ 图2.1 音频频谱随着时间变化的情况
从频谱的变化可以看到音乐中音节对应的基频以及所包含的高斯谐波。为了获得随着音乐进展它的基频的变化,使用 scipy.signal.spectrogram 绘制出音乐的时频联合分布,如下图所示。
下图横坐标是音乐的时长,纵坐标是对应一段时间(100ms)的频谱。为了凸显音频中小的频率分量,对频谱幅度进行了饱和处理。
▲ 图2.2 音乐的时频联合分布
上图中可以看出饭盒乐器中音节分布结构。丰富的高频分量增添了乐器的感染力。
为了评价饭盒演奏的音调是否准确,需要获得每一时刻主要基频频率。下面通过对FFT结果频率峰值的搜索,可以获得每一段对应的频率峰值参数(频率值与幅度值)、
▲ 图2.3 频谱峰值对应的频率和幅值
上图蓝色曲线表示对应时刻音乐的基频频率,红色曲线表示基频幅值。基频幅度变化来看,这符合弹拨乐器振荡指数衰减的规律,每一个波动所持续的时间大约只有0.3秒,快速的衰减对表现曲转悠扬的歌曲不太有利,因此在演奏中,使用了连续促拨的方法来实现声音的连续。
现在就剩下一个问题了:每个音节的频率准不准确?
对于上面所得到的频率曲线的幅度进行直方图统计,可以看到整个演奏过程中的音节分布。
▲ 图2.4 峰值频谱的直方图
在上图中,对于所有低于250Hz的频率分量都属于背景噪声对应的频率。高于1000Hz的频率分量应该属于基频的谐波分量。下面把频率中位于 350Hz ~ 1000Hz的分类绘制出来。
根据“女儿情”曲调,将音乐中频谱所包含的基频分布进行了标注。从低频到高频分别对应了第一个琴弦 到 第九个琴弦的震动基频,下面也给出了对应歌曲中的音符。
▲ 图2.5 根据音乐曲调给出对应琴弦的频率分量
很神奇的是,在看似均匀间隔的琴弦中,居然两个半音阶(7-1、3-4)所对应的频率分量居然也大体符合音节的数值。为什么呀?
为了确定琴弦定音是否准确,还需要把音节频率同时绘制出来。频谱中 3 的幅度最高,以它所对应的频率 f3=695.9Hz为基准,按照 十二平均律 计算出其它八个音对应的频率。如下图所示.
通过对比,可以看到在乐器的九根琴弦中,低音6 、7 对应的频率偏差比较大,其余琴弦居然与正常音节很接近。
▲ 图2.7 根据十二平均律计算所有琴弦应该对应的频率
至此我们对于上面饭盒音乐中各个音节的频率进行了分析,看到了在一个八度范围内琴弦的频率大致符合十二平均律的分布,这是优雅曲调演奏的基础。
看似均匀分布的琴弦中,两个半音阶结构大致准确,这令人感到惊讶。在结构上看不出(7、4)两根琴弦有啥特殊之处。
▲ 图2.6 饭盒每个琴弦对应的音节频率
饭盒音乐之所以感动我们,并不是它准确的音准和丰富的音色,而是那拨动琴弦手指背后拥有丰富情感的心灵,这种情感伴随着“漠河舞厅”的音乐可以跳出往世今生的永远。
■ 相关文献链接:
● 相关图表链接:
- 图1 利用饭盒演奏的音乐
- 图2 音乐数据的波形
- 图2.1 音频频谱随着时间变化的情况
- 图2.2 音乐的时频联合分布
- 图2.3 频谱峰值对应的频率和幅值
- 图2.4 峰值频谱的直方图
- 图2.5 根据音乐曲调给出对应琴弦的频率分量
- 图2.7 根据十二平均律计算所有琴弦应该对应的频率
- 图2.6 饭盒每个琴弦对应的音节频率
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/122922190
- 点赞
- 收藏
- 关注作者
评论(0)