科技部网站方案,网站建设内容模板,软件工程哪个学校最好,在线做网站索引⚠申明#xff1a; 未经许可#xff0c;禁止以任何形式转载#xff0c;若要引用#xff0c;请标注链接地址。 全文共计3077字#xff0c;阅读大概需要3分钟 #x1f308;更多学习内容#xff0c; 欢迎#x1f44f;关注#x1f440;【文末】我的个人微信公众号#xf… ⚠申明 未经许可禁止以任何形式转载若要引用请标注链接地址。 全文共计3077字阅读大概需要3分钟 更多学习内容 欢迎关注【文末】我的个人微信公众号不懂开发的程序猿 个人网站https://jerry-jy.co/ ❗❗❗知识付费止白嫖有需要请后台私信或【文末】个人微信公众号联系我 语音识别---纯音 纯音一、任务需求二、任务目标1、掌握纯音信号生成方法2、掌握两个纯音信号的合成方法 三、任务环境1、jupyter开发环境2、python3.63、tensorflow2.4 四、任务实施过程1、生成单独的纯音2、两个纯音的合成 五、任务小结 说明 纯音 一、任务需求
所谓纯音pure tone本质是单一的音。具有音高和响度两个基本特征。前者主要取决于机械波的频率和波长后者主要取决于机械波的振幅。
不同波长的纯音通常是实验室内生成的机械波信号。尽管自然界很少有纯音但对于复杂的声波我们还是可以使用傅里叶变换将多种频率的纯音组合实现近似。因此生成纯音也是很重要的功能。
要求本节实验我们将使用librosa构造给定频率的纯音余弦信号。
二、任务目标
1、掌握纯音信号生成方法
2、掌握两个纯音信号的合成方法
三、任务环境
1、jupyter开发环境
2、python3.6
3、tensorflow2.4
四、任务实施过程
1、生成单独的纯音
首先加载工具
import librosa
import librosa.display
import numpy as np
import IPython.display as ipd
import matplotlib.pyplot as plt然后使用librosa.tone生成纯音该函数有两种方法可以生成纯音如下所示
# 生成440纯音信号
tone440 librosa.tone(440, duration1)# 使用另一种方法生成440纯音信号
tone440 librosa.tone(440, sr22050, length22050)tone440 array([ 6.12323400e-17, 1.25050524e-01, 2.48137848e-01, ...,-3.67329594e-01, -2.48137848e-01, -1.25050524e-01])为了更好的了解什么叫纯音我们绘制出纯音的波形图
plt.figure(figsize(12,2))
librosa.display.waveshow(tone440[:1000],sr22050)可以看出纯音其实就是一条正余弦曲线。接下来我们播放纯音听一听。
ipd.Audio(tone440, rate22050)提取纯音的梅尔频谱图进行观察
import matplotlib.pyplot as plt
fig, ax plt.subplots()
# 生成梅尔倒谱图
S librosa.feature.melspectrogram(ytone440)
librosa.display.specshow(librosa.power_to_db(S, refnp.max),x_axistime, y_axismel, axax)2、两个纯音的合成
实验开始前我们提到复杂信号可以通过傅里叶变换转换成纯音信号的组合。接下来我们将尝试将两个纯音组合成一个新的信号。
首先生成一个110hz的纯音。
tone110 librosa.tone(110, sr22050, length22050)然后将110hz的音频和440hz的音频合成只需简单的加法即可
tone_synth tone110tone440绘制合成前后三种声音的波形图进行比较
fig,ax plt.subplots(nrows3,sharexTrue,figsize(12,6))
# 演示复合波形图
librosa.display.waveshow(tone_synth[:500],sr22050,axax[0],labeltone_synthesis)
# 演示合成复合波形的单一纯音信号
librosa.display.waveshow(tone440[:500],sr22050,axax[1],labeltone_440,colorb)
librosa.display.waveshow(tone110[:500],sr22050,axax[2],labeltone_110,colorr)
[ax[i].set_xlabel() for i in range(2)]
[ax[i].legend() for i in range(3)]plt.tight_layout()从波形图上我们可以很容易的看出第一个“复杂”波形图实际上是由后两个波形合成的。
ipd.Audio(tone_synth,rate22050)从声音上我们也能听出这是高音和低音的两个声音的合成。
五、任务小结
本节实验我们使用librosa构造给定频率的纯音余弦信号并尝试将两个纯音组合成一个新的信号。
信号通过简单的加法即可以实现合成。
–end–
说明
本实验项目/论文若有需要请后台私信或【文末】个人微信公众号联系我