音频数据的传输处理的方法及电子设备与流程
未命名
09-24
阅读:51
评论:0
1.本技术涉及麦克风系统技术领域,尤其涉及音频数据的传输处理的方法及电子设备。
背景技术:
2.用户在进行一些日常活动时(例如k歌)会使用到声音采集设备,声音采集设备可以采集音频数据,并通过有线或者无线的方式将音频数据传输到电子设备(例如智慧屏)上。电子设备对接收到的音频数据进行处理后发送给扬声器,扬声器对接收到的音频数据进行播放,以此来达到用户进行的目的。
3.但是,当电子设备接收声音采集设备采集到的音频数据未能实时的传输到扬声器时,会导致最后扬声器播放的音频数据时延较大,用户能明显的感知到发出声音和听到声音之间存在时延,这样用户体验差。
技术实现要素:
4.本技术实施例提供了音频数据的传输处理的方法及电子设备。当音频数据在电子设备内进行传输处理时,usb音频硬件抽象层将音频数据传输至音频输入处理模块,混音模块接收来自音频输入处理模块的音频数据,扬声器接收音频数据并进行播放,满足音频数据在传输过程中的时延小于预定阈值的目的,使得用户不易发现用户在发出声音到听到声音之间的时延,提高用户的体验感。
5.第一方面,本技术实施例提供了一种音频数据传输处理的方法,方法应用于电子设备,其特征在于,该方法包括:电子设备中的通用串行总线usb音频硬件抽象层接收到声音采集设备发送的第一音频数据;电子设备中的usb音频硬件抽象层将第一音频数据发送音频输入处理模块;音频输入处理模块用于缓存usb音频硬件抽象层发送的一帧或多帧音频数据;电子设备中的混音模块将音频输入处理模块输入至混音模块的第一音频数据,与电子设备中的第一应用输入至混音模块的第二音频数据混合成第三音频数据;电子设备中的混音模块将第三音频数据传输至扬声器进行播放。
6.实施第一方面提供的方法,可以减少音频数据在声音采集设备发送至电子设备的扬声器之间的传输通路之间经由的处理模块,以此来缩短音频数据的传输通路的距离,能够减少音频数据传输的总时延方便地满足用户的实际需求,提升用户在使用电子设备时的体验和听觉感受。
7.结合第一方面,在一些实施例中,电子设备中的混音模块将第三音频数据传输至扬声器进行播放。电子设备中的混音模块将第三音频数据传输至音频输出处理模块,该音频输出处理模块用于缓存由混音模块输出的音频数据;电子设备中的音频输出处理模块将第三音频数据传输至扬声器进行播放。这样,电子设备中的混音模块在将音频数据发送至扬声器之间还新增了一个音频输出处理模块,音频输出处理模块的缓存由混音模块发送的音频数据的功能可以防止音频数据在传输过程中发生抖动,提升用户的使用体验感。
8.结合第一方面,在一些实施例中,电子设备中的usb音频硬件抽象层将第一音频数据发送音频输入处理模块。电子设备中的usb音频硬件抽象层将第一音频数据发送至电子设备中的音效与音量模块;音效与音量模块将第一音频数据发送至音频输入处理模块。这样,音频数据以直接由usb音频硬件抽象层发送至音效与音量模块代替了由音频管理器发送至应用进行音效与音量处理,使得音频数据处理时间变短,缩短了音频数据的传输时延,同时,新增的音频输入处理模块的缓存由音效与音量模块发送的音频数据的功能也可以防止音频数据在传输过程中发生抖动,提升用户的使用体验感。
9.结合第一方面,在一些实施例中,电子设备中usb音频硬件抽象层第一音频数据发送音效与音量模块之前,电子设备中的usb音频硬件抽象层确定音频输入处理模块中的第一时延,以及音频输出处理模块中的第二时延。其中,第一时延与音频输入处理模块中缓存的音频数据相关联,第二时延与音频输出处理模块中缓存的音频数据相关联;
10.在第一时延与第二时延之和大于第一阈值的情况下,电子设备中的usb音频硬件抽象层确定所音频输入处理模块中缓存的音频数据、以及音频输出处理模块中缓存的音频数据的是否为有效的音频数据;
11.在usb音频硬件抽象层确定音频输入处理模块中缓存的音频数据中的第四音频数据为非有效的音频数据的情况下,电子设备中的usb音频硬件抽象层指示音频输入处理模块删除第四音频数据;在usb音频硬件抽象层确定音频输出处理模块中缓存的音频数据中的第五音频数据为非有效的音频数据的情况下,电子设备中的usb音频硬件抽象层指示音频输出处理模块删除第五音频数据。可以理解的是,上述两种情况可以同时发生,可以不同时发生。其中,第四音频数据可以是音频输入处理模块中缓存的音频数据中的一帧或多帧音频数据,第五音频数据可以是音频输出处理模块中缓存的音频数据中的一帧或多帧音频数据。这样,可以减少音频数据在声音采集设备到电子设备中扬声器之间传输的音频数据累积量即在音频输入处理模块和音频输出处理模块等的时延大小,从而降低声音采集设备采集的音频数据传输至电子设备的扬声器之间的时延,使得总时延低于预设阈值,并且总时延不被人耳察觉到用户能有更好的体验和听觉感受。
12.结合第一方面,在一些实施例中,电子设备中的usb音频硬件抽象层确定音频输入处理模块中的第一时延,以及音频输出处理模块中的第二时延。在第一时延与第二时延之和小于第一阈值的情况下,电子设备中的usb音频硬件抽象层指示音频输入处理模块将音频输入处理模块中缓存的音频数据传输至混音模块;电子设备中的所述usb音频硬件抽象层指示音频输出处理模块将音频输出处理模块中缓存的音频数据传输至扬声器。这样不仅可以减少电子设备为判断音频数据是否为有效而产生的负担,还可以使得音频数据在传输通路上的总时延小于预设阈值,用户不能识别出用户发出声音与听见声音之间的时延,满足用户的使用需求。
13.结合第一方面,在一些实施例中,在第一时延与第二时延之和大于第一阈值的情况下,电子设备中的usb音频硬件抽象层确定音频输入处理模块中缓存的音频数据、以及音频输出处理模块中缓存的音频数据的是否为有效的音频数据。在usb音频硬件抽象层确定音频输入处理模块中缓存的音频数据中的第四音频数据为有效的音频数据的情况下,电子设备中的usb音频硬件抽象层指示音频输入处理模块将第四音频数据传输至混音模块;在usb音频硬件抽象层确定音频输出处理模块中缓存的音频数据中的第五音频数据为有效的
音频数据的情况下,电子设备中的所述usb音频硬件抽象层指示音频输出处理模块将第五音频数据传输至所述扬声器。可以理解的是,上述两种情况可以同时发生,可以不同时发生。其中,第四音频数据可以是音频输入处理模块中缓存的音频数据中的一帧或多帧音频数据,第五音频数据可以是音频输出处理模块中缓存的音频数据中的一帧或多帧音频数据。这样,对音频数据进行有效性判断可以避免爆音现象的产生,提升用户的听觉体验。
14.结合第一方面,在一些实施例中,第一时延与音频输入处理模块中缓存的音频数据相关联,第二时延与音频输出处理模块中缓存的音频数据相关联。其中第一时延的大小可以用音频输入处理模块中缓存的音频数据的播放时长来表示;第二时延的大小可以用音频输出处理模块中缓存的音频数据的播放时长来表示。这样,可以从判断音频数据是否为有效的音频数据的角度来减少整个传输通路上的时延,以此使总时延小于预设阈值。
15.结合第一方面,在一些实施例中,有效的音频数据和未有效音频数据可以是指有效的音频数据的采样点平均值大于或等于第二阈值;未有效的音频数据的采样点平均值小于第二阈值。例如,第二阈值可以为1。这样,可以判断出音频数据是否为有效的音频数据,然后接着判断是否要删除该音频数据,以达到减少传输通路中时延的目的。
16.第二方面,本技术实施例提供了一种电子设备,电子设备包括通用串行总线usb音频硬件抽象层、音频输入处理模块、混音模块、扬声器,其中:
17.通用串行总线usb音频硬件抽象层用于到声音采集设备发送的第一音频数据;usb音频硬件抽象层用于将第一音频数据发送音频输入处理模块;音频输入处理模块用于缓存usb音频硬件抽象层输入的一帧或多帧音频数据;混音模块用于将音频输入处理模块输入至混音模块的第一音频数据,与电子设备中的第一应用输入至混音模块的第二音频数据进行混合成第三音频数据;扬声器用于接收混音模块发送的第三音频数据,并播放第三音频数据。
18.第二方面提供的电子设备,可以减少音频数据在声音采集设备发送至电子设备的扬声器之间的传输通路之间经由的处理模块,以此来缩短音频数据的传输通路的距离,能够减少音频数据传输的总时延方便地满足用户的实际需求,提升用户在使用电子设备时的体验和听觉感受。
19.结合第二方面的,在一些实施例中,电子设备还包括音频输出处理模块,混音模块具体用于将第三音频数据传输至音频输出处理模块,音频输出处理模块用于缓存混音模块输出的第三音频数据;音频输出处理模块用于将第三音频数据传输至扬声器进行播放。这样,电子设备中的混音模块在将音频数据发送至扬声器之间还新增了一个音频输出处理模块,音频输出处理模块的缓存由混音模块发送的音频数据的功能可以防止音频数据在传输过程中发生抖动,提升用户的使用体验感。
20.结合第二方面,在一些实施例中,电子设备还包括音效与音量模块,usb音频硬件抽象层将第一音频数据发送至音效与音量模块;音效与音量模块用于将第一音频数据发送至音频输入处理模块。这样,音频数据以直接由usb音频硬件抽象层发送至音效与音量模块代替了由音频管理器发送至应用进行音效与音量处理,使得音频数据处理时间变短,缩短了音频数据的传输时延,同时,新增的音频输入处理模块的缓存由音效与音量模块发送的音频数据的功能也可以防止音频数据在传输过程中发生抖动,提升用户的使用体验感。
21.结合第二方面,在一些实施例中,usb音频硬件抽象层用于:
22.确定音频输入处理模块中的第一时延,以及音频输出处理模块中的第二时延,第一时延与音频输入处理模块中缓存的音频数据相关联,第二时延与所述音频输出处理模块中缓存的音频数据相关联;
23.在第一时延与所述第二时延之和大于第一阈值的情况下确定音频输入处理模块中缓存的音频数据、以及音频输出处理模块中缓存的音频数据的是否为有效的音频数据;
24.在usb音频硬件抽象层确定音频输入处理模块中缓存的音频数据中的第四音频数据为非有效的音频数据的情况下,指示所述音频输入处理模块删除第四音频数据;在usb音频硬件抽象层确定音频输出处理模块中缓存的音频数据中的第五音频数据为非有效的音频数据的情况下,指示音频输出处理模块删除第五音频数据。可以理解的是,上述两种情况可以同时发生,可以不同时发生。其中,第四音频数据可以是音频输入处理模块中缓存的音频数据中的一帧或多帧音频数据,第五音频数据可以是音频输出处理模块中缓存的音频数据中的一帧或多帧音频数据。这样,可以减少音频数据在声音采集设备到电子设备中扬声器之间传输的音频数据累积量即在音频输入处理模块和音频输出处理模块等的时延大小,从而降低声音采集设备采集的音频数据传输至电子设备的扬声器之间的时延,使得总时延低于预设阈值,并且总时延不被人耳察觉到用户能有更好的体验和听觉感受。
25.结合第二方面,在一些实施例中,usb音频硬件抽象层用于:在第一时延与第二时延之和小于第一阈值的情况下,指示音频输入处理模块将音频输入处理模块中缓存的音频数据传输至混音模块;指示音频输出处理模块将音频输出处理模块中缓存的音频数据传输至扬声器。这样不仅可以减少电子设备为判断音频数据是否为有效而产生的负担,还可以使得音频数据在传输通路上的总时延小于预设阈值,用户不能识别出用户发出声音与听见声音之间的时延,满足用户的使用需求。
26.结合第二方面,在一些实施例中,usb音频硬件抽象层用于:在usb音频硬件抽象层确定音频输入处理模块中缓存的音频数据中的第四音频数据为有效的音频数据的情况下,指示音频输入处理模块将第四音频数据传输至所述混音模块;在usb音频硬件抽象层确定音频输出处理模块中缓存的音频数据中的第五音频数据为有效的音频数据的情况下指示音频输出处理模块将第五音频数据传输至扬声器。可以理解的是,上述两种情况可以同时发生,可以不同时发生。其中,第四音频数据可以是音频输入处理模块中缓存的音频数据中的一帧或多帧音频数据,第五音频数据可以是音频输出处理模块中缓存的音频数据中的一帧或多帧音频数据。这样,对音频数据进行有效性判断可以避免爆音现象的产生,提升用户的听觉体验。
27.结合第二方面,在一些实施例中,第一时延的大小等于音频输入处理模块中缓存的音频数据的播放时长;第二时延的大小等于音频输出处理模块中缓存的音频数据的播放时长。这样,可以从判断音频数据是否为有效的音频数据的角度来减少整个传输通路上的时延,以此使总时延小于预设阈值。
28.结合第二方面,在一些实施例中,有效的音频数据的采样点平均值大于或等于第二阈值;未有效的音频数据的采样点平均值小于第二阈值。例如,第二阈值可以为1。这样,可以判断出音频数据是否为有效的音频数据,然后接着判断是否要删除该音频数据,以达到减少传输通路中时延的目的。
29.第三方面,本技术实施例提供了一种电子设备,包括:存储器、一个或多个处理器;
存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行如第一方面或第一方面任意一种实施方式的方法。
30.第四方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行如第一方面或第一方面任意一种实施方式的方法。
31.可以理解地,上述第三方面提供的电子设备和第四方面提供的计算机存储介质均用于执行本技术实施例所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
32.实施本技术提供的技术方案,在音频数据在电子设备内进行传输处理时,usb音频硬件抽象层接收音频数据,并在将音频数据传输至音效与音量模块之前,可以计算音频输入处理模块中缓存的音频数据的时延和音频输出处理模块中缓存的音频数据的时延之和,还可判断上述两个模块中缓存的音频数据是否为有效音频数据。然后usb音频硬件抽象层再将音频数据传输至音频输入处理模块,在混音模块接收来自音频输入处理模块的音频数据,扬声器接收音频数据并进行播放。本技术技术方案可以减少音频数据在声音采集设备发送至电子设备的扬声器之间的传输通路之间经由的处理模块,以此来缩短音频数据的传输通路的距离,还可以减少音频数据在声音采集设备到电子设备中扬声器之间传输的音频数据累积量即在各个处理模块内的时延大小,从而降低采集的音频数据传输至电子设备100的扬声器的时延,使得总时延低于预设阈值,使得用户不易发现用户在发出声音到听到声音之间的时延,提高用户的体验感和听觉感受。
附图说明
33.图1为本技术实施例提供的一种音频数据处理系统10的示意图。
34.图2为本技术实施例提供的一种电子设备100的软件结构框图。
35.图3为本技术实施例提供的一种音频数据传输处理的方法的流程图。
36.图4为本技术实施例提供的一种音频数据传输处理的方法的流程图。
37.图5为本技术实施例提供的一种音频数据传输处理过程中时延的分布图。
38.图6为本技术实施例提供的一种音频数据传输处理的方法的流程图。
39.图7为本技术实施例提供的一种电子设备100的结构示意图。
40.图8a为本技术实施例提供的一种电子设备100的结构示意图。
41.图8b为本技术实施例提供的一种声音采集设备200的结构示意图。
具体实施方式
42.本技术以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“该”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本技术中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
43.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者
隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
44.首先,介绍本技术实施例提供的一种音频数据处理系统。
45.示例性地,图1示出了本技术实施例提供的一种音频数据处理系统10。如图1所示,音频数据处理系统10可以包括电子设备100、以及一个或多个声音采集设备200,其中:声音采集设备200可以包括声音采集设备201和声音采集设备202。其中,声音采集设备201和声音采集设备202可以由同一用户操控,也可以由不同的用户操控。例如,声音采集设备201可以由用户1操控,声音采集设备202可以由用户2操控。
46.电子设备100与声音采集设备200可以建立通信连接。具体地,电子设备100和声音采集设备200可以基于无线通信技术分别建立无线连接,也可以基于有线接入技术分别建立有线连接。例如,电子设备100可以与声音采集设备200建立2.4g无线连接,也可以通过通用串行总线(universal serial bus,usb)建立有线连接。可以理解的是,本技术实施例对电子设备100与声音采集设备200建立通信连接的方式不做限定。
47.电子设备100与声音采集设备200完成通信连接之后可以进行音频数据的传输。具体地,声音采集设备200将采集到的音频数据通过有线或无线的通信连接传输至电子设备100,电子设备100在接受到音频数据之后,对音频数据进行处理并传输至电子设备100的扬声器进行播放。
48.在一种可能的实施方式中,电子设备100可以配置有屏幕和扬声器。在一些实施例中,电子设备100可以配置有较大尺寸的屏幕。电子设备100可以为手机、平板电脑、个人数字助理(personal digital assistant,pda)、可穿戴设备、膝上型计算机(laptop)等便携式电子设备。便携式电子设备的示例性实施例包括但不限于搭载ios、android、microsoft或者其他操作系统的便携式电子设备。还应当理解的是,在本技术其他一些实施例中,电子设备100也可以不是便携式电子设备,而是具有触敏表面(例如触控面板)的智能电视机、智慧屏、台式电脑或者电子广告牌等等,对此,本技术实施例不作限定。
49.声音采集设备200指的是将声音(由物体振动产生的声波)转化为模拟信号(电信号)的硬件设备。可选的,一些声音采集设备200还可以进一步将获得的模拟信号转换为数字采样信号。其中,根据电路结构的不同,声音采集设备200可以包括麦克风、耳麦以及声音传感器等。可理解的,声音采集设备200仅仅是本技术实施例中所使用的一个词语,其代表的含义是一种声音采集设备,其执行的功能在本实施例中已经记载,其名称并不能对本实施例构成任何限制。另外,在本技术其他一些实施例中,声音采集设备200也可以被称为例如麦克风、话筒、耳麦或其他可以表示声音采集设备的名词。
50.在一些实施例中,声音采集设备200可以安装在电子设备100上,即声音采集设备200可以是电子设备100中的一个模块。例如,用户可以直接使用手机进行k歌演唱,手机上安装有麦克风。
51.现如今市面上使用的麦克风大多都是以麦克风+usb dongle的形式,也可以称为无线麦克风,其中dongle指得是插在电子设备并口或usb口上的硬件。该形式是通过2.4g私有协议传输音频数据至电子设备的,这种形式的麦克风相比起其他连接形式的麦克风,传输音频数据更加稳定。电子设备端带有usb接口即可使用无线麦克风,并且用户在使用无线麦克风时活动范围广,更加方便。
52.除此之外,麦克风还可以通过麦克风+usb线的形式来连接电子设备,通过将usb线插入电子设备的接口组成传输通路通路来进行音频数据的传送,这种形式的麦克风也可以称为有线麦克风。有线麦克风的音质在一定程度上可以优于无线麦克风。两种连接形式的麦克风除传输介质不一样,其余在电子设备100上的处理音频数据的方式一致。
53.音频数据处理系统10可以应用于用户使用声音采集设备200的场景中,该场景可以包括但不限于k歌、演讲、网络直播等等。下面以k歌场景为例对音频数据处理系统10进行详细的介绍。
54.用户进行k歌时,声音采集设备200可以响应于用户操作(例如按压、滑动操作),启动电源,开始采集音频。电子设备100接收用户操作进入录音模式,即后台k歌服务或k歌应用启动录音功能。该用户操作例如可包括:电子设备100在桌面的k歌应用图标上接收到的用户操作(例如点击操作、触摸操作、语音指令、手势指令等等)。,电子设备100进入如图1所示的k歌应用的界面,用户在该界面选择进行演唱的歌曲,演唱开始。用户可以使用声音采集设备200采集用户输入的声音信号。声音采集设备200将采集到的声音信号转换成音频数据发送给电子设备100,电子设备100将由声音采集设备200采集到的音频数据通过传输通路发送至电子设备100中的多个音频处理模块,再通过电子设备100的扬声器将该声音与伴奏的混合音频播放出来。
55.图2是本发明实施例的电子设备100的软件结构框图。
56.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
57.应用程序层可以包括一系列应用程序包。
58.如图2所示,应用程序包可以包括但不限于k歌、相机,图库,日历,通话,地图,导航,蓝牙,音乐,视频,短信息等应用程序。
59.在一些实施例中,k歌应用程序可以获取到用户所演唱歌曲的音频数据,并对该音频数据进行打分、录制,还可以将该歌曲的伴奏通过扬声器播放出来。
60.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
61.如图2所示,应用程序框架层可以包括音频管理器、窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
62.其中,音频管理器(audio flinger)作为音频策略的执行者,负责音频流设备的管理及音频流数据的处理传输,它响应的服务请求可以包括:获取硬件设备的配置信息、音量调节、静音操作、音频模式切换、音频参数设置、输入输出流设备管理和音频流管理等。
63.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
64.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
65.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
66.系统库可以包括多个功能模块。例如:usb音频硬件抽象层(usb audio hardware abstraction layer,usb audio hal)、音效+音量模块、主音频硬件抽象层(primary audio hardware abstraction layer,primary audio hal)、音频输入处理(audio input processing,aip)模块、音频输出处理(audio output processing,aop)模块、混音(fast mixer)模块等等。
67.usb音频硬件抽象层(usb audio hal)可以负责与音频硬件设备的交互,能够统一硬件的调用接口,由audio flinger直接调用。usb audio hal可以分别与usb声卡、以及audio flinger进行连接。
68.音效+音量模块可以对进入该模块的音频数据进行音量和/或音效的调节处理。其中音量可以调节音频的大小,音效作为人工制造或加强的声音,可以包括但不限于古典音乐模式、流行音乐模式、爵士乐模式、摇滚乐模式、普通模式和自动改变模式等等。用户可以根据自身要求对音频数据的音量和/或音效进行调节。
69.主音频硬件抽象层(primary audio hal)接收应用发送的音频数据,例如伴奏音频数据,并将该伴奏音频数据传输至混音模块,与人声音频数据进行混音处理。
70.混音(fast mixer)模块内包含有限数量的声音播放声道,可以将多个音轨的音频数据混合在一起即多个声音播放都混合在后台线程中,再将混合后的音频数据传输至扬声器。在一些实施例中,混音模块可以将音频输入处理模块输入的音频数据和主音频硬件抽象层输入的伴奏的音频数据进行混音处理,并将混音后的音频数据传输至扬声器。
71.音频输入处理(aip)模块和音频输出处理(aop)模块中含有缓存器,可以在音频数据的传输过程中起到缓冲处理,提高音频数据传输的连续性。在一些实施例中,音频输入处理模块可以用于传输处理由用户输入的声音信号转换得到的音频数据,音频输出处理模块可以用于传输处理由混音模块进行混音处理后输出的音频数据。
72.内核层是硬件和软件之间的层。在一些实施例中内核层包含usb声卡和扬声器。其中,声卡指的是能够把原始声音模拟信号和二进制数字信号加以转换,实现声波与数字信号相互转换的一种硬件。目前大多使用的usb声卡(usb sound card)又称外置声卡,其作用是和板载声卡的作用一样,都属于声音信号转换设备。usb声卡无需驱动,支持热插拔,且能大幅度提升音质。但是usb接口的优先级低于pci接口,所以当系统繁忙时usb接口会因为争抢不到足够的cpu时间而断续,而且由于usb共享总线的原因,当外置usb声卡与其他大数据量传输的usb设备(如usb硬盘、usb光驱等)同时使用时会出现爆音现象。扬声器将接收到的音频数据转换为声音信号,进行输出播放。
73.下面具体介绍在上述场景中对音频数据的一般处理方法。如图3所示,图3为一种电子设备100与声音采集设备200的音频数据传输处理的方法的流程图。在该方法中,声音采集设备200以麦克风为例,电子设备100以智慧屏为例。具体地,麦克风采集的声音信号在电子设备中传输处理步骤具体如下:
74.1、麦克风采集用户输入的声音信号,将该声音信号转换成音频数据,并将音频数据传输给智慧屏的usb声卡。其中,上述音频数据可以是如图3中所示的音频数据1。
75.2、智慧屏中的usb声卡将音频数据1传输至usb audio hal,usb audio hal将音频数据1传输至audio flinger,audio flinger将音频数据1传输至k歌应用。在k歌应用中可以实现对音频数据1的录音和打分功能。
76.3、智慧屏中的k歌应用将用户演唱歌曲的伴奏发送至audio flinger,其中,该伴奏音频可以是如图3中所示的音频数据2。同时,k歌应用还可以将音频数据1传输至audio flinger。audio flinger可以将音频数据1和音频数据2发送至primary audio hal。之后,primary audio hal可以将音频数据1和音频数据2发送至fast mixer模块。在fast mixer模块中可以将音频数据1和音频数据2进行混音处理,输出如图3中所示的音频数据3。fast mixer模块将音频数据3发送至扬声器进行播放处理。
77.在一些实施例中,usb audio hal接收的来自于声音采集设备的音频数据1可以被称为第一音频数据;混音模块接收的来自于k歌应用的音频数据可以被称为第二音频数据;混音模块将音频数据1和音频数据2进行混音处理生成的音频数据3可以被称为第三音频数据。
78.由于,用户向声音采集设备200输入声音信号到扬声器播放出该声音信号之间的传输通路比较长,导致扬声器播放出的声音信号时延比较大。这样,可能导致播放出用户的声音信号和与之对应播放的伴奏时间上不同步。
79.另外,在电子设备100进入录音模式之前,若电子设备100有启动其他应用程序、或者进行一些中央处理器(central processing unit,cpu)负载过高的操作(例如播放高码率视频时调节音量等操作)、或者用户持续有持续向声音采集设备200输入信号的操作,则会导致音频数据在传输通路上会出现累积现象即电子设备100未及时将声音采集设备200采集的音频数据传输到扬声器中。从而会导致声音采集设备200采集的音频数据传输到扬声器的时延增大。并且,声音采集设备200采集的音频数据传输至扬声器的时延还可能会随着电子设备100的启动时间增加而增加。这样,用户体验差。
80.在一些场景中,用户可以通过重启电子设备100或重启声音采集设备200等操作来降低声音采集设备200采集的音频数据传输到扬声器的时延。但是这样会影响电子设备100中扬声器实时播放音频,从而影响用户的使用体验。
81.为解决的上述音频数据传输处理的方法内所存在的问题,本技术实施例提供了一种音频数据传输处理的方法。在该方法中,首先电子设备100的usb声卡接收声音采集设备200发送的音频数据1。然后usb声卡将音频数据1传输至usb audio hal,usb audio hal在将音频数据1传输至audio flinger时,拷贝一份音频数据1,并将音频数据1传输至音效+音量模板。接下来音效+音量模板将音频数据1传输给aip模块,aip模块将音频数据1传输至fast mixer模块。fast mixer模块将接收到音频数据1和伴奏音频,即音频数据2进行混音处理生成的音频数据3传输至aop模块,最后aop模块可以将音频数据3传输至扬声器进行播放。
82.进一步地,在一些实施例中,本技术实施例提供的一种音频数据传输处理的方法还可以包括:在电子设备100的usb audio hal接收来自声音采集设备200的音频数据1之后,可以计算aip模块中缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2,其中n1、n2可大于或等于1。
83.在一些实施例中,aip模块中缓存的n1帧音频数据可以被称为第四音频数据,aop模块中缓存的n2帧音频数据可以被称为第五音频数据。
84.在一些实施例中,aip模块中缓存的n1帧音频数据的时延1可以被称为第一时延,aop模块中缓存的n2帧音频数据的时延2可以被称为第二时延。
85.在时延1与时延2大小之和大于预设阈值的情况下,usb audio hal进行对aip模块中缓存的n1帧音频数据和aop模块中缓存的n2帧音频数据的分别有效性判断,否则,按上述音频数据传输处理方法进行音频数据的传输。本技术实施例中对预设阈值大小不做限制,可以根据用户需求和实际情况来设置。
86.若aip模块中缓存的n1帧音频数据和aop模块中缓存的n2帧音频数据均为为有效数据,则usb audio hal可以指示aip模块和aop模块将上述音频数据传输至扬声器进行播放;若该aip模块中的音频数据md1为无效数据,则usb audio hal可以指示aip模块删除音频数据md1,若该aop模块中的音频数据md2为无效数据,则usb audio hal可以指示aop模块删除音频数据md2。然后,再按上述音频数据传输处理的方法进行音频数据的传输处理。
87.值得说明的是,aip模块中缓存的n1帧音频数据可以包括音频数据md1,音频数据md1可以是指aip模块中缓存的一帧音频数据;同理,aop模块中缓存的n2帧音频数据可以包括音频数据md2,音频数据md2可以是指aop模块中缓存的一帧音频数据。
88.通过上述方法,可以缩短声音采集设备200采集的音频数据从声音采集设备200发送至电子设备100的扬声器之间的传输通路的距离,以此来减少时延,还可以减少音频数据在声音采集设备200到电子设备100中扬声器之间传输的音频数据累积量即在各个处理模块内的时延大小,从而降低声音采集设备200采集的音频数据传输至电子设备100的扬声器的时延,使得总时延低于预设阈值,并且该时延不易被人耳察觉到,用户在使用声音采集设备200时能有更好的体验和听觉感受。此外,对累积的音频数据进行有效性的判断还可以避免扬声器产生爆音。
89.本技术的实施例提供的方法可以用于使用麦克风且对时延要求较高的场景,例如用户进行k歌的场景,下面以在进行k歌场景中实施本技术实施例提供的方法为例进行描述。
90.图4为本技术实施例提供的电子设备100与声音采集设备200的音频数据处理的方法的流程图。参考图4,图4示例性的示出了音频数据在电子设备100和声音采集设备200中的处理流程,在具体的实现中,电子设备100还可以和更多的声音采集设备进行交互,本技术实施例对此不做限制。在本实例中,以麦克风和智慧屏为例说明音频数据的传输处理方法。
91.如图4所示,该方法具体可以包括:
92.首先,智慧屏通过usb有线或者无线的方式与麦克风进行连接。此时,智慧屏的屏幕可以提示已经完成智慧屏与麦克风的通信连接,且麦克风已经启动电源。由于麦克风可以为全局麦克风,在智慧屏未启动k歌应用或录制模式的情况下,若麦克风检测并采集到声音信号,则该声音信号是可以通过智慧屏的扬声器播放出来的,但此时由扬声器播放出来的声音信号不经过智慧屏的其他美化修饰处理,仅为采集的声音。由于未经过特别的处理模块可能还会存在一些电流音和杂音。
93.接下来,智慧屏响应于用户的相关操作启动相关应用程序如k歌应用或者启动录制模式。用户针对于启动录制的操作可以是使用在同一局域网下的移动终端如智能手机,直接在移动终端上通过点击操作、触摸操作、语音指令、手势指令来开启智慧屏的k歌应用并同时登录用户的k歌应用的账号,也可以使用在同一局域网下的移动终端如手机中的智慧屏遥控器功能,来遥控操作智慧屏来开启k歌应用,再通过扫描二维码或者输入账号密码
等方式进行k歌应用的登录。可以理解的是,本技术实施例对开启智慧屏上的k歌应用的方式不作限制。
94.在智慧屏开启k歌之后,用户可以直接在移动终端上的k歌应用通过点击操作搜索歌曲,在智慧屏上通过麦克风进行演唱,也可以使用移动终端的遥控器功能从智慧屏的k歌应用中直接搜索歌曲进行演唱。
95.麦克风将采集到的声音由声音信号转换为音频数据,即如图4所示的音频数据1,通过有线或无线通信连接传输到智慧屏的usb声卡。
96.在智慧屏中,usb声卡在接收到来自于麦克风的音频数据1后,将音频数据1传输至usb audio hal。当音频数据1传输到usb audio hal时,usb audio hal会将该音频数据1拷贝一份。usb audio hal将拷贝后的音频数据1发送给音效+音量模块。智慧屏可以响应于用户针对于音频数据的音量或音效的调节操作,例如终端的遥控操作、点击智慧屏的k歌应用操作,对音频数据1进行音量或音效上的处理。然后,音效+音量模块将音频数据1传输至aip模块,aip模块在接收到音频数据1后,将音频数据1传输至fast mixer模块。
97.k歌应用可以将用户进行演唱的歌曲伴奏的音频数据即音频数据2传输至audio flinger。audio flinger在接收到音频数据2后,将音频数据2传输至primary audio hal,primary audio hal接收到音频数据2后,再将音频数据2传输至fast mixer模块。
98.在fast mixer模块中,fast mixer模块对音频数据1和音频数据2进行混音处理生成音频数据3。fast mixer模块将音频数据3传输至aop模块,aop模块将音频数据3传输至扬声器,扬声器将音频数据3转换成声音信号播放出来。
99.可选的,usb audio hal在接收到音频数据1后,可以将音频数据1传输至audio flinger。audio flinger在接收到音频数据1后,将音频数据1传输至k歌应用中。k歌应用可以根据自身应用程序逻辑结合接收到的音频数据1进行相关的判断处理,实现对音频数据1的歌曲录音和歌曲打分等功能。在本技术实施例中,对k歌应用的功能不做限定。
100.上述方法完成了声音信号在音频数据处理系统10中的转换传输处理,实现了声音信号从采集、转换、传播以及播放的功能。由于从声音采集设备200采集声音信号到电子设备100的扬声器播放声音的整个传输通路相比起图3中所示的传输通路而言,电子设备100可以将音频数据通过usb audio hal、音效+音量模块以及aip模块直接传输到混音模块,无需再通过k歌应用和audio flinger传输到混音模块,缩短了传输通路,因此从声音采集设备200采集声音信号到电子设备100的扬声器播放声音的整个传输通路上的总时延小。
101.而在该通路中,传输通路中总时延需小于预设阈值才能使得用户发出的声音与用户听到的声音同步,以达到人耳感知不到时延的效果。
102.其中,时延在音频数据传输中是一个重要的衡量指标,指的是音频数据从一个端点到另一个端点所需的时间。也就是说,测量音频数据包的发送时间点和接收时间点,两者之差就是时延。时延包括发送时延,传播时延,处理时延和排队时延,其中若发送的数据长度较大,则时延主要是由发送时延组成;若发送的数据长度较小,则时延主要是由传播时延组成。在一些实施例中,在用户发出声音到用户听见声音之间的时延需要小于50ms,以解决人耳识别到时差的问题。
103.音频数据的在传输通路中的总时延可以是指从声音采集设备采集到该音频数据至扬声器播放该音频数据之间的时间差。
104.由于音频数据在整个传输通路中的传输时延可以出现在每一段传输过程中。下面具体介绍声音信号转换后的音频数据在整个通路中传输时的时延的分布情况。
105.参考图5,图5示例性示出了一种音频数据的传输时延在整个通路中的分布情况的示意图。在图5所示的示例中,声音采集设备200以麦克风为例,电子设备100以智慧屏为例,音频数据传输的通路具体可以包括音频数据1从麦克风通过2.4g无线形式或有线形式传输至usb声卡的通路如图5中通路
①
所示、音频数据1从usb声卡传输至usb audio hal的通路如图5中的通路
②
所示、音频数据1从usb audio hal经过音效+音量模块到达aip模块的通路如图5中通路
③
所示、音频数据1或音频数据3从aip模块经过fast mixer模块到达aop模块的通路、音频数据3从aop模块传输至智慧屏的扬声器的通路如图5中通路
⑥
所示,其中传输通路中的aip模块中存在一个缓冲寄存器(buffer),即aip buffer,如图5中
④
所示,aop模块中也存在一个buffer,即aop buffer,如图5中
⑤
所示。可以理解的是,aip模块中缓存的n1帧音频数据可以指的是缓存在aip buffer中的n1帧音频数据;aop模块中缓存的n2帧音频数据可以指的是缓存在aop buffer中的n2帧音频数据;
106.在计算机领域中,buffer在一般指的是缓冲寄存器,可以分为输入缓冲寄存器和输出缓冲寄存器。前者可以用于将传输进来的数据暂时存放起来,以便接下来处理器将该数据取走,后者可以用于暂时存放处理器传输出去的数据。buffer可以使得高速工作的中央处理器(central processing unit,cpu)和慢速工作的外设协调缓冲作用,实现数据传送的同步功能。在本技术实施例中,aip模块中的aip buffer作为输入缓冲寄存器,可以缓存少量由音效+音量模块传输出来的音频数据,aop模块中的aop buffer作为输出缓冲寄存器,可以缓存少量由混音模块传输出来的音频数据。在一些实施例中,音频数据的传输通路中设置buffer能够防止音频数据在传输过程中的抖动。
107.可以理解的是,音频数据在某一模块中传输所用的时间即在该模块中的时延大小可以是指该音频数据的播放时长,其中,对时延单位不做限制,例如单位可以用毫秒(ms)表示。aip中的时延是指aip中缓存的n1帧音频数据的播放时长,aop中的时延是指aop中缓存的n2帧音频数据的播放时长。例如,若aip模块中缓存的n1帧音频数据在扬声器进行播放的时长大小为15ms,即aip模块中缓存的n1帧音频数据的时延大小为15ms。
108.在音频数据处理系统10中,在声音采集设备200对声音信号进行采集和电子设备100对音频数据进行前处理、编码、打包、缓存、解码、后处理、播放等多个处理环节都会产生不同的时延。其中,采集和播放时延与硬件和操作系统有关;不同的编码器可以产生不同的时延,这与编码器处理的数据长度有关;在缓存寄存器(buffer)中由于数据包或帧等待处理会产生队列时延;传输协议也会影响时延的产生,一般对时延要求较高的音频数据处理系统会选择用户数据报协议(user datagram protocol,udp)。
109.下面结合图5详细介绍本技术实施例中音频数据传输通路上的传输时延的具体大小与分布。
110.其中,声音采集设备200以麦克风为例,电子设备100以智慧屏为例。
111.1)在通路
①
中,音频数据1是通过usb有线形式或2.4g无线形式进行传输的,由于麦克风可以在开启麦克风之后立即进行声音信号的采集,能够做到即收即传,所以音频数据1在通路
①
中传输的时延几乎为0,可以忽略不计。
112.2)在通路
②
、
③
中没有缓冲寄存器(buffer),仅仅对音频数据1根据用户的需求进
行了相关音效和音量的处理,一般情况下,音频数据1在通路
②
以及通路
③
中的传输的时延也可以忽略不计。
113.3)在音频数据1和从k歌应用传输至fast mixer模块的音频数据2进行混音处理前存在一个aip buffer
④
,aip buffer会缓存少量的音频数据。fast mixer模块对音频数据1与音频数据2进行混音生成音频数据3后,在将音频数据3传输给智慧屏的扬声器之前存在一个aop buffer
⑤
,aop buffer也会缓存少量的音频数据。因此,在aip模块和aop模块中也存在有传输时延。
114.此外通路
⑥
是aop模块将音频数据3向扬声器进行传输的通路,一般情况下,其传输时延可以忽略不计。
115.由上述整个传输通路中时延分布情况可知,整个通路上总时延的大小主要是由aip模块中缓存的n1帧音频数据的时延1+aop模块中缓存的n2帧音频数据的时延2+一帧音频数据的发送时延+通路
①
、通路
②
、通路
③
和通路
⑥
的合计时延所构成的。其中aip模块中缓存的n1帧音频数据的时延1大小可以是指n1帧音频数据在aip模块中传输所用的时间大小,同理,aop模块中缓存的n2帧音频数据的时延2大小可以是指n2帧音频数据在aop模块中传输所用的时间大小。
116.其中一帧音频数据的发送时延和通路
①
、通路
②
、通路
③
和通路
⑥
的合计时延在传输通路中是固定存在的,一般不能改变其时延大小,因此为了使得整个传输通路上的总时延小于预设阈值,使用户在k歌时不会感知到用户发出声音与听到声音之间的时延,电子设备100需要将aip模块和aop模块中缓存的音频数据的时延总量控制在预设阈值之内。
117.例如,一帧音频数据的发送时延在整个传输通路上的传输时延可以控制在5ms左右,通路
①
、通路
②
、通路
③
和通路
⑥
的合计时延可以控制在5ms左右。若整个传输通路上的总时延的预设阈值为50ms,则在aip模块和aop模块中缓存的音频数据的时延总量应该小于40ms。
118.在一些实施例中,可能会出现audio flinger调度不及时的特殊现象,这样会导致在usb声卡buffer中出现音频数据1的累积,其中该音频数据1在usb声卡buffer中的时延大小一般为毫秒级。当系统运行稳定之后即cpu有运行空间处理数据后,audio flinger会迅速的将usb声卡buffer中的音频数据1搬运出来并向后进行传输。但是由于音频数据3从智慧屏的扬声器输出播放的速率是稳定的,这样就会造成n1帧音频数据累积在aip模块或者n2帧音频数据累积在aop模块中,导致整个通路上总时延增大。并且aip模块中缓存的n1帧音频数据的时延1和/或aop模块中缓存的n2帧音频数据的时延2还可能随着多次audio flinger调度不及时进行叠加累积。
119.在一些场景中,当音频数据在aip模块和/或aop模块中累积到一定程度时,即aip模块中缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2大小之和远大于预设阈值(例如50ms),用户可以通过重启电子设备100或重启声音采集设备200的方式来清除传输通路中各个buffer中的数据,从而减少音频数据在整个传输通路上的时延。但是对于用户而言,重启设备会对用户的体验感造成一定影响,因此在整个传输通路中的时延大小不能超过预设阈值且固定时延基本无法缩短的情况下,需要对aip模块和aop模块中的缓存的音频数据的时延总量进行判断处理,使得整个通路上的总时延不超过预设阈值。
120.结合图4,本技术实施例提供一种音频数据的传输处理的方法。
121.图6示例性地示出了本技术实施例提供的一种音频数据的传输处理方法。如图6所示,本技术实施例提供的音频数据的传输处理的方法可以包括如下步骤:
122.s601、声音采集设备200采集声音信号。
123.在一些实施例中,声音采集设备200(例如麦克风)启动后,电子设备100(例如智慧屏)可以接收到用户操作,并响应于该用户操作运行k歌应用。该用户操作例如可包括:电子设备100在桌面的k歌应用图标上接收到的用户操作(例如点击操作、触摸操作等等)、语音指令、手势指令。用户可以进行歌曲演唱,声音采集设备200可以采集到用户输入的声音信号,然后将声音信号转换成音频数据发送给电子设备100。
124.可以理解的是,在声音采集设备200采集声音信号时或者采集声音信号之前,声音采集设备200已经与电子设备100建立了通信连接。关于声音采集设备200如何与电子设备100建立通信连接可以参考图1中的描述,此处不再赘述。
125.可选地,在一种可能的实现方式中,声音采集设备200可以是电子设备100中的一个模块。
126.s602、电子设备100中usb音频硬件抽象层接收音频数据1。
127.在麦克风将声音信号转换成音频数据发送给电子设备100的usb声卡之后,该音频数据可以通过usb声卡传输至usb audio hal。usb audio hal可以获取到用户输入声音信号转换的音频数据。
128.s603、usb音频硬件抽象层获取音频输入处理模块中缓存的n1帧音频数据的时延1,以及音频输出处理模块中缓存的n2帧音频数据的时延2,n1、n2大于或等于1。
129.在usb audio hal将接收到的音频数据传输至音效+音量模块之前,usb audio hal会获取当前aip模块中缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2。即在每一帧音频数据在usb audio hal中进行传输时,usb audio hal都会获取aip模块缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2。
130.值得说明的是,aip模块中的音频数据可以缓存在aip buffer中,aop模块中的音频数据可以缓存在aop buffer中。
131.s604、usb音频硬件抽象层判断时延1与时延2大小之和是否大于预设阈值。
132.在usb audio hal获取到aip模块中缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2的大小之后,判断时延1和时延2大小之和是否超过预设阈值。本实施例中对预设阈值的大小不做限定。例如,一帧音频数据的发送时延可以为5ms,通路
①
、通路
②
、通路
③
和通路
⑥
上的合计时延可以为5ms,电子设备100可以设置时延1和时延2大小之和的预设阈值为35ms。
133.若aip模块中缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2大小之和的大于预设阈值(例如35ms),则可以执行s605;若aip模块中缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2大小之和的小于预设阈值(例如35ms),则可以执行s606b。
134.在一些实施例中,电子设备100所判断时延1和时延2大小之和是否超过的预设阈值可以被称为第一阈值。
135.s605、usb音频硬件抽象层分别判断音频输入处理模块中缓存的n1帧音频数据和音频输出处理模块中缓存的n2帧音频数据是否有效。
136.在一些实施例中,由于用户在进行活动(例如k歌)中使用的麦克风灵敏度较低,不会采集到未对准麦克风说话的人的声音和周围的环境杂音,因此电子设备100可以通过运算相关算法来分别判断aip模块中缓存的n1帧音频数据和aop模块中缓存的n2帧音频数据的是否为有效的音频数据。
137.在一些实施例中,usb audio hal可以通过发送指令或调用函数等方式,分别进行对aip模块中缓存的n1帧音频数据和aop模块中缓存的n2帧音频数据是否为有效的音频数据进行判断,在此的判定方式不做限定。
138.例如,电子设备100可以通过计算aip模块中或aop模块中缓存的某一帧音频数据的所有采样点的平均值来判断其有效性,若平均值小于1则可以判定该帧音频数据为无效的音频数据,否则可以判定该帧音频数据为有效的音频数据。
139.在一些实施例中,aip模块中或aop模块中缓存的某一帧音频数据的所有采样点的平均值存在能判断有效的阈值,该阈值可以被称为第二阈值。
140.也就是说,音频数据有效指的是该帧音频数据包含了麦克风采集到的用户演唱时输入的声音信号;音频数据无效指的是该帧音频数据未包含麦克风采集到用户演唱时输入的声音信号,即该帧音频数据没有携带人声信息。
141.具体地,若aip模块中缓存的n1帧音频数据和/或aop模块中缓存的n2帧音频数据被判定为无效数据,则执行s606a;若aip模块中缓存的n1帧音频数据和aop模块中缓存的n2帧音频数据都被判定为有效数据,则执行s606b。
142.s606a、usb音频硬件抽象层指示音频输入处理模块删除n1帧音频数据内无效的音频数据和/或音频输出处理模块删除n2帧音频数据内无效的音频数据。
143.在一些实施例中,aip模块中缓存的n1帧音频数据和/或aop模块中缓存的n2帧音频数据被判定为无效数据时,usb audio hal指示aip模块删除aip模块中缓存的n1帧音频数据中无效的音频数据和/或aop模块删除aop模块中缓存的n2帧音频数据中无效的音频数据。
144.例如,aip模块中缓存的n1帧音频数据包括音频数据md1,音频数据md1可以是aip模块中缓存的一帧音频数据;同理,aop模块中缓存的n2帧音频数据包括音频数据md2,音频数据md2可以是aop模块中缓存的一帧音频数据。若aip模块中缓存的音频数据md1为无效数据,则usb audio hal可以指示aip模块删除音频数据md1;若aop模块中缓存的音频数据md2为无效数据,则usb音频硬件抽象层可以指示aop模块删除音频数据md2。在一种可能的实现方式中,aip模块中缓存的音频数据md1和aop模块中缓存的音频数据md2可以都为无效数据。
145.值得说明的是,在一些实施例中,执行s606a的前提条件是aip模块中缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2大小之和大于预设阈值(例如35ms)。一般情况下,一帧音频数据的时延可以为5ms,那么aip模块和aop模块中缓存的音频数据之和至少可以为7帧,即n1与n2的大小之和需要大于或等于7帧。
146.例如,aip模块中缓存的音频数据可以为3帧,即n1大小为3;aop模块中缓存的音频数据可以为4帧,即n2大小为4,对n1和n2的具体大小不作限定,满足n1与n2大小之和大于或等于7帧的条件即可。
147.在依据上文的判断依据对aip模块中缓存的n1音频数据内无效的音频数据以及
aop模块中缓存的n2音频数据内无效的音频数据分别进行删除处理之后,usb音频硬件抽象层再向音效+音量模块传输音频数据的。这样就可以减少无效音频数据的传输时间,缩短整个通路的时延。
148.s606b、usb音频硬件抽象层指示音频输入处理模块传输音频输入处理模块中缓存的n1帧音频数据和/或音频输出处理模块传输音频输出处理模块中缓存的n2帧音频数据。
149.在一些实施例中,当aip模块中缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2大小之和小于预设阈值(如35ms)时,可以判断整个通路中的时延足够小(小于50ms),则usb音频硬件抽象层可以指示aip模块向混音模块传输音频输入处理模块中缓存的n1帧音频数据,指示aop模块向扬声器传输音频输出处理模块中缓存的n2帧音频数据,在这种情况下,用户不会识别出来用户发出声音与用户听到声音之间的时延。
150.可以理解的是,一般情况下,一帧音频数据的时延为5ms,为满足上文aip模块中缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2大小之之和小于预设阈值(如35ms),aip模块和aop模块中缓存的音频数据之和最多可以为6帧,即n1与n2大小之和需要小于7帧。
151.例如,aip模块中缓存的音频数据可以为3帧,即n1大小为3;ao模块中缓存的音频数据可以为3帧,即n2大小为3,对n1与n2的具体大小不作限定,满足n1与n2大小之和小于7帧的条件即可。
152.在一些实施例中,即使aip模块中缓存的n1帧音频数据的时延1和aop模块中缓存的n2帧音频数据的时延2大小之和大于预设阈值(如35ms),但是由于aip模块中缓存的n1帧音频数据和aop模块中缓存的n2帧音频数据都是有效数据,usb音频硬件抽象层也会指示aip模块向混音模块传输aip模块中缓存的n1帧音频数据,指示aop模块向扬声器传输aop模块中缓存的n2帧音频数据,这样可能避免扬声器出现爆音现象。
153.s607、usb音频硬件抽象层将接收到的音频数据1传输至音效+音量模块。
154.在一些实施例中,在对aip模块中缓存的n1帧音频数据和aop模块中缓存的n2帧音频数据分别进行删除或直接传输处理之后,usb音频硬件抽象层可以将从usb声卡接收到的音频数据1传输至音效+音量模块,音效+音量模块将音频数据1传输至aip模块。音频数据1传输至aip模块后被也会执行上述s604、s605、s606a和s606b。
155.例如,若aip模块中音频数据1的时延3和aop模块中缓存的n2帧音频数据的时延2大小之和小于预设阈值,aip模块向混音模块传输音频数据1;
156.若aip模块中音频数据1的时延3和aop模块中缓存的n2帧音频数据的时延2大小之和大于预设阈值,则判断音频数据1的有效性。若音频数据1为有效数据,aip模块向混音模块传输音频数据1;若音频数据1为无效数据,aip模块删除音频数据1。
157.在一些实施例中,aip模块将音频数据1传输至混音模块后,混音模块接收到音频数据1和audioflinger发送来的伴奏,即音频数据2。混音模块将音频数据1和音频数据2进行混音处理后得到的音频数据3发送给aop模块。音频数据3传输至aop buffer后被也会执行上述s604、s605、s606a和s606b。
158.例如,若aip模块中缓存的n2帧音频数据的时延1和aop模块中音频数据3的时延4大小之和小于预设阈值,aop模块向扬声器传输音频数据3;
159.若aip模块中缓存的n2帧音频数据的时延1和aop模块中音频数据3的时延4大小之
和大于预设阈值,则判断音频数据3的有效性。若音频数据3为有效数据,aop模块向扬声器传输音频数据3;若音频数据3为无效数据,aop模块删除音频数据3。可以理解的是,usb音频硬件抽象层在执行上文中判断时延大小和判断音频数据有效性的相关步骤时所用的执行时间较短,且每一帧音频数据在由usb音频硬件抽象层传输至音效+音量模块之前都会执行上述s604、s605、s606a和s606b。
160.实施上述控制音频数据在整个通路中传输时的时延大小方法,可以解决因cpu资源瞬间不足、负载升高或者麦克风长时间采集声音信号而导致整个通路中的音频数据累积,音频数据累积到一定程度后在传输通路中产生的时延高于预设阈值的问题,使得用户在使用麦克风进行例如k歌等活动时体验感更好。
161.进一步的,判断音频数据的有效性可以防止在舍弃有效音频数据或者在舍弃音频数据时产生爆音现象。在一些实施例中,若因时延大小超过预设阈值需要舍弃的缓存音频数据是有效数据,则当该音频数据的前一帧音频数据和后一帧音频数据都为有效数据的情况下,在舍弃该音频数据之后,两帧有效音频数据不能完成平滑过渡,这样当电子设备100的输出该两帧有效数据时可能导致扬声器出现爆音现象,影响用户听觉效果。
162.下面对电子设备100和声音采集设备200进行详细的介绍
163.参考图7,图7示例性示出了本技术实施例提供的电子设备100的结构示意图
164.本技术实施例对该电子设备的具体类型不作特殊限制。例如,该电子设备可包括手机,还可以包括平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、智慧屏、可穿戴式设备、增强现实(augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、人工智能(artificial intelligence,ai)设备、车机、智能耳机,游戏机,还可以包括物联网(internet of things,iot)设备或智能家居设备如智能热水器、智能灯具、智能空调、摄像头等等。不限于此,电子设备还可以包括具有触敏表面或触控面板的膝上型计算机(laptop)、具有触敏表面或触控面板的台式计算机等非便携式终端设备等等。
165.如图7所示,电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
166.可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
167.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器
(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
168.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
169.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
170.i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
171.pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
172.uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
173.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备100的显示功能。
174.gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
175.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
183.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
184.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的正整数。
185.视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
186.npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
187.内部存储器121可以包括一个或多个随机存取存储器(random access memory,ram)和一个或多个非易失性存储器(non-volatile memory,nvm)。
188.随机存取存储器可以包括静态随机存储器(static random-access memory,sram)、动态随机存储器(dynamic random access memory,dram)、同步动态随机存储器(synchronous dynamic random access memory,sdram)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,ddr sdram,例如第五代ddr sdram一般称为ddr5 sdram)等;非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
189.快闪存储器按照运作原理划分可以包括nor flash、nand flash、3d nand flash等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,slc)、多阶存储单元(multi-level cell,mlc)、三阶储存单元(triple-level cell,tlc)、四阶储存单元(quad-level cell,qlc)等,按照存储规范划分可以包括通用闪存存储(英文:universal flash storage,ufs)、嵌入式多媒体存储卡(embedded multi media card,emmc)等。
190.随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
191.非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
192.外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备100的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据
存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
193.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
194.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
195.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
196.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置至少一个麦克风170c。在另一些实施例中,电子设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
197.耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
198.触摸传感器180k,也称“触控器件”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
199.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
200.在本技术实施例中,电子设备100的处理器110用于将声音采集设备采集到的声音信号在多个音频数据处理模块中进行传输处理,如对模拟声音信号进行编码处理、音频数据的音量调节等等,还可以将其他声音传输至音频数据处理模块与采集到的声音进行效果处理例如混音处理。处理器110对音频数据的传输处理的方法可参考后续方法实施例的详细描述。
201.在一些实施例中,usb接口130可以用于电子设备100与声音采集设备之间的音频数据的传输其中包括usb2.4g无线和usb有线的方式。
202.显示屏194可以用于显示电子设备100上的相关应用程序的界面,还可以用于显示声音采集设备200与电子设备100的连接情况。显示屏194可以接收用户操作,并响应于该操作运行应用程序、对歌曲进行搜索选择,触摸传感器180k可以用于检测用户的触摸操作例如单击、双击等操作。
203.无线通信模块160可以用于处理器110通过无线接收来自声音采集设备采集的音
频数据,移动通信模块150可以用于处理器110通过有线接收来自声音采集设备采集的音频数据传输音频数据。
204.电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的android系统为例,示例性说明电子设备100的软件结构。
205.图8a是本发明实施例中电子设备100的结构示意图。
206.下面以电子设备100为例对实施例进行具体说明。应该理解的是,图8a所示电子设备100仅是一个范例,并且电子设备100可以具有比图8a中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
207.如图8a所示,电子设备100可以包括处理器110,内部存储器121,usb接口130、充电管理模块140、电源管理模块141、电池142、移动通信模块150、无线通信模块160、音频模块170和扬声器170a。其中:
208.处理器110可用于读取和执行计算机可读指令。具体实现中,处理器110可主要包括控制器、运算器和寄存器。其中,控制器主要负责指令译码,并为指令对应的操作发出控制信号。运算器主要负责保存指令执行过程中临时存放的寄存器操作数和中间操作结果等。具体实现中,处理器110的硬件架构可以是专用集成电路(asic)架构、mips架构、arm架构或者np架构等等。
209.在一些实施例中,处理器可以用于处理由移动通信模块150通过usb接口接收到的音频数据,或用于处理由无线通信模块160通过usb接口接收到的音频数据。处理器110可以用于计算进行音频数据在整个通路中传输的时延大小,还可以用于判断音频数据的有效性。
210.内部存储器121与处理器110耦合,用于存储各种软件程序和/或多组指令。具体实现中,内部存储器121可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。内部存储器121可以存储操作系统,例如ucos,vxworks、rtlinux等嵌入式操作系统。内部存储器121还可以存储通信程序,该通信程序可用于与电子设备100,一个或多个服务器,或其他设备进行通信。
211.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。在一些实施例中,可以用于以无线或有线的方式连接其他电子设备,例如声音采集设备(麦克风)。
212.可选的,电子设备100可以包括充电管理模块140、电源管理模块141和电池142。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
213.音频模块170可以用于实现数字音频信息与模拟音频信号之间的转换,具体功能
可以包括音量调节、音效添加、混音,播放等,其中扬声器170a可以用于将音频信号转换为声音信号,使用户能够听到经过处理的人声。
214.图8b是本发明实施例的声音采集设备200的结构示意图。
215.下面以声音采集设备200为例对实施例进行具体说明。应该理解的是,图8b所示声音采集设备200仅是一个范例,并且声音采集设备200可以具有比图8b中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
216.如图8b所示,声音采集设备200可以包括处理器210,存储器202,电源模块205,输入/输出接口206以及拾音器207。
217.处理器210可用于读取和执行计算机可读指令。在具体实现中,处理器210可主要包括控制器、运算器和寄存器。其中,控制器主要负责指令译码,并为指令对应的操作发出控制信号。运算器主要负责保存指令执行过程中临时存放的寄存器操作数和中间操作结果等。具体实现中,处理器210的硬件架构可以是专用集成电路(asic)架构、mips架构、arm架构或者np架构等等。
218.在一些实施例中,处理器210可以用于处理拾音器207接收的模拟音频信号,并通过输入/输出接口206,将处理后音频数据发送给其他电子设备如电子设备100。
219.存储器202与处理器210耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储器202可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器202可以存储操作系统,例如ucos,vxworks、rtlinux等嵌入式操作系统。存储器202还可以存储通信程序,该通信程序可用于与声音采集设备200,一个或多个服务器,或其他设备进行通信。
220.电源模块205,可以用于提供声音采集设备200的系统电源,为声音采集设备200各个模块供电;支持声音采集设备200接收充电输入等。电源模块205可以包括电源管理单元(power management unit,pmu)和电池。其中,电源管理单元可以接收外部的充电输入;将充电电路输入的电信号提供给电池充电,还可以将电池提供的电信号提供给拾音器207等其他模块,以防止电池过充、过放、短路或过流等。在一些实施例中,电源管理单元还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。另外,在一些实施例中,电源模块205还可以用于给声音采集设备200充电。
221.多个输入/输出接口206,可以用于提供电子设备100与声音采集设备200之间进行充电或通信连接。在一些实施例中,该输入/输出接口可以为usb接口。在另一些实施例中,输入/输出接口206可以为麦克风电连接器,电子设备100与声音采集设备200建立有线连接,声音采集设备200可以通过麦克风电连接器与电子设备100中的电连接,从而为声音采集设备200中的电池充电。在一些实施例中,在连接电建立后,电子设备100还可以与声音采集设备200进行数据通信,例如可以发送配对指令,开机指令、关机指令等信息。
222.拾音器207又称监听头,可以用来采集现场环境声再传送到后端设备,拾音器207由咪头和音频放大电路构成。拾音器207一般分为数字拾音器和模拟拾音器,数字拾音器可以通过数字信号处理系统将模拟的音频信号转换成数字信号并进行相应的数字信号处理。模拟拾音器可以通过模拟电路放大咪头采集到的声音。在一些实施例中,拾音器207可以接
收声音震动,感知用户发出的声音,并接收该声音信号。
223.上述实施例中所用,根据上下文,术语“当
…
时”可以被解释为意思是“如果
…”
或“在
…
后”或“响应于确定
…”
或“响应于检测到
…”
。类似地,根据上下文,短语“在确定
…
时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定
…”
或“响应于确定
…”
或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
224.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘)等。
225.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。
技术特征:
1.一种音频数据传输处理的方法,所述方法应用于电子设备,其特征在于,所述方法包括:所述电子设备中的通用串行总线usb音频硬件抽象层接收到声音采集设备发送的第一音频数据;所述电子设备中的所述usb音频硬件抽象层将所述第一音频数据发送所述电子设备中的音频输入处理模块;所述音频输入处理模块用于缓存所述usb音频硬件抽象层发送的一帧或多帧音频数据;所述电子设备中的混音模块将所述音频输入处理模块输入至所述混音模块的所述第一音频数据,与所述电子设备中的第一应用输入至所述混音模块的第二音频数据混合成第三音频数据;所述电子设备中的所述混音模块将所述第三音频数据传输至扬声器进行播放。2.根据权利要求1所述的方法,其特征在于,所述电子设备中的混音模块将所述第三音频数据传输至扬声器进行播放,具体包括:所述电子设备中的所述混音模块将所述第三音频数据传输至所述电子设备中的音频输出处理模块,所述音频输出处理模块用于缓存由所述混音模块输出的音频数据;所述电子设备中的所述音频输出处理模块将所述第三音频数据传输至所述扬声器进行播放。3.根据权利要求1所述的方法,其特征在于,所述电子设备中的所述usb音频硬件抽象层将所述第一音频数据发送所述音频输入处理模块,具体包括:所述电子设备中的所述usb音频硬件抽象层将所述第一音频数据发送至所述电子设备中的音效与音量模块;所述音效与音量模块将所述第一音频数据发送至所述音频输入处理模块。4.根据权利要求3所述的方法,其特征在于,所述电子设备中的所述usb音频硬件抽象层将所述第一音频数据发送至所述音效与音量模块之前,所述方法包括:所述电子设备中的所述usb音频硬件抽象层确定所述音频输入处理模块中的第一时延,以及所述音频输出处理模块中的第二时延,所述第一时延与所述音频输入处理模块中缓存的音频数据相关联,所述第二时延与所述音频输出处理模块中缓存的音频数据相关联;在所述第一时延与所述第二时延之和大于第一阈值的情况下,所述电子设备中的所述usb音频硬件抽象层确定所述音频输入处理模块中缓存的音频数据、以及所述音频输出处理模块中缓存的音频数据的是否为有效的音频数据;在所述usb音频硬件抽象层确定所述音频输入处理模块中缓存的音频数据中的第四音频数据为非有效的音频数据的情况下,所述电子设备中的所述usb音频硬件抽象层指示所述音频输入处理模块删除所述第四音频数据,和/或在所述usb音频硬件抽象层确定所述音频输出处理模块中缓存的音频数据中的第五音频数据为非有效的音频数据的情况下,所述电子设备中的所述usb音频硬件抽象层指示所述音频输出处理模块删除所述第五音频数据。5.根据权利要求4所述的方法,其特征在于,所述电子设备中的所述usb音频硬件抽象层确定所述音频输入处理模块中的所述第一时延,以及所述音频输出处理模块中的所述第
二时延,所述方法还包括;在所述第一时延与所述第二时延之和小于第一阈值的情况下,所述电子设备中的所述usb音频硬件抽象层指示所述音频输入处理模块将所述音频输入处理模块中缓存的音频数据传输至所述混音模块;所述电子设备中的所述usb音频硬件抽象层指示所述音频输出处理模块将所述音频输出处理模块中缓存的音频数据传输至所述扬声器。6.根据权利要求4所述的方法,其特征在于,在所述第一时延与所述第二时延之和大于所述第一阈值的情况下,所述电子设备中的所述usb音频硬件抽象层确定所述音频输入处理模块中缓存的音频数据、以及所述音频输出处理模块中缓存的音频数据的是否为有效的音频数据,所述方法还包括:在所述usb音频硬件抽象层确定所述音频输入处理模块中缓存的音频数据中的所述第四音频数据为有效的音频数据的情况下,所述电子设备中的所述usb音频硬件抽象层指示所述音频输入处理模块将所述第四音频数据传输至所述混音模块,和/或在所述usb音频硬件抽象层确定所述音频输出处理模块中缓存的音频数据中的所述第五音频数据为有效的音频数据的情况下,所述电子设备中的所述usb音频硬件抽象层指示所述音频输出处理模块将所述第五音频数据传输至所述扬声器。7.根据权利要求4所述的方法,其特征在于,所述第一时延与所述音频输入处理模块中缓存的音频数据相关联,所述第二时延与所述音频输出处理模块中缓存的音频数据相关联,具体包括:所述第一时延的大小等于所述音频输入处理模块中缓存的音频数据的播放时长;所述第二时延的大小等于所述音频输出处理模块中缓存的音频数据的播放时长。8.根据权利要求4所述的方法,其特征在于,所述有效的音频数据以及所述未有效音频数据具体包括:所述有效的音频数据的采样点平均值大于或等于第二阈值;所述未有效的音频数据的采样点平均值小于第二阈值。9.一种电子设备,其特征在于,所述电子设备包括通用串行总线usb音频硬件抽象层、音频输入处理模块、混音模块、扬声器,其中:所述通用串行总线usb音频硬件抽象层用于接收到声音采集设备发送的第一音频数据;所述usb音频硬件抽象层用于将所述第一音频数据发送音频输入处理模块;所述音频输入处理模块用于缓存所述usb音频硬件抽象层输入的一帧或多帧音频数据;混音模块用于将所述音频输入处理模块输入至所述混音模块的所述第一音频数据,与所述电子设备中的第一应用输入至所述混音模块的第二音频数据进行混合成第三音频数据;所述扬声器用于接收所述混音模块发送的所述第三音频数据,并播放所述第三音频数据。10.根据权利要求9所述的电子设备,其特征在于,所述电子设备还包括所述音频输出处理模块,所述混音模块具体用于将所述第三音频数据传输至所述音频输出处理模块,所述音频输出处理模块用于缓存所述混音模块输出的所述第三音频数据;
所述音频输出处理模块用于将所述第三音频数据传输至所述扬声器进行播放。11.根据权利要求9所述的电子设备,其特征在于,所述电子设备还包括所述音效与音量模块,所述usb音频硬件抽象层具体用于将所述第一音频数据发送至所述电子设备中的音效与音量模块;所述音效与音量模块用于将所述第一音频数据发送至所述音频输入处理模块。12.根据权利要求11所述的电子设备,其特征在于,所述usb音频硬件抽象层用于:确定所述音频输入处理模块中的第一时延,以及所述音频输出处理模块中的第二时延,所述第一时延与所述音频输入处理模块中缓存的音频数据相关联,所述第二时延与所述音频输出处理模块中缓存的音频数据相关联;在所述第一时延与所述第二时延之和大于第一阈值的情况下,确定所述音频输入处理模块中缓存的音频数据、以及所述音频输出处理模块中缓存的音频数据的是否为有效的音频数据;在所述usb音频硬件抽象层确定所述音频输入处理模块中缓存的音频数据中的第四音频数据为非有效的音频数据的情况下,指示所述音频输入处理模块删除所述第四音频数据,和/或在所述usb音频硬件抽象层确定所述音频输出处理模块中缓存的音频数据中的第五音频数据为非有效的音频数据的情况下,所述usb音频硬件抽象层用于指示所述音频输出处理模块删除所述第五音频数据。13.根据权利要求12所述的电子设备,其特征在于,所述usb音频硬件抽象层用于:在所述第一时延与所述第二时延之和小于第一阈值的情况下,指示所述音频输入处理模块将所述音频输入处理模块中缓存的音频数据传输至所述混音模块;指示所述音频输出处理模块将所述音频输出处理模块中缓存的音频数据传输至所述扬声器。14.根据权利要求12所述的电子设备,其特征在于,所述usb音频硬件抽象层用于:在所述usb音频硬件抽象层确定所述音频输入处理模块中缓存的音频数据中的所述第四音频数据为有效的音频数据的情况下,指示所述音频输入处理模块将所述第四音频数据传输至所述混音模块,和/或在所述usb音频硬件抽象层确定所述音频输出处理模块中缓存的音频数据中的所述第五音频数据为有效的音频数据的情况下,所述usb音频硬件抽象层用于指示所述音频输出处理模块将所述第五音频数据传输至所述扬声器。15.根据权利要求12所述的电子设备,其特征在于,所述第一时延的大小等于所述音频输入处理模块中缓存的音频数据的播放时长;所述第二时延的大小等于所述音频输出处理模块中缓存的音频数据的播放时长。16.根据权利要求12所述的电子设备,其特征在于,所述有效的音频数据的采样点平均值大于或等于第二阈值;所述未有效的音频数据的采样点平均值小于第二阈值。17.一种电子设备,其特征在于,所述电子设备包括存储器、一个或多个处理器,所述存储器用于存储计算机程序,所述处理器用于调用计算机程序,使得所述电子设备执行如权利要求1至8任一项所述的方法。18.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至8中任一项所述的方法。
技术总结
本申请提供了一种音频数据的传输处理的方法及电子设备,该方法包括:当音频数据在电子设备内进行传输处理时,USB音频硬件抽象层将音频数据传输至音频输入处理模块,混音模块接收来自音频输入处理模块的音频数据,扬声器接收音频数据并进行播放。本申请技术方案满足音频数据在传输过程中的时延小于预定阈值的目的,使得用户不易发现用户在发出声音到听到声音之间的时延,提高用户的体验感。提高用户的体验感。提高用户的体验感。
技术研发人员:郑东华
受保护的技术使用者:华为技术有限公司
技术研发日:2022.03.14
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:新型试剂盒的制作方法 下一篇:雨水径流处理方法及装置与流程