具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一个实施例提供的数据合成方法的方法流程图,该数据合成方法可以应用于终端中,该终端可以是智能电视、智能手机或者平板电脑等等。该数据合成方法,包括:
步骤101,在第一时刻,调用播放功能和录音功能;
终端可以在接收到用户发送的播放指令后调用播放功能,也可以自动调用播放功能,本实施例不对终端调用播放功能的方式作限定。同样,终端可以在接收到用户发送的录音指令后调用录音功能,也可以自动调用录音功能,本实施例不对终端调用录音功能的方式作限定。
本实施例中,终端需要同时调用播放功能和录音功能,并将终端调用播放功能和录音功能的时刻作为第一时刻进行记录。
步骤102,在第一时刻之后的预定时刻,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分;
终端可以预先设置预定时长,则可以从第一时刻开始计时,将计时达到该预定时长的时刻确定为预定时刻,并在该预定时刻时,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分。
终端在对播放数据进行播放时,会实时记录当前时刻已经播放完成的播放数据片段的第一数据长度,则终端可以直接读取该第一数据长度。
终端在录音时,可以将录音得到的录音数据写入录音缓冲区,当录音缓冲区中录音数据的长度达到预设长度后,终端将该录音数据读出录音缓冲区,并在读取录音数据时实时记录当前时刻已经读取出的录音数据的第二数据长度,终端可以直接读取该第二数据长度。
步骤103,根据第一数据长度和第二数据长度计算时延差,该时延差为播放时延与录音时延的时间差值;
由于第一数据长度和第二数据长度均与时间呈正相关关系,因此,终端可以根据第一数据长度和第二数据长度计算播放功能的播放时间和录音功能的录音时间。由于终端同时调用播放功能和录音功能,因此,终端可以根据该播放时间和录音时间计算出播放时延与录音时延之间的时延差。
步骤104,根据第一时刻和时延差合成播放数据和录音数据。
终端在计算出时延差后,可以根据记录的第一时刻和该时延差确定播放数据和录音数据开始合成的时刻,从而对播放数据和录音数据进行合成。
综上所述,本发明实施例提供的数据合成方法,通过在第一时刻,调用播放功能和录音功能;在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度;根据所述第一数据长度和所述第二数据长度计算时延差;根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。
请参考图2A,其示出了本发明另一实施例提供的数据合成方法的方法流程图,该数据合成方法可以应用于终端中,该终端可以是智能电视、智能手机或者平板电脑等等。该数据合成方法,包括:
步骤201,在第一时刻,调用播放功能和录音功能;
终端可以在接收到用户发送的播放指令后调用播放功能,也可以自动调用播放功能,本实施例不对终端调用播放功能的方式作限定。同样,终端可以在接收到用户发送的录音指令后调用录音功能,也可以自动调用录音功能,本实施例不对终端调用录音功能的方式作限定。
本实施例中,终端需要同时调用播放功能和录音功能,并将终端调用播放功能和录音功能的时刻作为第一时刻进行记录。
步骤202,在第一时刻之后的预定时刻,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分;
终端可以预先设置预定时长,则可以从第一时刻开始计时,将计时达到该预定时长的时刻确定为预定时刻,并在该预定时刻时,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分。其中,该预设时长可以是任意时长,比如,2s、5s或8s等。
终端在对播放数据进行播放时,会实时记录当前时刻已经播放完成的播放数据片段的第一数据长度,则终端可以直接读取该第一数据长度。
终端在录音时,可以将录音得到的录音数据写入录音缓冲区,当录音缓冲区中录音数据的长度达到预设长度后,终端将该录音数据读出录音缓冲区,并在读取录音数据时实时记录当前时刻已经读取出的录音数据的第二数据长度,终端可以直接读取该第二数据长度。
步骤203,获取对播放数据或录音数据进行采样的采样率、采样精度和通道数,播放数据的采样率、采样精度和通道数分别与录音数据的采样率、采样精度和通道数相同;
其中,采样率是每秒采样的采样数据个数,单位是Hz(赫兹),比如,采样率为44.1kHz/s,则终端每秒采样44.1*1000个采样数据。采样精度是每个采样数据占用的字节,比如,PCM(Pulse-Code Modulation,脉冲编码调制)8表示每个采样数据占用1个字节;PCM16表示每个采样数据占用2个字节。通道数是指单通道或双通道。
由于播放数据的头信息中包括该播放数据的采样率、采样精度和通道数,因此,终端可以直接读取到该采样率、采样精度和通道数。进一步地,在终端调用录音功能时,可以对录音数据的头信息中的采样率、采样精度和通道数等参数进行设置。若将录音数据的采样率、采样精度和通道数中任意一个参数设置为与播放数据不同的采样率、采样精度和通道数,则合成播放数据和录音数据时的合成效果很差,因此,通常将录音数据的采样率、采样精度和通道数分别设置为与播放数据相同的采样率、采样精度和通道数,则终端也可以读取录音数据的头信息中的采样率、采样精度和通道数。或者,终端还可以读取播放数据的采样率、采样精度和通道数,以及录音数据的采样率、采样精度和通道数,由于播放数据的采样率、采样精度和通道数分别与录音数据的采样率、采样精度和通道数相同,因此,终端可以在播放数据的采样率和录音数据的采样率中任意选择一个作为采样率,同样的,终端可以选择出采样精度和通道数,本实施例不对终端获取采样率、采样精度和通道数的方式作限定。
步骤204,计算第一数据长度减去第二数据长度的长度差值,并计算采样率、采样精度和通道数的乘积;
终端可以将第一数据长度减去第二数据长度,得到长度差值,该长度差值的单位为字节。另外,终端可以计算采样率、采样精度和通道数的乘积,该乘积的单位是字节/秒。本实施例不限定终端计算第一数据长度减去第二数据长度的长度差值的步骤和计算采样率、采样精度和通道数的乘积的执行顺序。
优选地,为了避免根据单次长度差值计算时延差造成的计算误差较大,使得数据合成不同步的问题,终端可以设置至少两个预定时刻,并根据该至少两个预定时刻的长度差值计算时延差。该预定时刻可以是第一时刻后间隔任意时长的一个时刻。
进一步地,若在预定时刻时,录音缓冲区内的录音数据的长度未达到预设长度,则终端当前读取的第二数据长度是前一个预定时刻时读取的第二数据长度,而当前读取的第二数据长度加上录音缓冲区内的数据长度才是真实的录音数据片段的数据长度,从而使得第二数据长度小于真实的录音数据的数据长度,造成第二数据长度的读取误差。
由于录音缓冲区的读取周期固定,若终端将预定时长设置为合数,则可能多次读取的第二数据长度存在误差,不利于数据的合成。比如,读取周期为3s,若预设时长为2s的倍数,如2s、4s和6s等,则每读取的三个第二数据长度中有两个第二数据长度存在误差。因此,优选地,终端可以将预定时长设置为素数,即2s、3s、5s、7s、11s和13s等,以减小误差的影响。
对于上述的每个预定时刻,终端可以在该预定时刻时获取到第一数据长度和第二数据长度,并将第一数据长度减去第二数据长度,得到与每个预定时刻对应的长度差值。因此,若预定时刻至少为两个且每个预定时刻对应于一个长度差值,则计算第一数据长度减去第二数据长度的长度差值,并计算采样率、采样精度和通道数的乘积之后,还可以包括:根据所有长度差值计算样本长度差值。
终端根据所有长度差值计算样本长度差值的方法有很多种。比如,终端可以获取所有长度差值中出现次数最多的长度差值,将该长度差值确定为样本长度差值。或者,终端可以获取所有长度差值中出现次数最多的长度差值以及长度差值的第一出现次数,检测该第一出现次数是否满足第一预设条件,若检测到第一出现次数满足第一预设条件,则将长度差值确定为样本长度差值。或者,终端可以计算所有长度差值的平均值,将该平均值确定为样本长度差值等。
请参考图2B所示的计算样本长度差值的方法的方法流程图,在图2B中,根据所有长度差值计算样本长度差值,可以包括如下几个子步骤:
204a,获取所有长度差值中出现次数最多的长度差值以及长度差值的第一出现次数;
204b,检测第一出现次数是否满足第一预设条件;
204c,若检测到第一出现次数满足第一预设条件,则将长度差值确定为样本长度差值;
204d,若检测到第一出现次数不满足第一预设条件,则计算所有长度差值的平均值,将平均值确定为样本长度差值;
第一预设条件可以包括第一出现次数超过第一阈值、第一出现次数与所有长度差值的个数的比值超过第二阈值中的至少一种。
比如,终端计算得到的所有长度差值为{50,40,50,50,50},则出现次数最多的长度差值为50且第一出现次数为4次。终端检测第一出现次数是否满足第一预设条件,若检测到第一出现次数满足第一预设条件,则将50作为样本长度差值;若检测到第一出现次数不满足第一预设条件,则计算所有长度差值的平均值为48,将48作为样本长度差值。
其中,若第一阈值为3,则第一出现次数4大于第一阈值3,则第一出现次数满足第一预设条件。或者,若第二阈值为0.7,则第一出现次数4与所有长度差值的个数5的比值0.8大于第二阈值0.7,则第一出现次数满足第一预设条件。或者,若第一出现次数4大于第一阈值3且第一出现次数4与所有长度差值的个数5的比值0.8大于第二阈值0.7,则第一出现次数满足第一预设条件。其中,第一阈值和第二阈值可以设置和修改,本实施例不作限定。
步骤205,将长度差值除以该乘积,得到时延差,该时延差为播放时延与录音时延的时间差值;
若终端设置了一个预定时刻,则可以根据计算得到的长度差值计算时延差。若终端设置了至少两个预定时刻,则可以得到根据至少两个长度差值计算得到的样本长度差值,则将长度差值除以乘积,得到时延差,可以包括:将样本长度差值除以乘积,得到时延差。
步骤206,根据第一时刻和时延差合成播放数据和录音数据。
终端在计算出时延差后,可以根据记录的第一时刻和该时延差确定播放数据和录音数据开始合成的时刻,从而对播放数据和录音数据进行合成。
其中,根据第一时刻和时延差对播放数据和录音数据进行合成,可以包括:
将在第一时刻之后,间隔与时延差对应的时长所得到的时刻确定为第二时刻;
将从第一时刻开始的录音数据与从第二时刻开始的播放数据对齐,合成录音数据和播放数据。
比如,第一时刻为0s且时延差为0.1s,则终端可以确定第二时刻为0.1s,并将从0s开始的录音数据与从0.1s开始的播放数据对齐,进行播放数据和录音数据的合成。
综上所述,本发明实施例提供的数据合成方法,通过在第一时刻,调用播放功能和录音功能;在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度;根据所述第一数据长度和所述第二数据长度计算时延差;根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。另外,通过根据所有长度差值计算样本长度差值,将样本长度差值除以乘积,得到时延差,解决了根据单次长度差值计算时延差造成的计算误差较大,使得数据合成不同步的问题,达到了提高数据合成的同步性的效果。
请参考图3A,其示出了本发明又一实施例提供的数据合成方法的方法流程图,该数据合成方法可以应用于终端中,该终端可以是智能电视、智能手机或者平板电脑等等。该数据合成方法,包括:
步骤301,在第一时刻,调用播放功能和录音功能;
本实施例中,终端需要同时调用播放功能和录音功能,并将终端调用播放功能和录音功能的时刻作为第一时刻进行记录。其中,终端调用播放功能和录音功能的方式详见步骤201中的描述,此处不赘述。
步骤302,在第一时刻之后的预定时刻,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分;
终端确定预定时刻的流程、获取调用播放功能后已经播放完成的播放数据片段的第一数据长度的流程以及获取调用录音功能后已经读取出的录音数据片段的第二数据长度的流程详见步骤202中的描述,此处不赘述。
步骤303,根据第一数据长度和第二数据长度计算时延差,该时延差为播放时延与录音时延的时间差值;
由于第一数据长度和第二数据长度均与时间呈正相关关系,因此,终端可以根据第一数据长度和第二数据长度计算播放功能的播放时间和录音功能的录音时间。由于终端同时调用播放功能和录音功能,因此,终端可以根据该播放时间和录音时间计算出播放时延与录音时延的时延差。
本实施例中,终端根据第一数据长度和第二数据长度计算时延差,可以包括:
获取对播放数据或录音数据进行采样的采样率、采样精度和通道数,播放数据的采样率、采样精度和通道数分别与录音数据的采样率、采样精度和通道数相同;
计算第一数据长度减去第二数据长度的长度差值,并计算采样率、采样精度和通道数的乘积;
将长度差值除以该乘积,得到时延差。
首先,终端获取采样率、采样精度和通道数,获取方式详见步骤203中的描述。其次,终端将第一数据长度减去第二数据长度,得到长度差值,该长度差值的单位为字节。另外,终端可以计算采样率、采样精度和通道数的乘积,该乘积的单位是字节/秒。本实施例不限定终端计算第一数据长度减去第二数据长度的长度差值的步骤和计算采样率、采样精度和通道数的乘积的执行顺序。最后,终端将长度差值除以乘积,得到时延差。
步骤304,若预定时刻至少为两个且每个预定时刻对应于一个时延差,则根据所有时延差计算样本时延差;
本实施例中,步骤304为可选步骤。即若终端只设置了一个预定时刻,则终端在执行完步骤303后,根据第一时刻和时延差合成播放数据和录音数据,流程结束;若终端设置了至少两个预定时刻,则终端执行步骤304。其中,终端根据第一时刻和时延差合成播放数据和录音数据的流程详见步骤206中的描述,此处不赘述。
为了避免单次计算得到的时延差误差较大,使得数据合成不同步的问题,终端可以设置至少两个预定时刻,并根据该至少两个预定时刻的时延差进行数据合成。该预定时刻可以是第一时刻后间隔任意时长的一个时刻。优选地,终端可以将预定时长设置为素数,即2s、3s、5s、7s、11s和13s等,以减小误差的影响,详见步骤204中的描述。
终端根据所述时延差计算样本时延差的方法有很多种。比如,终端可以获取所有时延差中出现次数最多的时延差,将该时延差确定为样本时延差。或者,终端可以获取所有时延差中出现次数最多的时延差以及时延差的第二出现次数,检测该第二出现次数是否满足第二预设条件,若检测到第二出现次数满足第二预设条件,则将时延差确定为样本时延差。或者,终端可以计算所有时延差的平均值,将该平均值确定为样本时延差等。
请参考图3B所示的计算样本时延差的方法的方法流程图,在图3B中,根据所有时延差计算样本时延差,可以包括如下几个子步骤:
304a,获取所有时延差中出现次数最多的时延差以及时延差的第二出现次数;
304b,检测第二出现次数是否满足第二预设条件;
304c,若检测到第二出现次数满足第二预设条件,则将时延差确定为样本时延差;
304d,若检测到第二出现次数不满足第二预设条件,则计算所有时延差的平均值,将平均值确定为样本时延差;
第二预设条件可以包括第二出现次数超过第三阈值、第二出现次数与所有时延差的个数的比值超过第四阈值中的至少一种。
比如,终端计算得到的所有时延差为{0.1,0.2,0.1,0.1,0.1},则出现次数最多的时延差为0.1且第二出现次数为4次。终端检测第二出现次数是否满足第二预设条件,若检测到第二出现次数满足第二预设条件,则将0.1作为样本时延差;若检测到第二出现次数不满足第二预设条件,则计算所有时延差的平均值为0.12,将0.12作为样本时延差。
其中,若第三阈值为3,则第二出现次数4大于第三阈值3,则第二出现次数满足第二预设条件。或者,若第四阈值为0.7,则第二出现次数4与所有时延差的个数5的比值0.8大于第四阈值0.7,则第二出现次数满足第二预设条件。或者,若第二出现次数4大于第三阈值3且第二出现次数4与所有时延差的个数5的比值0.8大于第四阈值0.7,则第二出现次数满足第二预设条件。其中,第三阈值和第四阈值可以设置和修改,本实施例不作限定。
步骤305,根据第一时刻和样本时延差合成播放数据和录音数据。
终端在计算出样本时延差后,可以根据记录的第一时刻和该样本时延差确定播放数据和录音数据开始合成的时刻,从而对播放数据和录音数据进行合成。
根据第一时刻和样本时延差对播放数据和录音数据进行合成,可以包括:
将在第一时刻之后,间隔与样本时延差对应的时长所得到的时刻确定为第三时刻;
将从第一时刻开始的录音数据与从第三时刻开始的播放数据对齐,合成录音数据和播放数据。
比如,第一时刻为0s且样本时延差为0.1s,则终端可以确定第三时刻为0.1s,并将从0s开始的录音数据与从0.1s开始的播放数据对齐,进行播放数据和录音数据的合成。
综上所述,本发明实施例提供的数据合成方法,通过在第一时刻,调用播放功能和录音功能;在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度;根据所述第一数据长度和所述第二数据长度计算时延差;根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。另外,通过根据所有时延差计算样本时延差,根据第一时刻和样本时延差合成播放数据和录音数据,解决了单次计算得到的时延差误差较大,使得数据合成不同步的问题,达到了提高数据合成的同步性的效果。
请参考图4,其示出了本发明再一实施例提供的数据合成装置的结构框架图,该数据合成装置可以应用于终端中,该终端可以是智能电视、智能手机或者平板电脑等等。该数据合成装置,包括:
调用模块410,用于在第一时刻,调用播放功能和录音功能;
获取模块420,用于在第一时刻之后的预定时刻,获取调用模块410调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用模块410调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分;
第一计算模块430,用于根据获取模块420获取到的第一数据长度和第二数据长度计算时延差,该时延差为播放时延与录音时延的时间差值;
合成模块440,用于根据第一时刻和第一计算模块430计算得到的时延差合成播放数据和录音数据。
综上所述,本发明实施例提供的数据合成装置,通过在第一时刻,调用播放功能和录音功能;在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度;根据所述第一数据长度和所述第二数据长度计算时延差;根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。
请参考图5,其示出了本发明又一实施例提供的数据合成装置的结构框架图,该数据合成装置可以应用于终端中,该终端可以是智能电视、智能手机或者平板电脑等等。该数据合成装置,包括:调用模块410、获取模块420、第一计算模块430和合成模块440。
调用模块410,用于在第一时刻,调用播放功能和录音功能;
获取模块420,用于在第一时刻之后的预定时刻,获取调用模块410调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用模块410调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分;
第一计算模块430,用于根据获取模块420获取到的第一数据长度和第二数据长度计算时延差,该时延差为播放时延与录音时延的时间差值;
合成模块440,用于根据第一时刻和第一计算模块430计算得到的时延差合成播放数据和录音数据。
进一步地,第一计算模430块,可以包括:
第一获取单元431,用于获取对播放数据或录音数据进行采样的采样率、采样精度和通道数,播放数据的采样率、采样精度和通道数分别与录音数据的采样率、采样精度和通道数相同;
第一计算单元432,用于计算第一数据长度减去第二数据长度的长度差值,并计算第一获取单元431获取到的采样率、采样精度和通道数的乘积;
第二计算单元433,用于将第一计算单元432计算得到的长度差值除以乘积,得到时延差。
进一步地,若预定时刻至少为两个且每个预定时刻对应于一个长度差值,则第一计算模块430,还可以包括:
第三计算单元434,用于第一计算单元432计算第一数据长度减去第二数据长度的长度差值,并计算采样率、采样精度和通道数的乘积之后,根据所有长度差值计算样本长度差值;
第二计算单元433,用于将第三计算单元434计算得到的样本长度差值除以乘积,得到时延差。
进一步地,第三计算单元434,可以包括:
获取子单元434A,用于获取所有长度差值中出现次数最多的长度差值以及长度差值的第一出现次数;
检测子单元434B,用于检测获取子单元434A获取到的第一出现次数是否满足第一预设条件;
第一确定子单元434C,用于在检测子单元434B检测到第一出现次数满足第一预设条件时,将长度差值确定为样本长度差值;
第二确定子单元434D,用于在检测子单元434B检测到第一出现次数不满足第一预设条件时,计算所有长度差值的平均值,将平均值确定为样本长度差值;
第一预设条件包括第一出现次数超过第一阈值、第一出现次数与所有长度差值的个数的比值超过第二阈值中的至少一种。
进一步地,合成模块440,可以包括:
第一确定单元441,用于将在第一时刻之后,间隔与时延差对应的时长所得到的时刻确定为第二时刻;
第一合成单元442,用于将从第一时刻开始的录音数据与从第一确定单元441确定的第二时刻开始的播放数据对齐,合成录音数据和播放数据。
综上所述,本发明实施例提供的数据合成装置,通过在第一时刻,调用播放功能和录音功能;在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度;根据所述第一数据长度和所述第二数据长度计算时延差;根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。另外,通过根据所有长度差值计算样本长度差值,将样本长度差值除以乘积,得到时延差,解决了根据单次长度差值计算时延差造成的计算误差较大,使得数据合成不同步的问题,达到了提高数据合成的同步性的效果。
请参考图6,其示出了本发明再一实施例提供的数据合成装置的结构框架图,该数据合成装置可以应用于终端中,该终端可以是智能电视、智能手机或者平板电脑等等。该数据合成装置,包括:调用模块410、获取模块420、第一计算模块430和合成模块440。
调用模块410,用于在第一时刻,调用播放功能和录音功能;
获取模块420,用于在第一时刻之后的预定时刻,获取调用模块410调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用模块410调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分;
第一计算模块430,用于根据获取模块420获取到的第一数据长度和第二数据长度计算时延差,该时延差为播放时延与录音时延的时间差值;
合成模块440,用于根据第一时刻和第一计算模块430计算得到的时延差合成播放数据和录音数据。
进一步地,若预定时刻至少为两个且每个预定时刻对应于一个时延差,则该装置,还可以包括:
第二计算模块450,用于第一计算模块根据第一数据长度和第二数据长度计算时延差之后,根据所有时延差计算样本时延差;
合成模块440,用于根据第一时刻和第二计算模块450计算得到的样本时延差合成播放数据和录音数据。
进一步地,第二计算模块450,可以包括:
第二获取单元451,用于获取所有时延差中出现次数最多的时延差以及时延差的第二出现次数;
检测单元452,用于检测第二获取单元451获取到的第二出现次数是否满足第二预设条件;
第二确定单元453,用于在检测单元452检测到第二出现次数满足第二预设条件时,将时延差确定为样本时延差;
第三确定单元454,用于在检测单元452检测到第二出现次数不满足第二预设条件时,计算所有时延差的平均值,将平均值确定为样本时延差;
第二预设条件包括第二出现次数超过第三阈值、第二出现次数与所有时延差的个数的比值超过第四阈值中的至少一种。
进一步地,合成模块440,可以包括:
第四确定单元443,用于将在第一时刻之后,间隔与样本时延差对应的时长所得到的时刻确定为第三时刻;
第二合成单元444,用于将从第一时刻开始的录音数据与从第四确定单元443确定的第三时刻开始的播放数据对齐,合成录音数据和播放数据。
综上所述,本发明实施例提供的数据合成装置,通过在第一时刻,调用播放功能和录音功能;在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度;根据所述第一数据长度和所述第二数据长度计算时延差;根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。另外,通过根据所有时延差计算样本时延差,根据第一时刻和样本时延差合成播放数据和录音数据,解决了单次计算得到的时延差误差较大,使得数据合成不同步的问题,达到了提高数据合成的同步性的效果。
请参考图7,其示出了本发明又一实施例提供的终端的结构方框图。该终端用于实施上述实施例中提供的数据合成方法。本发明实施例中的终端可以包括一个或多个如下组成部分:用于执行计算机程序指令以完成各种流程和方法的处理器,用于信息和存储程序指令随机接入存储器(RAM)和只读存储器(ROM),用于存储数据和信息的存储器,用于存储表格、目录或其他数据结构的数据库,I/O设备,界面,天线等。具体来讲:
终端700可以包括RF(Radio Frequency,射频)电路710、包括有一个或多个计算机可读存储介质的存储器720、输入单元730、显示单元740、传感器750、音频电路760、短距离无线传输模块770、包括有一个或者多个处理核心的处理器780、以及电源790等部件。本领域技术人员可以理解,图7中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者多个处理器780处理;另外,将涉及上行的数据发送给基站。通常,RF电路710包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路710还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband CodeDivision Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器720可用于存储软件程序以及模块。处理器780通过运行存储在存储器720的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端700的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器720还可以包括存储器控制器,以提供处理器780和输入单元730对存储器720的访问。
输入单元730可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元730可包括触敏表面731以及其他输入设备732。触敏表面731,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面731上或在触敏表面731附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器780,并能接收处理器780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面731。除了触敏表面731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元740可用于显示由用户输入的信息或提供给用户的信息以及终端700的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元740可包括显示面板741,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板741。进一步的,触敏表面731可覆盖在显示面板741之上,当触敏表面731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图7中,触敏表面731与显示面板741是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面731与显示面板741集成而实现输入和输出功能。
终端700还可包括至少一种传感器750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在终端700移动到耳边时,关闭显示面板741和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端700还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路760、扬声器761,传声器762可提供用户与终端700之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经RF电路710以发送给另一终端,或者将音频数据输出至存储器720以便进一步处理。音频电路760还可能包括耳塞插孔,以提供外设耳机与终端700的通信。
短距离无线传输模块770可以是WIFI(wireless fidelity,无线保真)模块或者蓝牙模块等。终端700通过短距离无线传输模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了短距离无线传输模块770,但是可以理解的是,其并不属于终端700的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器780是终端700的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行终端700的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器780可包括一个或多个处理核心;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。
终端700还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源790还可以包括一个或多个的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端700还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端700的显示单元是触摸屏显示器。
终端700除了包括一个或者多个处理器780,还包括有存储器,以及一个或者多个模块,其中一个或者多个模块存储于存储器中,并被配置成由一个或者多个处理器执行。上述一个或者多个模块具有如下功能:
在第一时刻,调用播放功能和录音功能;
在第一时刻之后的预定时刻,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,播放数据片段为播放数据的一部分,录音数据片段为录音数据的一部分;
根据第一数据长度和第二数据长度计算时延差,时延差为播放时延与录音时延的时间差值;
根据第一时刻和时延差合成播放数据和录音数据。
进一步地,根据第一数据长度和第二数据长度计算时延差,包括:
获取对播放数据或录音数据进行采样的采样率、采样精度和通道数,播放数据的采样率、采样精度和通道数分别与录音数据的采样率、采样精度和通道数相同;
计算第一数据长度减去第二数据长度的长度差值,并计算采样率、采样精度和通道数的乘积;
将长度差值除以乘积,得到时延差。
优选地,若预定时刻至少为两个且每个预定时刻对应于一个长度差值,则计算第一数据长度减去第二数据长度的长度差值,并计算采样率、采样精度和通道数的乘积之后,还包括:
根据所有长度差值计算样本长度差值;
将长度差值除以乘积,得到时延差,包括:
将样本长度差值除以乘积,得到时延差。
进一步地,根据所有长度差值计算样本长度差值,包括:
获取所有长度差值中出现次数最多的长度差值以及长度差值的第一出现次数;
检测第一出现次数是否满足第一预设条件;
若检测到第一出现次数满足第一预设条件,则将长度差值确定为样本长度差值;
若检测到第一出现次数不满足第一预设条件,则计算所有长度差值的平均值,将平均值确定为样本长度差值;
第一预设条件包括第一出现次数超过第一阈值、第一出现次数与所有长度差值的个数的比值超过第二阈值中的至少一种。
进一步地,根据第一时刻和时延差对播放数据和录音数据进行合成,包括:
将在第一时刻之后,间隔与时延差对应的时长所得到的时刻确定为第二时刻;
将从第一时刻开始的录音数据与从第二时刻开始的播放数据对齐,合成录音数据和播放数据。
优选地,若预定时刻至少为两个且每个预定时刻对应于一个时延差,则根据第一数据长度和第二数据长度计算时延差之后,还包括:
根据所有时延差计算样本时延差;
根据第一时刻和时延差合成播放数据和录音数据,包括:
根据第一时刻和样本时延差合成播放数据和录音数据。
进一步地,根据所有时延差计算样本时延差,包括:
获取所有时延差中出现次数最多的时延差以及时延差的第二出现次数;
检测第二出现次数是否满足第二预设条件;
若检测到第二出现次数满足第二预设条件,则将时延差确定为样本时延差;
若检测到第二出现次数不满足第二预设条件,则计算所有时延差的平均值,将平均值确定为样本时延差;
第二预设条件包括第二出现次数超过第三阈值、第二出现次数与所有时延差的个数的比值超过第四阈值中的至少一种。
进一步地,根据第一时刻和样本时延差对播放数据和录音数据进行合成,包括:
将在第一时刻之后,间隔与样本时延差对应的时长所得到的时刻确定为第三时刻;
将从第一时刻开始的录音数据与从第三时刻开始的播放数据对齐,合成录音数据和播放数据。
综上所述,本发明实施例提供的终端,通过在第一时刻,调用播放功能和录音功能;在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度;根据所述第一数据长度和所述第二数据长度计算时延差;根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。另外,通过根据所有长度差值计算样本长度差值,将样本长度差值除以乘积,得到时延差,解决了根据单次长度差值计算时延差造成的计算误差较大,使得数据合成不同步的问题,达到了提高数据合成的同步性的效果。
需要说明的是:上述实施例提供的数据合成装置在进行数据合成时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将数据合成装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据合成装置与数据合成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。