之前小程介绍过怎么绘制音频的波形图(指振幅图),振幅是声音的一个特征,反应了声音能量的大小。频率,是声音的另一个特征,反应了声音音调的高低。对频率的直观描述或分析,需要使用到语谱图等手段。
本文介绍如何通过python的pyplot来绘制音频的语谱图, 正如使用pyplot来绘制波形图一样。
语谱图,也就是语音频谱图,也叫时频图,横坐标是时间,纵坐标是频率。
先来看一下,audition绘制出来的一个语谱图,是长这个样子的:
语谱图示例
留意,是否有看到一条条有亮度的条纹了?
这些叫声纹,表示在某个时间区域内,频率集中在某个值上。并且,用亮度来表示集中的频率。整个图,是频率的声纹集合。
通过语谱图,可以分析出语音的内容,诸如声母、音调之类的数据,可以分析泛音频率的分布,比如这个歌手的声音覆盖了哪些频段(而且是不是平稳持续等),当然还可以拿不同时间区间的声纹进行对比以得到更多信息,等等。
你是否留意到上图很简洁,明显有很多间隔像是静音一样,那就对了,因为上图是我录制的一段语音的表现,这段语音只是在简单数数,所以就很简单,实际的情况比如歌曲,频谱图的内容会丰富很多。
绘制语谱图的办法,跟绘制波形图很相像,小程不再贴完整的代码了,你可以参考之前的文章。
这里,只给出差异的代码,请看下面的截图:
绘制语谱图的关键代码
运行起来,就可以看到语谱图了,小程提供几个截图。
单通道的语谱图:
单通道的语谱图
再比如,双通道的语谱图:
双通道的语谱图
至此,绘制语谱图的过程与效果介绍完毕了。
总结一下,本文是之前“绘制波形图”的延续,介绍了语谱图的绘制,相比与波形图的绘制,只需要简单的代码改动,比较简单。
hello
网友评论