一种语音数据的存储方法

文档序号:2821485阅读:312来源:国知局
专利名称:一种语音数据的存储方法
技术领域
本发明涉及数据存储技术,特别是涉及一种语音数据的存储方法。
背景技术
在3G系统中,除了正常的通话以外,用户一般还有电话预先录制、对方电话录音乃至实时录制整个通话功能的需求,这样,就需要把通话内容保存到用户终端中,待用户需要时播放保存在用户终端的通话内容。此外,语音电子邮件和网络电话的应用也需要在网络中传输语音数据,这样就需要语音数据可用于网络存储和传输。
以往的电话录音存储的是语音脉冲编码调制(Pulse Code Modulation,PCM)数据,录制在磁带或大容量存储设备中。PCM是一种对模拟信号的数字化采样技术,常用于音频信号,一般每秒采样8000次,每个采样值占8比特,总共64Kbit/s。由于存储PCM数据需容量非常大的存储设备,不仅提高了用户终端成本,而且影响用户终端的外形设计。另外,PCM数据也不利于语音文件在网络中的存储和传输。

发明内容
本发明的主要目的在于提供一种语音数据的存储方法,以节省语音数据的存储空间,有利于在网络中存储和传输语音数据。
本发明的目的是通过如下技术方案实现的一种语音数据的存储方法,包括以下步骤A、将语音数据编码为自适应多速率语音帧,根据所述语音帧确定一个或一个以上通话方语音通道的基本信息,并将基本信息作为文件头存储;
B、将所述语音帧中的帧类型和子流数据作为文件体存储,形成语音文件。
所述语音通道的基本信息包括,自适应多速率接口格式、排序指示、语音通道电话号码、语音通道开始时间。
在所述步骤A之前进一步包括,确定所存储的语音数据的编码类型,将该语音数据编码类型作为文件类型,并存储该文件类型。
在所述步骤A之前进一步包括,通过检测通话方的数目确定语音通道的个数,并为每个语音通道设置语音通道索引号,将语音通道索引号作为基本信息存储;所述语音帧信息还包括语音通道索引号。
步骤A所述自适应多速率接口格式是自适应多速率接口格式一。
步骤A所述自适应多速率接口格式是自适应多速率接口格式二。
如果所述自适应多速率接口格式一的语音帧长度不是字节的整数倍,则从最后一个字节的低位开始存储填充位,直至所述语音帧的长度是字节的整数倍。
如果所述自适应多速率接口格式二的语音帧的长度不是字节的整数倍,则从最后一个字节的高位开始存储填充位,直至所述语音帧的长度是字节的整数倍。
如果步骤A所述通话方是在通话过程中动态加入的通话方,则在该通话方加入时存储该通话方的语音通道基本信息,并从该通话方加入时间起开始存储该通话方语音通道的语音帧。
如果步骤A所述通话方在通话过程中动态退出,则从该通话方退出时间起停止存储该通话方语音通道的语音帧。
应用本发明的方法,可以将AMR编码后的语音数据存储在文件中,以便于在用户终端上保存或在网上传输,不仅大大节省存储空间,还兼容多种AMR接口格式、不同排序,并支持多方通话以及通话方动态加入和退出,能够满足电话录音、语音电子邮件乃至实时录制整个通话等多种需求,具有巨大的应用前景。


图1是AMR接口格式1的帧结构示意图。
图2是AMR接口格式2的帧结构示意图。
图3是根据本发明的存储AMR编码语音数据的方法流程图。
图4是本发明一个较佳实施例的三方通话AMR编码语音数据文件结构示意图。
图5是本发明一个较佳实施例的语音电子邮件AMR编码语音数据文件结构示意图。
图6是本发明一个较佳实施例的存在动态加入和退出的多方通话的AMR编码语音数据文件结构示意图。
具体实施例方式
为了使本发明的目的、技术方案和优点更清楚,下面结合附图和具体实施方式
对本发明作进一步描述。
本发明利用先进的语音数据编码,即自适应多速率(Adaptive Multi-Rate,AMR)编码,AMR编码的速率一般是从4.75Kbit/s到12.2Kbit/s,也就是说,每秒钟AMR编码的语音数据所需的存储空间为4750比特到12200比特,而每秒钟PCM编码的语音数据所需的存储空间一般为64000比特。通过对比可以看出,经过AMR编码后的语音数据所需的存储空间比PCM编码的语音数据所需的存储空间少得多。
对语音数据进行AMR编码后所得到的AMR语音帧周期为20ms,AMR采样频率为8khz,则每帧有160个采样值。目前,AMR语音帧格式有两种AMR接口格式1(AMR IF1)和AMR接口格式2(AMR IF2)。
AMR IF1的具体格式如图1所示,一个AMR IF1语音帧包括帧类型、帧质量指示、模式指示、模式请求、循环冗余校验(CRC)和A、B、C三子流数据。AMR IF1帧中比特排列采用高端对齐。
AMR IF2的具体格式如图2所示,一个AMR IF2语音帧包括帧类型、A、B、C三子流数据和填充比特。
AMR IF2采用字节对齐的方式,如果语音帧不是字节的整数倍,就需要填充位补齐,AMR IF2帧中的比特排列采用低端对齐方式。
对于AMR IF1帧,如果CRC校验错误,就将该帧内容丢弃,用空帧代替;而如果CRC校验无误,则语音帧的基本质量就可以保证,所以其它AMR辅佐内容(帧质量指示、模式指示、模式请求和CRC校验)可以不保存,只需知道帧类型就可基本满足要求。这样,可以统一采用与AMR IF2相同的结构来作为本发明的方法中保存AMR语音帧的结构。因为两种接口格式的比特排序方式不同,为了对两种AMR语音帧结构加以区分,在存储该语音数据时需要定义一个接口格式(1比特,0表示IF1,1表示IF2)。
AMR三子流的比特,有可能是编码器编码后输出的比特,或者是将这些比特按照主观重要性进行排序的结果。排序方法就是根据协议规定的语音编码器比特排序表,把最重要的比特集中在A子流,B、C子流的重要性依次递减,对A子流进行CRC校验。这样做的目的主要是为了在错码率一定的情况下,语音质量降低较小。为了对排序后的比特和未经排序的比特加以区分,在存储该语音帧时需要定义一个排序指示(1比特,0表示没有进行排序,1表示进行过排序)。
基于以上关于AMR编码数据的规定,本发明提供了一种记录AMR编码语音数据的方法,将语音数据存储在文件中,以便于存储、录制和网上传输,该方法包括以下步骤步骤301、通过检测语音数据的编码类型来确定语音文件的类型,如果确定编码类型为经过AMR编码器编码,则表示该文件是存储AMR语音帧的语音文件,存储“AMR\n”,为了便于扩展,其长度为16字节。
步骤302、通过检测所有接入的通话方的数目来确定语音通道个数,为每一个通话方对应一个语音通道,并存储该语音通道个数,一般通话的语音通道为2路一路是通话主叫方、一路是通话被叫方,三方通话的语音通道数目为3,语音电子邮件的语音通道数目为1。语音通道的最多数目可达16,其长度一般为8比特。
步骤303、存储语音通道对应的通道索引号,取值在0到15之间,其长度一般为4比特。
步骤304、通过检测占用该通道的通话方的语音帧格式来确定该通道的语音数据的AMR接口格式,并存储该AMR接口格式,0表示AMR接口类型1,1表示AMR接口类型2,其长度一般为1比特。
步骤305、通过检测占用该通道的通话方的语音帧格式来确定该通道的语音数据的排序指示,并存储该AMR语音帧排序指示,0表示没有按照重要性进行排序,1表示按照重要性进行了排序,其长度一般为1比特。
步骤306、确定并存储占用该通道的通话方的电话号码,其长度一般为8字节。
步骤307、确定并存储占用该通道的通话方的接入时间,其长度一般为8字节。
步骤308、存储语音通道索引号,其长度一般定义为4比特。
步骤309、存储该通道上的语音数据的帧类型,其长度一般为4比特,共有16种帧类型,其索引号和对应的帧内容如表1所示。表1是帧类型索引号与帧内容的对照表,从表中可以看出,共有16种帧类型,即有16种AMR的编码格式,不同的编码格式表示以不同的速率对语音数据编码,例如,AMR 4.75表示编码速率为4.75Kbit/s,AMR12.2表示编码速率为12.2Kbit/s,AMR SID表示自适应多速率静默帧,GSM-EFR SID表示全球移动通信网络增强型全速率静默帧,TDMA-EFR SID表示时分多址增强型全速率静默帧,PDC-EFR SID表示个人数字通信增强型全速率静默帧,静默帧是通话方在通话过程中处于不讲话的状态时的语音帧类型。

表1步骤310、存储占用该通道的语音数据的A、B、C子流数据,子流数据可以是未排序的数据,也可以是排序后的数据。
步骤311、补充填充位,以保证整个语音帧是字节长度的整数倍。
步骤303到步骤307存储的是语音通道的基本信息,即通话方的基本信息,本发明的方法预留了足够的空间,可容纳多达16个通话方的语音通道基本信息。如果语音通道数目为N,那么步骤303到步骤307需要执行N次,即需要将所有语音通道的基本信息存储在预留空间中。如果在通话的过程中有新通话方加入,自动将新通话方的语音通道基本信息添加在预留的空间中;如果在通话的过程中有通话方退出通话,该通话方的基本信息仍然保留在预留空间中,当预留空间被占满之后,新加入的通话方将依次覆盖已经退出的通话方所占用的空间。
步骤308到步骤311存储的是语音帧的信息,如果定义一个AMR语音帧所占的时间(20ms)为一个时间单元,而某通话持续了M个AMR时间单元,其语音通道数为N,且中间没有任何通话方加入或退出,那么整个通话共有M×N个语音帧,所以步骤308到步骤311需要执行M×N次,即需要依次存储每个通道的每个语音帧的内容;如果中间有新通话方加入,那么从该新通话方接入开始存储对应通道的语音帧信息;如果中间有通话方退出,那么从该通话方退出的时间开始停止存储对应通道的语音帧信息。
本发明的存储方法的结果是生成一个存储AMR编码语音数据的文件,上述步骤301到步骤307存储文件的文件头,步骤308到步骤311存储文件的文件体。该文件可以在用户终端上保存或在网络上传输。
图4是在三方通话的实施例中存储AMR编码语音数据的文件结构,在此实施例中,由三方通话10秒钟,且中间没有新的通话方加入,也没有任何一个通话方退出,那么可知语音通道数目为3,通话持续了500个AMR时间单元,所以通话共包括1500个语音帧。从图4中可以看出,该文件包括3个语音通道的基本信息和1500个语音帧。
图5是语音电子邮件的实施例中存储AMR编码语音数据的文件结构,此实施例是持续10秒钟的语音电子邮件,所以,其语音通道数目为1,该语音电子邮件持续了500个AMR时间单元,所以该语音电子邮件共包括500个语音帧。从图5中可以看出,该文件包括1个语音通道的基本信息和500个语音帧。
图6是存在动态加入和退出的多方通话的AMR编码语音数据文件结构,此实施例是持续10秒钟的通话,开始4秒由三方(分别为A、B和C方)同时通话,从第5秒钟开始A方退出,从第6秒开始D方作为一个新通话方加入通话。从图6中可以看出,通道1是A方的语音通道基本信息;通道2是B方的语音通道基本信息;通道3是C方的语音通道基本信息;在D方接入时在通道4存储D方的语音通道基本信息。从图6中还可以看出,从AMR时间单元1到AMR时间单元200为A、B和C三方通话,共有600个语音帧;从AMR时间单元201到AMR时间单元300为B和C两方通话,共有200个语音帧;从AMR时间单元301到AMR时间单元500为B、C和D三方通话,共有600个语音帧。这样,整个通话过程一共有1400个语音帧。该文件包括4个语音通道的基本信息和1400个语音帧。
在具体的实施过程中可对根据本发明的方法进行适当的改进,以适应具体情况的具体需要。因此可以理解,根据本发明的具体实施方式
只是起示范作用,并不用以限制本发明的保护范围。
权利要求
1.一种语音数据的存储方法,其特征在于,包括以下步骤A、将语音数据编码为自适应多速率语音帧,根据所述语音帧确定一个或一个以上通话方语音通道的基本信息,并将基本信息作为文件头存储;B、将所述语音帧中的帧类型和子流数据作为文件体存储,形成语音文件。
2.根据权利要求1所述的语音数据的存储方法,其特征在于,所述语音通道的基本信息包括,自适应多速率接口格式、排序指示、语音通道电话号码、语音通道开始时间。
3.根据权利要求1所述的语音数据的存储方法,其特征在于,在所述步骤A之前进一步包括,确定所存储的语音数据的编码类型,将该语音数据编码类型作为文件类型,并存储该文件类型。
4.根据权利要求1所述的语音数据的存储方法,其特征在于,在所述步骤A之前进一步包括,通过检测通话方的数目确定语音通道的个数,并为每个语音通道设置语音通道索引号,将语音通道索引号作为基本信息存储;所述语音帧信息还包括语音通道索引号。
5.根据权利要求1所述的语音数据的存储方法,其特征在于,步骤A所述自适应多速率接口格式是自适应多速率接口格式一。
6.根据权利要求1所述的语音数据的存储方法,其特征在于,步骤A所述自适应多速率接口格式是自适应多速率接口格式二。
7.根据权利要求5所述的语音数据的存储方法,其特征在于,如果所述语音帧的长度不是字节的整数倍,则从最后一个字节的低位开始存储填充位,直至所述语音帧的长度是字节的整数倍。
8.根据权利要求6所述的语音数据的存储方法,其特征在于,如果所述语音帧的长度不是字节的整数倍,则从最后一个字节的高位开始存储填充位,直至所述语音帧的长度是字节的整数倍。
9.根据权利要求1所述的语音数据的存储方法,其特征在于,如果步骤A所述通话方是在通话过程中动态加入的通话方,则在该通话方加入时存储该通话方的语音通道基本信息,并从该通话方加入时间起开始存储该通话方语音通道的语音帧。
10.根据权利要求1所述的语音数据的存储方法,其特征在于,如果步骤A所述通话方在通话过程中动态退出,则从该通话方退出时间起停止存储该通话方语音通道的语音帧。
全文摘要
本发明公开了一种语音数据的存储方法,该方法将经过AMR编码器编码的语音数据存储在文件中。因为AMR编码的语音数据所需的存储空间比PCM编码的语音数据所需的存储空间大大减少,所以用本发明的方法生成的文件适合在用户终端上存储或在网上传输,例如作为语音电子邮件在网络中传输。这样可以利用较先进的AMR编码技术,减少语音的传输量,还可兼容多种AMR接口格式、不同排序,并支持多方通话以及通话方动态加入和退出,能够满足电话录音、语音电子邮件乃至实时录制整个通话等多种需求,具有巨大的应用前景。
文档编号G10L19/00GK1641748SQ20041000040
公开日2005年7月20日 申请日期2004年1月6日 优先权日2004年1月6日
发明者王利军 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1