Unreal engine digital human voice interaction method, device and application
Patent Information
- Application Number
- CN202310198207.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-28
- Publication Date
- 2026-08-21
- Estimated Expiration
- 2043-02-28
AI Technical Summary
[0003]目前,市面上存在许多数字人形象,用来进行各个领域的问答、讲解,但是市面上许多数字人的展示并非是使用虚幻引擎进行的实时交互,比如汽车上的智能语音,需要在按下按钮后几秒内来接收问题,然后进行导航等操作,上述方法需要用户的操作作为前序输入,并且后续的几秒作为接收用户语音的时限,另外类似的汽车智能语音主要是替代输入,比如播放某人的歌,导航的目的地是哪儿,得到输入后再进行指令执行,并非是自然语言的对话,在与数字人进行实时语音交互时,很多使用虚幻引擎实时渲染出来的数字人只能提供最基础的语音交互,即问了一个问题A,数字人会下发问题A的答案,问了问题B会下发问题B的答案,但是如果在问题A还没回答完时就问B问题,就会出现数字人同时下发问题A、B的答案的情况,由于数字人在回答下发数据时不是以一条消息、一个时间点为判定标准,而是以一个持续的时间,例如3-8秒,所以在数字人进行判断问题并回答上存在很大难度
[0018]本方案通过为云端的每个答案构建唯一ID,并在虚幻引擎中构建进行ID列表和结束ID列表,将答案唯一ID转存到进行ID列表中让数字人进行回答,当需要对数字人当前的回答进行打断时,针对用户的打断指令将第一答案存储到结束ID列表中并播放第二答案;当需要对数字人的回答彻底打断,不需要再进行回答时,为第一答案构建一个虚拟自增ID,将虚拟自增ID存储到结束ID列表中,完成打断;本方案通过构建黑名单ID列表,使得在特定场景下用户只能进行特定指令的交互,满足不同的应用场景;本方案在数字人和云端之间构建一个中间层服务器,使用中间层服务器进行音频的播放来避免声音出现卡顿和毛刺音;本方案通过在虚幻引擎中构建数据结构,并在云端下发的答案中增加标志位,根据标志位和数据结构完成数字人的一些特殊表现。
Smart Images

Figure CN117290465B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of Unreal Engine, and in particular to a method, device and application for voice interaction of a digital human in Unreal Engine. Background Technology
[0002] Unreal Engine is a game engine developed by the game company EPIC. It provides game developers with a large number of core technologies, data generation tools, and basic support. Digital humans are digital human figures created using digital technology that closely resemble human figures. In a narrow sense, digital humans are a product of the integration of information science and life science. They use information science methods to virtually simulate the human body at different levels of form and function. The research process includes four overlapping development stages: "visual human," "physiological human," "physiological human," and "intelligent human." Ultimately, it aims to establish a multidisciplinary and multi-level digital model and achieve accurate simulation of the human body from the microscopic to the macroscopic. In a broad sense, digital humans refer to the penetration of digital technology into various levels and stages of human anatomy, physics, physiology, and intelligence. Digital humans are a general term for related fields that are still under development. As an advanced game production engine, Unreal Engine is used by many research institutions for research in the field of digital humans.
[0003] Currently, many digital human figures exist on the market for question-and-answer and explanation purposes in various fields. However, many of these digital human demonstrations do not utilize Unreal Engine for real-time interaction. For example, intelligent voice control in cars requires a few seconds after a button is pressed to receive a question and then perform operations such as navigation. This method requires user input as a prerequisite, with the subsequent few seconds serving as the time limit for receiving the user's voice. Furthermore, similar intelligent voice control systems in cars primarily replace input, such as playing someone's song or indicating the navigation destination. They execute commands only after receiving input, rather than engaging in natural language dialogue. When interacting with digital humans in real-time using Unreal Engine, many digital humans rendered in real-time can only provide the most basic voice interaction. That is, if a question A is asked, the digital human will provide the answer to question A; if a question B is asked, it will provide the answer to question B. However, if question B is asked before question A is answered, the digital human will provide the answers to both questions simultaneously. Since digital humans do not judge responses based on a single message or a single point in time, but rather on a continuous duration, such as 3-8 seconds, it presents significant challenges for the digital human to accurately judge and answer questions.
[0004] Furthermore, when digital humans answer questions, there are usually transitions involving actions and images, such as a dance or video. However, the cloud does not wait but sends the data directly. In addition, since digital humans use Unreal Engine for real-time rendering, there is a lot of multi-threaded logic. When audio streams are played simultaneously, there is competition for rendering resources, resulting in stuttering and jagged sounds in the audio playback.
[0005] In conclusion, there is an urgent need for a method that enables high-quality and logical voice interaction with real-time rendered digital humans. Summary of the Invention
[0006] This application provides a Unreal Engine digital human voice interaction method, device, and application that allows users to have higher quality communication with digital humans according to different situations, and can add special effects when playing audio data without sound stuttering.
[0007] Firstly, this application provides a voice interaction method for digital humans using Unreal Engine, including:
[0008] A list of answer IDs is constructed in the Unreal Engine. The list of answer IDs includes an end ID list and a proceed ID list. The end ID list stores the answer IDs of the digital human after playback has ended, and the proceed ID list stores the answer IDs of the digital human currently playing and about to play.
[0009] The system acquires the first voice interaction content between the user and the digital human, sends the corresponding first answer based on the first voice interaction content, stores the answer ID of the first answer in the process ID list, and stores the answer ID of the first answer in the end ID list after the first answer has been played.
[0010] When the digital human is playing the first answer and acquires the second voice interaction content between the user and the digital human again, the cloud obtains the second answer based on the second voice interaction content and stores the answer ID of the second answer in the ID list.
[0011] Secondly, this application provides a Unreal Engine digital human voice interaction device, comprising:
[0012] Module: Constructs a list of answer IDs in the Unreal Engine. The list of answer IDs includes an end ID list and a proceed ID list. The end ID list stores the answer IDs of the digital human after playback has ended, and the proceed ID list stores the answer IDs of the digital human currently playing and about to play.
[0013] First interaction module: acquires the first voice interaction content between the user and the digital human, sends the corresponding first answer based on the first voice interaction content in the cloud, stores the answer ID of the first answer in the process ID list, and stores the answer ID of the first answer in the end ID list after the first answer is played.
[0014] Second interaction module: When the digital human is playing the first answer and obtains the second voice interaction content between the user and the digital human again, the cloud obtains the second answer based on the second voice interaction content and stores the answer ID of the second answer in the ID list.
[0015] Thirdly, this application provides an electronic device including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to execute an Unreal Engine digital human voice interaction method.
[0016] Fourthly, this application provides a readable storage medium storing a computer program, the computer program including program code for controlling a process to execute the process, the process including an Unreal Engine digital human voice interaction method.
[0017] Compared with existing technologies, this technical solution has the following characteristics and beneficial effects:
[0018] This solution assigns a unique ID to each answer in the cloud and builds a list of proceeding IDs and an end ID list in Unreal Engine. The unique answer ID is stored in the proceeding ID list for the digital human to respond. When the digital human's current response needs to be interrupted, the first answer is stored in the end ID list in response to the user's interruption command, and the second answer is played. When the digital human's response needs to be completely interrupted and no further response is required, a virtual auto-incrementing ID is built for the first answer and stored in the end ID list to complete the interruption. This solution also uses a blacklist ID list to ensure that users can only interact with specific commands in specific scenarios, meeting the needs of different application scenarios. Furthermore, this solution builds an intermediate layer server between the digital human and the cloud, using this server for audio playback to avoid sound stuttering and glitches. Finally, this solution builds a data structure in Unreal Engine and adds flags to the answers delivered from the cloud, using these flags and the data structure to achieve certain special behaviors of the digital human.
[0019] Details of one or more embodiments of this application are set forth in the following drawings and description to make other features, objects and advantages of this application more readily apparent. Attached Figure Description
[0020] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments of this application and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:
[0021] Figure 1 This is a flowchart illustrating a Unreal Engine digital human voice interaction method according to an embodiment of this application;
[0022] Figure 2 This is a schematic diagram of the structure of adding an intermediate layer server in a Unreal Engine digital human voice interaction method according to an embodiment of this application;
[0023] Figure 3 This is a structural block diagram of a Unreal Engine digital human voice interaction device according to an embodiment of this application;
[0024] Figure 4 This is a schematic diagram of the hardware structure of an electronic device according to an embodiment of this application. Detailed Implementation
[0025] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numerals in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with one or more embodiments of this specification. Rather, they are merely examples of apparatuses and methods consistent with some aspects of one or more embodiments of this specification as detailed in the appended claims.
[0026] It should be noted that the steps of the corresponding methods are not necessarily performed in the order shown and described in this specification in other embodiments. In some other embodiments, the methods may include more or fewer steps than described in this specification. Furthermore, a single step described in this specification may be broken down into multiple steps in other embodiments; and multiple steps described in this specification may be combined into a single step in other embodiments.
[0027] Example 1
[0028] This application provides a digital human voice interaction method for Unreal Engine, referencing... Figure 1 This method is applicable to users interacting with digital humans in a virtual engine via voice, with the digital humans connecting to the cloud. The method includes: constructing a list of answer IDs in the Unreal Engine, the list of answer IDs including an end ID list and a proceed ID list, the end ID list storing answer IDs that the digital human has finished playing, and the proceed ID list storing answer IDs that the digital human is currently playing and about to play.
[0029] The system acquires the first voice interaction content between the user and the digital human, sends the corresponding first answer based on the first voice interaction content, stores the answer ID of the first answer in the process ID list, and stores the answer ID of the first answer in the end ID list after the first answer has been played.
[0030] When the digital human is playing the first answer and acquires the second voice interaction content between the user and the digital human again, the cloud obtains the second answer based on the second voice interaction content and stores the answer ID of the second answer in the ID list.
[0031] Because this solution sets a unique answer for each voice interaction, it can satisfy different logic controls, and can at least realize the logic control of automatic interruption mode, interruption mode and normal playback mode.
[0032] 1. In the case of automatic interruption mode, that is, when the user asks two or more questions in a single voice interaction, the corresponding solution includes the following step after the step of "storing the ID of the second answer into the ID list": storing the ID of the first answer into the end list.
[0033] 2. If playback is normal, that is, when the user asks two or more questions in a single voice interaction, the answer IDs in the action list are set sequentially, and the digital human plays the answers in the action list sequentially.
[0034] 3. If the interruption is manual, an interruption command is obtained. For each subsequent received answer ID, a virtual ID is constructed and stored in the end ID. The purpose is to issue an interruption command when the digital human is playing an answer, interrupting the digital human's response and stopping all subsequent responses.
[0035] Specifically, the logic control of this solution is not limited to the three types mentioned above. It can be flexibly changed according to the actual situation. For example, it can interrupt the playback of the current answer, while subsequent answers can be played as usual.
[0036] Specifically, the first answer, the second answer, etc. in this solution are essentially answers issued by the cloud based on the interaction content. In the instruction manual, these are collectively referred to as answers. Similarly, the first voice interaction content, the second voice interaction content, etc. are collectively referred to as voice interaction content.
[0037] In some embodiments, an intermediate layer server is constructed, through which the cloud sends the answer, and the intermediate layer server obtains the voice interaction content between the user and the digital human through a listening interface.
[0038] The cloud refers to the voice system cloud, and an intermediate layer server is constructed, such as... Figure 2 As shown, the digital human connects to the cloud through an intermediate layer server. The intermediate layer server obtains the voice interaction content between the user and the digital human through a listening interface and forwards the obtained content to the cloud. The intermediate layer server is also responsible for forwarding the answers sent from the cloud to the digital human.
[0039] Specifically, since some semantic service providers' cloud-based speech system SDK development packages are not C++ projects, while Unreal Engine generally uses C++ as its scripting language, directly integrating the cloud-based speech system into Unreal Engine may lead to compilation errors, program failure to run, or failure to properly initialize the SDK.
[0040] Specifically, the intermediate layer server needs to have network forwarding functionality. A Socket listening interface is created in the intermediate layer server. The Socket listening interface listens to the first voice interaction content between the user and the digital human and forwards the first voice interaction content to the cloud through the network forwarding function. Therefore, when the intermediate layer server is connected to the cloud, the intermediate layer server acts as a client. When the intermediate layer server is connected to the digital human, the intermediate layer server acts as a server providing driving messages.
[0041] Furthermore, the driving message is the answer sent from the cloud based on the voice interaction content and the lip-sync data of the digital human.
[0042] In some specific embodiments, the voice interaction content between the user and the digital human can be various questions asked by the user to the digital human, and the answers given by the cloud based on the voice interaction content can be answers to various questions. The cloud is provided by various semantic service providers and companies and manufacturers involved in this technology, which will not be explained in detail here.
[0043] In some embodiments, in the step of "the cloud sends the corresponding first answer according to the first voice interaction content", the Unreal Engine decodes and segments the answer to obtain multiple audio binary data segments, and sends the multiple audio binary data segments back to the middleware server, and the middleware calls the audio device resources to play them sequentially.
[0044] The advantage of this approach is that, since the commonly used Windows system audio resources are very old APIs, having been in use since Win98, when Unreal Engine is rendering the digital human while simultaneously calling Windows system audio resources for sound playback, the multi-threading optimization of Windows system audio resources is not good, resulting in jagged sounds or sound stuttering. Therefore, Unreal Engine decodes the answer sent from the cloud, divides it into multiple segments of audio binary data, and sends them back to the middleware server. This is because of the principle of "multi-threading is not as good as multi-processing" when balancing device load. Unreal Engine renders the digital human to demonstrate lip movements, while the middleware server calls audio resources for sound playback.
[0045] Specifically, using the middleware server to access audio equipment resources can reduce the rendering pressure on the Unreal Engine, allowing the Unreal Engine to focus on rendering. The middleware layer, on the other hand, performs message forwarding, some preliminary analysis, and sound playback functions, successfully solving the problems of stuttering and jagged sounds during sound playback.
[0046] Specifically, the answer sent from the cloud can be decoded and segmented into multiple segments of audio binary data in 0.05-second intervals. Then, the computer thread is called through an intermediate layer server to play the audio. Since the intermediate layer server does not need to perform rendering operations, it is not highly sensitive to time. Even if a segment of audio is blocked, it will not affect the overall result, nor will it affect the computer thread.
[0047] In some embodiments, in the step of "storing the answer ID of the first answer into the process ID list", the cloud constructs an answer ID for each answer of the voice interaction content when sending the answer. When the digital human receives the answer sent by the cloud, it stores the answer ID corresponding to the answer into the process ID list.
[0048] Specifically, different questions have different answer IDs, while the same question has the same answer ID.
[0049] Specifically, in the field of voice interaction, there is a grayscale determination problem. This is because the digital human's reception of voice is not a point in time, but a period of time. During this period, the user may ask multiple questions, which will cause the cloud to send out the corresponding answers to multiple questions at the same time. The simultaneous sending of multiple answers makes it impossible for the digital human to distinguish them. This type of problem is not a simple 0 or 1 judgment, but requires distinguishing and processing this data within a time interval, so it is called grayscale determination.
[0050] In some embodiments, if the interruption is caused by a human, the user's interruption command is obtained, a virtual auto-incrementing ID is constructed for the corresponding answer in the ID list based on the interruption command, and the virtual auto-incrementing ID is stored in the end ID list.
[0051] Specifically, the virtual auto-incrementing ID is an ID created by Unreal Engine itself. Since the data delivery from the cloud is not interrupted, the cloud will still deliver the answer regardless of the situation. In order to "interrupt" the data delivery from the cloud, after obtaining the user's interruption command, a virtual auto-incrementing ID is added to the first answer that needs to be "interrupted", and the virtual auto-incrementing ID is stored in the end ID list. The function of the virtual auto-incrementing ID is to make the system think that the first answer has finished playing, so that all subsequent data delivered becomes expired data and will not be played, thus achieving the purpose of interruption.
[0052] In some embodiments, if the interruption is automatic, in the step of "when the digital human is playing the first answer and the second voice interaction content between the user and the digital human is acquired again", the answer ID of the first answer is automatically stored in the end ID list, and the second answer is played.
[0053] For example, when a user asks question A during voice interaction with a digital human, the answer to question A is sent. While question A is being sent, the user asks question B. At this point, the cloud will simultaneously send the answers to both questions A and B via multiple threads. The Unreal Engine receives the answer to A and the answer to B at the same time. If no processing is done before playback, the two answers will be played out intermittently, with a time interval of several hundred milliseconds. Therefore, an automatic interruption function is needed. That is, when the cloud sends the second answer, the ID of the first answer should be stored in the end ID list for automatic interruption, so that the digital human will play the second answer.
[0054] In some embodiments, during normal playback, in the step of "when the digital human is playing the first answer and the second voice interaction content between the user and the digital human is acquired again", the answer ID of the second answer is stored in the process ID list, and the digital human plays the answers in the process ID list according to the storage order of the process ID list.
[0055] Specifically, since Unreal Engine does not process expired data, the above steps can be used to "interrupt" the delivery of data from the cloud.
[0056] Specifically, the answer ID list stores the first answer ID of all answers given by the digital human.
[0057] In some embodiments, a blacklist mode can be set and a blacklist ID list can be constructed. The blacklist mode can be set to have the following two functions:
[0058] 1. Set a blacklist mode and construct a blacklist ID list. The blacklist ID list is pre-set with blacklist answer IDs that will not be answered. If the answer ID issued for the voice interaction content is the same as the blacklist answer ID, then the answer ID is stored in the end ID list.
[0059] Specifically, when users enter blacklist mode in certain special scenarios, they can use blacklist mode to block some sensitive words.
[0060] 2. Set a blacklist mode and construct a blacklist ID list. Store the answer IDs issued for voice interaction content into the blacklist ID list. The function of the blacklist ID list is the same as the end ID list. When the voice interaction content is a command message, the cloud will recognize and execute the corresponding command.
[0061] When the user issues a command, the corresponding command is executed.
[0062] Specifically, when the interaction between the user and the digital human reaches a certain level and the only possible action is to exit, the current moment and all subsequent moments are defined as blacklist periods. The blacklist periods are customized according to the application scenario, and this solution does not impose any restrictions on them.
[0063] Specifically, the instruction information can be an end instruction, a return instruction, etc.
[0064] In certain special scenarios or when the interaction with the digital human reaches a certain level, the user can only issue an "exit" command and cannot continue to interact with the digital human. In this case, it is necessary to build a blacklist.
[0065] Specifically, in certain special scenarios, such as virtual museum exhibit spaces, according to the design, users can only issue "exit" at a certain stage and cannot ask other questions, but they have no right to prevent users from speaking, because users still need to say the "exit" command to exit this special exhibit space. In this case, the time the user spends in the special scenario is defined as a blacklist period, and a blacklist ID list is constructed. The answer ID of the first answer within the blacklist period is stored in the blacklist ID list, so the digital human will not play the answer. The developers have also performed special processing on the words "exit" and related semantics, so they are not affected by the blacklist ID list.
[0066] Specifically, this solution does not impose specific limitations on the technical means by which developers perform special processing on "exit" and related semantic terms. Many existing technologies can achieve this, such as treating "exit" as another message in JSON.
[0067] Furthermore, even if the user's voice interaction with the digital human contains words with the semantic meaning of "exit" in other scenarios, the cloud is able to distinguish them and use them normally.
[0068] In some embodiments, a data structure is constructed, and special behaviors that the digital human can perform are defined in the strings of the data structure. A flag is added to the answer sent from the cloud. When the flag is identified, the digital human is controlled to perform special behaviors according to the content of the flag and the content of different strings in the data structure.
[0069] Specifically, different flags correspond to different strings in the data structure.
[0070] Specifically, when the digital human encounters certain special questions, it needs to perform a special action before answering the question, or answer the question while performing a special action. These special actions include dancing, transition animations, images, videos, etc. However, the data sent from the cloud will not include these special actions. Therefore, when a special action is required, or when the cloud identifies that a certain type of special action is required, a flag is added to the answer sent from the cloud. Once this flag is obtained, it is known that certain special actions are required.
[0071] For example, the data structure includes audioDelayPlayCache (audio binary data), where the received audio data is stored when an answer is received but a transition animation needs to be played before audio output.
[0072] For example, the data structure includes mouthMoveDataDelayPlayArray (lip movement data), which can be used to control the 56 bones of the digital human face so that the facial lip movements correspond to the sound data being played.
[0073] For example, the data structure includes cacheXFManActionArray (hand data), which can be used to control the digital human's hand movements. It can control the digital human to perform a hand movement at a certain time when sound data is played, such as waving or liking.
[0074] For example, the data structure includes fImageName (image data), which can be matched with the corresponding image when playing sound data, such as when introducing Huangshan, an image of Huangshan appears in the background.
[0075] For example, the data structure includes fMP4Name (video data), which can be matched with the corresponding video when playing audio data, such as when introducing Xishuangbanna, a video of Xishuangbanna appears in the background.
[0076] For example, the data structure includes fRevMsgDelayTime (continuously received answer data that needs to be cached), which is used to receive data. If no data is received within 1 second, it is assumed that the question has been answered. Since the cloud answers are delivered continuously, this method is used to determine whether the question has been answered.
[0077] For example, the data structure includes szSid, where szSid refers to the ID corresponding to the answer.
[0078] For example, the data structure is built using C++ in Unreal Engine.
[0079] Furthermore, whether the special effects are implemented during audio playback, before audio playback, or after audio playback is determined by the technical staff, and this solution does not impose any restrictions here.
[0080] For example, when a digital human needs to perform a special action before playing audio, the Unreal Engine receives a flag, stores the flag in a data structure, and records the ID of the answer in szSid (all answers containing flags are processed in this way). When the special action corresponding to the flag is completed, the ID of the answer is copied to the action ID list to play the audio data, and the corresponding ID in szSid is cleared, waiting for the ID of the next answer.
[0081] Example 2
[0082] Based on the same concept, referencing Figure 3 This application also proposes a Unreal Engine digital human voice interaction device, comprising:
[0083] Module: Constructs a list of answer IDs in the Unreal Engine. The list of answer IDs includes an end ID list and a proceed ID list. The end ID list stores the answer IDs of the digital human after playback has ended, and the proceed ID list stores the answer IDs of the digital human currently playing and about to play.
[0084] First interaction module: acquires the first voice interaction content between the user and the digital human, sends the corresponding first answer based on the first voice interaction content in the cloud, stores the answer ID of the first answer in the process ID list, and stores the answer ID of the first answer in the end ID list after the first answer is played.
[0085] Second interaction module: When the digital human is playing the first answer and obtains the second voice interaction content between the user and the digital human again, the cloud obtains the second answer based on the second voice interaction content and stores the answer ID of the second answer in the ID list.
[0086] Example 3
[0087] This embodiment also provides an electronic device, see reference. Figure 4 It includes a memory 404 and a processor 402, the memory 404 storing a computer program and the processor 402 being configured to run the computer program to perform the steps in any of the above embodiments of the Unreal Engine digital human voice interaction method.
[0088] Specifically, the processor 402 may include a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits that can be configured to implement the embodiments of this application.
[0089] The memory 404 may include a mass storage device for data or instructions. For example, and not limitingly, the memory 404 may include a hard disk drive (HDD), a floppy disk drive, a solid-state drive (SSD), flash memory, an optical disk drive, a magneto-optical disk drive, magnetic tape, or a Universal Serial Bus (USB) drive, or a combination of two or more of these. Where appropriate, the memory 404 may include removable or non-removable (or fixed) media. Where appropriate, the memory 404 may be internal or external to a data processing device. In a particular embodiment, the memory 404 is non-volatile memory. In a particular embodiment, the memory 404 includes read-only memory (ROM) and random access memory (RAM). Where appropriate, the ROM may be a mask-programmed ROM, a programmable read-only memory (PROM), an erasable read-only memory (EPROM), an electrically erasable read-only memory (EEPROM), an electrically alterable read-only memory (EAROM), or flash memory, or a combination of two or more of these. Where appropriate, the RAM can be Static Random-Access Memory (SRAM) or Dynamic Random-Access Memory (DRAM). DRAM can be Fast Page Mode Dynamic Random-Access Memory (FPMDRAM), Extended Data Out Dynamic Random-Access Memory (EDODRAM), Synchronous Dynamic Random-Access Memory (SDRAM), etc.
[0090] The memory 404 can be used to store or cache various data files that need to be processed and / or communicated, as well as possible computer program instructions executed by the processor 402.
[0091] The processor 402 reads and executes computer program instructions stored in the memory 404 to implement any of the Unreal Engine digital human voice interaction methods in the above embodiments.
[0092] Optionally, the electronic device may further include a transmission device 406 and an input / output device 408, wherein the transmission device 406 is connected to the processor 402, and the input / output device 408 is connected to the processor 402.
[0093] The transmission device 406 can be used to receive or send data via a network. Specific examples of the network described above may include wired or wireless networks provided by the communication provider of the electronic device. In one example, the transmission device includes a Network Interface Controller (NIC), which can connect to other network devices via a base station to communicate with the Internet. In another example, the transmission device 406 may be a Radio Frequency (RF) module used for wireless communication with the Internet.
[0094] Input / output device 408 is used to input or output information. In this embodiment, the input information may be the voice interaction content between the user and the digital human, and the output information may be a first answer, a second answer, etc.
[0095] Optionally, in this embodiment, the processor 402 can be configured to perform the following steps via a computer program:
[0096] S101. Construct an answer ID list in the Unreal Engine. The answer ID list includes an end ID list and a progress ID list. The end ID list stores the answer IDs of the digital human after playback has ended. The progress ID list stores the answer IDs of the digital human currently playing and about to play.
[0097] S102. Obtain the first voice interaction content between the user and the digital human. The cloud sends the corresponding first answer according to the first voice interaction content. Store the answer ID of the first answer in the play ID list. After the first answer is played, store the answer ID of the first answer in the end ID list.
[0098] S103. When the digital human is playing the first answer and obtains the second voice interaction content between the user and the digital human again, the cloud obtains the second answer based on the second voice interaction content and stores the answer ID of the second answer in the ID list.
[0099] It should be noted that the specific examples in this embodiment can refer to the examples described in the above embodiments and optional implementations, and will not be repeated here.
[0100] Generally, various embodiments can be implemented in hardware or dedicated circuitry, software, logic, or any combination thereof. Some aspects of the invention can be implemented in hardware, while others can be implemented in firmware or software that can be executed by a controller, microprocessor, or other computing device, but the invention is not limited thereto. Although various aspects of the invention may be shown and described as block diagrams, flowcharts, or using some other graphical representation, it should be understood that, by way of non-limiting example, these blocks, apparatuses, systems, techniques, or methods described herein can be implemented in hardware, software, firmware, dedicated circuitry or logic, general-purpose hardware or controllers or other computing devices, or some combination thereof.
[0101] Embodiments of the present invention can be implemented by computer software, which may be executable by a data processor of a mobile device, such as a processor entity, or by hardware, or by a combination of software and hardware. Computer software or programs (also referred to as program products) including software routines, applets, and / or macros can be stored in any device-readable data storage medium, and they include program instructions for performing specific tasks. The computer program product may include one or more computer-executable components configured to perform the embodiments when the program is run. The one or more computer-executable components may be at least one piece of software code or a portion thereof. Additionally, it should be noted in this respect that, as Figure 4 Any box in the logical flow can represent a program step, or interconnected logic circuits, boxes and functions, or a combination of program steps and logic circuits, boxes and functions. Software can be stored on physical media such as memory chips or blocks of storage implemented within a processor, magnetic media such as hard disks or floppy disks, and optical media such as DVDs and their data variants, CDs, etc. The physical medium is a non-transient medium.
[0102] Those skilled in the art should understand that the technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments have been described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0103] The above embodiments are merely illustrative of several implementation methods of this application, and their descriptions are relatively specific and detailed, but they should not be construed as limiting the scope of this application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.
Claims
1. A voice interaction method for digital humans using Unreal Engine, characterized in that, Includes the following steps: A list of answer IDs is constructed in the Unreal Engine. The list of answer IDs includes an end ID list and a proceed ID list. The end ID list stores the answer IDs of the digital human after playback has ended, and the proceed ID list stores the answer IDs of the digital human currently playing and about to play. The system acquires the first voice interaction content between the user and the digital human, sends the corresponding first answer based on the first voice interaction content, stores the answer ID of the first answer in the process ID list, and stores the answer ID of the first answer in the end ID list after the first answer has been played. When the digital human is playing the first answer and then acquires the second voice interaction content between the user and the digital human, if the playback is normal, the cloud obtains the second answer based on the second voice interaction content, stores the answer ID of the second answer in the process ID list, and the digital human plays the answers in the process ID list according to the storage order of the process ID list; if the playback is interrupted by the user, the user's interruption command is acquired, a virtual auto-incrementing ID is constructed for the corresponding answer in the process ID list based on the interruption command, and the virtual auto-incrementing ID is stored in the end ID list, so that the system considers the corresponding answer to have finished playing, and all data subsequently sent by the cloud becomes expired data; if the playback is interrupted automatically, the answer ID of the first answer is automatically stored in the end ID list, and the second answer is played; a data structure is constructed, and special behaviors that the digital human can perform are defined in the strings of the data structure. A flag bit is added to the answers sent by the cloud. When the flag bit is recognized, the digital human is controlled to perform special behaviors according to the content of the flag bit and the content of different strings in the data structure.
2. The Unreal Engine digital human voice interaction method according to claim 1, characterized in that, In the step of "storing the answer ID of the first answer into the process ID list", the cloud constructs an answer ID for each answer of the voice interaction content when sending the answer. When the digital human receives the answer sent by the cloud, it stores the answer ID corresponding to the answer into the process ID list.
3. The Unreal Engine digital human voice interaction method according to claim 1, characterized in that, A blacklist mode is set up, and a blacklist ID list is constructed. The answer IDs issued for voice interaction content are stored in the blacklist ID list. The function of the blacklist ID list is the same as the end ID list. When the voice interaction content is a command message, the cloud identifies and executes the corresponding command.
4. A Unreal Engine digital human voice interaction device, characterized in that, include: Module: Constructs a list of answer IDs in the Unreal Engine. The list of answer IDs includes an end ID list and a proceed ID list. The end ID list stores the answer IDs of the digital human after playback has ended, and the proceed ID list stores the answer IDs of the digital human currently playing and about to play. First interaction module: acquires the first voice interaction content between the user and the digital human, sends the corresponding first answer based on the first voice interaction content in the cloud, stores the answer ID of the first answer in the process ID list, and stores the answer ID of the first answer in the end ID list after the first answer is played. The second interaction module: When the digital human is playing the first answer and obtains the second voice interaction content between the user and the digital human again, if the playback is normal, the cloud obtains the second answer based on the second voice interaction content, stores the answer ID of the second answer in the process ID list, and the digital human plays the answers in the process ID list according to the storage order of the process ID list; if the interruption is caused by the user, the interruption command is obtained, a virtual auto-incrementing ID is constructed for the corresponding answer in the process ID list based on the interruption command, and the virtual auto-incrementing ID is stored in the end ID list, so that the system considers the corresponding answer to have finished playing, and all data subsequently sent by the cloud becomes expired data; if the interruption is automatic, the answer ID of the first answer is automatically stored in the end ID list, and the second answer is played; a data structure is constructed, and special behaviors that the digital human can perform are defined in the strings of the data structure. A flag bit is added to the answers sent by the cloud. When the flag bit is recognized, the digital human is controlled to perform special behaviors according to the content of the flag bit and the content of different strings in the data structure.
5. An electronic device comprising a memory and a processor, characterized in that, The memory stores a computer program, and the processor is configured to run the computer program to perform a Unreal Engine digital human voice interaction method as described in any one of claims 1 to 3.
6. A readable storage medium, characterized in that, The readable storage medium stores a computer program, the computer program including program code for controlling a process to execute the process, the process including a Unreal Engine digital human voice interaction method according to any one of claims 1 to 3.
Citation Information
Patent Citations
Voice conversation historical information recording method, device and system
CN109462546A
Vehicle-mounted voice interaction method and device, vehicle and readable medium
CN112614491A
Intelligent voice interaction interruption processing method, device and system
CN113113013A
Digital human rendering method and device, storage medium and electronic equipment
CN113886551A
Virtual character driving method, system and equipment based on multi-modal data
CN114840090A