本申请涉及蓝牙芯片dsp的算法,一种基于蓝牙单芯片的左右声道eq可调的嵌入式开发系统及其构建方法和应用,具体涉及csr蓝牙芯片kalimbadsp的算法。
背景技术:
根据世界卫生组织的报告,世界有约15%的成年人有不同程度的听力损失,(https://www.who.int/pbd/deafness/news/millionslivewithhearingloss.pdf),在2019年2月12日的报道中更指出”将近50%的12-35岁人群(或11亿年轻人)由于长时间和过度暴露于巨大声音,包括通过个人音频设备收听音乐,而面临听力损失的风险”,(https://www.who.int/zh/news-room/detail/12-02-2019-new-who-itu-standard-aims-to-prevent-hearing-loss-among-1.1-billion-young-people)听力保护的乃当务之急。
人耳结构和人体其它器官一样,具有差异性和唯一性,因此个体左右耳听力如同左右手指纹和左右眼视力一样,在不同频段上的听力水平具有单一和唯一性.众所周知近视人群配眼镜的过程中,一定要对左右眼进行单独验光,并给出相对应度数的镜片,相反如果配的度数不对,反而会加重眼镜的负担,直接导致视力下降.而耳机作为现代人最普遍也是最主要的聆听设备,却一直无法做到眼镜的左右单独定制体验.反映到用户身上,则会出现如下情况:假设用户左耳在低频150-800hz有较大的听力损失,右耳则处于正常水平,当用户所聆听的内容对低频的表现有较大要求时,左耳的听损会使用户主观感受到低频的不足,而低频作为均匀频谱中能量最大的频段,在低频上的丢失直接导致整体响度的降低,直接导致听者不自主的加大音量来提升听感,左右耳均则处于过大音量的强声刺激中,长此以往的高音量聆听对个体造成双侧感音神经性听力损失.因此能根据个人听力状况而调整音效的耳机设备会对全人类的听力保护起到直接的促进作用.
对于耳机行业来讲,传统有线耳机由于其原理限制,不能对自音源由模拟信号传输的声音进行后期调整.而蓝牙耳机则不同,其信号自音源由纯数字信号传输,并经蓝牙芯片本地处理传化为模拟信号,在其由数字信号转模拟信号的过程中,完全有可能对音源的数字信号进行二次处理,达到对其左右声道进行单独调整的效果.而在当今蓝牙耳机行业熟悉csr蓝牙芯片开发,特别是csr867x芯片方案的开发人员一定对ufe工具印象深刻。ufe(universalfrontend)工具是adk自带的声学调音工具,能够满足音乐播放、免提通话等场景的声学调音的一般需求。其工具主要由:compander(压扩器)、usereq(用户均衡器)、bassenhancement(低音增强)、speakereq(扬声器均衡器)、stereoenhancement(立体声增强)、crossover(分频器)、mainvolume(主音量控制)等模块组成你。但其中除了mainvolume和crossover模块以外,所有模块对音频信号的处理都是不区分左右通道的,所以目前的蓝牙耳机设备不能实现对左右耳音频参数的单独调整。
因此,市场上急需一种根据个体听力差异,即针对左右耳听力不同的特点,支持左右声道不同频段进行单独增益调整的耳机方案。
技术实现要素:
为了解决以上问题,让蓝牙耳机产品更加符合人体生理特征,本发明给出一种支持左右声道各10个speakereq的方案,并给出一个基于matlabgui的调音工具配合实际生产应用。
首先,本申请提供了一种基于蓝牙单芯片的左右声道eq可调的嵌入式开发系统及其应用。
一种左右声道eq可调的嵌入式开发系统,所述系统的左右通道各10个speakereq,在vm层读写每个speakereq的每个参数;通过matlab创建的gui实时调节每个speakereq的每个参数。
所述参数包括filter类型、gain、频率、q值。
本申请提供了一种基于蓝牙单芯片的左右声道eq可调的嵌入式开发系统用于csr的系列芯片的应用。
另外,本申请提供了基于蓝牙单芯片的左右声道eq可调的嵌入式开发系统的构建方法,包括如下步骤:
(1)改造音频链路:在现有音频链路的基础上,将整个speakereq模块改为左通道独享,然后拷贝一个完整的speakereq模块单独给右通道使用;
(2)打通vm和dsp之间的消息链路;
(3)开发matlabgui调音工具:用调用adk的matlab接口库,定制一个调制工具。
其中,
步骤(1)包括如下步骤:
1)首先创建修改原有的speakereq的数组定义,使其只处理左通道数据;
2)创建一个新的rspeakereq数组定义,其只处理右通道的数据;
3)为rspeakereq创建滤波器系数存储空间,并将此系数关联到右通道的音频数据流;4)为rspeakereq创建参数存储空间,用于存储vm发送过来的eq参数,也是rspeakereq的初始参数;
5)创建l/rspeakereq的音频处理模块并插入到整个音频处理流程中。
步骤(2)eq参数的消息链路如图5所示,读取eq参数的消息链路:待消息链路已就绪,调用vm层的set或get函数即可读写dsp的eq参数设置,并在播放过程中立即生效。
步骤(3)调制工具的调音界面主要分四部分:
a)连接区域:有连接dsp,刷新参数,设置参数三个按键;
b)log显示区域:用来记录并显示一些操作信息;
c)左声道eq:用来显示和修改当前lspeakereq(之前的speakereq)的所有参数;
d)右声道eq:用来显示和修改当前rspeakereq的所有参数。
另外,本发明还提供了一种左右声道可调的电子产品,该产品由硬件和移动端app两个模块组成,其中,
硬件部分搭载了csr蓝牙芯片,所述csr蓝牙芯片具有如权利要求1所述左右声道各10段eq独立调整的功能;
app端构建方式如下:其中听纹tm部由左右耳的听力检测以及听力补偿两部分组成,用户可在场景音效的自定义eq界面,进行多达10段的独立eq调整。
本申请解决方案将基于csr867x芯片adk自带的ufe(universalfrontend)声学调音工具,其音乐播放调音界面如图1。
如图2所示:左侧所有的compander(压扩器)、usereq(用户均衡器)、bassenhancement(低音增强)、speakereq(扬声器均衡器)、stereoenhancement(立体声增强)、crossover(分频器)、mainvolume(主音量控制)模块均为单一通道,不能对左右声道进行单独处理,所以要实现与其功能,需要自建一个gui的调音工具。
2.主要功能
·左右通道各10个speakereq(支持任何蓝牙音频解码格式、任何音源)
·可在vm层读写每个speakereq的每个参数(filter类型、gain、频率、q值)
·可通过matlab创建的gui实时调节每个speakereq的每个参数
新的系统框架如图3所示,新框架将dsp内speakereq模块一分为二,令其成为对应左右声道的两个独立speakereq,其它模块保持不变。再通过定制的matlab调制工具通过adk的matlab接口库由vm层对eq参数进行读写。
3.代码实施
3.1.改造音频链路
基本思路是,在现有音频链路的基础上,将整个speakereq模块改为左通道独享,然后拷贝一个完整的speakereq模块单独给右通道使用:
1.首先创建修改原有的speakereq的数组定义,使其只处理左通道数据:
2.创建一个新的rspeakereq数组定义,其只处理右通道的数据:
3.为rspeakereq创建滤波器系数存储空间,并将此系数关联到右通道的音频数据流:
4.为rspeakereq创建参数存储空间,用于存储vm发送过来的eq参数(type/gain/freq/q),也是rspeakereq的初始参数:
5,创建l/rspeakereq的音频处理模块并插入到整个音频处理流程中:
6.至此音频链路已经改造完成.
3.2.打通vm和dsp之间的消息链路
1.eq参数的消息链路如图4所示
2.vm层对应代码:
3.audioplugin对应代码:
4.dsp工程中相对应的代码:
5.读取eq参数的消息链路如图5所示。
6.vm层代码:
7.audioplugin代码:
8.dsp工程代码:
9.至此消息链路已就绪,调用vm层的set或get函数即可读写dsp的eq参数设置,并能在播放过程中立即生效
3.3.开发matlabgui调音工具
由于ufe工具不具备左右单独功能,无法显示我们增加的rspeakereq,因此我们用调用adk的matlab接口库,定制一个调制工具:
如图6所示,调音界面主要分四部分:
·连接区域:有连接dsp,刷新参数,设置参数三个按键
·log显示区域:用来记录并显示一些操作信息
·左声道eq:用来显示和修改当前lspeakereq(之前的speakereq)的所有参数
·右声道eq:用来显示和修改当前rspeakereq的所有参数
至此,所有本发明的发明过程已完整呈现,具体细节以及部分代码已详细说明.后续可以依照此发明方法用于csr的系列芯片,使相关产品具有基于通用adk开发的产品所不具备的特色功能.
本发明的技术效果:
1.技术效果
本发明给出一种支持左右声道各10个speakereq的方案,并给出一个基于matlabgui的调音工具配合实际生产应用。
2.社会意义及影响
本发明可以对用户左右耳听力进行各10频段(20-16khz)的听力补偿,有效避免了个体因左右耳听力不平衡而导致过高音量聆听引发感音神经性听力损失的恶性循环,同时青少年作为耳机最主要的耳机类消费群体,则对其听力损失的预防起到了积极的社会作用。
本发明也可以配合听力测试app使用。
2.产品竞争力上的影响
在如今流媒体时代,耳机作为一个必需品,随着耳机孔的取消,蓝牙耳机在未来即将成为市场绝对的主流.而当今市场大部分蓝牙耳机仅仅起到了用蓝牙传输代替有线传输的作用,只是一个工具,与用户的粘性非常之低.本发明的诞生,则完全改变了耳机与用户的交互方式,使用户与其有独一无二的,跟自身生物特征相关的深层次交互,做到了绝对的定制化,私人化.毫无疑问的提高了用户与产品硬件以及软件之间的粘性,用技术壁垒建立用户对品牌的忠诚。
附图说明
图1为ufe(universalfrontend)声学调音工具,其音乐播放调音界面。
图2speakereq模块界面
图3系统框架。
图4eq参数的消息链路。
图5读取eq参数的消息链路。
图6用调用adk的matlab接口库,定制一个调制工具。
图7neantapp主界面。用到本发明专利的主要为听纹tm以及场景音效功能。
图8部分交互界面。
图9场景音效使用示意图。
具体实施方式
本申请解决方案将基于csr867x芯片adk自带的ufe(universalfrontend)声学调音工具,其音乐播放调音界面如图1。
如图2所示:左侧所有的compander(压扩器)、usereq(用户均衡器)、bassenhancement(低音增强)、speakereq(扬声器均衡器)、stereoenhancement(立体声增强)、crossover(分频器)、mainvolume(主音量控制)模块均为单一通道,不能对左右声道进行单独处理,所以要实现与其功能,需要自建一个gui的调音工具。
2.主要功能
·左右通道各10个speakereq(支持任何蓝牙音频解码格式、任何音源)
·可在vm层读写每个speakereq的每个参数(filter类型、gain、频率、q值)
·可通过matlab创建的gui实时调节每个speakereq的每个参数
新的系统框架如图3所示,新框架将dsp内speakereq模块一分为二,令其成为对应左右声道的两个独立speakereq,其它模块保持不变。再通过定制的matlab调制工具通过adk的matlab接口库由vm层对eq参数进行读写。
3.代码实施
3.1.改造音频链路
基本思路是,在现有音频链路的基础上,将整个speakereq模块改为左通道独享,然后拷贝一个完整的speakereq模块单独给右通道使用:
1.首先创建修改原有的speakereq的数组定义,使其只处理左通道数据:
2.创建一个新的rspeakereq数组定义,其只处理右通道的数据:
3.为rspeakereq创建滤波器系数存储空间,并将此系数关联到右通道的音频数据流:
4.为rspeakereq创建参数存储空间,用于存储vm发送过来的eq参数(type/gain/freq/q),也是rspeakereq的初始参数:
5,创建l/rspeakereq的音频处理模块并插入到整个音频处理流程中:
6.至此音频链路已经改造完成.
3.2.打通vm和dsp之间的消息链路
9.eq参数的消息链路如图4所示
10.vm层对应代码:
11.audioplugin对应代码:
12.dsp工程中相对应的代码:
13.读取eq参数的消息链路如图5所示。
14.vm层代码:
15.audioplugin代码:
16.dsp工程代码:
9.至此消息链路已就绪,调用vm层的set或get函数即可读写dsp的eq参数设置,并能在播放过程中立即生效
3.3.开发matlabgui调音工具
由于ufe工具不具备左右单独功能,无法显示我们增加的rspeakereq,因此我们用调用adk的matlab接口库,定制一个调制工具:
如图6所示,调音界面主要分四部分:
·连接区域:有连接dsp,刷新参数,设置参数三个按键
·log显示区域:用来记录并显示一些操作信息
·左声道eq:用来显示和修改当前lspeakereq(之前的speakereq)的所有参数
·右声道eq:用来显示和修改当前rspeakereq的所有参数
本发明首发将独家应用于深圳隐物科技(neant)的earhub系列产品,本产品由硬件和移动端app两个模块组成:
-其中硬件部分搭载了csr蓝牙芯片.我们使用发明对其固件进行开发,实现了左右声道各10段eq独立调整的功能.
-而app端构建方式如下:
图7所示为neantapp主界面,用到本发明专利的主要为听纹tm以及场景音效功能。其中听纹tm部由左右耳的听力检测以及听力补偿两部分组成.
-听纹部分使用方式如下:
如图8所示的部分交互界面,自左而右一次为听力检测-听力水平呈现–对应耳听力补偿.
即配合app纯音听阈功能,得到使用者左右耳在32~16k各十段频点的听力水平,然后通过计算得出各频段需要补偿的gain值,最后通过蓝牙调整本发明的gui界面的各频点参数(算法存储于蓝牙芯片固件中)达到而左右耳的精确听力补偿。
-场景音效使用方式如下:
如图9所示用户可在场景音效的自定义eq界面,进行多达10段的独立eq调整。