Cloud augmented reality XR voice interaction method, device and system, electronic equipment and storage medium
By deploying virtual audio drivers on the XR server end of the cloud XR system, processing and transmitting the original input audio of the XR client, the high power consumption problem caused by the limited capability of the VR headset processor is solved, and lightweight clients and efficient voice interaction are achieved.
Patent Information
- Application Number
- CN202411958427.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-27
- Publication Date
- 2025-04-11
AI Technical Summary
Voice interaction in existing cloud extension reality (XR) is difficult to effectively run complex XR applications due to the limited capabilities of VR headset processors.
The high-power target XR application for voice interaction is run on the XR server of the cloud XR system. By receiving the original input audio sent by the XR client, and deploying virtual audio drivers in the XR server to perform audio processing and transmission, realizing voice interaction between the XR client and the XR server.
By transferring audio processing and transmission to the XR server, the graphics processing burden of the XR client is reduced, the power consumption of the client is reduced, and the lightweight client and efficient voice interaction are achieved.
Smart Images

Figure CN119811385A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technology, and in particular to a cloud extended reality (XR) voice interaction method, device and system, electronic device and storage medium. Background Art
[0002] At present, voice interaction in cloud extended reality (XR) is done through the microphone and speaker on the virtual reality (VR) helmet, which directly conducts real-time voice calls with XR applications. In applications such as virtual reality conferences and virtual reality digital humans, the audio data from the microphone on the helmet is collected and sent to the server, which processes the response audio data and sends it back to the client, which is played through the speaker on the client's VR helmet. However, due to the limited processor power of VR helmets, running complex applications such as XR conferences and XR digital humans consumes a lot of power. Summary of the invention
[0003] The present invention discloses a technical solution of a cloud extended reality (XR) voice interaction method, device and system, electronic device and storage medium.
[0004] According to one aspect of the present disclosure, a cloud extended reality (XR) voice interaction method is provided, which is applied to an XR server, and includes: receiving original input audio sent by an XR client; writing target input audio to a virtual audio driver deployed in the XR server according to the original input audio; reading the target input audio from the virtual audio driver, and sending the target input audio to a target XR application running in the XR server.
[0005] In a possible implementation, writing the target input audio to the virtual audio driver deployed in the XR server according to the original input audio includes: performing audio processing on the original input audio to obtain the target input audio; and writing the target input audio to the virtual audio driver.
[0006] In one possible implementation, the virtual audio driver includes: a virtual speaker; writing the target input audio to the virtual audio driver includes: using a direct memory access (DMA) transmission method to read the target input audio from a DMA cache; and writing the target input audio to the virtual speaker based on the device ID of the virtual speaker.
[0007] In a possible implementation, the virtual audio driver includes: a circular buffer; the method further includes: based on the virtual speaker, sending the target input audio to the circular buffer for storage.
[0008] In a possible implementation, the virtual audio driver includes: a virtual microphone; reading the target input audio from the virtual audio driver and sending the target input audio to the target XR application running in the XR server includes: based on the virtual microphone, reading the target input audio from the ring buffer, and writing the target input audio to a DMA cache; based on a target application program interface API, transmitting the target input audio from the DMA cache to the target XR application.
[0009] In a possible implementation, the method further includes: acquiring target output audio output by the target XR application; and sending the target output audio to the XR client, so that the XR client plays the target output audio.
[0010] According to one aspect of the present disclosure, a cloud XR voice interaction device is provided, which is applied to an XR server, and includes: an audio receiving module, used to receive original input audio sent by an XR client; an audio writing module, used to write target input audio to a virtual audio driver deployed in the XR server according to the original input audio; an audio transmission module, used to read the target input audio from the virtual audio driver, and send the target input audio to a target XR application running in the XR server.
[0011] According to one aspect of the present disclosure, a cloud XR voice interaction system is provided, including: an XR server and an XR client; the XR client is used to send original input audio to the XR server; the XR server is used to receive the original input audio, and write target input audio to a virtual audio driver deployed in the XR server according to the original input audio; the XR server is used to read the target input audio from the virtual audio driver, and send the target input audio to a target XR application running in the XR server.
[0012] According to one aspect of the present disclosure, an electronic device is provided, comprising: a processor; and a memory for storing processor-executable instructions; wherein the processor is configured to call the instructions stored in the memory to execute the above method.
[0013] According to one aspect of the present disclosure, a computer-readable storage medium is provided, on which computer program instructions are stored, and the computer program instructions implement the above method when executed by a processor.
[0014] In the disclosed embodiment, a high-power target XR application for voice interaction is run on the XR server of the cloud XR system. The XR server receives the original input audio sent by the XR client, and writes the target input audio to the virtual audio driver deployed in the XR server based on the original input audio, so that the target input audio can be read from the virtual audio driver, and the target input audio is sent to the target XR application. Since the target XR application runs on the XR server, the XR client can be lightweight, and the virtual audio technology can be used to effectively realize the voice interaction between the XR server and the XR client.
[0015] It should be understood that the above general description and the following detailed description are exemplary and explanatory only and do not limit the present disclosure. Other features and aspects of the present disclosure will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The drawings herein are incorporated into the specification and constitute a part of the specification. These drawings illustrate embodiments consistent with the present disclosure and are used to illustrate the technical solutions of the present disclosure together with the specification.
[0017] Figure 1 A flowchart of a cloud XR voice interaction method according to an embodiment of the present disclosure is shown.
[0018] Figure 2 A block diagram of a cloud XR voice interaction system according to an embodiment of the present disclosure is shown.
[0019] Figure 3 A block diagram of a cloud XR voice interaction device according to an embodiment of the present disclosure is shown.
[0020] Figure 4 A block diagram of a cloud XR voice interaction system according to an embodiment of the present disclosure is shown.
[0021] Figure 5 A block diagram of an electronic device according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION
[0022] Various exemplary embodiments, features and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. The same reference numerals in the accompanying drawings represent elements with the same or similar functions. Although various aspects of the embodiments are shown in the accompanying drawings, the drawings are not necessarily drawn to scale unless otherwise specified.
[0023] The word “exemplary” is used exclusively herein to mean “serving as an example, example, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
[0024] The term "and / or" herein is only a description of the association relationship of the associated objects, indicating that there may be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the term "at least one" herein represents any combination of at least two of any one or more of a plurality of. For example, including at least one of A, B, and C can represent including any one or more elements selected from the set consisting of A, B, and C.
[0025] In addition, in order to better illustrate the present disclosure, numerous specific details are given in the following specific embodiments. It should be understood by those skilled in the art that the present disclosure can also be implemented without certain specific details. In some examples, methods, means, components and circuits well known to those skilled in the art are not described in detail in order to highlight the subject matter of the present disclosure.
[0026] Figure 1 A flow chart of a cloud XR voice interaction method according to an embodiment of the present disclosure is shown. The method is applied to the XR server, such as Figure 1 As shown, the method includes:
[0027] In step S11, the original input audio sent by the XR client is received.
[0028] The cloud XR voice interaction system includes: XR server and XR client.
[0029] In one example, the XR server is the core part of the cloud XR voice interaction system, which is mainly responsible for data processing and data transmission. The XR server is deployed on the server.
[0030] In one example, the XR client provides an interface for direct interaction with the user, is responsible for displaying virtual content in the interface, and performs voice interaction with the user. The XR client is deployed in the user's head-mounted electronic display device (e.g., a VR helmet).
[0031] In the related art, XR applications (for example, XR conferences, XR digital humans, etc.) run on the XR client. However, due to the limited processor capabilities of the head-mounted electronic display device, the power consumption of the head-mounted electronic display device is relatively high.
[0032] In the disclosed embodiment, the target XR application that requires voice interaction is run on the XR server, and the user can start the XR server and further start the target XR application based on the XR client on the head-mounted electronic display device.
[0033] GStreamer is an open source multimedia framework for creating various complex audio and video processing pipelines. It provides a rich set of APIs that allow developers to easily implement audio and video capture, encoding, decoding, processing, and playback. In the cloud XR voice interaction system, the XR client is generally an Android operating system, and the XR server is generally a Windows or Linux operating system. GStreamer has cross-platform features and can run on multiple operating systems. Therefore, cross-platform voice interaction between XR clients and XR servers can be implemented based on GStreamer.
[0034] After the XR server is started, it detects the connection of the XR client. After receiving the posture data sent by the XR client, the XR server obtains the image and audio data of the currently running target XR application based on the posture data, and encodes the obtained image and audio data and transmits it to the XR client (for example, via the network or USB cable).
[0035] In one example, a hardware speaker is deployed on the head-mounted electronic display device. After the XR client receives the image and audio data, it decodes the image and draws it on the display screen of the head-mounted electronic display device, and decodes the audio data and plays it through the hardware speaker. Compared with the related art of running the target XR application on the XR client, which requires executing a large number of graphics drawing instructions on the XR client, the embodiment of the present disclosure only needs to draw two images of the left and right eyes on the XR client, which can greatly reduce the work of the graphics processor corresponding to the XR client and reduce power consumption.
[0036] The embodiments of the present disclosure focus on the voice interaction process between the XR client and the XR server in the cloud XR voice interaction system. Figure 2 A block diagram of a cloud XR voice interaction system according to an embodiment of the present disclosure is shown. Figure 2 As shown, the cloud XR voice interaction system includes: XR client and XR server.
[0037] In one example, after the XR server is started, the GStreamer integrated in the XR server creates an audio capture pipeline. Based on the audio capture pipeline, the audio data of the target XR application is obtained, and then the audio data of the target XR application is sent to the XR client. Figure 2 As shown, the XR server obtains audio data based on the audio capture pipeline, and encodes the audio data and sends it to the XR client.
[0038] In one example, after the XR client is started, the GStreamer integrated in the XR client creates and starts the audio capture pipeline and the playback pipeline. Figure 2 A block diagram of a cloud XR voice interaction system according to an embodiment of the present disclosure is shown. Figure 2As shown in FIG. 1 , after the XR client is started, the audio capture pipeline and the audio playback pipeline are further started.
[0039] In one example, a hardware speaker is deployed on the head-mounted electronic display device. Based on the audio playback pipeline, the XR client receives the audio data of the target XR application sent by the XR server, and then plays the audio data using the hardware speaker. Figure 2 As shown, the XR client receives the audio data sent by the XR server based on the audio playback pipeline, and plays the audio data.
[0040] In one example, a hardware microphone is deployed on the head-mounted electronic display device, and the hardware microphone can obtain the original input audio of the target user using the head-mounted electronic display device.
[0041] The XR client obtains the original input audio of the target user based on the hardware microphone input, and sends the original input audio to the XR server.
[0042] In the audio capture pipeline of the XR client, the openslessrc plug-in in GStreamer is used to obtain the original input audio of the hardware microphone. Then, the original input audio is encoded based on the appsink plug-in in GStreamer and sent to the XR server. Figure 2 As shown, the XR client obtains the original input audio based on the audio capture pipeline, and sends the original input audio to the XR server.
[0043] In step S12, the target input audio is written to the virtual audio driver deployed in the XR server according to the original input audio.
[0044] A virtual audio driver is deployed in the XR server. The virtual audio driver is used to implement voice interaction between the XR client and the target XR application running in the XR server based on virtual audio technology.
[0045] After receiving the original input audio sent by the XR client, the XR server writes the target input audio to the virtual audio driver deployed in the XR server. The target input audio is obtained based on the original input audio.
[0046] The specific process of how to write the target input audio to the virtual audio driver deployed in the XR server based on the initial input audio will be described in detail later in combination with possible implementation methods of the present disclosure, which will not be repeated here.
[0047] In step S13, the target input audio is read from the virtual audio driver, and the target input audio is sent to the target XR application running in the XR server.
[0048] Based on the virtual audio driver, the target input audio is sent to the target XR application running in the XR server to achieve voice interaction between the XR client and the target XR application.
[0049] The following text will describe in detail how to read the target input audio from the virtual audio driver and send the target input audio to the target XR application running in the XR server in combination with possible implementation methods of the present disclosure, which will not be repeated here.
[0050] In the disclosed embodiment, a high-power target XR application for voice interaction is run on the XR server of the cloud XR system. The XR server receives the original input audio sent by the XR client, and writes the target input audio to the virtual audio driver deployed in the XR server based on the original input audio, so that the target input audio can be read from the virtual audio driver, and the target input audio is sent to the target XR application. Since the target XR application runs on the XR server, the XR client can be lightweight, and the virtual audio technology can be used to effectively realize the voice interaction between the XR server and the XR client.
[0051] In one example, after the virtual audio driver of the XR server is started, a virtual speaker and a virtual microphone device are created, where the virtual speaker is used as an audio rendering device and the virtual microphone is used as an audio capture device.
[0052] In one example, after the XR server is started, the audio write thread is started, and then an audio write pipeline is created in the thread based on GStreamer. Add the GStreamer appsrc component as the data source in the audio write pipeline, set the data input function callback of the data source to provide data (target input audio) for the data source; add audioconvert, audioresample and other audio conversion and decoding components in the audio write pipeline; finally, add the output target component (for example, wasapi2sink on Windows), obtain the device ID of the virtual speaker based on the GStreamer device monitor, and set the device ID of the virtual speaker as the output device of the output target component. Using the audio write pipeline, audio data can be written to the virtual audio driver through the virtual speaker. For example Figure 2 As shown, the XR server obtains the device ID of the virtual speaker, and then creates and opens an audio write pipeline based on the device ID of the virtual speaker.
[0053] In a possible implementation, target input audio is written to a virtual audio driver deployed in an XR server according to original input audio, including: performing audio processing on the original input audio to obtain target input audio; and writing the target input audio to the virtual audio driver.
[0054] After the XR server receives the original input audio sent by the XR client based on the audio write pipeline, it first performs audio processing on the original input audio to obtain the target input audio. The specific processing operation of the audio processing can be based on user configuration or the default setting of the XR server, for example, including: background denoising, adding background music, voice changing, translation, etc., which is not specifically limited in this disclosure. Figure 2 As shown, the XR server receives the original input audio sent by the XR server, and then processes the original input audio to obtain the target input audio.
[0055] In one example, an audio processing module is set in the XR server. After the XR server receives the original input audio sent by the XR client based on the audio write pipeline, it first sends the original input audio to the audio processing module, and then uses the audio processing module to perform audio processing on the original input audio to obtain the target input audio. The specific form of the audio processing module can be flexibly set according to the actual usage, and this disclosure does not make specific limitations on this.
[0056] Compared with the prior art that requires audio processing of the original input audio on the XR client, the embodiments of the present disclosure transfer the audio processing operation to the XR server for execution, which can effectively realize the lightweight of the XR client.
[0057] After the original input audio is processed to obtain the target input audio, the target input audio can be written to the virtual audio driver based on the audio writing pipeline.
[0058] In one possible implementation, the virtual audio driver includes: a virtual speaker; writing the target input audio to the virtual audio driver includes: using a direct memory access (Data Memory Access, DMA) transmission method to read the target input audio from a DMA cache; based on the device ID of the virtual speaker, writing the target input audio to the virtual speaker.
[0059] After the original input audio is processed as above and the target input audio is obtained, the target input audio can be sent to the DMA cache for caching. Then, when the audio write pipeline writes data to the virtual audio driver, the target input audio can be read from the DMA cache and then written to the virtual speaker based on the device ID of the virtual speaker. Figure 2 As shown, the target input audio is written to the virtual speaker.
[0060] In a possible implementation, the virtual audio driver includes: a ring buffer; the method further includes: based on the virtual speaker, sending the target input audio to the ring buffer for storage.
[0061] In order to ensure the continuity and consistency of the audio data, after the target input audio is written to the virtual speaker, the target input audio can be further sent to a ring buffer in the virtual driver audio for storage.
[0062] In one possible implementation, the virtual audio driver includes: a virtual microphone; reading target input audio from the virtual audio driver, and sending the target input audio to the target XR application running in the XR server, including: based on the virtual microphone, reading the target input audio from the ring buffer, and writing the target input audio to the DMA cache; based on the target application program interface API, transmitting the target input audio from the DMA cache to the target XR application.
[0063] When the target XR application reads data from the virtual audio driver, first, based on the virtual microphone, the target input audio is read from the ring buffer, and then the target input audio is written to the DMA cache. At this point, the target XR application can read the target input audio from the DMA cache based on the target API. At this point, the audio input of the XR client is effectively transmitted to the target XR running in the XR server, realizing voice interaction between the XR client and the XR server. Figure 2 As shown, the target XR application reads the target input audio from the virtual microphone.
[0064] In a possible implementation, the method further includes: acquiring target output audio output by the target XR application; and sending the target output audio to the XR client, so that the XR client plays the target output audio.
[0065] The XR server can obtain the target output audio output by the target XR application based on the audio capture pipeline. The target output audio can be the response audio data of the target XR application based on the target input audio, or it can be the response audio data of the target XR application based on the posture data sent by the XR client, which is not specifically limited in this disclosure.
[0066] In the disclosed embodiment, a high-power target XR application for voice interaction is run on the XR server of the cloud XR system. The XR server receives the original input audio sent by the XR client, and writes the target input audio to the virtual audio driver deployed in the XR server based on the original input audio, so that the target input audio can be read from the virtual audio driver, and the target input audio is sent to the target XR application. Since the target XR application runs on the XR server, the XR client can be lightweight, and the virtual audio technology can be used to effectively realize the voice interaction between the XR server and the XR client.
[0067] It can be understood that the above-mentioned various method embodiments mentioned in the present disclosure can be combined with each other to form a combined embodiment without violating the principle logic. Due to space limitations, the present disclosure will not repeat them. It can be understood by those skilled in the art that in the above-mentioned method of the specific implementation method, the specific execution order of each step should be determined according to its function and possible internal logic.
[0068] In addition, the present disclosure also provides a cloud XR voice interaction device and system, an electronic device, a computer-readable storage medium, and a program, all of which can be used to implement any cloud XR voice interaction method provided by the present disclosure. The corresponding technical solutions and descriptions are referred to in the corresponding records of the method part and will not be repeated here.
[0069] Figure 3 A block diagram of a cloud XR voice interaction device according to an embodiment of the present disclosure is shown. The device is applied to an XR server. Figure 3 As shown, the device 30 includes:
[0070] The audio receiving module 31 is used to receive the original input audio sent by the XR client;
[0071] The audio writing module 32 is used to write the target input audio to the virtual audio driver deployed in the XR server according to the original input audio;
[0072] The audio transmission module 33 is used to read the target input audio from the virtual audio driver and send the target input audio to the target XR application running in the XR server.
[0073] In a possible implementation, the audio writing module 32 is specifically configured to:
[0074] Performing audio processing on the original input audio to obtain the target input audio;
[0075] Writes the target input audio to the virtual audio driver.
[0076] In a possible implementation, the virtual audio driver includes: a virtual speaker;
[0077] The audio writing module 32 is specifically used for:
[0078] Using DMA transfer mode, read the target input audio from the DMA buffer;
[0079] Writes the target input audio to the virtual speaker based on the virtual speaker's device ID.
[0080] In a possible implementation, the virtual audio driver includes: a ring buffer;
[0081] Based on the virtual speakers, the target input audio is sent to a ring buffer for storage.
[0082] In a possible implementation, the virtual audio driver includes: a virtual microphone;
[0083] The audio transmission module 33 is specifically used for:
[0084] Based on the virtual microphone, read the target input audio from the ring buffer and write the target input audio to the DMA buffer;
[0085] Based on the target API, the target input audio is transferred from the DMA buffer to the target XR application.
[0086] In a possible implementation, the device 30 further includes:
[0087] An audio acquisition module, used to acquire the target output audio output by the target XR application;
[0088] The audio sending module is used to send the target output audio to the XR client so that the XR client plays the target output audio.
[0089] Figure 4 A block diagram of a cloud XR voice interaction system according to an embodiment of the present disclosure is shown. Figure 4 As shown, the device 40 includes: an XR server 41, an XR client 42;
[0090] The XR client 41 is used to send the original input audio to the XR server;
[0091] The XR server 42 is used to receive the original input audio, and write the target input audio to the virtual audio driver deployed in the XR server according to the original input audio;
[0092] The XR server is used to read the target input audio from the virtual audio driver and send the target input audio to the target XR application running in the XR server.
[0093] This method has a specific technical connection with the internal structure of the computer system, and can solve the technical problem of how to improve the hardware computing efficiency or execution effect (including reducing the amount of data storage, reducing the amount of data transmission, increasing the hardware processing speed, etc.), thereby obtaining the technical effect of improving the internal performance of the computer system in accordance with the laws of nature.
[0094] In some embodiments, the functions or modules included in the device provided by the embodiments of the present disclosure can be used to execute the method described in the above method embodiments. The specific implementation can refer to the description of the above method embodiments, and for the sake of brevity, it will not be repeated here.
[0095] The embodiment of the present disclosure also provides a computer-readable storage medium on which computer program instructions are stored, and the computer program instructions implement the above method when executed by a processor. The computer-readable storage medium can be a volatile or non-volatile computer-readable storage medium.
[0096] An embodiment of the present disclosure further proposes an electronic device, comprising: a processor; and a memory for storing instructions executable by the processor; wherein the processor is configured to call the instructions stored in the memory to execute the above method.
[0097] The embodiments of the present disclosure also provide a computer program product, including a computer-readable code, or a non-volatile computer-readable storage medium carrying the computer-readable code. When the computer-readable code runs in a processor of an electronic device, the processor in the electronic device executes the above method.
[0098] The electronic device may be provided as a terminal, a server, or a device in other forms.
[0099] Figure 5 A block diagram of an electronic device according to an embodiment of the present disclosure is shown. Figure 5 , the electronic device 1900 can be provided as a server or a terminal device. Figure 5 , the electronic device 1900 includes a processing component 1922, which further includes one or more processors, and a memory resource represented by a memory 1932 for storing instructions executable by the processing component 1922, such as an application. The application stored in the memory 1932 may include one or more modules, each corresponding to a set of instructions. In addition, the processing component 1922 is configured to execute instructions to perform the above method.
[0100] The electronic device 1900 may also include a power supply component 1926 configured to perform power management of the electronic device 1900, a wired or wireless network interface 1950 configured to connect the electronic device 1900 to a network, and an input / output interface 1958. The electronic device 1900 may operate based on an operating system stored in the memory 1932, such as a Microsoft Server operating system (Windows Server 2003). TM ), a graphical user interface operating system launched by Apple (Mac OS X TM ), a multi-user, multi-process computer operating system (Unix TM ), a free and open source Unix-like operating system (Linux TM ), an open source Unix-like operating system (FreeBSD TM ) or similar.
[0101] In an exemplary embodiment, a non-volatile computer-readable storage medium is also provided, such as a memory 1932 including computer program instructions, which can be executed by the processing component 1922 of the electronic device 1900 to perform the above method.
[0102] The present disclosure may be a system, a method and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for causing a processor to implement various aspects of the present disclosure.
[0103] Computer readable storage medium can be a tangible device that can hold and store instructions used by an instruction execution device. Computer readable storage medium can be, for example, (but not limited to) an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (non-exhaustive list) of computer readable storage medium include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, for example, a punch card or a convex structure in a groove on which instructions are stored, and any suitable combination thereof. The computer readable storage medium used here is not interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (for example, a light pulse by an optical fiber cable), or an electrical signal transmitted by a wire.
[0104] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.
[0105] The computer program instructions for performing the operation of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages, such as Smalltalk, C++, etc., and conventional procedural programming languages, such as "C" language or similar programming languages. Computer-readable program instructions may be executed completely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or completely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be customized by utilizing the state information of the computer-readable program instructions, and the electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.
[0106] Various aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of the methods, devices (systems) and computer program products according to the embodiments of the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0107] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0108] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0109] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of the module, program segment or instruction includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs the specified function or action, or can be implemented with a combination of special hardware and computer instructions.
[0110] The computer program product may be implemented in hardware, software or a combination thereof. In one optional embodiment, the computer program product is embodied as a computer storage medium, and in another optional embodiment, the computer program product is embodied as a software product, such as a software development kit (SDK) and the like.
[0111] The above description of various embodiments tends to emphasize the differences between the various embodiments. The same or similar aspects can be referenced to each other, and for the sake of brevity, they will not be repeated herein.
[0112] Those skilled in the art will appreciate that, in the above method of specific implementation, the order in which the steps are written does not imply a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of the steps should be determined by their functions and possible internal logic.
[0113] If the technical solution of this application involves personal information, the product using the technical solution of this application has clearly informed the personal information processing rules and obtained the individual's voluntary consent before processing the personal information. If the technical solution of this application involves sensitive personal information, the product using the technical solution of this application has obtained the individual's separate consent before processing the sensitive personal information, and at the same time meets the "explicit consent" requirement. For example, on personal information collection devices such as cameras, clear and prominent signs are set to inform that the personal information collection scope has been entered and personal information will be collected. If the individual voluntarily enters the collection scope, it is deemed that he or she agrees to the collection of his or her personal information; or on the device that processes personal information, the personal information processing rules are notified by obvious signs / information, and the individual's authorization is obtained through pop-up information or by asking the individual to upload his or her personal information; among them, the personal information processing rules may include information such as the personal information processor, the purpose of personal information processing, the processing method, and the type of personal information processed.
[0114] The embodiments of the present disclosure have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and changes will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The selection of terms used herein is intended to best explain the principles of the embodiments, practical applications, or improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A cloud extended reality XR voice interaction method, characterized in that: The method is applied to the XR server, and the method includes: Receive the original input audio sent by the XR client; Writing target input audio to a virtual audio driver deployed in the XR server according to the original input audio; The target input audio is read from the virtual audio driver, and the target input audio is sent to a target XR application running in the XR server.
2. The method according to claim 1, characterized in that The step of writing the target input audio to the virtual audio driver deployed in the XR server according to the original input audio includes: Performing audio processing on the original input audio to obtain the target input audio; The target input audio is written to the virtual audio driver.
3. The method according to claim 2, characterized in that The virtual audio driver includes: a virtual speaker; Writing the target input audio into the virtual audio driver comprises: Using a direct memory access (DMA) transmission mode, the target input audio is read from a DMA buffer; The target input audio is written to the virtual speaker based on the device ID of the virtual speaker.
4. The method according to claim 3, characterized in that The virtual audio driver includes: a ring buffer; The method further comprises: Based on the virtual speaker, the target input audio is sent to the ring buffer for storage.
5. The method according to claim 4, characterized in that The virtual audio driver includes: a virtual microphone; The reading the target input audio from the virtual audio driver and sending the target input audio to the target XR application running in the XR server includes: Based on the virtual microphone, read the target input audio from the ring buffer, and write the target input audio to a DMA cache; Based on a target application programming interface (API), the target input audio is transmitted from the DMA buffer to the target XR application.
6. The method according to claim 1, characterized in that The method further comprises: Obtain target output audio output by the target XR application; The target output audio is sent to the XR client, so that the XR client plays the target output audio.
7. A cloud XR voice interaction device, characterized in that: The device is applied to an XR server, and the device includes: The audio receiving module is used to receive the original input audio sent by the XR client; An audio writing module, used to write target input audio to a virtual audio driver deployed in the XR server according to the original input audio; An audio transmission module is used to read the target input audio from the virtual audio driver and send the target input audio to a target XR application running in the XR server.
8. A cloud XR voice interaction system, characterized in that: include: XR server, XR client; The XR client is used to send the original input audio to the XR server; The XR server is configured to receive the original input audio, and write the target input audio to the virtual audio driver deployed in the XR server according to the original input audio; The XR server is used to read the target input audio from the virtual audio driver and send the target input audio to the target XR application running in the XR server.
9. An electronic device, characterized in that: include: processor; a memory for storing processor-executable instructions; The processor is configured to call the instructions stored in the memory to execute the method according to any one of claims 1 to 6.
10. A computer-readable storage medium having computer program instructions stored thereon, characterized in that: When the computer program instructions are executed by a processor, the method according to any one of claims 1 to 6 is implemented.