一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

音频播放方法、装置、电子设备及存储介质与流程

2021-10-24 07:46:00 来源:中国专利 TAG:音频 播放 电子设备 装置 公开


1.本公开涉及音频播放技术领域,尤其涉及一种音频播放方法、装置、电子设备及存储介质。


背景技术:

2.组合立体声是指多个智能设备通过网络连接,实现多设备组合播放的功能,使用户可以体验到立体声播放的效果。随着智能音箱功能的完善和多样化,组合立体声功能已经得到了应用,但是因为设备硬件差异、网络抖动等情况,使设备之间播放的快慢不一致,造成用户体验不佳。


技术实现要素:

3.为克服相关技术中存在的问题,本公开提供一种音频播放方法、装置、电子设备及存储介质。
4.根据本公开实施例的第一方面,提供一种音频播放方法,所述方法应用于设备组合之中主设备上,所述多设备组合实现立体声播放的音频同步,所述方法包括:
5.获取待播放的音频数据流,并将所述音频数据流划分为多帧音频数据;
6.根据每帧音频数据生成对应的音频包,并将生成的多帧音频包发送给所述多设备组合之中的从设备,并通知所述从设备进行音频的实时播放;
7.响应于实时播放音频,在播放当前帧音频数据之前,确定下一帧音频数据的第一目标播出时间,并根据所述第一目标播出时间调整所述下一帧音频数据的播放速度。
8.根据本公开实施例的第二方面,提供一种音频播放方法,所述方法应用于设备组合之中的从设备上,所述多设备组合实现立体声播放的音频同步,所述方法包括:
9.接收所述多设备组合之中主设备发送的多帧音频包;
10.对每帧音频包进行解析,以获得所述每帧音频包中的音频数据;
11.响应于所述多设备之中主设备发送的通知以进行实时播放音频,在播放当前帧音频数据之前,确定下一帧音频数据的第二目标播出时间,并根据所述第二目标播出时间调整所述下一帧音频数据的播放速度。
12.根据本公开实施例的第三方面,提供一种音频播放装置,所述装置应用于多设备组合之中主设备上,所述多设备组合实现立体声播放的音频同步,所述装置包括:
13.划分处理模块,用于获取待播放的音频数据流,并将所述音频数据流划分为多帧音频数据;
14.发送模块,用于根据所述每帧音频数据生成对应的音频包,并将生成的多帧音频包发送给每个所述从设备;
15.获取模块,用于在播放当前帧音频数据之前,获取下一帧音频数据;
16.确定模块,用于确定所述下一帧音频数据的第一目标播出时间;
17.调整模块,用于根据所述第一目标播出时间调整所述下一帧音频数据的播放速
度。
18.根据本公开实施例的第四方面,提供一种音频播放装置,所述装置应用于多设备组合之中从设备上,所述多设备组合实现立体声播放的音频同步,所述装置包括:
19.接收模块,用于接收所述多设备组合之中主设备发送的多帧音频包;
20.解析模块,用于对每帧音频包进行解析,以获得所述每帧音频包中的音频数据;
21.获取模块,用于在播放当前帧音频数据之前,获取下一帧音频数据;
22.确定模块,用于确定所述下一帧音频数据的第二目标播出时间;
23.调整模块,用于根据所述第二目标播出时间调整所述下一帧音频数据的播放速度。
24.根据本公开实施例的第五方面,提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述第一方面,和/或,第二方面所述的音频播放方法。
25.根据本公开实施例的第六方面,提供一种临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面,和/或,第二方面所述的音频播放方法。
26.本公开的实施例提供的技术方案可以包括以下有益效果:通过主设备对待播放的音频数据流划分为多帧音频数据,并将划分后生成的音频包发送给每个从设备,从而可以通过主设备与从设备音频数据的传输实现音频数据的同步播放。此外,主设备与从设备均根据针对相同下一帧音频数据的各自目标播出时间,对应调整自身下一帧音频数据的播放速度,这样,可以避免由于各自硬件设备的差异或网络抖动等对播放速度的影响,从而可以保证多设备组合音频播放的同步及连续性,提升立体声播放效果。
27.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
28.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
29.图1是根据本公开实施例提出的一种音频播放方法的流程图;
30.图2是根据本公开实施例中主设备与从设备的交互示意图;
31.图3是根据本公开实施例中主设备调整下一帧音频数据的播放速度的流程图;
32.图4是根据本公开实施例中针对下一帧音频数据播放速度调整的原理图;
33.图5是根据本公开实施例中数据扩充过程的示意图;
34.图6是根据本公开实施例中数据压缩过程的示意图;
35.图7是根据本公开实施例中另一种主设备调整下一帧音频数据的播放速度的流程图;
36.图8是根据本公开实施例中又一种主设备调整下一帧音频数据的播放速度的流程图;
37.图9是根据本公开实施例提出的另一种音频播放方法的流程图;
38.图10是根据本公开实施例中从设备调整下一帧音频数据的播放速度的流程图;
39.图11是根据本公开实施例中另一种从设备调整下一帧音频数据的播放速度的流程图;
40.图12是根据本公开实施例中又一种从设备调整下一帧音频数据的播放速度的流程图;
41.图13是根据本公开实施例提出的一种音频播放装置的结构框图;
42.图14是根据本公开实施例提出的另一种音频播放装置的结构框图;
43.图15是根据本公开实施例提出的一种电子设备的结构框图。
具体实施方式
44.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
45.需要说明的是,现有的智能音箱立体声播放,通过wifi互联组成立体声播放的设备组合,并通过网络传输实现信息的交互。其中立体声播放的设备组合中包括一个主音箱及一个或多个从音箱,主音箱从互联网获取音频,在进行音频播放的同时会分发给组内其他从音箱进行播放。理想情况下,在初始同步后,所有设备只需要顺序播放自己的音频。但是因为设备硬件差异、wifi网络抖动等情况,会导致设备播放的进度不同,所以为了保证音频的同步播放,每个设备需要根据自身情况对音频的播放进行调整。
46.针对上述问题现有的调整方案为:针对播放进度快的设备,则人为插入重复数据,让原始数据延迟播出来;针对播放进度慢的设备,则人为丢弃部分数据,让后续的数据尽快被播放出来。基于这套调整逻辑,保证了各个设备音频的实时同步播放。但是该方案只是在音频帧的连接处简单的增添或丢弃数据,不仅会导致音频的不连续,也会使音频引入杂音,从而会降低用户体验的友好性。
47.基于上述问题,本公开针对多设备组合实现立体声播放的音频同步,提出了一种音频播放方法、装置、电子设备及存储介质。其中,多设备组合中包括一个主设备和一个或多个从设备,且主设备及从设备可以通过wifi、4g网络、5g网络,以及其他网络(如蓝牙)传输连接方式进行连接。此外,多设备组合中的主设备和从设备可以通过设备之间的传输进行配置。作为一种示例,基于智能音箱的主从设备的配置,用户可以在主设备的配置页面选择立体声组合功能,并从根据网络连接识别到的可作为从设备的其他智能音箱中选择对应的从设备;从设备接收到主设备的设备组合请求后,向主设备进行反馈,若从设备反馈信息为同意,则其与主设备形成设备组合,也就是完成了主设备及从设备的配置。接下来,为了便于方案的理解,首先对应用于多设备组合之中的主设备上的音频播放方法进行介绍。
48.图1为本公开实施例提出的一种音频播放方法的流程图。需要说明的是,本公开实施例中的音频播放方法应用于多设备组合之中的主设备上,该多设备组合实现立体声播放的音频同步。此外,本公开实施例中的音频播放方法可用于本公开实施例中的音频播放装置,该装置可配置于电子设备。如图1所示,该音频播放方法包括以下步骤:
49.步骤101,获取待播放的音频数据流,并将音频数据流划分为多帧音频数据。
50.可以理解,采用多设备组合的方式来实现立体声播放效果时,主设备用于接收音
频数据流,并将对应的音频数据发送给从设备,从而实现主设备与从设备的同步播放。
51.为了减少每次主设备发送音频数据的数据量,同时为了后续播放进度的监控及播放速度的调整,在本公开实施例中,主设备将获取的待播放的音频数据流划分为多帧音频数据,也就是说,主设备将待播放的音频数据流划分为连续的多段数据,其中每段数据表示一帧音频数据。需要说明的是,主设备在获取到待播放的音频数据流后,首先需要判断当前立体声播放功能是否为开启状态,也就是先判断主设备是否采用多设备组合的方式进行立体声播放,响应于立体声播放功能为开启状态时,将音频数据流划分为多帧音频数据。
52.作为一种示例,在主设备的立体声播放功能开启时,主设备通过网络传输获取待播放的音频数据流,比如mp3音频数据;主设备获取到音频数据流后,基于固定长度将该音频数据划分为帧,比如将该音频每20ms划分为一帧,得到多帧音频数据。
53.步骤102,根据每帧音频数据生成对应的音频包,并将生成的多帧音频包发送给多设备组合之中的从设备,并通知从设备进行音频的实时播放。
54.可以理解,为了减少音频发送过程中的时间延迟,可以将每帧音频数据分别进行发送,这样可以使音频播放和音频传输同时进行,避免一次性传输数据量过大造成的播放等待。
55.在本公开实施例中,为了可以对划分后得到多帧音频数据进行单帧传输,根据每帧音频数据生成对应的音频包,该音频包中可以包括划分每个音频帧的时间,例如:每帧音频的播出时间、每帧音频对应的时间长度、或者每个音频的顺序编号等。
56.作为一种示例,主设备和从设备之间协商一个音频包发送及解析的时长,主设备在将音频流数据进行帧划分时,计算每一帧的播出时间,其中第一帧的播出时间为接收时间加上协商的发送及解析时长,第二帧的播出时间为第一帧的播出时间加上帧长度,依此类推。这样,主设备根据每帧音频数据和计算得到的每一帧的播出时间生成对应的音频包,使从设备可以根据音频包中对应的播出时间来进行同步播出。
57.作为另一种示例,主设备计算第一帧播出时间后,根据音频数据及第一帧音频播出时间,生成第一帧的音频包;其他帧的音频包中仅包含每帧音频对应的顺序编号,比如,每帧的长度为20ms,第一帧音频包中包含播出时间,第二帧音频包中包含其对应的编号“2”,第三帧音频包中包含其对应的编号“3”,依此类推,这样从设备可以根据对应的编号及每帧长度确定每一帧的播出时间,从而实现音频的同步播出。
58.为了降低音频数据包发送过程中的网络负载,可以对每个音频数据包进行编码压缩来降低数据流。也就是说,发送给从设备的每个音频包中可以包含其对应的划分时间和编码后的音频数据。其中,从设备是指多设备组合中该主设备对应的从设备,主设备向从设备发送音频包的过程可以为:响应于主设备开启了立体声功能,获取配置中对应的从设备列表;将生成的多帧音频包发送给列表中每个从设备。
59.如图2所示,由于每个设备之间的系统时钟可能会有差异,所以为了保证组内设备音频播放的同步,主设备在向从设备发送音频包的同时,也会与从设备交互时钟信息。该交互时钟信息可以理解为主设备与从设备的对时操作,以确定主设备与从设备之间的时钟差值,且该交互过程可以通过wifi、4g网络、5g网络,以及其他网络传输连接方式实现。为了降低主设备与从设备之间的时钟差异,时钟信息的交互可以是实时进行的,比如间隔固定时长(1s)进行一次交互。每次进行时钟交互时,从设备根据与主设备的时钟交互信息,计算出
其与主设备之间的系统时钟的差值τ0。
60.作为一种示例,主设备与从设备每隔1s进行一次时钟信息交互,每次交互从设备会得到一个系统时钟差值τ0。对于t0时刻的音频,假设主设备和从设备都在固定时间(1s)后播出,该固定时间是指主设备与从设备配置时协商的一个延迟时间;对于主设备,只需要根据自己的系统时钟在t0 1s时刻将音频播出,而对于从音箱,则需要考虑时钟差异,在t0 τ0 1s时刻播放出音频。
61.步骤103,响应于实时播放音频,在播放当前帧音频数据之前,确定下一帧音频数据的第一目标播出时间,并根据第一目标播出时间调整下一帧音频数据的播放速度。
62.可以理解,理想情况下,多设备组合中的主设备和从设备只需要根据多帧音频包进行顺序播放。但是由于设备硬件的差异、网络抖动或者软件调度等影响,可能会使组合中各设备音频播放的进度存在差异,也就是说,可能会使组合中有的设备音频播放的快,而有的设备音频播放的慢。所以,在播放当前帧音频数据之前,根据下一帧音频数据的目标播出时间,来确定音频数据是否可以按时播放,若不能按时播放需要调整下一帧音频数据的播放速度,以保证各设备音频数据的同步播放。
63.需要说明的是,主设备与从设备会预先协商一个播出响应时间,在主设备在向从设备发送音频包的同时,也根据音频的播出时间按顺序播放音频数据。
64.在本公开实施例中,第一目标播出时间是指主设备在对音频流数据进行帧划分时,每一帧音频数据对应的播出时间。此外,为了保证主设备和从设备之间的同步性,主设备与从设备之间会预先协商一个播出响应时间。可选地,主设备确定下一帧音频数据的第一目标播出时间的实现方式可以为:确定主设备与从设备预先协商的播出响应时间;根据下一帧音频数据的开始时间和播出响应时间,确定下一帧音频数据的第一目标播出时间,比如,下一帧音频数据的第一目标播出时间可以为下一帧数据的开始时间与播出响应时间的加和。
65.可以理解,主设备根据当前网络情况及硬件情况可以预测下一帧音频数据的播出时间,将预测的下一帧音频数据的播出时间与第一目标播出时间比对,可以确定下一帧音频数据是否可以按时播出。若预测播出时间比第一目标播出时间早,说明当前音频播放进度快,需要减慢音频播放进度,以使下一帧音频数据可以按时播出。若预测播出时间比第一目标播出时间晚,说明当前音频播放进度慢,需要加快音频播放进度,以使下一帧音频数据按时播出。
66.作为一种示例,下一帧音频数据的播放速度可以通过调整当前帧与下一帧连接处的音频数据的数据量来实现,在音频播放进度慢时,减少音频数据对应的数据量,在音频播放进度快时,增加音频数据对应的数据量,以调整音频播放的进度。其实,数据量的调整需要尽量保证音频数据的连续性,也尽量避免引入杂音。
67.作为另一种示例,下一帧音频数据的播放速度可以通过调整当前帧与下一帧音频数据的数据量来实现,比如通过三次样条插值法来减少或增加当前帧与下一帧音频数据的数据量,使音频播放更加流畅。
68.根据本公开实施例的音频播放方法,通过主设备对待播放的音频数据流划分为多帧音频数据,并将划分后生成的音频包发送给每个从设备,从而可以通过主设备与从设备音频数据的传输实现音频数据的同步播放。此外,主设备根据下一帧音频数据的目标播出
时间,调整下一帧音频数据的播放速度,这样,可以避免由于硬件设备的差异或网络抖动等对播放速度的影响,从而可以保证多设备组合音频播放的同步及连续性,提升立体声播放效果。
69.基于上述实施例,接下来将针对调整下一帧音频数据的播放速度的实现方式进一步说明。图3为本公开实施例中调整下一帧音频数据的播放速度的流程图。如图3所示,该实现过程包括以下步骤:
70.步骤310,确定主设备的当前时间。
71.在本公开实施例中,主设备的当前时间是指主设备当前的系统时钟对应的时间。
72.步骤320,根据主设备的硬件性能,预测将下一帧音频数据写入至主设备之中扬声器并被播出时的所需时间。
73.也就是说,根据主设备的硬件性能,预测当前至下一帧音频数据播出需要多长时间。其中需要根据主设备的硬件性能,确定当前帧的音频数据播放完毕及下一帧音频数据写入至主设备之中扬声器并播出时所需的时间。
74.步骤330,根据当前时间和所需时间,确定下一帧音频数据的预测播出时间。
75.可以理解,当前时间至预测的下一帧音频数据播出时所需的时间,与当前时间加和可以确定下一帧音频数据的预测播出时间。
76.步骤340,如果预测播出时间和第一目标播出时间不一致,则调整下一帧音频数据的播放速度。
77.可以理解,预测播出时间与第一目标播出时间不一致,说明下一帧音频不能在第一播出时间播出,这样会出现主设备音频数据的播放与从设备之间不同步的问题。为了避免该问题的发生,需要及时地对下一帧音频数据的播放速度进行调整。
78.接下来将分别针对预测播出时间小于和大于第一目标播出时间两种情况,对下一帧音频数据播放速度调整方式进行介绍。图4为本公开实施例中下一帧音频数据播放速度调整的原理图。如图4所示,若预测播出时间等于第一目标播出时间,则说明下一帧音频数据可以正常播放,此时无需对播放速度进行调整,可以继续播放当前帧音频数据。若预测播出时间小于第一目标播出时间,则说明当前音频播放进度快了,需要减慢音频播放的速度。若预测播出时间大于第一目标播出时间,则说明当前音频播放进度慢了,需要提高音频播放速度。其中,音频播放速度的调整可以通过三次样条插值法对音频帧的数据量进行调整,也可以通过线性预测编码的方式对音频采样点数量进行调整,也可以通过调整硬件采用率来对播放速度进行调整,也可以采用其他本技术未提及的可调整音频播放速度的方式进行调整,本技术对此不作限定。在本技术实施例中将以三次样条插值法来调整音频播放速度为例进行说明。如图3所示,响应于预测播出时间小于第一目标播出时间,其速度调整过程包括以下步骤:
79.步骤341,如果预测播出时间小于第一目标播出时间,则将当前帧音频数据和下一帧音频数据进行合并。
80.步骤342,根据预测播出时间和第一目标播出时间之间的差值,确定第一调整点数。
81.可以理解,预测播出时间小于第一目标播出时间说明当前音频播放的进度快了,需要进行数据扩充来降低音频播放的进度。
82.在本公开实施例中,第一调整点数是指需要扩充的音频数据量,其计算的方式可以为:将第一目标播出时间与预测播出时间做差,得到时间差值t;根据当前设备硬件情况及网络情况,获取当前主设备音频播放的速度v(单位时间音频播放的数据量);将时间差值t与当前主设备音频播放速度v相乘,得到第一调整点数m=t
×
v。
83.步骤343,基于三次样条插值法,根据第一调整点数对合并后得到的音频数据对应的采样点进行插值,得到数据扩充后的音频数据。
84.可以理解,对音频数据进行扩充是为了降低音频播放的进度,以使主设备与从设备能同步地对音频进行播放,所以扩充后的音频数据需要连续且流畅才能保证立体声效果不受影响。
85.在本公开实施例中,为了保证音频数据的连续性,将当前帧的音频数据与下一帧的音频数据进行合并,基于三次样条插值法对合并后的数据对应的采用点进行插值计算,也就是说,在当前帧与下一帧合并后的音频数据中进行插值,增加第一调整点数个采样点。这样,相比只对当前帧与下一帧连接处增加音频数据的方式,可以提高差值后的音频的连续性,使音频数据可以流畅的播出,提高立体声播放的效果。
86.具体的数据扩充方法可以如图5所示,假如当前帧与下一帧的音频帧长为n,也就是说合并后的音频数据有2n个采样点数据,通过三次样条差值法,将2n点数据变为2n m点数据。
87.步骤344,从数据扩充后的音频数据之中选取前n个插值节点对应的音频数据,作为新的当前帧音频数据,将数据扩充后的音频数据之中剩余的音频数据作为新的下一帧音频数据;其中,n的值与当前帧音频数据的采样节点个数一致。
88.在本公开实施例中,数据扩充后进行播放时,当前帧音频数据的数据量仍然为原采样节点个数,只是采样点的数据变更为扩充后的音频数据中的前n个差值节点对应的音频数据。将扩充后的音频数据中剩余的n m个差值节点对应的音频数据作为新的下一帧音频数据,在新的当前帧音频数据播放完毕之后,播放新的下一帧音频数据,这样新的下一帧音频数据的播放时长会增加,从而可以在新的下一帧音频数据播放完毕时将主设备的播放进度调整为与从设备一致。
89.如图3所示,如果预测播出时间大于第一目标播出时间,其速度调整过程包括以下步骤:
90.步骤345,如果预测播出时间大于所述第一目标播出时间,则将当前帧音频数据和所述下一帧音频数据进行合并。
91.步骤346,根据预测播出时间和第一目标播出时间之间的差值,确定第二调整点数。
92.可以理解,预测播出时间大于第一目标播出时间说明当前音频播放的进度快了,需要进行数据压缩来加快音频播放的进度。
93.在本公开实施例中,第二调整点数是指需要压缩的音频数据量,其计算的方式可以为:将预测播出时间与第一目标播出时间做差,得到时间差值t’;根据当前设备硬件情况及网络情况,获取当前主设备音频播放的速度v’(单位时间音频播放的数据量);将时间差值t’与当前主设备音频播放速度v’相乘,得到第二调整点数m=t
’×
v’。
94.步骤347,基于三次样条插值法,根据第二调整点数对合并后得到的音频数据对应
的采样点进行插值,得到数据压缩后的音频数据。
95.可以理解,对音频数据进行压缩是为了加快音频播放的进度,以使主设备与从设备能同步地对音频进行播放,所以压缩后的音频数据需要连续且流畅才能保证立体声效果不受影响。
96.在本公开实施例中,为了保证音频数据的连续性,将当前帧的音频数据与下一帧的音频数据进行合并,基于三次样条插值法对合并后的数据对应的采用点进行插值计算,也就是说,在当前帧与下一帧合并后的音频数据中进行插值,使合并后的音频数据中减少第二调整点数个采样节点。这样,相比只对当前帧与下一帧连接处丢弃音频数据的方式,可以提高差值后的音频的连续性,使音频数据可以流畅的播出,提高立体声播放的效果。
97.具体的数据压缩方法可以如图6所示,假如当前帧与下一帧的音频帧长为n,也就是说合并后的音频数据有2n个采样点数据,第二调整点数为m’,通过三次样条差值法,将2n点数据变为2n

m’点数据。
98.步骤348,从数据压缩后的音频数据之中选取前n个插值节点对应的音频数据,作为新的当前帧音频数据,将数据压缩后的音频数据之中剩余的音频数据作为新的下一帧音频数据;其中,n的值与当前帧音频数据的采样节点个数一致。
99.在本公开实施例中,数据压缩后进行播放时,当前帧音频数据的数据量仍然为原采样节点个数,只是采样点的数据变更为压缩后的音频数据中的前n个插值节点对应的音频数据。将压缩后的音频数据中剩余的n

m’个插值节点对应的音频数据作为新的下一帧音频数据,在新的当前帧音频数据播放完毕之后,播放新的下一帧音频数据,这样新的下一帧音频数据的播放时长会减少,从而可以在新的下一帧音频数据播放完毕时将主设备的播放进度调整为与从设备一致。
100.根据本公开实施例提出的音频播放方法,针对多设备组合中的主设备,通过当前帧播放前对下一帧音频数据的播出时间进行预测,针对预测播出时间与目标播出时间不一致的情况,调整下一帧音频数据的播放速度,从而可以避免由于硬件设备差异等因素影响造成的主设备音频播放进度慢或快的情况发生,进而可以保证主设备与各从设备中音频播放的同步性。此外,针对预测播出时间与目标播出时间不一致的情况,引入三次样条差值法对当前帧与下一帧音频合并后的数据进行扩充或者压缩来对播放速度进行调整,提高了音频数据的连续性,从而使调整后的音频依然能够流畅地播放,进而保证了多设备组合音频播放的立体声效果,提高了用户体验。
101.由于音频播放速度调整的方式有多种,接下来将采用线性预测编码方式对音频播放速度进行调整。
102.图7为本公开实施例中另一种调整下一帧音频数据的播放速度的流程图。如图7所示,在上述实施例的基础上,该方法还包括:
103.步骤741,如果预测播出时间小于第一目标播出时间,则根据预测播出时间和第一目标播出时间之间的差值,确定第一调整点数。
104.可以理解,预测播出时间小于第一目标播出时间说明当前音频播放的进度快了,需要进行数据扩充来降低音频播放的进度。
105.在本公开实施例中,第一调整点数是指需要扩充的音频数据量,其计算的方式可以为:将第一目标播出时间与预测播出时间做差,得到时间差值t;根据当前设备硬件情况
及网络情况,获取当前主设备音频播放的速度v(单位时间音频播放的数据量);将时间差值t与当前主设备音频播放速度v相乘,得到第一调整点数m=t
×
v。
106.步骤742,基于线性预测编码方式,根据当前帧音频数据预测与第一调整点数对应数量的采样点数据,将预测得到的采样点数据和当前帧音频数据作为新的当前帧音频数据进行播放,以调整下一帧音频数据的播放速度。
107.可以理解,通过将预测得到采样点数据也作为当前帧音频数据,来扩充当前帧音频数据的数据量,从而可以减慢音频播放的速度,进而可以调整下一帧音频数据的播放速度。
108.需要说明的是,线性预测编码的基本思想是:一个音频采样点的现在值可以用若干个音频采样点的过去值得加权线性组合来逼近。
109.作为一种示例,基于线性预测编码方式,根据当前帧音频数据预测与第一调整点数对应数量的采样点数据得实现方式可以如公式(1)所示:
[0110][0111]
其中,x(n)为n时刻的采样点,t
k
为预测系数,p为预测阶数,通常p=10~15,x(n

k)为n

k时刻的采样点。其中,预测系数t
k
用于表示线性组合中的加权系数,可以通过经典的levinson

durbin迭代算法获得。
[0112]
在本公开实施例中,假如预测得到的采样点为m个,且当前帧音频的采样点数为n个,则将该m n个采样点对应的数据均作为新的当前帧音频数据进行播放,从而增加了当前帧音频数据的数据量,进而减慢了音频播放的速度,使音频数据能够同步播放。
[0113]
步骤743,如果预测播出时间大于第一目标播出时间,则根据预测播出时间和第一目标播出时间之间的差值减少音频帧中的采样点数,来调整下一帧音频数据的播放速度。
[0114]
作为一种示例,可以预设每帧音频去除一个采样点;根据预测播出时间和第一目标播出时间计算出第二调整点数m,也就是需要减少的采样点数m,将需要减少的m个采样点均分到当前帧及当前帧之后的m

1帧音频中;每帧音频中随机选择一个采样点进行去除,并将去除之后的音频数据作为新的音频数据进行播放,若原音频帧中有n个采样点,则处理后的音频数据中每帧有n

1个采样点,这样通过逐帧减少采样点的方式来逐步地调整音频播放的速度。
[0115]
本公开实施例提出的音频播放方法,针对多设备组合中的主设备,针对预测播出时间与目标播出时间不一致的情况,引入线性预测编码方式对当前帧的数据进行扩充来对播放速度进行调整,其中,预测的采样点的数据可以保证音频数据的连续性,从而使调整后的音频依然能够流畅地播放,进而保证了多设备组合音频播放的立体声效果,提高了用户体验。
[0116]
此外,针对下一帧音频数据播放速度的调整,也可以通过控制硬件设置来进行,本公开针对该方式提出了又一个实施例。图8为本公开实施例中又一种调整下一帧音频数据的播放速度的流程图。如图8所示,在上述实施例的基础上,该方法还包括:
[0117]
步骤841,如果预测播出时间小于第一目标播出时间,则减小主设备之中硬件驱动的当前播放采样率,以调整下一帧音频数据的播放速度。
[0118]
步骤842,如果预测播出时间大于第一目标播出时间,则增大主设备之中硬件驱动的当前播放采样率,以调整下一帧音频数据的播放速度。
[0119]
对于音频播放速度的调整,可以通过主设备之中硬件驱动的播放采样率来实现。作为一种示例,如果预测播出时间小于第一目标播出时间,也就是当前音频播放过快,假设当前主设备扬声器驱动采样率为48khz,那么增大主设备扬声器驱动的播放采样率,可以降低主设备音频的播放速度,比如将扬声器驱动的采样率调整为44.1khz;从而调整下一帧音频数据的播放速度,使主设备能与其他从设备同步播放音频;相反,如果当前音频播放速度慢了,可以将主设备硬件驱动的播放采样率由44.1khz调整为48khz,以调整下一帧音频数据的播放速度。
[0120]
本公开实施例提出的音频播放方法,针对多设备组合中的主设备,基于预测播出时间与目标播出时间不一致时对下一帧音频播放速度的调整,提出了通过调整主设备硬件驱动的播放采样率来调整下一帧音频数据的播放速度,相当于为调整音频数据播放速度提出了又一种方式,不仅可以满足多设备组合音频播放的立体声效果,也可以提高该方法实际应用的适用性。
[0121]
接下来,将对应用于多设备组合之中的从设备的音频播放方法进行介绍。图9是本公开实施例提出的另一种音频播放方法的流程图。需要说明的是,本公开实施例中的音频播放方法应用于多设备组合之中的从设备上,该多设备组合实现立体声播放的音频同步。如图7所示,该音频播放方法包括以下步骤:
[0122]
步骤901,接收多设备组合之中主设备发送的多帧音频包。
[0123]
步骤902,对每帧音频包进行解析,以获得每帧音频包中的音频数据。
[0124]
可以理解,从设备接收到主设备发送的音频包后会立刻进行解析,由于每帧音频包中包括其对应的音频数据及划分时间,所以从设备将每帧音频包解析后可以获得每帧音频包中的音频数据和其对应的划分时间。从设备根据获取的划分时间对音频数据进行播放。
[0125]
此外,由于主设备还会与从设备交互时钟信息,所以从设备在根据划分时间对音频进行播放时还需要考虑与主设备系统时钟的差异。举例而言,主设备与从设备每隔1s进行一次时钟信息交互,每次交互从设备会得到一个系统时钟差值τ0。对于t0时刻的音频,假设主设备和从设备都在固定时间(1s)后播出,该固定时间是指主设备与从设备配置时协商的一个延迟时间;对于主设备,只需要根据自己的系统时钟在t0 1s时刻将音频播出,而对于从设备,则需要考虑时钟差异,在t0 τ0 1s时刻播放出音频。
[0126]
步骤903,响应于多设备之中主设备发送的通知以进行实时播放音频,在播放当前帧音频数据之前,确定下一帧音频数据的第二目标播出时间,并根据第二目标播出时间调整下一帧音频数据的播放速度。
[0127]
可以理解,理想情况下,多设备组合中的主设备和从设备只需要根据多帧音频包进行顺序播放。但是由于设备硬件的差异、网络抖动或者软件调度等影响,可能会使组合中各设备音频播放的进度存在差异,也就是说,可能会使组合中有的设备音频播放的快,而有的设备音频播放的慢。也就是说,根据下一帧音频数据的目标播出时间,来确定下一帧音频数据是否可以按时播放,若不能按时播放需要调整下一帧音频数据的播放速度,以保证各从设备音频数据与主设备同步播放。
[0128]
需要说明的是,主设备与从设备会预先协商一个播出响应时间,在从设备接收主设备发送的音频包的同时,也根据音频的播出时间按顺序播放音频数据。
[0129]
在本公开实施例中,第二目标播出时间是指从设备接收到的音频包中,每一帧音频数据对应的播出时间。此外,为了保证主设备和从设备之间的同步性,主设备与从设备之间会预先协商一个播出响应时间。可选地,从设备确定下一帧音频数据的第二目标播出时间的实现方式可以为:与主设备交互时钟信息,并根据主设备的系统时钟信息计算与主设备的系统时钟差异;确定主设备与从设备预先协商的播出响应时间;根据下一帧音频数据的开始时间、播出响应时间和系统时钟差异,确定所述下一帧音频数据的第二目标播出时间。比如,下一帧音频数据的第二目标播出时间可以为下一帧数据的开始时间、播出响应时间和系统时钟差异的加和。
[0130]
可以理解,从设备根据当前网络情况及硬件情况可以预测下一帧音频数据的播出时间,将预测的下一帧音频数据的播出时间与第一目标播出时间比对,可以确定下一帧音频数据是否可以按时播出。若预测播出时间比第一目标播出时间早,说明当前音频播放进度快,需要减慢音频播放进度,以使下一帧音频数据可以按时播出。若预测播出时间比第一目标播出时间晚,说明当前音频播放进度慢,需要加快音频播放进度,以使下一帧音频数据按时播出。
[0131]
作为一种示例,下一帧音频数据的播放速度可以通过调整当前帧与下一帧连接处的音频数据的数据量来实现,在音频播放进度慢时,减少音频数据对应的数据量,在音频播放进度快时,增加音频数据对应的数据量,以调整音频播放的进度。其实,数据量的调整需要尽量保证音频数据的连续性,也尽量避免引入杂音。
[0132]
作为另一种示例,下一帧音频数据的播放速度可以通过调整当前帧与下一帧音频数据的数据量来实现,比如通过三次样条插值法来减少或增加当前帧与下一帧音频数据的数据量,使音频播放更加流畅。
[0133]
根据本公开实施例的音频播放方法,通过从设备对主设备发送的多帧音频数据的接收及解析,得到每帧音频包对应的音频数据,并根据播出时间对音频数据进行播放,从而可以实现主设备与从设备音频数据的同步播放。此外,从设备根据下一帧音频数据的目标播出时间,调整下一帧音频数据的播放速度,这样,可以避免由于硬件设备的差异或网络抖动等对播放速度的影响,从而可以保证多设备组合音频播放的同步及连续性,提升立体声播放效果。
[0134]
基于上述实施例,接下来将针对调整下一帧音频数据的播放速度的实现方式进一步说明。图10是本公开实施例中从设备调整下一帧音频播放速度的流畅图。如图10所示,该实现过程包括以下步骤:
[0135]
步骤1010,确定从设备的当前时间。
[0136]
在本公开实施例中,从设备的当前时间是指从设备当前的系统时钟对应的时间。
[0137]
步骤1020,根据从设备的硬件性能,预测将下一帧音频数据写入至从设备之中扬声器并被播出时的所需时间。
[0138]
也就是说,根据从设备的硬件性能,预测当前至下一帧音频数据播出需要多长时间。其中需要根据从设备的硬件性能,确定当前帧的音频数据播放完毕及下一帧音频数据写入至从设备之中扬声器并播出时所需的时间。
[0139]
步骤1030,根据当前时间和所需时间,确定下一帧音频数据的预测播出时间。
[0140]
可以理解,当前时间至预测的下一帧音频数据播出时所需的时间,与当前时间加
和可以确定下一帧音频数据的预测播出时间。
[0141]
步骤1040,如果预测播出时间和第二目标播出时间不一致,则调整下一帧音频数据的播放速度。
[0142]
可以理解,预测播出时间与第二目标播出时间不一致,说明下一帧音频不能在第二目标播出时间播出,这样会出现该从设备音频数据的播放与其他设备之间不同步的问题。为了避免该问题的发生,需要及时地对下一帧音频数据的播放速度进行调整。
[0143]
接下来将分别针对预测播出时间小于和大于第二目标播出时间两种情况,对下一帧音频数据播放速度调整方式进行介绍。如图4所示,若预测播出时间等于第二目标播出时间,则说明下一帧音频数据可以正常播放,此时无需对播放速度进行调整,可以继续播放当前帧音频数据。若预测播出时间小于第二目标播出时间,则说明当前音频播放进度快了,需要减慢音频播放的速度。若预测播出时间大于第二目标播出时间,则说明当前音频播放进度慢了,需要加快音频播放速度。其中,音频播放速度的调整可以通过三次样条插值法对音频帧的数据量进行调整,也可以通过线性预测编码的方式对音频采样点数量进行调整,也可以通过调整硬件采用率来对播放速度进行调整,也可以采用其他本技术未提及的可调整音频播放速度的方式进行调整,本技术对此不作限定。在本技术实施例中将以三次样条插值法来调整音频播放速度为例进行说明。如图8所示,响应于预测播出时间小于第二目标播出时间,从设备对其速度调整过程包括以下步骤:
[0144]
步骤1041,如果预测播出时间小于第二目标播出时间,则将当前帧音频数据和下一帧音频数据进行合并。
[0145]
步骤1042,根据预测播出时间和第二目标播出时间之间的差值,确定第三调整点数。
[0146]
可以理解,预测播出时间小于第二目标播出时间说明当前音频播放的进度快了,需要进行数据扩充来降低音频播放的进度。
[0147]
在本公开实施例中,第三调整点数是指需要扩充的音频数据量,其计算的方式可以为:将第二目标播出时间与预测播出时间做差,得到时间差值t;根据当前设备硬件情况及网络情况,获取当前从设备音频播放的速度v(单位时间音频播放的数据量);将时间差值t与当前从设备音频播放速度v相乘,得到第三调整点数m=t
×
v。
[0148]
步骤1043,基于三次样条插值法,根据第三调整点数对合并后得到的音频数据对应的采样点进行插值,得到数据扩充后的音频数据。
[0149]
可以理解,对音频数据进行扩充是为了降低音频播放的进度,以使主设备与从设备能同步地对音频进行播放,所以扩充后的音频数据需要连续且流畅才能保证立体声效果不受影响。
[0150]
在本公开实施例中,为了保证音频数据的连续性,将当前帧的音频数据与下一帧的音频数据进行合并,基于三次样条插值法对合并后的数据对应的采用点进行插值计算,也就是说,在当前帧与下一帧合并后的音频数据中进行插值,增加第三调整点数个采样点。这样,相比只对当前帧与下一帧连接处增加音频数据的方式,可以提高差值后的音频的连续性,使音频数据可以流畅的播出,提高立体声播放的效果。
[0151]
具体的数据扩充方法可以如图5所示,假如当前帧与下一帧的音频帧长为n,也就是说合并后的音频数据有2n个采样点数据,通过三次样条差值法,将2n点数据变为2n m点
数据。
[0152]
步骤1044,从数据扩充后的音频数据之中选取前n个插值节点对应的音频数据,作为新的当前帧音频数据,将数据扩充后的音频数据之中剩余的音频数据作为新的下一帧音频数据;其中,n的值与当前帧音频数据的采样节点个数一致。
[0153]
在本公开实施例中,数据扩充后进行播放时,当前帧音频数据的数据量仍然为原采样节点个数,只是采样点的数据变更为扩充后的音频数据中的前n个插值节点对应的音频数据。将扩充后的音频数据中剩余的n m个插值节点对应的音频数据作为新的下一帧音频数据,在新的当前帧音频数据播放完毕之后,播放新的下一帧音频数据,这样新的下一帧音频数据的播放时长会增加,从而可以在新的下一帧音频数据播放完毕时将从设备的播放进度调整为与其他设备一致。
[0154]
如图10所示,如果预测播出时间大于第二目标播出时间,从设备针对其速度调整过程包括以下步骤:
[0155]
步骤1045,如果预测播出时间大于所述第二目标播出时间,则将当前帧音频数据和所述下一帧音频数据进行合并。
[0156]
步骤1046,根据预测播出时间和第二目标播出时间之间的差值,确定第四调整点数。
[0157]
可以理解,预测播出时间大于第二目标播出时间说明当前音频播放的进度快了,需要进行数据压缩来加快音频播放的进度。
[0158]
在本公开实施例中,第四调整点数是指需要压缩的音频数据量,其计算的方式可以为:将预测播出时间与第二目标播出时间做差,得到时间差值t’;根据当前设备硬件情况及网络情况,获取当前从设备音频播放的速度v’(单位时间音频播放的数据量);将时间差值t’与当前从设备音频播放速度v’相乘,得到第四调整点数m=t
’×
v’。
[0159]
步骤1047,基于三次样条插值法,根据第四调整点数对合并后得到的音频数据对应的采样点进行插值,得到数据压缩后的音频数据。
[0160]
可以理解,对音频数据进行压缩是为了加快音频播放的进度,以使该从设备与其他设备能同步地对音频进行播放,所以压缩后的音频数据需要连续且流畅才能保证立体声效果不受影响。
[0161]
在本公开实施例中,为了保证音频数据的连续性,将当前帧的音频数据与下一帧的音频数据进行合并,基于三次样条插值法对合并后的数据对应的采用点进行插值计算,也就是说,在当前帧与下一帧合并后的音频数据中进行插值,使合并后的音频数据中减少第四调整点数个采样节点。这样,相比只对当前帧与下一帧连接处丢弃音频数据的方式,可以提高差值后的音频的连续性,使音频数据可以流畅的播出,提高立体声播放的效果。
[0162]
具体的数据压缩方法可以如图6所示,假如当前帧与下一帧的音频帧长为n,也就是说合并后的音频数据有2n个采样点数据,第四调整点数为m’,通过三次样条差值法,将2n点数据变为2n

m’点数据。
[0163]
步骤1048,从数据压缩后的音频数据之中选取前n个插值节点对应的音频数据,作为新的当前帧音频数据,将数据压缩后的音频数据之中剩余的音频数据作为新的下一帧音频数据;其中,n的值与当前帧音频数据的采样节点个数一致。
[0164]
在本公开实施例中,数据压缩后进行播放时,当前帧音频数据的数据量仍然为原
采样节点个数,只是采样点的数据变更为压缩后的音频数据中的前n个插值节点对应的音频数据。将压缩后的音频数据中剩余的n

m’个插值节点对应的音频数据作为新的下一帧音频数据,在新的当前帧音频数据播放完毕之后,播放新的下一帧音频数据,这样新的下一帧音频数据的播放时长会减少,从而可以在新的下一帧音频数据播放完毕时将该从设备的播放进度调整为与其他设备一致。
[0165]
根据本公开实施例提出的音频播放方法,针对多设备组合中的从设备,通过当前帧播放前对下一帧音频数据的播出时间进行预测,针对预测播出时间与目标播出时间不一致的情况,调整下一帧音频数据的播放速度,从而可以避免由于硬件设备差异等因素影响造成的从设备音频播放进度慢或快的情况发生,进而可以保证从设备与其他设备中音频播放的同步性。此外,针对预测播出时间与目标播出时间不一致的情况,引入三次样条差值法对当前帧与下一帧音频合并后的数据进行扩充或者压缩来对播放速度进行调整,提高了音频数据的连续性,从而使调整后的音频依然能够流畅地播放,进而保证了多设备组合音频播放的立体声效果,提高了用户体验。
[0166]
由于音频播放速度调整的方式有多种,接下来将采用线性预测编码方式对音频播放速度进行调整。
[0167]
图11为本公开实施例中另一种调整下一帧音频数据的播放速度的流程图。如图11所示,在上述实施例的基础上,该方法还包括:
[0168]
步骤1141,如果预测播出时间小于第二目标播出时间,则根据预测播出时间和第二目标播出时间之间的差值,确定第三调整点数。
[0169]
可以理解,预测播出时间小于第二目标播出时间说明当前音频播放的进度快了,需要进行数据扩充来降低音频播放的进度。
[0170]
在本公开实施例中,第三调整点数是指需要扩充的音频数据量,其计算的方式可以为:将第二目标播出时间与预测播出时间做差,得到时间差值t’;根据当前设备硬件情况及网络情况,获取当前从设备音频播放的速度v’(单位时间音频播放的数据量);将时间差值t与当前从设备音频播放速度v’相乘,得到第一调整点数m’=t
’×
v’。
[0171]
步骤1142,基于线性预测编码方式,根据当前帧音频数据预测与第三调整点数对应数量的采样点数据,将预测得到的采样点数据和当前帧音频数据作为新的当前帧音频数据进行播放,以调整下一帧音频数据的播放速度。
[0172]
可以理解,通过将预测得到采样点数据也作为当前帧音频数据,来扩充当前帧音频数据的数据量,从而可以减慢音频播放的速度,进而可以调整下一帧音频数据的播放速度。
[0173]
需要说明的是,线性预测编码的基本思想是:一个音频采样点的现在值可以用若干个音频采样点的过去值得加权线性组合来逼近。
[0174]
作为一种示例,基于线性预测编码方式,根据当前帧音频数据预测与第三调整点数对应数量的采样点数据得实现方式可以如上述公式(1)所示。
[0175]
在本公开实施例中,假如预测得到的采样点为m’个,且当前帧音频的采样点数为n’个,则将该m’ n’个采样点对应的数据均作为新的当前帧音频数据进行播放,从而增加了当前帧音频数据的数据量,进而减慢了音频播放的速度,使音频数据能够同步播放。
[0176]
步骤1143,如果预测播出时间大于第二目标播出时间,则根据预测播出时间和第
二目标播出时间之间的差值减少音频帧中的采样点数,来调整下一帧音频数据的播放速度。
[0177]
作为一种示例,可以预设每帧音频去除一个采样点;根据预测播出时间和第二目标播出时间计算出第三调整点数m’,也就是需要减少的采样点数m’,将需要减少的m’个采样点均分到当前帧及当前帧之后的m
’‑
1帧音频中;每帧音频中随机选择一个采样点进行去除,并将去除之后的音频数据作为新的音频数据进行播放,若原音频帧中有n’个采样点,则处理后的音频数据中每帧有n
’‑
1个采样点,这样通过逐帧减少采样点的方式来逐步地调整音频播放的速度。
[0178]
本公开实施例提出的音频播放方法,针对多设备组合中的从设备,基于预测播出时间与目标播出时间不一致的情况,引入线性预测编码方式对当前帧的数据进行扩充来对播放速度进行调整,其中,预测的采样点的数据可以保证音频数据的连续性,从而使调整后的音频依然能够流畅地播放,进而保证了多设备组合音频播放的立体声效果,提高了用户体验。
[0179]
此外,针对下一帧音频数据播放速度的调整,也可以通过控制硬件设置来进行,本公开针对该方式提出了又一个实施例。图12为本公开实施例中又一种调整下一帧音频数据的播放速度的流程图。如图12所示,在上述实施例的基础上,该方法还包括:
[0180]
步骤1241,如果预测播出时间小于第二目标播出时间,则减小从设备之中硬件驱动的当前播放采样率,以调整下一帧音频数据的播放速度。
[0181]
步骤1242,如果预测播出时间大于第二目标播出时间,则增大从设备之中硬件驱动的当前播放采样率,以调整下一帧音频数据的播放速度。
[0182]
对于音频播放速度的调整,可以通过从设备之中硬件驱动的播放采样率来实现。作为一种示例,如果预测播出时间小于第二目标播出时间,也就是当前音频播放过快,假设当前从设备扬声器驱动采样率为48khz,那么增大从设备扬声器驱动的播放采样率,可以降低从设备音频的播放速度,比如将扬声器驱动的采样率调整为44.1khz;从而调整下一帧音频数据的播放速度,使该从设备能与其他从设备及主设备同步播放音频;相反,如果当前音频播放速度慢了,可以将从设备硬件驱动的播放采样率由44.1khz调整为48khz,以调整下一帧音频数据的播放速度。
[0183]
本公开实施例提出的音频播放方法,针对多设备组合中的从设备,基于预测播出时间与目标播出时间不一致时对下一帧音频播放速度的调整,提出了通过调整从设备硬件驱动的播放采样率来调整下一帧音频数据的播放速度,相当于为调整音频数据播放速度提出了又一种方式,不仅可以满足多设备组合音频播放的立体声效果,也可以提高该方法实际应用的适用性。
[0184]
为了实现上述实施例,本公开提出了一种音频播放装置。
[0185]
图13是本公开实施例提出的一种音频播放装置的结构框图。该装置应用于多设备组合之中主设备上,该多设备组合实现立体声播放的音频同步。如图13所示,该装置包括:
[0186]
划分处理模块1310,用于获取待播放的音频数据流,并将音频数据流划分为多帧音频数据;
[0187]
发送模块1320,用于根据每帧音频数据生成对应的音频包,并将生成的多帧音频包发送给每个从设备;
[0188]
获取模块1330,用于在播放当前帧音频数据之前,获取下一帧音频数据;
[0189]
确定模块1340,用于确定下一帧音频数据的第一目标播出时间;
[0190]
调整模块1350,用于根据第一目标播出时间调整下一帧音频数据的播放速度。
[0191]
在本公开的一些实施例中,调整模块1350包括:
[0192]
第一确定单元1351,用于确定主设备的当前时间;
[0193]
预测单元1352,用于根据主设备的硬件性能,预测将下一帧音频数据写入至主设备之中扬声器并被播出时的所需时间;
[0194]
第二确定单元1353,用于根据当前时间和所需时间,确定下一帧音频数据的预测播出时间;
[0195]
调整单元1354,用于在预测播出时间和第一目标播出时间不一致时,调整下一帧音频数据的播放速度。
[0196]
进一步地,在本公开的一些实施例中,调整单元1354具体用于:
[0197]
如果预测播出时间小于第一目标播出时间,则将当前帧音频数据和下一帧音频数据进行合并;
[0198]
根据预测播出时间和第一目标播出时间之间的差值,确定第一调整点数;
[0199]
基于三次样条插值法,根据第一调整点数对合并后得到的音频数据对应的采样点进行插值,得到数据扩充后的音频数据;
[0200]
从数据扩充后的音频数据之中选取前n个插值节点对应的音频数据,作为新的当前帧音频数据,将数据扩充后的音频数据之中剩余的音频数据作为新的下一帧音频数据;其中,n的值与当前帧音频数据的采样节点个数一致。
[0201]
在本公开的另一些实施例中,调整单元1354具体用于:
[0202]
如果预测播出时间大于第一目标播出时间,则将当前帧音频数据和下一帧音频数据进行合并;
[0203]
根据预测播出时间和第一目标播出时间之间的差值,确定第二调整点数;
[0204]
基于三次样条插值法,根据第二调整点数对合并后得到的音频数据对应的采样点进行插值,得到数据压缩后的音频数据;
[0205]
从数据压缩后的音频数据之中选取前n个插值节点对应的音频数据,作为新的当前帧音频数据,将数据压缩后的音频数据之中剩余的音频数据作为新的下一帧音频数据;其中,n的值与当前帧音频数据的采样节点个数一致。
[0206]
在本公开的又一些实施例中,调整单元1354具体用于:
[0207]
如果预测播出时间小于第一目标播出时间,则根据预测播出时间和第一目标播出时间之间的差值,确定第一调整点数;
[0208]
基于线性预测编码方式,根据当前帧音频数据预测与第一调整点数对应数量的采样点数据,将预测得到的采样点数据和当前帧音频数据作为新的当前帧音频数据进行播放,以调整下一帧音频数据的播放速度。
[0209]
在本公开的又一些实施例中,调整单元1354具体用于:
[0210]
如果预测播出时间小于第一目标播出时间,则减小主设备之中硬件驱动的当前播放采样率,以调整下一帧音频数据的播放速度。
[0211]
在本公开的又一些实施例中,调整单元1354具体用于:
[0212]
如果预测播出时间大于第一目标播出时间,则增大主设备之中硬件驱动的当前播放采样率,以调整下一帧音频数据的播放速度。
[0213]
在本公开的一些实施例中,确定模块1340具体用于:
[0214]
确定主设备与从设备预先协商的播出响应时间;
[0215]
根据下一帧音频数据的开始时间和播出响应时间,确定下一帧音频数据的第一目标播出时间。
[0216]
此外,在本公开的一些实施例中,发送模块1320具体用于:
[0217]
在向从设备发送音频包的同时,还与从设备交互时钟信息。
[0218]
可选地,在本公开的一些实施例中,该音频播放装置还包括:
[0219]
播放模块1360,用于在当前帧音频数据播放完毕之后,播放新的下一帧音频数据。
[0220]
根据本公开实施例的音频播放装置,通过主设备对待播放的音频数据流划分为多帧音频数据,并将划分后生成的音频包发送给每个从设备,从而可以通过主设备与从设备音频数据的传输实现音频数据的同步播放。此外,主设备根据下一帧音频数据的目标播出时间,调整下一帧音频数据的播放速度,这样,可以避免由于硬件设备的差异或网络抖动等对播放速度的影响。另外,引入三次样条差值法对当前帧与下一帧音频合并后的数据进行扩充或者压缩来对播放速度进行调整,提高了音频数据的连续性,从而使调整后的音频依然能够流畅地播放,进而保证了多设备组合音频播放的立体声效果,提高了用户体验。
[0221]
针对多设备组合之中从设备,本公开实施例提出了另一种音频播放装置。
[0222]
图10是本公开实施例提出的另一种音频播放装置的结构框图。该装置应用于多设备组合之中从设备上,该多设备组合实现立体声播放的音频同步。如图10所示,该装置包括:
[0223]
接收模块1410,用于接收多设备组合之中主设备发送的多帧音频包;
[0224]
解析模块1420,用于对每帧音频包进行解析,以获得每帧音频包中的音频数据;
[0225]
获取模块1430,用于在播放当前帧音频数据之前,获取下一帧音频数据;
[0226]
确定模块1440,用于确定下一帧音频数据的第二目标播出时间;
[0227]
调整模块1450,用于根据第二目标播出时间调整下一帧音频数据的播放速度。
[0228]
在本公开的一些实施例中,调整模块1450包括:
[0229]
第一确定单元1451,用于确定从设备的当前时间;
[0230]
预测单元1452,用于根据从设备的硬件性能,预测将下一帧音频数据写入至从设备之中扬声器并被播出时的所需时间;
[0231]
第二确定单元1453,用于根据当前时间和所需时间,确定下一帧音频数据的预测播出时间;
[0232]
调整单元1454,用于响应于预测播出时间和第二目标播出时间不一致,调整下一帧音频数据的播放速度。
[0233]
在本公开的一些实施例中,调整单元1454具体用于:
[0234]
如果预测播出时间小于第二目标播出时间,则将当前帧音频数据和下一帧音频数据进行合并;
[0235]
根据预测播出时间和第二目标播出时间之间的差值,确定第三调整点数;
[0236]
基于三次样条插值法,根据第三调整点数对合并后得到的音频数据对应的采样点
进行插值,得到数据扩充后的音频数据;
[0237]
从数据扩充后的音频数据之中选取前n个插值节点对应的音频数据,作为新的当前帧音频数据,将数据扩充后的音频数据之中剩余的音频数据作为新的下一帧音频数据;其中,n的值与当前帧音频数据的采样节点个数一致。
[0238]
在本公开的另一些实施例中,调整单元1454具体用于:
[0239]
如果预测播出时间大于第二目标播出时间,则将当前帧音频数据和下一帧音频数据进行合并;
[0240]
根据预测播出时间和第二目标播出时间之间的差值,确定第四调整点数;
[0241]
基于三次样条插值法,根据第四调整点数对合并后得到的音频数据对应的采样点进行插值,得到数据压缩后的音频数据;
[0242]
从数据压缩后的音频数据之中选取前n个插值节点对应的音频数据,作为新的当前帧音频数据,将数据压缩后的音频数据之中剩余的音频数据作为新的下一帧音频数据;其中,n的值与当前帧音频数据的采样节点个数一致。
[0243]
在本公开的又一些实施例中,调整单元1454具体用于:
[0244]
如果预测播出时间小于第二目标播出时间,则根据预测播出时间和第二目标播出时间之间的差值,确定第三调整点数;
[0245]
基于线性预测编码方式,根据当前帧音频数据预测与第三调整点数对应数量的采样点数据,将预测得到的采样点数据和当前帧音频数据作为新的当前帧音频数据进行播放,以调整下一帧音频数据的播放速度。
[0246]
在本公开的又一些实施例中,调整单元1454具体用于:
[0247]
如果预测播出时间小于第二目标播出时间,则减小从设备之中硬件驱动的当前播放采样率,以调整下一帧音频数据的播放速度。
[0248]
在本公开的又一些实施例中,调整单元1454具体用于:
[0249]
如果预测播出时间大于第二目标播出时间,则增大从设备之中硬件驱动的当前播放采样率,以调整下一帧音频数据的播放速度。
[0250]
在本公开的一些实施例中,确定模块1440具体用于:
[0251]
与主设备交互时钟信息,并根据主设备的系统时钟信息计算与主设备的系统时钟差异;
[0252]
确定主设备与从设备预先协商的播出响应时间;
[0253]
根据下一帧音频数据的开始时间、播出响应时间和系统时钟差异,确定下一帧音频数据的第二目标播出时间。
[0254]
此外,在本公开的一些实施例中,该装置还包括:
[0255]
播放模块1460,用于在新的当前帧音频数据播放完毕之后,播放新的下一帧音频数据。
[0256]
根据本公开实施例提出的音频播放装置,通过从设备对主设备发送的多帧音频数据的接收及解析,得到每帧音频包对应的音频数据,并根据播出时间对音频数据进行播放,从而可以实现主设备与从设备音频数据的同步播放。另外,从设备根据下一帧音频数据的目标播出时间,调整下一帧音频数据的播放速度,这样,可以避免由于硬件设备的差异或网络抖动等对播放速度的影响。此外,针对预测播出时间与目标播出时间不一致的情况,引入
三次样条差值法对当前帧与下一帧音频合并后的数据进行扩充或者压缩来对播放速度进行调整,提高了音频数据的连续性,从而使调整后的音频依然能够流畅地播放,进而保证了多设备组合音频播放的立体声效果,提高了用户体验。
[0257]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0258]
图15是根据一示例性实施例示出的一种用于音频播放的装置1500的框图。例如,装置1500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,音箱设备,个人数字助理等。
[0259]
参照图15,装置1500可以包括以下一个或多个组件:处理组件1502,存储器1504,电力组件1506,多媒体组件1508,音频组件1510,输入/输出(i/o)的接口1512,传感器组件1514,以及通信组件1516。
[0260]
处理组件1502通常控制装置1500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1502可以包括一个或多个处理器1520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1502可以包括一个或多个模块,便于处理组件1502和其他组件之间的交互。例如,处理组件1502可以包括多媒体模块,以方便多媒体组件1508和处理组件1502之间的交互。
[0261]
存储器1504被配置为存储各种类型的数据以支持在设备1500的操作。这些数据的示例包括用于在装置1500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0262]
电力组件1506为装置1500的各种组件提供电力。电力组件1506可以包括电源管理系统,一个或多个电源,及其他与为装置1500生成、管理和分配电力相关联的组件。
[0263]
多媒体组件1508包括在所述装置1500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1508包括一个前置摄像头和/或后置摄像头。当设备1500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0264]
音频组件1510被配置为输出和/或输入音频信号。例如,音频组件1510包括一个麦克风(mic),当装置1500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1504或经由通信组件1516发送。在一些实施例中,音频组件1510还包括一个扬声器,用于输出音频信号。
[0265]
i/o接口1512为处理组件1502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0266]
传感器组件1514包括一个或多个传感器,用于为装置1500提供各个方面的状态评估。例如,传感器组件1514可以检测到设备1500的打开/关闭状态,组件的相对定位,例如所述组件为装置1500的显示器和小键盘,传感器组件1514还可以检测装置1500或装置1500一个组件的位置改变,用户与装置1500接触的存在或不存在,装置1500方位或加速/减速和装置1500的温度变化。传感器组件1514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1514还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0267]
通信组件1516被配置为便于装置1500和其他设备之间有线或无线方式的通信。装置1500可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件1516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1516还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0268]
在示例性实施例中,装置1500可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
[0269]
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1504,上述指令可由装置1500的处理器1520执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd

rom、磁带、软盘和光数据存储设备等。
[0270]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本技术旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0271]
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜