一种用于通信语音传输系统的语音包存储方法技术方案

技术编号:18240729 阅读:25 留言:0更新日期:2018-06-17 05:37
本发明专利技术提供一种用于通信语音传输系统的语音包存储方法,该方法既能够处理多路语音通话信息,又能够对语音包进行排序还能够按照通话的不同模式进行语音包存储,包括网口接收线程、数据处理线程、存储线程和定时器线程4个线程,网口接收线程主要负责在网口接收数据包,数据处理线程主要处理语音通话的信令包和语音包,存储线程主要是将各路通话的语音信息存入对应的文件中,定时器线程主要负责定时器超时的处理。本发明专利技术可以实现通信语音传输系统中的多路语音同时存储,对每一路语音通话有一个清楚的文件名表示;可以对语音包进行排序处理,播放时不会有听不清楚的情况;可以按照通话的不同模式进行语音包存储,在播放时可以完整重现通话时的情况。 1

Voice packet storage method for communication voice transmission system

The invention provides a speech packet storage method for communication voice transmission system. This method can not only deal with multiple voice call information, but also can sort voice packets and carry out voice packet storage according to the different modes of the call, including the thread receiving, data processing thread, storage thread and timer line. Through 4 threads, the thread receiving thread is mainly responsible for receiving data packets at the net. The data processing thread mainly deals with the signaling packet and the voice packet of the voice call. The memory thread is mainly to save the voice information of all kinds of calls into the corresponding files, and the timer thread is mainly responsible for the timeout time processing. The invention can store the multiple voice at the same time in the communication voice transmission system. It has a clear file name for each voice call. It can sort the voice packets, and can not hear clearly when playing; it can be stored in the voice packet according to the different mode of the call, and can finish when playing. The situation in which the call is reproduced. One

【技术实现步骤摘要】
一种用于通信语音传输系统的语音包存储方法
本专利技术属于通信
,涉及一种用于通信语音传输系统的语音包存储方法,是在语音传输系统中的可以同时处理多路语音信息并能够将语音包排序存储的方法。
技术介绍
现有的语音通话传输系统中使用UDP协议进行语音数据包的传输,但是没有区分先后顺序,也不能够区分多路语音通话信息,而RTP协议使得语音通话数据包仅仅只是有了包序号,但是并没有解决排序和多路语音通话信息同时处理的问题,造成在需要播放语音时会有丢包、乱序、听不清楚的情况,另外现有的语音存储技术只能存储本地设备作为通话参与方的语音,不能存储整个系统中的语音,若通话是双工模式时也不能区分该模式造成在播放时不能够完整重现语音通话的情况,所以一种既能够处理多路语音通话信息,又能够对语音包进行排序还能够按照通话的不同模式进行语音包存储的方法是急需的。
技术实现思路
本专利技术的目的在于提供一种用于通信语音传输系统的语音包存储方法,能够同时处理多路语音通话信息,并能够按照通话的不同模式进行语音包的排序存储。本方法采用的技术方案是:一种用于通信语音传输系统的语音包存储方法,其特征在于:包括与通信传输系统连接的PC机,PC机中存有网口接收线程、数据处理线程、存储线程和定时器线程4个线程,线程之间通过消息队列进行通信,本方法先在PC机系统内存中分配多个空间链表头,用于存放语音通话的基本信息,然后通过链表存储通话的语音,当链表中语音包到达一定的长度后,将语音包存储在根据通话的基本信息创建的文件中;网口接收线程,主要负责在网口接收数据包,数据包包括在语音通信过程中产生的所有信令包和语音包,信令包中含有通话的基本信息,如通话发起方,接收方,通话模式,通话唯一标示以及通话指示,语音包中包括语音头和语音数据,语音头中携带通话唯一标示和时间戳信息,不同路通话的唯一标示不同,同一路通话的信令包和语音包的唯一标示相同,网口接收线程通过接收模块接收到各种数据包后再由分析模块分析出数据包的基本信息,然后向数据处理线程的消息队列发送消息;数据处理线程,主要处理语音通话的信令包和语音包,在网络传输过程中各路语音通话的信令包和语音包接收到的时间不定,顺序不定,所以无论先接收到信令还是语音都先通过查找分配模块确定是否为携带的唯一标示分配过存储空间,若没有分配则新分配存储空间,若已经分配过则再按信令和语音不同处理;信令处理的流程,根据通话指示判断是语音开始还是结束,若是语音开始的信令,则需要在分配的空间链表头中写入通话的基本信息,然后创建存储语音包的文件,文件名中包含通话开始时间以及发起方和接收方的号码信息,开启定时器1,定时器1的作用是等待接收语音包,若收到信令后接收不到语音包可以回收分配的存储空间,若是语音结束的信令,则开启定时器2,定时器2的作用是等待有可能后续到达的语音包,防止丢包的作用,然后给存储线程的消息队列发送包含存储位置的消息;语音包处理的流程,每次接收到语音包后都需要更新定时器3,定时器3的作用是若长时间收不到语音从而回收分配的空间位置防止浪费,然后进行排序处理,若链表为空则表示是第一包语音直接放入第一个位置,若链表中已经有语音包,则需要根据时间戳在链表中找到适当的位置存储。接收到的语音如果一直在链表中存储会占用太多的内存空间,所以当链表到达一定的长度N后会通知存储线程去存储N/2长度的语音包到文件中;存储线程,主要是将各路通话的语音信息存入对应的文件中,找到链表位置,由链表中的第一包开始将语音存储到文件中,在存储时去掉通话的相关信息只存储纯语音数据,存储时还要判断时间戳的间隔,每一包语音的时间戳间隔都是相同的,若语音包的时间戳间隔较大则说明中间有丢包,存储时需要补齐相应包数的静音帧数据到文件中,若是接收到通话结束的消息,在存储所有的语音后还要判断通话的模式,若是单工通话则不需要做其余处理,若是双工通话则对通话双方都会有一个语音文件,所以结束通话时需要将两个文件合并,根据通话发起方和接收方查找文件,对文件中每个字进行相加的算法处理后存入一个新文件中,删除两个单独的语音文件,双工通话也只保留一个语音文件;定时器线程主要负责定时器超时的处理,每个定时器的定时时间可以自由设置,超时后会给相应线程的消息队列发送消息,定时器的添加使得内存空间能够及时回收,保证了每路语音通话都有足够的空间位置存储语音。本专利技术的有益效果是:本专利技术是用于与通信传输系统连接的PC机上的语音包存储方法,可以实现通信语音传输系统中的多路语音同时存储,对每一路语音通话有一个清楚的文件名表示;可以对语音包进行排序处理,播放时不会有听不清楚的情况;可以按照通话的不同模式进行语音包存储,在播放时可以完整重现通话时的情况。该方法既能够处理多路语音通话信息,又能够对语音包进行排序,还能够按照通话的不同模式进行语音包存储。附图说明图1为本专利技术的4个线程的框架图;图2为本专利技术信令处理流程图;图3为本专利技术语音包处理的流程图。具体实施方式以下结合附图对本专利技术做进一步介绍。如图1所示,一种用于通信语音传输系统的语音包存储方法,包括与通信传输系统连接的PC机,PC机中存有网口接收线程、数据处理线程、存储线程和定时器线程4个线程,线程之间通过消息队列进行通信,本方法先在PC机系统内存中分配多个空间链表头,用于存放语音通话的基本信息,然后通过链表存储通话的语音,当链表中语音包到达一定的长度后,将语音包存储在根据通话的基本信息创建的文件中。网口接收线程主要负责在网口接收数据包,数据包包括在语音通信过程中产生的所有信令包和语音包,信令包中含有通话的基本信息,如通话发起方,接收方,通话模式,通话唯一标示以及通话指示,语音包中包括语音头和语音数据,语音头中携带通话唯一标示和时间戳信息,不同路通话的唯一标示不同,同一路通话的信令包和语音包的唯一标示相同。网口接收线程通过接收模块接收到各种数据包后再由分析模块分析出数据包的基本信息,然后向数据处理线程的消息队列发送消息。数据处理线程主要处理语音通话的信令包和语音包,在网络传输过程中各路语音通话的信令包和语音包接收到的时间不定,顺序不定,所以无论先接收到信令还是语音都先通过查找分配模块确定是否为携带的唯一标示分配过存储空间,若没有分配则新分配存储空间,若已经分配过则再按信令和语音不同处理。信令处理的流程如图2所示,根据通话指示判断是语音开始还是结束,若是语音开始的信令,则需要在分配的空间链表头中写入通话的基本信息,然后创建存储语音包的文件,文件名中包含通话开始时间以及发起方和接收方的号码等信息,开启定时器1,定时器1的作用是等待接收语音包,若收到信令后接收不到语音包可以回收分配的存储空间。若是语音结束的信令,则开启定时器2,定时器2的作用是等待有可能后续到达的语音包,防止丢包的作用,然后给存储线程的消息队列发送包含存储位置的消息。语音包处理的流程如图3所示,每次接收到语音包后都需要更新定时器3,定时器3的作用是若长时间收不到语音从而回收分配的空间位置防止浪费,然后进行排序处理,若链表为空则表示是第一包语音直接放入第一个位置,若链表中已经有语音包,则需要根据时间戳在链表中找到适当的位置存储。接收到的语音如果一直在链表中存储会占用太多的内存空间,所以当链表到达一定的长度本文档来自技高网...
一种用于通信语音传输系统的语音包存储方法

【技术保护点】
1.一种用于通信语音传输系统的语音包存储方法,其特征在于:包括与通信传输系统

【技术特征摘要】
1.一种用于通信语音传输系统的语音包存储方法,其特征在于:包括与通信传输系统连接的PC机,PC机中存有网口接收线程、数据处理线程、存储线程和定时器线程4个线程,线程之间通过消息队列进行通信,本方法先在PC机系统内存中分配多个空间链表头,用于存放语音通话的基本信息,然后通过链表存储通话的语音,当链表中语音包到达一定的长度后,将语音包存储在根据通话的基本信息创建的文件中;网口接收线程,主要负责在网口接收数据包,数据包包括在语音通信过程中产生的所有信令包和语音包,信令包中含有通话的基本信息,如通话发起方,接收方,通话模式,通话唯一标示以及通话指示,语音包中包括语音头和语音数据,语音头中携带通话唯一标示和时间戳信息,不同路通话的唯一标示不同,同一路通话的信令包和语音包的唯一标示相同,网口接收线程通过接收模块接收到各种数据包后再由分析模块分析出数据包的基本信息,然后向数据处理线程的消息队列发送消息;数据处理线程,主要处理语音通话的信令包和语音包,在网络传输过程中各路语音通话的信令包和语音包接收到的时间不定,顺序不定,所以无论先接收到信令还是语音都先通过查找分配模块确定是否为携带的唯一标示分配过存储空间,若没有分配则新分配存储空间,若已经分配过则再按信令和语音不同处理;信令处理的流程,根据通话指示判断是语音开始还是结束,若是语音开始的信令,则需要在分配的空间链表头中写入通话的基本信息,然后创建存储语音包的文件,文件名中包含通话开始时间以及发起方和接收方的号码信息,开启定时器1,定时器1的作用是等待接收语音包,若收到信令后接收不到语音包可以回...

【专利技术属性】
技术研发人员:窦金飞王智超郑敏敏李霄姚金龙
申请(专利权)人:天津七一二通信广播股份有限公司
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1