主要内容

使用树莓派将单耳音频空间化为5.1声道环绕声

本示例向您展示如何使用MATLAB函数块和Simulink®树莓派硬件支持包,在树莓派硬件上将单耳音频信号空间化为5.1声道环绕声。金宝app金宝app

音频空间化是一种将单声源分布在立体声或多声道声场中的声音平移技术。空间化音频给听众一种印象,即音频是在三维空间中播放的。音频空间化包括两个关键部分:方向和距离。方向决定播放音频的频道。距离决定了播放音频的音量。

在本例中,音频源是直升机的单声道录音。空间化算法将直升机的声音混合成六个声道:左前、中前、右前、左环绕、右环绕,以及一个低音炮声道。然后,该算法输出一个模拟六声道源的立体声信号。

所需的产品下载188bet金宝搏

所需的硬件

  • 树莓派硬件(推荐型号3B或3B+)

  • 一副耳机,可以插在硬件的3.5毫米耳机插孔里

  • USB电缆

  • 以太网电缆

  • 一个连接到树莓派硬件和HDMI线的显示器(可选)

步骤1:连接树莓派硬件进行音频空间化

在开始本示例之前,我们建议您完成树莓派硬件的Simulink支持包入门金宝app金宝app的例子。

  1. 将USB数据线的micro-USB一端连接到树莓派,将USB数据线的普通USB一端连接到计算机。等待硬件上的PWR指示灯开始闪烁。

  2. 将一副耳机连接到硬件的3.5 mm耳机插孔。

  3. 使用硬件设置界面,配置树莓派网络。

步骤2:打开音频空间Simulink模型金宝app

打开音频位置模型。

模型的不同部分可以基于模块的功能进行描述。

音频输入

Simu金宝applink模型以两种方式接受直升机的位置:

  • 拖动直升机到所需位置:当您在外部模式下使用视觉上设置位置类的输入computeVol块中,模型启动一个用户界面。用户界面在圆的圆周上有五个离散通道,在圆的中心有一个低频输出。监听器位于圆的中心,用简笔画表示。使用该界面,您可以通过拖动直升机到圆圈内的不同位置来更改直升机的位置。在改变直升机位置时,模型输出会给听者一个印象,即音频是从离直升机最近的扬声器播放的。

  • 计算随机直升机位置:当您在外部模式下使用随机设置位置类的输入computeVolBlock, Block在每个采样时间计算直升机在圆内的随机位置。位置是用一对笛卡尔坐标计算出来的。模型输出给听众一种印象,即音频是在每个采样时间从随机扬声器播放的。不像视觉上设置位置布洛克,你无法控制直升机的位置。

空间算法

的单声道音频源音频文件读取Block混合成六个信道,每个信道对应一个扬声器。如用户界面所示,圆形中心有一个低频频道,圆周上有五个扬声器。下面的算法用于确定扬声器的振幅:

1.在圆的中心,每个扬声器的振幅是相等的。每个扬声器(包括低频扬声器)的值设置为1 /√(5)

2.在圆的周长上,使用矢量基幅平移(VBAP)确定扬声器的振幅。该算法:

  1. 确定源两侧的两个扬声器,或者在简并情况下,确定单个扬声器。

  2. 将(a)中扬声器位置确定的向量解释为基向量。这些基向量表示归一化的源位置向量。新基中的系数表示归一化后的相对扬声器振幅。在这部分算法中,将低频信道的幅值设为零。

3.当源从中心移动到外围时,存在从算法(1)到算法(2)的过渡。这种过渡作为径向距离的三次函数衰减。振幅矢量经过标准化处理,因此功率与源位置无关。

4.最后,振幅随着距离中心的距离增加而衰减,根据平方反比定律,这样在圆的周长处的振幅是中心处振幅的四分之一。

有关矢量基振幅平移的更多细节,请参阅[1]。

音频输出

音频回放Block将六声道音频输出发送到硬件的3.5毫米耳机插孔。为了输出模拟六声道源的立体声信号,ALSA标识符,plughw中的设备号前缀音频回放块参数对话框。输出是模拟六声道源的立体声信号。

步骤3:配置音频空间Simulink模型金宝app

1.要打开“模型配置参数”对话框,请单击Simulink模型工具栏上的齿轮图标。金宝app

2.在“配置参数”对话框中,选择硬件实现

3.设置硬件板参数覆盆子π。属性中的参数将自动填充硬件板设置使用树莓派的默认值。

4.在硬件板设置窗格中,展开目标硬件资源并选择板参数。指定这些参数值:

  • 设备地址:硬件的IP地址或主机名。

  • 用户名:硬件Linux系统的root用户名。Raspbian Linux发行版的默认用户名是π

  • 密码:硬件Linux系统的root用户密码。说明Raspbian Linux发行版的默认密码为树莓

5.点击应用。点击好吧以保存更改。

步骤4:从随机位置播放空间化音频

硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击监视和调优。当支持包生成代码时,模型窗口的左下角显示状态。金宝app成功生成代码后,支持包将加载并在硬件上运行代码。金宝app可执行文件将直升机定位在圆圈内的随机位置,并通过硬件的音频插孔播放空间化音频。您现在可以通过连接到硬件的耳机听到空间化音频。音频似乎在每个采样时间从随机扬声器播放。

步骤5:从期望的位置播放空间化音频

1.在模型中,双击开关连接视觉上设置位置块到computeVol块。

2.在模拟在模型工具栏上,单击运行。模型窗口的左下角显示支持包生成代码时的状态。金宝app成功生成代码后,支持包将加载并在硬件上运行代码。金宝app

3.在模型中,双击视觉上设置位置块。可执行文件启动一个用户界面。该接口在圆的圆周上有五个离散通道,在圆的中心有一个低频输出。监听器位于圆的中心,用简笔画表示。您现在可以通过连接到硬件的耳机听到空间化音频。音频似乎是从离直升机最近的扬声器播放的。用鼠标拖动直升机来改变直升机的位置。观察正在播放的音频的位置和音量的变化。继续改变直升机位置,观察不同直升机位置下音频音量的变化。

参考文献

Pulki,城镇。使用矢量基幅平移的虚拟声源定位。音频工程学会杂志。第45卷第6期,1997年6月