Nothing Special   »   [go: up one dir, main page]

CN110692042B - Platform selection to perform requested actions in an audio-based computing environment - Google Patents

Platform selection to perform requested actions in an audio-based computing environment Download PDF

Info

Publication number
CN110692042B
CN110692042B CN201980002144.1A CN201980002144A CN110692042B CN 110692042 B CN110692042 B CN 110692042B CN 201980002144 A CN201980002144 A CN 201980002144A CN 110692042 B CN110692042 B CN 110692042B
Authority
CN
China
Prior art keywords
platform
data processing
processing system
action
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980002144.1A
Other languages
Chinese (zh)
Other versions
CN110692042A (en
Inventor
查德·沃德
波格丹·卡普里塔
王一磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202310904057.3A priority Critical patent/CN117061495A/en
Publication of CN110692042A publication Critical patent/CN110692042A/en
Application granted granted Critical
Publication of CN110692042B publication Critical patent/CN110692042B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A system and method for selecting a digital platform for executing voice-based commands is provided. The system receives an application that performs an action associated with a service via a digital platform. The system debugs the application to verify parameters of actions on at least two of the digital platforms. The system receives data packets comprising an input audio signal detected by a sensor of a client device and parses the input audio signal to identify actions and services. The system selects a first platform from the digital platforms to perform an action. In response to selection of the first platform, the system initiates an interactive data exchange to populate parameters of an action data structure corresponding to the action. The system performs an action via the selected platform using the action data structure.

Description

Platform selection to perform requested actions in an audio-based computing environment
Cross reference to related applications
The present application claims priority from U.S. provisional patent application Ser. No.62/668,207, entitled "PLATFORM SELECTION FOR PERFORMING REQUESTED AC TIONS IN AUDIO-BASED COMPUTING ENVIRONMENTS," filed on 5/7 of 2018, the entirety of which is incorporated herein by reference, in accordance with 35 USC 119.
Background
The speech-based computing environment may interface with various other computing platforms. For example, a service provider may provide services via a platform that includes mobile applications, desktop applications, and web-based applications. A user may interact with a service through a speech-based computing environment. However, selecting a platform for implementing user requests received through a voice-based computing environment can be challenging.
Disclosure of Invention
At least one aspect relates to a system for selecting a digital platform for executing voice-based commands. The system may include a data processing system including at least one processor and memory. The data processing system may receive an application from a service provider device that performs actions associated with a service via a plurality of digital platforms. The data processing system may debug the application to verify parameters of the actions on at least two of the plurality of digital platforms. The data processing system may receive data packets comprising an input audio signal detected by a sensor of the client device via an interface of the data processing system. The data processing system may parse the input audio signal to identify actions and services. The data processing system may select a first platform of the plurality of digital platforms to perform the action based on at least one of the policy and the input audio signal or the historical execution information. In response to selection of the first platform, the data processing system may initiate an interactive data exchange to populate parameters of an action data structure corresponding to the action. The data processing system may perform the action via the selected platform using the action data structure.
The plurality of digital platforms may include at least one of: a web-based application platform for services, a mobile application platform for services, and a dialog platform for services. The data processing system may identify, for the action, first marker information indicative of a first parameter of a first platform of the plurality of digital platforms. The data processing system may identify second marker information indicating a second parameter of a second platform of the plurality of digital platforms for the action. The data processing system may determine a conflict between the first parameter and the second parameter based on a comparison of the first tag information and the second tag information. The data processing system may provide an indication of the conflict to the service provider device.
The data processing system may identify, for the action, a first parameter of a first platform of the plurality of digital platforms and second tag information indicating a second parameter of a second platform of the plurality of digital platforms. The data processing system may determine a conflict between the first parameter and the second parameter based on the comparison. The data processing system may transmit a prompt to the service provider device to resolve the conflict. The data processing system may determine that fewer parameters are configured for the dialog platform than for the web-based application platform. The first platform may be a web-based application platform of a service and the second platform is a dialog platform of the service.
The data processing system may identify conflicts within parameters of actions on at least two of the plurality of digital platforms. The data processing system may automatically resolve the conflict based on at least one policy stored by the data processing system.
The data processing system may identify conflicts within parameters of actions on at least two of the plurality of digital platforms. The data processing system may automatically resolve the conflict by removing at least one parameter associated with an action on one of at least two of the plurality of digital platforms.
The data processing system may identify, for the action, a first parameter of a first platform of the plurality of digital platforms and second tag information indicating a second parameter of a second platform of the plurality of digital platforms. The data processing system may determine an inconsistency between the first parameter and the second parameter based on the comparison. The data processing system may retrieve a resolution policy of the service provider device in response to the determination of the inconsistency. The data processing system may resolve the inconsistency based on the resolution policy. The data processing system may determine that the first platform is associated with the most recent version of the update as compared to the second platform. The data processing system may resolve the inconsistency by updating the second parameter to match the first parameter in response to determining that the first platform is associated with the latest version of the update.
The data processing system may select a first platform of the plurality of digital platforms based on the ranking policy. The historical execution information may include an indication of a previous platform that was executed to perform an action of the service in response to a request from the client device. The data processing system may select the first platform based on the previous platform performing the action being the first platform.
The data processing system may select the first platform based on determining that performing the action via the first platform utilizes less computing resources than performing the action via a second platform of the plurality of digital platforms.
At least one aspect relates to a method of selecting a digital platform for executing voice-based commands. The method may be performed by a data processing system that includes at least one processor and memory. The method may include the data processing system receiving, from a service provider device, an application that performs actions associated with a service via a plurality of digital platforms. The method may include the data processing system debugging an application to verify parameters of actions on at least two of the plurality of digital platforms. The method may include the data processing system receiving, via an interface of the data processing system, data packets including an input audio signal detected by a sensor of the client device. The method may include the data processing system parsing the input audio signal to identify actions and services. The method may include: the data processing system selects a first platform of the plurality of digital platforms to perform the action based on at least one of the policy and the input audio signal or the historical execution information. The method may include, in response to selection of the first platform, the data processing system initiating an interactive data exchange to populate parameters of an action data structure corresponding to the action. The method may include the data processing system performing an action via the selected platform using the action data structure.
At least one aspect of the present disclosure is directed to a system for implementing a request in a speech-based computing environment. The system may include a data processing system to receive computer instructions corresponding to a plurality of platforms of a service. The system may include a debugger component of the data processing system to perform debugging of computer instructions to verify parameters of actions on at least two of the plurality of platforms. The system may include a natural language processor component of the data processing system to receive data packets including an input audio signal detected by a sensor of the client device via an interface of the data processing system. The system may include a natural language processor component to parse an input audio signal to identify an action. The system may include a policy engine of the data processing system to select a first platform of the plurality of platforms for performing the action. The data processing system may initiate an interactive data exchange to populate parameters of an action data structure corresponding to the action. The data processing system may perform the action via the selected platform using the action data structure. The data processing system may receive computer instructions corresponding to a plurality of platforms of the service by receiving computer instructions of at least one of a web-based application platform of the service, a mobile application platform of the service, and a dialogue platform of the service. The debugger component may perform debugging of the computer instructions to verify parameters of the actions on the at least two platforms by comparing the tag information contained in the at least two platforms to identify conflicts within the parameters of the actions on the at least two platforms. The debugger component may identify conflicts within parameters of actions on at least two platforms; and the conflict may be automatically resolved based on at least one policy stored by the data processing system.
At least one aspect of the present disclosure is directed to a method of implementing a request in a speech-based computing environment. The method may include receiving, by a data processing system, computer instructions corresponding to a plurality of platforms of a service. The method may include executing, by a debugger component executed by the data processing system, debugging of the computer instructions to verify parameters of the actions on at least two of the plurality of platforms. The method may include receiving, by a natural language processor component executed by a data processing system, data packets comprising an input audio signal detected by a sensor of a client device via an interface of the data processing system. The method may include parsing, by a natural language processor component, the input audio signal to identify an action. The method may include selecting, by the data processing system, a first platform of the plurality of platforms for performing the action. The method may include initiating, by the data processing system, an interactive data exchange to populate parameters of an action data structure corresponding to the action. The method may include performing, by the data processing system, an action via the selected platform using the action data structure. The method may include receiving computer instructions corresponding to a plurality of platforms of a service by receiving computer instructions of at least one of a web-based application platform of the service, a mobile application platform of the service, and a conversation platform of the service. The method may include executing debugging of computer instructions to verify parameters of actions on at least two platforms by comparing tag information contained in the at least two platforms to identify conflicts within the parameters of actions on the at least two platforms. The method may include identifying conflicts within parameters of actions on at least two platforms; and the conflict may be automatically resolved based on at least one policy stored by the data processing system.
The individual features and/or combinations of features defined above in accordance with any aspect of the disclosure or below in relation to any particular embodiment of the disclosure may be used in any other aspect or embodiment of the disclosure, alone, separately, or in combination with any other defined feature.
Furthermore, the present disclosure is intended to cover apparatuses configured to perform any of the features described herein in connection with the methods and/or methods of using or producing, using or making any of the apparatus features described herein. By a means of
These and other aspects and embodiments are discussed in detail below. The foregoing information and the following detailed description include illustrative examples of various aspects and embodiments, and provide an overview or framework for understanding the nature and character of the claimed aspects and embodiments. The accompanying drawings provide a description and a further understanding of various aspects and embodiments, and are incorporated in and constitute a part of this specification.
Drawings
The drawings are not intended to be drawn to scale. Like reference numbers and designations in the various drawings indicate like elements. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:
FIG. 1 is an illustration of a system for selecting a digital platform for executing voice-based commands and implementing requests in a voice-based computing environment.
FIG. 2 is an illustration of a method for selecting a digital platform for executing voice-based commands and implementing a request in a voice-based computing environment.
FIG. 3 is a block diagram illustrating the general architecture of a computer system that may be used to implement the elements of the systems and methods described and illustrated herein.
Detailed Description
The following are more detailed descriptions of various concepts related to methods, apparatuses, and systems for selecting a digital platform for executing voice-based commands and implementing requests in a voice-based computing environment, and embodiments of methods, apparatuses, and systems for executing voice-based commands and implementing requests in a voice-based computing environment. The various concepts introduced above and discussed in more detail below may be implemented in any of a number of ways.
The present disclosure relates generally to selecting a digital platform for executing voice-based commands and implementing requests in a voice-based computing environment. For example, an application developer or service provider may provide separate applications for separate digital platforms, such as web-based applications, mobile applications, and dialog-based applications, such as digital assistant platforms. However, when invoking a service provided by a service provider, it can be challenging for a computing device or system to determine which platform to select to execute the service or to provide a unified and consistent data processing flow, as each application of each platform can be unique, can contain different code formats, can perform different types of processing, or can access different data sources. Ultimately, this may prevent the computing device or system from performing certain actions. Providing consistent user interfaces and data processing for the same action or service across different digital platforms can also be challenging due to the different versions of applications configured for different digital platforms and the different interfaces available to each digital platform. Furthermore, service providers or application developers can be challenging to maintain, manage, and debug different versions of applications across different digital platforms. For example, different teams of developers may create applications for different digital platform configurations. Having separate versions of applications per digital platform may increase electronic storage utilization on the server and require different labels or tags on each application.
Thus, different computing resources can be challenging to process instructions efficiently in a speech-based computing environment. For example, a developer may be able to cause services to be delivered to users via different computing resources, which may be referred to herein as platforms. The platform for services may include applications executing on a mobile device such as a cellular telephone, applications executing on a laptop or desktop computer, web-based applications accessible via a web browser application on a computing device, or conversational applications provided in a voice-based computing environment.
A single service may be accessed via multiple platforms. Thus, when a user requests content related to a service via audio-based instructions, for example, in a speech-based computing environment, the data processing system of the speech-based computing environment must select one of the available platforms for implementing the request. However, determining which platform is best suited to fulfill a particular request can be challenging. For example, the selection of a particular platform may depend on a number of factors including user preferences, the type of computing device available to the user at the time the request was made, the type of service invoked by the request, and other factors. In addition, it may be useful to provide a uniform user experience for a particular service across the platform scope of the implemented service. For example, a user may desire that similar requests implemented via different platforms will generally produce similar results and that such interaction will occur in a similar manner regardless of the particular platform selected.
The present solution relates generally to improving information processing efficiency on different computing resources. The systems and methods of the present technology generally relate to selecting a digital platform for executing voice-based commands and implementing requests in a voice-based computing environment. The speech-based computing environment may include a data processing system. The data processing system may receive or access an application containing computer instructions corresponding to a plurality of platforms of a service. For example, the service may involve requesting a ride through a ride share service, purchasing movie tickets, ordering at a restaurant, booking hotel rooms, playing music, and the like. The applications may include, for example, computer instructions corresponding to a mobile application of the service, instructions corresponding to a web-based application of the service, or instructions corresponding to a dialog platform. The data processing system may determine an action of the service and a plurality of parameters of the action. For example, the action may include purchasing a movie ticket, and the parameters may include time, movie title, and theater location. The data processing system may be configured to extract tags or other forms of labels in computer instructions related to actions and parameters. The data processing system may determine whether the tag or label information conflicts with each other (e.g., whether the parameters of the action defined for the Web-based implementation of the service are different from the parameters of the corresponding action defined for the mobile application-based implementation of the service). The data processing system may verify whether the tag corresponds to the same action or service. The data processing system may automatically reconcile differences that may result in conflicts or may prompt a developer of computer instructions to resolve the conflict.
The data processing system may process the speech-based input to determine an action corresponding to the speech-based input. The action may be associated with a service implemented across multiple platforms. Based on the rule or policy set, the data processing system may select one of the platforms to be used to perform the action. The data processing system may initiate a data exchange to populate parameters of the action data structure of the action. For example, the data exchange may occur via dialog audio input from the user in response to dialog audio prompts generated by the data processing system. Thereafter the data processing system may perform the action via the selected platform using the action data structure.
For example, a music service provider may integrate its music application with a speech-based computing environment or digital assistant. The music service provider may already have a mobile application of the music service, but may not have created a version of the application for the digital assistant platform. The music service provider may add a header file including deep links and actions to its mobile application. Deep links may refer to hyperlinks that link to particular web content, web pages, or states within an application (e.g., particular pages of an artist page or album). The music service provider may provide the mobile application with the header file to the data processing system of the present solution. The data processing system may ingest the header file and import the header file into the digital assistant platform. The data processing system may perform a lookup using the ingested header file to identify an action. For example, the data processing system may receive user voice input requesting a song, determine whether the user may access a music service application to play the song, and then generate a deep link for accessing the song on the application of the installed music service. Thus, a data processing system may connect or merge multiple digital surfaces or digital platforms to provide a unified and seamless user interface or stream.
The data processing system may determine that the plurality of digital platforms or surfaces are configured to provide a response to the request (e.g., play a song in response to the request for the song). The data processing system may identify a plurality of digital platforms, rank the digital platforms and then select the highest ranked platform. The data processing system may use an index containing indications of songs and all digital platforms that may provide access to songs in order to generate a list of available digital platforms. The data processing system may then rank the list of available digital platforms based on various factors such as computing resource consumption, battery consumption, network utilization, cost associated with the digital platform, whether an application is installed on the client device, or historical preferences regarding the type of application or digital platform used to implement the requested action.
FIG. 1 illustrates an exemplary system 100 for selecting a digital platform for executing voice-based commands and implementing requests in a voice-based computing environment. System 100 may include a data processing system 102. The data processing system 102 may communicate with one or more of the following content provider computing devices 106, service provider computing devices 108, or client computing devices 104 via a network 105. The network 105 may include a computer network such as the internet, a local area network, a wide area network, a metropolitan area network or other area network, an intranet, a satellite network, and other communication networks such as a voice or data mobile phone network. The network 105 may be used to access information resources such as web pages, websites, domain names, or uniform resource locators that may be presented, output, rendered, or displayed on at least one computing device 104, such as a laptop, desktop, tablet, personal digital assistant, smart phone, portable computer, or speaker. For example, via network 105, a user of computing device 104 may access information or data provided by service provider 108 or content provider device 106, such as one or more services that may be provided across one or more platforms. The platform may be related to the type of computing device 104. For example, if the computing device 104 is a mobile computing device, the platform may include a mobile application executing on the computing device 104. If computing device 104 is a desktop computing device, the platform may include a web-based application accessible via a web browser executing on computing device 104. The computing device 104 may or may not include a display. For example, computing devices may include limited types of user interfaces such as microphones and speakers. In some cases, the primary user interface of the computing device 104 may be a microphone and a speaker.
The network 105 may include or constitute a display network, such as a subset of information resources available on the Internet that are associated with a content placement or search engine results system or that are entitled to include third-party content items as part of a content item placement campaign. Network 105 may be used by data processing system 102 to access information resources such as applications, web pages, websites, domain names, or uniform resource locators that may be presented, output, rendered, or displayed by client computing device 104. For example, via network 105, a user of client computing device 104 may access information or data provided by content provider computing device 106 or service provider computing device 108.
The network 105 may be any type or form of network and may include any of the following: a point-to-point network, a broadcast network, a wide area network, a local area network, a telecommunications network, a data communications network, a computer network, an ATM (asynchronous transfer mode) network, a SONET (synchronous optical network) network, an SDH (synchronous digital hierarchy) network, a wireless network, and a wired network. The network 105 may include wireless links such as infrared channels or satellite bands. The topology of the network 105 may include a bus, star, or ring network topology. The network may include a mobile telephone network that uses any protocol or protocols for communicating among mobile devices, including advanced mobile phone protocol ("AMPS"), time division multiple access ("TDMA"), code division multiple access ("CDMA"), global system for mobile communications ("GSM"), general packet radio service ("GPRS"), or universal mobile telecommunications system ("UMTS"). Different types of data may be transmitted via different protocols, or the same type of data may be transmitted via different protocols.
The system 100 may include at least one data processing system 102. The data processing system 102 may include at least one logic device, such as a computing device with a processor, to communicate with, for example, the computing device 104, the content provider device 106 (content provider 106), or the service provider device 108 (or service provider 108) via the network 105. Data processing system 102 may include at least one computing resource, server, processor, or memory. For example, data processing system 102 may include multiple computing resources or servers located in at least one data center. Data processing system 102 may include multiple, logically grouped servers and facilitate distributed computing techniques. The logical group of servers may be referred to as a data center, a server farm, or a machine farm. Servers may also be geographically dispersed. The data center or machine farm may be managed as a single entity or the machine farm may include multiple machine farms. The servers in each machine farm can be heterogeneous—one or more of the servers or machines can operate in accordance with one or more types of operating system platforms.
Servers in a machine farm may be stored in a high-density rack system along with associated storage systems and located in an enterprise data center. Integrating servers in this manner may improve system manageability, data security, physical security of the system, and system performance, for example, by locating the servers and high-performance storage systems on a localized high-performance network. Centralizing all or some of the data processing system 102 components, including servers and storage systems, and coupling all or some of the data processing system 102 components with advanced system management tools allows for more efficient use of server resources, which saves power and processing requirements and reduces bandwidth usage.
The system 100 may include, access, or otherwise interact with at least one service provider device 108. The service provider device 108 may include at least one logic device, such as a computing device with a processor, to communicate with, for example, the computing device 104, the data processing system 102, or the content provider 106 via the network 105. The service provider device 108 may include at least one computing resource, server, processor, or memory. For example, the service provider device 108 may include a plurality of computing resources or servers located in at least one data center. Service provider device 108 may include one or more components or functionality of data processing system 102.
The content provider computing device 106 may provide the content item for display by the client computing device 104 as an audio output content item. The content item may include providing goods or services, such as statement "Wo uld you like me to order you a taxi? (do you subscribe to you for your taxi. For example, the content provider computing device 155 may include memory to store a series of audio content items that may be provided in response to a voice-based query. The content provider computing device 106 may also provide audio-based content items (or other content items) to the data processing system 102, where the audio-based content items (or other content items) may be stored in the data store 124. The data processing system 102 can select an audio content item and provide the audio content item to the client computing device 104 (or instruct the content provider computing device 106 to provide the audio content item to the client computing device 104). The audio-based content item may be audio only or may be combined with text, image or video data.
The service provider device 108 may include at least one service provider natural language processor component 142 and a service provider interface 144, interface with the at least one service provider natural language processor component 142 and the service provider interface 144, or otherwise communicate with the at least one service provider natural language processor component 142 and the service provider interface 144. The service provider computing device 108 may include at least one service provider Natural Language Processor (NLP) component 142 or at least one service provider interface 144. The service provider NLP component 142 (or other component, such as a direct action API of the service provider computing device 108) can use the client computing device 104 (via the data processing system 102 or bypassing the data processing system 102) to create a back and forth real-time voice or audio-based conversation (e.g., session) between the client computing device 104 and the service provider computing device 108. Service provider NLP 142 may include one or more functions or features of NLP component 112 of data processing system 102. For example, service provider interface 144 may receive data messages or provide data messages to direct policy engine 116 of data processing system 102. The service provider computing device 108 and the content provider computing device 106 may be associated with the same entity. For example, the content provider computing device 106 may create, store, or make available content items for the car sharing service, and the service provider computing device 108 may establish a session with the client computing device 104 to schedule the delivery of taxis or cars for the car sharing service to access an end user of the client computing device 104. Via NLP component 112 or other components, data processing system 102 can also establish a session with a client computing device that includes or bypasses service provider computing device 104 to, for example, schedule a taxi of an automobile sharing service or a shipment of an automobile.
The computing device 104 may include at least one sensor 134, transducer 136, audio driver 138, or pre-processor 140, engaged with or otherwise in communication with at least one sensor 134, transducer 136, audio driver 138, or pre-processor 140. The sensor 134 may include, for example, an ambient light sensor, a proximity sensor, a temperature sensor, an accelerometer, a gyroscope, a motion detector, a GPS sensor, a position sensor, a microphone, or a touch sensor. Transducer 136 may include a speaker or microphone. The audio driver 138 may provide a software interface to the hardware transducer 136. The audio driver may execute an audio file or other instructions provided by the data processing system 102 to control the transducer 136 to generate corresponding sound waves or sound waves. The preprocessor 140 may be configured to detect a keyword and perform an action based on the keyword. The preprocessor 140 may filter out one or more terms or modify terms before transmitting the terms to the data processing system 102 for further processing. The preprocessor 140 may convert the analog audio signal detected by the microphone into a digital audio signal and transmit one or more data packets carrying the digital audio signal to the data processing system 102 via the network 105. In some cases, the preprocessor 140 may transmit data packets carrying some or all of the input audio signal in response to detecting instructions for performing such transmission. The instructions may include, for example, triggering a key or other key or approval to transmit a data packet including the input audio signal to the data processing system 102.
The client computing device 104 may be associated with an end user that inputs a voice query as audio input (via the sensor 134) into the client computing device 104 and receives audio output in the form of computer-generated voice output from the transducer 136 (e.g., speaker) that may be provided to the client computing device 104 from the data processing system 102 (or the content provider computing device 106 or the service provider computing device 108). The computer-generated speech may include a sound recording from a real person or a computer-generated language. The voice query may correspond to a request for content via, for example, a service provided by the service provider device 108.
The data store 124 may include one or more local or distributed databases and may include a database management system. The data store 124 may include a computer data store or memory and may store one or more parameters 126, one or more policies 128, platform data 130 or templates 132, and other data. Parameters 126, policies 128, and templates 132 may include information such as rules related to a voice-based session between client computing device 104 and data processing system 102 (or service provider computing device 108). Platform data 130 may include computer instructions corresponding to services of various platforms. For example, the platform data 130 may include executable code of a mobile application of the service, executable code of a desktop application of the service, executable code of a web-based application of the service, and the like.
Data processing system 102 may include a content placement system having at least one computing resource or server. Data processing system 102 may include at least one interface 110, interface with at least one interface 110, or otherwise communicate with at least one interface 110. The data processing system 102 can include at least one natural language processor component 112, interface with the at least one natural language processor component 112, or otherwise communicate with the at least one natural language processor component 112. The data processing system 102 may include at least one policy engine 116, interface with at least one policy engine 116, or otherwise communicate with at least one policy engine 116. The data processing system 102 may include at least one session handler 114, interface with the at least one session handler 114, or otherwise communicate with the at least one session handler 114. Data processing system 102 may include at least one debugger component 118, interface with at least one debugger component 118, or otherwise communicate with at least one debugger component 118. The data processing system 102 may include at least one audio signal generator 122, be coupled to the at least one audio signal generator 122, or otherwise be in communication with the at least one audio signal generator 122. Data processing system 102 may include at least one data store 124, interface with at least one data store 124, or otherwise communicate with at least one data store 124. The at least one data store 124 may store parameters 126, policies 128, platform data 130, or templates 132 in one or more data structures or databases. Parameters 126 may include, for example, a threshold, distance, time interval, duration, score, or weight. Policy 128 may include, for example, a ranking policy, a selection policy, or a resolution policy for resolving inconsistencies or conflicts.
The interface 110, natural language processor component 112, session handler 114, policy engine 116, debugger component 118, or audio signal generator component 122 may each include at least one processing unit or other logic device such as a programmable logic array engine, or module configured to communicate with a library stock store or database 124. The interface 110, natural language processor component 112, session handler 114, policy engine 116, debugger component 118, audio signal generator component 122, and data store 124 may be separate components, a single component, or a portion of the data processing system 102. System 100 and its components, such as data processing system 102, may include hardware elements, such as one or more processors, logic devices, or circuits.
The data processing system 102 may obtain anonymous computer network activity information associated with a plurality of computing devices 104. The user of computing device 104 may positively authorize data processing system 102 to obtain network activity information corresponding to the user's computing device 104. For example, data processing system 102 may prompt a user of computing device 104 for consent to obtain one or more types of network activity information. The identity of the user of the computing device 104 may remain anonymous and the computing device 104 may be associated with a unique identifier (e.g., a unique identifier of the user or computing device provided by the user of the data processing system or computing device). The data processing system may associate each observation with a corresponding unique identifier.
Data processing system 102 may include an interface component 110 that is designed, configured, constructed, or operative to receive and transmit information using, for example, data packets. Interface 110 may receive and transmit information using one or more protocols, such as network protocols. The interface 110 may include a hardware interface, a software interface, a wired interface, or a wireless interface. The interface 110 may facilitate converting or formatting data from one format to another. For example, the interface 110 may include an application programming interface that includes definitions for communication between various components, such as software components.
Data processing system 102 may receive applications from service provider device 108. The application may be developed by a service provider associated with the service provider device 108. The application may be developed using the service provider device 108 or the application may be transmitted to the data processing system 102 using the service provider device 108. An application may include an application configured to provide a service or perform an action to provide a service. The applications may include applications for providing access to services provided by the service provider device 108. For example, the applications may include music service applications, ride share applications, food distribution applications, or internet of things applications.
The application may be configured for a digital platform. The service provider device 108 may develop, design, or configure applications for a particular digital platform. The service provider device 108 may develop the application as a mobile application, such as an application configured to execute on a mobile computing device (e.g., a smartphone, a smartwatch, a tablet, or a wearable device). The mobile application may refer to a native application executing on the computing device 104. Other digital platforms may include web-based applications. Web-based applications may refer to applications that may be executed at least in part in a web browser. Web-based applications may refer to programs that may be accessed over a network connection using HTTP. A web application may refer to a client-server computer program that a client computing device may run or execute within a web browser.
The application received from the service providing device 108 may perform or facilitate the performance of actions associated with the service. For example, a service such as a music service or a ride share service may be associated with multiple digital platforms. Services such as music services may be provided via more digital platforms. For example, the music service may provide music to be played on the computing device 104 via a mobile application digital platform as well as a web application digital platform. Music services may also be provided via the digital assistant platform, for example, via the use of a conversational speech computing environment. Thus, services of a service provider may be provided via a plurality of digital platforms.
The data processing system 102 may include a policy engine 116 to determine the context of one or more services (e.g., provided by the service provider device 108) implemented across a variety of platforms. Context may refer to actions of a service and corresponding parameters. For example, the platform data 130 may include computer code for a program or application that implements a service via multiple platforms. Thus, in one example, the platform data 130 may include a mobile application of a service, a desktop application of a service, and a web-based application of a service. The service may be, for example, a ride share service configured to allow a user to request a car to receive the user and bring the user to a specified destination. Policy engine 116 may be configured to identify or generate a context (i.e., a set of actions and parameters) for a dialog platform to be implemented by data processing system 102 based on platform data 130. Platform data 130 may include data related to other platforms of the service, but may not include data of a conversation platform.
To facilitate creation of a corresponding dialog platform for a service, policy engine 116 may extract information from platform data 130 of other platforms on which the service is implemented. Data processing system 102 may search (scan) platform data 130 for tags or other marking information related to actions and parameters. The tag and label information may include any type of information that provides context for the executable portion of the platform data 130, but is not itself executable. For example, the tag and label information may be provided in a format that is ignored by the compiler when the program contained in the platform data 130 is compiled, but readable by the data processing system 102 for the purpose of extracting context information regarding actions and parameters associated with a particular service on a particular platform.
The tag and label information may include information identifying a web page or screen used by the mobile application, an input field in which the user provides desired information, a user interface element such as a selectable button, or any other form of action or parameter of the service. In examples where the service is a ride share service, the platform data 130 may store computer code corresponding to a mobile application of the ride share service. The computer code may include instructions for requiring the user to enter a user location, and labels or other marking information for indicating that the input field corresponds to the user's current location. Similarly, the computer code may include instructions for prompting the user to enter inputs for destination, time, vehicle scale, or vehicle comfort, and tag or label information associated with each of these inputs. Policy engine 116 may search the computer code for tags and may determine an action (e.g., request for a ride) and a set of parameters for the action (e.g., current location, destination, time, vehicle size, and vehicle comfort). The tag and label data may also include a mapping of functionality of the service on the first platform to functionality of the service on the second platform. For example, the tag and label information may include a mapping of a screen of the mobile application to a web page of the web-based application. The tag and label information may also include one or more links. For example, the tag and label information of the web-based application may include one or more "deep links" to the mobile application. Deep links may be any reference or pointer to a user interface, such as a graphical user interface of a mobile application. Thus, a web-based application may include deep links that map the functionality of the web-based application to a particular display screen, input field, or other user interface of the mobile application implementing the corresponding functionality.
The data processing system 102 may use the context information collected by the tag or label information to implement services through the conversation platform. For example, the data processing system 102 can communicate an audio output (e.g., via the audio signal generator component 122) corresponding to a text field of a parameter of the mobile application to the computing device 104, and can receive an audio response (e.g., via the natural language processor component 112) from the computing device 104 to determine a value of the parameter. Thus, the data processing system 102 can conversationally implement functionality similar to that provided by the mobile application by extracting tag or label information from the mobile application data contained in the platform data 130 and using the audio signal generator component 122 and the natural language processor component 112 to send information to the computing device 104 and to receive information from the computing device 104.
Debugger component 118 may be configured to detect and resolve differences between the tag or label information contained in platform data 130. For example, the platform data 130 may include executable code of a mobile application of the service and executable code of a desktop application of the service. However, for a given action provided by a service (e.g., requesting an automobile), the mobile application may have a different set of parameters than the desktop application. For example, the mobile application may include parameters corresponding to only the current location and destination, while the desktop application includes parameters corresponding to the current location, destination, and vehicle type. Thus, there may be inconsistencies or mismatches between the parameters of the actions of the first platform and the parameters of the same actions of the second platform. The debugger component 118 may determine the inconsistency or mismatch and may attempt to resolve it through the debugging process. Debugging may also be referred to herein as validation. The debugger component 118 may debug applications received from the service provider device 108 to verify parameters of actions on multiple digital platforms.
For example, data processing system 102 (e.g., via debugger component 118) may identify first flag information for an action that indicates a first parameter of a first platform (e.g., web-based application platform) of the plurality of digital platforms. Data processing system 102 may identify second tag information for the action that indicates a second parameter of a second platform of the plurality of digital platforms (e.g., a conversation platform). The data processing system 102 may determine a conflict between the first parameter and the second parameter based on a comparison of the first tag information and the second tag information. Data processing system 102 may be configured for a first digital platform based on fewer parameters than a second digital platform or different parameters to determine that a conflict exists. For example, data processing system 102 may be configured for a dialog platform based on fewer parameters than a web-based application platform to determine that a conflict exists. The data processing system 102 may determine that a conflict exists between a first parameter and a second parameter based on different parameters, different numbers of parameters, different formats of parameters, or different input types of parameters (e.g., address versus street address provided by latitude and longitude). Data processing system 102 may determine that one of the parameters is incompatible with the platform. For example, parameters whose inputs are latitude and longitude coordinates may not be compatible with the conversation platform, as the user may not provide latitude and longitude coordinates as an address of a geographic location, but may provide a street address or entity name (e.g., brands_ A Coffee Shop on Main Street in Anytown (brand_a coffee shops on the main street in any town)).
Data processing system 102 may automatically resolve the conflict based on the policy or request the service provider to resolve the conflict. For example, data processing system 102 can provide an indication of the conflict to the service provider device. Data processing system 102 may transmit a prompt to the service provider device to resolve the conflict.
In an example, the debugger component 118 may prompt a developer of the desktop application and mobile application (e.g., a user of the service provider device 108) to manually resolve the mismatch by transmitting information to the service provider device 108 indicating that there is a mismatch and requesting the user to resolve the mismatch by updating code of either or both of the desktop application and the mobile application. In another example, debugger component 118 may automatically resolve the conflict. The automatic resolution may occur based on the installation status or version of the desktop application or mobile application stored in the platform data 130. For example, if the most recently installed version of the desktop application is newer than the most recently installed version of the mobile application, the debugger component 118 may select parameters of the desktop application and ignore the parameters of the mobile application. In another example, the debugger component 118 may select a parameter set that is a "union" of the parameter set of the desktop application and the parameter set of the mobile application. As described above, after debugger component 118 has selected an appropriate set of parameters for an action (either automatically or manually by prompting service provider device 108 to resolve any conflicts), data processing system 102 may use the label or tag information corresponding to the selected parameters to implement the service through the dialog platform.
Data processing system 102 may automatically resolve the conflict. Data processing system 102 may automatically resolve conflicts based on at least one policy in policy data structure 128 stored in data store 124. For example, data processing system 102 can resolve conflicts by removing parameters, reformatting parameters, or applying preprocessing rules to parameters. Data processing system 102 can automatically resolve the conflict by removing at least one of the parameters associated with the action from one of the platforms.
Policies used by data processing system 102 to automatically resolve inconsistencies may include resolution policies or conflict resolution policies or inconsistency resolution policies stored in policy data structure 128 in a data store. For example, data processing system 102 can identify a first parameter of a first platform of the plurality of digital platforms and second tag information indicating a second parameter of a second platform of the plurality of digital platforms for the action. The data processing system 102 may extract the markup information, which may refer to information encoded using a markup language such as a declarative language or a descriptive markup language. Exemplary markup languages may include extensible markup language ("XML"), hyperText markup language ("HTML"), or other markup languages. The data processing system 102 can extract a markup language to identify tags or other indications of parameters used by an application to perform or execute an action.
Upon identifying a first parameter associated with the first platform and a second parameter associated with the second platform, the data processing system 102 may determine an inconsistency between the first parameter and the second parameter based on the comparison. The data processing system 102 may compare the first parameter to the second parameter. The data processing system 102 may compare the number of parameters, the type of parameter, the type of input value, or other aspects of the parameter to identify differences, increments, or inconsistencies. In response to determining the inconsistency, the data processing system may retrieve a resolution policy of the service provider device. Data processing system 102 may perform a lookup in policy data structure 128 to obtain a resolution policy. Each service provider may provide or be associated with a resolution policy, or data processing system 102 may use a resolution policy configured for a plurality of service providers or types of service providers, types of digital platforms, types of parameters, or types of actions. The resolution policy may indicate how to resolve the inconsistency. For example, the inconsistency may be an input type of the location parameter. The first digital platform may request the location input as a street address and the second digital platform may request the location input as latitude and longitude coordinates. The resolution policy may resolve the inconsistency by adjusting an input type of one of the parameters on one of the digital platforms, so that the input type matches the other digital platform. For example, to provide consistent operation and data processing, the data processing system 102 may determine to adjust parameters to which it may take street addresses on the first and second digital platforms as input. In another example, the data processing system 102 may provide preprocessing of the input to convert the input to a format used by the digital platform.
Data processing system 102 may determine one of the selection formats for processing via the dialog platform. Data processing system 102 may use the policies retrieved from policy data structure 128 to determine parameters that are optimized or more efficient for the dialog platform. For example, data processing system 102 may determine to use a street address or a business entity's name as input to a dialog platform.
Data processing system 102 can determine that inconsistencies between parameters of actions or services on different digital platforms can be associated with versions of applications configured for the digital platforms. For example, data processing system 102 can determine that the first platform is associated with the most recent version of the update as compared to the second digital platform. Data processing system 102 may determine the version based on the date the version was released, the sequential version number, or the version name. In response to determining that the first platform is associated with the most recent version of the update, data processing system 102 can resolve the inconsistency by updating the second parameter to match the first parameter.
Policy engine 116 may also be configured to determine a ranking of possible actions based on audio input received from computing device 104. For example, a user may transmit voice commands from computing device 104 to data processing system 102. The natural language processor component 112 can be configured to parse the voice command to determine a plurality of possible actions corresponding to the voice command. For example, the voice command may be the name of a service provided by the service provider device 108, and the possible actions may be any actions that may be invoked by the service. In addition, policy engine 116 may also determine a platform for performing the action. To determine which action to perform and which platform to use, policy engine 116 may determine the ranking of the possible actions and platforms and may select the action and platform with the highest ranking. The ranking may be based on previous selections by the user, the type of computing device 104, or the platform with which the user is currently interacting. The ranking may also be based on other types of computing devices that may be available to the user. For example, policy engine 116 may determine that the user may not have access to the mobile device and may exclude the mobile application as a potential platform for performing the action.
The data processing system 102 may include an application, script, or program installed on the client computing device 104, such as an app for transmitting input audio signals to the interface 110 of the data processing system 102 and driving components of the client computing device to render output audio signals. The data processing system 102 may receive data packets or other signals that include or identify audio input signals. For example, data processing system 102 can execute or run NLP component 112 to receive or obtain and parse audio signals. For example, the NLP component 112 can provide interaction between a person and a computer. NLP component 112 can be configured with techniques for understanding natural language and allowing data processing system 102 to take meaning from human or natural language input. The NLP component 112 can include or be configured with techniques based on machine learning, such as statistical machine learning. The NLP component 112 may utilize decision trees, statistical models, or probabilistic models to parse the input audio signal. NLP component 112 can perform, for example, functions such as: named entity recognition (e.g., determining which terms in text map to proper names such as people or places and what the type of each such name is given a text stream), natural language generation (e.g., converting information or semantic intent from a computer database to a human language that is understandable), natural language understanding (e.g., converting text to a more formal representation of a first order logical structure such as that which is steerable by a computer module), machine translation (e.g., automatically translating text from one human language to another), morpheme segmentation (e.g., separating words into individual morphemes and identifying the classes of morphemes, which can be challenging based on the morphemes or structural complexity of the words of the language being considered), question answering (e.g., determining answers to human language questions, which can be specific or open), semantic processing (e.g., processing that can occur after identifying words and encoding their meanings so as to associate the identified words with other words having similar meanings).
The NLP component 112 converts the audio input signal to recognized text by comparing the input signal to a stored, representative set of audio waveforms (e.g., in the data store 124) and selecting the closest match. The set of audio waveforms may be stored in data repository 124 or other database accessible to data processing system 102. Representative waveforms are generated across a large set of users and can then be enhanced using voice samples from the users. After converting the audio signal into recognized text, the NLP component 112 matches the text with words that are associated with actions that the data processing system 102 can service, for example, via training across users or through manual specification.
The audio input signals may be detected by a sensor 134 or transducer 136 (e.g., a microphone) of the client computing device 104. Via transducer 136, audio driver 138, or other components, client computing device 104 may provide audio input signals to data processing system 102 (e.g., via network 105), where audio input signals may be received (e.g., through interface 110) and provided to NLP component 112 or stored in data store 124.
The NLP component 112 may obtain an input audio signal. From the input audio signal, the NLP component 112 can identify at least one request or at least one trigger key corresponding to a request. The request may indicate an intent or topic of the input audio signal. The trigger key may indicate the type of action that may be taken or the platform through which the request should be made. For example, the NLP component 112 may parse the input audio signal to identify at least one request for leaving home at night to participate in dinner and to watch a movie. The trigger key may include at least one word, phrase, root or partial word or derivative indicating an action to be taken. For example, the trigger key "go" or "go to" from the input audio signal may indicate a need for traffic. In this example, the input audio signal (or identified request) does not directly express an intent for the traffic, however the trigger key indicates that the traffic is an auxiliary action to at least one other action indicated by the request.
The NLP component 112 can parse the input audio signal to identify, determine, retrieve, or otherwise obtain the request and trigger keywords. For example, the NLP component 112 may apply semantic processing techniques to the input audio signal to identify a trigger key or request. The NLP component 112 can apply semantic processing techniques to the input audio signal to identify trigger phrases that include one or more trigger keywords, such as a first trigger keyword and a second trigger keyword. For example, the input audio signal may include the sentence "I need someone to do my laundry and my dry cleaning (i need to have i washed and dry cleaned)". The NLP component 112 can apply semantic processing techniques or other natural language processing techniques to the data packets that comprise the sentence to identify the trigger phrases "do my laundry" and "my dry cleaning". The NLP component 112 can further identify a plurality of trigger keywords such as laundry and dry cleaning. For example, the NLP component 112 may determine that the trigger phrase includes a trigger keyword and a second trigger keyword.
The NLP component 112 may filter the input audio signal to identify trigger keywords. For example, a data packet carrying an input audio signal may include "It would be great if I could get someone that could help me go to the airport (which would be very excellent if i could find a person who could help i go to the airport)", in which case NLP component 112 may filter out one or more terms as follows: "It", "would", "be", "great", "if", "I", "could", "get", "somerone", "that", "could", or "help". By filtering out these terms, the NLP component 112 can more accurately and reliably identify trigger keywords such as "go to the airport (go to airport)" and determine that this is a request for a taxi or ride share service.
In some cases, the NLP component may determine that a data packet carrying an input audio signal includes one or more requests. For example, the input audio signal may include the sentence "I need someone to do my laundry and my dry cleaning (i need to have i washed and dry cleaned)". The NLP component 112 can determine that this is a request for laundry services and dry cleaning services. The NLP component 112 can determine that this is a single request for a service provider that can provide both laundry services and dry cleaning services. The NLP component 112 may determine that this is two requests: a first request for a service provider performing laundry services and a second request for a service provider providing dry cleaning services. In some cases, NLP component 112 may combine the plurality of determined requests into a single request and transmit the single request to service provider device 108. In some cases, the NLP component 112 may transmit separate requests to the respective service provider device 108, or the two requests may be separately transmitted to the same service provider device 108.
After an action to be performed has been identified, data processing system 102 can obtain any other information needed to complete the action. For example, as described above, an action may be associated with any number of parameters. The data processing system 102 may be configured to collect information corresponding to the parameter values, for example, by initiating a data exchange with the computing device 104. The data exchange may be implemented via a dialog platform in which the data processing system 102 provides audio-based prompts (e.g., audio corresponding to voice or natural language) to the computing device 104, and a user of the computing device 104 responds by providing an input audio signal corresponding to the answer. The natural language processor component 112 of the data processing system 102 may be configured to process the received audio signal to determine a respective word or words that may be stored as values of the corresponding parameters.
Data processing system 102 may be configured to responsively generate an action data structure based on the action and the parameter values. The processor of the data processing system 102 may execute a script that generates a data structure to request or subscribe to a service or product from the service provider device 108, such as requesting or subscribing to a car sharing service. Policy engine 116 may obtain data from data store 124 and data received from client computing device 104 with the consent of the end user to determine location, time, user account, shipping, or other information to allow service provider device 108 to perform operations such as booking a car with a car sharing service. The data processing system 102 may communicate with the service provider device 108 to complete the conversion by making a car share pick-up reservation in this example.
Data processing system 102 can perform specified actions to satisfy the intent of the end user as determined by data processing system 102. Based on the actions specified in its inputs, data processing system 102 can execute code or dialog scripts that identify parameters for implementing the user request. Such code may, for example, look up additional information in the data store 124, such as the name of the home automation service, or it may provide audio output for rendering at the client computing device 104 to ask an end user question, such as the intended destination of the requested taxi. Data processing system 102 can determine the necessary parameters and can package the information into an action data structure, which can then be sent to another component to service provider computing device 108 to be implemented. The action data structure may also include an indication of the platform to be used to fulfill the user request. For example, the action data structure may indicate that an action should be performed by the mobile application, and then the service provider device 108 may transmit information corresponding to the action to the mobile application executing on the computing device 104. Thus, if the user requests a car and the data processing system 102 determines that the request should be fulfilled by the mobile application, the data processing system 102 may generate a data structure to include an indication of an action to be performed by the mobile application, and the service provider device 108 may transmit a confirmation of the ride to the mobile application executing on the computing device 104.
The action data structure may be based on a template data structure, which may be contained in templates 132 stored in data store 124. Data processing system 102 can determine the type of action to select a template from template store 132 stored in data store 124. The type of action may include, for example, a service, a product, a reservation, or ticketing. The action type may further include a type of service or product. For example, the types of services may include an automobile sharing service, a food distribution service, a laundry service, a cleaning service, a maintenance service, or a home service. Product types may include, for example, clothing, shoes, toys, electronics, computers, books, or jewelry. The type of subscription may include, for example, a dinner subscription or a hair salon subscription. The types of ticketing may include, for example, movie tickets, sports stadium tickets, or air tickets. In some cases, the types of services, products, reservations, or ticketing may be categorized based on price, location, type of transportation, availability, or other attributes.
Once the type of request is identified, policy engine 116 may access the corresponding template from template store 132. The templates may include fields in the structured dataset that may be populated by policy engine 116 to facilitate requested operations of service provider device 108 (such as dispatching taxis to pick up end users at the pick-up location and transport the end users to the destination location). Policy engine 116 may perform a lookup in template store 132 to select a template that matches one or more characteristics or parameters of the trigger key and the request. For example, if the request corresponds to a request for a car or a ride to a destination, the data processing system 102 may select a car sharing service template. The auto sharing service template may include parameters identified by the policy engine 116 as corresponding to the action of requesting a ride, such as any one or more of the following fields: a device identifier, an access location, a destination location, a number of passengers, or a type of service. Policy engine 116 may populate the fields with values. To populate the fields with values, the policy engine 116 may ping, poll, or otherwise obtain information from one or more sensors 134 of the computing device 104 or a user interface of the device 104. As described above, at least some of the values of the parameters may be obtained via an interactive data exchange between the data processing system 102 and the computing device 104, which may be performed via a dialog platform. The data processing system 102 may also detect the source location of the computing device 104 using a location sensor, such as a GPS sensor. Thus, data processing system 102 can select a template of an action data structure based on the trigger key or request, populate one or more parameters or fields in the template with information detected by one or more sensors 134 or obtained via a user interface, and generate, create, or otherwise construct the action data structure to facilitate the service provider device 108 to perform an operation.
To construct or generate the action data structure, data processing system 102 may identify one or more fields in the selected template to populate with values. The fields may be populated with numeric values, character strings, unicode values, boolean logic, binary values, hexadecimal values, identifiers, location coordinates, geographic areas, time stamps, or other values. The fields or the data structure itself may be encrypted or masked to maintain data security.
Once the fields in the template are determined, data processing system 102 can identify the values of the fields to populate the fields of the template to create the action data structure. Data processing system 102 may obtain, retrieve, determine, or otherwise identify the values of the fields by performing a lookup or other query operation on data store 124.
Thus, upon receiving a data packet that includes an input audio signal detected by the sensor 134 of the client computing device 104, the data processing system 102 may parse or otherwise process the input audio signal to identify actions and services. An action may refer to or correspond to an action data structure. The actions may include an action data structure. A service may refer to the name of a service provider or entity associated with the service provider device 108. The action may refer to, for example, "play song_1by artist_a (song_1 of play artist_a)", and the Service may refer to, for example, "Music service_a". In another example, the action may be "book a ride from location _a to location_b (reserve a ride from location_a to location_b)" and the service may be "Ridesharing Company A (ride share company a)".
The data processing system 102 may select a first platform of the plurality of digital platforms to perform the action based on at least one of the policy and the input audio signal or the historical execution information. For example, a service provider identified from an input audio signal may have configured one or more applications for execution via two or more digital platforms, such as a Web-based application, a native mobile application, or a conversational digital assistant platform. In some cases, data processing system 102 may have automatically configured an application for execution via multiple digital platforms by automatically identifying and resolving any inconsistencies.
Data processing system 102 may select a digital platform from a plurality of digital platforms based on the ranking policy. Data processing system 102 may retrieve the ranking policies from policy data structure 128. The data processing system 102 may use a ranking policy that may determine a ranking for each of a plurality of digital platforms. The data processing system 102 may use the ranking policy to determine a score for each of the plurality of digital platforms and then select the highest scoring (or lowest scoring, depending on the type of score) digital platform to perform the action. The data processing system 102 may use a ranking policy to rank or score digital platforms based on one or more factors, such as historical execution, frequency of historical execution, computing resource utilization of the digital platforms, type of computing device 104, preference information, service provider preference information, or other factors.
Data processing system 102 may use a ranking policy to select a digital platform based on historical execution. For example, the data processing system 102 can use the ranking policy to determine which digital platform the computing device 104 was previously performing an action, performing the type of action, or performing an action or service associated with the service provider device 108. Data processing system 102 may select the digital platform that was most recently used to perform an action, perform the type of action, or perform an action or service associated with the service provider device. Data processing system 102 can obtain an indication of a previous platform of an action performed to perform a service in response to a request from computing device 104, and then data processing system 102 selects a platform based on the previous platform performing the action.
The data processing system 102 may use a ranking policy to select a digital platform based on the frequency of historical execution. For example, data processing system 102 can determine which digital platform the user or other users most commonly select to perform a service or an action on a service. The execution frequency may be the number of executions during a period of time such as the last 24 hours, 48 hours, 72 hours, 1 week, 2 weeks, or 30 days.
The data processing system 102 may use a ranking policy to select a digital platform based on computing resource utilization. Data processing system 102 may determine to select a digital platform based on the computing resource utilization. The data processing system 102 may determine factors that use computing resource utilization as a choice of digital platform based on the type of computing device 104 or the state of the computing device 104. For example, if computing device 104 is a mobile device that is using battery power and is not connected to a power source, data processing system 102 may determine to use computing resource utilization as a factor. However, if computing device 104 is a mobile device that is connected to a power source, such as a wall outlet, data processing system 102 may not use computing resource utilization as a factor because no battery is currently used.
The data processing system 102 can determine which digital platform utilizes the least computing resources of the client computing device 104. The computing resources may include, for example, battery consumption, network bandwidth utilization, or processor consumption. For example, the web application may use less computing resources of the computing device 104 than the native mobile application because the functionality of the web application resides on a server associated with the service provider device 108, while the native mobile application is executing on the computing device 104 using the processor and memory utilization of the mobile computing device (e.g., the computing device 104). However, web applications may utilize more network bandwidth than native mobile applications because web applications may use networks to transport inputs and outputs for processing. The conversational digital assistant platform may utilize a voice-based user interface that does not use a display device or keyboard or touch input or output. Thus, the conversational digital assistant platform may not utilize display resources and thereby reduce battery consumption compared to web applications and native mobile applications. Further, most of the data processing may be performed by the data processing system 102 or the service provider device 108 (e.g., a server of a service provider). However, conversational digital assistant platforms may utilize network bandwidth to transmit data packets containing audio signals, and may use multiple data transmissions due to the conversational nature of obtaining and providing information that may include multiple queries and responses.
To select a digital platform that can utilize the least computing resources of the local computing device, data processing system 102 can maintain a history, record, or log of computing resource utilization associated with different digital platforms. For example, data processing system 102 may maintain an indication of the amount of computing resource utilization associated with the type of service or action for each digital platform in data store 124 or platform data structure 130. Thereafter, the data processing system 102 selects the digital platform associated with the least historical computing resource utilization of the client computing device 104. Thus, data processing system 102 can select a platform based on determining that performing an action via a second platform of the plurality of digital platforms utilizes less computing resources than performing the action via the platform.
Data processing system 102 may determine which digital platform to select based on the type of computing device 104. Computing device 104 may refer to a device that receives an input audio signal. Computing device 104 may refer to a device that facilitates performing actions or services. Types of computing devices 104 may include, for example, mobile computing devices, laptop computers, desktop computers, smartphones, smartwatches, wearable computing devices, tablet computing devices, smart speakers, or smart televisions. The type of computing device 104 may also refer to the type of interface available. For example, the types of computing devices 104 may include voice-only computing devices, audio and visual computing devices, visual-only computing devices, or touch screen input computing devices.
Data processing system 102 can select a digital platform based on preference information associated with computing device 104 or a user thereof. Data processing system 102 can access an account or profile associated with a user of computing device 104 to determine preference information. The preference information may be stored in a memory of the computing device 104 or in the data store 124. Preference information may be indicated in the input audio signal. For example, a user may indicate an action, service, and digital platform for performing the action in an initial input audio signal. The data processing system 102 may determine the preferences based on parsing the input audio signal or performing a lookup of preference information in the data store 124. The preference information may include preferences for action type, service type, or general preferences.
The data processing system 102 can select a digital platform to use based on preference information provided by the service provider device 108 or associated with the service provider device 108. For example, the service provider 108 may indicate a preference for one type of digital platform to be used for one type of action or service.
Thus, data processing system 102 may use one or more ranking policies to select a digital platform. The data processing system 102 weights the results of the ranking policies in order to select a digital platform. For example, data processing system 102 may weight the user preferences highest, the service provider preferences second highest, the history execution third highest, and the computing resource utilization fourth highest. If user or service provider preference information does not exist, data processing system 102 can use the historical execution information or computing resource utilization information to select a digital platform.
In response to selection of the digital platform, data processing system 102 may initiate an interactive data exchange to populate parameters of an action data structure corresponding to the action. An interactive data exchange may refer to or include providing a query or request for information to obtain data for populating parameters in an action data structure. The initial input audio signal may not include information sufficient to generate or perform an action data structure; however, the initial input audio signal may include information sufficient to identify the action and the service provider. The data processing system may then query the computing device for additional information as needed to populate the action data structure. For example, the action data structure of the ride share request may include parameters such as current location, destination, number of passengers, and time. However, the input audio signal may include only a request for a ride and a destination. The data processing system may then query the computing device for the current location. The computing device may include a location module or sensor configured to determine a location of the computing device and automatically provide the location information to a data processing system or service provider. The data processing system may cause the computing device to output an audio prompt requesting the access location from a user of the computing device. The data processing system may transmit or provide additional hints for the information and the computing device or user thereof may input additional information for populating the action data structure. The type, format, or number of queries and responses may vary based on the type of digital platform. For example, the native application may automatically provide location information, and the conversation application may request that the user indicate the access location. Thus, the interactive data exchange may include multiple queries and responses automatically from the computing device or from a user of the computing device to populate an action data structure to perform the requested action on the requested service using the selected digital platform.
Data processing system 102 may use the action data structure to perform actions via the selected platform. Data processing system 102 can transmit the action data structure to a third party provider device (e.g., service provider device 108) to cause the third party provider device (e.g., service provider device 108) to invoke a conversation application programming interface (e.g., service provider NLP component 142) and establish a communication session between the third party provider device (e.g., service provider device 108) and client computing device 104. The action data structure may also cause the service provider device 108 to establish a communication session between the service provider device 108 and the computing device 104 via different platforms. In response to establishing the communication session between the service provider device 108 and the client computing device 104, the service provider device 108 may transmit data packets directly to the client computing device 104 via the network 105. In some cases, service provider device 108 may transmit data packets to client computing device 104 via data processing system 102 and network 105.
In some cases, a third party provider device (e.g., service provider device 108) may execute at least a portion of the dialog API. For example, a third party provider device (e.g., service provider device 108) may handle certain aspects of a communication session or query type. A third party provider device (e.g., service provider device 108) may utilize NLP component 112 executed by data processing system 102 to facilitate processing audio signals associated with a communication session and generating a response to a query. In some cases, data processing system 102 may include a dialog API configured for a third party provider (e.g., service provider device 108). In some cases, the data processing system routes data packets between the client computing device and the third party provider device to establish the communication session. The data processing system 102 can receive an indication from a third party provider device (e.g., the service provider device 108) that the third party provider device established a communication session with a client device (e.g., the computing device 104). The indication may include an identifier of the client computing device 104, a timestamp corresponding to a time the communication session was established, or other information associated with the communication session, such as an action data structure associated with the communication session.
In some cases, the dialog API may be a second NLP that includes one or more components or functions of the first NLP 112. The second NLP 142 may interact with the first NLP 112 or utilize the first NLP 112. In some cases, system 100 may include a single NLP 112 that is executed by data processing system 102. A single NLP 112 may support both data processing system 102 and third party service provider devices 108. In some cases, the policy engine 116 generates or constructs an action data structure to facilitate execution of the service, and the dialog API generates a response or query to further conduct a communication session with the end user or to obtain additional information to improve or enhance the end user's experience or performance of the service.
Data processing system 102 can include, execute, access conversation handler component 114, or otherwise communicate with conversation handler component 114 to establish a communication session between a client device (e.g., computing device 104) and data processing system 102. A communication session may refer to one or more data transmissions between a client device (e.g., computing device 104) and data processing system 102 that include input audio signals detected by sensors 134 of the client device (e.g., computing device 104) and output signals transmitted by data processing system 102 to the client device (e.g., computing device 104). The data processing system 102 (e.g., via the session handler component 114) may establish a communication session in response to receiving the input audio signal. Data processing system 102 may set the duration of the communication session. Data processing system 102 may set a timer or counter for the duration set for the communication session. In response to expiration of the timer, data processing system 102 may terminate the communication session.
Fig. 2 is an illustration of an exemplary method for performing dynamic modulation on a packetized audio signal. The method 200 may be performed by the system 100 or one or more components, systems, or elements of the system 300 described below in connection with fig. 3. For example, method 200 may be performed by data processing system 102, computing device 104, or service provider device 108. At ACT 205, method 200 may include a data processing system receiving an application from a service provider device that performs an action associated with a service via a plurality of digital platforms. For example, a data processing system may receive computer instructions corresponding to a plurality of platforms of a service. The computer instructions may include any type or form of computer logic or executable code to implement a service on two or more platforms. For example, the computer instructions may include a mobile application of a service, a desktop application of a service, and a web-based application of a service. In general, applications may be configured to provide similar or identical functionality across different platforms.
At ACT 210, method 200 may include a data processing system debugging application to verify parameters of actions on at least two of a plurality of digital platforms. Method 200 may include performing debugging of computer instructions to verify parameters of actions on at least two platforms. The computer instructions of each platform may include instructions related to at least one action of each platform. An action may have a number of associated parameters. For example, the action may correspond to making a restaurant reservation, and the parameters may include time, party size, and restaurant name. The parameters may be indicated by tags or other labels in the computer instructions. In some cases, parameters of a service on a first platform (e.g., a mobile application) may be different from parameters of the same service on a second platform (e.g., a web-based application). This may be due to version differences of the two applications or unintentional errors by the developer. To improve cross-platform consistency of the service, the data processing system may determine whether there is a conflict between parameters of actions across at least two platforms (ACT 215). If a conflict exists, the data processing system may resolve the conflict (ACT 220). For example, a component of data processing system 102, such as debugger component 118, may prompt a developer of an application to manually resolve an inconsistency or mismatch by transmitting information to service provider device 108 indicating that an inconsistency or mismatch exists and requesting a user to resolve the inconsistency or mismatch by updating computer instructions of a different platform of the service. Data processing system 102 may also implement a set of rules or policies that may allow for the automatic resolution of such conflicts. For example, if the most recently installed version of the mobile application is newer than the most recently installed version of the web-based application, data processing system 102 may select parameters of the mobile application and ignore the parameters of the web-based application.
At ACT 225, the method may include the data processing system receiving, via an interface, data packets including an input audio signal detected by a sensor of the client device. Data processing system 102 may receive input audio signals from a client computing device, such as computing device 104. For example, a natural language processor component executed by the data processing system 102 may receive an input audio signal from a client computing device via an interface of the data processing system. The data processing system may receive data packets carrying or including an input audio signal detected by a sensor of a client computing device (or client device).
At ACT 230, the method 200 may include the data processing system parsing the input audio signal to identify actions and services. The natural language processor component can parse the input audio signal to identify a request and a trigger key corresponding to the request. For example, the audio signal detected by the client device may include "Okay device, I need a ride from Taxi Service Company A to go to 1234Main Street (good device, i need to take a bus from taxi service company a to 1234Main Street)". In this audio signal, the initial trigger key may include an "okay device", which may instruct the client device to transmit the input audio signal to the data processing system. The preprocessor of the client device may filter out the term "okay device" before sending the remaining audio signal to the data processing system. In some cases, the client device may filter out additional terms or generate keywords for transmission to the data processing system for further processing.
The data processing system may identify a trigger key in the input audio signal. The trigger key may include, for example, "to go to" or "ride" or a change in these terms. The trigger key may indicate the type of service or product. The data processing system may identify a request in the input audio signal. The request may be determined based on the term "I need". The trigger key and request may be determined using semantic processing techniques or other natural language processing techniques. The recognition action may refer to determining what is to be performed. The identification service may refer to a service type such as a music streaming service performing an action or a specific service provider such as a music streaming company a performing an action. The data processing system may identify actions such as "ride" and services such as "RideSharing Company (ride sharing company)". In another example, the action may be "play song_1by artist_a (song_1 of play artist_a)" and the service may be "Music Streaming Service A (music streaming service a)". To identify actions and services, the data processing system 102 may utilize natural language processing, semantic analysis, or other processing techniques to identify keywords or entities in the input audio signal. To confirm the identification of the service, the data processing system may perform a lookup in the data store to confirm that the indicated service is an authenticated service provider.
At ACT 235, the method 200 may include the data processing system selecting a first platform of the plurality of digital platforms to perform an action based on at least one of the policy and the input audio signal or the historical execution information. The method 200 may include selecting a first platform from a plurality of platforms for performing an action. The platform may be selected based on a set of action-related rules or policies, such as a ranking policy, and audio input received from the computing device 104. Rules or policies may be configured to reduce resource computation, resource consumption, or provide an improved experience for a user, for example, by allowing actions to be performed by a platform most convenient to the user. For example, data processing system 102 can determine a ranking of possible platforms for performing the action. The ranking may be based on previous selections by the user, the type of computing device 104, or the platform with which the user is currently interacting. The ranking may also be based on other types of computing devices that may be available to the user. The ranking may also be based on the type or amount of information to be provided to the user in relation to the action. For example, if the user is requesting a small amount of information, such as current weather conditions, data processing system 102 may determine that the platform to be used should be a conversational platform. If the user is requesting more complex information, such as hotel reservations for which the user may later need transaction records, data processing system 102 may determine that the platform should be, for example, a mobile application platform or a Web-based application, rather than a conversation platform.
At ACT 240, method 200 may include data processing system 102 initiating a data exchange to populate parameters of an action data structure. In response to selection of the first platform, the data processing system may initiate an interactive data exchange to populate parameters of an action data structure corresponding to the action. The action data structure may be responsive to the request. For example, if an end user of a client computing device requests a taxi from taxi service company a, the action data structure may include information requesting a taxi service from taxi service company a. The data processing system may select a template for taxi service company a and populate fields in the template with values to allow taxi service company a to dispatch a taxi to a user of the client computing device to pick up the user and transport the user to the requested destination. Data processing system 102 can populate the action data structure by providing hints to computing device 104 and receiving input from computing device 104 in response to the hints. For example, the data exchange may be a conversational data exchange in which the data processing system 102 transmits an audio signal corresponding to a request for any of the parameters of the action data structure that are not known to the data processing system 102.
The data processing system 102 may be capable of automatically populating at least some of the parameters of the action data structure, e.g., based on information automatically provided to the data processing system 102 by the 134 of the computing device 104. Such information may include a device identifier of the computing device 104 or a geographic location of the computing device 104 based on GPS data. Other information may be obtained via conversational data exchange or other forms of data exchange. For example, the data processing system 102 may prompt a user of the computing device 104 to enter an input corresponding to a parameter value of the action data structure using a text-based interface, such as a keyboard, rather than using a dialog interface. The action data structure may also include an indication of the platform through which the action should be performed. For example, the platform may be the platform selected in ACT235 of method 200.
At ACT 245, method 200 may include the data processing system performing an action corresponding to the action data structure via the selected platform. The data processing system may perform the action via the selected platform using the action data structure. For example, the data processing system 102 can transmit an action data structure to a third party provider device (e.g., the service provider device 108) to cause the third party service provider device 108 to perform at least a portion of an action via the selected platform. The service provider device 108 may parse or process the received action data structure and determine to invoke an API, such as a dialog API, and establish a communication session between the service provider device 108 and the client computing device 104. The service provider device 108 may determine to call or otherwise execute or utilize the dialog API based on the contents of the action data structure. For example, the service provider device 108 may process a transaction associated with the action data structure (e.g., transmit payment to a ride share company, hotel, restaurant, etc.) and may transmit a confirmation of the transaction to the computing device 104. The acknowledgement may be transmitted via the platform selected in ACT 235. For example, if the selected platform is a Web-based application, the service provider device 108 may transmit information to the computing device 104 that causes the computing device 104 to launch a Web browser and load a Web page of the selected Web-based application.
Fig. 3 is a block diagram of an exemplary computer system 300. Computer system or computing device 300 may include or be used to implement system 100 or components of system 100 such as data processing system 102. Data processing system 102 may include an intelligent personal assistant or a voice-based digital assistant. Computing system 300 includes a bus 305 or other communication component for communicating information, and a processor 310 or processing circuit coupled with bus 305 for processing information. Computing system 300 may also include one or more processors 310 or processing circuits coupled with the bus for processing information. Computing system 300 also includes a main memory 315 or other dynamic storage device, such as Random Access Memory (RAM), coupled to bus 305 for storing information and instructions to be executed by processor 310. Main memory 315 may be or include data store 124. Main memory 315 may also be used for storing location information, temporary variables, or other intermediate information during execution of instructions by processor 310. Computing system 300 may further include a Read Only Memory (ROM) 320 or other static storage device coupled to bus 305 for storing static information and instructions for processor 310. A storage device 325, such as a solid state device, magnetic disk, or optical disk, may be coupled to bus 305 to permanently store information and instructions. Storage device 325 may include data store 124 or be a portion of data store 124.
The computing system 300 may be coupled via bus 305 with a display 335, such as a liquid crystal display or an active matrix display, for displaying information to a user. An input device 330, such as a keyboard including alphanumeric and other keys, may be coupled to bus 305 for communicating information and command selections to processor 310. The input device 330 may include a touch screen display 335. The input device 330 may also include a cursor control, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to the processor 310 and for controlling cursor movement on the display 335. Display 335 may be part of, for example, data processing system 102, client computing device 104, or other component of fig. 1.
The processes, systems, and methods described herein may be implemented by computing system 300 in response to processor 310 executing an arrangement of instructions contained in main memory 315. Such instructions may be read into main memory 315 from another computer-readable medium, such as storage device 325. Execution of the arrangement of instructions contained in main memory 315 causes computing system 300 to perform the illustrative processes described herein. One or more processors in a multi-processing arrangement may also be employed to execute the instructions contained in main memory 315. Hardwired circuitry may be used in place of or in combination with software instructions in combination with the systems and methods described herein. The systems and methods described herein are not limited to any specific combination of hardware circuitry and software.
Although an exemplary computing system has been described in FIG. 3, the subject matter comprising the operations described in this specification can be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
For the case where the system discussed herein collects or may utilize personal information, the user may be provided with an opportunity to control whether programs or features collect user information (e.g., information about the user's social network, social actions or activities, user preferences, or user's location) or whether or how to receive content from a content server or other data processing system that may be more relevant to the user. In addition, certain data may be anonymized in one or more ways prior to storage or use to remove personally identifiable information when generating parameters. For example, the user identity may be anonymized so that personally identifiable information may not be determined for the user, or the user's geographic location may be generalized (such as to a city, zip code, or state level) where location information is available, so that a particular location of the user cannot be determined. Thus, the user can control how information about him or her is collected and how it is used by the content server.
The subject matter and operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. The subject matter described in this specification can be implemented as one or more computer program products, e.g., one or more circuits of computer program instructions, encoded on one or more computer storage media for execution by, or to control the operation of, data processing apparatus. Alternatively or additionally, the program instructions may be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by data processing apparatus. The computer storage medium may be or be included in the following: a computer readable storage device, a computer readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Although the computer storage medium is not a propagated signal, the computer storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagated signal. Computer storage media may also be or be included in one or more separate components or media, such as multiple CDs, discs, or other storage devices. The operations described in this specification may be implemented as operations performed by a data processing apparatus on data stored on one or more computer readable storage devices or received from other sources.
The terms "data processing system," "computing device," "component," or "data processing apparatus" encompass a variety of devices, apparatuses, and machines for processing data, including, for example, a programmable processor, a computer, a system on a chip, or a combination of the foregoing. The device may comprise a dedicated logic circuit such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). In addition to hardware, an apparatus may include code that creates an execution environment for the computer program in question, such as code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures. For example, policy engine 116, debugger component 118, or NLP component 112, as well as other data processing system 102 components, may include or share one or more data processing apparatuses, systems, computing devices, or processors.
A computer program (also known as a program, software application, app, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. The computer program may correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors (e.g., components of data processing system 102) executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (programmable gate array) or an ASIC (application-specific integrated circuit). Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices including by way of example: semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disk; CD-ROM and DVD-ROM discs. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
The subject matter described herein may be implemented in a computing system comprising: a back-end component, e.g., as a data server; or middleware components such as application servers; or a front-end component, such as a client computer having a graphical user interface or web browser through which a user may interact with embodiments of the subject matter described in this specification; or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), internetworks (e.g., good), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
A computing system, such as system 100 or system 300, may include clients and servers. The client and server are typically remote from each other and typically interact through a communication network, such as network 165. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some implementations, the server transmits data (e.g., data packets representing content items) to the client device (e.g., to display data to and receive user input from a user interacting with the client device). Data generated on the client device (e.g., results of user interactions) may be received at the server from the client device (e.g., received by the data processing system 102 from the computing device 104 or the content provider computing device 106 or the service provider computing device 108).
Although operations are depicted in the drawings in a particular order, such operations need not be performed in the particular order shown or in sequential order, and not all illustrated operations need be performed. The acts described herein may be performed in a different order.
The separation of the various system components is not required in all embodiments and the described program components can be included in a single hardware or software product. For example, NLP component 112 or debugger component 118 may be part of a single component, app or program, or logic device with one or more processing circuits or one or more servers of data processing system 102.
Having now described a few illustrative embodiments, it is to be apparent that the foregoing is illustrative and not limiting and has been presented by way of example. In particular, while many of the examples presented herein relate to a particular combination of method acts or system elements, those acts and those elements may be combined in other ways to achieve the same objectives. Acts, elements and features discussed in connection with one embodiment are not intended to be excluded from a similar role or embodiment in other embodiments.
The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of "including," "comprising," "having," "containing," "involving," "characterized by" and variations thereof herein is meant to encompass the items listed thereafter, equivalents thereof and additional items as well as alternative embodiments consisting exclusively of the items listed thereafter. In one embodiment, the systems and methods described herein consist of one, each combination of more than one, or all of the elements, acts, or components described.
Any reference to an embodiment or element or act of a system or method recited herein in the singular can also encompass embodiments comprising a plurality of such elements, and any reference herein to any embodiment or element or act in the plural can also encompass embodiments comprising only a single element. Singular or plural references are not intended to limit the presently disclosed systems or methods, their components, acts, or elements to a single or multiple configurations. Reference to any action or element based on any information, action or element may include embodiments in which the action or element is based at least in part on any information, action or element.
Any embodiment disclosed herein may be combined with any other embodiment or example, and references to "an embodiment," "some embodiments," "one embodiment," etc., are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment or example. The terms as used herein do not necessarily all refer to the same embodiment. Any embodiment may be combined with any other embodiment, either inclusive or exclusive, in any manner consistent with aspects and embodiments disclosed herein.
Reference to "or" may be construed as inclusive such that any term described using "or" may indicate any one of the singular, more than one, and all of the terms. For example, reference to "at least one of a 'and B' may include only 'a', only 'B', and both 'a' and 'B'. Such references, as used in connection with "comprising" or other open terms, may include additional terms.
Where technical features in the figures, detailed description, or any claim are followed by reference numerals, the reference numerals have been included to improve understanding of the figures, detailed description, and claims. Accordingly, the absence of reference numerals or their absence has no limiting effect on the scope of any claim element.
The systems and methods described herein may be embodied in other specific forms without departing from the characteristics thereof. For example, the functionality of the data processing system may be at least partially executed on a client computing device or a service provider device.

Claims (18)

1. A system for selecting a digital platform for executing voice-based commands, comprising:
a data processing system comprising at least one processor and memory for:
Receiving, from a service provider device, an application that performs an action associated with a service via a plurality of digital platforms;
debugging the application to select a set of parameters of the action, wherein the selecting comprises a comparison of parameters of the action of at least two of the plurality of digital platforms;
receiving, via an interface of the data processing system, data packets comprising an input audio signal detected by a sensor of a client device;
parsing the input audio signal to identify the action and the service;
selecting a first platform of the plurality of digital platforms to perform the action based on a weight of a ranking policy, the ranking policy including at least a ranking policy based on a record of computing resource utilization associated with a different digital platform maintained by the data processing system, and a ranking policy based on the input audio signal or historical execution information;
responsive to selection of the first platform, initiating an interactive data exchange to populate parameters of an action data structure corresponding to the action, wherein the parameters of the action data structure include parameters of the action; and
the actions are performed via the first platform using the action data structure.
2. The system of claim 1, wherein the plurality of digital platforms comprises at least one of: a web-based application platform for the service, a mobile application platform for the service, and a dialog platform for the service.
3. The system of claim 1 or claim 2, wherein the data processing system is further to:
identifying, for the action, first flag information stored in the data processing system indicating a first parameter of the first one of the plurality of digital platforms;
identifying, for the action, second marker information stored in the data processing system that indicates a second parameter of a second platform of the plurality of digital platforms;
determining a difference between the first parameter and the second parameter based on a comparison of the first marker information and the second marker information; and
an indication of the discrepancy is provided to the service provider device.
4. The system of claim 1 or claim 2, wherein the data processing system is further to:
identifying, for the action, a first parameter of the first one of the plurality of digital platforms and second tag information stored in the data processing system indicative of a second parameter of a second one of the plurality of digital platforms;
Determining a difference between the first parameter and the second parameter based on the comparison; and
a prompt to resolve the discrepancy is transmitted to the service provider device.
5. The system of claim 4, wherein the first platform is a web-based application platform of the service and the second platform is a conversation platform of the service, the data processing system further to:
determining that fewer parameters are configured for the dialog platform than the web-based application platform.
6. The system of claim 1 or claim 2, wherein the data processing system is further to:
identifying differences within the parameters of the action on at least two of the plurality of digital platforms; and
the discrepancy is automatically resolved based on at least one policy stored by the data processing system.
7. The system of claim 1 or claim 2, wherein the data processing system is further to:
identifying differences within the parameters of the action on at least two of the plurality of digital platforms; and
the discrepancy is automatically resolved by removing at least one parameter associated with the action on one of the at least two of the plurality of digital platforms.
8. The system of claim 1 or claim 2, wherein the data processing system has been used to:
identifying, for the action, a first parameter of the first one of the plurality of digital platforms and second tag information stored in the data processing system indicative of a second parameter of a second one of the plurality of digital platforms;
determining a difference between the first parameter and the second parameter based on the comparison;
retrieving a resolution policy of the service provider device in response to the determination of the discrepancy; and
based on the resolution policy, the discrepancy is resolved.
9. The system of claim 8, wherein the data processing system is further to:
determining that the first platform is associated with a most recent version update as compared to the second platform; and
in response to determining that the first platform is associated with the most recent version update, the discrepancy is resolved by updating the second parameter to match the first parameter.
10. The system of claim 1, wherein the historical execution information includes an indication of a previous platform that was executed to perform the action of the service in response to a request from the client device, and the first platform is selected based on the previous platform performing the action being the first platform.
11. The system of claim 1, wherein:
the first platform is selected based on determining that performing the action via the first platform utilizes less computing resources than performing the action via a second platform of the plurality of digital platforms.
12. A method of selecting a digital platform for executing voice-based commands, comprising:
receiving, by a data processing system including at least one processor, an application from a service provider device that performs actions associated with a service via a plurality of digital platforms;
debugging, by the data processing system, the application to select a set of parameters of the action, wherein the selecting includes a comparison of parameters of the action of at least two platforms of the plurality of digital platforms;
receiving, by the data processing system via an interface of the data processing system, data packets comprising an input audio signal detected by a sensor of a client device;
parsing, by the data processing system, the input audio signal to identify the action and the service;
selecting, by the data processing system, a first platform of the plurality of digital platforms to perform the action based on a weight of a ranking policy, the ranking policy including at least a ranking policy based on a record of computing resource utilization associated with a different digital platform maintained by the data processing system, and a ranking policy based on the input audio signal or historical execution information;
Initiating, by the data processing system, an interactive data exchange to populate parameters of an action data structure corresponding to the action in response to a selection of the first platform, wherein the parameters of the action data structure include parameters of the action; and
the actions are performed by the data processing system via the first platform using the action data structure.
13. The method of claim 12, wherein the plurality of digital platforms comprises at least one of: a web-based application platform for the service, a mobile application platform for the service, and a dialog platform for the service.
14. The method of claim 12 or claim 13, comprising:
identifying, for the action, first flag information stored in the data processing system indicating a first parameter of the first one of the plurality of digital platforms;
identifying, for the action, second marker information stored in the data processing system that indicates a second parameter of a second platform of the plurality of digital platforms;
determining a difference between the first parameter and the second parameter based on a comparison of the first marker information and the second marker information; and
An indication of the discrepancy is provided to the service provider device.
15. The method of claim 12 or claim 13, comprising:
identifying, for the action, a first parameter of the first one of the plurality of digital platforms and second tag information stored in the data processing system indicative of a second parameter of a second one of the plurality of digital platforms;
determining a difference between the first parameter and the second parameter based on the comparison; and
a prompt to resolve the discrepancy is transmitted to the service provider device.
16. The method of claim 15, wherein the first platform is a web-based application platform of the service and the second platform is a conversation platform of the service, the method comprising:
determining that fewer parameters are configured for the dialog platform than the web-based application platform.
17. The method of claim 12 or claim 13, comprising:
identifying differences within the parameters of the action on at least two of the plurality of digital platforms; and
the discrepancy is automatically resolved based on at least one policy stored by the data processing system.
18. The method of claim 12 or claim 13, comprising:
identifying, for the action, a first parameter of the first one of the plurality of digital platforms and second tag information stored in the data processing system indicative of a second parameter of a second one of the plurality of digital platforms;
determining a difference between the first parameter and the second parameter based on the comparison;
retrieving a resolution policy of the service provider device in response to the determination of the discrepancy; and
based on the resolution policy, the discrepancy is resolved.
CN201980002144.1A 2018-05-07 2019-05-06 Platform selection to perform requested actions in an audio-based computing environment Active CN110692042B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310904057.3A CN117061495A (en) 2018-05-07 2019-05-06 Platform selection to perform requested actions in an audio-based computing environment

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862668207P 2018-05-07 2018-05-07
US62/668,207 2018-05-07
PCT/US2019/030809 WO2019217256A1 (en) 2018-05-07 2019-05-06 Platform selection for performing requested actions in audio-based computing environments

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310904057.3A Division CN117061495A (en) 2018-05-07 2019-05-06 Platform selection to perform requested actions in an audio-based computing environment

Publications (2)

Publication Number Publication Date
CN110692042A CN110692042A (en) 2020-01-14
CN110692042B true CN110692042B (en) 2023-08-08

Family

ID=66770555

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980002144.1A Active CN110692042B (en) 2018-05-07 2019-05-06 Platform selection to perform requested actions in an audio-based computing environment
CN202310904057.3A Pending CN117061495A (en) 2018-05-07 2019-05-06 Platform selection to perform requested actions in an audio-based computing environment

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310904057.3A Pending CN117061495A (en) 2018-05-07 2019-05-06 Platform selection to perform requested actions in an audio-based computing environment

Country Status (4)

Country Link
US (1) US11107470B2 (en)
EP (2) EP3610375B1 (en)
CN (2) CN110692042B (en)
WO (1) WO2019217256A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11645467B2 (en) * 2018-08-06 2023-05-09 Functionize, Inc. Training a system to perform a task with multiple specific steps given a general natural language command
GB2577879B (en) 2018-10-08 2022-08-24 B & W Group Ltd Content playback system
GB2579554A (en) * 2018-12-03 2020-07-01 Audiogum Uk Ltd Content playback system
JP7414617B2 (en) * 2020-03-31 2024-01-16 キヤノン株式会社 Systems, server devices, and methods
CN113535144A (en) * 2021-06-15 2021-10-22 北京彩彻区明科技有限公司 Natural language programming method, device, equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2858154A1 (en) * 2003-07-23 2005-01-28 France Telecom Interactive voice service managing platform, has web server including modules for creating voice dialogue of outgoing call, and interactive voice server linking base phases for outgoing call
WO2013155619A1 (en) * 2012-04-20 2013-10-24 Sam Pasupalak Conversational agent

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636590B1 (en) * 2000-10-30 2003-10-21 Ingenio, Inc. Apparatus and method for specifying and obtaining services through voice commands
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
KR101263217B1 (en) * 2009-10-15 2013-05-10 한국전자통신연구원 Mobile terminal for providing mobile cloud service and operating method of the same
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US10078489B2 (en) * 2013-12-30 2018-09-18 Microsoft Technology Licensing, Llc Voice interface to a social networking service
WO2015164697A1 (en) * 2014-04-24 2015-10-29 Evershare, Llc Provisioning an interactive feedback service via a network
US9959129B2 (en) 2015-01-09 2018-05-01 Microsoft Technology Licensing, Llc Headless task completion within digital personal assistants
CN112527353B (en) * 2015-05-27 2024-09-13 谷歌有限责任公司 Online marketplace for enhancing plug-ins for dialog systems
US20180039478A1 (en) * 2016-08-02 2018-02-08 Google Inc. Voice interaction services
JP6882463B2 (en) * 2016-10-03 2021-06-02 グーグル エルエルシーGoogle LLC Computer-based selection of synthetic speech for agents
EP3312722A1 (en) * 2016-10-21 2018-04-25 Fujitsu Limited Data processing apparatus, method, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2858154A1 (en) * 2003-07-23 2005-01-28 France Telecom Interactive voice service managing platform, has web server including modules for creating voice dialogue of outgoing call, and interactive voice server linking base phases for outgoing call
WO2013155619A1 (en) * 2012-04-20 2013-10-24 Sam Pasupalak Conversational agent

Also Published As

Publication number Publication date
US20210050008A1 (en) 2021-02-18
CN117061495A (en) 2023-11-14
WO2019217256A1 (en) 2019-11-14
EP3610375A1 (en) 2020-02-19
CN110692042A (en) 2020-01-14
EP3610375B1 (en) 2024-04-10
EP4361810A2 (en) 2024-05-01
US11107470B2 (en) 2021-08-31
EP4361810A3 (en) 2024-07-03

Similar Documents

Publication Publication Date Title
JP6629882B2 (en) Selective sensor polling
CN110692042B (en) Platform selection to perform requested actions in an audio-based computing environment
US11893993B2 (en) Interfacing with applications via dynamically updating natural language processing
US11694688B2 (en) Platform selection for performing requested actions in audio-based computing environments
CN113646742B (en) Generating and updating speech-based software applications using application templates
CN114600081B (en) Interacting with applications via dynamic update natural language processing
JP6968897B2 (en) Establishing an audio-based network session with unregistered resources
CN111465932B (en) Integrating responses from queries into heterogeneous data sources
JP2021515256A (en) Data transfer within a secure processing environment
US20210374024A1 (en) Immersive web-based simulator for digital assistant-based applications
US11048614B2 (en) Immersive web-based simulator for digital assistant-based applications
JP7339310B2 (en) Establishing audio-based network sessions with unregistered resources

Legal Events

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