一种游戏语音聊天音量自适应调节方法与流程

文档序号:16848078发布日期:2019-02-12 22:29阅读:538来源:国知局
本发明涉及游戏
技术领域
:,特别涉及一种游戏语音聊天音量自适应调节方法。
背景技术
::随着移动设备性能的不断提升,手机游戏也逐渐从简单的休闲游戏向追求复杂操作和更好体验的大型游戏方向发展。相比端游,手游打字相对不方便、专用的聊天软件难于满足资源紧张情况下的玩家体验。因此在游戏进行过程中,一方面,玩家间通过语音进行交流已逐渐成为必不可少的需求;另一方面,在游戏内部提供良好的沟通体验也会带来更好的用户粘性。使用移动设备进行实时语音聊天时,由于发送端讲话者距离话筒的位置不断变化,导致采集的语音信号音量也随之变化;而一些手机麦克风采集的声音较小也会造成采集的语音信号音量过小。多人同时进行语音聊天时,各路语音信号的音量不同给混音造成了障碍,而语音接收端播放语音信号时,不能根据需要独立调整语音音量也会对游戏体验造成影响。技术实现要素:针对现有技术的上述不足,本发明提供了一种游戏语音聊天音量发送端自适应调节方法以及一种游戏语音聊天音量接收端自适应调节方法。其中,一种游戏语音聊天音量发送端自适应调节方法,包括如下步骤:s101、采集语音模拟信号;s102、将所采集的语音模拟信号转换为语音数字信号;s103、对语音数字信号进行降噪及回声消除;s104、计算语音数字信号增益系数并保存;s105、将语音数字信号划分为长度为t的固定帧长;s106、在每帧语音信号,按照每t1长度获取对应的语音信号数据的最大值,将该最大值作为当前帧语音信号数据的包络值,存储在包络值数组env中,其中t1小于t,且t为t1的整数倍;s107、计算每t1长度包络值的均方根rms(即包络值数组env的均方根),计算该均方根rms平方的前导零个数n_env,将n_env作为当前帧语音信号的能量级;s108、判断当前帧是否为静音帧;如果判断当前帧属于静音帧;进入s109;如果判断当前帧不属于静音帧,进入s1010;s109、如果判断当前帧为静音帧,则保持增益系数不变,即不对当前帧语音信号数据进行调整,令当前增益gaini=gaini-1;s1010、如果判断当前帧不是静音帧,计算当前增益系数gaini;s1011、对当前增益系数gaini进行平滑操作。s1012、使用求得的增益系数gaini对当前帧语音信号数据进行调整。优选地,所述语音模拟信号的采样频率为16khz,采样深度为16位;采用16位有符号数表示语音数字信号数据。优选地,对语音数字信号数据对其进行平方操作,得到的能量值采用32位无符号数表示,其中能量值的前导零个数范围为1到32;根据可用能量值的前导零个数将语音数字信号的语音音量分成对应的32级。优选地,将语音数字信号的语音音量统一调整为能量级为m个前导零的级别,分别计算每级语音音量调节的增益值,并存储在增益数组gaintable中,其中,第i级语音音量的增益调整系数表示为优选地,将均方根rms与预设阈值进行比较:如果均方根rms小于阈值,则判断当前帧属于静音帧;进入s109;如果均方根rms大于或等于阈值,则判断当前帧不属于静音帧,进入s1010。优选地,当均方根rms平方的前导零个数n时,当前增益系数优选地,根据下式进行平滑操作:gaini=γgaini-1+(1-γ)gaini,其中0<γ<1。一方面,提供一种游戏语音聊天音量发送端自适应调节方法,包括如下步骤:s201、分别计算每向上和向下调整ndb音量所需增益系数xn;分别对应存储在扩大音量增益系数数组volumeup和缩小音量增益系数数组volumedown中;s202、获取用户需要调整的音量xdb;s203、获取时长为t的一帧语音信号数据,遍历当前一帧的语音数据,找到当前帧内数值最大的点,即为当前语音帧音量的峰值;s204、根据用户输入需要调整的音量n’db,在s201所得的增益数组volumeup和volumedown中得到对应的增益系数xn';s205、判断当前语音帧的语信号音数据峰值扩大增益系数后是否超出预定阈值;如超出,则进入s206,否则进入s207;s206、每次对n’减1,直到到扩大n’对应的增益系数xn'后,语音信号的峰值不超过设定阈值为止;s207、根据增益系数xn'调整当前语音帧的音量大小。优选地,根据所求增益系数xn取以10为底的对数乘以20后与n相等算出所求增益系数xn;其中,设增益系数为xn,解方程20×lg(xn)=n,解出xn,分别存储在对应下标为n的绝对值的数组元素中,若选取n大于0,则存储至扩大音量增益数组volumeup[n]=xn,若选取n小于0,则存储至缩小音量增益数组volumedown[-n]=xn。优选地,当n’大于0时,在扩大音量增益系数数组volumeup中找到下标值为x的元素volumeup[n’];当n’小于0时,先对n’取绝对值-n’,然后在缩小音量增益系数数组volumedown中找到下标值为-n’的元素volumedown[-n’],从而得到对应的增益系数xn'。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1-1、1-2是本发明实施例提供的一种游戏语音聊天音量发送端自适应调节方法;图2是本发明实施例提供的一种游戏语音聊天音量接收端自适应调节方法。具体实施方式为了使本领域技术人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。本发明实施例提供一种游戏语音聊天音量发送端自适应调节方法,如图1-1至1-2所示,包括如下步骤:s101、采集语音模拟信号。根据本发明的一个优选实施方式,可利用设备自带麦克风进行语音模拟信号的采集。根据本发明的一个优选实施方式,所述语音模拟信号的采样频率为16khz,采样深度为16位。s102、将所采集的语音模拟信号转换为语音数字信号。根据本发明的一个优选实施方式,采用pcm(pulsecodemodulation脉冲编码调制),对模拟信号进行数字化采样技术,将模拟语音信号变换成为数字信号。s103、对语音数字信号进行降噪及回声消除。s104、计算语音数字信号增益系数并保存。根据本发明的一个优选实施方式,可以利用语音数字信号的数据平方表示能量大小(即,语音数字信号对应的语音音量大小),语音数字信号的平方值越大说明语音音量越大。由于语音数字信号数据为16位有符号数,对其进行平方操作后得的能量值可用32位无符号数表示,能量值的前导零个数范围为1到32。因此,可用能量值的前导零个数将语音数字信号的语音音量分成对应的32级。根据本发明的一个优选实施方式,将语音数字信号的语音音量统一调整为能量级为m个前导零的级别,分别计算每级语音音量调节的增益值,并存储在增益数组gaintable中,第i级语音音量的增益调整系数可表示为其中,i的取值范围为1-32。根据本发明的一个优选实施方式,根据经验值测定,前导零个数为4时,即m为4时,可以取得较好的语音再现效果。根据本发明的一个优选实施方式,gaintable[5]表示第5级语音音量,即语音数字信号的语音音量含有5个前导零时,如需将其放大为含有4个前导零时,所需的增益系数可表示为s105、将语音数字信号划分为长度为t的固定帧长。根据本发明的一个优选实施方式,t=10ms,即可将语音信号数据按照每10ms划分为一帧语音信号数据。s106、在每帧语音信号,按照每t1长度获取对应的语音信号数据的最大值,将该最大值作为当前帧语音信号数据的包络值,存储在包络值数组env中,其中t1小于t,且t为t1的整数倍。根据本发明的一个优选实施方式,t1取值为1ms。s107、计算每t1长度包络值的均方根rms(即包络值数组env的均方根),计算该均方根rms平方的前导零个数n_env,将n_env作为当前帧语音信号的能量级。s108、判断当前帧是否为静音帧;如果判断当前帧属于静音帧;进入s109;如果判断当前帧不属于静音帧,进入s1010。根据本发明的一个优选实施方式,将均方根rms与预设阈值进行比较:如果均方根rms小于阈值,则判断当前帧语音信号能量较小,属于静音帧;进入s109;如果均方根rms大于或等于阈值,则判断当前帧语音信号能量较大,不属于静音帧,进入s1010。s109、如果判断当前帧为静音帧,则保持增益系数不变,即不对当前帧语音信号数据进行调整,令当前增益gaini=gaini-1。s1010、如果判断当前帧不是静音帧,计算当前增益系数gaini。根据本发明的一个优选实施方式,当均方根rms平方的前导零个数n时,当前增益系数s1011、对当前增益系数gaini进行平滑操作。根据本发明的一个优选实施方式,根据下式进行平滑操作:gaini=γgaini-1+(1-γ)gaini,其中0<γ<1。根据本发明的一个优选实施方式,γ取0.75。s1012、使用求得的增益系数gaini对当前帧语音信号数据进行调整。根据本发明的一个优选实施方式,将利用增益系数gaini调整后的当前帧语音信号数据与预定阈值进行比较;判断是否发生溢出;如果大于预定阈值,则判断发生溢出,减小当前gaini,利用减小后的增益系数gaini调整当前帧语音信号数据,并将其与预定阈值进行比较;直到语音数据扩大所得增益后不超过预定阈值,完成调整;如果小于或预定阈值,则判断未发生溢出,完成调整。根据本发明的一个优选实施方式,预定阈值取值为29000。根据本发明的一个优选实施方式,采用如下方式减小gaini:gaini=gaini×0.9。如图2所示,本发明实施例提供一种游戏语音聊天音量发送端自适应调节方法,包括如下步骤:s201、分别计算每向上和向下调整ndb音量所需增益系数xn;分别存储在扩大音量增益系数数组volumeup和缩小音量增益系数数组volumedown中;根据本发明的一个优选实施方式,音量调整量n取值范围为:-20db~20db;其中,当缩小音量时,音量调整量n为负数。具体方法如下:根据所求增益系数xn取以10为底的对数乘以20后与n相等算出所求增益系数xn;其中,设增益系数为xn,解方程20×lg(xn)=n,解出xn,分别存储在对应下标为n的绝对值的数组元素中,若选取n大于0,则存储至扩大音量增益数组volumeup[n]=xn,若选取n小于0,则存储至缩小音量增益数组volumedown[-n]=xn。s202、获取用户需要调整的音量xdb。根据本发明的一个优选实施方式,由用户在操作界面上输入需要调整的音量大小;受限于人耳听力辨别精度,音量调整步长在1-2db时,人耳才能感觉到音量发生了调整。根据本发明的一个优选实施方式,操作界面上可通过提供加减号图标或者音量条的方式供用户进行音量调整。s203、获取时长为t的一帧语音信号数据,遍历当前一帧的语音数据,找到当前帧内数值最大的点,即为当前语音帧音量的峰值。根据本发明的一个优选实施方式,t=10ms。s204、根据用户输入需要调整的音量n’db,在s201所得的增益数组volumeup和volumedown中得到对应的增益系数xn'。根据本发明的一个优选实施方式,当n’大于0时,在扩大音量增益系数数组volumeup中找到下标值为x的元素volumeup[n’];当n’小于0时,先对n’取绝对值-n’,然后在缩小音量增益系数数组volumedown中找到下标值为-n’的元素volumedown[-n’],从而得到对应的增益系数xn'。s205、判断当前语音帧的语信号音数据峰值扩大增益系数后是否超出预定阈值;如超出,则进入s206,否则进入s207。根据本发明的一个优选实施方式,对于16位的语音信号数据,预定阈值取值为29000。s206、每次对n’减1,直到到扩大n’对应的增益系数xn'后,语音信号的峰值不超过设定阈值为止。s207、根据增益系数xn'调整当前语音帧的音量大小:根据本发明的一个优选实施方式,将当前帧每个语音信号数据都乘s206所得增益系数,得到音量调整后的语音信号数据。本发明所提供的一种具有以下有益技术效果:对麦克发送端风采集到的信号做自动增益控制,适当地调节采集的语音信号的音量后再上传;在接收端播放语音信号时,提供用户可以对要播放的语音信号进行调整的方法。可以选择不同统计参数区别静音帧。调整语音信号音量大小时可以通过调用声卡的模拟信号增益接口实现;可以在接收端和发送端增加降噪方法,避免背景噪声在调大音量后被同时放大;在对语音数据进行扩大前对增益系数进行平滑处理,可以进一步提高语音通话的质量。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1