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