好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于Android平台支持虚拟音频设备的方法及系统的制作方法.docx

3页
  • 卖家[上传人]:ting****789
  • 文档编号:309552486
  • 上传时间:2022-06-13
  • 文档格式:DOCX
  • 文档大小:17.46KB
  • / 3 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于Android平台支持虚拟音频设备的方法及系统的制作方法专利名称:基于Android平台支持虚拟音频设备的方法及系统的制作方法技术领域:本发明属于数字音频处理技术领域,具体涉及一种基于Android平台支持虚拟音频设备的方法及系统背景技术:目前消费电子产品已进入智能时代,例如在智能电视中,音频输入设备已经普遍在应用中使用,但使用电视终端时,用户是有一定观看距离的,导致对电视终端的音频输入设备要求很高,如采用带背景噪声消除的阵列麦克风、RF音频或蓝牙音频设备输入这种音频设备配置成本较高,一般不可能在所有智能电视终端配置,而没有语音输入设备的电视终端,其智能电视应用的丰富性、可使用性都会下降而现阶段大部分智能电视采用Android系统,因此如何在基于Android平台的消费电子产品上使用户能够便捷、低成本地使用各种音频装置进行语音输入,是需要解决的一个技术问题发明内容本发明的目的在于提出一种基于Android平台支持虚拟音频设备的方法及系统,可以使用户能够便捷、低成本地使用各种音频装置进行语音输入,解决传统技术中对用户语音输入设备要求高的技术问题本发明是这样实现的,基于Android平台支持虚拟音频设备的方法,包括以下步骤:设置虚拟音频HAL接口;通过虚拟音频服务登记和监测虚拟音频输入;当监测到虚拟音频输入请求时,HAL实现层通过运行虚拟音频HAL接口接收虚拟音频输入。

      本发明的另一目的在于提供一种基于Android平台支持虚拟音频设备的系统,该系统包括:音频终端;虚拟音频设备端,该设备端基于Android平台,包括有虚拟音频服务模块、虚拟音频HAL接口、HAL实现模块,虚拟音频服务模块对音频终端进行登记和监测,当监测到音频终端有虚拟音频输入请求时,HAL实现层模块通过运行虚拟音频HAL接口对音频终端进行控制并接收音频输入本发明的有益效果是:由于本发明从Android平台的HAL层入手,使音频设备能够接收各种外部虚拟音频输入,也就是说,这种发明实际上是延伸了物理设备的概念,消费者就无需购买专门的音频输入设备,使用已有的、特别是便携语音终端如,就可进行语音输入,因此具有成本低、使用便捷的优点图1是本发明的流程图图2是本发明的系统架构图图3是本发明的打开虚拟音频流接口、读取虚拟音频数据接口流程图具体实施例方式下面结合附图和具体实施例对本发明作进一步说明在本发明实施例中,包括一种方法和一种系统,其中方法流程如图1,系统架构如图2,相关的虚拟音频流的打开和读取流程则如图3所示如图1, 一种基于Android平台支持虚拟音频设备的方法,包括以下步骤:设置虚拟音频HAL接口;通过虚拟音频服务登记和监测虚拟音频输入;当监测到虚拟音频输入请求时,HAL实现层通过运行虚拟音频HAL接口接收虚拟音频输入。

      进一步详细说明如下:构建包含音频输入 的HAL实现层对应的打开音频流接口、读取音频数据接口、停止音频数据采集接口、关闭音频流接口的虚拟设备的HAL接口,以及一个设备描述字段,接口如下: typedef struct { char devdesc[128] void (openVirtual*)(uint32_t sample—rate, int format, int channel_count); ssize—t (readVirtual*)(void 本buffer, size—t bytes); int (standbyVirtual*)(struct audio—stream* stream); void (closeVirtual*)(); }VirtualInputStreamer;其中的open对应打开音频流接口,read对应读取音频数据接口,standby对应停止音频数据采集接口,close对应关闭音频流接口实现上述虚拟设备的HAL接口,并编译成动态连接库,用于系统运行时动态加载;在andro i d的音频服务中设置设备参数变量,该参数可通过andro i d原生的AudioSystem接口设置,该设备参数包括有两种状态,指示HAL实现层是接收原生的物理音频输入,还是接收虚拟音频输入。

      在本实施例中,其值为空表示采用原生的物理音频输入设备,否则就表示要接收虚拟音频输入;基于应用层面设立一种后台服务,该后台服务在满足虚拟音频设备启用的条件下,对该设备参数进行设置,以告知android系统中的audio的HAL实现层将采用该虚拟音频输入设备;在android系统音频输入的HAL实现层对应的音频流打开接口中,依据实现设备参数的状态实现对本发明的虚拟设备的HAL接口动态链接库的加载;在android系统音频输入的HAL实现层对应的音频流读取接口中,调用动态连接库中的音频输入接口读取音频PCM数据;在android系统音频输入的HAL实现层对应的音频流停止接口中,调用动态连接库的standby接口 ;在android系统音频输入的HAL实现层所对应的音频流关闭接口中,调用动态链接库的关闭流接口,同时关闭对应的动态连接库对象;HAL实现层对接虚拟设备的音频流打开接口 openVirtual及音频流读取接口readVirtual流程如图3所示,通过上述发明内容,应用调用标准的Android音频输入接口,通过audio系统的HAL层操作麦克风输入设备时,实际上已经操作到了虚拟的麦克风输入设备中;上述这些发明内容是一种通用的虚拟HAL层,只要按这种方式对接,就可以实现多种虚拟麦克风设备,而不局限于特定的一种虚拟麦克风接入方式。

      通过本发明虚拟设备接口的设置,可以有序地对虚拟设备进行操作,同时通过设备参数变量的设置,可以方便地兼容和切换原生的物理音频输入、虚拟音频输入两种状态如图2,一种基于Android平台支持虚拟音频设备的系统,该系统包括:音频终端;虚拟音频设备端,该设备端基于Android平台,包括有虚拟音频服务模块、虚拟音频HAL接口、HAL实现层模块,虚拟音频服务模块对音频终端进行登记和监测,当监测到音频终端有虚拟音频输入请求时,HAL实现层模块通过运行虚拟音频HAL接口对音频终端进行控制并接收音频输入以实现一种通过网络从/PAD等移动终端获取PCM数据的虚拟音频设备为例,即将/PAD作为音频终端,具体说明如下:在虚拟音频设备端设立虚拟音频服务模块,以实现一个本地常驻服务,该服务模块监听移动终端的自举信息,将移动终端的IP地址记录下来,同时,如果接收到来自移动终端的启用麦克风的通讯协议,通过AudioSystem.setParameters函数,设置系统的设备参数 devinput 为“ libvirtualmic.so”,将该值记录到系统属性media, audio, devinput 中,供后续HAL实现层模块读取。

      虚拟音频设备端按如下方式实现发明内容中的虚拟音频HAL接口:打开音频流接口-openVirtual:按约定的网络协议将采样率、音频格式、通道数发送给移动终端,移动终端记录电视终端要求的采样率等信息,同时发送ACK应答;读取音频流接口-readVirtual:从约定好的端口按UDP协议读取指定字节数的数据,并设立超时机制;停止音频流接口-StandbyVirtual:按约定好的网络协议发送信息给移动终端,告知移动终端停止麦克风数据的采集;关闭音频流接口-closeVirtual:本实施例不需要实现;上述接口方式实现完后,编译成动态链接库,名字与devinput参数一致,为libvirtualmic.so,之后就可以加载运行了android系统按标准音频HAL接口打开音频输入流时,检测到系统属性media,audio, devinput,如果不为空字符串NULL,则加载对应的动态链接库,其对应对象记为viruallnStreamer,转而调用 virualInputStreamer 对象的 openVirtual 接口 ;如果virualInputStreamer对象存在,则调用该对象的readVirtual接口读取音频数据;同样调用virualInputStreamer对象的standby接口,以停止音频数据采集;如果virualInputStreamer 对象不为 NULL,则调用其 closeVirtual 接口,调用完后,将virualInputStreamer对象置空并关闭其对应的动态链接库。

      这样虚拟音频设备端就能够从/PAD获取语音数据了,因此通过本发明,可以在智能电视机中设立该虚拟音频设备端,用户通过已有的/PAD对智能电视机进行各种语音操作,方便快捷,距离范围很宽,而无需购买带背景噪声消除的阵列麦克风等专用设备,从而节省了用户的使用成本在本实施例中,语音终端可以有多个,即通过本发明,用户可以通过多个/PAD对智能电视机进行语 音操作,使用上更加灵活方便权利要求1.基于Android平台支持虚拟音频设备的方法,其特征在于包括以下步骤: 设置虚拟音频HAL接口 ; 通过虚拟音频服务登记和监测虚拟音频输入; 当监测到虚拟音频输入请求时,HAL实现层通过运行虚拟音频HAL接口接收虚拟音频输入2.根据权利要求1所述的基于Android平台支持虚拟音频设备的方法,其特征在于所述的虚拟音频HAL接口包括打开音频流接口、读取音频数据接口、停止音频数据采集接口、关闭首频流接口3.根据权利要求1所述的基于Android平台支持虚拟音频设备的方法,其特征在于还包括设置设备参数,该设备参数包括有两种状态,指示HAL实现层是接收原生的物理音频输入,还是接收虚拟音频输入4.根据权利要求3所述的基于Android平台支持虚拟音频设备的方法,其特征在于还包括基于应用层面设立一种后台服务,该后台服务在满足虚拟音频设备启用的条件下对所述设备参数进行设置。

      5.基于Android平台支持虚拟音频设备的系统,其特征在于包括: 音频终端; 虚拟音频设备端,该设备端基于Android平台,包括有虚拟音频服务模块、虚拟音频HAL接口、HAL实现层模块,虚 拟音频服务模块对音频终端进行登记和监测,当监测到音频终端有虚拟音频输入请求时,HAL实现层模块通过运行虚拟音频HAL接口对音频终端进行控制并接收音频输入全文摘要本发明公开了一种基于Android平台支持虚拟音频设备的方法和系统,包括以下步骤设置虚拟音频HAL接口;通过虚拟音频服务登记和监测虚拟音频输入;当监测到虚拟音频输入请求时,HAL实现层通过运行虚拟音频HAL接口接收虚拟音频输入本发明可用于基于Android平台的智能消费电子产品,可以使用户能够便捷、低成本地使用各种音频装置进行语音输入。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.