一种语音报文的处理方法和报文处理器的制作方法

文档序号:7954784阅读:332来源:国知局
专利名称:一种语音报文的处理方法和报文处理器的制作方法
技术领域
本发明涉及通信技术,特别涉及语音报文的处理技术。
背景技术
在现代通信网络中,各个通信设备(如媒体网关)上都有网络处理器,用于处理各种各样复杂的业务。尤其是一些业务流量大的媒体设备上,对网络处理器的处理能力要求非常高。在某些情况下,出于对成本、灵活性的考虑,采用普通CPU处理各种网络业务。
在各种通信业务中,放音业务是一种基本的、传统的电话业务。主叫呼叫被叫过程中,主被叫尚未接通时,主叫用户会听到“嘟——嘟——”的回铃音,这种回铃音的播放就是一种放音业务。特别地,智能提示音业务也是一种放音业务,如查询余额,提示余额为“x”“元”“y”“角”“z”“分”,则其中的“元”、“角”、“分”各自分别是语音片断,是以PCM码或其它编码格式存储在内存的语音数据。
以放音业务的报文处理为例,现有的方案如图1所示步骤101、102报文处理器收到发送语音报文指示消息时,从内存中读取一报文分片;语音数据是以PCM码或其它编码格式存储在内存中,报文处理器读取报文分片是根据需要发送的语音报文的具体要求(如语音编解码方式),控制读取的语音数据的长度为报文净荷分片(以下称报文分片)的大小。比如如果DSP(数字信号处理器)采用G.711 20ms打包间隔的编解码方式处理语音报文,一个分片是160字节;如果采用是AMR编解码方式,一个分片最短可以12字节,最长31字节。
步骤103报文处理器将报文分片转换成一帧语音报文,发送给物理层设备(如FPGA接口);该步骤中,将语音数据转换成一帧语音报文的过程如下报文处理器根据读取的报文分片生成报文首部,将报文首部和报文分片依次发送至物理层设备,这样物理层设备接收到的就是一个完整的语音报文。
步骤104物理层设备将语音报文转发至DSP。
步骤105DSP接收语音报文,经过编解码转换或者其它处理后,发送至TDM网络或者IP网络。
其中,报文处理器可以普通CPU,也可以是专用的网络处理器。网络处理器是专用于网络设备(如路由器、网关等)的处理器,针对网络处理进行优化,和普通CPU相比,具有多内核、特别设置了大量位域操作指令、硬件支持的多线程调度和切换、专用的指令存储空间等特点。
上述方案中,只有报文处理器收到发送语音报文指示消息时,才从内存中读取报文分片,进行后续报文发送处理。如果报文处理器的能力不足,可能会导致报文处理任务未完成的情况下,处理器时间就被其它业务的任务处理抢占,则会影响报文的正常处理。

发明内容
有鉴于此,本发明的主要目的在于提供一种语音报文的处理方法和报文处理器,提高报文处理的效率。
为实现上述目的,本发明提供了一种语音报文处理的方法,应用于放音业务处理,该方法包括步骤A报文处理器判断当前是否需要发送语音报文,如果需要,则执行步骤B,如果不需要,则执行步骤C;步骤B所述报文处理器从报文分片队列中读取报文分片,转换成语音报文,所述报文处理器发送该语音报文;步骤C所述报文处理器从语音数据存储区读取报文分片置入报文分片队列。
本发明的方法中,所述步骤B包括步骤B1所述报文处理器判断所述报文分片队列是否为空,如果不为空,则执行步骤B2;步骤B2所述报文处理器从所述报文分片队列中读取报文分片,转至步骤B3;步骤B3所述报文处理器将所述报文分片转换成语音报文,发送至物理层设备。
进一步,所述步骤B还可以包括步骤B4物理层设备将所述语音报文发送至数字信号处理器,所述数字信号处理器将所述语音报文编解码后发送至IP网络或TDM网络。
特别地,所述步骤B3中,所述报文处理器采用多帧复用方式将所述报文分片转换成语音报文;或者所述报文处理器直接读取一个报文分片转换成语音报文。
而且,步骤B2中读取报文分片的数量由所述数字信号处理器的缓存大小和所述报文分片的大小确定;所述报文分片的大小由所述语音报文的编解码方式确定。
本发明的方法中,所述步骤A包括步骤A1所述报文处理器获取系统时间;步骤A2所述报文处理器比较所述系统时间和下一语音报文的报文发送时间,如果所述系统时间达到所述报文发送时间,则报文处理器发送下一个语音报文。
特别地,所述方法进一步可以包括设置所述报文发送时间戳的允许窗口,如果所述系统时间在所述报文发送时间戳的允许窗口范围中,则报文处理器需要发送下一个语音报文。
本发明的方法中,所述步骤C包括步骤C1所述报文处理器判断所述报文分片队列是否有空闲项,如果有,则所述报文处理器从所述语音数据存储区中读取报文分片,所述报文处理器将报文分片置入报文分片队列。
本发明还提供了一种报文处理器,包括报文发送单元、数据接收单元、处理决策单元、报文处理单元,所述处理决策单元获取系统时间,根据所述系统时间分析下一步操作,发出操作指令;所述数据接收单元从语音数据存储区读取报文分片,发送至所述报文处理单元处理;所述报文处理单元接收所述数据接收单元发送的报文分片,将所述报文分片置入报文分片队列;所述报文处理单元从所述报文分片队列中读取报文分片,转换成语音报文后发送至所述报文发送单元;所述报文发送单元接收所述报文处理单元发送的语音报文,发送至物理层设备。
特别地,所述报文处理单元包括报文复用单元;所述报文处理单元从所述报文分片队列中读取报文分片后,所述报文复用单元采用多帧复用方式将所述报文分片转换成语音报文发送至所述报文发送单元。
通过比较可以发现,本发明的技术方案与现有技术的主要区别在于,利用了报文分片队列缓存机制,将读取语音数据,生成报文分片的操作和其他操作分开,有效地利用了报文处理器资源,提高报文处理的效率。


图1是现有技术中报文处理流程示意图;图2是本发明报文处理流程示意图一;图3是本发明报文处理流程示意图二;图4是本发明的报文处理器结构示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明核心在于,在放音业务处理过程中,在内存中设置报文分片队列,用于缓存报文分片。在报文处理器需要发送语音报文时,报文处理器从报文分片队列中读取报文分片,并为读取的报文分片封装报文首部,转换成语音报文,发送给物理层设备处理;在报文处理器不需要发送语音报文时,报文处理器从内存中读取报文分片,将报文分片置入报文分片队列。
在网络多媒体通信中,一个会话一般对应一个语音通道,用于完成语音报文的处理;每个语音通道都有相应的语音报文处理进程,需要设置一个报文分片队列,报文分片队列长度(指可存储报文分片的数量)可以根据系统的具体情况设置或调整。一个语音通道中语音报文的具体处理如下报文处理器获得系统时间,判断当前是否是发送语音报文的时刻,即当前是否需要发送语音报文;如果不需要发送语音报文,则执行语音报文处理流程(如图2);如果需要发送语音报文,则执行语音报文发送流程(如图3)。
系统进行放音业务处理时,报文处理器接收发送语音报文的指示消息后,发出的第一个语音报文中的时间戳就是发送该语音报文的时刻,报文处理器根据该语音报文的打包长度可以计算出下一个待发送的语音报文的报文发送时间戳,即是下一个语音报文要发出的时刻;以后每发出一个语音报文后,都根据当前发出的语音报文的时间戳和打包长度计算下一个报文的报文发送时间戳。
以G.711 20ms打包间隔的编解码方式为例,发送第一个语音报文的具体时刻为T1,则下一个语音报文的时间戳即发送时刻为T1+20ms。
实际处理过程中,由于语音报文处理会有会抖动等现象,因此可能会为发送下一个语音报文的时间戳设置一个允许窗口,该允许窗口可以根据允许的抖动值进行调整。所谓允许窗口就是指发送下一个语音报文的允许时刻范围,如果获得的系统时间在该范围内,则进行语音报文发送流程。
如图2所示,语音报文处理流程包括如下步骤步骤201报文处理器判断报文分片队列是否有空闲项(即报文分片队列中是否可以置入新的报文分片),如果报文分片队列已满,则转至步骤204;否则转至步骤202;步骤202报文处理器从语音数据存储区中读取报文分片;该步骤中,语音数据存储区是存储语音片段数据的内存区域;同现有技术的处理方式一样,报文处理器读取报文分片是根据需要发送的语音报文的具体要求(如语音编解码方式),控制读取的语音数据的长度为报文分片的大小。比如如果DSP(数字信号处理器)采用G.711 20ms打包间隔的编解码方式处理语音报文,一个分片是160字节;如果采用是AMR编解码方式,一个分片最短可以12字节,最长31字节。
步骤203报文处理器将报文分片置入报文分片队列;步骤204结束本次语音报文处理。
如图3所示,语音报文发送流程包括如下步骤
步骤301报文处理器判断报文分片队列是否为空(即报文分片队列中是否有未处理的报文分片),如果报文分片队列为空,则转至步骤305;否则,转至步骤302;步骤302报文处理器从报文分片队列中读取报文分片;步骤303采用多帧复用方式将步骤302中读取的报文分片转换成语音报文,发送至物理层设备;该步骤中,所谓多帧复用方式将报文分片转换成语音报文的过程是报文处理器根据读取的报文分片生成报文首部,将报文首部和各报文分片依次发送至物理层设备,这样物理层设备接收到的就是一个完整的语音报文。
在步骤302中,可以根据DSP的缓存能力确定读取报文分片的数量。以采用G.71120ms打包间隔的编解码方式处理语音报文为例,一个报文分片为160字节,如果DSP可以缓存1000字节,则报文处理器可以采用多帧复用方式发送语音报文,将1000/160即6个报文分片共用一个报文首部,复用成一个语音报文。
在步骤302、303中,报文处理器可以不采用多帧复用方式,而直接读取一个报文分片转换成语音报文。
步骤304物理层设备将语音报文发送给DSP,由DSP经过编解码转换或者其它处理后,发送至TDM网络或者IP网络;步骤305结束本次语音报文处理。
图2、3分别描述了语音报文处理流程和语音报文发送流程的具体步骤。其中,在语音报文处理流程中,报文处理器从语音数据存储区中读取报文分片。如果从语音数据存储区读取报文分片时,已经到达了语音片段数据尾部,则报文处理器在报文分片队列中加入一个特殊的业务结束指示报文分片,指示放音业务处理过程结束;在语音报文发送流程,报文处理器读取该业务结束指示报文分片后,结束本次放音业务处理。具体从软件实现角度来说,报文处理器可以将该业务结束指示转换成业务结束指示消息发送给应用层,或者由底层软件发送给上层软件,指示本次放音业务处理结束。
上面描述的是一个语音通道的处理情况。如果有多个用户同时在线,启动了多个会话,则需要分配相应数量的语音通道。此时,为了提高报文处理器的效率,以处理更多的会话,多个语音通道之间的切换处理一般采用轮转算法,可以保证调度公平。
本发明的方法和现有技术相比,现有技术是将读取报文分片、发送语音报文等处理放在一起,每次发送报文都必须读取报文分片并转换成语音报文后发送。由于语音数据是存放在内存中,报文处理器访问内存存在瓶颈问题,即访问内存导致报文处理器执行指令产生等待的情况,将降低报文处理器的性能,可能会对语音报文的及时发出造成影响,同时由于语音业务实时性高,因此要求报文处理器具有较高的性能;本发明则利用发送报文的空闲处理时间,将读取语音数据、拆分报文分片等复杂操作提前完成,降低了对报文处理器的性能要求。
采用本发明的方法,需要对报文处理器进行一些必要的改进。如图4所示,为本发明报文处理器的结构示意图。
报文处理器包括数据接收单元、报文处理单元、报文发送单元及处理决策单元;其中,处理决策单元获取系统时间,根据所述系统时间分析下一步操作,发出操作指令。具体来说,处理决策单元负责报文处理器处理工作的总调度,即决定报文处理器下一步的处理,并发出操作指令,包括判断下一步操作是发送语音报文还是读取报文分片,以及报文发送完成后判断是否继续发送语音报文、是否采用多帧复用方式组装报文等。
数据接收单元从语音数据存储区读取报文分片,发送至报文处理单元处理。其中的语音数据存储区是存储语音片段数据的内存区域。
报文处理单元将从数据接收单元接收报文分片,将报文分片置入报文分片队列;报文处理单元还负责从报文分片队列中读取报文分片,转换成语音报文后发送至报文发送单元;报文发送单元接收报文处理单元发送的语音报文,发送至物理层设备。
在报文处理过程中,为了提高报文处理器效率,一般对报文分片采用多帧复用方式处理,因此报文处理单元还可以包括报文复用单元;报文处理单元从报文分片队列中读取报文分片,报文复用单元采用多帧复用方式将读取的报文分片转换成语音报文发送至报文发送单元。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种语音报文处理的方法,应用于放音业务处理,其特征在于,所述方法包括步骤A报文处理器判断当前是否需要发送语音报文,如果需要,则执行步骤B,如果不需要,则执行步骤C;步骤B所述报文处理器从报文分片队列中读取报文分片,转换成语音报文,所述报文处理器发送该语音报文;步骤C所述报文处理器从语音数据存储区读取报文分片置入报文分片队列。
2.根据权利要求1所述的方法,其特征在于,所述步骤B包括步骤B1所述报文处理器判断所述报文分片队列是否为空,如果不为空,则执行步骤B2;步骤B2所述报文处理器从所述报文分片队列中读取报文分片,转至步骤B3;步骤B3所述报文处理器将所述报文分片转换成语音报文,发送至物理层设备。
3.根据权利要求2所述的方法,其特征在于,所述步骤B还包括步骤B4物理层设备将所述语音报文发送至数字信号处理器,所述数字信号处理器将所述语音报文编解码后发送至IP网络或TDM网络。
4.根据权利要求2所述的方法,其特征在于,所述步骤B3中,所述报文处理器采用多帧复用方式将所述报文分片转换成语音报文;或者所述报文处理器直接读取一个报文分片转换成语音报文。
5.根据权利要求3所述的方法,其特征在于,步骤B2中读取报文分片的数量由所述数字信号处理器的缓存大小和所述报文分片的大小确定。
6.根据权利要求1或5所述的方法,其特征在于,所述报文分片的大小由所述语音报文的编解码方式确定。
7.根据权利要求1所述的方法,其特征在于,所述步骤A包括步骤A1所述报文处理器获取系统时间;步骤A2所述报文处理器比较所述系统时间和下一语音报文的报文发送时间,如果所述系统时间达到所述报文发送时间,则报文处理器发送下一个语音报文。
8.根据权利要求7所述的方法,其特征在于,所述方法进一步包括设置所述报文发送时间戳的允许窗口,如果所述系统时间在所述报文发送时间戳的允许窗口范围中,则报文处理器需要发送下一个语音报文。
9.根据权利要求1所述的方法,其特征在于,所述步骤C包括步骤C1所述报文处理器判断所述报文分片队列是否有空闲项,如果有,则所述报文处理器从所述语音数据存储区中读取报文分片,所述报文处理器将报文分片置入报文分片队列。
10.一种报文处理器,其特征在于,包括报文发送单元、数据接收单元、处理决策单元、报文处理单元,所述处理决策单元获取系统时间,根据所述系统时间分析下一步操作,发出操作指令;所述数据接收单元从语音数据存储区读取报文分片,发送至所述报文处理单元处理;所述报文处理单元接收所述数据接收单元发送的报文分片,将所述报文分片置入报文分片队列;所述报文处理单元从所述报文分片队列中读取报文分片,转换成语音报文后发送至所述报文发送单元;所述报文发送单元接收所述报文处理单元发送的语音报文,发送至物理层设备。
11.根据权利要求10的报文处理器,其特征在于,所述报文处理单元包括报文复用单元;所述报文处理单元从所述报文分片队列中读取报文分片后,所述报文复用单元采用多帧复用方式将所述报文分片转换成语音报文发送至所述报文发送单元。
全文摘要
本发明涉及语音报文的处理技术,公开了一种语音报文的处理方法和报文处理器。本发明中,在放音业务处理过程中,在内存中设置报文分片队列,用于缓存报文分片。在报文处理器需要发送语音报文时,报文处理器从报文分片队列中读取报文分片,并为读取的报文分片封装报文首部,转换成语音报文,发送给物理层设备处理;在报文处理器不需要发送语音报文时,报文处理器从内存中读取报文分片,将报文分片置入报文分片队列。本发明利用了报文分片队列缓存机制,将读取报文分片、发送语音报文等操作分开,有效地利用了报文处理器资源,提高报文处理的效率。
文档编号H04M3/487GK101031092SQ20061003408
公开日2007年9月5日 申请日期2006年2月28日 优先权日2006年2月28日
发明者蔡利剑 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1