使用树莓派的音频信号移位音高
这个例子向您展示了如何使用MATLAB®功能块和Simulink®树莓派硬件支持包在树莓派™硬件上移动音频信号的音高。
在这个例子中,你将学习如何:
从连接到树莓派硬件的USB麦克风或网络摄像头麦克风获取音频。
使用MATLAB函数块移动获得的音频的音调。
处理后的音频数据通过树莓派硬件的耳机插孔播放。
距变化
音高偏移是一种能够修改音频信号的音高来增加或减少音高的能力。例如,当一辆高速汽车在街上从你身边经过时,当汽车靠近你时,汽车发出的声音的音调会增加,而当汽车驶离你时,声音的音调会降低。当声源离接收器越来越近或越来越远时,连续的信号以或小或大的时间间隔到达接收器。这个时间差导致接收器听到的音频频率发生变化。您可以通过将音频信号分成两个部分,使用不同的时间段延迟信号,然后将它们加到一起来执行类似的音调转移操作。这个过程模拟增加或减少音高的效果,取决于两个信号如何延迟或重叠。为了保证均匀的功率水平,必须对分离信号的个别增益进行调制。
所需的产品2022世界杯八强谁会赢?
虚拟网络计算(VNC)查看器(可选)
所需的硬件
树莓派硬件(推荐3B或3B+型)
音频捕获设备:USB麦克风或摄像头麦克风
一副耳机,可以插入硬件的3.5毫米耳机插孔
USB电缆
以太网电缆
连接树莓派硬件的显示器和HDMI线(可选)
步骤1:连接树莓派硬件进行Pitch Shift
在开始这个示例之前,我们建议您完成开始使用树莓派硬件的Simulink支持包的例子。
1.将USB线的micro-USB端连接到树莓派,将USB线的普通USB端连接到计算机。等待硬件上的PWR LED开始闪烁。
2.将网络摄像头或麦克风连接到硬件上的一个USB端口。注意,有些网络摄像头耗电太多,可能需要USB集线器才能正常运行。
3.将一对耳机连接到硬件的3.5 mm耳机插孔上。
4.使用硬件设置界面,配置树莓派网络。
第二步:更改音频输出模式为耳机插孔
1.在硬件终端执行该命令,打开硬件的“软件配置工具”。
sudoraspi-config
2.在“软件配置工具”窗口中,选择高级选项并按输入,然后选择音频并按输入.
3.选择强行3.5毫米(“耳机”)插孔选项和按输入.
4.新闻好吧.
步骤3:打开螺距换挡Simulink模型
打开音调转变模型。
根据每个区域中块的功能,模型被划分为这些区域。
音频输入
的音频捕获块从连接到硬件的麦克风捕获实时音频。双击该块并指定捕获音频数据的设备名称设备名称参数。如果您不知道设备的名称,请使用
功能如列出可用的ALSA音频输入设备.listAudioDevices
如果要从保存在计算机中的音频文件中捕获音频,请替换音频捕捉被音频文件读取控件中指定音频文件的名称文件名称块的参数。
节距移位算法
本节包括一个MATLAB函数块,该函数块在采集的音频数据上实现基于延迟的基音移算法。
功能块的输入为:
的输出音频捕获块作为n × c矩阵,其中N是每个音频通道的样本,和C麦克风支持的通道数。
音调:半音调的音调变化
-12年
来12
.重叠:两个分立元件之间延迟线的重叠。取值范围为
0.01
来0.5
.Fs:音频数据的采样频率。
类的操作重置的变量
pitchShift
函数。在本例中,标志为0
表示该函数没有被重置。
音频输出
的音频回放块将处理过的音频发送到连接到硬件的耳机。中指定音频输出设备的名称设备名称参数。如果您不知道设备的名称,请使用
功能如列出可用的ALSA音频输出设备.listAudioDevices
第四步:配置Simulink模型
1.要打开模型配置参数对话框,单击Simulink模型工具栏上的齿轮图标。
2.2 .在“配置参数”对话框中,选择硬件实现.
3.设置硬件板参数覆盆子π
.控件中的参数自动填充硬件板设置使用树莓派的默认值。
4.在硬件板设置窗格中,展开目标硬件资源并选择板参数.指定这些参数值:
设备地址:硬件的IP地址或主机名。
用户名:硬件上Linux系统的root用户名。说明Raspian Linux发行版的默认用户名为
π
.
密码:指定硬件Linux系统的root密码。说明Raspian Linux发行版的默认密码为
树莓
.
5.点击应用.点击好吧以保存您的更改。
步骤5:在树莓派硬件上部署Pitch Shift Simulink模型
在硬件选项卡中的模式部分中,选择在船上奔跑然后点击构建、部署和启动当支持包生成代码时,模型窗口的左下角显示状态。成功生成代码之后,支持包加载并在硬件上运行代码。可执行程序开始从音频设备获取实时音频,改变所获取音频的音高,然后通过硬件的音频插孔播放处理过的音频。你现在可以通过连接到硬件的一对耳机听到音调变化的音频。
您还可以在外部模式下运行该模型,对模型中的音高和重叠参数值进行调优,并观察仿真过程中输出音频特性的变化。
其他可以尝试的事情
用性能优于您的要求的任何其他算法替换基音移算法。
在模型中加入低通无限脉冲响应(IIR)滤波器,以提高算法的性能。