在今年特殊年的情况下,远端会议已成了日常工作的必备环节,所以人们对会议室音响系统的要求越来越高,对音质音色也要求颇高,因为一般的设备会引起声反馈,造成啸叫,还有间断的杂音,会严重影响会议效率与质量。
专业的会议室音响系统显得尤其重要了。看似简单的把音箱、功放、会议话筒、调音台等设备连接起来,其实不然,其中的专业技术是鲜为人知的。
会议室音响系统设计中需要考虑多种问题,如抗干扰、减少声反馈、避免啸叫,要求能提供清晰透亮的人声,和舒服自然的会议环境。
选对会议室音响系统会让会议变得事半功倍,在音质上大家对QUALCOMM的APTX codec是无可挑剔的。
在消除回音和啸叫的技术上,一直以来是大家的心病。今天在这我给大家推荐一款高效的DSPG 配合Qualcomm主控执行8MIC强力声源定位回声消除会议音响的一个方案,“8 MIC强力声源定位回声消除”大家惊不惊喜、意不意外。没错,这里我推荐使用的就是DSP Group所设计的DBMD7这颗处理器芯片。
- DBMD7系列提供了一个完整的语音处理器解决方案,用于移动设备和物联网(IoT)世界中需要超高处理能力的始终在线应用。
- DBMD7实现了一个三核DSP,旨在处理市场上最复杂的音频算法。
技术层次描述:
依据方案方块图可知,在SCO链路建立起来时启动8个MIC采集声音并输入到DBMD7,D7经过内部的算法处理后,将处理过的声音从I2S输出到QCC3024的IS2输入端,
QCC3024将接收到的声音传入到SCO链路的上行,通过蓝牙将声音传输给对方。然后QCC3024将下行收到的声音从speack输出,并将声音通过I2S输出到DBMD7的I2S输入,
给DBMD7作为AEC的参考信号。
软件的移植工作描述:
在QCC3024的芯片ADK中,需要将DBMD7的固件移植到我们的QCC3024的软件中来,当QCC3024开机的时候,就需要通过SPI/UART/I2C接口将固件加载到D7的芯片中,对其初始化。
1、在软件的移植工作中(如下描述是通过SPI接口来传输数据的),首先需要的是调整好主控端的SPI接口的读写操作,将QCC3024的SPI读写接口全部替换DBMD7 固件默认的接口,并将DBMD7固件中的int dbmdx_init(void) 函数中的所有子函数全部调通,
需要注意到reset、RX READY两个PIN的配置。
因为D7工作前需要复位。因此,系统上电时需要RTOS AP拉低拉高RESET/RSTN GPIO,如下图所示。
RX READY GPIO 的配置需要与实物的连接要一致,否则后续的工作都不能往下继续:
RX READY GPIO用于SPI传输,每当AP从D7读取数据时,AP需要等待RX READY给出时钟。如下图所示
2、在int dbmdx_init(void)函数下,主要实现如下几个函数功能:
3、可以逐步调式每一个单一的子函数的方式,这样会更有效率一点,调试阶段需要借助逻辑分析仪来检查结果,如下图所示:
4、整个DSPG的系统跑成功之后,代表D7的移植工作完成了80%,后续的就是调试D7与主控QCC3024的对接了。
由上面的描述可知,QCC3024是作为I2S的master, 需要实现I2S的输入和 I2S的数出同时执行,并设置DAC也同时输出。
由于在DBMD7的固件中,在uc_d7_voice_call_init()中,对MIC的信号需要使用到32bit 48Ksmprate 的信号,因此我们在QCC3024的I2S端,也需要配置为一致。
5、当QCC3024连接手机后,只要建立SCO链路,就通过函数uc_d7_voice_call_create_run()来激活DBMD7芯片启动 voice call.
当SCO链路断开,QCC3024端就得调用uc_d7_voice_call_terminate()函数来结束voice call。