车载电子系统中多路音频控制的研究与实现
2019-07-20张文兴
张文兴
摘要:针对车载电子系统中多路音频输出时混音所带来的问题以及传统多路音频控制方案中存在的缺陷,设计一种基于音频焦点的多路音频控制方案。根据音频流类型定义其优先级,进而定义音频焦点控制策略。当音频焦点变化时,根据预设的音量规则,调整各个音频流播放音量。测试结果表明,该方案能够有效地去除混音所带来的听觉混淆并克服了传统多路音频控制方案中的缺陷。从实现上看,其具有较强的通用性,较好的可扩展性以及可维护性。该方案已经被应用于量产并且投入市场的某车载电子产品中,从市场反馈来看,用户体验度以及驾驶安全性都得到了很大提升。
[关键词]多路音频控制音频焦点音量规则车载电子系统
1引言
随着车辆的普及,各类车载电子产品层出不穷,功能多样。声音作为系统与驾驶者交互的一种方式,发挥着越来越重要的作用,同时,人们对其实用性、安全性、友好性的要求越来越高。众所周知,在一个系统中,同一时刻,可能有多个应用需要使用音频设备输出音频流,原生系统的混音功能,使得人耳在同一时刻,听到的是多路声音的共同输出。对于车载电子系统来说,车辆在行驶过程中,导航播报、音乐播放、语音助理、电话等应用,可能同时发声,车内的人听到的是各个音频流混音后的效果,有可能造成听觉混淆,甚至导致安全隐患。因此,需要对各个音频流进行统一控制,使得同一时刻,人耳听到的是清晰、明确、可靠的声音。
为了去除混音所带来的问题,传统的音频控制方案主要是针对音频流本身的播放逻辑进行控制,例如,通话中,音乐暂停;通话结束,音乐继续播放。这种方案处理的对象是各个音频流的实例,存在以下缺点:
(1)需要维护各个音频流的状态机,控制逻辑复杂,状态切换频繁,并且切换过程中往往伴随着资源的申请和释放,对系统性能影响较大。
(2)当控制策略发生变化时,需修改源码,可扩展性较低,不能适应不同产品之间的变化,维护成本较高。
(3)不适用对实时音频流的处理,例如本地电台,此音频流是不能被暫停的,需要单独的控制逻辑。
本文针对其缺陷,提出一种基于音频焦点并结合预设音量规则的多路音频控制方案,然后给出其在Android原生系统中的实施用例以及测试分析,最终得出结论。
2基于音频焦点的多路音频控制
基于音频焦点的多路音频控制的基本思想为:根据音频焦点控制策略确定享有音频焦点的音频流;实时监听系统音频焦点的变化,根据预设的音量规则对系统各路音频流音量进行调整。音频焦点控制策略为:根据系统中每路音频流类型规定其优先级,当某个音频流需要播放时,请求音频焦点,如果其优先级大于当前正在播放的音频流的优先级,赋予其音频焦点,否则便不赋予其音频焦点;当享有音频焦点的音频流停止播放时,释放其音频焦点,并为剩余正在播放的音频流中优先级最高的音频流赋予音频焦点。预设的音量规则为:规定每种音频流的原始音量,享有音频焦点时的音量以及其不享有音频焦点时的音量。在控制过程中实时维护每路音频流信息,包括:类型、优先级、原始音量、享有1不享有音频焦点时的音量、当前是否享有音频焦点。按照功能可以将以上所述划分为如下模块:
(1)控制模块:根据音频焦点控制策略
确定享有音频焦点的音频流,更新相关的音频流信息,并通知调整模块;
(2)调整模块:监听音频焦点的变化,获取各路音频流信息,按照预设的音量规则,调整其播放音量;
(3)维护模块:维护各路音频流信息,包括类型、优先级、原始音量、享有1不享有音频焦点时的音量、当前是否享有音频焦点。各个模块间的交互如图1所示。
控制模块流程如图2所示,调整模块流程如图3所示。
3测试分析
将该方案移植进Android原生系统进行测试,音频流类型以及为各个类型音频流预设音量规则如表1所示。其中,规定优先级由高到低为0-9,音量值范围为0-15。
测试效果需通过听觉进行感知,该方案能够有效去除多路音频输出时混音所带来的听觉混淆,其已经被应用于量产并且投放市场的某车载电子产品中,系统中跟音频输出相关的应用为电话、语言助理、导航、音乐、蓝牙,所对应的音频流类型规定为STREAM_VOICE_CALL、STREAM_NOTIFICATION、STREAM_SYSTEM、STREAMMUSIC、STREAMBLUETOOTHSCO,音量规则按照表1进行设定,从市场反馈来看,用户体验度和驾驶安全性都得到了很大提升。
4结论
根据定义的音频焦点控制策略以及预设的音量规则,当音频焦点变化时,调整各音频流的播放音量。对享有音频焦点和不享有音频焦点的音频流设置不同的播放音量,从而实现对多个音频流分别采用不同的播放音量同时播放,可以很好的解决混音所带来的问题,既能实现多路音频的同时播放,又不会造成听觉混淆,极大的提升了使用者的体验度和安全性。
从实现上来看,可以将音频焦点控制策略以及音量规则定义成可配置的文件,与传统的多路音频控制方案相比,优势在于:
(1)当控制策略发生变化时,无需修改源码,只需修改配置即可,可扩展性较强,能够快速适应不同产品之间的变化,降低了开发和维护成本;
(2)对音频流的控制不改变音频流本身的播放逻辑,不存在系统资源的申请和释放,对性能影响较小;
(3)对实时音频流的控制和本地音频流的控制相同,无需独立的逻辑。
该方案的应用场景并不局限于车载电子系统,可以将其应用于任何有此类需求的智能系统中,并且适用于各种类型的音频流,对其进行统一管理,并对播放规则进行控制,通用性较强,可扩展性较好,且维护成本较低。
参考文献
[1]李釣,谷守康,车载信息系统市场应用现状[J].汽车工程师,2018(05):14-17.
[2]王颖,张伟,吴姓,车载信息系统与驾驶安全研究综述[J].科技导报,2009(13):105-110.
[3]白杰。车载娱乐信息系统的设计与实现[D].吉林:吉林大学计算机科学与技术学院,2015.
[4]竺增宝,车载多媒体音频系统的设计与实现[D]上海:上海交通大学电子信息与电气工程学院,2015.
[5]林学森,深入理解Android内核设计思想[M].第2版(上册).北京:人民邮电出版社,2017:2-35,526-611.