这个例子展示了如何在树莓派硬件上使用MATLAB®函数块和树莓派硬件的Simulink®支持包来移动音频信号的音高。金宝app金宝app
在此示例中,您将学习如何:
通过USB麦克风或连接到树莓派硬件的摄像头麦克风获取音频。
使用MATLAB函数块将所获取的音频的音高转移。
通过Raspberry Pi硬件的耳机接口播放处理过的音频数据。
俯仰换档是能够修改音频信号的间距,以增加或减小间距。例如,当快速车在街上传递给您时,随着车辆接近您的途中,从汽车的声音的音高会增加,随着车辆远离您的方式减少。当音频的源极靠近或远离接收器时,连续信号以更小或更大的时间间隔到达接收器。该时差导致接收器听到音频的频率的变化。您可以通过将音频信号分成两个组件来执行相似的俯冲速度操作,延迟使用变化的时间段,然后将它们加回到一起。根据两个信号如何延迟或重叠,该过程模拟了增加或减少间距的效果。为确保均匀的功率水平,必须调制分割信号的各个增益。
VNC查看器(可选)
覆盆子PI硬件(型号3B或3B +推荐)
音频捕获设备:USB麦克风或摄像头麦克风
一副可以插入硬件3.5毫米耳机接口的耳机
USB电缆
以太网电缆
连接到覆盆子PI硬件和HDMI电缆的监视器(可选)
在开始这个例子之前,我们建议您完成使用Simulink支持包进行Raspbe金宝apprry 金宝appPI硬件入门例子。
1.USB线的micro-USB端连接树莓派,USB线的普通USB端连接电脑。等待硬件上的PWR指示灯开始闪烁。
2.将摄像头或麦克风连接到硬件上的USB接口之一。请注意,有些网络摄像头消耗太多的电力,可能需要一个供电的USB集线器来正常运行。
3.将一对耳机连接到硬件的3.5 mm耳机插孔。
4.使用硬件设置界面,配置树莓派网络。
1.在硬件终端上,执行该命令打开硬件的软件配置工具。
sudoraspi-config
2.在“软件配置”工具窗口中,选择高级选项并按输入,然后选择音频并按输入。
3.选择力3.5mm('耳机')插孔选项并按输入。
4.新闻好的。
打开音调转变模型。
该模型根据每个区域内区块的功能划分为这些区域。
的阿尔萨音频捕获块从连接到硬件的麦克风捕获实时音频。双击块并指定设备的名称以捕获音频数据设备名称范围。如果您不知道设备的名称,请使用
函数如列出可用的ALSA音频输入设备。ListAudevices.
如果要从存储在计算机中保存的音频文件中捕获音频,请更换音频捕捉拦截A.音频文件读块,然后指定音频文件的名称文件名块的参数。
本节包括MATLAB功能块,其实现基于延迟的音频数据的音高换档算法。
函数块的输入是:
的输出阿尔萨音频捕获块作为一个n × c矩阵,其中N是每个音频通道的样本,以及C是麦克风支持的信道数。金宝app
俯仰:半色调的音高转换范围-12
来12
。
重叠:两个分离组件之间延迟线的重叠。取值范围为0.01
来0.5
。
Fs:音频数据的采样频率。
RESETFLAG:重置操作的变量pitchShift
功能。在这个例子中,标志是0
表示该功能不重置。
的ALSA音频播放块将处理过的音频发送到连接到硬件的耳机。双击该块并指定音频输出设备的名称设备名称范围。如果您不知道设备的名称,请使用
函数如列出可用的ALSA音频输出设备。ListAudevices.
1.要打开“模型配置参数”对话框,请单击“Simulink Model”工具栏上的齿轮图标。金宝app
2.2 .在“配置参数”对话框中,选择硬件实现。
3.设置硬件板参数覆盆子π
。属性中的参数将自动填充硬件板设置与树莓派的默认值。
4.在硬件板设置窗格,展开目标硬件资源并选择板参数。指定以下参数值:
设备地址:硬件的IP地址或主机名。
用户名:硬件上运行的Linux系统的root用户名。Linux发行版的默认用户名为PI.
。
密码:指定在硬件上运行的Linux系统的root密码。RASPIAN Linux发行版的默认密码是覆盆子
。
5.点击应用。点击好的保存您的更改。
1.在“模型”工具栏中,设置仿真模式为正常的
。
2.在模型工具栏中,单击Deploy to Hardware按钮。模型窗口的左下角显示支持包生成代码时的状态。金宝app成功生成代码后,支持包将加载并在硬件上运行代码。金宝app可执行程序开始从音频设备获取实时音频,改变所获取音频的音调,然后通过硬件的音频插孔播放处理后的音频。你现在可以通过连接到硬件上的耳机听到音调改变的声音。
您还可以在外部模式下运行此模型,以调整模型中的音高和重叠参数值,并在模拟期间观察输出音频的特性的变化。
根据您的要求,用其他性能更好的算法替换pitch shift算法。
在模型中加入低通无限脉冲响应(IIR)滤波器,以提高算法的性能。