⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
个人网站:https://jerry-jy.co/

❗❗❗知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我

波形图展示


一、任务需求

声波、音波,是一种波,因此我们可以使用波形图对声音进行展示。

要求:

  • 用包络视图绘制单音波形
  • 立体声波形
  • 具有透明度的谐波和冲击波源

二、任务目标

1、学习用包络视图绘制单音波形
2、学习立体声波形
3、学习带有透明度的谐波和冲击波源

三、任务环境

1、jupyter开发环境
2、python3.6
3、tensorflow2.4

四、任务实施过程

加载工具

import librosa
import librosa.display
import matplotlib.pyplot as plt

接下来我们依次使用如下三种方式绘制波形图:

  1. 用包络视图绘制单音波形
  2. 立体声波形
  3. 具有透明度的谐波和冲击波源
choice = '/home/jovyan/datas/admiralbob77_-_Choice_-_Drum-bass.ogg'
choice_hq = '/home/jovyan/datas/admiralbob77_-_Choice_-_Drum-bass.hq.ogg'
y, sr = librosa.load(choice, duration=10)
y_hq, sr_hq = librosa.load(choice_hq, mono=False, duration=10)

将音频分解为谐波和冲击波源

y_harm, y_perc = librosa.effects.hpss(y)
# 用包络视图绘制单音波形
fig, ax = plt.subplots(nrows=3, sharex=True,figsize=(14,5))
librosa.display.waveshow(y, sr=sr, ax=ax[0])
ax[0].set(title='Envelope view, mono')
ax[0].label_outer()

# 立体声波形
librosa.display.waveshow(y_hq, sr=sr_hq, ax=ax[1])
ax[1].set(title='Envelope view, stereo')
ax[1].label_outer()

# 具有透明度的谐波和打击乐组件
librosa.display.waveshow(y_harm, sr=sr, alpha=0.5, ax=ax[2], label='Harmonic')
librosa.display.waveshow(y_perc, sr=sr, color='r', alpha=0.5, ax=ax[2], label='Percussive')
ax[2].set(title='Multiple waveforms')
ax[2].legend(bbox_to_anchor=(1,1), loc='upper left', ncol=1)

plt.tight_layout()

上图依次显示的是“单声道”、“stereo”和“谐波+冲击波”的波形图

放大图以显示原始样本值

fig, (ax, ax2) = plt.subplots(nrows=2, sharex=True,figsize=(12,6))
ax.set(xlim=[6.0, 6.01], title='Sample view', ylim=[-0.2, 0.2])
# 绘制原始信号
librosa.display.waveshow(y, sr=sr, ax=ax, marker='.', label='Full signal')
# 绘制谐波
librosa.display.waveshow(y_harm, sr=sr, alpha=0.5, ax=ax2, label='Harmonic')
# 绘制冲击波
librosa.display.waveshow(y_perc, sr=sr, color='r', alpha=0.5, ax=ax2, label='Percussive')
ax.label_outer()
ax.legend()
ax2.legend()

第一幅图显示的是原始音频波形,下图显示的是被分解为谐波和冲击波的波形图。

五、任务小结

本实验完成绘制波形图对声波进行展示。通过本实验我们学习到了波形图展示的相关知识,需要掌握以下知识点:

  • 用包络视图绘制单音波形
  • 立体声波形
  • 具有透明度的谐波和冲击波源

–end–

说明

本实验(项目)/论文若有需要,请后台私信或【文末】个人微信公众号联系我

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐