音频编码方法、装置、设备以及计算机可读存储介质
技术领域
本发明涉及编码
技术领域
,尤其涉及一种音频编码方法、装置、设备以及计算机可读存储介质。背景技术
在现实生活多媒体通信中,由于所处的网络环境不同,不可避免的会存在网络波动,语音通话质量必然受到网络波动的影响。网络波动影响音频的传输及处理各个阶段,会出现丢失语音包,语音包到达延迟等问题,导致语音通话质量低下。
发明内容
本发明的主要目的在于提供一种音频编码方法、装置、设备以及计算机可读存储介质,旨在解决语音通话质量低下的问题。
为实现上述目的,本发明提供的一种音频编码方法,所述音频编码方法包括以下步骤:
将第一终端的待编码的音频信息发送至第二终端;
获取所述第二终端发送的所述音频信息的语音损伤信息;
根据所述语音损伤信息确定所述音频信息的平均意见MOS值;
根据所述MOS值对应的编码码率对所述音频信息进行编码。
在一实施例中,所述根据所述MOS值对应的编码码率对所述音频信息进行编码的步骤包括:
若所述MOS值大于或者等于预设阈值,则根据当前网络状态确定编码码率;
根据确定的所述编码码率对所述音频信息进行编码。
在一实施例中,所述根据所述MOS值对应的编码码率对所述音频信息进行编码的步骤包括:
若所述MOS值小于预设阈值,则根据预设的编码索引确定所述编码码率,所述编码索引包括所述MOS值与所述MOS值对应的编码码率;
根据确定的所述编码码率对所述音频信息进行编码。
在一实施例中,所述根据预设的编码索引确定所述编码码率的步骤包括:
确定预设阈值与所述音频信息的所述MOS值的第一差值;
获取预设的初始编码码率与所述编码索引中预设索引值对应的编码码率之间的第二差值;
获取预设的初始编码码率与所述预设索引值的下一个索引值对应的编码码率之间的第三差值;
若所述第二差值小于所述第一差值,并且所述第三差值大于所述第一差值,则获取所述编码索引中所述预设索引值的下一个索引值对应的所述编码码率;
若所述第二差值大于或者等于所述第一差值,或者所述第三差值小于或者等于所述第一差值,则将所述预设索引值加1,返回执行所述获取预设的初始编码码率与所述编码索引中预设索引值对应的编码码率之间的第二差值的步骤,直至所述预设索引值加一的和值达到所述编码索引的最大索引值。
在一实施例中,所述根据预设的编码索引确定所述编码码率的步骤还包括:
若所述预设索引值加一的和值达到所述编码索引的最大索引值,则确定所述最大索引值对应的编码码率为音频信息的所述编码码率。
在一实施例中,所述根据所述语音损伤信息确定所述音频信息的平均意见MOS值的步骤包括:
将所述语音损伤信息输入预设模型确定所述音频信息的平均意见值,所述语音损伤信息包括基本信噪比、同步传输损伤信息、延迟损伤信息以及设备损伤信息中的至少一个。
在一实施例中,所述获取所述第二终端发送的所述音频信息的语音损伤信息的步骤包括:
获取所述第二终端发送的实时传输控制协议RTCP包;
根据所述RTCP包确定所述音频信息的语音损伤信息。
为实现上述目的,本发明还提供一种音频编码装置,所述音频编码装置包括:
发送模块,用于将第一终端的待编码的音频信息发送至第二终端;
获取模块,用于获取所述第二终端发送的所述音频信息的语音损伤信息;
计算模块,用于根据所述语音损伤信息确定所述音频信息的平均意见MOS值;
编码模块,用于根据所述MOS值对应的编码码率对所述音频信息进行编码。
为实现上述目的,本发明还提供一种音频编码设备,所述音频编码设备包括存储器、处理器以及存储在所述存储器并可在所述处理器上执行的音频编码程序,所述音频编码程序被所述处理器执行时实现如上所述的音频编码方法的各个步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有音频编码程序,所述音频编码程序被处理器执行时实现如上所述的音频编码方法的各个步骤。
本发明提供的一种音频编码方法、装置、设备以及计算机可读存储介质,将第一终端的待编码的音频信息发送至第二终端;获取第二终端发送的音频信息的语音损伤信息;根据语音损伤信息确定音频信息的平均意见MOS值;根据MOS值对应的编码码率对音频信息进行编码。通过语音损伤信息确定MOS值,而MOS值可以衡量通信系统音频质量,根据MOS值确定音频信息的编码码率,保证了编码之后的音频信息的音频质量。
附图说明
图1为本发明实施例涉及的音频编码设备的硬件结构示意图;
图2为本发明音频编码方法的第一实施例的流程示意图;
图3为本发明音频编码方法的第二实施例的步骤S40的细化流程示意图;
图4为本发明音频编码装置的逻辑结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:将第一终端的待编码的音频信息发送至第二终端;获取第二终端发送的音频信息的语音损伤信息;根据语音损伤信息确定音频信息的平均意见MOS值;根据MOS值对应的编码码率对音频信息进行编码。
通过语音损伤信息确定MOS值,而MOS值可以衡量通信系统音频质量,根据MOS值确定音频信息的编码码率,保证编码之后的音频信息的音频质量。
作为一种实现方案,音频编码设备可以如图1所示。
本发明实施例方案涉及的是音频编码设备,音频编码设备包括:处理器101,例如CPU,存储器102,通信总线103。其中,通信总线103用于实现这些组件之间的连接通信。
存储器102可以是高速RAM存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。如图1所示,作为一种计算机可读存储介质的存储器102中可以包括音频编码程序;而处理器101可以用于调用存储器102中存储的音频编码程序,并执行以下操作:
将第一终端的待编码的音频信息发送至第二终端;
获取所述第二终端发送的所述音频信息的语音损伤信息;
根据所述语音损伤信息确定所述音频信息的平均意见MOS值;
根据所述MOS值对应的编码码率对所述音频信息进行编码。
在一实施例中,处理器101可以用于调用存储器102中存储的音频编码程序,并执行以下操作:
若所述MOS值大于或者等于预设阈值,则根据当前网络状态确定编码码率;
根据确定的所述编码码率对所述音频信息进行编码。
在一实施例中,处理器101可以用于调用存储器102中存储的音频编码程序,并执行以下操作:
若所述MOS值小于预设阈值,则根据预设的编码索引确定所述编码码率,所述编码索引包括所述MOS值与所述MOS值对应的编码码率;
根据确定的所述编码码率对所述音频信息进行编码。
在一实施例中,处理器101可以用于调用存储器102中存储的音频编码程序,并执行以下操作:
确定预设阈值与所述音频信息的所述MOS值的第一差值;
获取预设的初始编码码率与所述编码索引中预设索引值对应的编码码率之间的第二差值;
获取预设的初始编码码率与所述预设索引值的下一个索引值对应的编码码率之间的第三差值;
若所述第二差值小于所述第一差值,并且所述第三差值大于所述第一差值,则获取所述编码索引中所述预设索引值的下一个索引值对应的所述编码码率;
若所述第二差值大于或者等于所述第一差值,或者所述第三差值小于或者等于所述第一差值,则将所述预设索引值加1,返回执行所述获取预设的初始编码码率与所述编码索引中预设索引值对应的编码码率之间的第二差值的步骤,直至所述预设索引值加一的和值达到所述编码索引的最大索引值。
在一实施例中,处理器101可以用于调用存储器102中存储的音频编码程序,并执行以下操作:
若所述预设索引值加一的和值达到所述编码索引的最大索引值,则确定所述最大索引值对应的编码码率为音频信息的所述编码码率。
在一实施例中,处理器101可以用于调用存储器102中存储的音频编码程序,并执行以下操作:
将所述语音损伤信息输入预设模型确定所述音频信息的平均意见值,所述语音损伤信息包括基本信噪比、同步传输损伤信息、延迟损伤信息以及设备损伤信息中的至少一个。
在一实施例中,处理器101可以用于调用存储器102中存储的音频编码程序,并执行以下操作:
获取所述第二终端发送的实时传输控制协议RTCP包;
根据所述RTCP包确定所述音频信息的语音损伤信息。
基于上述音频编码设备的硬件构架,提出本发明音频编码方法的实施例。
参照图2,图2为本发明音频编码方法的第一实施例,所述音频编码方法包括以下步骤:
步骤S10,将第一终端的待编码的音频信息发送至第二终端。
具体的,第一终端将第一终端的待编码的音频信息发送至第二终端,第二终端根据接收到的音频信息确定音频信息的语音损伤信息。
步骤S20,获取所述第二终端发送的所述音频信息的语音损伤信息。
具体的,第一终端获取第二终端发送的音频信息的语音损伤信息可以是接收第二终端发送的实时传输控制协议RTCP包,根据RTCP包确定语音损伤信息。语音损伤信息可以包括基本信噪比、同步传输损伤信息、延迟损伤信息或者设备损伤信息等。其中,基本信噪比为音频信息与噪声的比例;同步传输损伤信息为音频信息在传输过程中由于丢包等原因产生的音频质量损伤;延迟损伤信息为音频信息由于网络延迟产生的音频质量损伤,设备损伤信息为音频信息由于扬声器等设备老化造成的音频质量损伤。
步骤S30,根据所述语音损伤信息确定所述音频信息的平均意见MOS值。
具体的,根据语音损伤信息确定音频信息的MOS值,可以确定各个语音损伤信息对应的权重值,根据权重值和语音损伤信息确定音频信息的MOS值。
根据语音损伤信息确定音频信息的MOS值,还可以将所述语音损伤信息输入预设模型,输出MOS值。也第二终端可以将语音损伤信息输入预设模型确定音频信息的平均意见值,示例性的,预设模型可以是E-Model音频质量评价模型。
步骤S40,根据所述MOS值对应的编码码率对所述音频信息进行编码。
具体的,根据MOS值的大小确定编码码率对音频信息进行编码,将编码之后的音频信息发送至第二端。在MOS值大于或等于预设阈值时,表示当前音频质量较好,根据当前网络状态确定编码码率,根据确定编码码率对音频信息进行编码,示例性的,可以根据当前网络状态采用自适应多速率宽带编码标准AMR-WB确定编码码率。在MOS值小于预设阈值时,表示当前音频质量较差,选择比音频质量较好情况下更大的编码码率对音频信息进行编码,直至MOS值大于或等于预设阈值为止。其中,预设阈值可以为4.0。
在本实施例的技术方案中,将第一终端的待编码的音频信息发送至第二终端;获取第二终端发送的音频信息的语音损伤信息;根据语音损伤信息确定音频信息的平均意见MOS值;根据MOS值对应的编码码率对音频信息进行编码。通过语音损伤信息确定MOS值,而MOS值可以衡量通信系统音频质量,根据MOS值确定音频信息的编码码率,保证了编码之后的音频信息的音频质量。
参照图3,图3为本发明音频编码方法的第二实施例,基于第一实施例,所述步骤S40包括:
步骤S41,若所述MOS值小于预设阈值,则根据预设的编码索引确定所述编码码率,所述编码索引包括所述MOS值与所述MOS值对应的编码码率;
步骤S42,根据确定的所述编码码率对所述音频信息进行编码。
具体的,当MOS值小于预设阈值时,根据预设的编码索引确定音频信息的编码码率,根据确定的编码码率对音频信息进行编码。这里确定的音频信息的编码码率大于当音频质量良好时确定的编码码率。
其中,预设的编码索引包括音频信息的MOS值与MOS值对应的编码码率,示例性的,预设的编码索引可以如下表所示:
根据预设的编码索引确定编码码率,可以确定预设阈值与音频信息的MOS值的第一差值,第一差值如下公式所示:
ΔMOS=4.0-MOS;
其中,ΔMOS为第一差值,MOS为音频信息当前的MOS值,4.0为预设阈值。
获取预设的初始编码码率与编码索引中预设索引值对应的编码码率之间的第二差值,由上述表格可以得出编码码率必须大于等于12.65kbps时,即编码码率结构体索引i大于2时,才能达到MOS值大于4.0的要求,因此预设索引值可以取值为大于等于2的索引值。其中,第二差值可以如下公式所示:
ΔMOS1(i)=BIT(i).MOS-BIT(0).MOS;
其中,ΔMOS1(i)表示第二差值,BIT(i).MOS为索引值为i的编码码率;BIT(0).MOS为初始编码码率,初始编码码率对应的索引值为0,如上表所示,预设的初始编码码率可以是6.6kbps。
获取预设的初始编码码率与所述预设索引值的下一个索引值对应的编码码率之间的第三差值,第三差值如下公式所示:
ΔMOS2(i+1)=BIT(i+1).MOS-BIT(0).MOS;
其中,ΔMOS2(i+1)表示第二差值,BIT(i+1).MOS为索引值为i+1的编码码率;BIT(0).MOS为初始编码码率,初始编码码率对应的索引值为0。
若第二差值小于第一差值,并且第三差值大于第一差值,则获取编码索引中预设索引值的下一个索引值对应的编码码率,即当ΔMOS1(i)<ΔMOS以及ΔMOS2(i+1)>ΔMOS时,将BIT(i+1).MOS作为音频信息的编码码率。
若第二差值大于或者等于第一差值,或者第三差值小于或者等于第一差值,即当ΔMOS1(i)≥ΔMOS以及ΔMOS2(i+1)≤ΔMOS时,将预设索引值加1,返回执行获取预设的初始编码码率与编码索引中预设索引值对应的编码码率之间的第二差值的步骤,直至预设索引值加一的和值达到编码索引的最大索引值。若预设索引值加一的和值达到编码索引的最大索引值,则确定最大索引值对应的编码码率为音频信息的编码码率。其中,如上述表格所示,最大索引值可以为8。
在本实施例的技术方案中,若MOS值小于预设阈值,则根据预设的编码索引确定编码码率,根据确定的编码码率对音频信息进行编码。通过编码索引确定编码码率,以使得编码之后的音频信息的MOS值大于或等于预设阈值,提高音频传输的质量。
参照图4,本发明还提供一种音频编码装置,所述音频编码装置包括:
发送模块100,用于将第一终端的待编码的音频信息发送至第二终端;
获取模块200,用于获取所述第二终端发送的所述音频信息的语音损伤信息;
计算模块300,用于根据所述语音损伤信息确定所述音频信息的平均意见MOS值;
编码模块400,用于根据所述MOS值对应的编码码率对所述音频信息进行编码。
在一实施例中,在根据所述MOS值对应的编码码率对所述音频信息进行编码方面,所述编码模块400具体用于:
若所述MOS值大于或者等于预设阈值,则根据当前网络状态确定编码码率;
根据确定的所述编码码率对所述音频信息进行编码。
在一实施例中,在根据所述MOS值对应的编码码率对所述音频信息进行编码方面,所述编码模块400具体用于:
若所述MOS值小于预设阈值,则根据预设的编码索引确定所述编码码率,所述编码索引包括所述MOS值与所述MOS值对应的编码码率;
根据确定的所述编码码率对所述音频信息进行编码。
在一实施例中,在根据预设的编码索引确定所述编码码率方面,所述编码模块400具体用于:
确定预设阈值与所述音频信息的所述MOS值的第一差值;
获取预设的初始编码码率与所述编码索引中预设索引值对应的编码码率之间的第二差值;
获取预设的初始编码码率与所述预设索引值的下一个索引值对应的编码码率之间的第三差值;
若所述第二差值小于所述第一差值,并且所述第三差值大于所述第一差值,则获取所述编码索引中所述预设索引值的下一个索引值对应的所述编码码率;
若所述第二差值大于或者等于所述第一差值,或者所述第三差值小于或者等于所述第一差值,则将所述预设索引值加1,返回执行所述获取预设的初始编码码率与所述编码索引中预设索引值对应的编码码率之间的第二差值的步骤,直至所述预设索引值加一的和值达到所述编码索引的最大索引值。
在一实施例中,在根据预设的编码索引确定所述编码码率方面,所述编码模块400具体用于:
若所述预设索引值加一的和值达到所述编码索引的最大索引值,则确定所述最大索引值对应的编码码率为音频信息的所述编码码率。
在一实施例中,在根据所述语音损伤信息确定所述音频信息的平均意见MOS值方面,所述计算模块300具体用于:
将所述语音损伤信息输入预设模型确定所述音频信息的平均意见值,所述语音损伤信息包括基本信噪比、同步传输损伤信息、延迟损伤信息以及设备损伤信息中的至少一个。
在一实施例中,在获取所述第二终端发送的所述音频信息的语音损伤信息方面,所述获取模块200具体用于:
获取所述第二终端发送的实时传输控制协议RTCP包;
根据所述RTCP包确定所述音频信息的语音损伤信息。
本发明还提供一种音频编码设备,所述音频编码设备包括存储器、处理器以及存储在所述存储器并可在所述处理器上执行的音频编码程序,所述音频编码程序被所述处理器执行时实现如上实施例所述的音频编码方法的各个步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有音频编码程序,所述音频编码程序被处理器执行时实现如上实施例所述的音频编码方法的各个步骤。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、系统、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、系统、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、系统、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例系统可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,停车管理设备,空调器,或者网络设备等)执行本发明各个实施例所述的系统。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。