CN109947387B - 音频采集方法、音频播放方法、***、设备及存储介质 - Google Patents

音频采集方法、音频播放方法、***、设备及存储介质 Download PDF

Info

Publication number
CN109947387B
CN109947387B CN201910244021.0A CN201910244021A CN109947387B CN 109947387 B CN109947387 B CN 109947387B CN 201910244021 A CN201910244021 A CN 201910244021A CN 109947387 B CN109947387 B CN 109947387B
Authority
CN
China
Prior art keywords
audio
kernel
focus
output interface
hardware abstraction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910244021.0A
Other languages
English (en)
Other versions
CN109947387A (zh
Inventor
陈冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apollo Intelligent Connectivity Beijing Technology Co Ltd
Original Assignee
Apollo Intelligent Connectivity Beijing Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apollo Intelligent Connectivity Beijing Technology Co Ltd filed Critical Apollo Intelligent Connectivity Beijing Technology Co Ltd
Priority to CN201910244021.0A priority Critical patent/CN109947387B/zh
Publication of CN109947387A publication Critical patent/CN109947387A/zh
Application granted granted Critical
Publication of CN109947387B publication Critical patent/CN109947387B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种音频采集方法、音频播放方法、***、设备及存储介质。其中,音频采集方法包括:硬件抽象模块中的音频输入输出接口响应于音频应用程序采集音频时的调用请求,调用内核;所述内核驱动音频采集设备采集音频信号;所述内核将音频采集设备采集到的所述音频信号传递至所述音频输入输出接口;所述音频输入输出接口将所述音频信号传递至所述音频应用程序。本发明实施例能够降低音频采集、播放的时延。

Description

音频采集方法、音频播放方法、***、设备及存储介质
技术领域
本发明实施例涉及音频处理技术,尤其涉及一种音频采集方法、音频播放方法、***、设备及存储介质。
背景技术
在语音通话、音视频通话和播放音乐等应用场景中,均需要对音频信号进行采集或者播放。结合图1a,现有的基于安卓***的音频***由上到下依次包括:音频应用程序、应用框架、音频服务、硬件抽象模块、内核和音频类设备。
目前,基于上述音频***的对音频信号的采集过程包括:音频类设备(如麦克风)采集音频信号,依次传递至内核和硬件抽象模块,硬件抽象模块将音频信号复制到本地缓存中,本地缓存再发送给音频服务,通过音频服务对音频信号重采样的特定的频率,并再次通过本地缓存传递至应用框架,进而传递给音频应用程序。基于上述音频***对音频信号的播放过程包括:音频应用程序通过应用框架接口将音频信号复制到本地缓存中,本地缓存再发送给音频服务,音频服务对音频信号进行混音,并重采样到特定的频率,再次复制到本地缓存中,本地缓存将音频信号发送给硬件抽象模块,并经由内核在音频类设备(如扬声器)上播放。
可见,目前的音频信号的采集、播放过程需要经过多个***模块的处理,而且需要多次复制到本地缓存中,导致引入过多的时延,音频播放、采集过程的实时性差。
发明内容
本发明实施例提供一种音频采集方法、音频播放方法、***、设备及存储介质,以降低音频采集、播放的时延。
第一方面,本发明实施例提供了一种音频采集方法,包括:
硬件抽象模块中的音频输入输出接口响应于音频应用程序采集音频时的调用请求,调用内核;
所述内核驱动音频采集设备采集音频信号;
所述内核将音频采集设备采集到的所述音频信号传递至所述音频输入输出接口;
所述音频输入输出接口将所述音频信号传递至所述音频应用程序。
第二方面,本发明实施例还提供了一种音频播放方法,包括:
硬件抽象模块中的音频输入输出接口响应于音频应用程序播放音频时的调用请求,将待播放的音频信号传递至内核;
所述内核驱动音频播放设备播放所述音频信号。
第三方面,本发明实施例还提供了一种音频采集***,所述***包括:音频应用程序、硬件抽象模块、内核和音频采集设备,所述硬件抽象模块中配置有音频输入输出接口;
所述硬件抽象模块中的音频输入输出接口,用于响应于音频应用程序采集音频时的调用请求,调用内核;
所述内核,用于驱动音频采集设备采集音频信号;
所述内核,还用于将音频采集设备采集到的所述音频信号传递至所述音频输入输出接口;
所述音频输入输出接口,还用于将所述音频信号传递至所述音频应用程序。
第四方面,本发明实施例还提供了一种音频播放***,所述***包括:音频应用程序、硬件抽象模块、内核和音频播放设备,所述硬件抽象模块中配置有音频输入输出接口;
所述硬件抽象模块中的音频输入输出接口,用于响应于所述音频应用程序播放音频时的调用请求,将待播放的音频信号传递至所述内核;
所述内核,用于驱动音频播放设备播放所述音频信号。
第五方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任一实施例所述的音频采集方法,或者任一实施例所述的音频播放方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的音频采集方法,或者任一实施例所述的音频播放方法。
本发明实施例提供的音频采集***仅包括音频应用程序、硬件抽象模块、内核和音频采集设备,不需音频服务和应用框架,减少了***中的模块;而且,正是因为减少了音频服务和应用框架,不需要硬件抽象模块将音频信号复制到本地缓存中,本地缓存再发送给音频服务,也不需要音频服务通过本地缓存传递至应用框架,而是通过硬件抽象模块中的输入输出接口直接将音频信号传递至音频应用程序,使得音频输入输出接口直接与内核和音频应用程序交互,减少了复制到本地缓存的次数,降低时延,提高了音频采集过程的实时性。
附图说明
图1a是现有技术中基于安卓***的音频***的结构示意图;
图1b是本发明实施例一提供的一种音频采集***的结构示意图;
图2a是本发明实施例二提供的一种音频采集***的结构示意图;
图2b是本发明实施例二提供的另一种音频采集***的结构示意图;
图3是本发明实施例三提供的一种音频播放***的结构示意图;
图4a是本发明实施例四提供的一种音频播放***的结构示意图;
图4b是本发明实施例四提供的另一种音频播放***的结构示意图;
图5是本发明实施例五提供的一种音频采集方法的流程图;
图6是本发明实施例六提供的一种音频播放方法的流程图;
图7是本发明实施例七提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1b是本发明实施例一提供的一种音频采集***的结构示意图,该音频采集***基于安卓***搭建,适用于安卓***。音频采集***可以应用在车载安卓操作中,或者应用在移动终端的安卓***等。
结合图1b,音频采集***按照由上至下的顺序依次包括:音频应用程序10、硬件抽象模块20、内核30和音频采集设备40。
其中,音频应用程序10位于应用层,包括但不限于语音通话应用程序、音视频通话应用程序等语音类应用程序。除了音频应用程序10之外,安卓***的应用层还包括音乐应用程序、视频应用程序、直播应用程序等非语音类应用程序。为了方便描述与区分,将非语音类应用程序称为其它应用程序。
硬件抽象模块20位于硬件抽象层,不同于现有技术中的硬件抽象模块,本实施例中的硬件抽象模块20中配置有音频输入输出接口21。为了不影响其他应用程序的使用,本实施例不对现有音频***中的硬件抽象模块进行改动,而是在硬件抽象层重新编写一新的硬件抽象模块20,该新的硬件抽象模块20分别与音频应用程序10和内核30适配,可采用C++语言编写。为了方便描述和区分,将现有技术中供其它应用程序使用的硬件抽象模块称为原生硬件抽象模块,本实施例中新编写的硬件抽象模块名称依然为硬件抽象模块。
内核30具体为Linux内核,位于内核层,包括音频采集设备40的驱动。音频采集设备40位于硬件层,包括麦克风等。
在采集音频信号的场景下,音频应用程序10用于响应于用户的音频采集操作,向硬件抽象模块20中的音频输入输出接口21发送采集音频时的调用请求。音频输入输出接口21用于响应于音频应用程序10采集音频时的调用请求,调用内核30。
内核30用于驱动音频采集设备40采集音频信号。具体地,内核30通过音频采集设备40的驱动来驱动音频采集设备40,音频采集设备40进而采集音频信号,例如用户输入的语音信号。接着,音频采集设备40实时将采集到的音频信号向上传递至内核30。内核30还用于将音频采集设备40采集到的音频信号传递至音频输入输出接口21;继而,音频输入输出接口21,还用于将音频信号传递至音频应用程序10,至此完成音频采集操作。
本发明实施例提供的音频采集***仅包括音频应用程序10、硬件抽象模块20、内核30和音频采集设备40,不需音频服务和应用框架,减少了***中的模块;而且,正是因为减少了音频服务和应用框架,不需要硬件抽象模块20将音频信号复制到本地缓存中,本地缓存再发送给音频服务,也不需要音频服务通过本地缓存传递至应用框架,而是通过硬件抽象模块20中的音频输入输出接口21直接将音频信号传递至音频应用程序10,使得音频输入输出接口21直接与内核30和音频应用程序10交互,减少了复制到本地缓存的次数,降低时延,提高了音频采集过程的实时性。
在一可选实施方式中,硬件抽象模块20还包括初始化内核的接口,初始化内核的接口用于向内核30中配置预设频率。基于此,内核30还用于将预设频率配置到音频采集设备40中或者选择与预设频率相匹配的音频采集设备40,以使音频采集设备40以预设频率采集音频信号。也就是说,音频采集设备40在采集音频信号时,具体用于以预设频率采集音频信号。本实施方式适用于语音通话或者音视频通话的应用场景,采集到的音频信号为用户的语音信号,语音信号具有固定的频率,一般为12kHz、16kHz,则将预设频率设置为12kHz或者16kHz,音频采集设备40得以准确采集用户的语音信号。本实施方式中,音频采集设备40负责语音信号的调频,代替了音频服务的调频,有效地降低采集语音信号的时延,提高语音通话过程中的实时性。
实施例二
图2a是本发明实施例二提供的一种音频采集***的结构示意图。图2b是本发明实施例二提供的另一种音频采集***的结构示意图。在图1b的基础上,图2a和图2b示出音频采集***还包括:焦点处理模块50。焦点处理模块50配置在应用框架层,应用框架层位于应用层之下,硬件抽象层之上。结合图2b,为了不影响其他应用程序的使用,本实施例不对现有音频***中的应用框架51进行改动,而是在应用框架层重新编写一新的焦点处理模块50。该焦点处理模块50分别与音频应用程序10和应用框架51适配。焦点处理模块50用于为音频应用程序10或者其他应用程序11提供音频焦点。
音频应用程序10用于向音频输入输出接口21发送采集音频时的调用请求时,向焦点处理模块50请求音频焦点。焦点处理模块50用于将音频焦点提供给音频应用程序10,并通知其他应用程序11失去音频焦点。音频应用程序10获得音频焦点后,会独占音频播放设备70。结合图2b,焦点处理模块50具体用于将其他应用程序11失去音频焦点的通知发送给应用框架51,应用框架51用于通知其他应用程序11失去音频焦点。其他应用程序11释放音频信号的输入和输出。
音频应用程序10用于响应于用户的结束音频采集的操作,结束音频采集。其中,结束音频采集的操作包括对结束通话图标的点击操作、退出语音通话的操作。音频应用程序10用于结束音频采集时,通知焦点处理模块50放弃音频焦点,以释放音频信号的输入和输出。焦点处理模块50,还用于将音频焦点提供给其它应用程序11。焦点处理模块50具体用于将音频应用程序10放弃音频焦点的通知发送给应用框架51,应用框架51用于将音频焦点提供给其它应用程序11。
结合图2b,音频采集***不仅包括音频应用程序10、硬件抽象模块20、内核30和音频采集设备40这一条音频采集通道,还包括背景技术中涉及的其它应用程序11、应用框架51、音频服务60、原生硬件抽象模块11、内核30和音频采集设备40这条通道。本实施例中,两条通道共用内核30和音频采集设备40。
本实施例在低时延音频***的基础上,加入了焦点处理模块50,通过焦点处理模块50将音频焦点提供给音频应用程序10,从而使音频应用程序10独占播放设备,并停止其它应用程序11使用播放设备,避免音频信号的混淆,也就不需要音频服务60对多个音频信号进行混音。而且,通过编写硬件抽象模块20以及音频焦点的提供逻辑,使得其它应用程序11的音频采集通道与音频应用程序10的音频采集通道相互独立,不会互相影响。
实施例三
图3是本发明实施例三提供的一种音频播放***的结构示意图。该音频播放***基于安卓***搭建,适用于安卓***,音频播放***可以应用在车载安卓操作中,或者应用在移动终端的安卓***等。
本实施例提供的音频播放***按照由上至下的顺序依次包括:音频应用程序10、硬件抽象模块20、内核30和音频播放设备70。对于音频应用程序10、硬件抽象模块20的描述详见上述各实施例,此处不再赘述。
内核30具体为Linux内核30,包括音频播放设备70的驱动。音频播放设备70位于硬件层,包括扬声器等。
在播放音频信号的场景下,音频应用程序10用于响应于用户的音频播放操作,向硬件抽象模块20中的音频输入输出接口21发送播放音频时的调用请求,音频输入输出接口21用于响应于音频应用程序10播放音频时的调用请求,调用内核30。
内核30用于驱动音频播放设备70播放音频信号。具体地,内核30通过音频播放设备70的驱动来驱动音频播放设备70,音频播放设备70进而播放音频信号,例如对方传输的语音信号,至此完成音频播放操作。
本发明实施例提供的音频播放***仅包括音频应用程序10、硬件抽象模块20、内核30和音频播放设备70,不需音频服务60和应用框架51,减少了***中的模块;而且,正是因为减少了音频服务60和应用框架51,不需要通过应用框架接口将音频信号复制到本地缓存中,也不需要音频服务对音频信号进行混音,并重采样到特定的频率,再次复制到本地缓存中,而是音频输入输出接口21直接将音频信号传递至内核30,由内核30驱动音频播放设备70播放音频信号,使得音频输入输出接口21直接与内核30和音频应用程序10交互,减少了复制到本地缓存的次数,降低时延,提高了音频采集过程的实时性。
在一可选实施方式中,硬件抽象模块20还包括初始化内核的接口,初始化内核的接口用于向内核30中配置预设频率。基于此,内核30还用于将预设频率配置到音频播放设备70中或者选择与预设频率相匹配的音频播放设备70,以使音频播放设备70以预设频率采集音频信号。也就是说,音频播放设备70在播放音频信号时,具体用于以预设频率播放音频信号。本实施方式适用于语音通话或者音视频通话的应用场景,播放的音频信号为用户的语音信号,语音信号具有固定的频率,一般为12kHz、16kHz,则将预设频率设置为12kHz或者16kHz,音频播放设备70得以准确播放用户的语音信号。本实施方式中,音频播放设备70负责语音信号的调频,代替了音频服务60的调频,有效地降低播放语音信号的时延,提高语音通话过程中的实时性。
实施例四
图4a是本发明实施例四提供的一种音频播放***的结构示意图。图4b是本发明实施例四提供的另一种音频播放***的结构示意图。在图3的基础上,图4a和图4b示出的音频播放***还包括:焦点处理模块50。对焦点处理模块50结构的描述详见上述实施例,此处不再赘述,不同之处仅在于焦点处理模块50的功能。
音频应用程序10用于向音频输入输出接口21发送播放音频时的调用请求时,向焦点处理模块50请求音频焦点。焦点处理模块50用于将音频焦点提供给音频应用程序10,并通知其他应用程序11失去音频焦点。音频应用程序10获得音频焦点后,会独占音频播放设备70。结合图4b,焦点处理模块50具体用于将其他应用程序11失去音频焦点的通知发送给应用框架51,应用框架51用于通知其他应用程序11失去音频焦点。其他应用程序11释放音频信号的输入和输出。
音频应用程序10用于响应于用户的结束音频播放的操作,结束音频播放。其中,结束音频播放的操作包括对结束通话图标的点击操作、退出语音通话的操作。音频应用程序10用于结束音频播放时,通知焦点处理模块50放弃音频焦点,以释放音频信号的输入和输出。焦点处理模块50,还用于将音频焦点提供给其它应用程序11。焦点处理模块50具体用于将音频应用程序10放弃音频焦点的通知发送给应用框架51,应用框架用于将音频焦点提供给其它应用程序11。
结合图4b,音频播放***不仅包括音频应用程序10、硬件抽象模块20、内核30和音频播放设备70这一条音频采集通道,还包括背景技术中涉及的其它应用程序11、应用框架51、音频服务60、原生硬件抽象模块22、内核30和音频播放设备70这条通道。本实施例中,两条通道共用内核30和音频播放设备70。
本实施例在低时延音频***的基础上,加入了焦点处理模块50,通过焦点处理模块50将音频焦点提供给音频应用程序10,从而使音频应用程序10独占播放设备,并停止其它应用程序11使用播放设备,避免音频信号的混淆,也就不需要音频服务60对多个音频信号进行混音。而且,通过编写硬件抽象模块20以及音频焦点的提供逻辑,使得其它应用程序11的音频播放通道与音频应用程序10的音频播放通道相互独立,不会互相影响。
实施例五
图5是本发明实施例五提供的一种音频采集方法的流程图,本实施例适用的音频采集***详见上述实施例的描述,此处不再赘述。结合图5,本实施例提供的方法包括以下操作:
S510、硬件抽象模块中的音频输入输出接口响应于音频应用程序采集音频时的调用请求,调用内核。
S520、内核驱动音频采集设备采集音频信号。
S530、内核将音频采集设备采集到的音频信号传递至音频输入输出接口。
S540、音频输入输出接口将音频信号传递至音频应用程序。
可选地,在硬件抽象模块中的音频输入输出接口响应于音频应用程序采集音频时的调用请求,调用内核之前,还包括:硬件抽象模块通过初始化内核的接口,向内核中配置预设频率;内核将预设频率配置到音频采集设备中,或者选择与预设频率相匹配的音频采集设备,以使音频采集设备以预设频率采集音频信号。
可选地,上述方法还包括:音频应用程序向音频输入输出接口发送采集音频时的调用请求时,向焦点处理模块请求音频焦点;焦点处理模块将音频焦点提供给音频应用程序,并通知其他应用程序失去音频焦点。
可选地,在音频输入输出接口将音频信号传递至音频应用程序之后,还包括:音频应用程序结束音频采集时,通知焦点处理模块放弃音频焦点;焦点处理模块将音频焦点提供给其它应用程序。
本发明实施例中,通过硬件抽象模块中的输入输出接口直接将音频信号传递至音频应用程序,使得音频输入输出接口直接与内核和音频应用程序交互,不需要硬件抽象模块将音频信号复制到本地缓存中,本地缓存再发送给音频服务,也不需要音频服务通过本地缓存传递至应用框架,减少了复制到本地缓存的次数,降低时延,提高了音频采集过程的实时性。
实施例六
图6是本发明实施例六提供的一种音频播放方法的流程图,本实施例适用的音频播放***详见上述实施例的描述,此处不再赘述。结合图6,本实施例提供的方法包括以下操作:
S610、硬件抽象模块中的音频输入输出接口响应于音频应用程序播放音频时的调用请求,将待播放的音频信号传递至内核。
S620、内核驱动音频播放设备播放音频信号。
可选地,在硬件抽象模块中的音频输入输出接口响应于音频应用程序播放音频时的调用请求,将待播放的音频信号传递至内核之前,还包括:硬件抽象模块通过初始化内核的接口,向内核中配置预设频率;内核将预设频率配置到音频播放设备中,以使音频播放设备以预设频率播放音频信息。
可选地,上述方法还包括:音频应用程序向音频输入输出接口发送播放音频时的调用请求时,向焦点处理模块请求音频焦点;焦点处理模块将音频焦点提供给音频应用程序,并通知其他应用程序失去音频焦点。
可选地,在内核驱动音频播放设备播放音频信号之后,还包括:音频应用程序结束音频播放时,通知焦点处理模块放弃音频焦点;焦点处理模块将音频焦点提供给其它应用程序。
本发明实施例中,音频输入输出接口直接将音频信号传递至内核,由内核驱动音频播放设备播放音频信号,使得音频输入输出接口直接与内核和音频应用程序交互,不需要通过应用框架接口将音频信号复制到本地缓存中,也不需要音频服务对音频信号进行混音,并重采样到特定的频率,再次复制到本地缓存中,本实施例减少了复制到本地缓存的次数,降低时延,提高了音频采集过程的实时性。
实施例七
图7是本发明实施例七提供的一种电子设备的结构示意图。图7示出了适于用来实现本发明实施方式的示例性电子设备120的框图。图7显示的电子设备120仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备120以通用计算设备的形式表现。电子设备120的组件可以包括但不限于:一个或者多个处理器或者处理单元160,***存储器280,连接不同***组件(包括***存储器280和处理单元160)的总线180。
总线180表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
电子设备120典型地包括多种计算机***可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器280可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)300和/或高速缓存存储器320。电子设备120可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***340可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线180相连。存储器280可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块420的程序/实用工具400,可以存储在例如存储器280中,这样的程序模块420包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块420通常执行本发明所描述的实施例中的功能和/或方法。
电子设备120也可以与一个或多个外部设备140(例如键盘、指向设备、显示器240、摄像头、定位***等)通信,还可与一个或者多个使得用户能与该电子设备120交互的设备通信,和/或与使得该电子设备120能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口220进行。并且,电子设备120还可以通过网络适配器200与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器200通过总线180与电子设备120的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备120使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元160通过运行存储在***存储器280中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的音频采集方法和音频播放方法。
实施例八
本发明实施例八还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例提供的音频采集方法或者音频播放方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (14)

1.一种音频采集方法,其特征在于,包括:
硬件抽象模块中的音频输入输出接口响应于音频应用程序采集音频时的调用请求,调用内核;
所述内核驱动音频采集设备采集音频信号;
所述内核将音频采集设备采集到的所述音频信号传递至所述音频输入输出接口;
所述音频输入输出接口将所述音频信号传递至所述音频应用程序;其中,所述音频输入输出接口直接与所述内核和所述音频应用程序交互;
其中,执行所述音频采集方法的音频采集***包括两条通道,一条通道包括所述音频应用程序、所述硬件抽象模块、所述内核和所述音频采集设备,另一条通道包括其它应用程序、应用框架、音频服务、原生硬件抽象模块、所述内核和所述音频采集设备;两条通道共用所述内核和所述音频采集设备;包括所述音频输入输出接口的硬件抽象模块位于硬件抽象层,分别与所述音频应用程序和所述内核适配。
2.根据权利要求1所述的方法,其特征在于,在所述硬件抽象模块中的音频输入输出接口响应于音频应用程序采集音频时的调用请求,调用内核之前,还包括:
所述硬件抽象模块通过初始化内核的接口,向所述内核中配置预设频率;
所述内核将所述预设频率配置到音频采集设备中,或者选择与预设频率相匹配的音频采集设备,以使所述音频采集设备以所述预设频率采集音频信号。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述音频应用程序向所述音频输入输出接口发送采集音频时的调用请求时,向焦点处理模块请求音频焦点;
所述焦点处理模块将音频焦点提供给所述音频应用程序,并通知其他应用程序失去音频焦点。
4.根据权利要求3所述的方法,其特征在于,在所述音频输入输出接口将所述音频信号传递至所述音频应用程序之后,还包括:
所述音频应用程序结束音频采集时,通知所述焦点处理模块放弃音频焦点;
所述焦点处理模块将所述音频焦点提供给其它应用程序。
5.一种音频播放方法,其特征在于,包括:
硬件抽象模块中的音频输入输出接口响应于音频应用程序播放音频时的调用请求,将待播放的音频信号传递至内核;
所述内核驱动音频播放设备播放所述音频信号;其中,所述音频输入输出接口直接与所述内核和所述音频应用程序交互;
其中,执行所述音频播放方法的音频播放***包括两条通道,一条通道包括所述音频应用程序、所述硬件抽象模块、所述内核和所述音频播放设备,另一条通道包括其它应用程序、应用框架、音频服务、原生硬件抽象模块、所述内核和所述音频播放设备;两条通道共用所述内核和所述音频播放设备;包括所述音频输入输出接口的硬件抽象模块位于硬件抽象层,分别与所述音频应用程序和所述内核适配。
6.根据权利要求5所述的方法,其特征在于,在所述硬件抽象模块中的音频输入输出接口响应于音频应用程序播放音频时的调用请求,将待播放的音频信号传递至内核之前,还包括:
所述硬件抽象模块通过初始化内核的接口,向所述内核中配置预设频率;
所述内核将所述预设频率配置到所述音频播放设备中,以使所述音频播放设备以所述预设频率播放音频信息。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
所述音频应用程序向所述音频输入输出接口发送播放音频时的调用请求时,向焦点处理模块请求音频焦点;
所述焦点处理模块将音频焦点提供给所述音频应用程序,并通知其他应用程序失去音频焦点。
8.根据权利要求7所述的方法,其特征在于,在所述内核驱动音频播放设备播放所述音频信号之后,还包括:
所述音频应用程序结束音频播放时,通知所述焦点处理模块放弃音频焦点;
所述焦点处理模块将所述音频焦点提供给其它应用程序。
9.一种音频采集***,其特征在于,包括两条通道,其中,一条通道包括音频应用程序、硬件抽象模块、内核和音频采集设备,所述硬件抽象模块中配置有音频输入输出接口;另一条通道包括其它应用程序、应用框架、音频服务、原生硬件抽象模块、所述内核和所述音频采集设备;两条通道共用所述内核和所述音频采集设备;包括所述音频输入输出接口的硬件抽象模块位于硬件抽象层,分别与所述音频应用程序和所述内核适配;
所述硬件抽象模块中的音频输入输出接口,用于响应于音频应用程序采集音频时的调用请求,调用内核;
所述内核,用于驱动音频采集设备采集音频信号;
所述内核,还用于将音频采集设备采集到的所述音频信号传递至所述音频输入输出接口;
所述音频输入输出接口,还用于将所述音频信号传递至所述音频应用程序;其中,所述音频输入输出接口直接与所述内核和所述音频应用程序交互。
10.根据权利要求9所述的***,其特征在于,还包括:焦点处理模块;
所述音频应用程序,用于向所述音频输入输出接口发送采集音频时的调用请求时,向所述焦点处理模块请求音频焦点;
所述焦点处理模块,用于将音频焦点提供给所述音频应用程序,并通知其他应用程序失去音频焦点;
所述音频应用程序,还用于结束音频采集时,通知所述焦点处理模块放弃音频焦点;
所述焦点处理模块,还用于将所述音频焦点提供给其它应用程序。
11.一种音频播放***,其特征在于,包括两条通道,其中,一条通道包括音频应用程序、硬件抽象模块、内核和音频播放设备,所述硬件抽象模块中配置有音频输入输出接口;另一条通道包括其它应用程序、应用框架、音频服务、原生硬件抽象模块、所述内核和所述音频播放设备;两条通道共用所述内核和所述音频播放设备;包括所述音频输入输出接口的硬件抽象模块位于硬件抽象层,分别与所述音频应用程序和所述内核适配;
所述硬件抽象模块中的音频输入输出接口,用于响应于所述音频应用程序播放音频时的调用请求,将待播放的音频信号传递至所述内核;
所述内核,用于驱动音频播放设备播放所述音频信号;其中,所述音频输入输出接口直接与所述内核和所述音频应用程序交互。
12.根据权利要求11所述的***,其特征在于,还包括:焦点处理模块;
所述音频应用程序,用于向所述音频输入输出接口发送播放音频时的调用请求时,向所述焦点处理模块请求音频焦点;
所述焦点处理模块,用于将音频焦点提供给所述音频应用程序,并通知其他应用程序失去音频焦点;
所述音频应用程序,还用于结束音频播放时,通知所述焦点处理模块放弃音频焦点;
所述焦点处理模块,还用于将所述音频焦点提供给其它应用程序。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的音频采集方法,或者5-8中任一所述的音频播放方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的音频采集方法,或者5-8中任一所述的音频播放方法。
CN201910244021.0A 2019-03-28 2019-03-28 音频采集方法、音频播放方法、***、设备及存储介质 Active CN109947387B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910244021.0A CN109947387B (zh) 2019-03-28 2019-03-28 音频采集方法、音频播放方法、***、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910244021.0A CN109947387B (zh) 2019-03-28 2019-03-28 音频采集方法、音频播放方法、***、设备及存储介质

Publications (2)

Publication Number Publication Date
CN109947387A CN109947387A (zh) 2019-06-28
CN109947387B true CN109947387B (zh) 2022-10-21

Family

ID=67012251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910244021.0A Active CN109947387B (zh) 2019-03-28 2019-03-28 音频采集方法、音频播放方法、***、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109947387B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111142978B (zh) * 2019-12-27 2024-01-30 杭州涂鸦信息技术有限公司 一种基于智能语音设备上打电话的方法及***
CN111328061B (zh) * 2020-02-28 2023-04-07 智达诚远科技有限公司 一种音频资源的控制方法、车载终端和***
CN111596885B (zh) * 2020-07-23 2020-11-17 腾讯科技(深圳)有限公司 音频数据处理方法、服务器及存储介质
CN113518258B (zh) * 2021-05-14 2023-06-30 北京天籁传音数字技术有限公司 一种低延迟全场景音频实现方法、装置和电子设备
CN113990354B (zh) * 2021-12-29 2022-06-17 北京鲸鲮信息***技术有限公司 基于Linux的音频控制方法、装置、设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104007977A (zh) * 2014-06-09 2014-08-27 威盛电子股份有限公司 电子装置及音频播放方法
CN105183446A (zh) * 2015-07-16 2015-12-23 贵阳语玩科技有限公司 音频管理***
CN106293659A (zh) * 2015-05-21 2017-01-04 阿里巴巴集团控股有限公司 一种音频实时处理方法、装置及智能终端
WO2017177873A1 (zh) * 2016-04-15 2017-10-19 中兴通讯股份有限公司 一种音频同步录放***及方法、存储介质
CN109144464A (zh) * 2018-08-27 2019-01-04 歌尔科技有限公司 一种音频输出的方法、装置及Android设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747338B2 (en) * 2006-08-18 2010-06-29 Xerox Corporation Audio system employing multiple mobile devices in concert
US20110289506A1 (en) * 2010-05-18 2011-11-24 Google Inc. Management of computing resources for applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104007977A (zh) * 2014-06-09 2014-08-27 威盛电子股份有限公司 电子装置及音频播放方法
CN106293659A (zh) * 2015-05-21 2017-01-04 阿里巴巴集团控股有限公司 一种音频实时处理方法、装置及智能终端
CN105183446A (zh) * 2015-07-16 2015-12-23 贵阳语玩科技有限公司 音频管理***
WO2017177873A1 (zh) * 2016-04-15 2017-10-19 中兴通讯股份有限公司 一种音频同步录放***及方法、存储介质
CN109144464A (zh) * 2018-08-27 2019-01-04 歌尔科技有限公司 一种音频输出的方法、装置及Android设备

Also Published As

Publication number Publication date
CN109947387A (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
CN109947387B (zh) 音频采集方法、音频播放方法、***、设备及存储介质
CN109658932B (zh) 一种设备控制方法、装置、设备及介质
CN110008045B (zh) 微服务的聚合方法、装置、设备及存储介质
US20220053068A1 (en) Methods, apparatuses and computer storage media for applet state synchronization
WO2020078300A1 (zh) 一种终端投屏的控制方法和终端
CN109240107B (zh) 一种电器设备的控制方法、装置、电器设备和介质
CN110704202B (zh) 多媒体录制数据共享方法及终端设备
CN111163330A (zh) 直播视频的渲染方法、装置、***、设备及存储介质
US20070283040A1 (en) Electronic device, network connecting system, network connecting method, and program product therefor
CN108460120A (zh) 数据保存方法、装置、终端设备及存储介质
CN102427465A (zh) 语音服务代理方法及装置、通过代理集成语音应用的***
US9363157B2 (en) Remotely controlling devices and processing asynchronous events for testing
WO2019227552A1 (zh) 基于行为识别的语音定位方法以及装置
CN112102836B (zh) 语音控制屏幕显示方法、装置、电子设备和介质
CN102984370A (zh) 一种基于安卓的无线网络下变声通话的方法
WO2023284411A1 (zh) 应用于直播的音频的输入输出的切换方法、直播设备
US12022149B2 (en) Method for processing sound information, and non-transitory computer storage medium and electronic device
CN115565557A (zh) 音频采集方法、装置、显示屏幕、电子设备及存储介质
CN115237481A (zh) 驱动外接设备的方法、装置、设备及存储介质
CN112435690B (zh) 双工蓝牙翻译处理方法、装置、计算机设备和存储介质
CN110855832A (zh) 一种辅助通话的方法、装置和电子设备
CN108196817B (zh) 音频识别方法、装置及存储介质
CN113452853A (zh) 语音交互方法及装置、电子设备、存储介质
CN109275140A (zh) 一种信息处理方法、***及服务器
CN113347459B (zh) 基于Android***的自主音频源切换方法、装置和计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20211015

Address after: 100176 101, floor 1, building 1, yard 7, Ruihe West 2nd Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Applicant after: Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd.

Address before: 100085 Baidu Building, 10 Shangdi Tenth Street, Haidian District, Beijing

Applicant before: BAIDU ONLINE NETWORK TECHNOLOGY (BEIJING) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant