【技术实现步骤摘要】
语音信号处理方法、装置、电子设备及可读存储介质
[0001]本公开涉及计算机
,具体涉及语音
,尤其涉及一种语音信号处理方法、装置、电子设备及可读存储介质。
技术介绍
[0002]目前,各类即时通信工具主要通过选择性转发单元(Selective Forwarding Unit,SFU)的会议方案实现多终端在线语音交互。SFU会议方案由服务器和多个终端组成,SFU不会音视频进行混流,而是根据特定算法选择会议中的某几个终端的音视频流,转发给会议中的其他终端,终端需要自己来混音。SFU实际上就是一个音视频路由转发器,适合大规模部署。如果SFU会议终端想要与通信协议不同的第三方网络中的第三方终端进行通话,就需要通信网关接入第三方网络中。
[0003]现有技术中,可以使用FreeSwitch(也可称为电话软交换)作为连接SFU会议终端以及第三方终端的通信网关。其中,FreeSwitch是一个开源的、多协议的通信软交换平台,实现多种通信功能。从技术上讲,FreeSwitch是一个背靠背用户代理(Back to Back User Agent,B2BUA),用来帮助所连接的双方进行音视频通话。但是,B2BUA机制无法对SFU会议中的转发的多路语音流进行混音,当第三方终端无法进行混音处理时,同一时间第三方终端只能听到多路语音流中的一路。
技术实现思路
[0004]本公开提供了一种语音信号处理方法、装置、电子设备及可读存储介质。
[0005]根据本公开的一方面,提供了一种语音信号处理方法,包 ...
【技术保护点】
【技术特征摘要】
1.一种语音信号处理方法,包括:在接收到选择性转发单元SFU服务器发送的至少两路语音信号时,将与各路所述语音信号对应的各语音包单独存储在匹配的缓存队列中;当满足多路语音信号的混音条件时,从各缓存队列中分别获取对应的语音包构成复合语音包;获取电话软交换FreeSwitch通信网关中的解码模块对所述复合语音包中的各语音包进行解码得到的多个解码语音信号;将各所述解码语音信号进行混音处理,得到混音包,并将所述混音包发送至终端。2.根据权利要求1所述的方法,其中,将与各路所述语音信号对应的各语音包单独存储在匹配的缓存队列中,包括:在检测到与第一目标路数匹配的目标语音包时,提取所述目标语音包的第一基础序列号;获取与所述目标语音包匹配的目标缓存队列的当前序列号翻转次数以及序列号翻转门限值;根据所述第一基础序列号、所述当前序列号翻转次数以及所述序列号翻转门限值,确定与所述目标语音包匹配的目标扩展序列号;按照所述目标扩展序列号,将所述目标语音包插入至所述目标缓存队列中。3.根据权利要求2所述的方法,其中,按照所述目标扩展序列号,将所述目标语音包插入至所述目标缓存队列中,包括:检测所述目标语音包是否为与设定语音片段对应的首个语音包;若是,则按照所述目标扩展序列号,将所述目标语音包插入至所述目标缓存队列中;否则,根据所述目标缓存队列中的末位扩展序列号,确定期望插入序列号;如果所述期望插入序列号与所述目标扩展序列号相匹配,则按照所述目标扩展序列号,将所述目标语音包插入至所述目标缓存队列中;如果所述期望插入序列号与所述目标扩展序列号不相匹配,则确定发生丢包事件,或者确定所述目标语音包为发生丢包事件后的重传数据包;如果确定发生丢包事件,则构建丢包重传请求包,并按照所述目标扩展序列号,将所述目标语音包插入至所述目标缓存队列中;如果确定所述目标语音包为发生丢包事件后的重传数据包,则检测所述目标语音包是否满足时效性要求;若是,则按照所述目标扩展序列号,将所述目标语音包插入至所述目标缓存队列中;否则,丢弃所述目标语音包。4.根据权利要求3所述的方法,其中,构建丢包重传请求包,包括:根据所述期望插入序列号和所述目标扩展序列号,确定与丢失语音包对应的第二基础序列号;根据所述第二基础序列号,构建丢包重传请求包,并将所述丢包重传请求包发送至所述SFU服务器,以请求发送所述丢失语音包的SFU终端对所述丢失语音包进行丢包重传。5.根据权利要求1所述的方法,当满足多路语音信号的混音条件时,从各缓存队列中分别获取对应的语音包构成复合语音包,包括:当满足多路语音信号的混音条件时,判断是否能从各缓存队列中均获取一个语音包;
若是,则将从各缓存队列中分别获取的语音包构成复合语音包;若否,则等待预设目标时长后,重新判断是否能从上次未获取到语音包的各缓存队列中均获取一个语音包;如果确定能从上次未获取到语音包的各缓存队列中均获取一个语音包,则将前后两次获取的各语音包构成复合语音包;如果确定不能从上次未获取到语音包的各缓存队列中均获取一个语音包,则构建与当前未能获取到语音包的各缓存队列分别对应的静音包,并将前后两次获取的各语音包以及各静音包构成复合语音包。6.根据权利要求5所述的方法,其中,所述语音包中包括:有效语音标识信息和语音能量值;在判断是否能从各缓存队列中均获取一个语音包之前,还包括:检测各缓存队列当前缓存的各语音包是否超过预设数量门限值,并根据检测结果,确定过载缓存队列;剔除所述过载缓存队列中有效语音标识信息设置为无效,和/或,语音能量值小于或者等于预设能量门限值的语音包。7.根据权利要求1所述的方法,其中,将各所述解码语音信号进行混音处理,得到混音包,包括:将各所述解码语音信号进行时域叠加,得到时域叠加信号;如果确定所述时域叠加信号出现信号幅值溢出,则按照预设溢出处理算法,对所述时域叠加信号进行溢出处理。8.一种语音信号处理方法,包括:获取终端发送的原始语音数据包;对所述原始语音数据包中的原始语音信号进行解析处理,并计算与所述原始语音信号对应的有效语音标识信息和语音能量值;根据所述原始语音信号对应的有效语音标识信息和语音能量值,形成被选择性转发单元SFU服务器采用进行选路处理的改进语音数据包;将所述改进语音数据包发送至所述SFU服务器。9.一种语音信号处理装置,包括:语音包存储模块,用于在接收到选择性转发单元SFU服务器发送的至少两路语音信号时,将与各路所述语音信号对应的各语音包单独存储在匹配的缓存队列中;复合语音包构成模块,用于当满足多路语音信号的混音条件时,从各缓存队列中分别获取对应的语音包构成复合语音包;解码语音信号获取模块,用于获取电话软交换FreeSwitch通信网关中的解码模块对所述复合语音包中的各语音包进行解码得到的多个解码语音信号;混音包发送模块,用于将各所述解码语音信号进行混音处理,得到混音包,并将所述混音包发送至终端。10.根据权利要求9所述的装置,其中,语音包存储模块,包括:第一基础序列号提取单元,用于在检测到与第一目标路数匹配的目标语音包时,提取所述目标语音包的第一基础序列号...
【专利技术属性】
技术研发人员:许士宾,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。