一种网络电话语音设备、处理方法、装置及存储介质与流程

文档序号:20884518发布日期:2020-05-26 17:24阅读:266来源:国知局
一种网络电话语音设备、处理方法、装置及存储介质与流程

本发明涉及网络电话,尤其涉及一种网络电话语音设备、语音处理方法、装置及存储介质。



背景技术:

目前,对于网络电话中的语音设备来说,一般在通话时,语音流是通过语音处理模块进行语音协议处理后,通过socket发包接口进行发送,而socket发包接口再经过网络设备接口、内核ip(internetprotocol,互联网协议)层进而通过网络发送到语音服务器平台;而语音服务器平台返回的语音数据经过语音协议处理后通过网络设备接口传回内核ip层收包后,再通过网络设备接口层反馈给语音处理模块。也即是,如图1所示,①①~①④表示语音处理模块向语音服务平台发送语音流;而②①~②④表示语音服务平台向语音处理模块反馈语音流。

也即是说,每路语音通话的语音流均通过内核ip接口进行转发。当同时存在多路语音通话时,就会涉及到大量的语音流处理,由于在转发时涉及到内核ip接口,导致语音流的转发性能差,造成cpu利用率高;严重时可能造成通话卡顿或其他模块功能异常等问题。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种网络电话语音设备,其能够解决现有技术中当存在多路语音通话时语音流转发性能差容易造成卡顿或异常等问题。

本发明的目的之二在于提供一种网络电话语音处理方法,其能够解决现有技术中当存在多路语音通话时语音流转发性能差容易造成卡顿或异常等问题。

本发明的目的之三在于提供一种网络电话语音处理装置,其能够解决现有技术中当存在多路语音通话时语音流转发性能差容易造成卡顿或异常等问题。

本发明的目的之四在于提供一种存储介质,其能够解决现有技术中当存在多路语音通话时语音流转发性能差容易造成卡顿或异常等问题。

本发明的目的之一采用如下技术方案实现:

一种网络电话语音设备,所述语音设备包括语音处理模块、共享内存和内核模块;所述共享内存用于存储每路语音通话时,语音处理模块生成的待发送语音流以及内核模块接收到的语音服务平台返回的待处理语音流;在语音通话过程中,语音处理模块将生成的待发送语音流存储共享内存的对应区域,进而使得内核模块从共享内存中取出待发送语音流转发给语音服务平台;内核模块通过接收语音服务平台反馈回的待处理语音流存储共享内存的对应区域,使得语音处理模块从共享内存中取出待处理语音流并进行语音处理;所述共享内存由内核模块动态创建,并将共享内存的物理地址映射成语音处理模块的虚拟内存地址,进而使得内核模块以及语音处理模块访问所述共享内存;其中,待发送语音流为语音处理模块生成并由内核模块转发给语音服务平台的语音流,待处理语音流为语音服务平台反馈的语音流。

进一步地,当路语音通话开始时,语音处理模块发送一个或多个初始化数据包给内核模块,使得内核模块解析初始化数据包得出语音通话的ip头信息并将其存储于共享内存中语音通话所对应的区域;其中,所述ip头信息包括协议类型、源ip地址、目的ip地址、源端口和目的端口。

进一步地,当内核模块从共享内存中取出待发送语音流时,还取出对应的ip头信息,并根据ip头信息以及待发送语音流生成待发送数据包转发给语音服务平台;当内核模块接收到语音服务平台发送的待处理数据包,对待处理数据包进行解析得出待处理语音流以及待处理语音流所对应的语音通话,以及将待处理语音流存储在共享内存中对应的语音通话所对应的区域;其中,待发送数据包为语音处理模块生成并由内核模块转发给语音服务平台的数据包;待处理数据包为内核模块接收的语音服务平台反馈的数据包。

进一步地,所述内核模块用于动态创建共享内存,并通过调用virt_to_phys接口得出共享内存的物理地址,并将共享内存的物理地址发送语音处理模块,使得语音处理模块调用mmap接口将物理地址映射为语音处理模块的虚拟地址;其中,共享内存位于物理内存的映射区域,并且是连续的。

本发明的目的之二采用如下技术方案实现:

方案一:

一种网络电话语音处理方法,应用于如本发明目的之一采用的一种网络电话语音设备,所述语音处理方法包括:

请求步骤:当语音处理模块与内核模块连接时,语音处理模块接收内核模块发送的共享内存的物理地址,并将共享内存的物理地址映射为语音处理模块的虚拟地址,从而使得语音处理模块访问共享内存;

初始连接步骤:当语音通话开始时,语音处理模块向内核模块发送初始化数据包,使得内核模块解析初始化数据包得出所述语音通话的ip头信息并存储于共享内存中所述语音通话所对应的区域;

语音流存储步骤:语音处理模块将待发送语音流并将待发送语音流存储于共享内存中所述语音通话对应的区域;

语音流处理步骤:语音处理模块定时检测共享内存中是否有待处理语音流更新,若有,则从所述共享内存中取出待处理语音流并进行语音处理;其中,待发送语音流为语音处理模块生成并由内核模块转发给语音服务平台的语音流,待处理语音流为语音服务平台反馈的语音流。

方案二:

一种网络电话语音流处理方法,应用于如本发明目的之一采用的一种网络电话语音设备,所述语音流处理方法包括:

创建步骤:内核模块动态创建共享内存,并将所述共享内存的物理地址发送给语音处理模块,使得语音处理模块将共享内存的物理地址映射为语音处理模块的虚拟内存地址;

获取ip步骤:当语音通话开始时,内核模块接收语音处理模块发送的初始化数据包并解析得出所述语音通话的ip头信息,并将所述语音通话的ip头信息存储于共享内存中所述语音通话所对应的区域;

转发步骤:内核模块定时检测共享内存是否有待发送语音流更新,若是,则从共享内存中取出待发送语音流以及对应的ip头信息生成待发送数据包,并将其转发给语音服务平台;

转存步骤:内核模块接收语音服务平台反馈的待处理数据包并对待处理数据包进行解析得出待处理语音流以及对应的语音通话,并将待处理语音流存储所述共享内存中对应的语音通话所对应的区域。

本发明的目的之三采用如下技术方案实现:

方案一:

一种网络电话语音处理装置,包括存储器和处理器,所述存储器上存储有可在处理器上运行的语音处理程序,所述语音处理程序为计算机程序,所述处理器执行所述语音处理程序时实现以下步骤:

请求步骤:当语音处理模块与内核模块连接时,语音处理模块接收内核模块发送的共享内存的物理地址,并将共享内存的物理地址映射为语音处理模块的虚拟地址,从而使得语音处理模块访问共享内存;

初始连接步骤:当语音通话开始时,语音处理模块向内核模块发送初始化数据包,使得内核模块解析初始化数据包得出所述语音通话的ip头信息并存储于共享内存中所述语音通话所对应的区域;

语音流存储步骤:语音处理模块生成待发送语音流并将待发送语音流存储于共享内存中所述语音通话对应的区域;

语音流处理步骤:语音处理模块定时检测共享内存中是否有待处理语音流更新,若有,则从所述共享内存中取出待处理语音流并进行语音处理;其中,待发送语音流为语音处理模块生成并由内核模块转发给语音服务平台的语音流,待处理语音流为语音服务平台反馈的语音流。

方案二:

一种网络电话语音处理装置,包括存储器和处理器,所述存储器上存储有可在处理器上运行的语音处理程序,所述语音处理程序为计算机程序,所述处理器执行所述语音处理程序时实现以下步骤:

创建步骤:内核模块动态创建共享内存,并将所述共享内存的物理地址发送给语音处理模块,使得语音处理模块将共享内存的物理地址映射为语音处理模块的虚拟内存地址;

获取ip步骤:当语音通话开始时,内核模块接收语音处理模块发送的初始化数据包并解析得出所述语音通话的ip头信息,并将所述语音通话的ip头信息存储于共享内存中所述语音通话所对应的区域;

转发步骤:内核模块定时检测共享内存是否有待发送语音流更新,若是,则从共享内存中取出待发送语音流以及对应的ip头信息生成待发送数据包,并将其转发给语音服务平台;

转存步骤:内核模块接收语音服务平台反馈的待处理数据包并对待处理数据包进行解析得出待处理语音流以及对应的语音通话,并将待处理语音流存储所述共享内存中对应的语音通话所对应的区域。

本发明的目的之四采用如下技术方案实现:

方案一:

一种存储介质,所述存储介质为计算机可读存储介质,其上存储有语音处理程序,所述语音处理程序为计算机程序,所述语音处理程序被处理器执行时实现以下步骤:

请求步骤:当语音处理模块与内核模块连接时,语音处理模块接收内核模块发送的共享内存的物理地址,并将共享内存的物理地址映射为语音处理模块的虚拟地址,从而使得语音处理模块访问共享内存;

初始连接步骤:当语音通话开始时,语音处理模块向内核模块发送初始化数据包,使得内核模块解析初始化数据包得出所述语音通话的ip头信息并存储于共享内存中所述语音通话所对应的区域;

语音流存储步骤:语音处理模块生成待发送语音流并将待发送语音流存储于共享内存中所述语音通话对应的区域;

语音流处理步骤:语音处理模块定时检测共享内存中是否有待处理语音流更新,若有,则从所述共享内存中取出待处理语音流并进行语音处理;其中,待发送语音流为语音处理模块生成并由内核模块转发给语音服务平台的语音流,待处理语音流为语音服务平台反馈的语音流。

方案二:

一种存储介质,所述存储介质为计算机可读存储介质,其上存储有语音处理程序,所述语音处理程序为计算机程序,所述语音处理程序被处理器执行时实现以下步骤:

创建步骤:内核模块动态创建共享内存,并将所述共享内存的物理地址发送给语音处理模块,使得语音处理模块将共享内存的物理地址映射为语音处理模块的虚拟内存地址;

获取ip步骤:当语音通话开始时,内核模块接收语音处理模块发送的初始化数据包并解析得出所述语音通话的ip头信息,并将所述语音通话的ip头信息存储于共享内存中所述语音通话所对应的区域;

转发步骤:内核模块定时检测共享内存是否有待发送语音流更新,若是,则从共享内存中取出待发送语音流以及对应的ip头信息生成待发送数据包,并将其转发给语音服务平台;

转存步骤:内核模块接收语音服务平台反馈的待处理数据包并对待处理数据包进行解析得出待处理语音流以及对应的语音通话,并将待处理语音流存储所述共享内存中对应的语音通话所对应的区域。

相比现有技术,本发明的有益效果在于:

本发明在语音设备的语音处理模块以及内核模块中创建一共享内存,使得语音处理模块与内核模块能够同时访问该共享内;当语音通话时,语音处理模块将生成的语音流存储共享内存中,内核模块就可以从共享内存中自动获取语音流并转发给语音服务平台;同样地,内核模块将接收到语音服务平台返回的语音流存储共享内存中,语音处理模块既可以从共享内存中自动获取语音服务平台反馈的语音流进行处理。本发明通过共享内存实现多路语音通话中语音流的存储,解决了现有技术中语音通话过程中由于需要通过内核模块的ip层,导致当多路通话同时存在时导致语音通话转发性能差等问题,解决了现有技术中的语音通话存在卡顿等问题,大大提高语音通话的效率,给用户带来了良好的体验。

附图说明

图1为本发明提供的现有的网络电话设备的语音流转发示意图;

图2为本发明提供的网络电话语音设备的语音流转发示意图;

图3为实施例一提供的一种网络电话语音处理方法流程图;

图4为实施例二提供的一种网络电话语音处理方法流程图;

图5为本发明提供的一种网络电话语音处理装置模块示意图。

图中:11、存储器;12、处理器;13、通信总线;14、网络接口。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

实施例一

本发明提供了一种网络电话语音设备,如图2所示,通过在语音设备中创建一共享内存。该共享内存用于语音通话时的语音流数据的收发,来解决现有技术中当语音设备存在多路语音通话时转发性能差,甚至导致卡顿等问题。

一般来说,语音设备至少包括语音处理模块和内核模块。当语音通话时,语音处理模块将生成的语音流通过内核模块转发到外部语音服务平台。同样地,内核模块还将接收的外部的语音服务平台反馈的语音流转发给语音处理模块进行语音处理。

本发明通过在语音设备中创建共享内存,并且内核模块、语音设备均可以对该共享内存进行访问。

具体地:在语音通话过程中,语音处理模块将语音流存储该共享内存,而内核模块可通过对该共享内存的访问将语音流取出并转发给外部的语音服务平台。同时,内核模块还将接收的语音服务平台返回的语音流存储该共享内存中,而语音处理模块通过对该共享内存的访问从共享内存中取出语音服务平台反馈的语音流进行语音处理。如图2所示,具体应用时,由于语音处理模块与内核模块连接,是通过内核模块的网络设备接口层与内核模块连接,因此,具体地语音处理模块会将语音流通过网络设备接口层存储共享内存中。同样地,内核模块的网络设备接口层通过对共享内存的访问将语音流取出并转发给语音服务平台、以及将接收到的语音服务平台的语音流存储共享内存中。其中,①①表示语音处理模块向内核模块创建的共享内存存储语音流,①②表示内核模块将共享内存存储的语音流转发给语音服务平台;反之,②①表示语音服务平台向内核模块反馈语音流,并经过内核模块存储共享内存中,②②表示语音处理模块从内核模块的共享内存中取出语音流,并进行语音处理。

进一步地,在网络电话中,由于可能存在多路语音通话,因此,本发明还规定共享内存中所存储语音流是按照每路语音通话进行分别存储。也即是分别为每路语音通话划分对应的存储区域,用于存储该路语音通话时的语音流。

因此,本发明通过共享内存来实现语音流的存储,避免每次通话都需要经过内核模块的ip(internetprotocol,互联网协议地址)层,解决了现有技术中当有多路语音同时通话时会有大量的语音流处理时而造成cpu(centralprocessingunit/processor,中央处理器)利用率高的问题,解决了通话卡顿或其他模块功能异常的问题,比如网管操作卡顿等异常现象。

另外,本发明还给出了共享内存的创建过程:

首先内核模块通过动态申请内存的方式创建一共享内存。该共享内存位于物理内存的映射区域,并且是连续的。

然后内核模块通过调用virt_to_phys接口得出该共享内存的物理地址,并将该物理地址发送给语音处理模块,进而使得语音处理模块将共享内存的物理地址用mmap接口映射为语音处理模块的虚拟内存地址。此时语音处理模块、内核模块均可同时对该共享内存进行访问。其中,virt_to_phys接口为将虚拟地址映射为物理地址的函数接口。mmap是将一个文件或者其他映射为内存的方法,也即是本实施例中通过mmap接口将共享内存的物理地址映射为语音处理模块的虚拟内存地址,进而实现语音处理模块对共享内存的访问。

另外,为了保证多路语音通话中语音流的识别,本发明在共享内存中对每路语音通话均划分对应的区域进行存储。具体的,本实施例以4路语音通话为例来说明共享内存的数据结构的定义:

本发明通过该共享内存中的数据更新来实现语音处理模块与内核模块的数据交互。另外,由于通话时会存在多路语音同时通话的情况,因此,在该共享内存中为每路通话均设定了相应的数据存储区域,如前述数据结构中的定义。

也即是说,语音处理模块以及内核模块在存储语音流时,会根据该语音流所属的通话通道存储于相应的区域,因为避免不同路的语音流进行混淆。

另外,由于共享内存中所存储的语音流,而内核模块将语音流转发出去时,还需要获取语音流的ip头信息,也即是包括协议类型、源ip地址(internetprotocoladdress,互联网协议地址)、目的ip地址、源端口和目的端口。

但是共享内存中所存储的语音流并不存在ip头信息。因此,为了保证内核模块从共享内存中取出的语音流能够正确转发出去,还需要获取每路语音通话的ip头信息。

为了保证内核模块能够获取上述数据,在语音通话开始时,本发明还规定语音处理模块预先向内核模块发送一个数据包,内核模块可通过上述数据包来获取该语音通话的ip头信息,并将其存储于共享内存中该语音通话所对应的区域。

也即是在通话开始时,语音处理模块采用传统的通话方式,比如通过socket方式向内核模块发送一个数据包,此时内核模块可从该数据包中获取相应的ip头信息;然后将ip头信息存储于共享内存中对应路语音通话所对应的区域。也即是时候,语音处理模块向内核模块的网络设备接口层发送数据包,使得网络设备接口层对数据包进行解析得出该路语音通话的ip头信息,并将其存储于共享内存中该路语音通话对应的区域。因此,当内核模块从共享内存中取出语音流的同时获取该路语音通话的ip头信息,然后根据该路语音通话的语音流以及ip头信息生成相应的数据包转发到对应的语音服务平台即可。

同样地,当内核模块接收到语音服务平台返回的数据包时,通过对数据包进行解析得出该语音流所对应的语音通话,然后将其存储共享内存中对应路的语音通话所对应的区域即可,以便后续语音处理模块从该区域内获取语音服务平台返回的语音流。

具体的,本实施例还给出将ip头信息存储于共享内存时各个参数的数据结构:

另外,本实施例还通过上述参数complete的值来表示当前的ip头信息是否更新。比如当complete的值为1时表示当前语音通话的ip头信息已经更新。

进一步地,为了保证内核模块获取正确的ip头信息,语音处理模块预先向内核模块发送数据包时,可发送多个数据包,比如2个或3个,以保证ip头信息的正确。

实施例二

如图3所示,本发明提供了一优选的实施例,一种网络通话语音处理方法,应用于实施例一中的语音设备的语音处理模块,包括以下步骤:

步骤s11、当语音处理模块与内核模块连接时,语音处理模块接收内核模块发送的共享内存的物理地址,并将共享内存的物理地址映射为语音处理模块的虚拟地址,从而使得语音处理模块访问共享内存。

其中,共享内存是由内核模块动态创建的。语音处理模块以及内核模块可同时对该共享内存进行访问。比如语音处理模块通过内核模块的网络设备接口层与内核模块连接,进而实现对共享内存的访问。

步骤s12、当语音通话开始时,语音处理模块向内核模块发送初始化数据包,使得内核模块解析初始化数据包得出所述语音通话的ip头信息并存储于共享内存中所述语音通话所对应的区域。

其中,ip头信息包括协议类型、源ip地址、目的ip地址、源端口和目的端口。

另外,由于可能存在多路语音通话或者语音通话的信息更改,因此,每次语音通话开始时,均需要预先对其ip头信息进行更新。

步骤s13、在语音通话过程中,语音处理模块将待发送语音流并将待发送语音流存储于共享内存中所述语音通话对应的区域。具体的,比如语音处理模块将语音流通过网络设备接口层存储共享内存的对应区域。

步骤s14、语音处理模块定时检测共享内存中是否有待处理语音流更新,若有,则从所述共享内存中取出待处理语音流并进行语音处理。比如语音处理模块通过网络设备接口层定时检测共享内存是否有待处理语音流更新。

其中,待发送语音流为语音处理模块生成并由内核模块转发给语音服务平台的语音流,待处理语音流为语音服务平台反馈的语音流。

实施例三

如图4所示,本实施例还提供了一种实施例,一种网络通话语音流处理方法,应用于实施例一的语音设备的内核模块,其包括以下步骤:

步骤s21、内核模块动态创建共享内存,并将所述共享内存的物理地址发送给语音处理模块,使得语音处理模块将共享内存的物理地址映射为语音处理模块的虚拟内存地址。

步骤s22、当语音通话开始时,内核模块接收语音处理模块发送的初始化数据包并解析得出所述语音通话的ip头信息,并将所述语音通话的ip头信息存储于共享内存中所述语音通话所对应的区域。

步骤s23、内核模块定时检测共享内存是否有待发送语音流更新,若是,则从共享内存中取出待发送语音流以及对应的ip头信息生成待发送数据包,并将其转发给语音服务平台。步骤s24、内核模块接收语音服务平台反馈的待处理数据包并对待处理数据包进行解析得出待处理语音流以及对应的语音通话,并将待处理语音流存储所述共享内存中对应的语音通话所对应的区域。比如内核模块的网络设备接口层通过对共享内存的访问,来实现待发送语音流的转发、以及待处理语音流的存储。

其中,待发送数据包为语音处理模块生成并由内核模块转发给语音服务平台的数据包;待处理数据包为内核模块接收的语音服务平台反馈的数据包。

从上可知,本发明中在语音通话过程中:语音处理模块只是通过将待发送语音流存储在共享内存的对应区域,或从共享内存中取出待处理语音流进行语音处理等,并为涉及到内核模块以及其他接口模块。而内核模块通过对共享内存的访问获取语音通话的语音流以及ip头信息生成对应的数据包转发到外部的语音服务平台;或将接收到的语音服务平台的数据包进行解析得出语音流并存储于共享内存的对应区域。也即是在整个的语音通话过程中,语音处理模块与内核模块只是通过对共享内存的访问即可实现,不涉及到内核模块的ip层以及网络接口层等,

实施例四

本发明提供了一种一种网络电话语音处理装置。如图5所示,本发明一实施例提供的一种网络电话语音处理装置的内部结构示意图。

在本实施例中,一种网络电话语音处理装置可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、便携计算机等终端设备。该一种网络电话语音处理装置至少包括:处理器12、通信总线13、网络接口14以及存储器11。

其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是一种网络电话语音处理装置的内部存储单元,例如该一种网络电话语音处理装置的硬盘。存储器11在另一些实施例中也可以是一种网络电话语音处理装置的外部存储设备,例如一种网络电话语音处理装置上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括一种网络电话语音处理装置的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于一种网络电话语音处理装置的应用软件及各类数据,例如语音处理程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行语音处理程序等。

通信总线13用于实现这些组件之间的连接通信。

网络接口14可选的可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该一种网络电话语音处理装置与其他电子设备之间建立通信连接。

可选地,该一种网络电话语音处理装置还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在一种网络电话语音处理装置中处理的信息以及用于显示可视化的用户界面。

图5仅示出了具有组件11-14以及语音处理程序的一种网络电话语音处理装置,本领域技术人员可以理解的是,图5示出的结构并不构成对一种网络电话语音处理装置的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

在图5所示的一种网络电话语音处理装置实施例中,存储器11中存储有语音处理程序;处理器12执行存储器11中存储的语音处理程序时实现如下步骤:

步骤s11、当语音通话开始时,语音处理模块向内核模块发送初始化数据包,使得内核模块解析初始化数据包得出所述语音通话的ip头信息并存储于共享内存中所述语音通话所对应的区域。

步骤s12、当语音通话开始时,语音处理模块向内核模块发送初始化数据包,使得内核模块解析初始化数据包得出所述语音通话的ip头信息并存储于共享内存中所述语音通话所对应的区域。

步骤s13、在语音通话过程中,语音处理模块将待发送语音流并将待发送语音流存储于共享内存中所述语音通话对应的区域。

步骤s14、语音处理模块定时检测共享内存中是否有待处理语音流更新,若有,则从所述共享内存中取出待处理语音流并进行语音处理。

或者,在图5所示的一种网络电话语音处理装置实施例中,存储器11中存储有语音处理程序;处理器12执行存储器11中存储的语音处理程序时实现如下步骤:

步骤s21、内核模块动态创建共享内存,并将所述共享内存的物理地址发送给语音处理模块,使得语音处理模块将共享内存的物理地址映射为语音处理模块的虚拟内存地址。

步骤s22、当语音通话开始时,内核模块接收语音处理模块发送的初始化数据包并解析得出所述语音通话的ip头信息,并将所述语音通话的ip头信息存储于共享内存中所述语音通话所对应的区域。

步骤s23、内核模块定时检测共享内存是否有待发送语音流更新,若是,则从共享内存中取出待发送语音流以及对应的ip头信息生成待发送数据包,并将其转发给语音服务平台。

步骤s24、内核模块接收语音服务平台反馈的待处理数据包并对待处理数据包进行解析得出待处理语音流以及对应的语音通话,并将待处理语音流存储所述共享内存中对应的语音通话所对应的区域。

实施例五

本发明还提供了一种存储介质,所述存储介质为计算机可读存储介质,其上存储有语音处理程序,所述语音处理程序为计算机程序,所述语音处理程序被处理器执行时实现以下步骤:

步骤s11、当语音处理模块与内核模块连接时,语音处理模块接收内核模块发送的共享内存的物理地址,并将共享内存的物理地址映射为语音处理模块的虚拟地址,从而使得语音处理模块访问共享内存。

步骤s12、当语音通话开始时,语音处理模块向内核模块发送初始化数据包,使得内核模块解析初始化数据包得出所述语音通话的ip头信息并存储于共享内存中所述语音通话所对应的区域。

步骤s13、在语音通话过程中,语音处理模块将待发送语音流并将待发送语音流存储于共享内存中所述语音通话对应的区域。

步骤s14、语音处理模块定时检测共享内存中是否有待处理语音流更新,若有,则从所述共享内存中取出待处理语音流并进行语音处理。

或者,所述存储介质为计算机可读存储介质,其上存储有语音处理程序,所述语音处理程序为计算机程序,所述语音处理程序被处理器执行时实现以下步骤:

步骤s21、内核模块动态创建共享内存,并将所述共享内存的物理地址发送给语音处理模块,使得语音处理模块将共享内存的物理地址映射为语音处理模块的虚拟内存地址。

步骤s22、当语音通话开始时,内核模块接收语音处理模块发送的初始化数据包并解析得出所述语音通话的ip头信息,并将所述语音通话的ip头信息存储于共享内存中所述语音通话所对应的区域。

步骤s23、内核模块定时检测共享内存是否有待发送语音流更新,若是,则从共享内存中取出待发送语音流以及对应的ip头信息生成待发送数据包,并将其转发给语音服务平台。

步骤s24、内核模块接收语音服务平台反馈的待处理数据包并对待处理数据包进行解析得出待处理语音流以及对应的语音通话,并将待处理语音流存储所述共享内存中对应的语音通话所对应的区域。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1