此示例通过使用MATLAB®功能块使用带有Simulink®支持包的Simulink®USTORPLACELST硬件,将如何将音频信号的音频信号转换在Raspberry PI™硬件上的音高。金宝app金宝app
在这个例子中,你将学习如何:
从USB麦克风或连接到覆盆子PI硬件的网络摄像头麦克风获取音频。
使用MATLAB函数块移位所获取音频的音调。
通过覆盆子PI硬件的耳机插孔播放处理后的音频数据。
音高移动是修改音频信号的音高以增加或减少音高的能力。例如,当一辆高速汽车在街上超过你时,当汽车靠近你时,声音的音调会增加,当汽车远离你时,声音的音调会降低。当音频源离接收器更近或更远时,连续的信号以更小或更大的时间间隔到达接收器。这个时间差导致接收机听到的音频的频率发生变化。您可以执行类似的音高转换操作,将音频信号拆分为两个分量,使用不同的时间间隔延迟信号,然后将它们加到一起。这个过程模拟了根据两个信号延迟或重叠的方式增加或减少音调的效果。为了保证统一的功率水平,必须对分裂信号的单个增益进行调制。
虚拟网络计算(VNC)查看器(可选)
树莓派硬件(推荐型号3B或3B+)
音频捕获设备:USB麦克风或网络摄像头麦克风
一对可以插入硬件的3.5 mm耳机插孔的耳机
USB电缆
以太网电缆
连接树莓派硬件和HDMI线的显示器(可选)
在开始本示例之前,我们建议您完成入门Simulink支持包的树莓派硬件金宝app金宝app的例子。
1.将USB电缆的Micro-USB端连接到覆盆子PI和USB电缆的常规USB端到计算机。等到硬件上的PWR LED开始闪烁。
2.将网络摄像头或麦克风连接到硬件上的USB端口之一。请注意,一些网络摄像头绘制过多的电源,可能需要供电的USB集线器进行正常操作。
3.将一对耳机连接到硬件的3.5 mm耳机插孔。
4.使用硬件设置屏幕,配置覆盆子PI网络。
1.在硬件终端中,执行此命令以打开硬件的软件配置工具。
苏达Raspi-Config.
2.2 .在“软件配置工具”界面,选择高级选项并按进入,然后选择声音的并按进入.
3.选择3.5毫米(耳机)插孔选择并按进入.
4.按好吧.
打开音高转移模型。
该模型基于每个区域中的块的功能分为这些区域。
这ALSA音频捕捉块从连接到硬件的麦克风捕获实时音频。的块并指定要捕获音频数据的设备名称设备名称参数。如果您不知道设备的名称,请使用
函数如上所述列表可用的ALSA音频输入设备.listAudioDevices
如果您想从保存在计算机中的音频文件中捕获音频,请替换音频捕获块由一个音频文件读取块,然后指定音频文件的名称文件名称块的参数。
本节包括一个MATLAB函数块,该函数块对采集的音频数据实现基于延迟的基音移算法。
功能块的输入为:
捕获:输出ALSA音频捕捉块作为n-by-c矩阵,其中N每个音频通道的样本,和C是麦克风支持的通道数。金宝app
音高:从-12年
到12.
.
重叠:两个分割组件之间的延迟线的重叠。价值范围来自0.01
到0.5
.
FS:音频数据的采样频率。
resetFlag:用于重置操作的变量漆
函数。在本例中,标志为0.
表示功能未重置。
这Alsa音频播放块将处理后的音频发送到连接到硬件的耳机。双击块并指定音频输出设备的名称设备名称参数。如果您不知道设备的名称,请使用
函数如上所述列表可用的ALSA音频输出设备.listAudioDevices
1.要打开模型配置参数对话框,单击Simulink模型工具栏上的齿轮图标。金宝app
2.在“配置参数”对话框中,选择硬件实现.
3.设置硬件板参数到覆盆子PI.
.此选择会自动填充参数硬件板设置使用raspberry pi的默认值。
4.在硬件板设置窗格中,展开目标硬件资源并选择板参数.指定这些参数值:
设备地址:硬件的IP地址或主机名。
用户名:指定在硬件上运行的Linux系统的root用户名。raspian linux发行版的默认用户名是π
.
密码:指定硬件上Linux系统的root密码。说明Raspian Linux发行版的默认密码为树莓
.
5.点击申请.点击好吧保存更改。
1.在模型工具栏上,将仿真模式设置为普通的
.
2.在“模型”工具栏中,单击“部署到硬件”按钮。在支持包生成代码时,模型窗口的左下角显示状态。金宝app在成功生成代码之后,支持包加载并运行硬件上的代码。金宝app可执行文件启动从音频设备获取实时音频,移动所获取的音频的音高,然后通过硬件的音频插孔播放处理的音频。您现在可以通过连接硬件的一对耳机听到音高移位音频。
您还可以在外部模式下运行该模型,以调整模型中的音调和重叠参数值,并在模拟过程中观察输出音频特性的变化。
用任何其他算法替换音高换档算法,这些算法对于对您的要求具有更好的性能。
将低通无限脉冲响应(IIR)过滤器添加到模型以提高算法的性能。