CN103345930B - 数据合成方法、装置及终端 - Google Patents

数据合成方法、装置及终端 Download PDF

Info

Publication number
CN103345930B
CN103345930B CN201310234615.6A CN201310234615A CN103345930B CN 103345930 B CN103345930 B CN 103345930B CN 201310234615 A CN201310234615 A CN 201310234615A CN 103345930 B CN103345930 B CN 103345930B
Authority
CN
China
Prior art keywords
data
moment
length
recording
delay
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
CN201310234615.6A
Other languages
English (en)
Other versions
CN103345930A (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.)
Xiaomi Inc
Original Assignee
Xiaomi Inc
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 Xiaomi Inc filed Critical Xiaomi Inc
Priority to CN201310234615.6A priority Critical patent/CN103345930B/zh
Publication of CN103345930A publication Critical patent/CN103345930A/zh
Application granted granted Critical
Publication of CN103345930B publication Critical patent/CN103345930B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种数据合成方法、装置及终端,属于计算机技术领域。所述方法用于终端中,包括:在第一时刻,调用播放功能和录音功能;在第一时刻之后的预定时刻,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度;根据第一数据长度和第二数据长度计算时延差;根据第一时刻和时延差合成播放数据和录音数据。所述装置包括:调用模块、获取模块、第一计算模块和合成模块。本发明解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。

Description

数据合成方法、装置及终端
技术领域
本发明涉及计算机技术领域,特别涉及一种数据合成方法、装置及终端。
背景技术
随着终端技术的发展,终端支持的功能越来越多,比如,播放功能和录音功能等,丰富了用户的生活。如果将播放功能和录音功能结合,即在播放歌曲的同时对用户的演唱进行录音,并对播放的歌曲与用户的演唱进行合成,则可以通过终端进行K歌等娱乐活动。
终端调用播放功能时,由于终端需要将播放歌曲作为播放数据写入播放端口,再读取播放端口的播放数据进行播放。因此,从终端调用播放功能到终端播放出声音存在时延,该时延由硬件延迟造成,一般在30毫秒至200毫秒之间。同样,终端调用录音功能时,由于终端需要对录音进行处理后得到录音数据,并将该录音数据写入录音缓冲区,在写入录音缓冲区的录音数据的长度达到预设长度后,将该录音数据读出录音缓冲区。因此,从终端调用录音功能到获取到录音数据也存在时延,该时延也是由硬件延迟造成的,一般在30毫秒至300毫秒之间。通常,录音时延大于播放时延,因此,录音时延与播放时延之间存在时延差。即使终端同时调用播放功能和录音功能,得到的播放数据和录音数据也不会同步。
为了解决得到的播放数据与录音数据不同步的问题,终端可以对调用播放功能和录音功能的时刻进行调整,从而避免了时延差的影响,实现播放与录音的同步。由于终端的硬件不同,使得不同终端的时延差不同,因此,用户需要对终端进行大量测试,从而估算出该终端的时延差,并根据该时延差调用播放功能和录音功能。比如,终端在第一时刻调用录音功能;在第一时刻之后,间隔与时延差对应的时长的第二时刻,终端调用播放功能;在得到录音数据和播放数据后,将从第一时刻开始的录音数据和从第二时刻开始的播放数据对齐,合成该播放数据和录音数据。
用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本。
发明内容
为了解决用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,本发明实施例提供了一种数据合成方法、装置及终端。所述技术方案如下:
一方面,本发明实施例提供了一种数据合成方法,用于终端中,所述方法包括:
在第一时刻,调用播放功能和录音功能;
在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度,所述播放数据片段为播放数据的一部分,所述录音数据片段为录音数据的一部分;
根据所述第一数据长度和所述第二数据长度计算时延差,所述时延差为播放时延与录音时延的时间差值;
根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据;
所述根据所述第一数据长度和所述第二数据长度计算时延差,包括:
获取对所述播放数据或所述录音数据进行采样的采样率、采样精度和通道数,所述播放数据的采样率、采样精度和通道数分别与所述录音数据的采样率、采样精度和通道数相同;
计算所述第一数据长度减去所述第二数据长度的长度差值,并计算所述采样率、采样精度和通道数的乘积;
将所述长度差值除以所述乘积,得到所述时延差。
另一方面,本发明实施例提供了一种数据合成装置,用于终端中,所述装置包括:
调用模块,用于在第一时刻,调用播放功能和录音功能;
获取模块,用于在所述第一时刻之后的预定时刻,获取所述调用模块调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及所述调用模块调用所述录音功能后已经读取出的录音数据片段的第二数据长度,所述播放数据片段为播放数据的一部分,所述录音数据片段为录音数据的一部分;
第一计算模块,用于根据所述获取模块获取到的所述第一数据长度和所述第二数据长度计算时延差,所述时延差为播放时延与录音时延的时间差值;
合成模块,用于根据所述第一时刻和所述第一计算模块计算得到的所述时延差合成所述播放数据和所述录音数据;
所述第一计算模块,包括:
第一获取单元,用于获取对所述播放数据或所述录音数据进行采样的采样率、采样精度和通道数,所述播放数据的采样率、采样精度和通道数分别与所述录音数据的采样率、采样精度和通道数相同;
第一计算单元,用于计算所述第一数据长度减去所述第二数据长度的长度差值,并计算所述第一获取单元获取到的所述采样率、采样精度和通道数的乘积;
第二计算单元,用于将所述第一计算单元计算得到的所述长度差值除以所述乘积,得到所述时延差。
再一方面,本发明实施例提供了一种终端,所述终端包括如上所述的数据合成装置。
又一方面,本发明实施例提供了一种终端,所述终端包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
在第一时刻,调用播放功能和录音功能;
在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度,所述播放数据片段为播放数据的一部分,所述录音数据片段为录音数据的一部分;
根据所述第一数据长度和所述第二数据长度计算时延差,所述时延差为播放时延与录音时延的时间差值;
根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据;
所述根据所述第一数据长度和所述第二数据长度计算时延差,包括:
获取对所述播放数据或所述录音数据进行采样的采样率、采样精度和通道数,所述播放数据的采样率、采样精度和通道数分别与所述录音数据的采样率、采样精度和通道数相同;
计算所述第一数据长度减去所述第二数据长度的长度差值,并计算所述采样率、采样精度和通道数的乘积;
将所述长度差值除以所述乘积,得到所述时延差。
通过在第一时刻,调用播放功能和录音功能;在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度;根据所述第一数据长度和所述第二数据长度计算时延差;根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的数据合成方法的方法流程图;
图2A是本发明另一实施例提供的数据合成方法的方法流程图;
图2B是本发明实施例所涉及的计算样本长度差值的方法的方法流程图;
图3A是本发明又一实施例提供的数据合成方法的方法流程图;
图3B是本发明实施例所涉及的计算样本时延差的方法的方法流程图;
图4是本发明再一实施例提供的数据合成装置的结构框架图;
图5是本发明又一实施例提供的数据合成装置的结构框架图;
图6是本发明再一实施例提供的数据合成装置的结构框架图;
图7是本发明又一实施例提供的终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一个实施例提供的数据合成方法的方法流程图,该数据合成方法可以应用于终端中,该终端可以是智能电视、智能手机或者平板电脑等等。该数据合成方法,包括:
步骤101,在第一时刻,调用播放功能和录音功能;
终端可以在接收到用户发送的播放指令后调用播放功能,也可以自动调用播放功能,本实施例不对终端调用播放功能的方式作限定。同样,终端可以在接收到用户发送的录音指令后调用录音功能,也可以自动调用录音功能,本实施例不对终端调用录音功能的方式作限定。
本实施例中,终端需要同时调用播放功能和录音功能,并将终端调用播放功能和录音功能的时刻作为第一时刻进行记录。
步骤102,在第一时刻之后的预定时刻,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分;
终端可以预先设置预定时长,则可以从第一时刻开始计时,将计时达到该预定时长的时刻确定为预定时刻,并在该预定时刻时,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分。
终端在对播放数据进行播放时,会实时记录当前时刻已经播放完成的播放数据片段的第一数据长度,则终端可以直接读取该第一数据长度。
终端在录音时,可以将录音得到的录音数据写入录音缓冲区,当录音缓冲区中录音数据的长度达到预设长度后,终端将该录音数据读出录音缓冲区,并在读取录音数据时实时记录当前时刻已经读取出的录音数据的第二数据长度,终端可以直接读取该第二数据长度。
步骤103,根据第一数据长度和第二数据长度计算时延差,该时延差为播放时延与录音时延的时间差值;
由于第一数据长度和第二数据长度均与时间呈正相关关系,因此,终端可以根据第一数据长度和第二数据长度计算播放功能的播放时间和录音功能的录音时间。由于终端同时调用播放功能和录音功能,因此,终端可以根据该播放时间和录音时间计算出播放时延与录音时延之间的时延差。
步骤104,根据第一时刻和时延差合成播放数据和录音数据。
终端在计算出时延差后,可以根据记录的第一时刻和该时延差确定播放数据和录音数据开始合成的时刻,从而对播放数据和录音数据进行合成。
综上所述,本发明实施例提供的数据合成方法,通过在第一时刻,调用播放功能和录音功能;在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度;根据所述第一数据长度和所述第二数据长度计算时延差;根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。
请参考图2A,其示出了本发明另一实施例提供的数据合成方法的方法流程图,该数据合成方法可以应用于终端中,该终端可以是智能电视、智能手机或者平板电脑等等。该数据合成方法,包括:
步骤201,在第一时刻,调用播放功能和录音功能;
终端可以在接收到用户发送的播放指令后调用播放功能,也可以自动调用播放功能,本实施例不对终端调用播放功能的方式作限定。同样,终端可以在接收到用户发送的录音指令后调用录音功能,也可以自动调用录音功能,本实施例不对终端调用录音功能的方式作限定。
本实施例中,终端需要同时调用播放功能和录音功能,并将终端调用播放功能和录音功能的时刻作为第一时刻进行记录。
步骤202,在第一时刻之后的预定时刻,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分;
终端可以预先设置预定时长,则可以从第一时刻开始计时,将计时达到该预定时长的时刻确定为预定时刻,并在该预定时刻时,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,该播放数据片段为播放数据的一部分,该录音数据片段为录音数据的一部分。其中,该预设时长可以是任意时长,比如,2s、5s或8s等。
终端在对播放数据进行播放时,会实时记录当前时刻已经播放完成的播放数据片段的第一数据长度,则终端可以直接读取该第一数据长度。
终端在录音时,可以将录音得到的录音数据写入录音缓冲区,当录音缓冲区中录音数据的长度达到预设长度后,终端将该录音数据读出录音缓冲区,并在读取录音数据时实时记录当前时刻已经读取出的录音数据的第二数据长度,终端可以直接读取该第二数据长度。
步骤203,获取对播放数据或录音数据进行采样的采样率、采样精度和通道数,播放数据的采样率、采样精度和通道数分别与录音数据的采样率、采样精度和通道数相同;
其中,采样率是每秒采样的采样数据个数,单位是Hz(赫兹),比如,采样率为44.1kHz/s,则终端每秒采样44.1*1000个采样数据。采样精度是每个采样数据占用的字节,比如,PCM(Pulse-CodeModulation,脉冲编码调制)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(RadioFrequency,射频)电路710、包括有一个或多个计算机可读存储介质的存储器720、输入单元730、显示单元740、传感器750、音频电路760、短距离无线传输模块770、包括有一个或者多个处理核心的处理器780、以及电源790等部件。本领域技术人员可以理解,图7中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者多个处理器780处理;另外,将涉及上行的数据发送给基站。通常,RF电路710包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(LowNoiseAmplifier,低噪声放大器)、双工器等。此外,RF电路710还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(GlobalSystemofMobilecommunication,全球移动通讯系统)、GPRS(GeneralPacketRadioService,通用分组无线服务)、CDMA(CodeDivisionMultipleAccess,码分多址)、WCDMA(WidebandCodeDivisionMultipleAccess,宽带码分多址)、LTE(LongTermEvolution,长期演进)、电子邮件、SMS(ShortMessagingService,短消息服务)等。
存储器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(LiquidCrystalDisplay,液晶显示器)、OLED(OrganicLight-EmittingDiode,有机发光二极管)等形式来配置显示面板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(wirelessfidelity,无线保真)模块或者蓝牙模块等。终端700通过短距离无线传输模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了短距离无线传输模块770,但是可以理解的是,其并不属于终端700的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器780是终端700的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行终端700的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器780可包括一个或多个处理核心;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。
终端700还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源790还可以包括一个或多个的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端700还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端700的显示单元是触摸屏显示器。
终端700除了包括一个或者多个处理器780,还包括有存储器,以及一个或者多个模块,其中一个或者多个模块存储于存储器中,并被配置成由一个或者多个处理器执行。上述一个或者多个模块具有如下功能:
在第一时刻,调用播放功能和录音功能;
在第一时刻之后的预定时刻,获取调用播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用录音功能后已经读取出的录音数据片段的第二数据长度,播放数据片段为播放数据的一部分,录音数据片段为录音数据的一部分;
根据第一数据长度和第二数据长度计算时延差,时延差为播放时延与录音时延的时间差值;
根据第一时刻和时延差合成播放数据和录音数据。
进一步地,根据第一数据长度和第二数据长度计算时延差,包括:
获取对播放数据或录音数据进行采样的采样率、采样精度和通道数,播放数据的采样率、采样精度和通道数分别与录音数据的采样率、采样精度和通道数相同;
计算第一数据长度减去第二数据长度的长度差值,并计算采样率、采样精度和通道数的乘积;
将长度差值除以乘积,得到时延差。
优选地,若预定时刻至少为两个且每个预定时刻对应于一个长度差值,则计算第一数据长度减去第二数据长度的长度差值,并计算采样率、采样精度和通道数的乘积之后,还包括:
根据所有长度差值计算样本长度差值;
将长度差值除以乘积,得到时延差,包括:
将样本长度差值除以乘积,得到时延差。
进一步地,根据所有长度差值计算样本长度差值,包括:
获取所有长度差值中出现次数最多的长度差值以及长度差值的第一出现次数;
检测第一出现次数是否满足第一预设条件;
若检测到第一出现次数满足第一预设条件,则将长度差值确定为样本长度差值;
若检测到第一出现次数不满足第一预设条件,则计算所有长度差值的平均值,将平均值确定为样本长度差值;
第一预设条件包括第一出现次数超过第一阈值、第一出现次数与所有长度差值的个数的比值超过第二阈值中的至少一种。
进一步地,根据第一时刻和时延差对播放数据和录音数据进行合成,包括:
将在第一时刻之后,间隔与时延差对应的时长所得到的时刻确定为第二时刻;
将从第一时刻开始的录音数据与从第二时刻开始的播放数据对齐,合成录音数据和播放数据。
优选地,若预定时刻至少为两个且每个预定时刻对应于一个时延差,则根据第一数据长度和第二数据长度计算时延差之后,还包括:
根据所有时延差计算样本时延差;
根据第一时刻和时延差合成播放数据和录音数据,包括:
根据第一时刻和样本时延差合成播放数据和录音数据。
进一步地,根据所有时延差计算样本时延差,包括:
获取所有时延差中出现次数最多的时延差以及时延差的第二出现次数;
检测第二出现次数是否满足第二预设条件;
若检测到第二出现次数满足第二预设条件,则将时延差确定为样本时延差;
若检测到第二出现次数不满足第二预设条件,则计算所有时延差的平均值,将平均值确定为样本时延差;
第二预设条件包括第二出现次数超过第三阈值、第二出现次数与所有时延差的个数的比值超过第四阈值中的至少一种。
进一步地,根据第一时刻和样本时延差对播放数据和录音数据进行合成,包括:
将在第一时刻之后,间隔与样本时延差对应的时长所得到的时刻确定为第三时刻;
将从第一时刻开始的录音数据与从第三时刻开始的播放数据对齐,合成录音数据和播放数据。
综上所述,本发明实施例提供的终端,通过在第一时刻,调用播放功能和录音功能;在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度;根据所述第一数据长度和所述第二数据长度计算时延差;根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,解决了用户需要对终端进行大量测试才能得到该终端的时延差,从而根据该时延差进行数据合成,消耗了大量资源,提高了数据合成的成本的问题,达到了降低数据合成成本的效果。另外,通过根据所有长度差值计算样本长度差值,将样本长度差值除以乘积,得到时延差,解决了根据单次长度差值计算时延差造成的计算误差较大,使得数据合成不同步的问题,达到了提高数据合成的同步性的效果。
需要说明的是:上述实施例提供的数据合成装置在进行数据合成时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将数据合成装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据合成装置与数据合成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种数据合成方法,用于终端中,其特征在于,所述方法包括:
在第一时刻,调用播放功能和录音功能;
在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度,所述播放数据片段为播放数据的一部分,所述录音数据片段为录音数据的一部分;
根据所述第一数据长度和所述第二数据长度计算时延差,所述时延差为播放时延与录音时延的时间差值;
根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据;
所述根据所述第一数据长度和所述第二数据长度计算时延差,包括:
获取对所述播放数据或所述录音数据进行采样的采样率、采样精度和通道数,所述播放数据的采样率、采样精度和通道数分别与所述录音数据的采样率、采样精度和通道数相同;
计算所述第一数据长度减去所述第二数据长度的长度差值,并计算所述采样率、采样精度和通道数的乘积;
将所述长度差值除以所述乘积,得到所述时延差。
2.根据权利要求1所述的数据合成方法,其特征在于,若所述预定时刻至少为两个且每个预定时刻对应于一个长度差值,则所述计算所述第一数据长度减去所述第二数据长度的长度差值,并计算所述采样率、采样精度和通道数的乘积之后,所述方法还包括:
根据所有所述长度差值计算样本长度差值;
所述将所述长度差值除以所述乘积,得到所述时延差,包括:
将所述样本长度差值除以所述乘积,得到所述时延差。
3.根据权利要求2所述的数据合成方法,其特征在于,所述根据所有所述长度差值计算样本长度差值,包括:
获取所有所述长度差值中出现次数最多的长度差值以及所述长度差值的第一出现次数;
检测所述第一出现次数是否满足第一预设条件;
若检测到所述第一出现次数满足所述第一预设条件,则将所述长度差值确定为所述样本长度差值;
若检测到所述第一出现次数不满足所述第一预设条件,则计算所有所述长度差值的平均值,将所述平均值确定为所述样本长度差值;
所述第一预设条件包括所述第一出现次数超过第一阈值、所述第一出现次数与所有所述长度差值的个数的比值超过第二阈值中的至少一种。
4.根据权利要求1至3任一所述的数据合成方法,其特征在于,所述根据所述第一时刻和所述时延差对所述播放数据和所述录音数据进行合成,包括:
将在所述第一时刻之后,间隔与所述时延差对应的时长所得到的时刻确定为第二时刻;
将从所述第一时刻开始的录音数据与从所述第二时刻开始的播放数据对齐,合成所述录音数据和所述播放数据。
5.根据权利要求1所述的数据合成方法,其特征在于,若所述预定时刻至少为两个且每个预定时刻对应于一个时延差,则所述根据所述第一数据长度和所述第二数据长度计算时延差之后,所述方法还包括:
根据所有所述时延差计算样本时延差;
所述根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据,包括:
根据所述第一时刻和所述样本时延差合成所述播放数据和所述录音数据。
6.根据权利要求5所述的数据合成方法,其特征在于,所述根据所有所述时延差计算样本时延差,包括:
获取所有所述时延差中出现次数最多的时延差以及所述时延差的第二出现次数;
检测所述第二出现次数是否满足第二预设条件;
若检测到所述第二出现次数满足所述第二预设条件,则将所述时延差确定为所述样本时延差;
若检测到所述第二出现次数不满足所述第二预设条件,则计算所有所述时延差的平均值,将所述平均值确定为所述样本时延差;
所述第二预设条件包括所述第二出现次数超过第三阈值、所述第二出现次数与所有所述时延差的个数的比值超过第四阈值中的至少一种。
7.根据权利要求5或6所述的数据合成方法,其特征在于,所述根据所述第一时刻和所述样本时延差对所述播放数据和所述录音数据进行合成,包括:
将在所述第一时刻之后,间隔与所述样本时延差对应的时长所得到的时刻确定为第三时刻;
将从所述第一时刻开始的录音数据与从所述第三时刻开始的播放数据对齐,合成所述录音数据和所述播放数据。
8.一种数据合成装置,用于终端中,其特征在于,所述装置包括:
调用模块,用于在第一时刻,调用播放功能和录音功能;
获取模块,用于在所述第一时刻之后的预定时刻,获取所述调用模块调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及所述调用模块调用所述录音功能后已经读取出的录音数据片段的第二数据长度,所述播放数据片段为播放数据的一部分,所述录音数据片段为录音数据的一部分;
第一计算模块,用于根据所述获取模块获取到的所述第一数据长度和所述第二数据长度计算时延差,所述时延差为播放时延与录音时延的时间差值;
合成模块,用于根据所述第一时刻和所述第一计算模块计算得到的所述时延差合成所述播放数据和所述录音数据;
所述第一计算模块,包括:
第一获取单元,用于获取对所述播放数据或所述录音数据进行采样的采样率、采样精度和通道数,所述播放数据的采样率、采样精度和通道数分别与所述录音数据的采样率、采样精度和通道数相同;
第一计算单元,用于计算所述第一数据长度减去所述第二数据长度的长度差值,并计算所述第一获取单元获取到的所述采样率、采样精度和通道数的乘积;
第二计算单元,用于将所述第一计算单元计算得到的所述长度差值除以所述乘积,得到所述时延差。
9.根据权利要求8所述的数据合成装置,其特征在于,若所述预定时刻至少为两个且每个预定时刻对应于一个长度差值,则所述第一计算模块,还包括:
第三计算单元,用于所述第一计算单元计算所述第一数据长度减去所述第二数据长度的长度差值,并计算所述采样率、采样精度和通道数的乘积之后,根据所有所述长度差值计算样本长度差值;
所述第二计算单元,用于将所述第三计算单元计算得到的所述样本长度差值除以所述乘积,得到所述时延差。
10.根据权利要求9所述的数据合成装置,其特征在于,所述第三计算单元,包括:
获取子单元,用于获取所有所述长度差值中出现次数最多的长度差值以及所述长度差值的第一出现次数;
检测子单元,用于检测所述获取子单元获取到的所述第一出现次数是否满足第一预设条件;
第一确定子单元,用于在所述检测子单元检测到所述第一出现次数满足所述第一预设条件时,将所述长度差值确定为所述样本长度差值;
第二确定子单元,用于在所述检测子单元检测到所述第一出现次数不满足所述第一预设条件时,计算所有所述长度差值的平均值,将所述平均值确定为所述样本长度差值;
所述第一预设条件包括所述第一出现次数超过第一阈值、所述第一出现次数与所有所述长度差值的个数的比值超过第二阈值中的至少一种。
11.根据权利要求8至10任一所述的数据合成装置,其特征在于,所述合成模块,包括:
第一确定单元,用于将在所述第一时刻之后,间隔与所述时延差对应的时长所得到的时刻确定为第二时刻;
第一合成单元,用于将从所述第一时刻开始的录音数据与从所述第一确定单元确定的所述第二时刻开始的播放数据对齐,合成所述录音数据和所述播放数据。
12.根据权利要求8所述的数据合成装置,其特征在于,若所述预定时刻至少为两个且每个预定时刻对应于一个时延差,则所述装置,还包括:
第二计算模块,用于所述第一计算模块根据所述第一数据长度和所述第二数据长度计算时延差之后,根据所有所述时延差计算样本时延差;
所述合成模块,用于根据所述第一时刻和所述第二计算模块计算得到的所述样本时延差合成所述播放数据和所述录音数据。
13.根据权利要求12所述的数据合成装置,其特征在于,所述第二计算模块,包括:
第二获取单元,用于获取所有所述时延差中出现次数最多的时延差以及所述时延差的第二出现次数;
检测单元,用于检测所述第二获取单元获取到的所述第二出现次数是否满足第二预设条件;
第二确定单元,用于在所述检测单元检测到所述第二出现次数满足所述第二预设条件时,将所述时延差确定为所述样本时延差;
第三确定单元,用于在所述检测单元检测到所述第二出现次数不满足所述第二预设条件时,计算所有所述时延差的平均值,将所述平均值确定为所述样本时延差;
所述第二预设条件包括所述第二出现次数超过第三阈值、所述第二出现次数与所有所述时延差的个数的比值超过第四阈值中的至少一种。
14.根据权利要求12或13所述的数据合成装置,其特征在于,所述合成模块,包括:
第四确定单元,用于将在所述第一时刻之后,间隔与所述样本时延差对应的时长所得到的时刻确定为第三时刻;
第二合成单元,用于将从所述第一时刻开始的录音数据与从所述第四确定单元确定的所述第三时刻开始的播放数据对齐,合成所述录音数据和所述播放数据。
15.一种终端,其特征在于,所述终端包括如权利要求8至14任一所述的数据合成装置。
16.一种终端,其特征在于,所述终端包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
在第一时刻,调用播放功能和录音功能;
在所述第一时刻之后的预定时刻,获取调用所述播放功能后已经播放完成的播放数据片段的第一数据长度,以及调用所述录音功能后已经读取出的录音数据片段的第二数据长度,所述播放数据片段为播放数据的一部分,所述录音数据片段为录音数据的一部分;
根据所述第一数据长度和所述第二数据长度计算时延差,所述时延差为播放时延与录音时延的时间差值;
根据所述第一时刻和所述时延差合成所述播放数据和所述录音数据;
所述根据所述第一数据长度和所述第二数据长度计算时延差,包括:
获取对所述播放数据或所述录音数据进行采样的采样率、采样精度和通道数,所述播放数据的采样率、采样精度和通道数分别与所述录音数据的采样率、采样精度和通道数相同;
计算所述第一数据长度减去所述第二数据长度的长度差值,并计算所述采样率、采样精度和通道数的乘积;
将所述长度差值除以所述乘积,得到所述时延差。
CN201310234615.6A 2013-06-14 2013-06-14 数据合成方法、装置及终端 Active CN103345930B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310234615.6A CN103345930B (zh) 2013-06-14 2013-06-14 数据合成方法、装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310234615.6A CN103345930B (zh) 2013-06-14 2013-06-14 数据合成方法、装置及终端

Publications (2)

Publication Number Publication Date
CN103345930A CN103345930A (zh) 2013-10-09
CN103345930B true CN103345930B (zh) 2016-04-13

Family

ID=49280720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310234615.6A Active CN103345930B (zh) 2013-06-14 2013-06-14 数据合成方法、装置及终端

Country Status (1)

Country Link
CN (1) CN103345930B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106251890B (zh) * 2016-08-31 2019-01-22 广州酷狗计算机科技有限公司 一种录制歌曲音频的方法、装置和系统
CN112669884B (zh) * 2020-12-31 2022-11-04 广州酷狗计算机科技有限公司 音频数据处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005107332A (ja) * 2003-09-30 2005-04-21 Yamaha Corp カラオケ装置
CN1892815A (zh) * 2005-07-06 2007-01-10 丰行互动科技股份有限公司 通过网络于个人计算机执行录音室作业的方法
CN102420815A (zh) * 2011-11-25 2012-04-18 迈普通信技术股份有限公司 Voip录音和播放系统及其方法
CN102568462A (zh) * 2011-12-30 2012-07-11 苏州汉清投资管理有限公司 卡拉ok录音系统
EP2575371A1 (en) * 2011-09-29 2013-04-03 Alcatel Lucent Method and measurement system for evaluating a delay between audio and video signals in an audio/video stream

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005107332A (ja) * 2003-09-30 2005-04-21 Yamaha Corp カラオケ装置
CN1892815A (zh) * 2005-07-06 2007-01-10 丰行互动科技股份有限公司 通过网络于个人计算机执行录音室作业的方法
EP2575371A1 (en) * 2011-09-29 2013-04-03 Alcatel Lucent Method and measurement system for evaluating a delay between audio and video signals in an audio/video stream
CN102420815A (zh) * 2011-11-25 2012-04-18 迈普通信技术股份有限公司 Voip录音和播放系统及其方法
CN102568462A (zh) * 2011-12-30 2012-07-11 苏州汉清投资管理有限公司 卡拉ok录音系统

Also Published As

Publication number Publication date
CN103345930A (zh) 2013-10-09

Similar Documents

Publication Publication Date Title
CN104065982B (zh) 流媒体直播的方法和装置
CN104243671B (zh) 音量调节方法、装置及电子设备
CN103473011B (zh) 一种移动终端性能检测方法、装置及移动终端
CN104967801A (zh) 一种视频数据处理方法和装置
CN103559731B (zh) 一种锁屏状态下歌词显示的方法及终端
CN104869468A (zh) 一种显示弹幕信息的方法和装置
CN104142779B (zh) 用户界面控制方法、装置和终端
CN103400592A (zh) 录音方法、播放方法、装置、终端及系统
CN106254903B (zh) 一种多媒体数据的同步播放方法、装置及系统
CN105549740A (zh) 一种播放音频数据的方法和装置
CN106411448A (zh) 播放控制方法、装置及终端
CN104618794A (zh) 播放视频的方法和装置
CN103458277B (zh) 一种操作直播频道节目的方法和装置
CN103634717A (zh) 一种利用耳机控制的方法、装置及终端设备
CN105516784A (zh) 虚拟物品显示方法及装置
CN105208056A (zh) 信息交互的方法及终端
CN104869465A (zh) 视频播放控制方法和装置
CN103475914A (zh) 视频播放方法、装置、终端设备和服务器
CN103294442B (zh) 一种播放提示音的方法、装置及终端设备
CN106452643B (zh) 播放控制方法、装置、终端及播放系统
CN104602135A (zh) 控制全屏播放的方法及装置
CN103458286A (zh) 一种进行电视频道切换的方法和装置
CN104423840A (zh) 一种进度指示条的实现方法和装置
CN103533127A (zh) 一种终端通话控制方法及终端
CN106341713A (zh) 一种多媒体同步播放方法、装置、系统及终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 100102 Beijing Wangjing West Road, a volume of stone world building, A, block, floor 12

Applicant after: Xiaomi Technology Co., Ltd.

Address before: 100102 Beijing Wangjing West Road, a volume of stone world building, A, block, floor 12

Applicant before: Beijing Xiaomi Technology Co., Ltd.

C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 100085 Beijing city Haidian District Qinghe Street No. 68 Huarun colorful city shopping center two floor 13

Applicant after: Xiaomi Technology Co., Ltd.

Address before: 100102 Beijing Wangjing West Road, a volume of stone world building, A, block, floor 12

Applicant before: Xiaomi Technology Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100102 CHAOYANG, BEIJING TO: 100085 HAIDIAN, BEIJING

C14 Grant of patent or utility model
GR01 Patent grant