掌桥专利:专业的专利平台
掌桥专利
首页

语音处理方法、直播的语音播放方法、装置、设备及系统

文献发布时间:2023-06-19 11:57:35


语音处理方法、直播的语音播放方法、装置、设备及系统

技术领域

本申请涉及语音处理技术领域,尤其涉及一种语音处理方法、直播的语音播放方法、装置、设备及系统。

背景技术

随着互联网技术的不断发展,通过网络获取并播放语音的应用越来越广泛。

目前,由于在网络上传输的数据包总会存在一定的网络延时,延时大小的不一致造成了网络延时的抖动,即延时抖动,因此为了提高语音质量,减少延时抖动,一般方法是在接收端建立缓存区,语音数据包到达后先暂存于缓存区,实现了通过缓存区增加延时来消除网络延时的抖动。并且,为了使得缓存区增加的延时能够与网络延时匹配,通常采用根据网络延时确定缓存延时,并根据缓存延时进行语音数据包的缓存。其中,接收到的所述语音数据包均用于确定网络延时。

然而,上述处理方式,存在确定的缓存延时不合适,导致用户收听音频的效果较差的问题。

发明内容

本申请实施例提供一种语音处理方法、直播的语音播放方法、装置、设备及系统,用以解决现有技术中确定的缓存延时不合适,导致用户收听音频的效果较差的问题。

第一方面,本申请实施例提供一种语音处理方法,包括:

基于来自发送端的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时;

根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存。

第二方面,本申请实施例提供一种直播的播放处理方法,应用于接收端,包括:

在重传功能开启的情况下,基于来自发送端的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时;

根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存;

根据所述缓存延时以及所述网络延时,控制缓存的所述语音数据包的播放。

第三方面,本申请实施例提供一种语音处理装置,包括:

网络延时模块,用于基于来自发送端的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时;

缓存延时模块,用于根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存。

第四方面,本申请实施例提供一种直播的播放处理装置,包括:

网络延时模块,用于在重传功能开启的情况下,基于来自发送端的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时;

缓存延时模块,用于根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存;

播放控制模块,用于根据所述缓存延时以所述网络延时,控制缓存的所述语音数据包的播放。

第五方面,本申请实施例提供一种接收端,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现第一方面任一项所述的方法。

第六方面,本申请实施例提供一种接收端,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现第二方面任一项所述的方法。

第七方面,本申请实施例提供一种语音处理系统,包括:发送端以及第五方面任一项所述的接收端,所述发送端用于向所述接收端发送语音数据包。

第八方面,本申请实施例提供一种直播的播放处理系统,包括:发送端以及第六方面任一项所述的接收端,所述发送端用于向所述接收端发送语音数据包。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行如第一方面任一项所述的方法。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行如第二方面任一项所述的方法。

本申请实施例还提供一种计算机程序,当所述计算机程序被计算机执行时,用于实现如第一方面任一项所述的方法。

本申请实施例还提供一种计算机程序,当所述计算机程序被计算机执行时,用于实现如第二方面任一项所述的方法。

本申请实施例提供的语音处理方法、直播的语音播放方法、装置、设备及系统,通过基于来自发送端的部分语音数据包,计算接收端与发送端之间当前的网络延时,并根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存,实现了接收端基于来自发送端的部分语音数据包计算网络延时,避免了一些特殊场景(例如,弱网环境下开启重传功能的场景)导致根据接收端与发送端之间实际的网络延时所确定的缓存延时不合适的问题,使得所确定的缓存延时能够符合场景需求,从而提高了用户收听音频的效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例的应用场景示意图;

图2为本申请实施例提供的网页即使通信的示意图;

图3为本申请实施例提供的播放原理示意图;

图4为本申请一实施例提供的语音处理方法的流程示意图;

图5为本申请另一实施例提供的语音处理方法的流程示意图;

图6为本申请一实施例提供的直播的播放处理方法的流程示意图;

图7为本申请一实施例提供的语音处理装置的结构示意图;

图8为本申请一实施例提供的接收端的结构示意图;

图9为本申请一实施例提供的直播的播放处理装置的结构示意图;

图10为本申请另一实施例提供的接收端的结构示意图。

具体实施方式

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

在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。

本申请实施例提供的语音处理方法可以应用于如图1所示的应用场景中,如图1所示,该应用场景可以包括发送端11、网络12以及接收端13。其中,发送端11与接收端13通过网络12通信连接。

其中,发送端11可以通过声音采集装置(例如麦克风)采集语音信号,根据采集到的语音信号生成语音数据包,并通过网络12将语音数据包发送至接收端13。由于网络12的网络环境复杂,网络12中存在延时、抖动、丢包、乱序等现象。为了提高语音质量,减少网络12的延时抖动对语音数据包播放的影响,接收端13在通过网络12接收到语音数据包之后,先将语音数据包暂存于缓存区,通过缓存区增加一定的缓存延时来消除网络延时的抖动,然后从缓存区中获取语音数据包并通过声音播放装置(例如扬声器)进行播放。

需要说明的是,本申请实施例提供的语音处理方法可以应用于接收端13,对于接收端13与发送端11进行通信的具体方式,本申请不做限定。

图1中发送端11与接收端13之间的通信场景可以为实时通信场景,即(直播场景),发送端11在采集生成语音数据包之后,可以实时将语音数据包发送至接收端13。基于此,实时通信场景具体可以为实时语音通信场景或者实时视频通信场景,对于实时视频通信场景,针对实时视频通信中的语音信号可以采用本申请实施例提供的方法进行处理,针对实时视频通信中的图像信号可以采用与语音信号不同的方式进行处理。

或者,图1中发送端11与接收端13之间的通信场景可以为非实时场景,(即非直播场景),发送端11中可以保存有预先生成的语音数据包,该语音数据包可以由发送端11采集语音信号生成,或者也可以由发送端11之外的其他设备采集、生成并发送至发送端11进行存储。

或者,发送端11与接收端13之间的通信场景可以为实时通信场景+非实时通信场景。在发送端11实时将其采集并生成的语音数据包发送至接收端13的过程中,在满足一定条件下可以切换为将发送端11预先保存的语音数据包发送至接收端13,以实现在直播场景下进行插播的功能。

以发送端11和接收端13通过网页即时通信(Web Real-Time Communication,WebRTC)语音引擎进行通信为例,如图2所示,语音引擎完成了从语音采集到语音播放整个流程的处理。具体的,首先在发送端11通过麦克风采集获得模拟的语音信号,将模拟的语音信号通过模数转换器(Analog-to-Digital Converter,ADC)转换为数字的语音信号实现声音采集,进一步的对语音信号进行声学回音消除(Acoustic Echo Canceler,AEC)、噪声抑制(Noise Reduction,NS)、自动增益控制(Automatic Gain Control,AGC)等处理,然后进行语音压缩编码(Encoder),并通过因特网(Internet)网络12传输到接收端13。语音数据包到达接收端13后,首先进入虚线框所示的NetEQ模块进行基于抖动缓存区(Jitter Buffer,JB)的抖动消除、丢包隐藏(Packet Loss Concealment,PLC)、压缩解码(Decoder)操作,然后在进行噪声抑制、自动增益控制后处理之后,通过数模转换器(Digital-to-AnalogConverter,DAC)将语音信号由数字信号转换成模拟信号并通过扬声器进行播放,以实现声音播放。

其中,NetEQ模块主要负责消除因网络传输路径和拥塞情况变化所造成的丢包和时延抖动问题。具体的,NetEQ模块在接收端建立缓存区,如图3所示,WebRTC语音引擎在运行时会启动两个线程分别为接收线程和解码线程,接收线程用于接收来自于网络的语音数据包,在语音数据包达到后将其插入到抖动缓存区中,解码线程通过共享内存的方式从抖动缓存区中读取语音数据包并通过解码器进行解码,解码之后放入解码缓存区,并由数字信号处理器(Digital Signal Processor),DSP)从解码缓存区中读取解码后的语音数据进行处理,并在处理后进行播放。其中,可以由微控制单元(Microcontroller Unit,MCU)根据接收到的语音数据包确定网络延时,根据网络延时确定缓存延时,并根据网络延时和缓存延时控制DSP完成语音播放。需要说明的是,图3仅为播放原理的举例,不构成对本申请的限定。

可以理解的是,在发送端11和接收端13通过WebRTC语音引擎进行通信时,由于NetEQ模块可以实现抖动消除功能,因此本申请实施例提供的语音处理方法可以用于对NetEQ模块进行优化。需要说明的是,本申请实施例提供的语音处理方法并不局限于优化NetEQ模块,而是能够用于任何通过缓存区实现抖动消除的对象。

通常,接收端13是基于来自接收端的所有语音数据包,计算接收端13与发送端11之间当前的网络延时,即,网络延时能够反映发送端11通过网络12发送的所有语音数据包到达接收端的延时,进一步的可以根据网络延时确定缓存延时。

然而,由于缓存延时是由网络延时决定的,而影响网络延时的因素是非常复杂的,因此对于一些特殊场景不可避免的会存在根据网络12实际的网络延时所确定的缓存延时不合适的问题。

示例性的,在网络12的网络环境是高丢包率的弱网环境的情况下,为了实现丢包恢复以提高语音质量,接收端13可以开启重传功能,在接收端13开启重传功能之后,发送端11可以根据接收端13对于一个语音数据包的非确认(negative acknowledgement,NACK)应答,对该语音数据包进行重传,以使接收端13能够成功接收到该语音数据包。当开启重传功能之后,不可避免的语音数据包的延时会大幅增加,进而确定网络延时会大幅增大,从而缓存延时也会大幅增大,当缓存延时大幅增大时会造成人耳听到语音的延时不合适的问题。

本申请实施例提供的语音处理方法,通过基于来自发送端的部分语音数据包,计算接收端与发送端之间当前的网络延时,并根据网络延时确定缓存延时,以基于缓存延时进行来自接收端的语音数据包的缓存,实现了接收端基于来自发送端的部分语音数据包计算网络延时,避免了一些特殊场景导致根据接收端与发送端之间实际的网络延时所确定的缓存延时不合适的问题。

下面结合附图,对本申请的一些实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

图4为本申请一实施例提供的语音处理方法的流程示意图,本实施例的执行主体可以为图1中的接收端13,具体的,可以为接收端13中的处理器。如图4所示,本实施例的方法可以包括:

步骤401,基于来自发送端的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时。

本步骤中,网络延时是指接收端与发送端的统计延时,具体是接收端基于发送端的部分语音数据包统计得到。假设语音数据包1、2属于所述部分语音数据包,而语音数据包3不属于所述部分语音数据包,则接收端在接收到来自发送端的语音数据包1时,可以根据语音数据包1计算当前的网络延时;接收端在接收到来自发送端的语音数据包2时,可以根据语音数据包2计算当前的网络延时;接收端在接收到来自发送端的语音数据包3时,可以跳过计算当前的网络延时的处理。

其中,所述网络延时可以理解为接收端的理想延时。理想情况下,在接收端的缓存区带来的延时等于网络延时情况下,接收端对于语音数据包的缓存能够最大程度消除网络对于语音数据包的延时抖动。

需要说明的是,对于基于语音数据包确定网络延时的具体方式,本申请实施例不做限定。例如,可以根据语音数据包的时间戳,确定语音数据包的延时,进一步的根据语音数据包的延时确定网络延时。

步骤402,根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存。

本步骤中,根据网络延时所确定的缓存延时能够用于进行来自所述发送端的语音数据包的缓存,从而影响实际缓存的语音数据包的数量,而实际缓存的语音数据包的数量能够表征缓存带来的实际延时,因此基于网络延时能够确定出使得缓存带来的实际延时能够与理想延时匹配的缓存延时。

所述缓存延时可以用于动态调节抖动缓存区的大小。抖动缓存区的大小可以与发送端在进行语音采集时单个语音数据包的时长以及缓存延时有关。缓存延时越长,可以表示抖动缓存区需要缓存的时长越长,抖动缓存区的大小可以越大;缓存延时越短,可以表示抖动缓存区需要缓存的时长越短,缓存区的大小可以越小。在缓存延时一定的情况下,单个语音数据包的时长越长,抖动缓存区的大小可以越小,单个语音数据包的时长越短,抖动缓存区的大小可以越小。

需要说明的是,对于根据网络延时确定缓存延时的具体方式,本申请实施例不做限定。

本实施例中,通过基于来自发送端的部分语音数据包,计算接收端与发送端之间当前的网络延时,并根据网络延时确定数据包的缓存延时,以基于缓存延时对从发送端接收到的语音数据包进行缓存,实现了接收端基于来自发送端的部分语音数据包计算网络延时,避免了一些特殊场景导致根据接收端与发送端之间实际的网络延时所确定的缓存延时不合适的问题,使得所确定的缓存延时能够符合场景需求,从而提高了用户收听音频的效果。

图5为本申请另一实施例提供的语音处理方法的流程示意图,本实施例在图4所示实施例的基础上,主要描述了一种可选的实现方式,如图5所示,本实施例的方法可以包括:

步骤501,基于来自发送端的满足目标条件的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时。

本步骤中,语音数据包满足目标条件,可以表示需要根据该语音数据包确定网络延时;语音数据包不满足目标条件,可以表示不需要根据该语音数据包确定网络延时。其中,所述目标条件可以根据需求灵活实现,例如,在减少人耳听到语音的延时的需求下,目标条件例如可以为延时小于一定阈值,对于延时小于该阈值的语音数据包用于确定网络延时,而对于延时大于该阈值的语音数据包不用于确定网络延时,以降低网络延时,由此降低缓存延时,从而降低人耳听到语音的延时。

可选的,所述目标条件可以包括:是非重传数据包,和/或,是重传数据包且延时满足延时条件。

通过目标条件包括是非重传数据包,实现了在接收端开启重传功能的场景下,根据非重传的语音数据包确定网络延时,即对于非重传的语音数据包仍然按照原有逻辑进行处理。由于非重传数据包其延时通常小于重传数据包的延时,从而可以避免语音数据包延时过大对缓存延时的影响,避免大人耳听到语音的延时不合适的问题。

通过目标条件包括是重传数据包且延时满足延时条件,实现了在接收端开启重传功能的场景下,根据满足延时条件的重传数据包确定网络延时,通过满足延时条件实现了对用于确定网络延时的重传数据包的限制,使得满足延时条件的重传数据包能够增大缓存延时,而不满足延时条件的重传数据包不能够增加缓存延时,即针对重传数据包,需要增加额外的控制机制。由于重传功能下,接收端在时间上判断丢失的语音数据包能够在播放重传到达,才发送针对该语音数据包的重传请求,因此增大缓存延时能够增加重传恢复率,从而提高语音质量。从而,通过选择部分重传数据包纳入网络延时的计算,既满足了部分丢失包重传恢复,实现音质上的提升,又一定程度上控制了缓存延时的增长,实现了延时和音质上折中处理,提升了在高丢包弱网情况下用户收听音频的效果。

需要说明的是,对于确定语音数据包的延时的具体方式,本申请不做限定,示例性的,可以根据语音数据包的时间戳确定语音数据包的延时。

其中,所述延时条件可以根据需求灵活实现。示例性的,所述延时条件包括:延时小于第一时长阈值,和/或,延时大于所述第一时长阈值且小于第二时长阈值,所述第二时长阈值大于所述第一时长阈值。

通过延时条件包括延时小于第一时长阈值,实现了能够根据延时小于第一时长阈值的重传的语音数据包确定网络延时,使得延时小于第一时长阈值的语音数据包能够用于增大缓存延时。其中,所述第一时长阈值可以根据需求灵活实现。示例性的,所述第一时长阈值可以为预设值,所述第一时长阈值可以参考人耳能够接受的最大语音延时和/或平台期望的最大语音延时进行设置,所述第一时长阈值例如可以为200毫秒(ms)。

具体的,延时小于第一时长阈值的重传的语音数据包,由于其延时相对于非重传的语音数据包的延时要大,因此会增大网络延时,但由于其延时值在可接受范围之内,故更新网络延时,从而使缓存延时增大,让尽量多的丢失语音数据包有充足的时间通过重传恢复,语音质量也得以提升。

通过预设条件包括时延大于第一时长阈值且小于第二时长阈值,实现了能够根据时延大于第一时长阈值且小于第二时长阈值的重传的语音数据包确定网络延时,使得延时大于第一时长阈值且小于第二时长阈值的语音数据包能够用于增大缓存延时。其中,所述第二时长阈值可以根据需求灵活实现。示例性的,所述第二时长阈值可以根据当前缓存的语音数据包确定。示例性的,所述第二时长阈值可以等于目标时长与预设系数的乘积,所述目标时长表示当前缓存的语音数据包能够播放的时长,所述预设系数大于0且小于1。其中,预设系数例如可以为0.8。

由于当前缓存的语音数据包越多,表示当前缓存的语音数据包能够播放的时间越长,语音数据包的时延大于第一时长阈值且小于第二时长阈值可以表示当前缓存的语音数据包还可以再等一段时间,能够允许更长一点的时延,因此可以根据时延大于第一时长阈值且小于第二时长阈值的重传语音数据包调节缓存延时,有利于进一步提高语音质量。

具体的,当重传数据包的延时大于第一延时阈值时,缓存延时需要自适应调节,如果网络很差,缓存延时也只能增加,但通过第二时长阈值能够控制动态的缓缓增加。通过第二延时阈值,若重传数据包的延时小于第二延时阈值,选择更新网络延时,使得缓存延时小幅增长;反之,当重传数据包的延时大于第二延时阈值,若更新网络延时,其值可能大幅增加,使得缓存数据消耗更慢,故此时可以维持网络延时不变。

通过延时条件,使得在功能开启,语音数据包的延时较大的场景下,能够控制缓存时延自适应的增长,不会增长的过多,但也可以让尽可能多的丢失的语音数据包通过重传恢复,语音质量大幅提升。

示例性的,可以通过如下步骤A-步骤D实现根据语音数据包a确定网络延时,其中,语音数据包a即为前述满足目标条件的语音数据包。

步骤A,计算语音数据包a的到达间隔。

例如,接收到语音数据包a之后,依据其时间戳和序列号计算该语音数据包a的到达间隔(inter-arrival time,Iat),即延时了多少个数据包到达。比如提前到达的数据包Iat值为0,按序到达的Iat值为1,延迟一个数据包到达的Iat值为2,可以设置Iat的最大值为64。

步骤B,根据语音数据包a的到达间隔,生成到达间隔的概率分布。

例如,可以得到Iat在[0,64]的概率分布。

步骤C,根据概率分布,得到累计概率满足一定概率阈值的到达间隔,记为B。

其中,概率阈值例如可以为95%。例如,假设Iat是0的概率为70%,Iat是1的概率为15%,Iat是2的概率是10%,Iat是3的概率是5%,且概率阈值等于95%,则累计概率满足概率阈值的Iat值等于2,即B等于2。

步骤D,根据概率分布以及预设间隔进行峰值检测,确定到达间隔的峰值。

其中,到达间隔的峰值例如为Iat峰值。

步骤E,根据B以及到达间隔的峰值得到网络延时。

其中,可以将B和峰值中的较大值作为网络延时。

步骤502,根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存。

本步骤中,例如,可以通过如下步骤F-步骤G实现根据网络延时确定缓存延时。

步骤F,确定与所述网络延时对应的确定因子。

步骤G,根据所述确定因子得到缓存延时。

具体的,可以定义缓存延时为L,确定因子f,缓存延时可以满足如下公式(1)。

L(n)=f×L(n-1)+(1-f)×x; 公式(1)

其中,L(n)表示当前的缓存延时,L(n-1)表示上一次的缓存延时,x表示当前缓存的语音数据包能够播放的时长。确定因子f根据B值确定,f的取值与B值的关系例如可以如下表1所示。

表1

步骤503,根据所述缓存延时以及所述网络延时,控制缓存的所述语音数据包的播放。

本步骤中,缓存的所述语音数据包包括用于计算网络延时的语音数据包,以及未用于计算网络延时的语音数据包。即,对于来自发送端的语音数据包,均需要进行缓存。需要说明的是,对于语音数据包放入缓存区中的具体方式,本申请实施例不做限定,例如可以根据接收到语音数据包的顺序依次放入缓存区中。

具体的,可以根据缓存延时和所述网络延时的大小关系,控制缓存的语音数据包的播放,以增大或减小当前缓存的语音数据包的数量,从而增大或减少缓存带来的实际延时,使得实际延时接近于理想延时。

示例性的,步骤503具体可以包括如下步骤H-步骤J。

步骤H,根据所述网络延时,确定正常播放模式下所允许的最大延时和最小延时。

步骤I,根据所述缓存延时与所述最大延时和所述最小延时的大小关系,控制缓存的所述语音数据包的播放模式。

步骤J,根据所述目标播放模式控制所述缓存区中语音数据包的播放。

其中,最大延时、最小延时、缓存延时以及播放模式的关系例如可以如下表2所示。

表2

其中,H表示最大延时,L表示最小延时,Blo表示网络延时,Blc表示缓存延时。

可选的,步骤503之前还可以包括:在重传功能开启的情况下,判断当前缓存的语音数据包是否满足针对所述重传功能的播放条件;若不满足所述播放条件,则暂停缓存的所述语音数据包的播放;若满足所述播放条件,则执行步骤504。

通过播放条件能够实现对缓存的语音数据包进一步的播放控制。具体的,在当前缓存的语音数据包满足针对重传功能的播放条件的情况下通过根据所述缓存延时以及所述网络延时,控制缓存的语音数据包的播放;在当前缓存的语音数据包不满足针对重传功能的播放条件的情况下,暂停语音数据包的播放。基于此,通过播放条件可以避免在重传功能开启,且当前缓存的语音数据包不满足针对重传功能的播放条件场景下,对缓存的语音数据包进行播放所带来的问题。

示例性的,所述播放条件包括下述中的任意一种:当前缓存的语音数据包的最大缓存时长大于或等于缓存时长阈值、接收到的语音数据包的总数量大于或等于第一数量阈值、或当前缓存的语音数据包的数量大于或等于第二数量阈值。基于此,通过播放条件可以避免在重传功能开启,且当前缓存的语音数据包过少的场景下,对缓存的语音数据包进行播放所带来的问题。其中,缓存时长阈值可以理解为允许暂停的最大时长,所述缓存时长阈值可以为预设值。

具体的,由于重传功能下,接收端在时间上判断丢失的语音数据包能够在播放重传到达,才发送针对该语音数据包的重传请求,因此,在重传功能开启且当前缓存的语音数据包过少的情况下,如果不对缓存的语音数据包进行暂停播放,会存在很多语音数据包的重传请求被丢弃,丢包恢复率低,从而导致语音质量差。通过在重传功能开启且当前缓存的语音数据包过少时暂停播放,能够让更多的重传请求生效,提高丢包恢复率,从而提升语音质量。其中,丢包恢复率是指到达的有效重传包与丢失数据包的比例。

通过播放条件包括重传功能开启且接收到的语音数据包的总数量小于第一数量阈值,能够实现在开始通话的一段时间内,通过暂停播放的方式控制并快速增大缓存延时。

其中,第一数量阈值与第二数量阈值可以相同,第一数量阈值和/或第二数量阈值可以为预设值;或者,第一数量阈值和/或第二数量阈值根据语音数据包的接收速率以及所述缓存时长阈值确定。通过第一数量阈值和/或第二数量阈值根据接收速率以及缓存时长阈值确定,使得数量阈值的取值能够更符合使用场景。例如,假设接收速率为20ms/个,且缓存时长阈值为300ms,则第一数量阈值可以为15,即在第16个语音数据到达时可以开始取包解码,通过缓存15个语音数据包相当于暂停300ms。

在实际应用中,较短的播放暂停并不会对原有的通话体验造成影响,但通过播放暂停能够使得暂停播放的时段内丢包恢复率大幅度提高,从而提升了语音质量。

本实施例中,通过基于来自发送端的满足目标条件的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时,并根据网络延时确定数据包的缓存延时,实现了只有在来自发送端的语音数据包满足目标条件的情况下才根据该语音数据包计算网络延时,避免了根据接收端与发送端之间实际的网络延时所确定的缓存延时不合适的问题,使得所确定的缓存延时能够符合场景需求,从而提高了用户收听音频的效果。

在重传功能开启且目标条件包括延时小于第一时长阈值和延时大于所述第一时长阈值且小于第二时长阈值,播放条件包括重传功能开启且接收到的语音数据包的总数量小于第一数量阈值的场景下,进行对比实验结果如下:

在40%丢包率环境下,优化后相比优化前且未开启重传功能,时延增加230ms但平均意见值(Mean Opinion Score,MOS)值由1.87提升1.27至3.14,音质提升明显;优化后相比优化前且开启重传功能,MOS值由3.46仅下降0.32,音质降的不是特别多,但时延减少170ms;前N个语音数据包时间内暂停播放,快速加大延迟让重传请求生效,提高丢包恢复率,使得前十秒的丢包恢复率提高20%左右,结果几乎接近1。

图6为本申请一实施例提供的直播的播放处理方法的流程示意图,本实施例的执行主体可以为图1中的接收端13,具体的,可以为接收端13中的处理器。如图6所示,本实施例的方法可以包括:

步骤601,在重传功能开启的情况下,基于来自发送端的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时;

步骤602,根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存;

步骤603,根据所述缓存延时以及所述网络延时,控制缓存的所述语音数据包的播放。

需要说明的是,关于确定网络延时、缓存延时以及根据网络延时和缓存延时控制缓存的语音数据包播放的具体方式,可以参见前述实施例的相关描述,在此不再赘述。

本实施例中,通过在重传功能开启的情况下,基于来自发送端的部分语音数据包,计算接收端与发送端之间当前的网络延时,根据网络延时确定数据包的缓存延时,以基于缓存延时对从发送端接收到的语音数据包进行缓存,并根据缓存延时以及网络延时控制缓存的语音数据包的播放,实现了接收端基于来自发送端的部分语音数据包计算网络延时,避免了开启重传功能场景下根据接收端与发送端之间实际的网络延时所确定的缓存延时过大,导致直播过程中延时过大的问题,从而提高了直播的性能。

图7为本申请一实施例提供的语音处理装置的结构示意图;参考附图6所示,本实施例提供了一种语音处理装置,该装置可以执行上述的语音处理方法,具体的,该语音处理装置可以包括:

网络延时模块71,用于基于来自发送端的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时;

缓存延时模块72,用于根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存。

可选的,所述网络延时模块71,具体用于基于来自发送端的满足目标条件的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时。

可选的,所述目标条件包括:是非重传数据包,和/或,是重传数据包且延时满足延时条件。

可选的,所述延时条件包括:延时小于第一时长阈值,和/或,延时大于所述第一时长阈值且小于第二时长阈值,所述第二时长阈值大于所述第一时长阈值。

可选的,所述第一时长阈值为预设值。

可选的,所述第二时长阈值根据当前缓存的语音数据包确定。

可选的,所述第二时长阈值等于目标时长与预设系数的乘积,所述目标时长表示当前缓存的语音数据包能够播放的时长,所述预设系数大于0且小于1。

可选的,所述装置还包括:播放控制模块,用于根据所述缓存延时以及所述网络延时,控制缓存的所述语音数据包的播放。

可选的,所述装置还包括:判断模块和暂停模块;

所述判断模块,用于在重传功能开启的情况下,判断当前缓存的语音数据包是否满足针对所述重传功能的播放条件;

所述暂停模块,用于若不满足所述播放条件,则暂停缓存的所述语音数据包的播放;

所述播放控制模块,具体用于若满足所述播放条件,则根据所述缓存延时以及所述网络延时,控制缓存的所述语音数据包的播放。

可选的,所述播放条件包括下述中的任意一种:

当前缓存的语音数据包的最大缓存时长大于或等于缓存时长阈值、接收到的语音数据包的总数量大于或等于第一数量阈值、或当前缓存的语音数据包的数量大于或等于第二数量阈值。

可选的,所述第一数量阈值和/或所述第二数量阈值根据语音数据包的接收速率和所述缓存时长阈值确定。

图7所示装置可以执行图4-图5所示实施例的方法,本实施例未详细描述的部分,可参考对图4-图5所示实施例的相关说明。该技术方案的执行过程和技术效果参见图4-图5所示实施例中的描述,在此不再赘述。

在一个可能的实现中,图7所示语音处理装置的结构可实现为一接收端。如图8所示,该接收端可以包括:处理器81和存储器82。其中,存储器82用于存储支持接收端执行上述图4-图5所示实施例中提供的程序,处理器81被配置为用于执行存储器82中存储的程序。

程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器71执行时能够实现如下步骤:

基于来自发送端的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时;

根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存根据所述网络延时,确定缓存延时,以基于所述缓存延时进行来自所述发送端的语音数据包的缓存。

可选的,处理器81还用于执行前述图4-图5所示实施例中的全部或部分步骤。

其中,接收端的结构中还可以包括通信接口83,用于接收端与其他设备或通信网络通信。

图9为本申请一实施例提供的直播的播放处理装置的结构示意图;参考附图6所示,本实施例提供了一种语音处理装置,该装置可以执行上述的直播的播放处理方法,具体的,该直播的播放处理装置可以包括:

网络延时模块91,用于在重传功能开启的情况下,基于来自发送端的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时;

缓存延时模块92,用于根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存;

播放控制模块93,用于根据所述缓存延时以所述网络延时,控制缓存的所述语音数据包的播放。

可选的,所述网络延时模块91,具体用于基于来自发送端的满足目标条件的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时。

可选的,所述目标条件包括:是非重传数据包,和/或,是重传数据包且延时满足延时条件。

可选的,所述延时条件包括:延时小于第一时长阈值,和/或,延时大于所述第一时长阈值且小于第二时长阈值,所述第二时长阈值大于所述第一时长阈值。

可选的,所述第一时长阈值为预设值。

可选的,所述第二时长阈值根据当前缓存的语音数据包确定。

可选的,所述第二时长阈值等于目标时长与预设系数的乘积,所述目标时长表示当前缓存的语音数据包能够播放的时长,所述预设系数大于0且小于1。

可选的,所述装置还包括:判断模块和暂停模块;

所述判断模块,用于在重传功能开启的情况下,判断当前缓存的语音数据包是否满足针对所述重传功能的播放条件;

所述暂停模块,用于若不满足所述播放条件,则暂停缓存的所述语音数据包的播放;

所述播放控制模块93,具体用于若满足所述播放条件,则根据所述缓存延时以及所述网络延时,控制缓存的所述语音数据包的播放。

可选的,所述播放条件包括下述中的任意一种:

当前缓存的语音数据包的最大缓存时长大于或等于缓存时长阈值、接收到的语音数据包的总数量大于或等于第一数量阈值、或当前缓存的语音数据包的数量大于或等于第二数量阈值。

可选的,所述第一数量阈值和/或所述第二数量阈值根据语音数据包的接收速率和所述缓存时长阈值确定。

图9所示装置可以执行图6所示实施例的方法,本实施例未详细描述的部分,可参考对图6所示实施例的相关说明。该技术方案的执行过程和技术效果参见图9所示实施例中的描述,在此不再赘述。

在一个可能的实现中,图9所示语音处理装置的结构可实现为一接收端。如图10所示,该接收端可以包括:处理器101和存储器102。其中,存储器102用于存储支持接收端执行上述图6所示实施例中提供的程序,处理器101被配置为用于执行存储器102中存储的程序。

程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器71执行时能够实现如下步骤:

在重传功能开启的情况下,基于来自发送端的部分语音数据包,计算所述接收端与所述发送端之间当前的网络延时;

根据所述网络延时,确定数据包的缓存延时,以基于所述缓存延时对从所述发送端接收到的语音数据包进行缓存;

根据所述缓存延时以及所述网络延时,控制缓存的所述语音数据包的播放。

可选的,处理器101还用于执行前述图6所示实施例中的全部或部分步骤。

其中,接收端的结构中还可以包括通信接口103,用于接收端与其他设备或通信网络通信。

另外,本申请实施例还提供了一种语音处理系统,包括:发送端以及图8所示的接收端。其中,所述发送端用于向所述接收端发送语音数据包。

本申请实施例还提供了一种直播的播放处理系统,包括:发送端以及图10所示的接收端。其中,所述发送端用于向所述接收端发送语音数据包。

本申请实施例还提供一种计算机存储介质,用于储存终端所用的计算机软件指令,其包含用于执行上述图4-图5所示方法实施例中语音处理方法所涉及的程序。

本申请实施例还提供一种计算机存储介质,用于储存终端所用的计算机软件指令,其包含用于执行上述图6所示方法实施例中直播的播放处理方法所涉及的程序。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对传统技术做出贡献的部分可以以计算机产品的形式体现出来,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

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

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

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

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

相关技术
  • 语音处理方法、直播的语音播放方法、装置、设备及系统
  • 一种直播语音处理方法、装置、设备及存储介质
技术分类

06120113112167