掌桥专利:专业的专利平台
掌桥专利
首页

数字人的交互方法、装置、终端设备、服务器及系统

文献发布时间:2024-04-18 20:01:55


数字人的交互方法、装置、终端设备、服务器及系统

技术领域

本申请实施例涉及通信技术领域,尤其涉及一种数字人的交互方法、装置、终端设备、服务器及系统。

背景技术

终端设备可以通过数字人技术,将终端设备中的文本信息转化虚拟人物的动作、表情或者语音等,以提高用户在通过终端设备获取文本信息时的体验。

在相关技术中,可以通过如下方式与数字人进行交互:用户通过终端设备输入文本,终端设备根据输入文本生成实时传输协议(Real-time Transport Protocol,RTP)包,并将RTP包发送至服务器。服务器对RTP包进行解析,并对解析后得到的数据进行渲染处理,得到多媒体数据。多媒体数据为数字人按照解析后得到的数据播放至少一个音频数据或者视频数据。服务器向终端设备发送多媒体数据,以使终端设备通过数字人播放至少一个音频数据或者视频数据。

在上述过程中,由于根据RTP包得到多媒体数据只能按照输入文本的内容进行播放。不能根据输入文本,进行对应的反应动作或者执行预设功能,导致用户与数字人交互的灵活性较低。

发明内容

本申请实施例提供一种数字人的交互方法、装置、终端设备、服务器及系统,用以解决用户与数字人交互的灵活性较低的问题。

第一方面,本申请实施例提供一种数字人的交互方法,包括:

获取目标文本,并对所述目标文本进行分句处理,得到至少一个文本语句;

确定每个文本语句对应的扩展信息;

针对任意一个文本语句,根据所述文本语句和所述文本语句对应的扩展信息,生成所述文本语句对应的目标实时传输协议RTP包;

根据每个文本语句对应的目标RTP包,获取所述目标文本对应的多媒体数据,并播放所述多媒体数据,所述多媒体数据为所述数字人按照所述扩展信息播放所述目标文本的音频数据或者视频数据。

在一种可能的实施方式中,根据所述文本语句和所述文本语句对应的扩展信息,生成所述文本语句对应的目标RTP包,包括:

根据所述文本语句,生成RTP报文体;

根据所述扩展信息,生成RTP头;

对所述RTP头和所述RTP报文体进行拼接处理,得到所述目标RTP包。

在一种可能的实施方式中,根据所述扩展信息,生成RTP头,包括:

确定预设的RTP头格式,所述RTP头格式中包括多个字段、所述多个字段的排列顺序、以及每个字段的字段长度;

根据所述扩展信息,生成每个字段对应的字段值,所述字段值的长度等于所述字段的字段长度;

按照所述排列顺序,对所述多个字段对应的字段值进行组合处理,得到所述RTP头。

在一种可能的实施方式中,根据所述文本语句,生成RTP报文体,包括:

生成所述文本语句对应的脉冲编码调制PCM音频流;

按照RTP包格式,对所述PCM音频流进行封装处理,得到所述RTP报文体。

在一种可能的实施方式中,所述方法应用于终端设备;根据每个文本语句对应的目标RTP包,获取所述目标文本对应的多媒体数据,包括:

向服务器发送每个文本语句对应的目标RTP包,所述终端设备和所述服务器之间为实时数据传输;

接收所述服务器发送的所述多媒体数据,所述多媒体数据为所述服务器根据每个文本语句对应的目标RTP包进行渲染得到的。

在一种可能的实施方式中,所述扩展信息中包括停顿时长信息和操作信息,所述操作信息包括如下至少一种:执行动作、动作执行次数、表情或待触发的业务功能;

针对任意一个文本语句;确定所述文本语句对应的扩展信息,包括:

确定所述文本语句末尾处的标点符号,并根据所述标点符号确定停顿时长信息;

确定所述文本语句对应的语义信息,并根据所述语义信息确定所述执行动作和所述动作执行次数。

第二方面,本申请实施例提供一种数字人的交互方法,包括:

接收终端设备发送的至少一个目标RTP包;

对所述至少一个目标RTP包进行解析处理,得到至少一个脉冲编码调制PCM音频流、以及每个PCM音频流对应的扩展信息;

根据所述至少一个PCM音频流、以及每个PCM音频流对应的扩展信息进行渲染处理,得到多媒体数据,所述多媒体数据为数字人按照所述扩展信息播放所述至少一个PCM音频流的音频数据或者视频数据;

向所述终端设备发送所述多媒体数据。

在一种可能的实施方式中,针对任意一个目标RTP包;对所述目标RTP包进行解析处理,得到所述目标RTP包对应的PCM音频流、以及所述PCM音频流对应的扩展信息,包括:

对所述目标RTP包进行解析处理,得到RTP报文体和RTP头;

对所述RTP报文体进行解析处理,得到所述目标RTP包对应的PCM音频流;

对所述RTP头进行解析处理,得到所述扩展信息。

在一种可能的实施方式中,所述扩展信息中包括停顿时长信息和操作信息,所述操作信息包括如下至少一种:执行动作、动作执行次数、表情或待触发的业务功能;

对所述RTP头进行解析处理,得到所述扩展信息,包括:

对所述RTP头进行解析处理,得到多个字段值;

按照预设的RTP头格式,在所述多个字段值中确定所述停顿时长信息对应的第一字段值、所述执行动作对应的第二字段值、以及所述动作执行次数对应的第三字段值;

根据所述第一字段值确定所述停顿时长信息,根据所述第二字段值确定所述执行动作,以及根据所述第三字段值确定所述动作执行次数。

第三方面,本申请实施例提供一种数字人的交互装置,所述装置包括:

获取模块,用于获取目标文本,并对所述目标文本进行分句处理,得到至少一个文本语句;

确定模块,用于确定每个文本语句对应的扩展信息;

生成模块,用于根据所述文本语句和所述文本语句对应的扩展信息,生成所述文本语句对应的目标实时传输协议RTP包;

播放模块,用于根据每个文本语句对应的目标RTP包,获取所述目标文本对应的多媒体数据,并播放所述多媒体数据,所述多媒体数据为所述数字人按照所述扩展信息播放所述目标文本的音频数据或者视频数据。

在一种可能的实施方式中,所述生成模块具体用于:

根据所述文本语句,生成RTP报文体;

根据所述扩展信息,生成RTP头;

对所述RTP头和所述RTP报文体进行拼接处理,得到所述目标RTP包。

在一种可能的实施方式中,所述生成模块具体用于:

确定预设的RTP头格式,所述RTP头格式中包括多个字段、所述多个字段的排列顺序、以及每个字段的字段长度;

根据所述扩展信息,生成每个字段对应的字段值,所述字段值的长度等于所述字段的字段长度;

按照所述排列顺序,对所述多个字段对应的字段值进行组合处理,得到所述RTP头。

在一种可能的实施方式中,所述生成模块具体用于:

生成所述文本语句对应的脉冲编码调制PCM音频流;

按照RTP包格式,对所述PCM音频流进行封装处理,得到所述RTP报文体。

在一种可能的实施方式中,所述获取模块具体用于:

向服务器发送每个文本语句对应的目标RTP包,所述终端设备和所述服务器之间为实时数据传输;

接收所述服务器发送的所述多媒体数据,所述多媒体数据为所述服务器根据每个文本语句对应的目标RTP包进行渲染得到的。

在一种可能的实施方式中,所述确定模块具体用于:

确定所述文本语句末尾处的标点符号,并根据所述标点符号确定停顿时长信息;

确定所述文本语句对应的语义信息,并根据所述语义信息确定所述执行动作和所述动作执行次数。

第四方面,本申请实施例提供一种数字人的交互装置,所述装置包括:

接收模块,用于接收终端设备发送的至少一个目标RTP包;

第一处理模块,用于对所述至少一个目标RTP包进行解析处理,得到至少一个脉冲编码调制PCM音频流、以及每个PCM音频流对应的扩展信息,所述扩展信息中包括如下至少一种:停顿时长信息、执行动作、以及动作执行次数;

第二处理模块,用于根据所述至少一个PCM音频流、以及每个PCM音频流对应的扩展信息进行渲染处理,得到多媒体数据,所述多媒体数据为数字人按照所述扩展信息播放所述至少一个PCM音频流的音频数据或者视频数据;

发送模块,用于向所述终端设备发送所述多媒体数据。

在一种可能的实施方式中,所述第一处理模块具体用于:

对所述目标RTP包进行解析处理,得到RTP报文体和RTP头;

对所述RTP报文体进行解析处理,得到所述目标RTP包对应的PCM音频流;

对所述RTP头进行解析处理,得到所述扩展信息。

在一种可能的实施方式中,所述第一处理模块具体用于:

对所述RTP头进行解析处理,得到多个字段值;

按照预设的RTP头格式,在所述多个字段值中确定所述停顿时长信息对应的第一字段值、所述执行动作对应的第二字段值、以及所述动作执行次数对应的第三字段值;

根据所述第一字段值确定所述停顿时长信息,根据所述第二字段值确定所述执行动作,以及根据所述第三字段值确定所述动作执行次数。

第五方面,本申请实施例提供一种终端设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面中任一项所述的方法。

第六方面,本申请实施例提供一种服务器,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第二方面中任一项所述的方法。

第七方面,本申请实施例提供一种数字人的交互系统,包括至少一个终端设备和服务器,其中,

所述终端设备用于执行第一方面任一项所述的方法;

所述服务器用于执行第二方面中任一项所述的方法。

第八方面,本申请实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面中任一项,或者第二方面中任一项所述的方法。

第九方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一项所述的方法。

本申请实施例提供的数字人的交互方法、装置、终端设备、服务器及系统,获取目标文本,并对目标文本进行分句处理,得到至少一个文本语句。确定每个文本语句对应的扩展信息。根据文本语句和文本语句对应的扩展信息,生成每个文本语句对应的目标实时传输协议RTP包。终端设备向服务器发送目标RTP包。服务器接收到终端设备发送的至少一个目标RTP包之后,对至少一个目标RTP包进行解析处理,得到至少一个脉冲编码调制(PulseCode Modulation,PCM)音频流、以及每个PCM音频流对应的扩展信息。根据至少一个PCM音频流、以及每个PCM音频流对应的扩展信息进行渲染处理,得到多媒体数据。并向终端设备发送多媒体数据,以使终端设备通过数字人按照扩展信息播放至少一个PCM音频流的音频数据或者视频数据。在上述过程中,由于终端设备在生成RTP包之前,对目标文本进行分句处理,得到至少一个文本语句。并确定每个文本语句对应的扩展信息,数字人可以根据扩展信息实现对应的反应动作或者执行预设功能,而不是播放目标文本的内容,提高了用户与数字人交互的灵活性。

附图说明

图1为本申请实施例提供的应用场景的示意图;

图2为本申请实施例提供的一种数字人的交互方法的流程示意图;

图3为本申请实施例提供的获取目标文本的过程示意图;

图4为本申请实施例提供的RTP包的结构示意图;

图5为本申请实施例提供的另一种数字人的交互方法的流程示意图;

图6为本申请实施例提供的根据扩展信息生成RTP头的过程示意图;

图7为本申请实施例提供的得到目标RTP包的过程示意图;

图8为本申请实施例提供的数字人交互的过程示意图;

图9为本申请实施例提供的一种数字人的交互装置的结构示意图;

图10为本申请实施例提供的另一种数字人的交互装置的结构示意图;

图11为本申请实施例提供的终端设备的结构示意图;

图12为本申请实施例提供的服务器的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

为了便于理解,下面,结合图1,对本申请实施例所适用的应用场景进行说明。

图1为本申请实施例提供的应用场景的示意图。请参见图1,包括终端设备101和服务器102。终端设备101可以为手机、平板电脑、电脑等。服务器102中设置有渲染装置。用户可以在终端设备101的应用程序中输入目标文本,终端设备101根据目标文本生成RTP包。并向服务器102发送RTP包。服务器102接收到终端设备101发送的RTP包之后,对RTP包进行解析处理,得到目标文本对应的数据。服务器102对目标文本对应的数据进行渲染处理,得到多媒体数据。多媒体数据为数字人按照目标文本对应的数据播放至少一个音频数据或者视频数据。服务器102向终端设备101发送多媒体数据,以使终端设备101通过数字人播放至少一个音频数据或者视频数据。

在上述过程中,由于根据RTP包得到多媒体数据只能按照输入文本的内容进行播放。不能根据输入文本,进行对应的反应动作或者执行预设功能,导致用户与数字人交互的灵活性较低。

本申请实施例中,终端设备获取目标文本,并对目标文本进行分句处理,得到至少一个文本语句。确定每个文本语句对应的扩展信息。根据文本语句和文本语句对应的扩展信息,生成每个文本语句对应的目标实时传输协议RTP包。终端设备向服务器发送目标RTP包。服务器接收到终端设备发送的至少一个目标RTP包之后,对至少一个目标RTP包进行解析处理,得到至少一个PCM音频流、以及每个PCM音频流对应的扩展信息。根据至少一个PCM音频流、以及每个PCM音频流对应的扩展信息进行渲染处理,得到多媒体数据。并向终端设备发送多媒体数据,以使终端设备通过数字人按照扩展信息播放至少一个PCM音频流的音频数据或者视频数据。在上述过程中,由于终端设备在生成RTP包之前,对目标文本进行分句处理,得到至少一个文本语句。并确定每个文本语句对应的扩展信息,数字人可以根据扩展信息实现对应的反应动作或者执行预设功能,而不是播放目标文本的内容,提高了用户与数字人交互的灵活性。

下面,通过具体实施例对本申请所示的方法进行说明。需要说明的是,下面几个实施例可以单独存在,也可以互相结合,对于相同或相似的内容,在不同的实施例中不再重复说明。

图2为本申请实施例提供的一种数字人的交互方法的流程示意图。请参见图2,该方法可以包括:

S201、终端设备获取目标文本,并对目标文本进行分句处理,得到至少一个文本语句。

用户可以在终端设备的应用程序中,输入希望与数字人交互的文本。终端设备响应于用户的输入选中操作,生成目标文本。

下面,结合图3,对获取目标文本的过程进行说明。图3为本申请实施例提供的获取目标文本的过程示意图。请参见图3,包括界面301~界面302。界面301~界面302为终端设备提供的消息页面。请参见界面301,用户在终端设备中打开应用程序之后,显示消息页面。用户在消息页面中输入“早上好!今天下雨了。”,并点击发送按钮。请参见界面302,终端设备相应于用户的输入点击操作,生成目标文本。

可以通过标点符号以及语义分析等方式,对目标文本进行分句处理,得到至少一个文本语句。若目标文本的最后一个分句没有标点符号,可以将最后一个分句的标点符号确定为句号。

例如,根据上述图3所示的目标文本,终端设备对目标文本进行分句处理,得到至少一个文本语句具体可以如表1所示:

表1

S202、终端设备确定每个文本语句对应的扩展信息。

扩展信息中包括停顿时长信息和操作信息。操作信息包括如下至少一种:执行动作、动作执行次数、表情或待触发的业务功能。

可以根据文本语句的标点符号,确定扩展信息的停顿时长信息。例如,逗号对应的停顿时长信息为停顿0.1s,句号对应的停顿时长信息为停顿0.2s。

扩展信息的执行动作可以为文本语句描述的动作,和/或文本语句对应的响应动作。

若文本语句为跑步、跳跃、举手等,则扩展信息的执行动作可以为文本语句描述的动作,即执行动作可以为跑步、跳跃、举手。若文本语句为您好,早上好等,则扩展信息的执行动作可以为文本语句对应的响应动作。例如,文本语句的执行动作可以为招手。

可以根据文本语句的语义信息,确定扩展信息的动作执行次数。例如,动作执行次数可以为执行1次、执行多次或者预设时段内重复执行。

可以提前设置多个文本语句、以及每个文本语句对应的扩展信息,并将多个文本语句、以及每个文本语句对应的扩展信息存储至终端设备的存储空间中。或者,将多个文本语句、以及每个文本语句对应的扩展信息存储至服务器的数据库中。当终端设备确定每个文本语句对应的扩展信息时,可以直接在预设空间中获取对应的扩展信息,或者,通过终端设备的应用程序在服务器的数据库中获取对应的扩展信息。

例如,根据上述表1所示的2个文本语句,终端设备可以在预设存储空间中获取每个文本语句对应的扩展信息,每个文本语句对应的扩展信息具体可以如表2所示:

表2

S203、针对任意一个文本语句,终端设备根据文本语句和文本语句对应的扩展信息,生成文本语句对应的目标RTP包。

RTP包为根据RTP确定的标准数据包。

下面,结合图4,对RTP包的结构进行说明。图4为本申请实施例提供的RTP包的结构示意图。请参见图4,包括RTP包401。RTP包401包括12个字节的固定头部和可选的变长扩展和有效载荷组成。其中,V为协议版本号,包括2位。P为填充位标志,包括1位。当存在填充时设置为1,否则为0。X为扩展位标志,包括1位。当存在扩展头时设置为1,否则为0。CC为贡献者(SSRC)个数,用于表示固定头部后面跟着的所有SSRC标识符的数量,包括4位。M为标记位,用于标记当前数据包是否为一个分片的最后一个数据包,包括1位。PT为有效载荷类型,用于指定RTP包401中携带的数据类型,包括7位。携带的数据类型可以为音频或视频。序列号(sequence number)用于表示RTP包401的序列号,包括16位。时间戳(timestamp)用于表示同步音视频数据的播放时长、计算延迟和抖动等,包括32位,时间戳。同步源标识符(Synchronization source(SSRC)identifier)用于表示RTP包401的源端,包括32位。贡献来源标识符(Contributing source(CSRC)identifier)用于表示RTP数据包的贡献者,即通过混音器混合后的音频数据的源。RTP扩展头标识(RTP extension ID)包括16位。RTP扩展头长度(length)包括16位。RTP有效载荷(Payload)中存储RTP包401携带的数据。

若RTP包401存在填充信息,将填充信息和填充长度填充至RTP包401对应的位置。若数据存在对应的扩展信息,则根据扩展信息,确定RTP包401的扩展头标识、扩展头长度和扩展数据(RTP extension data)。

例如,根据上述举例所示,确定RTP包携带的数据为上述表2所示的分句1和分句2。扩展信息为上述表2所示的每个分句对应的扩展信息。针对分句1,将分句1对应的文本语句填充至RTP包的Payload中,将分句1对应的扩展信息填充至RTP包的扩展头数据中。并根据分句1确定RTP包的固定头部,根据分句1对应的扩展信息确定RTP包的RTP extension ID和length,从而生成分句1对应的目标RTP包。

S204、服务器接收终端设备发送的至少一个目标RTP包。

例如,根据上述举例所示,确定分句1对应的目标RTP包之后,终端设备向服务器发送分句1对应的目标RTP包。

S205、服务器对至少一个目标RTP包进行解析处理,得到至少一个PCM音频流、以及每个PCM音频流对应的扩展信息。

可以通过如下方式,对至少一个目标RTP包进行解析处理,得到至少一个PCM音频流、以及每个PCM音频流对应的扩展信息:对目标RTP包进行解析处理,得到RTP报文体和RTP头;对RTP报文体进行解析处理,得到目标RTP包对应的PCM音频流;对RTP头进行解析处理,得到扩展信息。

例如,服务器对上述分句1对应的目标RTP包进行解析处理,得到RTP报文体和RTP头。对RTP报文体进行解析处理,得到目标RTP包对应的PCM音频流为分句1对应的文本语句。对RTP头进行解析处理,得到上述表2所示的分句1的扩展信息。

S206、服务器根据至少一个PCM音频流、以及每个PCM音频流对应的扩展信息进行渲染处理,得到多媒体数据。

多媒体数据为数字人按照扩展信息播放至少一个PCM音频流的音频数据或者视频数据。

例如,根据上述举例所示,确定PCM音频流为分句1对应的文本语句,PCM音频流对应的扩展信息为上述表2所示的分句1的扩展信息。服务器根据分句1对应的文本语句、以及上述表2所示的分句1的扩展信息进行渲染处理,得到多媒体数据。多媒体数据为数字人进行一次0持续0.2s的招手,并播放早上好。

S207、服务器向终端设备发送多媒体数据。

例如,服务器向终端设备发送上述举例所示的多媒体数据。

S208、终端设备根据每个文本语句对应的目标RTP包,获取目标文本对应的多媒体数据,并播放多媒体数据。

多媒体数据为数字人按照扩展信息播放目标文本的音频数据或者视频数据。

可以通过如下方式,根据每个文本语句对应的目标RTP包,获取目标文本对应的多媒体数据:向服务器发送每个文本语句对应的目标RTP包,终端设备和服务器之间为实时数据传输;接收服务器发送的多媒体数据,多媒体数据为服务器根据每个文本语句对应的目标RTP包进行渲染得到的。

例如,根据上述举例所示,确定多媒体数据为数字人进行一次0持续0.2s的招手,并播放您好。终端设备在接收到服务器发送的多媒体数据之后,通过应用程序播放多媒体数据。此时,终端设备的屏幕显示数字人,数字人进行一次0持续0.2s的招手,同时终端设备播放音频“早上好”。

本申请实施例提供的数字人交互方法,终端设备获取目标文本,并对目标文本进行分句处理,得到至少一个文本语句。终端设备确定每个文本语句对应的扩展信息。终端设备根据文本语句和文本语句对应的扩展信息,生成文本语句对应的目标RTP包。终端设备根据每个文本语句对应的目标RTP包,获取目标文本对应的多媒体数据,并播放多媒体数据。服务器接收终端设备发送的至少一个目标RTP包。服务器对至少一个目标RTP包进行解析处理,得到至少一个PCM音频流、以及每个PCM音频流对应的扩展信息。服务器根据至少一个PCM音频流、以及每个PCM音频流对应的扩展信息进行渲染处理,得到多媒体数据。服务器向终端设备发送多媒体数据。在上述过程中,由于终端设备在生成RTP包之前,对目标文本进行分句处理,得到至少一个文本语句。并确定每个文本语句对应的扩展信息,数字人可以根据扩展信息实现对应的反应动作或者执行预设功能,而不是播放目标文本的内容,提高了用户与数字人交互的灵活性。

在上述任意一个实施例基础上,下面,结合图5,对数字人交互的详细过程进行说明。

图5为本申请实施例提供的另一种数字人的交互方法的流程示意图。请参见图5,该方法包括:

S501、终端设备获取目标文本,并对目标文本进行分句处理,得到至少一个文本语句。

在进行数字人交互之前,终端设备和服务器之间建立RTP连接。这样,终端设备与服务器之间可以通过RTP传输数据。终端设备和服务器之间建立连接之后,可以通过双向通信(Websocket)、网页视频语音实时通讯技术(Web Real-Time Communication,webrtc)、用户数据报协议(User Datagram Protocol、UDP)、传输控制协议(Transmission ControlProtocol,TCP)等连接方式进行RTP数据数据包的传输。具体的通信方式本申请不做限定。

S502、终端设备确定每个文本语句对应的扩展信息。

针对任意一个文本语句,可以通过如下方式,确定每个文本语句对应的扩展信息:确定文本语句末尾处的标点符号,并根据标点符号确定停顿时长信息;确定文本语句对应的语义信息,并根据语义信息确定执行动作和动作执行次数。

例如,终端设备确定每个文本语句对应的扩展信息具体可以如表3所示:

表3

S503、针对任意一个文本语句,终端设备根据文本语句,生成RTP报文体。

可以通过如下方式根据文本语句,生成RTP报文体:生成文本语句对应的PCM音频流;按照RTP包格式,对PCM音频流进行封装处理,得到RTP报文体。

例如,根据上述表3所示的多个文本语句,针对分句1,生成“吃完午饭了,”对应的PCM音频流。按照RTP包格式,对PCM音频流进行封装处理,得到RTP报文体。

S504、终端设备根据扩展信息,生成RTP头。

可以通过如下方式根据扩展信息,生成RTP头:确定预设的RTP头格式,RTP头格式中包括多个字段、多个字段的排列顺序、以及每个字段的字段长度;根据扩展信息,生成每个字段对应的字段值,字段值的长度等于字段的字段长度;按照排列顺序,对多个字段对应的字段值进行组合处理,得到RTP头。

预设的RTP头格式具体可以如图4所示。

可以提前设置扩展信息中每个字段对应的字段值,并将扩展信息中每个字段对应的字段值存储至终端设备的预设存储空间或者服务器的数据库中。

终端设备在确定扩展信息中每个字段对应的字段值时,可以直接从预设存储空间中获取每个字段对应的字段值,或者,通过应用程序从服务器的数据库中获取每个字段对应的字段值。

例如,10 01表示RTP扩展头标识为1,长度为1(1+0),字段值为1;

20 03表示RTP扩展头标识为2,长度为1(1+0),字段值为3;

30 01表示RTP扩展头标识为3,长度为1(1+0),字段值为1;

40 01表示RTP扩展头标识为4,长度为1(1+0),字段值为1。

其中,扩展头标识为1用于表示对应的字段末尾的标点符号(如:逗号的对应的字段值为1,句号对应的字段值2,分号对应的字段值3……)。扩展头标识2用于表示对应的字段的执行动作(如:举手对应的字段值为1,摆对应的字段值为手2,摇头对应的字段值为3……)。扩展头标识为3用于表示对应的字段的动作执行次数。扩展头标识为4为预留位。后续也可进行扩展其他扩展头标识(如扩展头标识为5、6、7等。同时确定扩展对应的其他功能,如表情、待触发的业务功能等)。

可以根据字段末尾的标点符号,确定对应的停顿时长信息。例如,逗号对应的停顿时长信息为0.1s,句号对应的停顿时长信息为0.2s。

下面,结合图6,对根据扩展信息生成RTP头的过程进行说明。图6为本申请实施例提供的根据扩展信息生成RTP头的过程示意图。请参见图6,包括RTP头601,RTP头包括多个字段、多个字段的排列顺序、以及每个字段的字段长度。其中,V为2用于表示RTP协议版本号为2。P为0用于表示RTP包不存在填充信息。X为1用于表示RTP包存在扩展头信息。CC用于表示固定头部后面跟着的所有SSRC标识符的数量。M为1用于表示当前RTP包为一个分片的最后一个数据包。PT用于表示RTP数据包中携带的数据类型为音频类型。RTP包的序列号为123456,时间戳为2023.09.11.15:15:05用于表示时间戳。RTP扩展头包括3个,其中,扩展头标识=1用于表示字段末尾的标点符号。扩展头标识=2用于表示字段需要数字人执行的执行动作。扩展头标识=3用于字段对应的动作执行次数。每个RIP扩展头都有对应字段的字段长度。

S505、终端设备对RTP头和RTP报文体进行拼接处理,得到目标RTP包。

下面,结合图7,对得到目标RTP包的过程进行说明。图7为本申请实施例提供的得到目标RTP包的过程示意图。请参见图7,包括目标RTP包701。终端设备在扩展RTP头后面填充对应的扩展信息,并对上述图6所示的RTP头和上述分句1对应的RTP报文体进行拼接处理,得到目标RTP包701。

根据每个文本语句生成对应的目标RTP包,数字人可以将文本语句对应的PCM音频流进行分段。在语音播放以及渲染处理中,制造间隙,从而保证数字人的交互更加人性化、语句清晰分明。同时还可以针对不同的语句执行不同的动作(例如某句话是一句疑问句,就可以在RTP头里配置一个挠头的动作或疑惑的表情),增加数字人的真实感及互动乐趣。

S506、服务器接收终端设备发送的至少一个目标RTP包。

例如,终端设备向服务器发送上述图7所示的目标RTP包701,服务器接收终端设备发送的目标RTP包701。

S507、针对任意一个目标RTP包,服务器对目标RTP包进行解析处理,得到RTP报文体和RTP头。

例如,服务器对上述目标RTP包701进行解析处理,得到RTP报文体以及RTP头。

S508、服务器对RTP报文体进行解析处理,得到目标RTP包对应的PCM音频流。

例如,服务器对RTP报文体进行解析处理,得到目标RTP包对应的PCM音频流为上述表3所示的分句1对应的PCM音频流。

S509、服务器对RTP头进行解析处理,得到扩展信息。

扩展信息中包括停顿时长信息和操作信息,操作信息包括如下至少一种:执行动作、动作执行次数、表情或待触发的业务功能。

可以通过如下方式对RTP头进行解析处理,得到扩展信息:对RTP头进行解析处理,得到多个字段值;按照预设的RTP头格式,在多个字段值中确定停顿时长信息对应的第一字段值、以及操作信息对应的至少一个第二字段值;根据第一字段值确定停顿时长信息,以及根据至少一个第二字段值确定操作信息。

例如,服务器对目标RTP包701的RTP头进行解析处理,得到多个字段值。按照预设的RTP头格式,在目标RTP包701的多个字段值中确定停顿时长信息对应的第一字段值为扩展头标识=1对应的字段值、操作信息的执行动作对应的第二字段值为扩展头标识=2对应的字段值、以及操作信息的动作执行次数对应的第三字段值为扩展头标识=3对应的字段值。根据每个字段值确定对应的扩展信息具体可以如表4所示:

表4

S510、服务器根据至少一个PCM音频流、以及每个PCM音频流对应的扩展信息进行渲染处理,得到多媒体数据。

例如,服务器根据分句1对应的PCM音频流和上述表4所示的扩展信息,进行渲染处理,得到多媒体数据。多媒体数据为数字人执行1次持续0.1s的说话动作,同时播放音频“吃完午饭了”。

S511、服务器向终端设备发送多媒体数据。

S512、终端设备播放多媒体数据。

例如,终端设备根据分句1对应的目标RTP包701,获取目标文本对应的多媒体数据,并通过终端设备显示数字人执行1次持续0.1s的说话动作,同时播放音频“吃完午饭了”。

本申请实施例提供的数字人交互方法,终端设备获取目标文本,并对目标文本进行分句处理,得到至少一个文本语句。终端设备确定每个文本语句对应的扩展信息。终端设备根据文本语句和文本语句对应的扩展信息,生成文本语句对应的目标RTP包。终端设备根据每个文本语句对应的目标RTP包,获取目标文本对应的多媒体数据,并播放多媒体数据。服务器接收终端设备发送的至少一个目标RTP包。服务器对至少一个目标RTP包进行解析处理,得到至少一个PCM音频流、以及每个PCM音频流对应的扩展信息。服务器根据至少一个PCM音频流、以及每个PCM音频流对应的扩展信息进行渲染处理,得到多媒体数据。服务器向终端设备发送多媒体数据。在上述过程中,由于终端设备在生成RTP包之前,对目标文本进行分句处理,得到至少一个文本语句。并确定每个文本语句对应的扩展信息,数字人可以根据扩展信息实现对应的反应动作或者执行预设功能,而不是播放目标文本的内容,提高了用户与数字人交互的灵活性。

在上述任意一个实施例基础上,下面,结合图8,对数字人交互的过程进行举例说明。

图8为本申请实施例提供的数字人交互的过程示意图。请参见图8,包括终端设备801以及服务器802。终端设备801可以为手机、平板电脑、电脑等。服务器802中设置有数字人交互装置。用户在终端设备801的应用程序中输入目标文本,终端设备801响应于用户的输入点击操作,生成目标文本。终端设备801对目标文本进行分句处理,得到至少一个文本语句。终端设备801确定每个文本语句对应的扩展信息具体可以如表5所示:

表5

针对分句1,终端设备801生成分句1对应的PCM音频流;按照RTP包格式,对PCM音频流进行封装处理,将分句1对应的PCM音频流填充至payload,得到RTP报文体。终端设备801确定预设的RTP头格式,并根据表5所示的分句1的扩展信息,生成每个字段对应的字段值,每个字段对应的字段值具体可以如表6所示:

表6

终端设备801根据每个字段对应的字段长度,确定扩展头标识。并按照排列顺序,对多个字段对应的字段值进行组合处理,得到RTP头。终端设备801将字段值填充至对应的RTP扩展数据处,根据RTP头、RTP报文体和至少一个RTP扩展数据,生成分句1对应的目标RTP包为RTP包A1。终端设备801根据上述方法,生成分句2对应的目标RTP包为RTP包A2。并向服务器802发送RTP包A1以及RTP包A2。

服务器802接收到终端设备801发送的RTP包A1以及RTP包A2之后,对RTP包A1以及RTP包A2进行解析处理,得到对应的RTP报文体和RTP头。服务器802对RTP包A1以及RTP包A2的RTP报文体进行解析处理,得到分句1对应的PCM音频流、以及分句2对应的PCM音频流。针对分句1,服务器802按照预设的RTP头格式,在目标RTP包701的多个字段值中确定停顿时长信息对应的第一字段值为3、执行动作对应的第二字段值为2、以及动作执行次数对应的第三字段值为1。确定第一字段值1对应的字段末尾的标点符号为感叹号。因此,确定感叹号对应的停顿市场信息为0.2s。确定第二字段值2对应的执行动作为招手。确定第三字段值1对应的动作执行次数为1。服务器802服务器根据分句1对应的PCM音频流、以及PCM音频流对应的扩展信息进行渲染处理,得到RTP包A1对应的多媒体数据。多媒体数据为数字人执行1次持续0.2s的招手动作,并播放音频“您好”。服务器802根据上述方法确定RTP包A2对应的多媒体数据为数字人执行1次持续0.2s的做出耶的手势,并播放音频“该下班了”。

服务器802向终端设备801发送RTP包A1对应的多媒体数据以及RTP包A2对应的多媒体数据。终端设备801依次根据多媒体数据通过数字人做出执行动作并播放对应的音频。

本申请实施例提供的数字人交互方法,终端设备获取目标文本,并对目标文本进行分句处理,得到至少一个文本语句。终端设备确定每个文本语句对应的扩展信息。终端设备根据文本语句和文本语句对应的扩展信息,生成文本语句对应的目标RTP包。终端设备根据每个文本语句对应的目标RTP包,获取目标文本对应的多媒体数据,并播放多媒体数据。服务器接收终端设备发送的至少一个目标RTP包。服务器对至少一个目标RTP包进行解析处理,得到至少一个PCM音频流、以及每个PCM音频流对应的扩展信息。服务器根据至少一个PCM音频流、以及每个PCM音频流对应的扩展信息进行渲染处理,得到多媒体数据。服务器向终端设备发送多媒体数据。在上述过程中,由于终端设备在生成RTP包之前,对目标文本进行分句处理,得到至少一个文本语句。并确定每个文本语句对应的扩展信息,数字人可以根据扩展信息实现对应的反应动作或者执行预设功能,而不是播放目标文本的内容,提高了用户与数字人交互的灵活性。

图9为本申请实施例提供的一种数字人的交互装置的结构示意图。请参见图9,该数字人的交互装置10可以包括:

获取模块11,用于获取目标文本,并对所述目标文本进行分句处理,得到至少一个文本语句;

确定模块12,用于确定每个文本语句对应的扩展信息;

生成模块13,用于根据所述文本语句和所述文本语句对应的扩展信息,生成所述文本语句对应的目标实时传输协议RTP包;

播放模块14,用于根据每个文本语句对应的目标RTP包,获取所述目标文本对应的多媒体数据,并播放所述多媒体数据,所述多媒体数据为所述数字人按照所述扩展信息播放所述目标文本的音频数据或者视频数据。

在一种可能的实施方式中,所述生成模块13具体用于:

根据所述文本语句,生成RTP报文体;

根据所述扩展信息,生成RTP头;

对所述RTP头和所述RTP报文体进行拼接处理,得到所述目标RTP包。

在一种可能的实施方式中,所述生成模块13具体用于:

确定预设的RTP头格式,所述RTP头格式中包括多个字段、所述多个字段的排列顺序、以及每个字段的字段长度;

根据所述扩展信息,生成每个字段对应的字段值,所述字段值的长度等于所述字段的字段长度;

按照所述排列顺序,对所述多个字段对应的字段值进行组合处理,得到所述RTP头。

在一种可能的实施方式中,所述生成模块13具体用于:

生成所述文本语句对应的脉冲编码调制PCM音频流;

按照RTP包格式,对所述PCM音频流进行封装处理,得到所述RTP报文体。

在一种可能的实施方式中,所述获取模块11具体用于:

向服务器发送每个文本语句对应的目标RTP包,所述终端设备和所述服务器之间为实时数据传输;

接收所述服务器发送的所述多媒体数据,所述多媒体数据为所述服务器根据每个文本语句对应的目标RTP包进行渲染得到的。

在一种可能的实施方式中,所述确定模块12具体用于:

确定所述文本语句末尾处的标点符号,并根据所述标点符号确定停顿时长信息;

确定所述文本语句对应的语义信息,并根据所述语义信息确定所述执行动作和所述动作执行次数。

本申请实施例提供的数字人的交互装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

图10为本申请实施例提供的另一种数字人的交互装置的结构示意图。请参见图10,该数字人的交互装置20可以包括:

接收模块21,用于接收终端设备发送的至少一个目标RTP包;

第一处理模块22,用于对所述至少一个目标RTP包进行解析处理,得到至少一个脉冲编码调制PCM音频流、以及每个PCM音频流对应的扩展信息;

第二处理模块23,用于根据所述至少一个PCM音频流、以及每个PCM音频流对应的扩展信息进行渲染处理,得到多媒体数据,所述多媒体数据为数字人按照所述扩展信息播放所述至少一个PCM音频流的音频数据或者视频数据;

发送模块24,用于向所述终端设备发送所述多媒体数据。

在一种可能的实施方式中,所述第一处理模块22具体用于:

对所述目标RTP包进行解析处理,得到RTP报文体和RTP头;

对所述RTP报文体进行解析处理,得到所述目标RTP包对应的PCM音频流;

对所述RTP头进行解析处理,得到所述扩展信息。

在一种可能的实施方式中,所述第一处理模块22具体用于:

对所述RTP头进行解析处理,得到多个字段值;

按照预设的RTP头格式,在所述多个字段值中确定所述停顿时长信息对应的第一字段值、以及所述操作信息对应的至少一个第二字段值;

根据所述第一字段值确定所述停顿时长信息,以及根据所述至少一个第二字段值确定所述操作信息。

本申请实施例提供的数字人的交互装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

图11为本申请实施例提供的终端设备的结构示意图。请参见图11,该终端设备30可以包括:存储器31、处理器32。示例性地,存储器31、处理器32,各部分之间通过总线33相互连接。

存储器31用于存储程序指令;

处理器32用于执行该存储器所存储的程序指令,用以使得终端设备30执行上述方法实施例所示的方法。

本申请实施例提供的终端设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

图12为本申请实施例提供的服务器的结构示意图。请参见图12,该服务器40可以包括:存储器41、处理器42。示例性地,存储器41、处理器42,各部分之间通过总线43相互连接。

存储器41用于存储程序指令;

处理器42用于执行该存储器所存储的程序指令,用以使得服务器40执行上述方法实施例所示的方法。

本申请实施例提供的服务器可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

本申请实施例提供一种数字人的交互系统,包括至少一个终端设备和服务器,其中,所述终端设备和所述服务器用于执行上述方法。

本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现上述方法。

本申请实施例还可提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,可实现上述方法。

实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(read-only memory,ROM)、随机存取存储器(Random Access Memory,RAM)、快闪存储器、硬盘、固态硬盘、磁带(magnetictape)、软盘(floppy disk)、光盘(optical disc)及其任意组合。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

在本申请中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和/或”。本申请中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本申请中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

技术分类

06120116568171