基于移动终端的音频处理方法和装置的制造方法_3

文档序号:9202581阅读:来源:国知局
冗余包的数量,可以在保证通信可信度的同时,避免因增加过多的纠错冗余包而导致增加网络带宽资源负荷。
[0076]在一个实施例中,对音频数据进行音频编码是按帧进行的。该基于移动终端的音频处理方法还包括:根据本端的终端能力参数确定组包方式;组包方式包括:单帧组包方式和多帧组包方式。且步骤310中将编码后的数据组包形成音频码流并通过网络发送到对端,包括:将编码后的数据按照确定的组包方式组包形成音频码流并通过网络发送到对端。
[0077]具体地,编码后的数据需要增加必要的包头信息进行封装,包头信息包括时间戳、网络协议信息等,网络协议信息比如UDP协议信息、IP协议信息等。包头信息会带来不小的网络带宽资源开销,而且通常一帧语音帧为20-30ms,每帧编码一次发送,发送频率很高,在低码率的情况下,包头信息可能甚至会比音频内容占用的带宽资源还多。因此这里组包考虑本端的实际网络环境的可用带宽,进行多帧组包,提高有效音频内容的带宽利用率。
[0078]组包方式根据终端能力参数中的网络类型来确定,若本端的网络类型对应的带宽资源充足,则本端可决策使用单帧组包方式,表示将一帧音频数据编码后直接封装为数据包。若本端的网络类型对应的带宽资源不足,则本端可决策使用多帧组包方式,表示将该多帧组包方式的指定帧数量的多帧音频数据编码后一同封装为数据包。具体多帧组包方式的指定帧数量可以根据网络类型确定,指定帧数量可为2至5。过多帧音频数据的编码数据组包会导致延迟增大,同时丢包时产生的负面影响也会扩大。
[0079]本实施例中,根据本端的终端能力参数来确定组包方式,从而根据本端的网络环境,按照单帧组包方式或者多帧组包方式来对编码后的数据进行组包,充分利用了网络带宽资源。而且对多帧组包方式的指定帧数量进行限制,可以在充分利用网络带宽资源的同时,将延迟和丢包影响控制在可接受的范围。
[0080]如图4所示,在一个实施例中,一种基于移动终端的音频处理方法,具体包括如下步骤:
[0081]步骤402,获取本端的终端能力参数;终端能力参数包括:用于处理音频的软件信息和硬件信息,以及网络类型。
[0082]步骤404,根据本端的终端能力参数确定具有相应音频编码等级的音频编码器、编码参数、音频数据格式和组包方式;组包方式包括:单帧组包方式和多帧组包方式。
[0083]步骤406,采集声音并根据确定的音频数据格式形成音频数据。
[0084]步骤408,采用确定的音频编码器,以按照相应的音频编码等级按帧对音频数据进行音频编码。
[0085]步骤410,将编码后的数据按照确定的组包方式组包形成音频码流,将组包后的数据包中每第一预设数量的数据包划分为一组,根据该一组数据包的数据内容生成相应的第二预设数量的纠错冗余包加入到音频码流;第一预设数量大于第二预设数量。
[0086]步骤412,将音频码流通过网络发送到对端,使得对端对音频码流进行自适应解码后根据对端的终端能力参数进行音频数据格式转换并播放。
[0087]如图5所示,在一个实施例中,提供了另一种基于移动终端的音频处理方法,本实施例以该方法应用于上述图1中的移动终端102(2)来举例说明,该移动终端102(2)是上述移动终端102(1)的对端,可以理解的是,该方法也可以应用于上述图1中的移动终端102(1)以及其他移动终端。该方法具体包括如下步骤:
[0088]步骤502,接收对端发来的音频码流。
[0089]具体地,在对端执行上述步骤302至312后,或者执行上述步骤402至步骤412之后,本端将接收到对端发来的音频码流。对于本端来说,对端可以多于一个,这样每一个对端对应一路,对于每路的音频码流分别执行步骤502至步骤510。
[0090]步骤504,检测音频码流的码流特征。
[0091]具体地,码流特征是指能够反映出音频码流的编码区别的特征信息。具体本端可从音频码流的数据包的包头信息中提取码流特征。本端可实时检测音频码流的码流特征。
[0092]步骤506,根据码流特征确定音频解码等级。
[0093]具体地,根据码流特征可以确定对端进行音频编码时所采用的音频编码等级,该音频编码等级对应相应等级的音频解码等级,音频解码等级对应音频解码器。不同音频编码等级的音频编码器,压缩编码以后音频码流是不同的,检测其中的特定的二进制内容,根据内容差异就可以判断对端采用的是何种音频编码器。
[0094]在一个实施例中,音频解码等级包括:高清音频解码等级和普通音频解码等级,相应的音频解码器包括高清音频解码器和普通音频解码器。当然也可以根据需要做更细的划分,比如音频解码等级还可以包括低质量音频解码等级。不同的音频解码等级对移动终端能力的要求一般也不同。音频解码器可以是硬件模块也可以是软件模块。
[0095]步骤508,根据确定的音频解码等级对音频码流进行音频解码,获得音频数据。
[0096]具体地,选择与确定的音频解码等级对应的音频解码器,采用该音频解码器对音频码流进行自适应音频解码,得到音频数据。这样本端事先不需要知道音频解码器,避免了对端音频编码器发生变化后本端无法解码的问题。在存在多个对端的情况下,每路音频码流可以按照不同的方式解码,不影响对端发送的音频码流的编码方式。
[0097]步骤510,将音频数据转换为与本端的终端能力参数匹配的音频数据格式。
[0098]具体地,解码获得的音频数据是与对端的终端能力参数匹配的,解码获得的音频数据格式是由对端的音频数据格式决定的,这里需要根据本端的终端能力参数对解码获得的音频数据转换为与本端的终端能力参数匹配的音频数据格式,以适用本端的音频播放能力。音频数据格式主要是音频采样率,声道属性可能不一致,需要转换成与本端的终端能力参数匹配的音频数据格式才能正确播放。
[0099]步骤512,播放经过转换的音频数据。
[0100]具体地,本端可将经过音频数据格式转换的音频数据还原为模拟信号,并通过本端的扬声器输出发声。
[0101]上述基于移动终端的音频处理方法,本端接收到对端发来的音频码流后,根据码流特征自适应地选择音频解码等级进行音频解码,进而将解码后的音频数据转换为与本端的终端能力参数匹配的音频数据格式进行播放,本端就可以根据自身的能力来自适应地处理音频。这样处理能力强的移动终端之间确保有高质量的语音通话,而处理能力差的移动终端则语音质量相对下降,充分利用了不同的移动终端的能力资源。多人自适应解码方案更加灵活,适应性更好,不需要集中能力交换,不依赖服务器的集中能力交换或者通知。
[0102]在一个实施例中,终端能力参数包括:用于处理音频的软件信息和硬件信息,以及网络类型。
[0103]在一个实施例中,本端可以获取本端的终端能力参数,根据本端的终端能力参数确定音频编码等级和音频数据格式,采集声音并根据确定的音频数据格式形成音频数据,根据音频编码等级对采集获得的音频数据进行音频编码,将编码后的数据组包形成音频码流并通过网络发送到对端,使得对端接收音频码流进行自适应解码后根据对端的终端能力参数进行音频数据格式转换并播放。
[0104]如图6所示,在一个实施例中,该方法还包括纠错解码的步骤,具体包括如下步骤:
[0105]步骤602,检测到接收到的音频码流中的数据包丢失时,判断丢失的数据包所在的第一预设数量的一组数据包中丢包总数量是否超过第二预设数量;若是则执行步骤604,若否则执行步骤606。其中,第二预设数量为丢失的数据包所在的一组数据包对应的纠错冗余包的数量。
[0106]具体地,音频码流中的数据包按组划分,每组包括第一预设数量的数据包,根据每组内的所有数据包的数据内容生成与该组对应的第二预设数量的纠错冗余包,将音频编码得到的数据包和纠错冗余包形成音频码流。第一预设数量大于第二预设数量,可以保证纠错冗余包不会过多占用网络带宽资源。
[0107]音频码流中的连续的数据包可具有连续的包序号,若连续的数据包中个别包序号的数据包超过预设时长未收到,则检测到该包序号的数据包丢失。判断丢失的数据包所在的第一预设数量的一组数据包中丢包总数量是否超过第二预设数量,是为了判断当前是否具有恢复丢失的数据包的条件。
[0108]步骤604,请求重发丢失的数据包,或者,放弃处理丢失的数据包。
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1