基于MAX78000语音识别的立体声空间声像控制
本项目基于Max78000FTHR开发板,利用其集成传感器、立体声编解码器及CNN硬件加速,实现耳机和双扬声器的单声源空间声像控制,并且借助CNN硬件通过语音识别控制切换两种重放方式及控制声像位置。
标签
嵌入式系统
archmage
更新2022-12-01
华南理工大学
873
123124125

引言


 受疫情影响,线上会议在工作学习中广泛使用。声音在远程会议系统中是极为重要的一部分。传统上,嵌入式系统追求较高的语音清晰度和窄带宽低延时的传输。而如今多人在线的会议系统同样对声音空间属性提出了要求。声音的空间属性可以在多人会议中辅助定位讲话人的位置,加强远程会议的临场感。

 物理上对声音空间属性的处理可分为两个部分,一个是对声源空间属性的捡拾;嵌入式系统中常用的单传声器仅接收到声源信号内容,所处房间的反射声内容。 而需要准确捡拾到声源的空间属性,如到接收点的方位、距离等信息则需要用到更为复杂的传声器阵列和算法。

 对声信号空间信息处理的第二个重要方面是使听音者获得设定或者捡拾到的空间听觉,也就是对声音空间信息的重放。 由硬件来划分,可以将声空间重放分为扬声器重放和双耳重放。 双耳重放中耳机重放是最常用的方式,通过模拟真实声场环境下耳道入口的声信号,即可产生相应的空间感。 扬声器重放则更为复杂,为了重放出空间感知,而非仅仅声内容,需要用到两个或者更多的扬声器阵列如常见的5.1,7.1 ,甚至通路布置更为灵活的Ambisonics 扬声器阵列布置。 其中扬声器布置不同,所用来呈现空间感知的物理原理也就不同,对应的算法也复杂多样。

   但是考虑实际应用的方便,在个人或者小型会议系统中,双耳和立体声扬声器的空间声重放仍是主流,且在特定的场景下需要切换。 本项目使用的MAX78000FTHR开发板,小巧的体积内集成了数字传感器,低功耗立体声音频编解码模块,仅其中的CNN加速处理器可以实现低功耗的语音处理,十分适合会议系统重放端的初步功能验证。

   本项目预计在Max78000FTHR开发板上实现耳机和双扬声器的单声源空间声像控制,并且借助CNN硬件通过语音识别控制切换两种重放方式及控制声像位置。

 

耳机空间声像控制算法


算法通过耳机产生声信号,模拟的是真实声源在物理声场中在耳道口产生声信号。如图一所示, 这种传输过程可以用头相关传递函数(Head Related Transfer Functions, HRTF) 来表示。HRTF是双耳重放的关键,研究中往往从自由场中最精确的传递函数研究,需要在专业的消声室中测量,如图二所示。HRTF中包含着不同的物理定位信息,这些信息协同作用。通过卷积HRTF与干信号可获得相信的空间感知:

                              S_L = H_l(f, theta, phi) * S(f, theta, phi)

                              S_R = H_l(f, theta, phi) * S(f, theta, phi)

但在实际应用中,如果采取测量的全长度的全空间HRTF比如128点的滤波器,在微型嵌入式系统中也不适用,因此需要预先模拟简化。 在matlab中提取全空间HRTF滤波器进行预处理,变为较为实用的FIR滤波器。Prony法和Yule-Walk法是较为常用的两种方法。Prony法是IIR滤波器的一种时域设计方法,所得到的模型包含又HRTF的幅度和相位特性。两种方法的仿真在Matlab中进行, 具体IIR系数及得到的HRTF结果将为后面给出。之后的具体实现需要在开发板上实现实时信号IIR滤波即可。

图1.  自由场单声源到双耳的传播

 

立体声扬声器声像控制算法

两通路立体声是最简单的也是目前最常用的空间声重放技术与系统。它基于心理声学与物理声场近似重放的原理,利用一对扬声器,可以重放前方一定角度范围(一维) 的声音空间信息。两扬声器信号完全相同,只存在振幅差别,则双通路信号可表示为:

E_L = E_L(f) = A_L * E_A(f),  E_R = E_R(f) = A_R * E_A(f);

A_L 和 A_R分别表示左右通路扬声器信号的归一化振幅,或者信号馈给Panning。幅度确定常用虚拟源定位公式,如正弦定理:

sinθ_I = (A_L - A_R)/ (A_L + A_R) * sinθ_0 =  (A_L/A_R - 1)/(A_L/A_R + 1 ) sinθ_0 

试用范围大约在 f<= 0.7kHz 以下;其他虚拟源定位方法如正切定理,通路声级差与虚拟源方向matlab仿真代码结果后面会放出。 matlab实时panning测试已完成,后续会实现开发板上信号实时帧处理panning。

 

Eclipse开发环境搭建及CNN关键词识别


MAX78000FTHR开发板集成了音频视频等多种传感器,核心集成了卷积神经网络加速器,帮助实现快读AI搭建。 前期工作主要为安装Maxim Integrated SDK, 学习使用Eclipse MaximSDK IDE, 学习运行其中CNN关键词识别相关demo。Eclipse IDE中提供了大量的demo, 更具项目需求总结出需要实现的功能:

  1. 从SD卡读取音频数据并解码;
  2. 实现CNN的关键词识别作为模式切换和空间声像切换;
  3. 实现HRTF实时IIR滤波,和信号输出;
  4. 实现信号幅度panning,并输出;

相关代码正在调试完善中。。。

 

 

 

团队介绍
华南理工大学 张君宇
团队成员
archmage
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号