语音数据传输方法

文档序号:1448673 发布日期:2020-02-18 浏览:15次 >En<

阅读说明:本技术 语音数据传输方法 (Voice data transmission method ) 是由 余波 于 2019-11-04 设计创作,主要内容包括:本发明公开一种语音数据传输方法,包括:将待传输语音数据分为至少一个数据片段,所述至少一个数据片段中的每一个数据片段的大小小于设定阈值;依次对所述至少一个数据片段中的每一个数据片段执行以下步骤:生成对应于当前数据片段的帧头信息和帧尾信息,所述帧头信息包括开始标识信息、命令信息和帧体长度信息,所述帧尾信息包括校验信息;根据所述帧头信息、所述帧尾信息和所述当前数据片段进行组包;将组包所得到的语音数据包发送至外围设备。在本发明实施例中,在传输语音数据时将其划分为小于设定阈值的大小的数据片段,降低了对传输带宽的要求,使得语音数据的传输更加稳定,提升了语音数据传输的可靠性。(The invention discloses a voice data transmission method, which comprises the following steps: dividing voice data to be transmitted into at least one data fragment, wherein the size of each data fragment in the at least one data fragment is smaller than a set threshold value; sequentially executing the following steps for each of the at least one data segment: generating frame header information and frame tail information corresponding to the current data fragment, wherein the frame header information comprises start identification information, command information and frame body length information, and the frame tail information comprises check information; packing according to the frame header information, the frame tail information and the current data fragment; and sending the voice data packet obtained by the packet package to the peripheral equipment. In the embodiment of the invention, the voice data is divided into the data segments with the size smaller than the set threshold value when being transmitted, so that the requirement on the transmission bandwidth is reduced, the transmission of the voice data is more stable, and the reliability of the voice data transmission is improved.)

语音数据传输方法

技术领域

本发明涉及通信技术领域,尤其涉及一种语音数据传输方法。

背景技术

目前语音DSP芯片厂商的通信协议都是私有的,根据语音DSP芯片支持的功能、应用场景和具体的通信外设,可能有不同的通信协议。市面上各个厂商的语音DSP芯片都会定义自己的应用场景和功能。但其通信协议都是基于帧结构的,有自己不同的帧格式和内容。

语音DSP芯片技术发展很快,处理能力不断增强,支持的功能和应用的场景也越来越多。这就使其通信协议的设计需要面临一定的挑战。

发明内容

本发明实施例提供一种语音数据传输方法,用于至少解决上述技术问题之一。

第一方面,本发明实施例提供一种语音数据传输方法,包括:

将待传输语音数据分为至少一个数据片段,所述至少一个数据片段中的每一个数据片段的大小小于设定阈值;

依次对所述至少一个数据片段中的每一个数据片段执行以下步骤:

生成对应于当前数据片段的帧头信息和帧尾信息,所述帧头信息包括开始标识信息、命令信息和帧体长度信息,所述帧尾信息包括校验信息;

根据所述帧头信息、所述帧尾信息和所述当前数据片段进行组包;

将组包所得到的语音数据包发送至***设备。

在一些实施例中,所述命令信息中包括数据片段标识位,用于识别所述当前数据片段是否为最后一个数据片段。

在一些实施例中,所述生成对应于当前数据片段的帧尾信息包括:

获取所述帧头信息中的命令信息、帧体长度信息;

获取帧体参数信息和帧尾参数信息;

根据所述帧头信息中的命令信息、帧体长度信息,帧体参数信息和帧尾参数信息生成所述校验信息。

在一些实施例中,所述根据所述帧头信息、所述帧尾信息和所述当前数据片段进行组包包括:

根据所述帧头信息生成语音数据包帧头;

根据所述帧尾信息生成语音数据包帧尾;

将所述当前数据帧片段填充为语音数据包帧体。

在一些实施例中,所述语音数据包帧头大小为5字节,其中,所述开始标识信息占2个字节,所述命令信息占1字节,所述帧体长度信息占2字节;

所述语音数据包帧尾大小为4字节,所述语音数据包帧尾还包括参数信息,其中,所述参数信息占2字节,所述校验信息占2字节;

所述语音数据包帧体大小为0~2048字节。

在一些实施例中,所述将所述当前数据帧片段填充为语音数据包帧体包括:将所述当前数据帧片段划分为多个子数据帧片段;采用队列结构存储所述多个子数据帧片段,以得到语音数据包帧体。

第二方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项语音数据传输方法。

第三方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项语音数据传输方法。

第四方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项语音数据传输方法。

在本发明实施例中,在传输语音数据时将其划分为小于设定阈值的大小的数据片段。具体地,帧头信息包含:开始标识+命令信息+帧体长度,命令信息的第5bit指示该包是否是最后一包,这样就可以支持长数据拆分成多个小包发送。降低了对传输带宽的要求,使得语音数据的传输更加稳定,提升了语音数据传输的可靠性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的语音数据传输方法的一实施例的流程图;

图2为本发明的语音数据传输方法的另一实施例的流程图;

图3为本发明的电子设备的一实施例的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

如图1所示,本发明的实施例提供一种语音数据传输方法,包括:

S11、将待传输语音数据分为至少一个数据片段,所述至少一个数据片段中的每一个数据片段的大小小于设定阈值;

S12、依次对所述至少一个数据片段中的每一个数据片段执行以下步骤:

S121、生成对应于当前数据片段的帧头信息和帧尾信息,所述帧头信息包括开始标识信息、命令信息和帧体长度信息,所述帧尾信息包括校验信息;其中,所述命令信息中包括数据片段标识位,用于识别所述当前数据片段是否为最后一个数据片段。

S122、根据所述帧头信息、所述帧尾信息和所述当前数据片段进行组包;

S123、将组包所得到的语音数据包发送至***设备。

在本发明实施例中,在传输语音数据时将其划分为小于设定阈值的大小的数据片段。具体地,帧头信息包含:开始标识+命令信息+帧体长度,命令信息的第5bit指示该包是否是最后一包,这样就可以支持长数据拆分成多个小包发送。降低了对传输带宽的要求,使得语音数据的传输更加稳定,提升了语音数据传输的可靠性。

在一些实施例中,所述生成对应于当前数据片段的帧尾信息包括:

获取所述帧头信息中的命令信息、帧体长度信息;

获取帧体参数信息和帧尾参数信息;

根据所述帧头信息中的命令信息、帧体长度信息,帧体参数信息和帧尾参数信息生成所述校验信息。

命令信息的第0~2bits是命令类型,指示数据包的类型,目前命令类型分为:握手类型、配置类型和查询类型等。

在一些实施例中,crc校验字段是由cmd、length字段计算得来,为了减少计算量不包含sof字段,因为数据包得发送方和接收方首先都会对sof进行判断。

在一些实施例中,所述根据所述帧头信息、所述帧尾信息和所述当前数据片段进行组包包括:

根据所述帧头信息生成语音数据包帧头;

根据所述帧尾信息生成语音数据包帧尾;

将所述当前数据帧片段填充为语音数据包帧体。

在一些实施例中,所述语音数据包帧头大小为5字节,其中,所述开始标识信息占2个字节,所述命令信息占1字节,所述帧体长度信息占2字节;

所述语音数据包帧尾大小为4字节,所述语音数据包帧尾还包括参数信息,其中,所述参数信息占2字节,所述校验信息占2字节;

所述语音数据包帧体大小为0~2048字节。

本发明实施例中,根据协议的将结构帧头压缩为5个字节,将结构帧尾压缩为4个字节,用于描述传输数据包的分割,标识和校验,剩余的数据包全部用于填充传输的数据信息。在保证协议扩展性的基础上,这个协议设计的把尽可能多的字节用于传递数据,没有什么冗余字段。

在一些实施例中,所述将所述当前数据帧片段填充为语音数据包帧体包括:将所述当前数据帧片段划分为多个子数据帧片段;采用队列结构存储所述多个子数据帧片段,以得到语音数据包帧体。

在一些实施例中,每个子数据帧片段还配置以片段类型信息和片段长度信息。示例性地,对于子数据帧片段,配置为:type(1个字节:0x02)+length(2个字节:语音长度)+语音数据。

具体地,帧体的内容采用TLV的格式进行组织,属于指定命令类型的子类型数据,非常方便扩展(根据业务的扩展需求增加新的子类型)。例如,对应于命令类型为查询类型的子类型有唤醒词、语音数据和工作模式等,即查询唤醒词、语音和当前工作模式信息。发送方帧体包含的子类型可以是零个或者多个,同时接收方的响应消息帧体中包含的子类型也可以是零个或者多个。

本发明实施例公开了一种语音DSP芯片的通信协议,其协议的帧格式如下表所示:

Figure BDA0002259355250000061

其中,帧体是整体,包含的是协议传输的内容,采用TLV的帧体格式,如下表所示:

type1 length1 value1 type2 length2 value2 typen lengthn valuen

帧结构中各个字段的描述如下:

Figure BDA0002259355250000062

发送协议和接受协议采用统一的通信协议格式。通信协议的发送者为***的soc/mcu(System on Chip/Micro Control Unit),接收者为语音dsp芯片。消息帧结构组成为:帧头、帧体和帧尾。

具体地,帧头包含:开始标识+命令信息+帧体长度,命令信息的第5bit指示该包是否是最后一包,这样就可以支持长数据拆分成多个小包发送。命令信息的第0~2bits是命令类型,指示数据包的类型,目前命令类型分为:握手类型、配置类型和查询类型等。

具体地,长度为帧体的长度,不包含帧头和帧尾的长度。

具体地,帧体的内容采用TLV的格式进行组织,属于指定命令类型的子类型数据,非常方便扩展(根据业务的扩展需求增加新的子类型)。例如对应于命令类型为查询类型的子类型有唤醒词、语音数据和工作模式等,即查询唤醒词、语音和当前工作模式信息。发送方帧体包含的子类型可以是零个或者多个,同时接收方的响应消息帧体中包含的子类型也可以是零个或者多个。

具体地,crc校验字段是由cmd、length、frame body和param字段计算得来,为了减少计算量不包含sof字段,因为数据包得发送方和接收方首先都会对sof进行判断。

如图2所述,为本发明的数据传输方法的另一实施例的流程图,包括以下步骤:

S21、查询语音缓存区的语音数据;

S22、判断语音缓存区的语音数据长度是否大于协议设置的最大长度;示例性地,帧体长度=协议设置的最大帧长(0x1000)-帧头长度(0x05)-帧尾长度(0x04);语音长度=帧体长度–TLV的type占用帧体长度(0x01)-TLV的length占用帧体长度(0x02)。

S23、如果是,则获取协议规定的最大长度的语音数据;把缓存区中的语音数据分拆成多包发送。

S24、如果否,则获取缓存区中的所有的语音数据;

S25、基于获取的协议规定的最大长度的语音数据或者缓存区中的所有的语音数据,根据协议生成帧头数据;帧头信息为:开始标识:0x7E7E;命令信息:0x04或者0x24,第5bit标识是否最后一包;帧长度:帧体长度(变量)。

S26、根据语音数据填充帧体;帧体信息为:type(1个字节:0x02)+length(2个字节:语音长度)+语音数据。

S27、根据帧数数据计算得到crc;根据帧头的命令信息,帧长度计算crc。

S28、生成帧尾信息;帧尾信息为:帧尾变量(2个字节),这里暂时没有用到,可以设为0x0;crc信息(2个字节)。

S29、发送包语音数据包。

在实际的设计和工程应用中一次查询的信息是变化的(例如,可以一次只查询语音,也可以语音和唤醒信息一起查询),这样协议需要支持这些变化的情况,所以***设备下发给语音DSP芯片的数据包中帧体中的TLV可以包含多个需要查询的请求类型。例如:

下发的帧结构:

Figure BDA0002259355250000081

请求帧结构中的tlv只包含type用于标识请求哪些数据信息,value为空,所以length为0。

返回的帧结构:

Figure BDA0002259355250000082

返回帧结构的tlv和请求帧结构中tlv的顺序是一一对应的。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项语音数据传输方法。

在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项语音数据传输方法。

在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行语音数据传输方法。

在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现语音数据传输方法。

图3是本申请另一实施例提供的执行语音数据传输方法的电子设备的硬件结构示意图,如图3所示,该设备包括:

一个或多个处理器310以及存储器320,图3中以一个处理器310为例。

执行语音数据传输方法的设备还可以包括:输入装置330和输出装置340。

处理器310、存储器320、输入装置330和输出装置340可以通过总线或者其他方式连接,图3中以通过总线连接为例。

存储器320作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的语音数据传输方法对应的程序指令/模块。处理器310通过运行存储在存储器320中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例语音数据传输方法。

存储器320可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据语音数据传输装置的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器320可选包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至语音数据传输装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置330可接收输入的数字或字符信息,以及产生与语音数据传输装置的用户设置以及功能控制有关的信号。输出装置340可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器320中,当被所述一个或者多个处理器310执行时,执行上述任意方法实施例中的语音数据传输方法。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请实施例的电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:语音、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:干扰信号估计方法、装置、设备和计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!