Methods, systems, devices, vehicle-side control equipment, and storage media for executing voice commands
By recognizing and managing keyword groups in voice commands to create subtask queues, executing and saving task data, the problem of in-vehicle voice assistant systems being unable to execute complex commands is solved, improving user experience and system intelligence.
Patent Information
- Application Number
- CN202411219462.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-02
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2044-09-02
AI Technical Summary
Existing in-vehicle voice assistant systems cannot effectively execute complex multi-step commands, forcing users to break down simple commands into multiple parts, which reduces the user experience.
By recognizing keyword groups in a single voice command, corresponding subtasks are created and added to the queue of tasks to be executed. The executor is then triggered to execute each subtask, the execution data is saved to the queue of completed tasks, and the task execution results are output to the queue of completed tasks.
It enables efficient execution of multi-step instructions, reduces the number of times users need to repeat instructions, and improves the intelligence level and user experience of the speech recognition system.
Smart Images

Figure CN119993138B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of speech recognition technology, and in particular to a method, system, device, vehicle-side control equipment, and storage medium for executing voice commands. Background Technology
[0002] With the development of voice recognition technology, more and more smart devices are equipped with voice assistant systems. For example, many vehicles are already equipped with voice assistant systems. When processing user commands, existing in-vehicle voice assistant systems usually rely on pre-programmed instruction sets and simple semantic understanding capabilities. These systems often cannot execute complex multi-step instructions and can only execute single-step instructions. This causes users to need to break down multiple required instructions into multiple simple instructions for execution, resulting in low efficiency of multi-step instruction execution and reduced user experience. Summary of the Invention
[0003] Therefore, it is necessary to provide a method, system, device, vehicle-side control equipment, computer-readable storage medium, and computer program product capable of executing voice commands that can realize multi-step instructions, in order to address the above-mentioned technical problems.
[0004] Firstly, this application provides a method for executing voice commands, comprising:
[0005] Recognize a single voice command to obtain at least two keyword groups, create at least two corresponding subtasks based on the keyword groups, and add them to the same queue of tasks to be executed;
[0006] If the subtask is detected to be included in the queue of tasks to be executed, a preset executor is triggered to execute each subtask, so as to obtain the execution data corresponding to each subtask respectively, and save the execution data of each subtask to the queue of completed tasks.
[0007] If the completed task queue is found to contain execution data of at least two of the sub-tasks, the associated application is triggered to output the task execution result of the voice command based on the execution data of at least two of the sub-tasks.
[0008] In one embodiment, when the subtask is detected to be included in the task queue to be executed, triggering a preset executor to execute each subtask to obtain the execution data corresponding to each subtask, and saving the execution data of each subtask to the completed task queue, includes:
[0009] If the task queue to be executed is found to include the subtask, the subtask whose scheduling order is the first is extracted based on the scheduling order of the multiple subtasks.
[0010] Trigger a preset executor to execute the extracted subtask, obtain the execution data corresponding to the subtask, and save the execution data to the completed task queue;
[0011] The queue of tasks to be executed is identified again until the execution data of each subtask in the queue of tasks to be executed is saved to the queue of completed tasks.
[0012] In one embodiment, saving the execution data to the completed task queue includes:
[0013] The execution data is saved to the task data model associated with the corresponding subtask, and the task data model is saved to the completed task queue; wherein, the task data model is used to indicate the execution method of the execution data.
[0014] In one embodiment, triggering the associated application to output the task execution result of the voice command based on the execution data of at least two sub-tasks when the completed task queue is identified as including the execution data of at least two sub-tasks includes:
[0015] If it is detected that the completed task queue includes at least two of the task data models, the associated application is triggered to output the task execution result of the voice command based on the execution method indicated by the execution data of the at least two task data models respectively.
[0016] In one embodiment, the step of executing the extracted subtask to obtain execution data corresponding to the subtask includes:
[0017] Execute the extracted subtask to obtain the candidate data table output by the associated application pointed to by the subtask;
[0018] The voice command outputter is guided to select target execution data from the candidate data table via voice and / or display.
[0019] The selected target execution data is obtained as the execution data corresponding to the subtask.
[0020] In one embodiment, it further includes:
[0021] If the subtask is not found in the queue of tasks to be executed and the execution data is not found in the queue of completed tasks, a prompt message is output to guide the outputter of the voice command to re-enter the voice command.
[0022] Secondly, this application also provides a voice command execution system, comprising:
[0023] A speech recognition system is used to recognize a single speech command to obtain at least two keyword groups;
[0024] A task scheduler is used to create at least two corresponding subtasks based on the keyword group and add them to the same queue of tasks to be executed;
[0025] The task scheduler is further configured to, when it is detected that the task queue to be executed includes the sub-task, call the task executor to execute each of the sub-tasks, so as to obtain the execution data corresponding to each of the sub-tasks respectively. The task scheduler is further configured to save the execution data of each of the sub-tasks to the completed task queue.
[0026] The task scheduler is further configured to, when it is recognized that the completed task queue includes the execution data of at least two of the sub-tasks, invoke the task executor to trigger the associated application to output the task execution result of the voice command based on the execution data of at least two of the sub-tasks.
[0027] Thirdly, this application also provides a voice command execution device, the device comprising:
[0028] The task queue creation module is used to recognize a single voice command to obtain at least two keyword groups, create at least two corresponding sub-tasks based on the keyword groups, and add them to the same task queue.
[0029] The task execution module is used to trigger a preset executor to execute each of the subtasks when it is detected that the task queue to be executed includes the subtasks, so as to obtain the execution data corresponding to each of the subtasks respectively, and save the execution data of each of the subtasks to the completed task queue.
[0030] The result output module is used to trigger the associated application to output the task execution result of the voice command based on the execution data of at least two of the sub-tasks when it is recognized that the completed task queue includes the execution data of at least two of the sub-tasks.
[0031] Fourthly, this application also provides a vehicle-mounted control device, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement any of the steps in the first aspect.
[0032] Fifthly, this application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements any of the steps in the first aspect.
[0033] In a sixth aspect, this application also provides a computer program product, including a computer program that, when executed by a processor, implements any of the steps in the first aspect.
[0034] In the voice command execution method, system, device, vehicle-side control equipment, computer-readable storage medium, and computer program product provided in this application, the voice command execution method specifically involves recognizing a single voice command to obtain at least two keyword groups, creating at least two corresponding sub-tasks based on the keyword groups, and adding them to the same task queue to be executed. If the task queue to be executed includes sub-tasks, a preset executor is triggered to execute each sub-task to obtain execution data corresponding to each sub-task, and the execution data of each sub-task is saved to a completed task queue. If the completed task queue includes execution data of at least two sub-tasks, an associated application is triggered to output the task execution result of the voice command based on the execution data of at least two sub-tasks. Therefore, this method can realize the recognition of a single voice command including multiple keyword groups and the display of related results, which helps reduce the number of voice command recognition attempts for users and improves the intelligence level of related devices equipped with voice recognition systems, thereby enhancing the user experience of voice recognition functions. Attached Figure Description
[0035] To more clearly illustrate the technical solutions in the embodiments of this application or related technologies, the drawings used in the description of the embodiments of this application or related technologies will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0036] Figure 1 This is an application environment diagram of a voice command execution method in one embodiment;
[0037] Figure 2 This is a flowchart illustrating a method for executing voice commands in one embodiment;
[0038] Figure 3 This is a block diagram of the voice command execution system in one embodiment;
[0039] Figure 4 This is a flowchart illustrating the method for executing voice commands in another embodiment;
[0040] Figure 5 This is a flowchart illustrating the method for executing voice commands in yet another embodiment;
[0041] Figure 6This is a structural block diagram of a voice command execution device in one embodiment;
[0042] Figure 7 This is an internal structural diagram of the vehicle-side control device in one embodiment. Detailed Implementation
[0043] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0044] The voice command execution method provided in this application embodiment can be applied to, for example, Figure 1 In the application environment shown, terminal 12 communicates with server 14 via a network. A data storage system can store the data that server 14 needs to process. The data storage system can be integrated onto server 14 or located on the cloud or other network servers. The data storage system can store, for example, keyword phrases and task queues. Terminal 12 can be, but is not limited to, various personal computers, laptops, smartphones, tablets, IoT devices, and portable wearable devices. IoT devices can include smart speakers, smart TVs, smart air conditioners, smart vehicle devices (vehicle control devices), projection devices, etc. Portable wearable devices can include smartwatches, smart bracelets, head-mounted devices, etc. Head-mounted devices can be virtual reality (VR) devices, augmented reality (AR) devices, smart glasses, etc. Server 14 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing cloud computing services.
[0045] In one exemplary embodiment, such as Figure 2 As shown, a method for executing voice commands is provided, which can be applied to... Figure 1 Taking the vehicle-side control equipment as an example, the explanation includes the following steps 101 to 103. Wherein:
[0046] Step 101: Recognize a single voice command to obtain at least two keyword groups, create at least two corresponding subtasks based on the keyword groups, and add them to the same queue of tasks to be executed.
[0047] Voice commands are spoken voice data from human users or voice data provided by relevant computer devices. Voice commands can be understood using a speech recognition system, which interprets the included keyword groups. In other words, the speech recognition system performs speech recognition and semantic understanding based on the user's voice data, returning the semantic understanding result, i.e., the aforementioned keyword groups. Furthermore, the speech recognition system also supports speech synthesis.
[0048] The voice recognition system can be implemented based on a voice assistant terminal program, which is a software program that runs on terminal devices (such as smartphones, smart speakers, smartwatches, in-vehicle systems, etc.). By integrating technologies such as voice recognition, natural language processing, and speech synthesis, it allows users to interact with it using voice commands to perform various tasks and services.
[0049] The task queue is used to manage and maintain tasks awaiting execution. A task queue is a data structure used to manage and maintain a list of tasks to be executed. In computer science, task queues are commonly used to implement multitasking and asynchronous operations. Task queues schedule tasks in a specific order (such as first-in, first-out or priority queues) to ensure that each task has a chance to be executed. Task queues are widely used in operating systems, concurrent programming, message queuing systems, and other fields to improve system responsiveness and efficiency.
[0050] Upon receiving a single voice command input from the user, step 101 is executed to identify the keyword groups included in the user's voice command; a single voice command may include one or more keyword groups. Then, based on the identified keyword groups in the voice command, subtasks corresponding to each keyword group are created. These subtasks can then be prioritized and added to a task queue based on their urgency. This process converts the user's single voice command into multiple subtasks to be executed and adds them to the task queue, facilitating the subsequent execution of the tasks in the task queue to achieve the desired functionality based on the user's voice command.
[0051] Step 102: If it is found that the task queue to be executed includes subtasks, trigger the preset executor to execute each subtask, so as to obtain the execution data corresponding to each subtask, and save the execution data of each subtask to the completed task queue.
[0052] The completed (executed) task queue is used to manage and maintain completed tasks.
[0053] Step 102 is executed to determine if a task needs to be executed if at least one subtask is detected in the task queue; if multiple subtasks are detected, a preset executor is triggered to execute each subtask sequentially according to its execution order, thereby obtaining the corresponding execution data for each subtask; after each subtask is completed and its corresponding execution data is obtained, the execution data can be saved to the completed task queue; finally, each execution data obtained after the execution of each subtask in the task queue is also saved to the completed task queue. The number of subtasks in the task queue and the number of execution data in the corresponding completed task queue can be the same.
[0054] Step 103: If it is found that the completed task queue includes the execution data of at least two sub-tasks, trigger the associated application to output the task execution result of the voice command based on the execution data of at least two sub-tasks.
[0055] Among them, related applications refer to third-party applications, specifically third-party SDKs (Software Development Kits) used to provide certain specific capabilities, such as map SDKs that can provide location search and navigation capabilities.
[0056] A map SDK is a software development kit that provides developers with a series of interfaces, libraries, and tools to integrate map display, location, search, route planning, and other functionalities into their applications. Map SDKs are typically released by map service providers so that developers can easily use map services in their applications.
[0057] Furthermore, third-party applications and speech recognition systems can communicate via APIs (Application Programming Interfaces). An API is a set of predefined rules and protocols for building and interacting with software applications. It allows different software applications to communicate and exchange data. An API defines how requests are made, how they are sent, and the expected response format. Through APIs, developers can access the functionality of a software or service without needing to understand its internal workings.
[0058] Step 103 is executed to determine that there are tasks in the completed task queue that need further processing when the queue contains at least two corresponding execution data. At this time, based on the execution data in the completed task queue, the associated application (third-party SDK) can be called so that the associated application can output the task execution result corresponding to the user's voice command based on the execution data. This realizes the implementation of the relevant functions and result display required by the user's voice command.
[0059] In the above-mentioned voice command execution method, at least two keyword groups are obtained by recognizing a single voice command, and at least two corresponding sub-tasks are created based on the keyword groups and added to the same task queue to be executed. When it is recognized that the task queue to be executed includes sub-tasks, a preset executor is triggered to execute each sub-task to obtain the execution data corresponding to each sub-task, and the execution data of each sub-task is saved to the completed task queue. When it is recognized that the completed task queue includes the execution data of at least two sub-tasks, the associated application is triggered to output the task execution result of the voice command based on the execution data of at least two sub-tasks. It can be seen that this method can realize the recognition of a single voice command including multiple keyword groups and the display of related results, which helps to reduce the number of voice command recognitions for users and improves the intelligence level of related devices equipped with voice recognition systems, thereby improving the user experience of voice recognition functions.
[0060] Please continue to refer to Figure 2 In an exemplary embodiment, the content performed in step 102 above can be optionally implemented by performing steps 201-203, wherein:
[0061] Step 201: If it is found that the queue of tasks to be executed includes subtasks, extract the subtask with the first scheduling order based on the scheduling order of multiple subtasks.
[0062] Step 202: Trigger the preset executor to execute the extracted subtask, obtain the execution data corresponding to the subtask, and save the execution data to the completed task queue;
[0063] Step 203: Re-identify the queue of tasks to be executed until the execution data of each subtask in the queue of tasks to be executed is saved to the queue of completed tasks.
[0064] First, step 201 is executed to identify whether the task queue contains subtasks to be executed. If multiple subtasks are identified, the first subtask (e.g., the first one) is extracted based on the pre-matched scheduling order of each subtask. This first subtask is referred to as the first subtask. Then, step 202 is executed. After retrieving the first subtask, a preset executor is triggered to execute it, obtaining the execution result (execution data) and saving it to the completed task queue for later processing. Next, step 203 is executed again to check if the task queue contains subtasks to be executed. The process involves identifying whether or not there are subtasks to be executed. If at least one subtask is identified, the subtask whose scheduling order is the first (e.g., the second) subtask can be extracted based on the pre-matched scheduling order of the currently included subtasks. This subtask can be referred to as the second subtask. Then, step 202 is executed. After the second subtask is extracted, a preset executor is triggered to execute the second subtask to obtain the execution result, i.e., the execution data, of the second subtask. The execution data of the second subtask is then saved to the completed task queue for waiting. This continues until the execution data of all subtasks in the task queue to be executed are saved to the completed task queue.
[0065] As can be seen, this application provides an optional implementation method for the execution of subtasks included in the task queue to be executed. Specifically, the subtasks in the task queue are executed in a pre-set order, and the execution data obtained from the previous subtask is stored in the completed task queue before the corresponding subsequent subtask is executed. Based on this execution method, an effective task management and scheduling mechanism is provided for the execution of multiple subtasks, which helps ensure the execution efficiency of the subtasks to be executed, thereby improving the user experience.
[0066] Please continue to refer to Figure 2 In an exemplary embodiment, the step of saving the execution data to the completed task queue in the above steps can be optionally performed as follows: saving the execution data to the task data model associated with the corresponding subtask, and saving the task data model to the completed task queue; wherein, the task data model is used to indicate the execution method of the execution data.
[0067] In this context, a task data model refers to an abstract model that defines the structure, attributes, relationships, and processing of data within an application. The data model is a crucial component of application design, providing a framework for organizing, storing, and managing data.
[0068] The task data model can include the task type, the parameters required for the task, and the result information obtained after the task is executed.
[0069] Specifically, the execution data obtained from executing the subtask can first be saved to the task data model associated with that subtask. For example, if a subtask is a destination search task, then the corresponding task data model is the destination search task data model. The task data models for each subtask can be pre-configured. Once the type of the subtask is identified, the corresponding task data model can be found based on the mapping relationship between the subtask and the task data model. Then, the task data model containing the execution data can be saved to the completed task queue, rather than directly saving the execution data to the completed task queue. This ensures that the content extracted from the completed task queue is the task data model containing the execution data. Each task data model includes instructions on the further execution methods for the saved execution data, which helps ensure the accuracy of subsequent steps.
[0070] Please continue to refer to Figure 2 In an exemplary embodiment, the content of step 103 above can be specifically executed as follows: when it is recognized that the completed task queue includes at least two task data models, the associated application is triggered to execute the execution method based on the execution data indicated by the at least two task data models respectively, and the task execution result of the voice command is output.
[0071] Specifically, when the completed task queue is identified to include the task data models corresponding to each subtask in the task queue to be executed, a related application (third-party application) can be invoked. This allows the related application to further execute each execution data based on the data processing method indicated by the task data model corresponding to the execution data of each subtask, thereby outputting the task execution result corresponding to the single voice command input by the user. This realizes the relevant functions required by the single voice command input by the user and can receive and display the relevant execution results, thus enabling the user to obtain the desired result and improving the user experience.
[0072] Please continue to refer to Figure 2 In an exemplary embodiment, the step 102 above, which involves executing the extracted subtask to obtain the execution data corresponding to the subtask, can be specifically implemented by executing steps 221-223, wherein:
[0073] Step 221: Execute the extracted subtask to obtain the candidate data table output by the associated application pointed to by the subtask;
[0074] Step 222: Guide the outputter of the voice command to select the target execution data from the candidate data table via voice and / or display;
[0075] Step 223: Obtain the selected target execution data as the execution data corresponding to the subtask.
[0076] Specifically, by executing a subtask, a candidate data table of the associated application output to which the subtask is directed can be displayed on the terminal device using the speech recognition system. The candidate data table includes multiple candidate results related to the keyword group corresponding to the subtask. Then, through voice prompts or dynamic display effects, the voice command outputter (e.g., the user) can be guided to select the desired candidate result (target execution data) from the candidate data table. Finally, the selected target execution data is obtained as the execution data corresponding to the subtask.
[0077] In other words, this application proposes to guide users to determine the target result through voice prompts or dynamic display effects, which helps to improve the accuracy of the task execution result of the final voice command output, and this method also helps to improve the user experience.
[0078] It should also be noted that the selection of the target result (target execution data) in the query result table (candidate data table) by the voice command outputter (e.g., a human user) can be achieved through touch selection, voice interaction, or selection via physical buttons on the device. For example, when the voice command execution method provided in this application is applied to a smart vehicle, the aforementioned candidate data table will be displayed on the vehicle's screen. The vehicle user can select the target execution data in the candidate data table through voice interaction with the vehicle, touching the display screen, or pressing physical buttons.
[0079] In an exemplary embodiment, the method further includes: if it is detected that the queue of tasks to be executed does not include subtasks, and it is detected that the queue of completed tasks does not include execution data, outputting a prompt message to the outputter of the guiding voice command to re-enter the voice command.
[0080] Specifically, in step 102, the queue of tasks to be executed is identified. If there are no subtasks to be executed in the queue, there are two possibilities. The first possibility is that all subtasks included in the queue have been executed and the relevant execution data has been saved to the queue of completed tasks. The second possibility is that the voice command was not recognized, that is, the keyword group was not recognized, or the process of creating a subtask based on the recognized keyword group failed. Both of these will result in no subtasks being added to the queue of tasks to be executed.
[0081] If the queue of tasks to be executed does not contain any subtasks, and further analysis of the queue of completed tasks reveals that no execution data has been saved there either, then this situation falls under the first possibility mentioned above. Therefore, a prompt message can be output to the user (the one who issued the voice command) to guide them to re-enter the voice command. This avoids situations where the user's voice command fails to execute the relevant function without the user being aware or not being informed in a timely manner, thus improving the user experience.
[0082] Regarding the voice command execution method provided in this application, an alternative implementation method is also provided, please refer to... Figure 3 and Figure 4 Specifically, it includes the following steps S11-S16, wherein:
[0083] S11. The user activates the voice assistant and issues a (single) voice command;
[0084] S12. The speech recognition system performs speech recognition and semantic understanding, and returns semantic results (keyword groups).
[0085] S13. The task scheduler creates a task (subtask) based on the semantic result and adds the task to the queue of tasks to be executed.
[0086] S14. The scheduler reads the queue of tasks to be executed; where:
[0087] 4.1 If there are tasks to be executed, retrieve the tasks and hand them over to the task executor;
[0088] 4.2 If there are no tasks to be executed, then determine if there are any completed tasks;
[0089] 4.2.1 If there are completed tasks, combine them into a final action and execute it.
[0090] 4.2.2 If there are no completed tasks, the process ends.
[0091] S15. The task executor executes the task and returns the execution result type and result data.
[0092] 5.1 If the task is executed successfully, the scheduler saves the result data to the task data model and stores the task model in the completed task queue.
[0093] 5.2 If the task fails, clear all task queues, announce the failure, and end the process.
[0094] S16. Repeat steps S14, S15, and S16.
[0095] Based on this, this application also provides a specific embodiment, taking a user's voice-activated command to "navigate to location A and pass through location B" (a single voice command) as an example, to further provide a detailed execution flow description. Since "location A" (keyword group) and "location B" (keyword group) may correspond to a relatively large range, there may be multiple search results for each. Therefore, it is necessary to guide the user step-by-step to confirm which "location A" and "location B" they want to go to. Please refer to... Figure 3 and Figure 5 The following steps S21-S36 provide a detailed explanation of the relevant execution process, including:
[0096] S21. The user wakes up the voice assistant and issues the command "Navigate to location A and pass through location B";
[0097] S22. The speech recognition system performs speech recognition and semantic understanding, and returns the semantic results (i.e., "location A" and "location B").
[0098] S23. The task scheduler creates a "destination confirmation task" (the first subtask) and a "waypoint confirmation task" (the second subtask) based on semantics; the task model (task data model) stores the names of the locations to be queried.
[0099] S24. The task scheduler retrieves the "Destination Confirmation Task" and hands it over to the task executor for execution;
[0100] S25. The task executor calls the map SDK to query the result list (candidate data table) of the destination "Location A" and displays the list to guide the user to select.
[0101] S26. The task executor returns the result selected by the user (target execution data);
[0102] S27. The task scheduler saves the endpoint information selected by the user into the endpoint task data model (a task data model), and saves the endpoint task data model into the completed task queue.
[0103] S28. The task scheduler checks if there are any remaining tasks to be executed;
[0104] S29. The task scheduler retrieves the "waypoint confirmation task" and hands it over to the task executor for execution.
[0105] S30. The task executor calls the map SDK to query the result list of the route point "Location B" and displays the list to guide the user to select.
[0106] S31. The task executor returns the result selected by the user.
[0107] S32. The task scheduler saves the information of the waypoints selected by the user into the waypoint task data model, and saves the waypoint task data model into the queue of completed tasks.
[0108] S33. The task scheduler has detected that there are no remaining tasks to be executed.
[0109] S34. The task scheduler detects that a completed task already exists;
[0110] S35. Based on the completed destination confirmation and waypoint confirmation tasks, the task scheduler calls the task executor to execute the instruction to navigate to point A and pass through point B.
[0111] S36. Navigation begins; process ends.
[0112] It should be noted that the results list for "Location A" above includes multiple Location A locations, such as a restaurant chain in a city with multiple branches. The same applies to multiple "Location B locations".
[0113] The voice command execution method provided in this application can efficiently execute multi-step tasks based on the relevant voice command execution system, reduce the number of times users repeat commands, and improve task execution efficiency; it enables users to complete complex multi-step tasks through simple voice commands, improving user experience; and the relevant voice command execution system can understand complex multi-step commands, improving the system's intelligence level.
[0114] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.
[0115] Based on the same inventive concept, this application... Figure 3 and Figure 4 The document also illustrates a voice command execution system 200 provided in this application, which includes a voice recognition system 71, a task scheduler 72, and a task executor 73. Wherein:
[0116] The speech recognition system 71 is used to recognize a single speech command to obtain at least two keyword groups;
[0117] Task scheduler 72 is used to create at least two corresponding subtasks based on keyword groups and add them to the same queue of tasks to be executed;
[0118] The task scheduler 72 is also used to call the task executor 73 to execute each subtask when it is detected that the task queue to be executed includes subtasks, so as to obtain the execution data corresponding to each subtask respectively. The task scheduler 72 is also used to save the execution data of each subtask to the completed task queue.
[0119] The task scheduler 72 is also used to call the task executor 73 to trigger the associated application to output the task execution result of the voice command based on the execution data of at least two sub-tasks when it is recognized that the completed task queue has included the execution data of at least two sub-tasks.
[0120] The task scheduler can create tasks, add tasks to the task queue, and also retrieve tasks from the queue and hand them over to the task executor for execution. The task executor can identify the task type based on the input task, execute the corresponding task, and return the task result.
[0121] Furthermore, the technical solution provided in this application, which provides a method for managing and scheduling multi-step tasks in a voice assistant terminal program, enables the voice command execution system to efficiently execute multi-step tasks through the collaborative work of the voice recognition module and intent parsing module included in the voice recognition system, the task queue module and task scheduling module included in the task scheduler, and the result integration module included in the task executor. This is beneficial for improving task execution efficiency and user experience.
[0122] The voice command execution method and system provided in this application offer an effective task management and scheduling mechanism for processing voice commands with multiple keyword phrases and related multi-step tasks. This helps improve the execution efficiency of voice commands with multiple keyword phrases, thereby enhancing the user experience.
[0123] Based on the same inventive concept, this application also provides a voice command execution device for implementing the voice command execution method described above. The solution provided by this device is similar to the implementation described in the above method; therefore, the specific limitations in one or more voice command execution device embodiments provided below can be found in the limitations of the voice command execution method described above, and will not be repeated here.
[0124] In one exemplary embodiment, such as Figure 6 As shown, a voice command execution device 300 is provided, including: a task queue creation module 81, a task execution module 82, and a result output module 83, wherein:
[0125] The task queue creation module 81 is used to recognize a single voice command to obtain at least two keyword groups, create at least two corresponding sub-tasks based on the keyword groups, and add them to the same task queue.
[0126] The task execution module 82 is used to trigger a preset executor to execute each subtask when it is detected that the task queue to be executed includes subtasks, so as to obtain the execution data corresponding to each subtask and save the execution data of each subtask to the completed task queue.
[0127] The result output module 83 is used to trigger the associated application to output the task execution result of the voice command based on the execution data of at least two sub-tasks when it is recognized that the completed task queue includes the execution data of at least two sub-tasks.
[0128] In an exemplary embodiment, the task execution module 82 is used to, when it is found that the task queue to be executed includes subtasks, extract the first subtask in the scheduling order based on the scheduling order of multiple subtasks; trigger a preset executor to execute the extracted subtask to obtain the execution data corresponding to the subtask, and save the execution data to the completed task queue; and re-identify the task queue to be executed until the execution data of each subtask in the task queue to be executed is saved to the completed task queue.
[0129] In an exemplary embodiment, the task execution module 82 is used to save the execution data to the task data model associated with the corresponding subtask, and to save the task data model to the completed task queue; wherein, the task data model is used to indicate the execution method of the execution data.
[0130] In an exemplary embodiment, the result output module 83 is used to trigger the associated application to output the task execution result of the voice command based on the execution data indicated by the at least two task data models when it is recognized that the completed task queue includes at least two task data models.
[0131] In an exemplary embodiment, the task execution module 82 is used to execute the extracted subtask to obtain a candidate data table of the associated application output to which the subtask points; guide the outputter of the voice command to select the target execution data in the candidate data table through voice and / or display; and obtain the selected target execution data as the execution data corresponding to the subtask.
[0132] In an exemplary embodiment, the voice command execution device 300 further includes a message prompting module, which is used to output prompting information guiding the outputter of the voice command to re-enter the voice command when it is recognized that the task queue to be executed does not include a subtask and the completed task queue does not include execution data.
[0133] Each module in the aforementioned voice command execution device 300 can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device, or stored in the memory of a computer device in software form, so that the processor can call and execute the operations corresponding to each module.
[0134] Figure 7 This is an internal structural diagram of a vehicle-side control device in one embodiment. In an exemplary embodiment, a vehicle-side control device is provided, and the internal structural diagram of this vehicle-side control device can be as follows: Figure 7As shown, the vehicle-mounted control device includes a processor and a memory. The processor provides computational and control capabilities. The memory includes a non-volatile storage medium storing a computer program. When executed by the processor, the computer program implements a control method for upgrading vehicle functions.
[0135] Those skilled in the art will understand that Figure 7 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the vehicle-side control device to which the present application is applied. The specific vehicle-side control device may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0136] Based on the same inventive concept, this application also provides a computer-readable storage medium storing a computer program thereon. When the computer program is executed by a processor, it implements the aforementioned voice instruction execution method. The voice instruction execution method is any of the voice instruction execution methods mentioned in the embodiments of this application. For related embodiments, please refer to the above.
[0137] Based on the same inventive concept, this application also provides a computer program product, including a computer program that, when executed by a processor, implements the aforementioned voice command execution method. The voice command execution method is any of the voice command execution methods mentioned in the embodiments of this application, and related embodiments can be found above.
[0138] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data must comply with relevant regulations.
[0139] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, artificial intelligence (AI) processors, etc., and are not limited to these.
[0140] 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 are 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 application.
[0141] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, 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 method for executing voice commands, characterized in that, include: Recognize a single voice command to obtain at least two keyword groups, create at least two corresponding subtasks based on the keyword groups, and add them to the same queue of tasks to be executed; If the subtask is detected to be included in the queue of tasks to be executed, a preset executor is triggered to execute each subtask, so as to obtain the execution data corresponding to each subtask respectively, and save the execution data of each subtask to the queue of completed tasks. If the completed task queue is found to contain execution data of at least two of the sub-tasks, the associated application is triggered to output the task execution result of the voice command based on the execution data of at least two of the sub-tasks.
2. The method according to claim 1, characterized in that, When the subtask is detected to be included in the queue of tasks to be executed, a preset executor is triggered to execute each subtask to obtain the execution data corresponding to each subtask, and the execution data of each subtask is saved to the queue of completed tasks, including: If the task queue to be executed is found to include the subtask, the subtask whose scheduling order is the first is extracted based on the scheduling order of the multiple subtasks. Trigger a preset executor to execute the extracted subtask, obtain the execution data corresponding to the subtask, and save the execution data to the completed task queue; The queue of tasks to be executed is identified again until the execution data of each subtask in the queue of tasks to be executed is saved to the queue of completed tasks.
3. The method according to claim 1 or 2, characterized in that, Saving the execution data to the completed task queue includes: The execution data is saved to the task data model associated with the corresponding subtask, and the task data model is saved to the completed task queue; wherein, the task data model is used to indicate the execution method of the execution data.
4. The method according to claim 3, characterized in that, The step of triggering the associated application to output the task execution result of the voice command based on the execution data of at least two sub-tasks when the completed task queue is identified as including: If it is detected that the completed task queue includes at least two of the task data models, the associated application is triggered to output the task execution result of the voice command based on the execution method indicated by the execution data of the at least two task data models respectively.
5. The method according to claim 2, characterized in that, The step of executing the extracted subtask to obtain the execution data corresponding to the subtask includes: Execute the extracted subtask to obtain the candidate data table output by the associated application pointed to by the subtask; The voice command outputter is guided to select target execution data from the candidate data table via voice and / or display. The selected target execution data is obtained as the execution data corresponding to the subtask.
6. The method according to claim 1, characterized in that, Also includes: If the subtask is not found in the queue of tasks to be executed and the execution data is not found in the queue of completed tasks, a prompt message is output to guide the outputter of the voice command to re-enter the voice command.
7. A voice command execution system, characterized in that, include: A speech recognition system is used to recognize a single speech command to obtain at least two keyword groups; A task scheduler is used to create at least two corresponding subtasks based on the keyword group and add them to the same queue of tasks to be executed; The task scheduler is further configured to, when it is detected that the task queue to be executed includes the sub-task, call the task executor to execute each of the sub-tasks, so as to obtain the execution data corresponding to each of the sub-tasks respectively. The task scheduler is further configured to save the execution data of each of the sub-tasks to the completed task queue. The task scheduler is further configured to, when it is recognized that the completed task queue includes the execution data of at least two of the sub-tasks, invoke the task executor to trigger the associated application to output the task execution result of the voice command based on the execution data of at least two of the sub-tasks.
8. A voice command execution device, characterized in that, The device includes: The task queue creation module is used to recognize a single voice command to obtain at least two keyword groups, create at least two corresponding sub-tasks based on the keyword groups, and add them to the same task queue. The task execution module is used to trigger a preset executor to execute each of the subtasks when it is detected that the task queue to be executed includes the subtasks, so as to obtain the execution data corresponding to each of the subtasks respectively, and save the execution data of each of the subtasks to the completed task queue. The result output module is used to trigger the associated application to output the task execution result of the voice command based on the execution data of at least two of the sub-tasks when it is recognized that the completed task queue includes the execution data of at least two of the sub-tasks.
9. A vehicle-end control device, comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 6.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Multi-command single utterance input method
CN106471570A
Method and device for executing interaction function, electronic equipment and storage medium
CN110728981A