CN117809681A - 一种服务器、显示设备及数字人交互方法 - Google Patents

一种服务器、显示设备及数字人交互方法 Download PDF

Info

Publication number
CN117809681A
CN117809681A CN202311267849.0A CN202311267849A CN117809681A CN 117809681 A CN117809681 A CN 117809681A CN 202311267849 A CN202311267849 A CN 202311267849A CN 117809681 A CN117809681 A CN 117809681A
Authority
CN
China
Prior art keywords
emotion
voice
sequence
user
text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311267849.0A
Other languages
English (en)
Inventor
李绪送
付爱国
杨善松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Visual Technology Co Ltd
Original Assignee
Hisense Visual Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hisense Visual Technology Co Ltd filed Critical Hisense Visual Technology Co Ltd
Priority to CN202311267849.0A priority Critical patent/CN117809681A/zh
Publication of CN117809681A publication Critical patent/CN117809681A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • G10L25/63Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for estimating an emotional state
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information
    • G10L2021/105Synthesis of the lips movements from speech, e.g. for talking heads

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Child & Adolescent Psychology (AREA)
  • Evolutionary Computation (AREA)
  • Hospice & Palliative Care (AREA)
  • Psychiatry (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请一些实施例示出一种服务器、显示设备及数字人交互方法,所述方法包括:在接收到显示设备发送用户输入的语音数据后,获取用户图像数据,以及根据语音数据确定播报文本;将用户图像数据映射到三维空间,得到形象系数;确定情感系数序列;基于播报文本、形象系数和情感系数序列生成数字人图像数据;基于播报文本生成播报语音;将播报语音和数字人图像数据发送至显示设备,以使显示设备基于数字人图像数据显示数字人图像并播放播报语音。本申请实施例通过将获取到的用户图像数据映射到三维空间,在三维空间可根据高拟人化的情感编辑实现对表情的可控调节,使数字人表情更加拟真人化。

Description

一种服务器、显示设备及数字人交互方法
技术领域
本申请涉及数字人交互技术领域,尤其涉及一种服务器、显示设备及数字人交互方法。
背景技术
数字人是指由计算机程序和算法生成的虚拟人物,可以模拟人类的语言、行为、情感等特征,具有高度的智能化和交互性。行业推出的数字人已经应用到文旅、金融、主播、游戏、影视娱乐等多个行业。不同的企业针对业务落地需求都有自己的一套虚拟数字人流程技术,但企业均因资源、效果等问题只针对面向企业的客户推出深度定制化方案,对于消费级面向个人客户未有成熟可靠的定制化方案。
在面向个人客户的数字人定制场景下,同一台服务器需要支撑成千上万不同用户,形象每时每刻都在切换。采用早期预制视频帧并将视频帧保存至内存中,以便用户加载播放,但是个人客户数量极为庞大,内存无法支撑成千上万用户视频帧数据同时加载。采用临时读磁盘方式,耗时问题严重影响用户交互体验。采用基于关键点控制单帧图像的驱动可以有助于实现面向个人客户的数字人定制。
但基于关键点控制单帧图像的驱动技术中,基于二维中间态的关键点特征表达能力有限,无法实现数字人表情完全拟真人化,表达较为僵硬。
发明内容
本申请一些实施例提供了一种服务器、显示设备及数字人交互方法,通过将获取到的用户图像数据映射到三维空间,在三维空间可根据高拟人化的情感编辑实现对表情的可控调节,使数字人表情更加拟真人化。
第一方面,本申请一些实施例中提供一种服务器,被配置为:
在接收到显示设备发送用户输入的语音数据后,获取用户图像数据,以及根据所述语音数据确定播报文本;
将所述用户图像数据映射到三维空间,得到形象系数;
确定情感系数序列;
基于所述播报文本、所述形象系数和所述情感系数序列生成数字人图像数据;
基于所述播报文本生成播报语音;
将所述播报语音和所述数字人图像数据发送至所述显示设备,以使所述显示设备基于所述数字人图像数据显示数字人图像并播放所述播报语音。
在一些实施例中,所述服务器执行基于所述播报文本、所述形象系数和所述情感系数序列生成数字人图像数据,被进一步配置为:
将播报文本输入语音驱动模型,得到嘴部动作系数序列;
基于所述形象系数、所述情感系数序列和所述嘴部动作系数序列生成数字人图像数据。
在一些实施例中,所述服务器执行基于所述播报文本、所述形象系数和所述情感系数序列生成数字人图像数据,被进一步配置为:
确定头部动作系数序列;
基于所述播报文本、所述形象系数、所述情感系数序列和所述头部动作系数序列生成数字人图像数据。
在一些实施例中,所述服务器执行确定情感系数序列,被进一步配置为:
确定所述播报文本对应的情感变化序列;
根据所述播报文本的文本长度确定所述播报语音的时长;
基于所述情感变化序列及所述时长确定所述情感系数序列。
在一些实施例中,所述服务器执行确定所述播报文本对应的情感变化序列,被进一步配置为:
将所述语音数据输入语音情感分类模型中,得到情感特征向量;
将所述情感特征向量输入映射模型中,得到情感变化序列。
在一些实施例中,所述服务器执行基于所述情感变化序列及所述时长确定所述情感系数序列,被进一步配置为:
如果所述时长小于或等于目标值,则在所述情感变化序列中移除目标数量的情感系数,以获取所述情感系数序列,所述目标值为情感变化序列显示的总时长,所述目标数量由所述时长、目标值和帧率确定;
如果所述时长大于目标值,则在所述情感变化序列中插入目标数量的情感系数,以获取所述情感系数序列。
在一些实施例中,所述服务器执行确定头部动作系数序列,被进一步配置为:
确定所述播报文本对应的头部动作变化序列;
根据所述播报文本的文本长度确定所述播报语音的时长;
基于所述头部动作变化序列及所述时长确定所述头部动作系数序列。
在一些实施例中,所述服务器执行基于所述头部动作变化序列及所述时长确定所述头部动作系数序列,被进一步配置为:
如果所述时长小于或等于目标值,则在所述头部动作变化序列中移除目标数量的头部动作系数,以获取所述头部动作系数序列,所述目标值为头部动作变化序列显示的总时长,所述目标数量由所述时长、目标值和帧率确定;
如果所述时长大于目标值,则在所述头部动作变化序列中插入目标数量的头部动作系数,以获取所述头部动作系数序列。
第二方面,本申请一些实施例中提供一种显示设备,包括:
显示器,被配置为显示用户界面;
通信器,被配置为与服务器进行数据通信;
控制器,被配置为:
接收用户输入的语音数据;
将所述语音数据通过所述通信器发送至服务器;
接收所述服务器基于所述语音数据下发的数字人图像数据及播报语音;
播放所述播报语音并基于所述数字人图像数据显示数字人图像。
第三方面,本申请一些实施例中提供一种数字人交互方法,包括:
在接收到显示设备发送用户输入的语音数据后,获取用户图像数据,以及根据所述语音数据确定播报文本;
将所述用户图像数据映射到三维空间,得到形象系数;
确定情感系数序列;
基于所述播报文本、所述形象系数和所述情感系数序列生成数字人图像数据;
基于所述播报文本生成播报语音;
将所述播报语音和所述数字人图像数据发送至所述显示设备,以使所述显示设备基于所述数字人图像数据显示数字人图像并播放所述播报语音。
本申请的一些实施例提供一种服务器、显示设备及数字人交互方法。在接收到显示设备发送用户输入的语音数据后,获取用户图像数据,以及根据所述语音数据确定播报文本;将所述用户图像数据映射到三维空间,得到形象系数;确定情感系数序列;基于所述播报文本、所述形象系数和所述情感系数序列生成数字人图像数据;基于所述播报文本生成播报语音;将所述播报语音和所述数字人图像数据发送至所述显示设备,以使所述显示设备基于所述数字人图像数据显示数字人图像并播放所述播报语音。本申请实施例通过将获取到的用户图像数据映射到三维空间,在三维空间可根据高拟人化的情感编辑实现对表情的可控调节,使数字人表情更加拟真人化。
附图说明
图1示出了根据一些实施例的显示设备与控制装置之间操作场景;
图2示出了根据一些实施例的控制设备的硬件配置框图;
图3示出了根据一些实施例的显示设备的硬件配置框图;
图4A示出了根据一些实施例的显示设备中一种软件配置图;
图4B示出了根据一些实施例的显示设备中一种软件配置图;
图5示出了根据一些实施例提供的一种数字人交互的流程图;
图6示出了根据一些实施例提供的一种数字人入口界面的示意图;
图7示出了根据一些实施例提供的一种数字人选择界面的示意图;
图8示出了根据一些实施例提供的一种显示数字人界面的流程图;
图9示出了根据一些实施例提供的一种添加数字人界面的流程图;
图10示出了根据一些实施例提供的一种视频录制准备界面的示意图;
图11示出了根据一些实施例提供的一种音色设置界面的示意图;
图12示出了根据一些实施例提供的一种音频录制准备界面的示意图;
图13示出了根据一些实施例提供的一种数字人命名界面的示意图;
图14示出了根据一些实施例提供的另一种数字人选择界面的示意图;
图15示出了根据一些实施例提供的一种数字人定制的流程图;
图16示出了根据一些实施例提供的一种语音交互的流程图;
图17示出了根据一些实施例提供的一种整体架构图;
图18示出了根据一些实施例提供的一种分类模型的示意图;
图19示出了根据一些实施例提供的一种直播数据推流过程的示意图;
图20示出了根据一些实施例提供的一种用户界面的示意图;
图21示出了根据一些实施例提供的另一种数字人交互时序图;
图22示出了根据一些实施例提供的第一种数字人交互的流程图;
图23示出了根据一些实施例提供的一种唇形的示意图;
图24示出了根据一些实施例提供的一种图像生成的示意图;
图25示出了根据一些实施例提供的第二种数字人交互的流程图;
图26示出了根据一些实施例提供的一种人脸关键点的示意图;
图27示出了根据一些实施例提供的一种关键点眨眼模型输入及输出的示意图;
图28示出了根据一些实施例提供的一种图像生成模型的示意图;
图29示出了根据一些实施例提供的第三种数字人交互的流程图;
图30示出了根据一些实施例提供的一种语音特征提取模型的示意图;
图31示出了根据一些实施例提供的一种分散注意力网络模型的示意图;
图32示出了根据一些实施例提供的一种基于梅尔谱的先验情感知识提取模型的示意图;
图33示出了根据一些实施例提供的一种技术架构图。
具体实施方式
为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语“包括”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请实施方式提供的显示设备可以具有多种实施形式,例如,可以是电视、智能电视、激光投影设备、显示器(monitor)、电子白板(electronic bulletin board)、电子桌面(electronic table)等。图1和图2为本申请的显示设备的一种具体实施方式。
图1为根据实施例中显示设备与控制装置之间操作场景的示意图。如图1所示,用户可通过终端300或控制装置100操作显示设备200。
在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式,通过无线或有线方式来控制显示设备200。用户可以通过遥控器上按键、语音输入、控制面板输入等输入用户指令,来控制显示设备200。
在一些实施例中,也可以使用终端300(如移动终端、平板电脑、计算机、笔记本电脑等)以控制显示设备200。例如,使用在终端上运行的应用程序控制显示设备200。
在一些实施例中,显示设备可以不使用上述的终端或控制设备接收指令,而是通过触摸或者手势等接收用户的控制。
在一些实施例中,显示设备200还可以采用除了控制装置100和终端300之外的方式进行控制,例如,可以通过显示设备200设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过显示设备200设备外部设置的语音控制设备来接收用户的语音指令控制。
在一些实施例中,显示设备200还与服务器400进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。
图2示例性示出了根据示例性实施例中控制装置100的配置框图。如图2所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。
如图3,显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口中的至少一种。
在一些实施例中控制器包括处理器,视频处理器,音频处理器,图形处理器,RAM,ROM,用于输入/输出的第一接口至第n接口。
显示器260包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自控制器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控UI界面。
显示器260可为液晶显示器、OLED显示器、以及投影显示器,还可以为一种投影装置和投影屏幕。
显示器260还包括触控屏,触控屏用于接收用户手指在触控屏上滑动或点击等动作输入控制指令。
通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括Wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与外部控制设备100或服务器400建立控制信号和数据信号的发送和接收。
用户接口,可用于接收控制装置100(如:红外遥控器等)的控制信号。
检测器230用于采集外部环境或与外部交互的信号。例如,检测器230包括光接收器,用于采集环境光线强度的传感器;或者,检测器230包括图像采集器,如摄像头,可以用于采集外部环境场景、用户的属性或用户交互手势,再或者,检测器230包括声音采集器,如麦克风等,用于接收外部声音。
外部装置接口240可以包括但不限于如下:高清多媒体接口(HDMI)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(CVBS)、USB输入接口(USB)、RGB端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。
调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及EPG数据信号。
在一些实施例中,控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。
控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器260上显示UI对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。
在一些实施例中控制器包括中央处理器(Central Processing Unit,CPU),视频处理器,音频处理器,图形处理器(Graphics Processing Unit,GPU),RAM(Random AccessMemory,RAM),ROM(Read-Only Memory,ROM),用于输入/输出的第一接口至第n接口,通信总线(Bus)等中的至少一种。
用户可在显示器260上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
如图4A所示,将显示设备的系统分为三层,从上至下分别为应用层、中间件层和硬件层。
应用层主要包含电视上的常用应用,以及应用框架(Application Framework),其中,常用应用主要是基于浏览器Browser开发的应用,例如:HTML5 APPs;以及原生应用(Native APPs);
应用框架(Application Framework)是一个完整的程序模型,具备标准应用软件所需的一切基本功能,例如:文件存取、资料交换...,以及这些功能的使用接口(工具栏、状态列、菜单、对话框)。
原生应用(Native APPs)可以支持在线或离线,消息推送或本地资源访问。
中间件层包括各种电视协议、多媒体协议以及系统组件等中间件。中间件可以使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。
硬件层主要包括HAL接口、硬件以及驱动,其中,HAL接口为所有电视芯片对接的统一接口,具体逻辑由各个芯片来实现。驱动主要包含:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
参见图4B,在一些实施例中,将系统分为四层,从上至下分别为应用程序(Applications)层(简称“应用层”),应用程序框架(Application Framework)层(简称“框架层”),安卓运行时(Android runtime)和系统库层(简称“系统运行库层”),以及内核层。
在一些实施例中,应用程序层中运行有至少一个应用程序,这些应用程序可以是操作系统自带的窗口(Window)程序、系统设置程序或时钟程序等;也可以是第三方开发者所开发的应用程序。在具体实施时,应用程序层中的应用程序包不限于以上举例。
框架层为应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。应用程序框架层相当于一个处理中心,这个中心决定让应用层中的应用程序做出动作。应用程序通过API接口,可在执行中访问系统中的资源和取得系统的服务。
如图4B所示,本申请实施例中应用程序框架层包括管理器(Managers),内容提供者(Content Provider)等,其中管理器包括以下模块中的至少一个:活动管理器(ActivityManager)用与和系统中正在运行的所有活动进行交互;位置管理器(Location Manager)用于给系统服务或应用提供了系统位置服务的访问;文件包管理器(Package Manager)用于检索当前安装在设备上的应用程序包相关的各种信息;通知管理器(NotificationManager)用于控制通知消息的显示和清除;窗口管理器(Window Manager)用于管理用户界面上的括图标、窗口、工具栏、壁纸和桌面部件。
在一些实施例中,活动管理器用于管理各个应用程序的生命周期以及通常的导航回退功能,比如控制应用程序的退出、打开、后退等。窗口管理器用于管理所有的窗口程序,比如获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕,控制显示窗口变化(例如将显示窗口缩小显示、抖动显示、扭曲变形显示等)等。
在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被使用时,安卓操作系统会运行系统运行库层中包含的C/C++库以实现框架层要实现的功能。
在一些实施例中,内核层是硬件和软件之间的层。如图4B所示,内核层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
数字人是指由计算机程序和算法生成的虚拟人物,可以模拟人类的语言、行为、情感等特征,具有高度的智能化和交互性。行业推出的数字人已经应用到文旅、金融、主播、游戏、影视娱乐等多个行业。不同的企业针对业务落地需求都有自己的一套虚拟数字人流程技术,但企业均因资源、效果等问题只针对面向企业的客户推出深度定制化方案,对于消费级面向个人客户未有成熟可靠的定制化方案。
在面向个人客户的数字人定制场景下,同一台服务器需要支撑成千上万不同用户,形象每时每刻都在切换。采用早期预制视频帧并将视频帧保存至内存中,以便用户加载播放,但是个人客户数量极为庞大,内存无法支撑成千上万用户视频帧数据同时加载。采用临时读磁盘方式,耗时问题严重影响用户交互体验。采用基于关键点控制单帧图像的驱动可以有助于实现面向个人客户的数字人定制。
但基于关键点控制单帧图像的驱动技术中,基于二维中间态的关键点特征表达能力有限,无法实现数字人表情完全拟真人化,表达较为僵硬。
本申请实施例提供一种数字人交互方法,如图5所示。
步骤S501:终端300通过服务器400与显示设备200建立关联关系;
在一些实施例中,服务器400分别建立与显示设备200和终端300的连接关系,以使显示设备200与终端300建立关联关系。
其中,服务器400建立与显示设备200连接关系的步骤,包括:
服务器400与显示设备200建立长连接;
其中,服务器400与显示设备200建立长连接的目的在于服务器400可以实时推送数字人定制的状态等至显示设备200。
长连接指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。长连接只需要建立一次连接就可以进行多次通信,从而节省网络开销;长连接只需要进行一次握手和认证就可以保持通信状态,从而提高通信效率;长连接可以实现双向的数据传输,让服务器主动向显示设备发送数字人定制数据,从而实现实时通信效果。
在一些实施例中,服务器400在接收到显示设备200开机消息后,与显示设备200建立长连接。
在一些实施例中,服务器400在接收到显示设备200启用语音数字人服务的消息后,与显示设备200建立长连接。
在一些实施例中,服务器400在接收到显示设备200发送添加数字人指令后,与显示设备200建立长连接。
服务器400接收显示设备200发送的请求数据,其中,所述请求数据包括显示设备200的设备标识。
服务器400在接收到请求数据后,判断数据库中是否存在设备标识对应的识别码,其中,识别码用于表征显示设备200的设备信息,识别码可以是数个随机的数字或字母,也可以是条形码,还可以是二维码。
如果数据库中存在设备标识对应的识别码,则将识别码发送至显示设备200,以使显示设备200在添加数字人界面上显示识别码。
如果数据库中不存在设备标识对应的识别码,则创建设备标识对应的识别码,将设备标识和识别码对应保存到数据库中,以及将识别码发送至显示设备200,以使显示设备200在添加数字人界面上显示识别码。
为了明确服务器400与显示设备200建立连接的交互过程,公开以下实施例:
显示设备200在接收到用户输入的打开数字人入口界面的指令后,控制显示器260显示数字人入口界面,其中,数字人入口界面包括语音数字人控件;
示例性的,如图6所示,数字人入口界面包括语音数字人控件61、自然对话控件62、免唤醒词控制控件63和焦点64。
需要说明的是,控件是指在显示设备200中用户界面的各展示区中显示以表示诸如图标、缩略图、视频剪辑、链接等对应内容的视觉对象,这些控件可以为用户提供通过数据广播接收的各种传统节目内容、以及由内容制造商设置的各种应用和服务内容。
控件的展示形式通常多样化。例如,控件可以包括文本内容和/或用于显示与文本内容相关的缩略图的图像,或与文本相关的视频剪辑。又如,控件可以是应用程序的文本和/或图标。
焦点用于指示其中任一控件已被选择。一方面,可根据用户通过控制装置100的输入,控制显示设备200中显示焦点对象的移动来选择或控制控件。如:用户可通过控制装置100上方向键控制焦点对象在控件之间的移动来选择和控制控件。另一方面,可根据用户通过控制装置100的输入,控制显示设备200中显示的各控件的移动来使得焦点对象选择或控制控件。如:用户可通过控制装置100上方向键控制各控件一并进行左右移动,以在保持焦点对象的位置不变时使得焦点对象选择和控制控件。
焦点的标识形式通常多样化。示例的,可通过放大项目来实现或标识焦点对象的位置,还通过设置项目背景色来实现或标识焦点对象的位置,也可以通过改变聚焦项目的文本或图像的边框线、尺寸、颜色、透明度和轮廓和/或字体等标识焦点对象的位置。
显示设备200在接收到用户输入选中语音数字人控件的指令后,控制显示器260显示数字人选择界面,其中,数字人选择界面包括至少一个数字人控件和添加控件,数字人控件以数字人形象及数字人形象对应的名称展示,添加控件用于添加新的数字人形象、音色及名称。
示例性的,在图6中,显示设备200在接收到用户输入选中语音数字人控件61的指令后,显示设备200显示数字人选择界面。如图7所示,数字人选择界面包括默认形象控件71、丁丁控件72、瓶子控件73、添加控件74及焦点75。用户可通过移动焦点75的位置选择想要的数字人作为响应语音指令的数字人。
在一些实施例中,显示设备200显示数字人界面的流程如图8所示。显示设备200的数字人应用在接收到用户输入打开数字人入口界面(主页)的指令后,数字人应用向语音专区请求数据,语音专区从运营端获取主页配置信息(主页数据),语音专区将主页数据发送至数字人应用,以使数字人应用控制显示器260显示数字人主页。数字人应用可以直接发送数字人账号请求,语音专区在接收到虚拟数字人账号请求后从运营端获取预设数据,例如默认数字人账号信息,同时向服务器400的算法服务获取云存储的数字人账号数据,如果有默认补充参数,则将预设数据、云存储的数字人账号数据及补充参数一同发给数字人应用,以使数字人应用在接收显示数字人选择界面的指令后控制显示器260显示数字人选择界面。显示数字人主页后,数字人应用也可以在接收到用户输入显示数字人选择界面的指令后,发送虚拟数字人账号请求,并在接收到预设数据、云存储的数字人账号数据及补充参数后,直接显示数字人选择界面。
其中,语音专区面向服务器400,基于运营支撑平台,实现后台默认数据项与配置项的运营可配置管理,完成显示设备200所需数据的协议下发。语音专区串联显示设备200与服务器400的算法服务交互,通过获取显示设备200上报数据参数,完成指令解析,并完成算法后台交互转接,解析并下发后台存储数据,最终实现全链路的数据对接过程。
在接收到用户输入选中添加控件的指令后,显示设备200发送的携带有显示设备200的设备标识的请求数据至服务器400的定制中控服务。
定制中控服务调用目标应用程序接口,以判断数据库中存在设备标识对应的识别码,如果数据库中存在设备标识对应的识别码,则将识别码发送至显示设备200。如果数据库中不存在设备标识对应的识别码,则创建识别码并将识别码发送至显示设备200。其中,目标应用程序是指具有识别码识别功能的应用程序。
显示设备200接收服务器400下发的识别码,并在添加数字人界面上显示。
示例性的,在图7中,在接收到用户输入选中添加控件74的指令,显示设备200显示添加数字人界面。如图9所示,添加数字人界面包括二维码91。
其中,服务器400建立与终端300连接关系的步骤,包括:
服务器400接收终端300上传的识别码;
判断是否存在与识别码对应的显示设备200;
如果存在与识别码对应的显示设备200,则建立终端300与显示设备200的关联关系,以将终端300上传的数据通过服务器400处理后发送至显示设备200。
为了明确服务器400与终端300建立连接的交互过程,公开以下实施例:
终端300在接收到用户输入打开目标应用程序的指令后,启动目标应用程序并显示目标应用程序对应的主页界面。其中,主页界面包括扫一扫控件。
终端300在接收到用户输入选中扫一扫控件的指令后,显示扫码界面。
终端300在扫描到显示设备200显示的识别码,例如二维码后,将识别码上传到服务器400。其中,用户可将终端300的摄像头对准显示设备200上添加数字人界面显示的识别码。
如果识别码的形式是数字或字母,主页界面包括识别码控件,在接收到用户输入选中识别码控件的指令后,显示识别码输入界面,将显示设备200显示的数字或字母输入到识别码输入界面,以将识别码上传到服务器400。
服务器400判断是否存在与识别码对应的显示设备;如果存在与识别码对应的显示设备200,则建立终端300与显示设备200的关联关系,以将终端300上传的数据通过服务器400处理后发送至显示设备200。如果不存在与识别码对应的显示设备200,将识别失败的消息发送至终端300,以使终端300显示报错消息。
服务器400在确定存在与识别码对应的显示设备200,将识别成功的消息发送至终端300。终端300显示启动页面,其中,启动页面开始进入数字人定制流程。
在一些实施例中,启动页面包括数字人形象选择界面。数字人形象选择界面包括至少一个默认形象控件和自定义形象控件。在接收到用户输入选择自定义形象控件的指令后,终端300显示视频录制准备界面,视频录制准备界面包括录制控件。示例性的,如图10所示,视频录制准备界面包括视频录制注意事项101和开始录制控件102。
在一些实施例中,启动页面也可以是视频录制准备界面。
在一些实施例中,终端300通过服务器400与显示设备200建立关联关系的步骤,包括:
服务器400接收终端300上传的用户账号和密码并在验证用户账号和密码正确后,发送登录成功的消息,以使终端300可以获取到该用户账号对应的数据。
服务器400接收显示设备200上传的用户账号和密码,在验证用户账号和密码正确后,发送登录成功的消息,以使显示设备200可以获取该用户账号对应的数据。其中,终端300与显示设备200登录用户账号相同。终端300与显示设备200通过登录相同用户账号建立关联关系,以使终端300更新的数据可以同步到显示设备200上。例如:在终端300定制的数字人相关数据可同步至显示设备200上。步骤S502:终端300将图像数据和音频数据上传至服务器400;
其中,图像数据包括用户拍摄的视频或图片,用户在相册中选择的视频或图片以及在网址中下载的视频或图片。
在一些实施例中,终端300将接收到用户拍摄视频或图片上传至服务器400。
示例性的,在图10中,在接收到用户输入选择开始录制控件102的指令后,采用终端300媒体组件video录制视频。为了避免由于人脸检测不合格而多次录制,录制界面显示人脸的建议位置,终端300可对人脸位置做初步检测。在结束录制后可反复预览录制视频。在接收用户输入确认上传的指令后,将用户录制视频发送至服务器400。
在一些实施例中,终端300可以将拍摄的用户照片发送至服务器。
在一些实施例中,终端300可以从相册中选择一个用户照片或用户视频,将用户照片或用户视频上传至服务器400。
服务器400接收终端上传的图像数据;
检测图像数据中人脸点位是否合格;
定制中控服务在接收到终端上传的图像数据后,调用算法服务校验人脸点位。
如果检测到图像数据中人脸点位合格,则发送图像检测合格消息至终端300;
如果检测到图像数据中人脸点位不合格,则发送图像检测不合格消息至终端,以使终端300提示用户重新上传。
其中,人脸点位检测可以是利用算法检测人脸的关键点是否都在规定区域内等。
终端300在接收到图像检测合格消息后,显示在线特效页面。
在在线特效页面中,用户可以采用原视频或原照片上传至服务器400,即以原视频或原照片作为数字人头像,也可以选择喜欢的特效风格,拖动或点击特效强度,采用特效后视频或照片上传至服务器400,即以特效后视频或照片作为数字人头像。在制作特效过程中可触摸特效图右下角随时比较与原图的差异。在特效制作中采用图片预加载,监听图片资源加载进度,设置图片层级关系。
在图像数据通过人脸点位校验并成功上传至服务器400后,终端300显示音色设置界面。其中,音色设置界面包括至少一个预置推荐音色控件和自定义音色控件;
终端300接收用户输入选择预置推荐音色控件的指令,将预置推荐音色对应的标识发送至服务器400,并显示数字人命名界面。
在一些实施例中,终端300在接收用户输入选择自定义音色控件的指令后,显示音频录制选择界面,音频录制选择界面包括成人控件和儿童控件。
示例性的,如图11所示,音色设置界面包括小婉控件111、小升控件112和自定义音色控件113。接收用户输入选择自定义音色控件113的指令,显示音频录制准备界面,如图12所示。音频录制选择界面包括录音注意事项121、成人控件122和儿童控件123。在接收到用户输入选择成人控件122或儿童控件123后进入各自对应的流程。接收用户输入选择小婉控件111的指令,显示数字人命名界面,如图13所示。
终端300在接收到用户输入选择成人控件的指令后,显示环境音检测界面。
终端300采集预设时长的环境音,并将用户录制环境录制音发送至服务器400。
服务器400接收终端300上传的环境录制音;
检测环境录制音是否合格;
定制中控服务在接收终端300上传的环境录制音后,调用算法服务检测环境录制音是否合格。
检测环境录制音是否合格的步骤,包括:
获取环境录制音的噪音值;
判断噪音值是否超过预设阈值;
如果噪音值超过预设阈值,则确定环境录制音不合格;
如果噪音值不超过预设阈值,则确定环境录制音合格。
如果检测到环境录制音合格,则发送环境音合格消息及录制音频所需要的目标文本至终端300;
如果检测到环境录制音不合格,则发送环境音不合格消息至终端300,以使终端300提示用户选个安静的空间重新录制。
终端300在接收到环境音合格消息和录制音频所需要的目标文本后,显示目标文本,其中,目标文本可以选取体现用户音色特点的文本。
终端300接收用户读取目标文本的音频,并将音频发送至服务器400。终端300可在接收到预设时长的音频数据就发送至服务器400,以使服务器400可以将识别结果发送回终端300,以达到实时识别在读文字的效果。
服务器400接收用户读取目标文本的音频;
识别音频对应的用户文本;
根据目标文本与用户文本计算合格率;
根据目标文本与用户文本计算合格率的步骤,包括:
比较目标文本与用户文本,得到用户文本中正确文字的字数;
确定合格率为正确文字的字数与目标文本中字数的比值。
判断合格率是否小于预设值;
如果合格率小于预设值,则发送语音上传失败消息至终端300,以使终端300提示用户重新录制读取目标文本的音频;
在一些实施例中,实时识别在读文字时,比较目标文本与用户文本以确定错误、多读和漏读文本,将错误、多读和漏读文本标注出来发送至终端300,以使终端300将错误、多读和漏读文本以不同颜色或字体显示出来。
如果合格率不小于预设值,则发送语音上传成功消息至终端300,以使终端300显示下一条目标文本或语音录制完成信息。
在跟读预设数量的目标文本并合格后,音频采集流程结束,终端300显示数字人命名界面。
服务器400接收预设数量目标文本对应的音频数据。
终端300在接收到用户输入选择儿童控件的指令后,同样显示环境音检测界面,环境音检测步骤与选择成人控件时相同。
如果检测到用户录制环境音合格,则发送环境音合格消息及录制音频所需要的领读音频至终端300。
终端300可自动播放领读音频,可反复试听。在接收到用户按压录音键的指令时,开始录制用户跟读的音频,将音频发送至服务器400。
服务器400接收用户跟读的音频;
识别音频对应的用户文本;
根据领读音频对应的目标文本与跟读音频对应的用户文本计算合格率;
判断合格率是否小于预设值;
如果合格率小于预设值,则发送语音上传失败消息至终端300,以使终端300提示用户重新录制读取领读音频对应的音频;实时识别在读文字时,比较目标文本与用户文本以确定错误、多读和漏读文本,将错误、多读和漏读文本标注出来发送至终端300,以使终端300将错误、多读和漏读文本以不同颜色或字体显示出来。
如果合格率不小于预设值,则发送语音上传成功消息至终端300,以使终端300播放下一条领读音频或语音录制完成信息。
终端300在接收到语音录制完成后,显示数字人命名界面。
在一些实施例中,终端300在接收用户输入选择自定义音色控件的指令后,可选择上传一段音频数据。服务器400在接收到音频数据后检测噪音值,如果噪音值超过预设阈值,则发送上传失败消息至终端300,以使终端300提示用户重新上传。如果噪音值未超过预设阈值,则上传成功消息至终端300,以使终端300显示数字人命名界面。
终端300在接收到用户输入的数字人名称后,将数字人名称发送至服务器400。
示例性的,如图13所示,数字人命名界面包括输入框131、唤醒词控件132、完成创建控件133和训练得到的数字人形象134。唤醒词控件132用于确定是否同时设置为显示设备唤醒词。如果选中唤醒词控件132则将数字人名称设置为显示设备200的唤醒词。示例性的,设置为显示设备的唤醒词的数字人命名规则为:长度为4-5个汉字、避免使用叠词(例如“小小乐乐”)、避免使用口语词(例如“我回来了”)、避免含敏感词汇。如果未选中唤醒词控件132,则将数字人名称不设置为显示设备的唤醒词。示例性的,不设置为显示设备200的唤醒词的数字人命名规则为:最长5个字符,可使用中文、英文、数字,避免含敏感词汇。其中,一个显示设备或一个用户账号创建的数字人名称不能重复。
在接收到用户输入选中完成创建控件133的指令后,将数字人的名称发送至服务器400。服务器400在检测到用户发送数字人的名称通过审核后,发送创建成功的消息至终端300。终端300可显示创建成功的提示信息。服务器400在检测到用户发送数字人的名称未通过审核后,发送创建失败的消息及失败原因至终端300。终端300可显示创建失败原因并重新命名的提示信息。
步骤S503:服务器400基于图像数据确定数字人形象数据,以及基于音频数据确定数字人语音特征。
对用户上传的秒级视频或用户照片进行图像预处理,得到数字人形象数据。图像预处理是将每一个图像分检出来交给识别模块识别的过程。在图像分析中,对输入图像进行特征抽取、分割和匹配前所进行的处理。图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。本申请实施例通过相关算法,实现定制形象高保真、高清晰度的交互形象。
在一些实施例中,数字人形象数据包括2D数字人图像以及人脸关键点坐标信息,人脸关键点坐标信息为数字人语音关键点驱动提供数据支撑。
在一些实施例中,数字人形象数据包括数字人参数,例如3D BS(Blend Shape,混合变形)参数。数字人参数是在基础模型的基础上提供人脸关键点的偏移量,从而使得显示设备200可以基于基础模型和数字人参数绘制出数字人形象。
利用用户上传的音频数据训练人声克隆模型,得到符合用户音色的音色参数。在语音合成时,可以将播报文字输入嵌入音色参数的人声克隆模型,得到符合用户音色的播报语音。
为支撑数字人语音交互,本申请实施例在一般语音合成语音架构基础上增加音素时长预测,以供下游数字人面部关键点驱动。为支撑数字人形象定制,在多说话人语音合成模型的基础上实现少样本音色定制,通过1-10句用户语音样本,微调少量模型参数实现人声克隆。
数字人形象可以选择真人形象或卡通形象,也可以选择同时创建真人形象和卡通形象。
服务器400在接收到终端300上传的图像数据(未检测人脸点位)时,即可通知对用户的真人形象或卡通形象进行训练,即真人形象或卡通形象训练与人脸点位检测同时进行。如果人脸点位检测失败,则终止真人形象或卡通形象的训练。如果人脸点位检测成功,则可以缩短等待数字人训练的时间。
在一些实施例中,服务器400将训练得到的真人形象和卡通形象发送至终端300,以使终端300展示数字人形象及供用户选择使用。
终端300在接收并展示训练后的真人形象,可提供给用户对该真人形象进行美颜、添加特效等操作,也可以提供制作卡通形象以及重新录制视频等选项,以便用户可以得到自己想要的数字人形象。
步骤S504:服务器400将数字人形象数据发送至与终端300建立关联关系的显示设备200,以使显示设备200基于数字人形象数据显示数字人图像。
在一些实施例中,在接收到2D数字人图像后可直接在数字人选择界面显示数字人图像。
在一些实施例中,在接收到数字人参数后,基于基础模型和数字人参数绘制出数字人图像,并在数字人选择界面显示数字人图像。
在一些实施例中,服务器400还可将数字人形象数据对应的数字人名称发送至与终端300建立关联关系的显示设备200,以使显示设备200在数字人图像的对应位置显示数字人名称。
在一些实施例中,服务器400在接收到终端300上传的数字人名称后,将初形象和数字人名称后发送至显示设备200并在数字人选择界面显示。该数字人以“训练中”进行标识,还可标识训练时间,示例性的,数字人选择界面如图14所示。在训练完成后,服务器400将训练得到的最终形象发送至显示设备200,以更新显示。
在一些实施例中,也可将基于数字人语音特征生成的目标语音(例如问候语)发送至显示设备200,以使在接收到用户将焦点移动至数字人对应的控件时,可以播放出数字人音色对应的语音。例如,在图7中,当接收到焦点75移动至丁丁控件72时,播放具有丁丁音色的“你好,我是丁丁”的语音。
在一些实施例中,基于数字人语音特征生成的目标语音,基于目标语音确定关键点序列;根据关键点序列和数字人形象数据合成图像数据,将图像数据和目标语音发送至显示设备200,并由显示设备200保存至本地。数字人控件以图像数据中第一帧(首个参数)或指定帧(指定参数)显示,或基于图像数据中首个参数或指定参数绘制图像显示,在接收到用户将焦点移动至数字人控件时,播放图像和目标语音。
在一些实施例中,在显示设备200显示数字人选择界面时,接收用户输入管理数字人的指令;
响应于用户输入管理数字人的指令,控制显示器260显示数字人管理界面,数字人管理界面包括至少一个数字人对应的删除控件、修改控件和禁用控件。
如果接收到用户输入选择删除控件的指令,则删除该数字人对应的相关数据。
如果接收到用户输入选择禁用控件的指令,则保留该数字人对应的相关数据并标记为禁用。
如果接收到用户输入选择修改控件的指令,控制显示器260显示修改识别码,通过终端300扫描修改识别码后,可在终端300重新上传用户视频或照片以更改数字人的形象,和/或,在终端300重新上传用户音频以更改数字人的语音特征,和/或,在终端300更改数字人的名称/唤醒词。
需要说明的是,在上述定制数字人的过程中,用户可以随时中途退出定制过程,终端300的目标应用程序实时向服务器记录缓存,记录用户的每一次数据。当用户中途进入,目标应用程序从服务器获取之前记录的数据,为用户继续操作提供便利,避免重新录制。如果用户不满意继续录制,也可随时选择重新录制。
本申请实施例对视频录制、音频录制及数字人命名的顺序不做限制。
在一些实施例中,数字人交互的示意图如图15所示。显示设备200展示二维码。终端300扫描二维码后,接收用户录制视频和音频。终端300将录制视频和音频发送至服务器400,服务器400通过人声克隆技术和图像预处理技术得到数字人的定制数据,定制数据包括数字人形象和语音特征。服务器400将数字人形象分别发送至终端300和显示设备200。显示设备200在用户界面上展示数字人形象。
在一些实施例中,显示设备200与终端300无需建立关联关系。图9的添加数字人界面还包括本机上传控件92。接收用户输入选择本机上传控件92的指令,启动显示设备200的摄像头,通过摄像头拍摄用户的图像数据,或者,显示本地视频和图片,由用户选择本地存储的图像数据,将图像数据上传至服务器400,由服务器400进行人脸点位检测及数字人形象数据生成处理,显示设备200基于服务器400发送的数字人形象数据展示数字人图像。同样,也可通过显示设备200的声音采集器采集环境音,显示设备200将环境音发送至服务器400,由服务器400进行环境音检测。通过显示设备200的声音采集器或控制装置100的语音采集功能也可以将用户读取目标文本音频发送至服务器400,由服务器400生成数字人语音特征。
本申请实施例对服务器400的一些功能做进一步的完善。服务器400执行以下步骤,如图16所示。
步骤S1601:接收显示设备200发送用户输入的语音数据;
显示设备200在启动数字人交互程序后,接收用户输入的语音数据。
在一些实施例中,启动数字人交互程序的步骤,包括:
显示设备200在显示用户界面时,接收用户输入的选中数字人应用对应控件的指令,其中,用户界面包括显示设备200安装应用对应的控件;
响应于用户输入的选中数字人应用对应控件的指令,显示如图6所示的数字人入口界面。
响应于用户输入选中自然对话控件62的指令,启动数字人交互程序,等待用户通过控制装置100输入语音数据或控制声音采集器开始采集用户的语音数据。自然对话包括闲聊模式,即用户可以与数字人聊天。
在一些实施例中,启动数字人交互程序的步骤,包括:
接收声音采集器采集的环境语音数据;
当检测到环境语音数据大于或等于预设音量或者环境语音数据声音信号时程大于或等于预设阈值时,判断环境语音数据是否包括数字人对应的唤醒词;
如果环境语音数据包括数字人对应的唤醒词,则启动数字人交互程序,控制声音采集器开始采集用户的语音数据,并在当前用户界面上浮层显示语音接收框;
如果环境语音数据不包括数字人对应的唤醒词,则不执行显示语音接收框的相关操作。
在一些实施例中,数字人交互程序与语音助手可同时安装在显示设备200中,接收用户将数字人交互程序设置为默认交互程序的指令,将数字人交互程序设置为默认交互程序;可将接收到的语音数据发送至数字人交互程序,由数字人交互程序将语音数据发送至服务器400。还可以由数字人交互程序接收语音数据并将语音数据发送至服务器400。
在一些实施例中,启动数字人交互程序后,接收用户按压控制装置100的语音键输入的语音数据。
其中,在用户开始按压控制装置100的语音键后开始采集语音数据,在用户停止按压控制装置100的语音键后结束采集语音数据。
在一些实施例中,启动数字人交互程序后,当前用户界面上浮层显示语音接收框时,控制声音采集器开始采集用户输入的语音数据。如果长时间未接收到语音数据,可关闭数字人交互程序并取消显示语音接收框。
在一些实施例中,显示设备200接收用户输入的语音数据,并将语音数据与用户选中数字人标识发送至服务器400。数字人标识用于表征数字人的形象、语音特征和名称等。
在一些实施例中,显示设备200接收到用户输入的语音数据后,将语音数据和显示设备200的设备标识发送至服务器400。服务器400从数据库中获取设备标识对应的数字人标识。需要说明的是,当显示设备200检测到用户更改显示设备200的数字人时,会将更改后的数字人标识发送至服务器400,以使服务器400将数据库中设备标识对应的数字人标识更改为修改后的数字人标识。本申请实施例无需用户每次都需要上传数字人标识,可直接从数据库中获取。
在一些实施例中,用户可以通过如图7所示的数字人选择界面显示的数字人图像选择想要使用的数字人。
在一些实施例中,每个创建的数字人都有唯一数字人名称,该数字人名称可被设置为唤醒词,可根据环境语音数据包括的唤醒词确定用户选择的数字人。
在一些实施例中,显示设备200接收用户输入的语音数据本质为流式音频数据。显示设备200在接收到语音数据后,将语音数据发送至声音处理模块,通过声音处理模块对其进行声学处理。声学处理包括声源定位、去噪及音质增强等。声源定位用于在多人说话的情况下增强或保留目标说话人的信号,抑制其他说话人的信号,对说话人进行跟踪和后续的语音定向拾取。去噪用于去除语音数据中的环境噪声等。音质增强用于在说话人声音强度较低时增加其声音强度。声学处理的目的在于获取语音数据中目标说话人比较干净清晰的声音。将声学处理后语音数据发送至服务器400。
在一些实施例中,显示设备200在接收到用户输入的语音数据后,直接发送至服务器400,由服务器400对语音数据进行声学处理,并将声学处理后的语音数据发送至语义服务。服务器400对接收到的语音数据进行语音识别、语义理解等处理后,将处理后的语音数据发送至显示设备200。
步骤S1602:识别语音数据对应的语音文本;
服务器400的语义服务在接收到语音数据后利用语音识别技术识别语音数据对应的语音文本。
步骤S1603:基于语音文本确定情感类型以及情感原因;
如图17所示,服务器400包括对话情感认知模块,对话情感认知模块从功能上分为多个子模块,包括基于文本的情感分类模块、情绪分类模块、情感原因抽取模块,基于常识知识图谱的常识知识获取模块,针对不同模态之间的情感消歧模块,融合社交常识的情感推理模块,最终输出综合决策后的情感类型及情感原因作为情感认知模块的结果,为下游的情感对话管理、以及情感表达提供依据和支撑。
在一些实施例中,情感类型包括一级情感。
在一些实施例中,情感类型包括一级情感和二级情感。一级情感为情感类别,二级情感为一级情感结合事件、心理状态或情感强烈程度的情感信息。
对话情感认知模块支持两种文本输入,可以输入其中一种文本,或者同时输入两种文本。
1)自然语言文本:服务器400语音识别引擎(ASR)识别语音数据得到的语音文本。对于用户输入的自然语言查询请求,识别出用户的情绪及导致这个情绪的原因或者事件。例如,对于输入查询query=“我感觉加班好累呀天天的”,识别结果为一级情感label={sad(难过)},二级情感sublabel={state_tired(状态-疲惫)},情绪原因causalSpan={加班好累}。
2)结构化文本数据:服务器400多模态识别引擎的结果。基于用户的手势、肢体动作、面部表情、声纹特征等图像、声音等多种模态识别的用户情绪和事件,以结构化文本的格式输入进系统。例如,健身场景下,用户跟练的动作正确率较低,输入为:emotion_label={sad},sublabel={state_tired},event={High error rate in sports movements}。
情感分类模块是对用户请求(语音文本)进行一级分类,得到一级情感。结合实际使用场景设定需要的情感类别。示例性的,通过分析大量的用户日志,将情感类别定义为开心、难过、生气、模糊四种。一级分类器是典型的NLP(Natural Language Processing,自然语言处理)分类任务,使用神经网络模型,例如RNN(Recurrent Neural Network,循环神经网络)、LSTM(Long Short-Term Memory,长短期记忆网络)等,或者基于预训练模型,例如Bert、Electra等,微调线性层和激活函数的权重,实现情感分类器。将语音文本输入一级分类器,得到一级情感。
在一些实施例中,情绪分类模块包括情感二级分类器,情感二级分类可以定义为独立的类别体系,作为普通的多分类任务实现。将语音文本输入情感二级分类器,得到二级情感(情绪)。
在一些实施例中,在情感一级分类的基础上,进一步挖掘对话中蕴含的信息,进行更细粒度的对话情绪识别,从心理状态的角度对用户请求进行二级分类。将二级分类与一级分类定义为一套层级化的情感体系,对每个一级情感进一步拆分为结合场景中的事件、心理状态和情感强烈程度的二级情感。如一级情感的“生气”可以细分为:生气-事件-堵车,生气-状态-恼怒等,“开心”可以细分为:开心-事件-恋爱,开心-状态-激动等,“模糊”可以细分为:模糊-状态-尴尬,模糊-状态-困惑等。
情绪类别参考一般分类并结合产品应用场景和任务需求设计即可。示例性的,定义36种二级情感。
采用层级化情感体系的优势在于,一级情感和二级情感之间存在递进关系,可以将一级情感分类的结果作为二级情感的先验知识加入到分类器中,从而提高细粒度情绪分类的准确性和鲁棒性。
如图18所示,二级情感分类器的模型包括Tokenizer分词器、Transformer编码器(Encoder编码层)和线性分类器。其中,Tokenizer分词器和Encoder编码层可使用预训练语言模型Bert。预先将一级情感的类别作为特殊token(标记)添加到的分词器词表中,使用带情感标注的数据进行训练,微调线性分类器的权重,得到二级情感分类器。
将一级情感与语音文本拼接后输入二级情感分类器中,得到二级情感。
示例性的,一级情感为生气,语音文本为“今天又堵车了,每到周一都这么闹心”,将拼接后数据[生气]今天又堵车了,每到周一都这么闹心输入二级情感分类器中,得到二级情感为生气-事件-堵车。
情感原因抽取模块可抽取对话中的情感原因文本片段。情感原因抽取可以通过一种序列标注任务来处理。示例性的,将需要进行标注的句子在分词并编码成词向量以后,输入模型计算。其中,模型采用的结构是12层Transformer Encoder和一层CRF(ConditionalRandom Field,条件随机场)层连接而成,上一层的输出作为下一层的输入,最后得到概率最大的标签序列作为预测结果。例如:查询(语音文本)=“我感觉加班好累呀天天的”,情感原因识别的结果为{“O”,“O”,“O”,“B-Causal”,“I-Causal”,“I-Causal”,“I-Causal”,“O”,“O”,“O”,“O”}。B-Causal表示情感原因的开始词,I-Causal表示情感原因的中间词,O表示非情感原因词。
在开源的大规模常识知识库ATOMIC基础上(该知识库涵盖了以事件为中心的社会方面有关的推理知识元组,并且用九种关系连接了各个实体,九种关系中既有事件,也有对某件事的心理状态),补充大量产品使用场景相关的事件三元组,作为情感对话系统的基础常识知识库。
在一些实施例中,如果将语音文本输入情感原因抽取模块后,未能得到抽取到情感原因,即语音文本中均是非情感原因词,则将语音文本输入常识知识获取模块。常识知识获取模块识别语音文本中的事件,查询事件在社交常识中的因果关系(事件三元组),该因果关系作为后续的综合推理、制定对话策略的依据。
在一些实施例中,基于常识库预训练一个知识推理模型,基于对话中识别到的事件,用推理模型进行不同关系下的表示,分别作为心理知识和事件知识,输入到情感分类模型或者共情回复模型中,作为外部知识增强下游模型的对话表示。
示例性的,语音文本“我今天考试不及格”本身是没有情感词的,很容易被情感分类模型忽略其中隐藏的情感,且无法抽取情感原因。但是借助常识图谱,【x考试不及格】的事件可以查询到(考试不及格,xReact,沮丧)、(考试不及格,xWant,得到安慰)等三元组,然后将这些元组信息给到综合推理子模块校正情感识别结果,或者通过预训练模型得到的知识表示给到情感分类模型,就可以正确的识别出“我今天考试不及格”这句话的情感和情感原因。
在一些实施例中,服务器400在接收到显示设备200发送的结构化文本数据后,由常识知识获取模块处理。
显示设备200在检测到触发特定事件后,会主动将该事件以结构化文本数据的方式发送至服务器400。例如:显示设备200检测到在健身场景中,用户跟练的动作正确率低于预设值,将健身和动作正确率低发送至服务器400。常识知识获取模块基于动作正确率的事件查找因果关系,可以确定情感类型和情感原因。
在一些实施例中,情感认知模块还包括基于非文本模态的情感模块,例如语音情感识别模块、图像情感识别模块和生理信号情感识别模块。
语音情感识别模块通过分析语音数据中的声调、音频特征和语音内容等,来识别说话者的情感状态。例如,通过分析语音数据中的音高、音量、语速等特征,可以判断说话者是愤怒、高兴、悲伤还是中性等。
图像情感识别模块通过分析人脸图像或视频中的面部表情特征,来识别人的情感状态。例如,通过分析面部表情中的眼睛、眉毛、嘴巴等部位的运动和变化,可以判断人的情感状态是愤怒、高兴、悲伤还是惊讶等。
生理信号情感识别模块通过分析人体的生理信号,如心率、皮肤电导、脑电波等,来识别人的情感状态。例如,通过监测心率的变化,可以判断人是紧张、放松还是兴奋等。
大部分情况下,不同模态情感识别模块得到的情感是一致的。但当情感不一致时,则需要情感消歧模块进行消歧处理。
情感消歧的步骤,包括:
获取第一模态情感识别模块的第一一级情感以及第二模态情感识别模块的第二一级情感;
判断第一一级情感与第二一级情感在极性上是否相反;其中,极性相反是指积极与消极的极性相反。
如果第一一级情感与第二一级情感在极性上相反,则比较第一模态情感识别模块与第二模态情感识别模块的结果优先级;
如果第一模态情感识别模块的结果优先级大于第二模态情感识别模块的结果优先级,则确定输出一级情感为第一一级情感;
如果第一模态情感识别模块的结果优先级小于第二模态情感识别模块的结果优先级,则确定输出一级情感为第二一级情感。
如果第一一级情感与第二一级情感在极性上不相反,将第一一级情感与第二一级情感进行情感融合,输出一级情感为融合后的情感。是以模态间的情感互补为主要策略
示例性的,语音文本是“你太棒了~”,情感分类为“开心”,图像情感识别模块识别到“翻白眼”,情感分类为“生气”,结合日常生活经验,往往这种情况下,表情才是反应的情感才是内心真实的想法,图像情感识别模块的结果优先级高于文本情感识别模块。因此,输出的一级情感为“生气”。如果某种模态的情感识别结果为“模糊”,其它模态则识别到“开心”情绪,可将“模糊”与“开心”进行情感融合,使其情感介于“模糊”与“开心”之间,可通过情感强度来表示。例如模糊情感强度为0,开心的情感强度为1(强烈),介于“模糊”与“开心”之间的情感强度为0.33(一般)或0.66(正常)。
情感推理模块相当于是整个情感认知模块的一个决策子模块,主要的作用是将前述各个子模块的结果进行汇总,结合多种模态对话中识别到的一级情感、二级情感及情感原因,以及社交常识图谱中检索到的事件元组信息,综合决策最终将要输出给下游模块的一级情感、二级情感及情感原因。
情感推理模块主要是整合信息,当情感分类和社交常识中的情感不一致时,进行决策。决策方法是对情感认知模块的子模块设置优先级。当出现情感不一致时,以优先级高的结果为准。示例性的,语音文本是“我今天考试不及格”,情感分类为“中性”,但是通过查询常识图谱,得到(考试不及格,xReact,沮丧),即从社交常识来看,这个时候的情感是“沮丧”,社交常识中的情感优先级高于文本情感优先级,将其映射到一级情感标签体系中,最终输出为:{用户情感类别:难过,二级情感:难过-事件-考试,情绪原因:考试不及格}。
在一些实施例中,语音文本包括当前语音文本。
在一些实施例中,语音文本包括当前语音文本与当前语音文本的前预设条数的历史语音文本及回复。例如,语音文本包括当前语音文本及当前语音文本的前两条的语音文本及回复。通过拼接的方式拼接在一起。
在一些实施例中,语音文本包括当前语音文本与当前语音文本的前预设时长的历史语音文本及回复。例如,语音文本包括当前语音文本及当前语音文本的前3s内的语音文本及回复。
在一些实施例中,语音文本包括当前语音文本与当前语音文本的前预设时长内前预设条数的历史语音文本及回复。例如,语音文本包括当前语音文本及当前语音文本的前3s内后三条的语音文本及回复。
步骤S1604:根据语音文本和情感类型确定回复情感和回复策略;
如图17所示,服务器400包括对话管理模块。对话管理(Dialog Management,DM)是任务型人机对话技术框架中非常重要的一个中控模块,一般包括对话状态追踪(DialogState Tracing,DST)和对话策略学习(Dialog Policy Learning,DPL)两个子模块。从现实生活中人与人的交往来看,一段令人感觉比较舒适的对话,除了对话内容互相感兴趣外,一定也是在情感有共鸣的,因此在情感对话系统中,同样也需要这样一个中控模块来承上启下:上游对接情感认知模块、语义理解引擎(指传统对话系统中的自然语言理解模块),下游启动相应的回复生成模块。
本申请除了跟踪用户意图、槽位等信息、决策系统的对话动作之外,还要考虑融入情感因素,同时为了对话更加个性化,我们还使用了用户画像特征和系统人设,最终决策出情感对话系统需要采取的情感状态和回复策略。情感对话管理仍是DST和DPL这两个子模块。
情感对话状态追踪:根据情感认知模块对用户的情感认知结果,结合对话语境和用户偏好,预测情感对话系统下一步要采用的情感状态。例如,设计兴奋、自豪、难过、担心、好奇、失望、自责等17种回复情感,系统的情感状态复用用户情感认知中的情感体系,包括一级情感、二级情感,另外还将决策依据作为状态原因进行跟踪。除了情感状态的分类任务外,因为上一模块显示的输出了可解释性很强的用户情感及原因等信息,所以在线上系统中还可以通过精心设计一系列逻辑规则,综合语义理解结果、业务查询结果以及用户性格特征来进行情感状态追踪。
②共情回复策略学习:对话系统的回复如果只是做到能够有情感的回复还远远达不到向用户传达“我理解你”的信号,因为有时候用户表达愤怒的时候,系统恰当的表达一定的生气情感是有助于共情的,但有时候共情并不完全依赖于情感,比如说提问就是心理学上常用的一种共情回复策略,心理咨询师往往通过的提问的方式与来访者沟通,一方面可以让来访者主动的披露更多真实想法,一方面也是在表达“我在倾听”、“我很关心你的经历”这样的信号。本申请可以根据系统下游NLG(Natural Language Generation,自然语言生成)模块的能力设计不同颗粒度的共情回复策略。示例性的,定义包括安慰、赞赏、建议、提问、反对等14种回复策略,并设计了一个分类任务计算采用每种策略的置信度。
在一些实施例中,根据语音文本和情感类型确定回复情感和回复策略的步骤,包括:
在映射表中查找与一级情感或二级情感对应的回复情感和回复策略,映射表包括一级情感、二级情感、回复情感和回复策略的映射关系。
映射表中映射关系为多对多,即用户情感有多种系统回复情感和回复策略作为候选。
示例性的,映射表如表1所示。
表1
一级情感 二级情感 回复情感 回复策略
开心 开心-事件-恋爱 兴奋 祝福
难过 难过-状态-疲惫 担心 安慰
生气 生气-事件-挨骂 自责 建议
模糊 中性 好奇 提问
如果二级情感为难过-状态-疲惫,则回复情感为担心,回复策略为安慰。如果一级情感为模糊,则回复情感为好奇,回复策略为提问。
在一些实施例中,在映射表中查找与一级情感或二级情感对应的回复情感、情感强度和回复策略,映射表包括一级情感、二级情感、回复情感、情感强度和回复策略的映射关系。
示例性的,映射表如表2所示。
表1
一级情感 二级情感 回复情感 情感强度 回复策略
开心 开心-事件-恋爱 兴奋 强烈 祝福
难过 难过-状态-疲惫 担心 正常 安慰
生气 生气-事件-挨骂 自责 强烈 建议
模糊 中性 好奇 一般 提问
在一些实施例中,根据语音文本和情感类型确定回复情感和回复策略的步骤,包括:
获取用户画像或系统人设,其中,用户画像是基于用户历史语音对话确定用户的性格标签,系统人设是用户设置的性格标签;
获取用户画像或系统人设对应的映射表;
在映射表中查找与一级情感或二级情感对应的回复情感和回复策略。
针对不同性格的人群设置不同的映射表。例如:通过查询用户画像或系统人设,得知其性格标签是“急性子、暴脾气”,急性子、暴脾气的映射表中不包含“好奇”等带探寻意思的回复情感,或者做出“生气”的移情反应,以及“提问”的回复策略,以免引起用户不耐烦,加重负面情绪。对话系统的人设设置为“温柔知性”或用户的性格标签是“乐天派、爱聊天”,在映射表中回复情感和回复策略会更多一些。
在一些实施例中,根据语音文本和情感类型确定回复情感和回复策略的步骤,包括:
获取用户画像或系统人设对应的性格标签;
在映射表中查找与性格标签,以及一级情感或二级情感对应的回复情感和回复策略。其中,映射表包括一级情感、二级情感、回复情感、回复策略及性格标签的映射关系。
示例性的,映射表如表3所示。
表3
一级情感 二级情感 回复情感 回复策略 性格标签
开心 开心-事件-恋爱 兴奋 祝福 温柔知性、急脾气…
开心 开心-事件-恋爱 兴奋 提问 温柔知性、乐天派…
难过 难过-状态-疲惫 担心 安慰 温柔知性、乐天派…
生气 生气-事件-挨骂 自责 建议 温柔知性、乐天派…
模糊 中性 好奇 提问 温柔知性、乐天派…
如果二级情感为开心-事件-恋爱、性格标签为乐天派,则回复情感为兴奋,回复策略为提问。如果二级情感为开心-事件-恋爱、性格标签为急脾气,则回复情感为兴奋,回复策略为祝福。
在一些实施例中,根据语音文本和情感类型确定回复情感和回复策略的步骤,包括:
获取业务需求标识;
理解用户的意图,例如看电影、听音乐、查天气、设备控制等。如果用户的业务需求被满足时,将业务需求标识设置为预设值,例如1。如果用户的业务需求无法满足时,将业务需求标识设置为非预设值,例如0。即业务需求标识为预设值表征用户的业务需求已完成,业务需求标识不为预设值表征用户的业务需求未完成。
判断业务需求标识是否为预设值;
如果业务需求标识为预设值,则在映射表中查找与一级情感或二级情感对应的回复情感和回复策略;
如果业务需求标识不为预设值,则确定回复情感为预设情感,回复策略为预设策略。预设情感是与业务需求未完成对应的回复情感,例如预设情感为难过、自责等。预设策略是与业务需求未完成对应的回复策略,例如预设策略是建议等。
示例性的,语音文本是“今天太开心了,你帮我订一束鲜花送到家里”,用户情感是“开心”,如果系统支持该技能并搜索到鲜花外卖的商家,则可以按照一般的回复情感映射,用“兴奋”或“高兴”的情感进行回复,但如果系统不支持鲜花外卖或者没有搜索到相关商家,那么回复情感就应该调整为“难过”、“自责”等向用户表达歉意。
在一些实施例中,根据语音文本和情感类型确定回复情感和回复策略的步骤,包括:
在映射表中查找与一级情感或二级情感对应的待选回复情感和待选回复策略;
确定待选回复情感中与上次语音文本对应回复情感最相近的回复情感为本次语音文本的回复情感;
确定本次语音文本的回复情感对应的回复策略为本次语音文本的回复策略。
在与用户进行连续会话的过程中,需要控制回复情感的转变速度,回复情感则不能从候选集中随机选择,以防带给用户“喜怒无常”的感觉,应遵循预先设计好的情感状态转移规则,使用上一轮相似的情绪或模糊情感将状态过渡一下。
示例性的,上次语音文本对应回复情感为高兴,待选回复情感有难过和模糊。则应选择模糊作为本次回复情感。
在一些实施例中,根据语音文本和情感类型确定回复情感和回复策略的步骤,包括:
获取用户画像或系统人设;
如果用户画像或系统人设为目标性格,在映射表中查找与一级情感或二级情感对应的待选回复情感和待选回复策略;目标性格可以指成熟稳重等不喜形于色的性格。
确定待选回复情感中与上次语音文本对应回复情感最相近的回复情感为本次语音文本的回复情感;
确定本次语音文本的回复情感对应的回复策略为本次语音文本的回复策略。
在一些实施例中,根据语音文本和情感类型确定回复情感和回复策略的步骤,包括:
将语音文本及一级情感输入第一线性层分类器,得到回复情感;
将语音文本及二级情感输入第二线性层分类器,得到回复策略。
第一线性层分类器与第二线性层分类器的结构如图18所示。
通过分类任务确定回复情感:
输入:input={[CLS][Emo1]q1[SEP][rEmo1]r1[SEP][Emo2]q2[SEP]},[CLS]、[SEP]均为词表中的特殊token,[CLS]对应的输出向量作为整个上下文的语义表示,输入到线性层训练分类任务,[SEP]则是两句话的分隔符,Emoi和qi表示一级情感和文本输入,rEmoi和ri表示系统回复情感和回复语,输入是可变长序列。当用户第一次请求,input={[CLS][Emo1]q1[SEP]},当用户与系统已经进行了一次对话,输入则变为input={[CLS][Emo1]q1[SEP][rEmo1]r1[SEP][Emo2]q2[SEP]}。如:{[cls][生气]今天又堵车了,每到周一都这么闹心[SEP][生气]对啊,是我也会生气的[SEP][难过]我现在好累呀[SEP]}。
输出:下一轮系统将要回复的情感类别,如[同情]。
通过分类任务确定回复策略:
输入为:[CLS]当前对话的用户请求[SEP]二级情感[SEP]原因是否已知[SEP]。例如,input={[CLS]今天又堵车了,每到周一都这么闹心[SEP]生气-事件-堵车[SEP]是[SEP]}
输出:系统回复策略。
步骤S1605:将语音文本、情感类型、情感原因、回复情感和回复策略输入到生成式预训练Transformer模型,得到播报文本;
如图17所示,服务器400包括情感表达模块。情感表达模块通过生成具有情感色彩的对话回复文本,合成带情感的语音音频、控制数字人的面部表情,使得对话系统像人一样具备表达情感的能力。其中,共情回复文本生成是一个典型的NLG任务,具体来说,就是基于对话管理模块决策出的系统情感状态、共情回复策略,以及情感认知模块识别到的情感类型及情感原因,生成有针对性的回复。与传统对话系统中的NLG模块最大的不同在于,共情回复生成不仅要关注对话内容的相关性,同时还注重沟通策略、情感状态,并且考虑系统人设。
文本模态的共情回复生成与传统对话系统中的自然语言生成任务非常相似,效果最好的NLG是基于GPT(Generative Pre-Trained Transformer,生成式预训练Transformer模型)结构的预训练模型在对话生成数据集上微调实现,或者是在GPT-3.5、GPT-4等大模型上通过任务提示词实现。由于大模型的情感表达能力较弱、且对提示词过于敏感,本申请实施例采用预训练模型GPT-2上微调的方法,但是模型的输入除了常规的对话文本外,还将从情感认知模块得到的二级情感user_emotion_sublabel、情感原因emo_cause_span,从对话管理模块得到的回复情感reply_emotion_label和回复策略empathy_reply_policy,通过[SEP]拼接到对话文本{tok1 tok2 tok3 tok4}之后,即input={[CLS]tok1 tok2 tok3tok4[SEP]user_emotion_sublab el[SEP]emo_cause_span[SEP]reply_emotion_label[SEP]empathy_reply_policy[SEP]},然后送入GPT-2结构的模型中进行训练。其中,GPT是自回归机制,预测时逐字生成,input相当于为这段文本起个头,然后基于已有的序列预测下一个字,直到预测出终止符或达到预设的最大长度。
将语音文本、二级情感、情感原因、回复情感和回复策略输入到生成式预训练Transformer模型,得到播报文本。
在一些实施例中,在确定情感类型以及情感原因后,判断情感类型及情感原因是否是目标情感类型及目标情感原因;目标情感类型和目标情感原因是指根据用户日志确定出现频率较高(高于阈值)的情感类型及情感原因。
如果情感类型及情感原因是目标情感类型及目标情感原因,在回复模板中获取目标情感类型及目标情感原因对应的播报文本;回复模板中的播报文本为人工创建且会定期更新。
如果情感类型及情感原因不是目标情感类型及目标情感原因,执行根据所述语音文本和所述情感类型确定回复情感和回复策略的步骤。
本申请实施例节省共情回复生成模型推理耗时的同时,对话系统回复也更加安全可控。
本申请实施例在传统对话机器人对充分理解用户意图的能力基础上,同时还可以精准定位用户的情感及产生这种情感的原因,借助多模态的情感特征并加以融合,依据常识推理出符合逻辑的回复情感并形成恰当的回复,提高对话的情感相关性。
步骤S1606:根据播报文本合成播报语音;
在一些实施例中,根据预设语音特征和播报文本合成播报语音。
在一些实施例中,根据数字人标识对应的语音特征和播报文本合成播报语音。
其中,将播报文本输入训练好的数字人标识对应的人声克隆模型中,得到带有数字人音色的播报语音。播报语音为音频帧序列。
在一些实施例中,根据数字人标识对应的语音特征、回复情感和播报文本合成有情感色彩的播报语音。
在一些实施例中,在合成播报语音后,根据播报语音确定关键点序列;
其中,对播报语音进行去噪等数据预处理,得到语音特征。将语音特征输入编码器,得到高层语义特征,将高层语义特征输入解码器,解码器结合真实关节点序列生成预测的关节点序列,生成数字人肢体动作。
根据关键点序列和数字人形象数据合成数字人图像数据。
在一些实施例中,在合成播报语音后,根据播报文本及回复情感确定关键点序列;
根据关键点序列和数字人形象数据合成数字人图像数据。
在一些实施例中,在合成播报语音后,根据播报文本及回复情感确定数字人参数序列,数字人参数序列为数字人形象、唇形、表情及动作等参数序列。根据数字人参数序列及数字人基础模型合成数字人图像数据。
在一些实施例中,数字人图像数据为数字人图像帧序列。数字人数据为所有图像帧序列和音频帧序列。
在一些实施例中,数字人数据包括基础模型(预处理后图像或卡通图像)、数字人参数序列和音频帧序列。
步骤S1607:将播报语音发送至显示设备,以使显示设备播放播报语音。
在一些实施例中,服务器400将播报语音发送至显示设备200,显示设备200播放播报语音。
在一些实施例中,数字人图像数据为数字人图像帧序列。推流中控服务依靠直播通道将数字人图像帧序列和播报语音编码后推送给直播间完成数字人推流。
在一些实施例中,直播数据推流过程如图19所示。终端300向直播通道发送建立直播通道的请求,以及创建直播通道房间并将直播通道房间发送至推流中控服务。推流中控服务将驱动图像帧序列和播报语音的直播数据以直播拉流的方式通过直播通道发送至显示设备200并由显示设备200播放。
推流中控服务是数字人的驱动展示和终端呈现的重要部分,负责虚拟形象的驱动和展示,体现整个数字人的定制和驱动效果。
推流中控服务接收到显示设备请求有以下三种:1)restart(重新开始),推流中控服务打断当前的视频播放,重新申请房间实例,验证定制形象有效性和敏感性,记录实例状态,创建直播房间并发布广播,完成直播准备动作;2)query(查询),推流中控服务异步处理请求内容,执行语音合成、关键点预测、图像合成、直播间推流等动作,直至图像帧组和音频帧组推送完毕,完成直播播放,销毁房间,回收实例;3)stop(停止),推流中控服务打断当前的视频播放,销毁房间,回收实例。
为了保证数字人驱动的实时性,借用直播技术,将接收到的请求内容实时进行数字人合成数据并推流到直播间,实现播放端的即时播放。
此外,推流中控服务使用实例池机制。针对同一验证信息申请唯一实例使用。实例池会自动回收使用结束的实例,以提供给其他设备使用。发生异常或超长时间未回收的实例会自动被实例池发现并销毁重新创建新实例,保证实例池的健康实例数量。
显示设备200将接收到编码后的数字人图像帧序列和播报语音注入解码器进行解码,并同步播放解码后的图像帧和播报语音,即数字人的图像及语音。
在一些实施例中,数字人图像数据包括数字人参数和基础模型。服务器400将数字人图像数据及播报语音发送至显示设备200,显示设备200基于数字人图像数据绘制和渲染数字人图像,在播放播报语音时,同步显示绘制的数字人图像。
在一些实施例中,服务器400在识别所述语音数据后,除了数字人数据,还下发关于语音数据中的请求用户界面数据或媒资数据等。显示设备200显示服务器400下发的用户界面数据并在指定位置显示数字人数据。示例性的,当用户输入“今天天气怎么样”时,显示设备200的用户界面如图20所示。
在一些实施例中,数字人图像显示在用户界面层。
在一些实施例中,数字人图像显示在用户界面层上层浮层显示。
在一些实施例中,用户界面层位于视频层的上层。数字人图像显示在视频层的预设区域,在用户界面层绘制目标区域,目标区域为透明状态,预设区域与目标区域的位置重合,以使视频层的数字人图像可以显示给用户。
在一些实施例中,数字人交互时序图如图21所示。显示设备200在接收到语音数据后,将语音数据发送至语义服务,语义服务将语义结果发送至显示设备200。显示设备200向推流中控服务发起请求,推流中控服务响应后通过语音合成、关键点预测及图像合成服务等生成图像合成数据,并推送图像合成数据和音频数据至直播间。显示设备200可从直播间获取直播数据。推送列队为空时,推流中控服务自动结束推流并退出直播间。显示设备200检测无动作超时,结束直播,退出直播间。
本申请实施例支撑向企业用户、个人用户提供小样本、低资耗的通用数字人高保真定制能力,并提供基于复刻数字人形象、声音的新式拟人化智能交互系统。数字人形象包括2D真人形象、2D卡通形象及3D类真人形象等。用户通过应用程序扫码进入终端定制流程,通过采集用户的秒级视频信息/自拍图片信息定制专属数字人形象,通过采集用户1~10句音频数据定制专属声音,实现专属数字人声音的定制。定制完成后,通过显示设备200可进行形象及语音的选择、切换,使用选择形象、音色提供基于语音、文本的交互。交互过程中显示设备200收入用户请求,由基于语义理解、语音分析、共情理解等的感知、认知算法服务完成回复语(播报文本)生成,回复语通过数字人形象、声音以视频、音频形式输出,音视频数据通过语音合成、人脸驱动、图像生成等算法服务产生,并由推流中控服务协调转发至目标显示设备,完成一次交互。
本申请实施例采用深度学习技术,准确识别用户的情感,围绕心理状态和主题事件识别出细粒度情绪,以及用户情绪背后的原因,同时系统采用基于积极倾听和适当提问的策略,生成有针对性的、情感逻辑合理的系统回复,为用户提供个性化、有温度的交互体验。
本申请实施例对服务器400的一些功能做进一步的完善。服务器400执行以下步骤,如图22所示。
步骤S2201:接收显示设备200发送用户输入的语音数据;
步骤S2202:获取用户图像数据,以及根据语音数据确定播报文本;
服务器400设置有形象数据库。形象数据库中存储有用户上传的形象数据,数字人标识、用户账号或显示设备200的设备标识可与形象数据对应存储。可根据显示设备200上传的数字人标识、用户账号或显示设备200的设备标识获取与其对应的形象数据。
在一些实施例中,形象数据为人脸单帧图像,可直接获取用户图像数据(人脸单帧图像)。人脸单帧图像可由用户直接上传,人脸单帧图像还可以由用户上传的图片经过人像抠图、人脸增强等处理后的图片,人脸单帧图像还可以由用户上传的视频数据经过目标图像帧选取、人像抠图、人脸增强等处理的图片。人脸单帧图像还可以由用户上传的图片风格化(卡通化)的图片。
在一些实施例中,形象数据为包含人脸的视频数据,获取用户图像数据的步骤,包括:
获取视频数据;
从视频数据中选取目标图像帧,其中,目标图像帧的人像头部位置在图像中间,目标图像帧中人像眼睛为睁开状态,目标图像帧面部轮廓与五官完整。目标图像帧为用户图像数据。
服务器400的语义服务在接收到语音数据后利用语音识别技术识别语音数据对应的文本内容。对文本内容进行语义理解、业务分发、垂域解析和文本生成等处理,得到播报文本。
步骤S2203:将用户图像数据映射到三维空间,得到形象系数;
用户图像数据为单帧人脸图像。将单帧人脸图像映射到3D BS(Blend Shape,混合变形)维度。
示例性的,3D BS系数包括α(形象系数)、β(表情系数)、γ(嘴部动作系数)和θ(头部动作系数)四部分。其中,
α∈R100,用100组BS系数控制任务身份标识,调节α可控制人脸形状,如男女、胖瘦(参考Flame模型)。
β∈R100,用100组BS系数控制表情动作,调节β可控制人脸表情,如闭左眼、挤眉毛等(参考Flame设置)。
γ∈R20,用20组嘴巴相关BS控制说话相关嘴部动作,调节γ可调节发音唇形,如图23所示,左上第一幅图为a音素口型。
θ∈R6,用6组参数头部动作,调节θ可调节头部抬头,低头,扭头等头部动作。
本申请实施例利用226组3D BS系数[α,β,γ,θ]刻画不同说话人(α)不同表情(β)说不同语音内容(γ),不同头部动作(θ)3D mesh(网格)信息。
图片到三维空间映射可采用3DMM(3D Morphable models,三维可变形人脸模型)、EMOCA(Emotion Driven Monocular Face Capture and Animation,情绪驱动的单目人脸捕捉和动画)等技术,主要功能将单帧RGB图片映射到3D系数(形象系数和表情系数),再通过BS基组模板将3D系数在3维空间重建成mesh(网格)结构。
以EMOCA算法为例,输入为单帧人脸图像,输出为形象系数α0和表情系数β0。其中,β0为中性表情对应的系数。其中,如果单帧人脸图像中用户的表情不为中性表情,则需要将其调整至中性表情,即表情系数设置为β0
步骤S2204:确定情感系数序列;
数字人表情通过表情系数β实现控制。
在一些实施例中,确定情感系数序列的步骤,包括:
确定播报文本对应的情感变化序列;
在一些实施例中,预置情感变化序列的数据库,例如将人表情分为惊讶、悲伤、愤怒、恐惧、快乐、厌恶、中性七种情感,每种情感以一组情感变化序列{β0β1……βn……β1β0}表示,为满足情感变化连续性,情感序列从β0开始,到β0结束。在确定播报文本对应的情感系数序列之前,根据用户输入语音数据确定播报文本对应的情感类型(回复情感)。本申请上文已对确定回复情感的步骤进行详细说明,在此不再赘述。在确定播报文本对应的情感类型之后,直接从数据库中查找该情感类型对应的情感变化序列。
在一些实施例中,确定播报文本对应的情感变化序列的步骤,包括:
将语音数据输入语音情感分类模型中,得到情感特征向量;
将情感特征向量输入映射模型中,得到情感变化序列。
语音数据包含用户情感信息,通过语音情感分类模型或者语音合成前情感嵌入标签可获得情感特征向量E,实现E对β控制,需要训练一个从情感特征向量E到β映射模型,此模型可用MLP(Multilayer Perceptron,多层感应机)层架构或者Transformer架构。通过情感标签来控制β带有情感色彩。情感变化序列{β0β1……βn……β1β0}。
需要补充的是,情感特征向量到β映射模型训练方法如下:
1)数据准备,挑选带有表演天赋的一名模特,录制中性语料6h,喜怒哀惊等六种表情各1h,情感数据采用平行语料。
2)数据处理:通过3DMM方式或EMOCA模型,逐帧获取表情系数β,不同情感状态平行数据用DTW(Dynamic Time Warping,动态时间调整)算法进行时间维度对齐。
3)情感标签预设:用one-hot方式设置情感标签,用[7]维度向量表示中性和其它六种情感,如开心用[0,1,0,0,0,0,0]表示,中性用[1,0,0,0,0,0,0]表示。
4)映射模型:采用Transformer结构,可借鉴语音合成模型Fastspeech结构。
5)训练:输入中性β+情感标签,用情感标签对应情感β作为label(标签),Loss(损失)采用labeβ与输出β求MSE(均方误差)方式,和情感判别器控制。
在交互调用过程中,需要判断播报语音长度T,对某一情感序列进行跳帧抽取或者线性插值,以满足抽取序列帧βselect长度=T。最终得到的情感系数序列为βT={β0β1……βT}。
根据播报文本的文本长度确定播报语音的时长;
基于情感变化序列及时长确定情感系数序列。
基于情感变化序列及时长确定情感系数序列的步骤,包括:
判断播报语音的时长是否小于或等于目标值,其中,目标值为情感变化序列显示的总时长;
如果播报语音的时长小于或等于目标值,则在情感变化序列中移除目标数量的情感系数,以获取情感系数序列,其中,目标数量由所述时长、目标值和帧率确定;
目标数量=|播报语音时长-目标值|×帧率;
可在情感变化序列中随机移除目标数量的情感系数,也可在情感变化序列中按照固定间隔移除目标数量的情感系数。
示例性的,目标值为2s,播报语音为1.6s,帧率为25fps,情感变化序列包括50个β系数。目标数量=|播报语音时长-目标值|×帧率=|2-1.6|×25=10。可在50个β系数随机移除10个,也可每隔5个β系数移除1个β系数,剩余40个β系数为情感系数序列。
如果播报语音的时长大于目标值,则在情感变化序列中插入目标数量的情感系数,以获取情感系数序列。
可在情感变化序列中随机位置增加一个与前一个(或后一个)情感系数相同的系数,也可在情感变化序列中固定位置或随机位置增加一个该位置所在前后位置对应系数的中间数值。
示例性的,目标值为2s,播报语音为2.4s,帧率为25fps,情感变化序列包括50个β系数。目标数量=|播报语音时长-目标值|×帧率=|2-2.4|×25=10。可在50个β系数随机增加10个,也可每隔5个β系数增加1个β系数,剩余60个β系数为情感系数序列。
在一些实施例中,如果播报语音的时长大于目标值,判断播报语音的时长是否小于或等于极限值,所述极限值是情感系数序列支持的最长时间;
如果播报语音的时长小于或等于极限值,在情感变化序列中插入目标数量的情感系数,以获取情感系数序列。
如果播报语音的时长大于极限值,根据播报语音的时长确定情感系数序列,确定的方式是从情感变化序列第一个情感系数开始依次选取,在选取到最后一个情感系数后,重新开始从第一个情感系数继续依次选取,直至达到播报语音的时长。
示例性的,目标值为3s,播报语音为4s,帧率为25fps,情感变化序列包括50个β系数。情感系数序列为50+50个β系数,即情感变化序列+情感变化序列。
在一些实施例中,确定情感系数序列的步骤,包括:
将语音数据输入语音情感分类模型中,得到情感特征向量;
将情感特征向量和播报语音的时长输入映射模型中,得到情感系数序列。
通过语音情感分类模型或者语音合成前情感嵌入标签可获得情感特征向量E,实现E对β控制,需要训练一个从情感特征向量E和播报语音时长到β映射模型,获得与播报时长对应的βT={β0β1……βT}。此模型可用MLP层架构或者Transformer架构。通过情感标签来控制β带有情感色彩。在训练映射模型的5)训练的输入增加时长标签。
步骤S2205:基于播报文本、形象系数和情感系数序列生成数字人图像数据;
基于播报文本、形象系数和情感系数序列生成数字人图像数据的步骤,包括:
将播报文本输入语音驱动模型,得到嘴部动作系数序列;
本申请实施例采用音素驱动生成3D BS系数中跟说话内容相关嘴部动作系数γ。深度学习网络采用语音合成网络架构FastSpeech2、,输入为文本内容,输出为γT系数序列{γ0γ1……γT}
1)音素时间维度对齐:音素区间ct∈{"pad","/","AA0"…"x","z","zh"},共67个英文音素,120个中文音素加4个特殊符号(空格、静音、padding、韵律边界),总共191个。将一段语音数据T长度,16000采样率,首先处理成MFCC(Mel Frequency CepstrumCoefficient,梅尔频率倒谱系数),时间窗口为200,维度为39,得到MFCC[T*80,39]维度,将语音对应文本离散成音素列表Phonemes如“你好”->{eos n i2 h aa3 uu3 eos}。然后将MFCC[T*80,39]及对应的Phonemes基于TDNN(Time Delay Neural Network,时延神经网络)的维特比强制对齐得到对应Phonemes的时间列表Durations{n1,n2…nm},m与Phonemes长度相同,n1+n2+…nm=T*80。
2)3D BSγ空间对齐:采集Mesh数据帧率为25Fps,首先标准化Mesh点面结构,然后对mesh结构在空间维度进行对齐,对齐方式为首先将mesh按一定比例缩放到一定值域的空间,然后挑选一个标准人脸(眼睛鼻子中轴线在x=0),所有关键点通过旋转和平移做到与标准人脸上的眼角,鼻梁上的8组锚点点最大重叠,最终获得空间对齐后的Mesh参数BS[T*25,226](226包含α100,β100,γ20,θ6),选取γ作为训练Label。
3)音画对齐:通过以上两步,获得Phonemes({eos n i2 h aa3 uu3 eos})Durations{n1,n2…nm}(n1+n2+…nm=T*80)及BS[T*25,20]。进入模型前需要对80*T和25*T在时间维度上进行对齐,可采用双线性差值法将25*T*20关键点映射到80*T*20BS实现对齐,得到模型输入所需的输入Input{Phonemes,Durations,BS}。
4)BS驱动:音素驱动模型选用基于Transformer结构的FastSpeech模型,训练数据通过四维采集的数据提取Input{Phonemes,Durations,BS}。输入数据为:Phonemes{ph1,ph2...phm},Durations{n1,n2…nm}和BS[T*80,20],输出为Delta[T*80,20]维度BS相对于reference BS偏移量。Loss设置为Delta+reference与BS求算MSE。
5)通过训练得到语音驱动模型。
在输入播报文本,通过音素库找到播报文本对应的音素序列Phoneme和时间列表Duration,将其输入到语音驱动模型,得到对应语音片段的人脸关键点偏移量,即嘴部动作系数序列γT={γ0γ1……γT}。
基于形象系数、情感系数序列和嘴部动作系数序列生成数字人图像数据。
在一些实施例中,数字人图像数据包括形象系数、情感系数序列、嘴部动作系数序列及用户图像数据。
在一些实施例中,基于形象系数、情感系数序列和嘴部动作系数序列生成数字人图像数据的步骤,包括:
将用户图像数据输入编码器,得到编码特征;
将形象系数、情感系数序列、嘴部动作系数序列和编码特征输入图像生成网络,得到驱动图像帧序列,即数字人图像数据。
如图24所示,在获取形象系数/序列αT={α0α0……α0}、情感系数序列βT={β0β1……βT}和嘴部动作系数序列γT={γ0γ1……γT}后,将用户图像数据通过编码器得到编码特征F0,其中,编码器可选用VGG(Visual Geometry Group,视觉几何小组)编码器。将F0,αT,βT和γT输给图像生成网络,得到驱动图像帧序列。其中,图像生成网络可选用Face-vid2vid网络或StyleGan(风格生成对抗网络)系列网络的Generator(生成器)层。
在一些实施例中,αT={α0α0……α0}、βT={β0β1……βT}和γT={γ0γ1……γT}加和,得到最终BS参数,基于最终BS参数生成驱动图像帧序列。
在一些实施例中,基于播报文本、形象系数和情感系数序列生成数字人图像数据的步骤,包括:
确定头部动作系数序列;
在3D空间,头动通过θ系数控制。
确定头部动作系数序列的步骤,包括:
确定播报文本对应的头部动作变化序列;
预置头部动作数据库,头部动作包括点头(上下)、摇头(左右摇动)及扭头(左右晃动)等动作。头部动作数据库包括至少一组头部动作变化序列,头部动作变化序列包括至少一个动作对应的序列。每组头部动作序列可由{θ0θ1……θn……θ1θ0}表示。可随机或指定选取头部动作数据库中一组头部动作变化序列。
在交互调用过程中,需要判断播报语音长度T,对某一头部动作变化序列进行跳帧抽取或者线性插值,以满足抽取序列帧θselect长度=T。最终得到的头部动作系数序列为θT={θ0θ1……θT}。
根据播报文本的文本长度确定播报语音的时长;
基于头部动作变化序列及所述时长确定头部动作系数序列。
基于头部动作变化序列及所述时长确定头部动作系数序列的步骤,包括:
判断播报语音的时长是否小于或等于目标值,其中,目标值为头部动作系数序列显示的总时长;
如果播报语音的时长小于或等于目标值,则在头部动作变化序列中移除目标数量的情感系数,以获取头部动作系数序列,其中,目标数量由所述时长、目标值和帧率确定;
目标数量=|播报语音时长-目标值|×帧率;
可在头部动作变化序列中随机移除目标数量的头部动作系数,也可在头部动作变化序列中按照固定间隔移除目标数量的头部动作系数。
示例性的,目标值为2s,播报语音为1.6s,帧率为25fps,头部动作变化序列包括50个θ系数。目标数量=|播报语音时长-目标值|×帧率=|2-1.6|×25=10。可在50个θ系数随机移除10个,也可每隔5个θ系数移除1个θ系数,剩余40个θ系数为头部动作系数序列。
如果播报语音的时长大于目标值,则在头部动作变化序列中插入目标数量的头部动作系数,以获取头部动作系数序列。
可在头部动作变化序列中随机位置增加一个与前一个(或后一个)头部动作系数相同的系数,也可在头部动作变化序列中固定位置或随机位置增加一个该位置所在前后位置对应系数的中间数值。
示例性的,目标值为2s,播报语音为2.4s,帧率为25fps,头部动作变化序列包括50个θ系数。目标数量=|播报语音时长-目标值|×帧率=|2-2.4|×25=10。可在50个θ系数随机增加10个,也可每隔5个θ系数增加1个θ系数,剩余60个θ系数为头部动作系数序列。
在一些实施例中,如果播报语音的时长大于目标值,判断播报语音的时长是否小于或等于极限值,所述极限值是头部动作系数序列支持的最长时间;
如果播报语音的时长小于或等于极限值,在头部动作变化序列中插入目标数量的头部动作系数,以获取头部动作系数序列。
如果播报语音的时长大于极限值,根据播报语音的时长确定头部动作系数序列,确定的方式是从头部动作变化序列第一个头部动作系数开始依次选取,在选取到最后一个头部动作系数后,重新开始从第一个头部动作系数继续依次选取,直至达到播报语音的时长。
示例性的,目标值为3s,播报语音为4s,帧率为25fps,头部动作变化序列包括50个θ系数。头部动作系数序列为50+50个θ系数,即头部动作变化序列+头部动作变化序列。也可随机选取两组不同的头部动作变化序列。
基于播报文本、形象系数、情感系数序列和头部动作系数序列生成数字人图像数据。
基于播报文本、形象系数、情感系数序列和头部动作系数序列生成数字人图像数据的步骤,包括:
将播报文本输入语音驱动模型,得到嘴部动作系数序列;
基于形象系数、情感系数序列、嘴部动作系数序列和头部动作系数序列生成数字人图像数据。
在一些实施例中,数字人图像数据包括形象系数、情感系数序列、嘴部动作系数序列、头部动作系数序列和用户图像数据。
在一些实施例中,基于形象系数、情感系数序列、嘴部动作系数序列和头部动作系数序列生成数字人图像数据的步骤,包括:
将用户图像数据输入编码器,得到编码特征;
将形象系数、情感系数序列、嘴部动作系数序列、头部动作系数序列和编码特征输入图像生成网络,得到驱动图像帧序列,即数字人图像数据。
如图24所示,在获取形象系数/序列αT={α0α0……α0}、情感系数序列βT={β0β1……βT}、嘴部动作系数序列γT={γ0γ1……γT}、头部动作系数序列θT={θ0θ1……θT}后,将用户图像数据通过编码器得到编码特征F0,将F0,αT,βT,γT,θT输给图像生成网络,得到驱动图像帧序列。
在一些实施例中,αT={α0α0……α0}、βT={β0β1……βT}、γT={γ0γ1……γT}和θT={θ0θ1……θT}加和,得到最终BS参数,基于最终BS参数生成驱动图像帧序列。
步骤S2206:基于播报文本生成播报语音;
在一些实施例中,根据预置语音特征和播报文本合成播报语音。
在一些实施例中,根据数字人标识对应的语音特征和播报文本合成播报语音;
步骤S2207:将播报语音和数字人图像数据发送至显示设备200,以使显示设备200播放播报语音并基于数字人图像数据显示数字人图像。
在一些实施例中,数字人图像数据包括驱动图像帧序列,播放驱动图像帧和播报语音。
在一些实施例中,数字人图像数据包括形象系数、情感系数序列、嘴部动作系数序列、头部动作系数序列和用户图像数据。显示设备200将用户图像数据输入编码器,得到编码特征;将形象系数、情感系数序列、嘴部动作系数序列、头部动作系数序列和编码特征输入图像生成网络,得到驱动图像帧序列,播放驱动图像帧和播报语音。
本申请实施例提供以三维拓扑结构为中间态的数字人头动和情感控制方法:首先获取用户的单帧图片,利用3D重建算法将图片映射到3D BS参数空间,在BS空间可实现对头动和表情的可控调节,再利用图像生成深度学习架构,训练得到从BS空间到最终图像的映射模型。最终实现对单帧图像高拟人化的情感和头动编辑,有效增加数字人的表达能力。
本申请实施例对服务器400的一些功能做进一步的完善。服务器400执行以下步骤,如图25所示。
步骤S2501:接收显示设备200发送用户输入的语音数据;
步骤S2502:获取用户图像数据及与用户图像数据对应的原始关键点数据,以及根据语音数据确定播报文本;
其中,原始关键点数据可以与用户图像数据一同存储在形象数据库中,原始关键点数据为3D关键点数据。
采用人脸关键点检测算法MediaPipe Face Mesh,该算法通过机器学习算法获得人脸表面和深度,通过468关键点绘制人脸mesh结构。
本申请实施例选取468关键点中跟表情和发音等面部动作强相关的153关键点,具体包括:脸部轮廓(36),嘴巴(40),眼睛(30),眉毛(22),鼻子(25),如图26所示。
步骤S2503:基于语音数据确定回复情感;
上文已经详细介绍回复情感的确定方法,在此不在赘述。
步骤S2504:将播报文本及回复情感输入情感映射语音驱动模型,得到情感语音关键点序列,其中,情感语音关键点序列为与表情及发音相关关键点的序列;
以中性、高兴、悲伤、愤怒、惊讶、轻蔑、恐惧7种情感为例,情感映射语音驱动模型的数据处理和训练过程如下:
1)录制平行语料,说话人在不同情感状态下说同一句话,录制4小时中性语料(1小时平行语料),1小时*6种情感状态,总计10小时训练数据。
2)平行语料对齐,同一说话人在不同情感状态下,发音长短存在较大差异,本申请通过动态时间规整算法(DTW),在语音层面对平行语料进行对齐。对齐后的数据在同一音素状态下对应不同情感状态的视素。
3)通过2)处理后的平行语料对包含:中性状态关键点Fls[N,153*3]、情感状态关键点Flse[N,153*3]、情感状态标签Labels[N,7],其中,N为对齐后序列长度,情感状态标签采用one-hot方式,所以用7维特征向量代表六种情感+中性情感。
4)模型采用Fastspeech(语音合成模型)Encoder(编码器),输入为Fls[N,153*3]和Labels[N,7],Labels[N,7]通过MLP层活动Lhidden[N,153*3]。
⑤Lhidden[N,153*3]与Fls[N,153*3]拼接到一起通过Fastspeech Encoder层,获得输出获得输出Out[N153*3]。
⑥Out[N,153*3]与Flse[N,153*3]求算MSE LOSS,反向传播调整模型参数,直到训练过程达到收敛。
将播报文本及回复情感输入情感映射语音驱动模型,得到情感语音关键点序列。
在一些实施例中,基于语音数据确定回复情感及情感强度;
上文已经详细介绍情感强度的确定方法,在此不在赘述。
将播报文本、回复情感及情感强度输入情感映射语音驱动模型,得到情感语音关键点序列。
在情感映射语音驱动模型训练过程使用录制数据,数据录制过程中要求模特用3中不同强度状态表达同一情感,例如高兴情感可分为:一般,正常,强烈三种状态,在训练过程中会以参数形式乘在情感编码模型潜空间上,如一般:0.33正常:066强烈:1。训练后的模型可实现将播报文本、回复情感及情感强度输入情感映射语音驱动模型,得到情感语音关键点序列。
步骤S2505:将情感语音关键点序列对应替换到原始关键点序列中,生成人脸关键点序列,原始关键点序列包括多个原始关键点数据;
原始关键点序列由多个原始关键点数据组成的序列,原始关键点序列与情感语音关键点序列的关键点数据组数相同。情感语音关键点的数量小于或等于原始关键点的数量。
将情感语音关键点序列对应替换到原始关键点序列中是指序列中相同位置的情感语音关键点数据与原始关键点数据进行替换,替换时,将原始关键点数据中表征相同关键点数据替换为情感语音关键点数据。
示例性的,情感语音关键点序列和原始关键点序列均有10组关键点数据。情感语音关键点序列中第一组包括20个关键点数据(如眼睛坐标、嘴巴坐标等),原始关键点序列中第一组包括153个关键点数据(如眼睛坐标、鼻子坐标等),只将情感语音关键点序列中第一组20个关键点数据替换到原始关键点序列中第一组数据中,替换规则是眼睛替换部位相同的数据,其余133个关键点数据不变。
通过几何结构设计可获得一定的眨眼序列,但由于人为设计的眨眼序列首先于关键点位置的线性变化,很难得到与真实状态下较一直的眨眼片段,眨眼不自然。
为解决以上技术问题,本申请实施例在将情感语音关键点序列对应替换到原始关键点序列中,生成人脸关键点序列之前,服务器400执行:
确定眨眼关键点序列,其中,眨眼关键点序列为与眨眼相关关键点的序列;
确定眨眼关键点序列的步骤,包括:
将原始关键点数据复制为多个;
将多个原始关键点数据输入关键点眨眼模型中,得到眨眼关键点序列,其中,关键点眨眼模型是以语音合成模型为基础,以上下眼皮高度为条件训练得到的。
关键点眨眼模型的数据处理及训练过程如下:
采用深度学习方式建立关键点眨眼模型,模型输入为图27Input行的非眨眼关键点序列,输出为图27Label行包含眨眼状态序列。训练数据特点为:数据采集者要保持头部绝对静止,视频帧仅包含一次自然眨眼状态。
采集100组不同人眨眼视频,其中男女比例1:1,通过视频提取关键点序列,然后将关键点序列执行归一化操作,获得Label。假如关键点序列包含N帧,则将此序列第一帧关键点复制N份作为输入。
为提高模鲁棒性,需要对数据进行一定程度的增广采用方案是将已有视频数据通过StyleGan风格化对抗生成网络获得不同眼睛大小的卡通风格片段,然后将这些数据加入到训练数据。
关键点眨眼模型要实现输入为非眨眼片段,输出为眨眼片段,并能对眉毛,脸颊等相关区域进行合适预测,模型可选择时序模型RNN(Recurrent Neural Network,循环神经网络),LSTM(Long Short-Term Memory,长短期记忆网络)等,采用语音合成模型Fastspeech Encoder,并根据需要加入上下眼皮高度作为生成条件,具体训练过程如下:
1)构建输入关键点序列Flsi[N,153,3]和Label[N,153,3]关键点序列Flsl,计算获得Flsl对应的上下眼皮高度特征序列H[N,1]
2)设置batch size为b,获得模型输入数据Inp[b,M,153*3],H[b,M,1]和GroundTruth Gt[b,M,153*3],M为b个N中最大值,其它小于N的位置做Padding补零,H[b,M,1]为inp对应求得的上下眼皮高度序列。
3)H[b,M,1]通过两次MLP维度变为Hhidden[b,M,153*3]。Hhidden[b,M,153*3]是潜空间特征,通过MLP模型将H[b,M,1]维度扩至Hhidden[b,M,153*3]。
4)Hhidden和Inp[b,M,153*3]concat到一起输入到Fastspeech encoder层,获得输出Out[b,M,153*3]
5)Out[b,M,153*3]与Gt[b,M,153*3]求算MSE LOSS,反向传播调整模型参数,直到训练过程达到收敛。
获取预设眨眼位置;
在一些实施例中,眨眼位置可随机设置,但需要保证两次眨眼位置的间隔大于眨眼关键点序列的长度,即两个眨眼关键点序列不能重叠。还要保证眨眼关键点序列是完整的。
在一些实施例中,眨眼位置可固定设置,例如每间隔预置长度设置一个眨眼位置。
基于预设眨眼位置在原始关键点序列中确定至少一个目标区域,其中,目标区域用于替换眨眼关键点序列;
在一些实施例中,确定预设眨眼位置后目标长度为目标区域,目标长度为眨眼关键点序列的长度。
在一些实施例中,确定预设眨眼位置前目标长度为目标区域,目标长度为眨眼关键点序列的长度。
在一些实施例中,确定预设眨眼位置前后目标长度为目标区域,目标长度为眨眼关键点序列的长度/2。
将眨眼关键点序列对应替换到原始关键点序列的目标区域中,得到眨眼后关键点序列。
将眨眼关键点序列对应替换到原始关键点序列中是指序列中相同位置的情感语音关键点数据与原始关键点数据进行替换。
在获取眨眼后关键点序列后,将播报文本及回复情感输入情感映射语音驱动模型,得到情感语音关键点序列,将情感语音关键点序列对应替换到眨眼后关键点序列中,生成人脸关键点序列。
人脸关键点多为2D数据,而基于2D数据很难获得自然流畅的头部动作,头部动作较僵硬。
为解决以上问题,本申请实施例在将播报文本及回复情感输入情感映射语音驱动模型,得到情感语音关键点序列之后,服务器400执行:
将情感语音关键点序列对应替换到原始关键点序列或眨眼后关键点序列中,生成情感处理后关键点序列;
获取头动仿射矩阵拟合序列;
获取头动仿射矩阵拟合序列的步骤,包括:
提取预设视频中关键点数据并进行归一化后,得到头动参考关键点序列;
在头动参考关键点序列中选取标准关键点数据,其中,标准关键点数据为正脸、无表情及无眨眼的关键点数据;
采用数据拟合算法获取所述标准关键点数据到所述头动参考关键点序列的头动仿射矩阵拟合序列;
将头动仿射矩阵拟合序列存储至预设地址;
从预设地址获取头动仿射矩阵拟合序列。
基于头动仿射矩阵拟合序列和情感处理后关键点序列生成人脸关键点序列。
头动序列嵌入方法如下:
坐标系定义:对人脸关键点所处坐标系进行设计,以鼻尖关键点为原点,以通过原点垂直人脸平面的直线为X轴,Y轴通过原点并平行于两眼角所在直线,Z轴通过原点正交与X、Y轴,从而实现关键点维度上自然流畅头动。
仿摄矩阵:仿摄矩阵定义从标准态关键点Fls到变化后关键点Fls’变化矩阵,变化包含四方面:沿X轴转动,沿Y轴转动,沿Z轴转动,平移。通常可用仿摄矩阵D[3,4]来表示这四种变化组合。
矩阵拟合与应用:矩阵拟合和实际应用可分为以下几步:
1)挑选合适头动视频片段,此片段可为主持人播报或者主播互动片段。
2)提取视频片段关键点坐标,并进行归一化操作,获得头动参考关键点序列Flsref[N,153*3]。
3)在Flsref[N,153*3]中挑选一帧标准关键点Flsstand[1,153*3],一般为正脸无表情眨眼等冗余信息关键点。
4)采用Scikit-learn中数据拟合算法,获得从Flsstand[1,153*3]到Flsref[N,153*3]的仿摄矩阵序列Dref[N,3,4]。
5)将Dref[N,3,4]叉乘到情感处理后关键点序列上,赋予数字人与挑选视频完全相同的头部动作。
在一些实施例中,设定序列嵌入顺序为眨眼-情感-头动,由于嵌入眨眼关键点序列涉及关键点数量较少、变化幅度较小,则优先进行嵌入。头动涉及关键点数量较多、变化幅度较大,则最后调整,从而保证得到的图像更为准确。
步骤S2506:基于用户图像数据和人脸关键点序列生成数字人图像数据;
在一些实施例中,数字人图像数据为数字人图像帧序列。基于用户图像数据和人脸关键点序列生成数字人图像数据的步骤,包括:
将用户图像数据和人脸关键点序列输入图像生成模型,得到数字人图像数据。
图像生成模型如图28所示,模型包含编码结构、解码结构、生成器和判别器四部分,训练过程中,关键点序列通过人脸关键点检测算法获得,训练数据包括Celeb2,FFHQ十几万张筛选图像,Loss包含判别器loss,生成器loss等,梯度函数选择Adam,learning rate设置为10-3-10-5,采用cos函数根据epoch调整学习率。在Nvidia-A100显卡耗时20h左右可达到初始可用效果。
将用户图像数据和人脸关键点序列输入图像生成模型,得到数字人图像序列帧。
在一些实施例中,数字人图像数据包括用户图像数据和人脸关键点序列。
步骤S2507:基于播报文本生成播报语音;
步骤S2508:将播报语音和数字人图像数据发送至显示设备200,以使显示设备200播放播报语音并基于数字人图像数据显示数字人图像。
在一些实施例中,数字人图像数据包括数字人图像帧序列。显示设备200播放数字人图像帧和播报语音。
在一些实施例中,数字人图像数据包括用户图像数据和人脸关键点序列。显示设备200将用户图像数据和人脸关键点序列输入图像生成模型,得到数字人图像帧序列,播放数字人图像帧和播报语音。
本申请实施例通过对人脸关键点表达能力深度分析,分步分阶段增加关键点序列包含的信息量,最终实现通过关键点对人脸表情,头动,眨眼等细节信息的控制。基于Transformer模型+平行语料训练方式,实现中性表情关键点到喜怒哀等不同表情风格的转换,并且强度可控。基于三维关键点+仿摄矩阵非线性拟合算法实现自然流畅的转头,摇头,扭头等头部动作。基于时间序列生成方案,实现输入一段睁眼关键点训练,输出对应长度的眨眼关键点序列片段,实现自然连贯的眨眼动作。
本申请实施例对服务器400的一些功能做进一步的完善。服务器400执行以下步骤,如图29所示。
步骤S2901:接收显示设备200发送用户输入的语音数据;
步骤S2902:基于语音数据确定播报语音;
步骤S2903:提取播报语音的语音特征;
服务器400包括语音特征提取模块。基于Encoder(编码器)-Decoder(解码器)结构的语音特征提取模块提取播报语音的语音特征。Encoder-Decoder语音特征提取模块有Wenet,wav2vec2.0等。以wav2vec2.0为例,wav2vec2.0作为base网络来提取语音特征数据。wav2vec 2.0模型是针对语言识别任务提出端到端的自监督预训练架构,只需加上linear层fine-tune就可以在各个语音识别任务上都取得最好的结果。选用预训练好的wav2vec2.0模型的encoder来提取语音特征,由于wav2vec2.0模型已经在ASR上具有高的准确率,编码器输出的语音特征具有较好的语义性。
wav2vec2.0模型如图30所示,播报语音先后经过CNN Blocks(卷积神经网络块)、LayerNorm(归一化层)、Dropout_feature(丢弃特征)、Post_conv(后卷积)、LayerNorm(归一化层)、Transformer,得到Final feature vectors(最终特征向量),即语音特征。其中,CNN Blocks包括GELU(Gaussian Error Linear Unit,高斯误差线性单元)、GroupNorm(群组归一化)和Conv1d(一维卷积)。Post_conv包括GELU、GroupNorm和Conv1d。
步骤S2904:基于语音特征确定口型参数;
在一些实施例中,基于深度学习语音驱动模型实现语音特征到口型参数的映射。语音驱动模型包括编码器和解码器。将语音特征输入编码器,得到高层语义特征,将高层语义特征输入解码器,解码器生成与语音特征对应的口型参数。
口型参数包括FLAME模型口型参数。
FLAME模型是一种通用的3D人脸模型,其输入是一个包含形状参数、姿势参数和表情参数的参数向量,输出的是一个三维人脸网格。FLAME模型中的表情参数能够表示面部的表情变化,例如微笑、皱眉、张嘴,因此可以借助FLMAE模型在情感表达上的优势完成语音驱动的3D面部动画。
FLAME借鉴身体模型SMPL(Skinned Multi-Person Linear,蒙皮多人线性模型)的表示方式,基于LBS(linear blend skining,线性蒙皮)并结合blendshapes(混合变形)作为表示,包含5023个顶点,4个关节。具体来说,FLAME将人头拆分成了左眼球、右眼球、下巴、脖子这四个部位,这四个部位都可以绕着自定义的“关节”进行旋转形成新的三维表示。FLAME模型的参数有三类:shape,pose,expression。分别可以表示为β∈R|β|,θ∈R|θ| 而FLAME模型就可以理解为一个输入上述三个参数,输出三维模型的映射其中N表示顶点数量(5023个)。由于FLAME模型通过LBS显式地建模了脖子的旋转、眼球的旋转,同时能够表示丰富的表情,使得FLAME模型在完成人脸重建任务上具有很大优势。
FLAME参数学习通过解码器Decoder将输入的语音特征或者情感表达特征解码成对应的FLAME参数。
在一些实施例中,FLAME口型参数学习的解码器Decoder由两部分组成:带有周期性位置编码(PPE)的有偏因果多头自我注意,用于泛化较长的输入序列;带有偏倚的跨模态多头注意,用于对齐音频运动模态。在训练过程中编码器将原始音频X转化为对应视觉帧数序列AΤ,解码器以AΤ和过去的面部参数为条件,预测当前帧的面部运动序列/>具体表达如下:
其中f1即为上述的解码器,AΤ表示T时刻的音频特征,表示T-1时刻学习到的面部参数。
步骤S2905:确定情感参数以及获取用户图像数据;
在一些实施例中,确定情感参数的步骤,包括
根据语音数据确定回复情感;
上文对确定回复情感的步骤做出详细描述,在此不再赘述。
根据回复情感确定情感参数。
将播报文本或播报语音,以及回复情感输入情感参数学习模块,可得到情感参数。情感参数为FLAME模型情感参数。
在一些实施例中,确定情感参数的步骤,包括
确定先验情感知识;
在训练阶段,为了使模型能够编解码输入语音中的情绪变化,可以先利用情绪识别模型获取帧级情绪信息作为先验情绪知识,方便模型训练。
在一些实施例中,确定先验情感知识的步骤,包括:
获取显示设备采集的用户人脸数据;
在用户输入语音数据的同时,显示设备200可启动摄像头,通过摄像头采集用户人脸数据,显示设备200将用户人脸数据发送至服务器400。
将用户人脸数据输入分散注意力网络模型中,得到先验情感知识,其中,分散注意力网络模型包括特征聚类网络、多头注意力网络和注意力融合网络。
基于二维图像的先验情绪知识提取方法:与音频信号数据相比,2D图像数据更容易解码出可靠的情感信息,模型也容易学习。采用已有的DAN(分散注意力网络)网络模型和预训练好的模型提取图像中的先验情绪知识。如31图所示,DAN网络模型包括一个特征聚类网络(Feature Clustering Network,FCN)、一个多头注意力网络(Multi-head crossAttention Network,MAN)和一个注意力融合网络(Attention Fusion Network)。首先通过特征聚类网络提取和聚类,其中应用亲和损失(Affinity Loss)来增加阶级间的差额和减少阶级内的方差。其次,建立了一个多头注意网络,通过一系列空间注意(SpatialAttention,SA)和通道注意(Channel Attention,CA)单元同时关注多个面部区域。最后,注意融合网络通过加强注意之间的差异来调节注意图特征向量和输出类置信度。由于该网络模型最后输出是情绪类别置信度,并不能代表情感的先验知识,因此需要将注意融合网络中softmax层之前的网络输出作为情感先验知识。
在一些实施例中,确定先验情感知识的步骤,包括:
提取播报语音的梅尔谱;
将梅尔谱经过卷积神经网络及特征聚合单元,得到语义特征;
将语义特征通过双向门控递归单元及全局-局部注意力模块,得到特性特征;
获取语音特征中的共性特征;
将共性特征和特性特征通过交互注意力模块融合,得到融合特征;
将共性特征、特性特征和融合特征输入分类器,得到先验情感知识。
基于语音梅尔谱的先验情感知识提取方法:如图32所示,将播报语音的音频信号经过预处理得到的对数梅尔谱图作为输入特征,经过卷积神经网络以及特征聚合单元提取情感相关的语义特征,继而通过Bi-GRU(双向门控递归单元)及全局-局部注意力模块得到情感相关的特性特征Y。Wav2Vec2.0预训练模型通过自监督学习从播报语音中学习到一个共有表征X,通过微调方式迁移到语音情感识别任务上。然后在联合网络中将从预训练模型和基于频谱的模型中得到的共性特征和特性特征通过不同交互注意力模块融合,更好地利用语音中的情感信息。最后将得到的共性特征、特性特征以及融合特征都通过一个分类器(Classfier)产生语音情感识别预测。由于预测的内容也是情绪类别置信度,所以将分类器之前的输入作为情感的先验知识。
将先验情感知识及语音特征输入情感预测器,得到情感表达特征;
获取情感的先验知识后,将其作为groundtruth(事实库)通过一个Bi-LSTM(双向长短期记忆网络)网络预测提取语音特征中的情感表征。该网络训练过程中的损失函数设计为最大化预测情感表征与先验情感知识之间的互信息。
基于情感表达特征确定情感参数。
将情感表达特征输入情感参数学习模块,得到情感参数。
其中,FLAME情感参数学习:在情感预测器输出的情感特征向量MT为7维(示例性的,情感种类包括中性、生气、厌恶、害怕、高兴、伤心和惊讶7种)的情感向量,需要通过一个可学习的二维矩阵W将其投影到嵌入空间后,再输入到CNN网络f2解码生成对应的情感Flame参数具体的表示如下:
本申请实施例提出两种不同的语音先验情感知识提取方法,结合语音的梅尔谱数据或者说话人的2D视频数据及预训练情感识别模型提取先验情感知识作为情绪预测器的ground truth,指导语音情绪预测器的整个训练过程。先验情感知识使得情绪预测器的输出具有更加准确的情感语义特征,从而提高情感增强网络输出的FLAME情感参数的准确性。
在一些实施例中,确定情感参数的步骤,包括:
确定先验情感知识;
将所述先验情感知识及所述语音特征输入情感预测器,得到情感表达特征;
获取情感强度;
在一些实施例中,情感强度可由用户设置并将设置的情感强度保存至预设地址,从预设地址中获取情感强度。
在一些实施例中,根据语音数据确定情感强度。上文对确定情感强度的步骤做出详细描述,在此不再赘述。
基于情感表达特征和情感强度确定情感强度表达特征;
其中,基于情感表达特征和情感强度确定情感强度表达特征的步骤,包括:
计算情感表达特征与多个情感聚类中心的距离,其中,情感聚类中心通过对不同情绪及样本的先验情感知识向量聚类得到;
确定距离中的最小距离以及最小距离对应的情感聚类中心;
根据情感表达特征、情感强度、最小距离以及最小距离对应的情感聚类中心,确定情感强度表达特征。
服务器包括增加情绪程度控制模块。用户可输入个性化的某一种情绪控制程度ε。在接收到某情绪个性化程度ε和播报语音test通过语音特征提取和情感预测器输出的情感表达特征Atest后,通过以下步骤得到个性化程度控制的情感强度表达特征:
对训练阶段所有情绪和所有样本的先验情感知识向量进行聚类,得到每种情绪的聚类中心{Ci,i=0,...,6},其中i表示情绪种类的序号,0表示中性情绪,其他依次为生气、厌恶、害怕、高兴、伤心和惊讶,Ci为对应的情绪聚类中心,同时计算每个聚类中心Ci,i=1,...,6与中性情绪聚类中心的距离Di,i=1,...,6。
对情感预测器输出的情感表达特征Atest计算其与每个聚类中心Ci,i=1,...,6的距离di,并确定距离最小的di及对应的Ci作为与该语音信号最相近的情绪中心。
按照如下公式计算个性化程度控制的情感强度表达特征:
A_(test,final)=A_test+(ε-(1-d_i/D_i))C_i。
基于情感强度表达特征确定情感参数。
将情感强度表达特征输入情感参数学习模块,得到情感参数。
本申请实施例为了使生成的面部情绪更加个性化,在预测阶段增加情绪程度控制模块,针对用户的不同情绪程度表达需求,根据情感预测器预测的情绪特征和各情绪标签的聚类中心,得到个性化情绪程度的语音情绪表达然后输入到情感参数学习模块,使得最后生成的面部情绪动画更加自然、生动、个性化。
步骤S2906:基于用户图像数据、情感参数和口型参数生成数字人图像数据;
在一些实施例中,数字人图像数据包括数字人图像帧序列。基于用户图像数据、情感参数和口型参数生成数字人图像数据的步骤,包括:
将情感参数及所述口型参数融合,得到融合参数;
在解码器得到口型参数和情感参数后,由于两者具有明显的独立性。可采取求和融合的方式对两者参数进行融合如下:
基于用户图像数据及融合参数生成数字人图像数据,即数字人图像帧序列。
在接收到T时刻的FLAME参数后,可通过训练好的FLAME模型将/>转化成对应的3D面部顶点/>
为了提高驱动口型和面部表情的准确性,整个训练过程中的损失函数表示如下
其中lipmask和facemask分别表示嘴部区域和面部区域的顶点掩码(若顶点属于面部区域,则掩码为1,否则0),Yt表示t时刻的所有面部顶点的真值向量(5023*3维),表示t时刻的所有面部顶点的预测值向量(5023*3维),α,β表示面部和嘴部区域顶点的损失权重(0-1之间),可根据实际驱动效果进行设定。
在一些实施例中,数字人图像数据包括用户图像数据及融合参数。
本申请实施例从音频数据中预测说话人的情感特征,然后通过情感参数学习模块解码成FLAME表情参数。然后将FLAME表情参数和学习到的语音口型FLAME参数进行结合输入到可微渲染模块生成3D面部动画,该方法能够保持高精度的语音嘴唇同步,同时也具有较好的面部表情的表达,进而在推理时可实现情感的定制与控制。
步骤S2907:将播报语音和所述数字人图像数据发送至显示设备200,以使显示设备200播放播报语音并基于数字人图像数据显示数字人图像。
在一些实施例中,数字人图像数据包括数字人图像帧序列。显示设备200播放数字人图像帧及播报语音。
在一些实施例中,数字人图像数据包括用户图像数据及融合参数。显示设备200基于用户图像数据及融合参数生成数字人图像帧序列,播放数字人图像帧及播报语音。
技术架构图如图33所示。输入语音提取梅尔谱后输入预训练情感识别模型,或者将图像数据输入预训练情感识别模型,得到先验情感知识。提取输入语音的语音特征后,将语音特征分别输入情感预测器及参数学习模型中的口型参数学习模型。情感预测器基于语音特征及先验情感知识确定情感表达特征,一方面可以将情感表达特征直接输入参数学习模型中的情感参数学习模型,另一方面可以将情感表达特征输入情感程度控制模块。情感程度控制模块在获取情感控制程度及情感表达特征后输出情感强度表达特征至情感参数学习模型。情感参数学习模型基于情感表达特征或情感强度表达特征确定情感参数。口型参数学习模型基于语音特征确定口型参数。参数学习模型将情感参数与口型参数融合,得到融合参数。参数驱动模块基于融合参数生成3D情感动画序列。
在一些实施例中,接收显示设备发送用户输入的语音数据后,提取语音数据的语音特征,基于语音特征确定口型参数,确定情感参数以及获取用户图像数据;基于用户图像数据、情感参数和口型参数生成数字人图像数据,可达到数字人学习用户说话的效果。
本申请实施例使用语音梅尔谱数据或者说话人视频和预训练的情绪识别模型得到先验情绪知识,然后在先验情绪知识的指导下训练音频的情感预测器得到语音的情感表达特征,并将情感表达特征输入神经网络解码成FLAME情绪参数,同时与学习到的口型FLAME参数进行结合并通过可微渲染生成3D人脸动画。本申请实施例还增加情感程度控制模块,其可以从预测的语音情感特征与各情绪标签的先验知识聚类中心生成个性化程度的情感特征表达,使得生成的数字人形象更加生动、个性化。
本申请的一些实施例提供一种数字人交互方法,所述方法适用于服务器400,服务器400被配置为:在接收到显示设备发送用户输入的语音数据后,获取用户图像数据,以及根据所述语音数据确定播报文本;将所述用户图像数据映射到三维空间,得到形象系数;确定情感系数序列;基于所述播报文本、所述形象系数和所述情感系数序列生成数字人图像数据;基于所述播报文本生成播报语音;将所述播报语音和所述数字人图像数据发送至所述显示设备,以使所述显示设备基于所述数字人图像数据显示数字人图像并播放所述播报语音。本申请实施例通过将获取到的用户图像数据映射到三维空间,在三维空间可根据高拟人化的情感编辑实现对表情的可控调节,使数字人表情更加拟真人化。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。

Claims (10)

1.一种服务器,其特征在于,被配置为:
在接收到显示设备发送用户输入的语音数据后,获取用户图像数据,以及根据所述语音数据确定播报文本;
将所述用户图像数据映射到三维空间,得到形象系数;
确定情感系数序列;
基于所述播报文本、所述形象系数和所述情感系数序列生成数字人图像数据;
基于所述播报文本生成播报语音;
将所述播报语音和所述数字人图像数据发送至所述显示设备,以使所述显示设备播放所述播报语音并基于所述数字人图像数据显示数字人图像。
2.根据权利要求1所述的服务器,其特征在于,所述服务器执行基于所述播报文本、所述形象系数和所述情感系数序列生成数字人图像数据,被进一步配置为:
将播报文本输入语音驱动模型,得到嘴部动作系数序列;
基于所述形象系数、所述情感系数序列和所述嘴部动作系数序列生成数字人图像数据。
3.根据权利要求1所述的服务器,其特征在于,所述服务器执行基于所述播报文本、所述形象系数和所述情感系数序列生成数字人图像数据,被进一步配置为:
确定头部动作系数序列;
基于所述播报文本、所述形象系数、所述情感系数序列和所述头部动作系数序列生成数字人图像数据。
4.根据权利要求1所述的服务器,其特征在于,所述服务器执行确定情感系数序列,被进一步配置为:
确定所述播报文本对应的情感变化序列;
根据所述播报文本的文本长度确定所述播报语音的时长;
基于所述情感变化序列及所述时长确定所述情感系数序列。
5.根据权利要求4所述的服务器,其特征在于,所述服务器执行确定所述播报文本对应的情感变化序列,被进一步配置为:
将所述语音数据输入语音情感分类模型中,得到情感特征向量;
将所述情感特征向量输入映射模型中,得到情感变化序列。
6.根据权利要求4所述的服务器,其特征在于,所述服务器执行基于所述情感变化序列及所述时长确定所述情感系数序列,被进一步配置为:
如果所述时长小于或等于目标值,则在所述情感变化序列中移除目标数量的情感系数,以获取所述情感系数序列,所述目标值为情感变化序列显示的总时长,所述目标数量由所述时长、目标值和帧率确定;
如果所述时长大于目标值,则在所述情感变化序列中插入目标数量的情感系数,以获取所述情感系数序列。
7.根据权利要求3所述的服务器,其特征在于,所述服务器执行确定头部动作系数序列,被进一步配置为:
确定所述播报文本对应的头部动作变化序列;
根据所述播报文本的文本长度确定所述播报语音的时长;
基于所述头部动作变化序列及所述时长确定所述头部动作系数序列。
8.根据权利要求7所述的服务器,其特征在于,所述服务器执行基于所述头部动作变化序列及所述时长确定所述头部动作系数序列,被进一步配置为:
如果所述时长小于或等于目标值,则在所述头部动作变化序列中移除目标数量的头部动作系数,以获取所述头部动作系数序列,所述目标值为头部动作变化序列显示的总时长,所述目标数量由所述时长、目标值和帧率确定;
如果所述时长大于目标值,则在所述头部动作变化序列中插入目标数量的头部动作系数,以获取所述头部动作系数序列。
9.一种显示设备,其特征在于,包括:
显示器,被配置为显示用户界面;
通信器,被配置为与服务器进行数据通信;
控制器,被配置为:
接收用户输入的语音数据;
将所述语音数据通过所述通信器发送至服务器;
接收所述服务器基于所述语音数据下发的数字人图像数据及播报语音;
播放所述播报语音并基于所述数字人图像数据显示数字人图像。
10.一种数字人交互方法,其特征在于,包括:
在接收到显示设备发送用户输入的语音数据后,获取用户图像数据,以及根据所述语音数据确定播报文本;
将所述用户图像数据映射到三维空间,得到形象系数;
确定情感系数序列;
基于所述播报文本、所述形象系数和所述情感系数序列生成数字人图像数据;
基于所述播报文本生成播报语音;
将所述播报语音和所述数字人图像数据发送至所述显示设备,以使所述显示设备基于所述数字人图像数据显示数字人图像并播放所述播报语音。
CN202311267849.0A 2023-09-27 2023-09-27 一种服务器、显示设备及数字人交互方法 Pending CN117809681A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311267849.0A CN117809681A (zh) 2023-09-27 2023-09-27 一种服务器、显示设备及数字人交互方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311267849.0A CN117809681A (zh) 2023-09-27 2023-09-27 一种服务器、显示设备及数字人交互方法

Publications (1)

Publication Number Publication Date
CN117809681A true CN117809681A (zh) 2024-04-02

Family

ID=90434017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311267849.0A Pending CN117809681A (zh) 2023-09-27 2023-09-27 一种服务器、显示设备及数字人交互方法

Country Status (1)

Country Link
CN (1) CN117809681A (zh)

Similar Documents

Publication Publication Date Title
US11210836B2 (en) Applying artificial intelligence to generate motion information
US11908468B2 (en) Dialog management for multiple users
US10977452B2 (en) Multi-lingual virtual personal assistant
US20210081056A1 (en) Vpa with integrated object recognition and facial expression recognition
US10621991B2 (en) Joint neural network for speaker recognition
Wu et al. Survey on audiovisual emotion recognition: databases, features, and data fusion strategies
CN116704085B (zh) 虚拟形象生成方法、装置、电子设备和存储介质
TW202238532A (zh) 自語音之三維臉部動畫
CN117809679A (zh) 一种服务器、显示设备及数字人交互方法
CN117251057A (zh) 一种基于aigc构建ai数智人的方法及系统
CN116958342A (zh) 虚拟形象的动作生成方法、动作库的构建方法及装置
CN117809680A (zh) 一种服务器、显示设备及数字人交互方法
CN117292022A (zh) 基于虚拟对象的视频生成方法、装置及电子设备
CN117809649A (zh) 显示设备和语义分析方法
CN115171673A (zh) 一种基于角色画像的交流辅助方法、装置及存储介质
CN117809681A (zh) 一种服务器、显示设备及数字人交互方法
CN117809682A (zh) 一种服务器、显示设备及数字人交互方法
CN117809616A (zh) 一种服务器、显示设备及语音交互方法
Liu et al. A Survey on Deep Multi-modal Learning for Body Language Recognition and Generation
CN117808665A (zh) 一种服务器、显示设备及图像处理方法
CN117809026A (zh) 一种服务器、显示设备及图像处理方法
CN117812279A (zh) 一种服务器、终端、显示设备及数字人交互方法
CN117809677A (zh) 一种服务器、显示设备及数字人交互方法
CN117809617A (zh) 一种服务器、显示设备及语音交互方法
CN117809678A (zh) 一种服务器、显示设备及数字人交互方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination