具体实施方式
在网络电话(VOIP)通信系统中,很多组网方案中的语音设备比如VOIP语音网关或者VOIP语音路由器等带有语音端口,以便直接连接电话机。基于此,本申请在VOIP通话过程中,为上述语音设备配置录音功能,由该语音设备根据其连接的电话机的控制进行有选择的录音,比如选择仅录其中一方的声音,或者选择录整个通话过程中各方的声音等。相比于现有技术,本申请由于不使用电话机录音,而是独创性地提出使用VOIP组网方案中的语音设备进行录音,因此,在录音时,其并不像现有技术那样需要高档电话机,或者与普通电话机配套的录音设备参与,这更能提高本申请方案的应用;并且,本申请在完成录音后,以文件形式存储该录音,以方便用户后续的提取和控制,即实现了通过文件形式存储录音,方便用户提取和控制录音播放。
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
参见图1,图1为本发明实施例提供的基本流程图。该流程适用于包含至少一个语音设备的VOIP通信系统中,其中,如上所述,本申请不再利用电话机进行录音,而是利用语音设备执行录音操作,基于此,本实施例不再对电话机有所限定,即本实施例中的电话机可为普通电话机,也可为高档的电话机。基于此,如图1所示,在VOIP通话过程中,该流程可包括以下步骤:
步骤101,语音设备接收到录音启动标志时,生成声音文件,并记录所述VOIP通话中的语音数据至所述声音文件中。
由于语音设备通过其带有的语音端口连接了电话机,基于此,本申请可通过该电话机发送录音启动标志,这里,录音启动标志可由电话机上的至少一个按键组成,比如将“#3”作为录音启动标志。
步骤102,语音设备接收到录音结束标志时,停止记录所述VOIP通话中的语音数据,并存储所述声音文件。
录音结束标志也可像上面描述的录音启动标志一样,由语音设备连接的电话机发送,其中,该录音结束标志也可由电话机上的至少一个按键组成,但,必须与录音启动标志不同,比如,将“#0*”作为录音结束标志。
优选地,作为本发明另一实施例,该录音结束标志也可为VOIP通话结束,即在VOIP通话结束时,语音设备停止录音,并存储该记录了录音的声音文件。
以上对本发明实施例提供的方法进行了简单描述。
在步骤101中,录音启动标志可由录音方式组成。其中,如果上述VOIP通话为两方之间的电话通话,则录音方式具体为单向录音和双向录音,其中,单向录音为仅记录来自其中一端(这里记为被录音的一端)发送的语音数据,这里该被录音的一端具体可为发送了录音启动标志的电话机一端或者其对端;双向录音为记录来自两端(这里记为被录音的两端)发送的语音数据,这里被录音的两端为发送了录音启动标志的电话机一端和其对端。而如果上述VOIP通话为电话会议中多方之间的通话,则录音方式除了包含单向录音、双向录音外还包括多向录音,此时,发送了所述录音启动标志的电话机的对端可以扩展为电话会议中除了该发送录音启动标志的电话机之外的其他任何一个电话机。
之后,当语音设备接收到录音启动标志后,即可根据录音启动标志包含的录音方式开始记录所述VOIP通话中的语音数据。需要说明的是,该多方VOIP通话的实现原理与双方VOIP通话类似,下面仅以双方VOIP通话为例进行描述。
参见图2,图2为本发明实施例应用的组网示意图。在图2所示的组网中包含两个语音设备,即语音设备1和语音设备2,其中,语音设备1和语音设备2通过各自带有的语音端口连接了电话机1(记为tel1)和电话机2(记为tel2)。基于此,在tel1和tel2之间创建的VOIP通话的过程中,若其中一方的用户比如tel1处的用户觉得有必要把当前的通话记录下来,则在tel1上按下用于组成录音启动标志的键。
由于本实施例中的通话为tel1和tel2之间的通话即两方通话,基于此,该录音启动标志包含的录音方式相应可为单向录音或者双向录音,其中,单向录音指仅记录来自tel1的语音数据、或者仅记录来自tel2的语音数据,双向录音为记录来自tel1和tel2两方的语音数据。这里,由于录音启动标志由电话机上的按键组成,因此,相应地,该录音方式实质上也是由电话机上的按键组成,为便于描述,本实施例设置录音方式和按键的对应关系如下:
电话机上的数字键“1”表示仅记录来自tel1的语音数据;
电话机上的数字键“2”表示仅记录来自tel2的语音数据;
电话机上的数字键“3”表示记录来自tel1和tel2两方的语音数据。
也就是说,当tel1处的用户在发送录音启动标志时,相应地也发送了录音方式。
当语音设备1接收到录音启动标志后,语音设备1生成声音文件,并开始记录tel1和tel2之间在进行VOIP通话时的语音数据至所述声音文件。由于录音启动标志包含了录音方式,基于此,本实施例可根据该录音启动标志包含的录音方式开始记录该VOIP通话中的语音数据,比如,若录音方式为仅记录来自tel1的语音数据、或者仅记录来自tel2的语音数据,则相应地,语音设备1就仅记录来自tel1的语音数据或者来自tel2的语音数据,若录音方式为双向录音,则语音设备就记录来自tel1和tel2两方的语音数据。
本实施例中语音设备1在生成声音文件时,还需对生成的声音文件进行命名,以便于后续查找该声音文件。这里,本实施例可利用接收到录音启动标志的日期时间、该录音启动标志包含的录音方式和语音数据的编码方式三者对生成的声音文件进行命名。其中,编码方式在建立VOIP通话之前都已被协商好,其通常可包含以下几种方式:g711a、g711u、g722、g723、g726、g728、g729等。基于此,若在建立tel1和tel2之间的VOIP通话之前协商好的编码方式为g729,则当语音设备在2010年4月28日18点45分23秒接收到录音启动标志时,如果该录音启动标志包含的录音方式为“3”(即双向录音),则语音设备1对生成的语音文件命名为:
2010-4-28-18-45-23-3.g729。
其中,2010-4-28-18-45-23为语音设备接收到录音启动标志的日期时间,3为录音启动标志包含的录音方式,g729为tel1和tel2之间的语音数据的编码方式。
之后,当tel1处的用户需要停止录音时,则发送录音结束标志,当语音设备1接收到录音结束标志后,停止录音,并保存记录了语音数据的声音文件。需要说明的是,本实施例中,当tel1和tel2之间的VOIP通话结束时,也需要执行停止录音,并保存记录了语音数据的声音文件。
本实施例为了便于后续查找声音文件,可将声音文件放在对应的文件目录下,其中,该文件目录对应发送了录音启动标志的电话机的本机号码。比如,tel1发送了录音启动标志,则语音设备1将接收到该录音启动标志后生成的上述声音文件放在tel1的本机号码对应的文件目录下。如此,在保存记录了语音数据的声音文件后,对应的目录下就会存在该相应的声音文件。
需要说明的是,本实施例中的声音文件可包含文件头和语音数据段两部分,具体可参见图3所示。其中,文件头在建立tel1和tel2之间的VOIP通话之前已确定,其主要包含对语音数据段存储的数据的描述,比如语音数据的编码、解码类型、录音方式等;语音数据段用于存储语音设备根据录音启动标志包含的录音方式记录的语音数据。
通常,VOIP通话中的语音数据携带在RTP报文中发送,其中,RTP报文的格式主要如图4所示。在图4中,语音数据携带在RTP报文的VOICEDATA字段中,其他字段按照现有的RTP协议设置,这里不再赘述。如此,当在上述语音设备1记录语音数据至声音文件时,只可将该RTP报文中的VOICE DATA字段中的数据记录至声音文件中的语音数据段。其中,语音数据段记录的语音数据是分块连续存储的,这里,当录音方式为单向录音时,将来自被录音的一方一端发送的RTP报文的VOICE DATA字段中的数据作为一个数据块记录至语音数据段,比如,当单向录音为仅记录来自tel1的语音数据时,则将该tel1发送的RTP报文的VOICE DATA字段中的数据作为一个数据块记录至语音数据段;而当录音方式为双向录音时,语音设备则依次将被录音的两方端的N个RTP报文的VOICE DATA字段中的数据作为一个数据块记录至语音数据段,这里N为2的倍数。以N为2为例,N为其他值的原理类似,则当双向录音为记录来自tel1和tel2的语音数据时,则语音设备将接收的两个相邻的经由tel1和tel2分别发送的RTP报文所携带的VOICE DATA字段中的数据整体作为一个数据块记录至语音数据段。
至此,通过上面描述即可实现本发明实施例提供的录音方法。
至于用户后续如何获取录音时存储的声音文件,下面通过以下两种方式为例进行描述。
第一种方式:
为了使用户后续直接获取录音时存储的声音文件,本实施例可在保存声音文件完毕后,对该声音文件的存储格式进行转换,比如转换成WAV文件或者MP3文件。这里,该对声音文件的存储格式进行转换的命令可由发送了录音启动标志的电话机触发,其中,该触发通常发生在语音设备录音的过程中。优选地,本实施例也可将声音文件的存储格式进行转换的命令进一步携带在上述录音启动标志中,也就是说,本实施例中的录音启动标志除了包含录音方式外,还可进一步包含声音文件存储格式是否转换的命令。为便于描述,这里以将声音文件可能转换成的文件为WAV文件和MP3文件为例,设置了数字键与声音文件是否需要转换的对应关系:
电话机上的数字键“0”表示不转换声音文件的存储格式;
电话机上的数字键“1”表示转换声音文件为WAV文件;
电话机上的数字键“2”表示转换声音文件为MP3文件。
在声音启动标志包含录音方式和声音文件存储格式是否需要转换的命令时,一般将录音方式放在前面,声音文件存储格式是否转换的命令放在后面。比如,语音设备接收到按键“31”,则表示语音设备采用的录音方式为“3”(即双向录音),并且,在保存声音文件后,还需执行数字键“1”对应的操作,即将该声音文件转换为WAV文件。若该声音文件为2010-4-28-18-45-23-3.g729,具体内容如图3所示,则对该声音文件的存储格式进行转换,生成相应的WAV文件,比如2010-4-28-18-45-23-3.WAV,具体内容如图5所示。之后,将生成的WAV文件放在公用的网络设备比如PC机上。
基于上面描述,当用户想要提取声音文件时,可直接从该网络设备上提取对应的声音文件。
第二种方式:
该第二种方式不同于第一种方式,其并没有对声音文件的存储格式进行转换。如此,如果后续用户比如tel1处的用户想听录音(tel2的情况类似,不再详述),则可以拔打一个特定号码例如1234给语音设备1,当语音设备1接收到该特定号码时,会认为tel1处的用户想听录音,于是,语音设备1会到tel1的本机号码对应的目录下查找存放的录音文件,假如当前存放了如下三个声音文件:
2010-4-28-18-45-23-3.g729;
2010-5-1-12-45-23-1.g711a;
2010-5-1-14-45-23-2.g729。
如此,语音设备将该三个声音文件进行编号,然后播放相应的文件名,以供用户选择需要播放哪个文件,比如:1号文件2010年4月28日18时45分23秒双向录音编码为g729格式,2号文件2010年5月1日12时45分23秒双向录音编码为g711a格式,3号文件2010年5月1日14时45分23秒双向录音编码为g729格式。这时,如果tel1出的用户拨1则表示播放1号文件的内容,如果按2表示播放2号文件的内容,以此类推。
之后,根据用户的选择,从声音文件中的语音数据段提取数据块,并组装成RTP报文,发送至需要听录音的用户对应的语音端口,即由该语音端口根据对应的解码方式对该RTP报文的数据块进行解码并提供至用户,该解码方式在VOIP建立之前也已被协商好,如此,实现了放音。
其中,在组装RTP报文进行放音时,如果用户选择的声音文件中的语音数据段包含了在录音方式为单向录音时确定的数据块,则从该语音数据段中提取出数据块并组装成RTP报文发送即可;而如果所述声音文件中的语音数据段包含了在录音方式为双向录音时确定的数据块,则可以通过以下两种方式进行放音:
方式1:先从该语音数据段中提取出的数据块;之后对该数据块包含的语音数据执行混音操作并组装成RTP报文发送即可,这里,在执行混音操作时需要根据接收该数据块包含的语音数据的时间等参数进行混音,具体可与现有技术中的混音方法类似。
方式2,先从该语音数据段中提取出的数据块,之后向用户提供需要另外一个电话机的提示,并在用户将该需要的电话机接入到所述语音设备的其他语音端口时,按照该数据块包含的语音数据的顺序依次将被录音一端的语音数据组装成RTP报文发送至其中一个电话机,将该数据块中包含的被录音另一端的语音数据组装成另一RTP报文发送至另一个电话机。比如,提取出的数据块包含了N个RTP报文携带的语音数据(记为N段数据),该N为2的倍数,如果数据块中包含的N段数据按照被录音一端的语音数据和被录音另一端的语音数据交叉排列,则语音设备在放音时,依次将被录音一端的语音数据组装成RTP报文发送至其中一个电话机,将该数据块中包含的被录音另一端的语音数据组装成另一RTP报文发送至另一个电话机。
以上对本发明实施例提供的方法进行了描述,下面对本发明实施例提供的装置进行描述。
参见图6,图6为本发明实施例提供的装置的结构图。如图6所示,该装置包括:
接收模块601,用于在VOIP通话过程中接收录音启动标志和录音结束标志;
控制模块602,用于在接收模块601接收到所述录音启动标志时,发送录音启动指令至存储模块603,在接收模块601接收到录音结束标志时,发送停止录音指令至存储模块603;
存储模块603,用于在接收到所述录音启动指令时,生成声音文件,并记录所述VOIP通话中的语音数据至所述声音文件中;在接收到所述停止录音指令时,停止记录所述VOIP通话中的语音数据,并存储所述声音文件。
这里,所述声音文件包含文件头和语音数据两部分,其中,所述文件头在所述VOIP通话开始之前已被协商好;
所述VOIP通话中的语音数据携带在实时传输协议RTP报文中发送;基于此,存储模块603记录VOIP通话中的RTP报文所携带的语音数据至所述声音文件的语音数据段。
本实施例中,录音启动标志包含录音方式和是否将所述声音文件的存储格式进行转换的命令,其中,所述录音方式为单向录音或者为双向录音,所述单向录音为仅记录被录音的一端发送的语音数据,所述被录音的一端为发送了录音启动标志一端或者其对端;所述双向录音为记录被录音的两端发送的语音数据,所述被录音的两端为发送了录音启动标志一端和其对端;
基于此,如图6所示,存储模块603可包括文件系统处理单元6031和转换单元6032;其中,
文件系统处理单元6031用于在接收到录音启动指令时,生成声音文件,并在录音启动标志包含的录音方式为单向录音时,依次将来自被录音的一端发送的RTP报文所携带的语音数据确定为一个数据块记录至所述声音文件的语音数据段,在录音方式为双向录音时,依次将来自被录音的两端发送的N个RTP报文分别携带的语音数据确定为一个数据块记录至所述声音文件的语音数据段,所述N为2的倍数;以及在接收到所述停止录音指令时,判断所述录音启动标志包含的命令是否为将所述声音文件当前的存储格式进行转换,如果是,发送转换命令至转换单元6032,在接收到转换完成通知后,存储所述转换后的声音文件至网络设备如PC上,以使用户从所述网络设备上提取所述转换后的声音文件,所述转换后的声音文件为WAV文件或者MP3文件;
转换单元6032接收到所述转换指令后,根据所述命令转换所述声音文件的存储格式,并发送转换完成通知至文件系统处理单元6031。
本实施例中,接收模块601接收的录音启动标志和录音结束标志是由所述装置通过其自身包含的语音端口所连接的电话机发送的;所述声音文件与所述电话机的本机号码对应;
另外,接收模块601还用于接收用户通过电话机拨打的设定号码;
控制模块602还用于在接收模块601接收到所述设定号码时,发送录音播放指令至文件系统处理单元6031;
文件系统处理单元6031接收到所述录音播放指令后,获取已存储的与拨打了所述设定号码的电话机的本机号码对应的声音文件;如果获取的声音文件的个数大于1,则将获取的声音文件按照顺序编号并提供给用户选择,之后播放用户选择的声音文件给用户。
这里,文件系统处理单元6031播放用户选择的声音文件给用户具体实现时可为:如果用户选择的声音文件中的语音数据段包含了在录音方式为单向录音时确定的数据块,则从该语音数据段中提取出数据块并组装成RTP报文提供至所述用户;
如果用户选择的声音文件中的语音数据段包含了在录音方式为双向录音时确定的数据块,则从该语音数据段中提取出的数据块,
之后对该数据块包含的数据执行混音操作,并组装成RTP报文提供至所述用户;或者向用户提供还需要另外一个电话机的提示,并在用户将该需要的电话机接入到所述语音设备的其他语音端口时,按照该数据块包含的语音数据的顺序依次将被录音一端的语音数据组装成RTP报文发送至其中一个电话机,将该数据块中包含的被录音另一端的语音数据组装成另一RTP报文发送至另一个电话机。
由以上技术方案可以看出,本发明在完成录音后,以文件形式存储该录音,这显然能够实现通过文件形式存储录音,方便用户提取和控制录音播放;并且,本申请通过为语音设备配置录音功能,由该语音设备根据其连接的电话机的控制进行有选择的录音,不使用电话机录音,因此,在录音时,其并不像现有技术那样要求电话机为高档电话机,或者为普通电话机、但该需要与该普通电话机配套的录音设备,这更能提高本申请方案的应用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。