一种语音实时变速播放方法及设备与流程

文档序号:13806233阅读:512来源:国知局
一种语音实时变速播放方法及设备与流程

本发明涉及音频信号处理技术领域,尤其涉及一种语音实时变速播放方法及设备。



背景技术:

在实时语音通信技术中,接收端播放语音的速度与发送端发送语音的速度相同。

但是实际应用中,经常会存在以下场景:

第一,听力有问题的人在接听电话时,例如,有听力障碍的人或老年人,经常会因为对方说话速度快而听不清对方讲话;

第二,听力正常的人在接听外国人的电话时,经常会由于对一些关键信息反应不过来而无法听清对方讲话。

鉴于此,需要在实时语音通信过程中实现语音变速播放。



技术实现要素:

本发明实施例提供一种语音实时变速播放方法及设备,用以为在实时语音通信过程中实现语音变速播放提供解决方案。

本发明实施例提供的具体技术方案如下:

第一方面,本发明实施例提供了一种语音实时变速播放方法,包括:

设备接收语音数据以及接收语音播放速率的控制指令;

所述设备将所述语音数据保存至缓冲区,确定所述缓冲区的数据存储状态;

所述设备从所述缓冲区读取待播放的语音数据,对所述待播放的语音数据进行语音活动检测获得检测结果;

所述设备根据所述控制指令、所述缓冲区的数据存储状态以及所述检测结果中,调整所述待播放的语音数据的时长。

可能的实施方式中,所述设备对所述待播放的语音数据进行语音活动检测获得检测结果,包括:

所述设备对所述待播放的语音数据进行语音活动检测,确定所述语音数据中的语音段和非语音段。

可能的实施方式中,所述设备对所述待播放的语音数据进行语音活动检测的位置,与调整所述待播放的语音数据时长的位置的差值不大于预设阈值。

可能的实施方式中,所述设备调整所述待播放的语音数据的时长,包括:

所述设备对所述待播放的语音数据进行时长规整。

可能的实施方式中,所述设备确定所述缓冲区的数据存储状态,包括:

所述设备若确定所述缓冲区的可用数据量小于或等于下限值,确定所述缓冲区的数据存储状态为第一存储状态;

所述设备若确定所述缓冲区的可用数据量大于或等于上限值,确定所述缓冲区的数据存储状态为第二存储状态;

所述设备若确定所述缓冲区的可用数据量大于下限值,确定小于上限值,确定所述缓冲区的数据存储状态为第三存储状态。

可能的实施方式中,所述设备根据所述控制指令、所述缓冲区的数据存储状态以及所述检测结果,调整所述待播放的语音数据的时长,包括:

所述设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为语音段,加长所述待播放的语音数据的长度;

所述设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据的长度;

所述设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为语音段,加长所述语音数据信号的长度;

所述设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为非语音段,不调整所述待播放的语音数据的长度;

所述设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为语音段,不调整所述待播放的语音数据的长度;

所述设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据的长度;

所述设备若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态为第一存储状态,不调整所述待播放的语音数据的长度;

所述设备若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为语音段,不调整所述待播放的语音数据的长度;

所述设备若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据包的的长度。

可能的实施方式中,所述缓冲区为环形缓冲区。

第二方面,本发明实施例提供了一种设备,包括:

接收模块,用于接收语音数据以及接收语音播放速率的控制指令;

确定模块,用于将所述语音数据保存至缓冲区,确定所述缓冲区的数据存储状态;

检测模块,用于从所述缓冲区读取待播放的语音数据,对所述待播放的语音数据进行语音活动检测获得检测结果;

调整模块,用于根据所述控制指令、所述缓冲区的数据存储状态以及所述检测结果中,调整所述待播放的语音数据的时长。

可能的实施方式中,所述检测模块具体用于:

对所述待播放的语音数据进行语音活动检测,确定所述语音数据中的语音段和非语音段。

可能的实施方式中,对所述待播放的语音数据进行语音活动检测的位置,与调整所述待播放的语音数据时长的位置的差值不大于预设阈值。

可能的实施方式中,所述调整模块具体用于:

对所述待播放的语音数据进行时长规整。

可能的实施方式中,所述确定模块具体用于:

若确定所述缓冲区的可用数据量小于或等于下限值,确定所述缓冲区的数据存储状态为第一存储状态;

若确定所述缓冲区的可用数据量大于或等于上限值,确定所述缓冲区的数据存储状态为第二存储状态;

若确定所述缓冲区的可用数据量大于下限值,确定小于上限值,确定所述缓冲区的数据存储状态为第三存储状态。

可能的实施方式中,所述调整模块具体用于:

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为语音段,加长所述待播放的语音数据的长度;

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据的长度;

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为语音段,加长所述语音数据信号的长度;

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为非语音段,不调整所述待播放的语音数据的长度;

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为语音段,不调整所述待播放的语音数据的长度;

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据的长度;

若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态为第一存储状态,不调整所述待播放的语音数据的长度;

若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为语音段,不调整所述待播放的语音数据的长度;

若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据包的的长度。

可能的实施方式中,所述缓冲区为环形缓冲区。

第三方面,本发明实施例中提供了一种设备,该设备包括处理器、存储器和收发机,收发机在处理器的控制下接收和发送数据,存储器中保存有预设的程序,处理器读取存储器中的程序,按照该程序执行以下过程,

通过收发机接收语音数据以及接收语音播放速率的控制指令;

将所述语音数据保存至缓冲区,确定所述缓冲区的数据存储状态;

从所述缓冲区读取待播放的语音数据,对所述待播放的语音数据进行语音活动检测获得检测结果;

根据所述控制指令、所述缓冲区的数据存储状态以及所述检测结果中,调整所述待播放的语音数据的时长。

可能的实施方式中,处理器对所述待播放的语音数据进行语音活动检测,确定所述语音数据中的语音段和非语音段。

可能的实施方式中,处理器对所述待播放的语音数据进行语音活动检测的位置,与调整所述待播放的语音数据时长的位置的差值不大于预设阈值。

可能的实施方式中,处理器对所述待播放的语音数据进行时长规整。

可能的实施方式中,处理器若确定所述缓冲区的可用数据量小于或等于下限值,确定所述缓冲区的数据存储状态为第一存储状态;

处理器若确定所述缓冲区的可用数据量大于或等于上限值,确定所述缓冲区的数据存储状态为第二存储状态;

处理器若确定所述缓冲区的可用数据量大于下限值,确定小于上限值,确定所述缓冲区的数据存储状态为第三存储状态。

可能的实施方式中,处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为语音段,加长所述待播放的语音数据的长度;

处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据的长度;

处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为语音段,加长所述语音数据信号的长度;

处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为非语音段,不调整所述待播放的语音数据的长度;

处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为语音段,不调整所述待播放的语音数据的长度;

处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据的长度;

处理器若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态为第一存储状态,不调整所述待播放的语音数据的长度;

处理器若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为语音段,不调整所述待播放的语音数据的长度;

处理器若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据包的的长度。

可能的实施方式中,所述缓冲区为环形缓冲区。

基于上述技术方案,本发明实施例中,设备接收语音数据以及语音播放速率的控制指令,将语音数据保存至缓冲区,并对缓冲区的语音数据包进行语音活动检测,根据语音播放速率的控制指令、缓冲区的数据存储状态以及检测结果,调整待播放的语音数据的长度,从而为在实时语音通信过程中实现语音变速播放提供解决方案,并且结合缓冲区的数据存储状态以及语音活动检测结果调整系统的行为(快速播放/慢速播放/正常播放),以保证缓冲区中的数据不会因为慢速播放出现上溢,也不会因为快速播放出现下溢,保证系统的正常运行。

附图说明

图1为本发明实施例中语音实时变速播放的方法流程示意图;

图2为本发明具体实施例中语音实时变速播放设备的结构示意图;

图3为本发明具体实施例中语音实时变速播放的系统流程示意图;

图4为本发明具体实施例中ringbuffer模块读写环形缓冲区的数据的示意图;

图5为本发明具体实施例中vad从环形缓冲区中读取语音数据的过程示意图;

图6为本发明具体实施例中寻找最相似区域的过程示意图;

图7为本发明实施例中设备结构示意图;

图8为本发明实施例中另一设备结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例中,如图1所示,语音实时变速播放的详细方法流程如下:

步骤101:设备接收语音数据以及接收语音播放速率的控制指令。

其中,设备通过输入部件获得用户输入的语音播放速率的控制指令。

具体地,设备可以通过语音输入部件获得用户语音输入的控制指令;或者,设备可以通过人机交互界面获得用户手动输入的控制指令。此处仅为举例,实际应用中获取控制指令的方式有多种,本发明的保护范围并不以此为限制。

步骤102:设备将语音数据保存至缓冲区,确定缓冲区的数据存储状态。

具体地,设备若确定缓冲区的可用数据量小于或等于下限值,确定该缓冲区的数据存储状态为第一存储状态;

设备若确定缓冲区的可用数据量大于或等于上限值,确定该缓冲区的数据存储状态为第二存储状态;

设备若确定缓冲区的可用数据量大于下限值,确定小于上限值,确定该缓冲区的数据存储状态为第三存储状态。

优选地,设备将语音数据保存至环形缓冲区。

实施中,可用数据量是指位于环形缓冲区的写指针和环形缓冲区的第一读指针之间的语音数据。其中,环形缓冲区的第一读指针用于指示按照先进先出的顺序下一个需要从环形缓冲区中读出的待播放的语音数据。

步骤103:设备从缓冲区读取待播放的语音数据,对该待播放的语音数据进行语音活动检测(voiceactivitydetection,vad)获得检测结果。

具体地,设备对语音数据进行语音活动检测,确定所述语音数据中的语音段和非语音段。

其中,语音活动检测又称为语音端点检测或语音边界检测,用于检测语音信号的语音段和非语音段。非语音段也称为静音段。

本发明实施例中,考虑到慢速播放会引起语音数据在缓存中的堆积,为了利用有限的缓存空间进行最长时间的慢放,将变速播放技术与vad结合,只对语音段数据进行慢放,而对非语音段数据进行快放以释放掉缓存中堆积的语音数据,最大程度利用有限的缓存资源。

步骤104:设备根据该控制指令、该缓冲区的数据存储状态以及该检测结果中的至少两个参数,调整该待播放的语音数据的时长。

本发明实施例中,调整待播放的语音数据的时长,相当于改变设备的播放速度。

可选地,设备对待播放的语音数据进行语音活动检测的位置,与调整待播放的语音数据时长的位置不大于预设阈值。

具体地,设备通过环形缓冲区的第二读指针从环形缓冲区中读取语音数据包,对通过第二读指针读取的语音数据包进行语音活动检测。其中,环形缓冲区中第二读指针领先于第一读指针的时长不大于预设阈值。

实施中,设备对待播放的语音数据进行时长规整(timescalemodification,tsm)。通过时长规整调整该待播放的语音数据包的播放速度。

本发明实施例中,时长规整也称为“变速不变调”技术。时长规整技术能够在改变语音播放速度的同时,保持说话人的音调和音色不变。本发明实施例中,在通话过程中利用语音时长规整技术根据收听人的指令,实时对接收的语音数据进行播放速度调整,实现正常播放、慢速播放或快速播放,以帮助收听人“听得清”和“听得懂”对方讲话。

实施中,设备根据该控制指令、该缓冲区的数据存储状态以及该检测结果中的至少两个参数,调整该待播放的语音数据的时长,以达到调整语音数据播放速度的目的。

实施中,设备根据该控制指令、该缓冲区的数据存储状态以及该检测结果,调整语音数据信号的时长,如表1所示,包括但不限于以下几种情况:

第一,设备若确定该控制指令为慢速播放,且确定缓冲区的数据存储状态为第三存储状态,且确定该检测结果为语音段,加长该待播放的语音数据的时长,相当于设备慢速播放;

第二,设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为非语音段,缩短所述语音数据信号的时长,相当于设备快速播放;

第三,设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为语音段,加长所述语音数据信号的时长,相当于设备慢速播放;

第四,设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为非语音段,不所述语音数据信号的时长,相当于设备正常播放;

第五,设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为语音段,不调整所述语音数据信号的时长,相当于设备正常播放;

第六,设备若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为非语音段,缩短所述语音数据信号的时长,相当于设备快速播放;

第七,设备若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态为第一存储状态,不调整所述语音数据信号的时长,相当于设备正常播放;

第八,设备若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为语音段,不调整所述语音数据信号的时长,相当于设备正常播放;

第九,设备若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为非语音段,缩短所述语音数据信号的时长,相当于设备快速播放。

表1对语音数据信号的播放速度的判决

本发明实施例中,将播放速度与缓冲区的数据存储状态相结合,以保证缓冲区中的数据不会因为慢速播放出现上溢,也不会因为快速播放出现下溢,以保证系统的正常运行。

以下通过具体实施例对语音实时变速播放的过程进行详细说明。

第一具体实施例

如图2所示,能够实现语音实时变速播放的设备主要包括三个模块,分别为:环形缓冲区(ringbuffer)模块201、语音活动检测(vad)模块202、波形相似重叠相加(waveformsimilarityoverlap-add,wsola)模块203和速率调整模块204。

其中,环形缓冲区模块201主要负责控制保存至环形缓冲区中的语音数据的流进和流出。

vad模块202主要负责检测语音段和非语音段,具体地,可以是每间隔预设时长进行一次检测,例如,该预设时长为20毫秒(ms)。

wsola模块203主要负责根据速率调整模块204下发的播放模式控制指令,调整待播放语音数据的时长,从而控制语音数据正常播放、快速播放或慢速播放。

速率调整模块204主要负责根据获取的播放速度调整指令、环形缓冲区的数据存储状态以及检测结果做出合理的控制指令并向wsola模块发送该控制指令。

该具体实施例中,语音实时变速播放的系统流程如图3所示,具体为:

ringbuffer模块201将输入的语音数据保存至环形缓冲区,根据环形缓冲区中的可用数据量(avail)和设定的上限值和/或下限值比较,判断环形缓冲区当前的状态,并将该状态通知给速率调整模块204;

vad模块202从环形缓冲区中读取语音数据进行vad判决,将获得的判决结果传送给速率调整模块204;

速率调整模块204获取播放速度调整指令,根据该播放速度调整指令、ringbuffer模块201通知的环形缓冲区当前的状态以及vad模块202传送的判决结果,确定播放模式控制指令,将该播放模式控制指令传送给wsola模块203;

wsola模块203根据播放模式控制指令确定播放模式,按照该播放模式对从环形缓冲区读取的语音数据进行处理,并将处理后的结果保存至指定的输出缓存中。

其中,播放模式包括慢速播放、正常播放和快速播放。

第二具体实施例

基于第一具体实施例所提供的设备,该设备中的ringbuffer模块201主要负责语音数据流的管理,根据环形缓冲区的可用数据量和设定的上限值或下限值比较,判断环形缓冲区当前的状态,并将环形缓冲区当前的状态通知给速率调整模块,速率调整模块根据获取的环形缓冲区的数据存储状态做出合理的控制指令,以保证环形缓冲区中的数据不因为慢放或快放而发生上溢或下溢。

ringbuffer模块201有至少包括三个成员变量:第一读指针(reader)、写指针(writer)以及可用数据量。如图4所示为ringbuffer模块201读写环形缓冲区的数据包的示意图。

ringbuffer模块201在有语音数据到来时,将语音数据写入环形缓冲区中,并更新写指针。ringbuffer模块201在有语音数据输出时,将输出的语音数据写入到目的地址,并更新第一读指针。其中,写入环形缓冲区中但未被读取的语音数据称为可用数据量。

在进行快速播放时,ringbuffer模块201从环形缓冲区中读取语音数据的速度要大于向该环形缓冲区中写入语音数据的速度,因此可用数据量会逐渐减少,为了避免环形缓冲区中的语音数据被完全读取,在可用数据量小于或等于设定的下限值时,ringbuffer模块201通知速率调整模块禁止进行快速播放。同理,在进行慢速播放时,ringbuffer模块201从环形缓冲区中读取语音数据的速度要小于向环形缓冲区中写入语音数据的速度,因此可用数据量会逐渐增加,为了避免环形缓冲区中的语音数据溢出,在可用数据量大于或等于设定的上限值时,ringbuffer模块201通知速率调整模块禁止进行慢速播放。

第三具体实施例

基于第一具体实施例所提供的设备,该设备中的vad模块202主要负责从环形缓冲区读取语音数据进行vad判决,将获得的判决结果传送给速率调整模块;由速率调整模块根据该判决结果确定播放模式控制指令,以控制wsola模块进行语音时长调整,实现设备正常播放、快速播放或慢速播放,以最大限度地利用环形缓冲区有限的缓存资源对语音段进行慢放。

其中,进行vad判决能够采用的vad算法有多种,该具体实施例中,以采用自适应多速率(adaptivemulti-rate,amr)编码器的vad算法为例进行说明。

如图5所示为vad从环形缓冲区中读取语音数据的过程示意图。在ringbuffer模块201中设置第二读指针,vad模块通过第二读指针从环形缓冲区中读取语音数据以进行vad判决,该第二读指针领先于第一读指针,以保证vad判决领先于语音数据的输出,并且,第二读指针领先于第一读指针的时长不超过预设阈值。优选地,第二读指针最多领先于第一读指针100毫秒。

第四具体实施例中

基于第一具体实施例所提供的设备,wsola模块203采用wsola算法对语音数据进行时长规整。具体地,在语音数据信号中寻找最相似区域,若需要调整为慢速播放,则在最相似区域中插入语音数据,若需要调整为快速播放,则在最相似区域中删除语音数据。

具体地,wsola算法对语音数据进行时长规整主要分为分析与合成两个步骤。在分析过程中,原始语音信号中每间隔sa(分析帧移)个样点进行加窗处理,窗长为lw个样点,通过分析寻找最相似区域。在合成过程中,将输出的一帧语音数据以ss样点为长度进行重叠相加,以对插入语音数据或删除语音数据的位置进行平滑,减少不连续性。因此,通过wsola算法得到的处理后的信号没有咔咔的尖锐的杂音。

如图6所示为寻找最相似区域的过程示意图,具体如下:

假设输入序列(即原始语音信号)中的语音段a在sk-1=(k-1)s时刻重叠相加到输出序列的语音段a的位置,该时刻语音段a和语音段a相同。在下一个合成时刻sk=ks,需要在输入序列中时刻为γ-1(sk)+δk的位置寻找最相似区域,其中,γ-1表示时间尺度变换函数,其中,δk∈[-δmax...δmax]。由于输入信号中语音段c与语音段a自然衔接,因此以语音段c为模板在γ-1(sk)的周围由[-δmax...δmax]所限定的范围内寻找与语音段c最相似的语音段,假设在δk处找到与语音段c最相似的语音段b,将语音段b重叠相加到输出序列中的语音段b,该语音b与语音段b相同。按照同样的方法,以语音段d为模板在输入序列中寻找最相似的语音段重叠相加到输出序列中,并且下次以语音段d为模板在输入序列中寻找最相似的语音段叠加到输出序列中。

其中,寻找最相似语音段的方法有很多,例如可以通过计算语音段之间的互相关系数、归一化互相关系统、互平均幅度差(admf)等寻找最相似语音段。

实际应用中,窗长为32毫秒(ms),相邻窗之间有50%的重叠,通过计算互相关系数的方式寻找最相似语音段,寻找的区域长度为14ms。

基于同一发明构思,本发明实施例中提供了一种设备,该设备的具体实施可参见上述方法实施例部分的描述,重复之处不再赘述,如图7所示,该设备主要包括:

接收模块701,用于接收语音数据以及接收语音播放速率的控制指令;

确定模块702,用于将所述语音数据保存至缓冲区,确定所述缓冲区的数据存储状态;

检测模块703,用于从所述缓冲区读取待播放的语音数据,对所述待播放的语音数据进行语音活动检测获得检测结果;

调整模块704,用于根据所述控制指令、所述缓冲区的数据存储状态以及所述检测结果中,调整所述待播放的语音数据的时长。

可能的实施方式中,所述检测模块具体用于:

对所述待播放的语音数据进行语音活动检测,确定所述语音数据中的语音段和非语音段。

可能的实施方式中,对所述待播放的语音数据进行语音活动检测的位置,与调整所述待播放的语音数据时长的位置的差值不大于预设阈值。

可能的实施方式中,所述调整模块具体用于:

对所述待播放的语音数据进行时长规整。

可能的实施方式中,所述确定模块具体用于:

若确定所述缓冲区的可用数据量小于或等于下限值,确定所述缓冲区的数据存储状态为第一存储状态;

若确定所述缓冲区的可用数据量大于或等于上限值,确定所述缓冲区的数据存储状态为第二存储状态;

若确定所述缓冲区的可用数据量大于下限值,确定小于上限值,确定所述缓冲区的数据存储状态为第三存储状态。

可能的实施方式中,所述调整模块具体用于:

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为语音段,加长所述待播放的语音数据的长度;

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据的长度;

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为语音段,加长所述语音数据信号的长度;

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为非语音段,不调整所述待播放的语音数据的长度;

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为语音段,不调整所述待播放的语音数据的长度;

若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据的长度;

若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态为第一存储状态,不调整所述待播放的语音数据的长度;

若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为语音段,不调整所述待播放的语音数据的长度;

若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据包的的长度。

可能的实施方式中,所述缓冲区为环形缓冲区。

基于同一发明构思,本发明实施例中还提供了一种设备,该设备的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图8所示,该设备主要包括处理器801、存储器802和收发机803,收发机803在处理器801的控制下接收和发送数据,存储器802中保存有预设的程序,处理器801读取存储器802中的程序,按照该程序执行以下过程,

通过收发机903接收语音数据以及接收语音播放速率的控制指令;

将所述语音数据保存至缓冲区,确定所述缓冲区的数据存储状态;

从所述缓冲区读取待播放的语音数据,对所述待播放的语音数据进行语音活动检测获得检测结果;

根据所述控制指令、所述缓冲区的数据存储状态以及所述检测结果中,调整所述待播放的语音数据的时长。

可能的实施方式中,处理器对所述待播放的语音数据进行语音活动检测,确定所述语音数据中的语音段和非语音段。

可能的实施方式中,处理器对所述待播放的语音数据进行语音活动检测的位置,与调整所述待播放的语音数据时长的位置的差值不大于预设阈值。

可能的实施方式中,处理器对所述待播放的语音数据进行时长规整。

可能的实施方式中,处理器若确定所述缓冲区的可用数据量小于或等于下限值,确定所述缓冲区的数据存储状态为第一存储状态;

处理器若确定所述缓冲区的可用数据量大于或等于上限值,确定所述缓冲区的数据存储状态为第二存储状态;

处理器若确定所述缓冲区的可用数据量大于下限值,确定小于上限值,确定所述缓冲区的数据存储状态为第三存储状态。

可能的实施方式中,处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为语音段,加长所述待播放的语音数据的长度;

处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第三存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据的长度;

处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为语音段,加长所述语音数据信号的长度;

处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第一存储状态,且确定所述检测结果为非语音段,不调整所述待播放的语音数据的长度;

处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为语音段,不调整所述待播放的语音数据的长度;

处理器若确定所述控制指令为慢速播放,且确定所述缓冲区的数据存储状态为第二存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据的长度;

处理器若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态为第一存储状态,不调整所述待播放的语音数据的长度;

处理器若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为语音段,不调整所述待播放的语音数据的长度;

处理器若确定所述控制指令为正常速度播放,且确定所述缓冲区的数据存储状态不是第一存储状态,且确定所述检测结果为非语音段,缩短所述待播放的语音数据包的的长度。

可能的实施方式中,所述缓冲区为环形缓冲区。

其中,处理器、存储器和收发机之间通过总线连接,总线架构可以包括任意数量的互联的总线和桥,具体由处理器代表的一个或多个处理器和存储器代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器负责管理总线架构和通常的处理,存储器可以存储处理器在执行操作时所使用的数据。

需要说明的是,以上各实施例中的设备可以是能够用于实时语音通信的任意类型的终端。

基于上述技术方案,本发明实施例中,设备接收语音数据以及语音播放速率的控制指令,将语音数据保存至缓冲区,并对缓冲区的语音数据包进行语音活动检测,根据语音播放速率的控制指令、缓冲区的数据存储状态以及检测结果,调整待播放的语音数据的长度,从而为在实时语音通信过程中实现语音变速播放提供解决方案,并且结合缓冲区的数据存储状态以及语音活动检测结果调整系统的行为(快速播放/慢速播放/正常播放),以保证缓冲区中的数据不会因为慢速播放出现上溢,也不会因为快速播放出现下溢,保证系统的正常运行。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1