WO2015183401A1 - Intelligent assistant for home automation - Google Patents
Intelligent assistant for home automation Download PDFInfo
- Publication number
- WO2015183401A1 WO2015183401A1 PCT/US2015/023593 US2015023593W WO2015183401A1 WO 2015183401 A1 WO2015183401 A1 WO 2015183401A1 US 2015023593 W US2015023593 W US 2015023593W WO 2015183401 A1 WO2015183401 A1 WO 2015183401A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- electronic device
- state
- command
- user
- electronic devices
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 144
- 230000004044 response Effects 0.000 claims abstract description 23
- 238000003860 storage Methods 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 230000000007 visual effect Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 58
- 238000012545 processing Methods 0.000 description 69
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L17/00—Speaker identification or verification techniques
- G10L17/22—Interactive procedures; Man-machine interfaces
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2816—Controlling appliance services of a home automation network by calling their functionalities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2816—Controlling appliance services of a home automation network by calling their functionalities
- H04L12/282—Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23373—Interactive guidance by voice message
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23386—Voice, vocal command or message
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/26—Pc applications
- G05B2219/2642—Domotique, domestic, home control, automation, smart house
Definitions
- Home electronic devices that can be controlled remotely using software applications running on a computing device, such as a mobile phone, tablet computer, laptop computer, desktop computer, or the like, have become increasingly popular.
- a computing device such as a mobile phone, tablet computer, laptop computer, desktop computer, or the like
- numerous manufacturers create light bulbs that can be controlled by a software application running on a mobile phone to adjust the brightness and/or color of the bulb.
- Other devices such as door locks, thermostats, and the like, having similar controls are also available.
- a typical home can include 40-50 light bulbs placed throughout the various rooms of the home.
- each light bulb is given a unique identifier, and a user attempting to control one of these devices must select the appropriate identifier from a list of available devices within a graphical user interface.
- identifier for a particular light bulb and finding that identifier from a list of 40-50 identifiers can be a difficult and time-consuming process.
- a user can speak an input in natural language form to a user device to control one or more electronic devices.
- the user device can transmit the user speech to a server to be converted into a textual representation.
- the server can identify the one or more electronic devices and appropriate commands to be performed by the one or more electronic devices based on the textual representation.
- the identified one or more devices and commands to be performed can be transmitted back to the user device, which can forward the commands to the appropriate one or more electronic devices for execution.
- the one or more electronic devices can perform the commands and transmit their current states to the user device.
- FIG. 1 illustrates an exemplary environment in which a virtual assistant can be used to control electronic devices according to various examples.
- FIG. 2 illustrates an exemplary environment in which a virtual assistant can be used to remotely control electronic devices according to various examples.
- FIG. 3 illustrates an exemplary user device according to various examples.
- FIG. 4 shows a visual representation of multiple entries used to store information associated with electronic devices according to various examples.
- FIG. 5 illustrates an exemplary process for controlling electronic devices using a virtual assistant implemented using a client-server model according to various examples.
- FIG. 6 illustrates an exemplary process for remotely controlling electronic devices using a virtual assistant implemented using a client-server model according to various examples.
- FIG. 7 illustrates an exemplary process for controlling electronic devices using a virtual assistant on a standalone user device according to various examples.
- FIG. 8 illustrates an exemplary process for storing the states of electronic devices as a configuration according to various examples.
- FIG. 9 illustrates an exemplary process for setting the states of electronic devices using a previously stored configuration according to various examples.
- FIG. 10 illustrates a functional block diagram of an electronic device configured to control electronic devices according to various examples.
- FIG. 11 illustrates a functional block diagram of an electronic device configured to store the states of electronic devices as a configuration according to various examples.
- FIG. 12 illustrates a functional block diagram of an electronic device configured to set the states of electronic devices based on a stored configuration according to various examples.
- FIG. 13 illustrates a functional block diagram of an electronic device configured to control electronic devices according to various examples.
- FIG. 14 illustrates a functional block diagram of an electronic device configured to store the states of electronic devices as a configuration according to various examples.
- FIG. 15 illustrates a functional block diagram of an electronic device configured to set the states of electronic devices based on a stored configuration according to various examples.
- Intelligent automated assistants provide an intuitive interface between users and electronic devices. These assistants can allow users to interact with devices or systems using natural language in spoken and/or text forms. For example, a user can access the services of an electronic device by providing a spoken user input in natural language form to a virtual assistant associated with the electronic device. The virtual assistant can perform natural language processing on the spoken user input to infer the user' s intent and operationalize the user's intent into tasks. The tasks can then be performed by executing one or more functions of the electronic device and a relevant output can be returned to the user in natural language form.
- a user can speak an input in natural language form to a user device to control one or more electronic devices.
- the user device can transmit the user speech to a server to be converted into a textual representation.
- the server can identify the one or more electronic devices and appropriate commands to be performed by the one or more electronic devices based on the textual representation.
- the identified one or more devices and commands to be performed can be transmitted back to the user device, which can forward the commands to the appropriate one or more electronic devices for execution.
- the one or more electronic devices can perform the commands and transmit their current states to the user device.
- FIG. 1 illustrates exemplary system 100 for implementing a virtual assistant to control electronic devices according to various examples.
- virtual assistant digital assistant
- intelligent automated assistant or “automatic digital assistant” can refer to any information processing system that interprets natural language input in spoken and/or textual form to infer user intent, and performs actions based on the inferred user intent.
- the system can perform one or more of the following: identifying a task flow with steps and parameters designed to accomplish the inferred user intent; inputting specific requirements from the inferred user intent into the task flow; executing the task flow by invoking programs, methods, services, APIs, or the like; and generating output responses to the user in an audible (e.g., speech) and/or visual form.
- audible e.g., speech
- a virtual assistant can be capable of accepting a user request at least partially in the form of a natural language command, request, statement, narrative, and/or inquiry.
- the user request seeks either an informational answer or performance of a task by the virtual assistant.
- a satisfactory response to the user request can include provision of the requested informational answer, performance of the requested task, or a combination of the two.
- a user can ask the virtual assistant a question, such as "Where am I right now?" Based on the user's current location, the virtual assistant can answer, "You are in Central Park.”
- the user can also request the performance of a task, for example, "Please remind me to call Mom at 4 p.m.
- the virtual assistant can acknowledge the request and then create an appropriate reminder item in the user's electronic schedule.
- the virtual assistant can sometimes interact with the user in a continuous dialogue involving multiple exchanges of information over an extended period of time.
- the virtual assistant can also provide responses in other visual or audio forms (e.g., as text, alerts, music, videos, animations, etc.).
- a virtual assistant can be implemented according to a client-server model.
- the virtual assistant can include a client-side portion executed on a user device 102, and a server-side portion executed on a server system 110.
- User device 102 can include any electronic device, such as a mobile phone, tablet computer, portable media player, desktop computer, laptop computer, PDA, television, television set-top box, wearable electronic device, or the like, and can communicate with server system 110 through one or more networks 108, which can include the Internet, an intranet, or any other wired or wireless public or private network.
- the client-side portion executed on user device 102 can provide client-side functionalities, such as user-facing input and output processing and communications with server system 110.
- Server system 110 can provide server-side functionalities for any number of clients residing on a respective user device 102.
- Server system 110 can include one or more virtual assistant servers 114 that can include a client-facing I/O interface 122, one or more processing modules 118, data and model storage 120, and an I/O interface to external services 116.
- the client-facing I/O interface 122 can facilitate the client-facing input and output processing for virtual assistant server 114.
- the one or more processing modules 118 can utilize data and model storage 120 to determine the user's intent based on natural language input, and perform task execution based on inferred user intent.
- data and model storage 120 can store a unique identifier, a state, a type, a location, and any other relevant information associated with one or more of electronic devices (e.g., electronic devices 128, 130, and 132) capable of being controlled by user device 102 and/or server system 110.
- virtual assistant server 114 can communicate with external services 124, such as telephony services, calendar services, information services, messaging services, navigation services, and the like, through network(s) 108 for task completion or information acquisition.
- the I O interface to external services 116 can facilitate such
- Server system 110 can be implemented on one or more standalone data processing devices or a distributed network of computers.
- server system 110 can employ various virtual devices and/or services of third party service providers (e.g., third-party cloud service providers) to provide the underlying computing resources and/or infrastructure resources of server system 110.
- third party service providers e.g., third-party cloud service providers
- User device 102 can be further coupled to electronic devices 128, 130, and 132 via one or more networks 126.
- Electronic devices 128, 130, and 132 can include any type of remotely controlled electronic device, such as a light bulb (e.g., having a binary ON/OFF state, numerical dimmable state, color state, etc.), garage door (e.g., having a binary OPEN/CLOSED state), door lock (e.g., having binary
- Network(s) 126 can include a WiFi network or any other wired or wireless public or private local network. Additionally or alternatively, user device 102 can be coupled to communicate directly with electronic devices 128, 130, or 132 using, for example, Bluetooth, BTLE, line of sight, peer-to-peer, or another radio-based or other wireless communication.
- user device 102 can be located near electronic devices 128, 130, and 132, such that it can communicate with them directly or over the same local network.
- user device 102 and electronic devices 128, 130, and 132 can be located within the same home or building, and network(s) 126 can include the home or building's WiFi network.
- network(s) 126 can include the home or building's WiFi network.
- user device 102 can issue commands to control any of electronic devices 128, 130, and 132 in response to a natural language spoken input provided by a user to user device 102.
- system 100 can include any number of electronic devices.
- the functionality of the virtual assistant is shown in FIG. 1 as including both a client-side portion and a server-side portion, in some examples, the functions of the assistant can be implemented as a standalone application installed on a user device. Moreover, the division of functionalities between the client and server portions of the virtual assistant can vary in different examples. For instance, in some examples, the client executed on user device 102 can be a thin-client that provides only user-facing input and output processing functions, and delegates all other functionalities of the virtual assistant to a backend server.
- FIG. 2 illustrates another exemplary system 200 for implementing a virtual assistant to remotely control electronic devices according to various examples.
- system 200 can include user device 102, server system 110, and external services 124 communicatively coupled together by network(s) 108.
- user device 102 may not be coupled to electronic devices 128, 130, and 132.
- system 200 can include a second user device 134 coupled to communicate with user device 102 and/or server system 110 via network(s) 108 and coupled to communicate with electronic devices 128, 130, and 132 via network(s) 126.
- This configuration can represent a situation in which the user and user device 102 are located remotely from electronic devices 128, 130, and 132 (e.g., the user and user device 102 are at the user's office, while electronic devices 128, 130, and 132 are at the user's home).
- Second user device 134 can include any type of electronic device, such as a mobile phone, tablet computer, portable media player, desktop computer, laptop computer, PDA, television, television set-top box, wearable electronic device, or the like, and can be configured to receive commands from user device 102 and/or server system 110 and to issue commands to electronic devices 128, 130, and 132. As discussed in greater detail below with respect to FIG. 6, second user device 134 can issue commands to control any of electronic devices 128, 130, and 132 in response to a natural language spoken input provided by a user to user device 102.
- FIG. 3 is a block diagram of a user-device 102 (or second user device 134) according to various examples.
- user device 102 can include a memory interface 302, one or more processors 304, and a peripherals interface 306.
- the various components in user device 102 can be coupled together by one or more communication buses or signal lines.
- User device 102 can further include various sensors, subsystems, and peripheral devices that are coupled to the peripherals interface 306. The sensors, subsystems, and peripheral devices gather information and/or facilitate various functionalities of user device 102.
- user device 102 can include a motion sensor 310, a light sensor 312, and a proximity sensor 314 coupled to peripherals interface 306 to facilitate orientation, light, and proximity sensing functions.
- One or more other sensors 316 such as a positioning system (e.g., a GPS receiver), a temperature sensor, a biometric sensor, a gyroscope, a compass, an accelerometer, and the like, are also connected to peripherals interface 306, to facilitate related functionalities.
- a camera subsystem 320 and an optical sensor 322 can be utilized to facilitate camera functions, such as taking photographs and recording video clips.
- Communication functions can be facilitated through one or more wired and/or wireless communication subsystems 324, which can include various communication ports, radio frequency receivers and transmitters, and/or optical (e.g., infrared) receivers and transmitters.
- An audio subsystem 326 can be coupled to speakers 328 and a microphone 330 to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions.
- user device 102 can further include an I/O subsystem 340 coupled to peripherals interface 306.
- I/O subsystem 340 can include a touch screen controller 342 and/or other input controller(s) 344.
- Touch-screen controller 342 can be coupled to a touch screen 346.
- Touch screen 346 and the touch screen controller 342 can, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, such as capacitive, resistive, infrared, and surface acoustic wave technologies, proximity sensor arrays, and the like.
- Other input controller(s) 344 can be coupled to other input/control devices 348, such as one or more buttons, rocker switches, a thumb-wheel, an infrared port, a USB port, and/or a pointer device such as a stylus.
- other input/control devices 348 such as one or more buttons, rocker switches, a thumb-wheel, an infrared port, a USB port, and/or a pointer device such as a stylus.
- user device 102 can further include a memory interface 302 coupled to memory 350.
- Memory 350 can include any electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, a portable computer diskette (magnetic), a random access memory (RAM) (magnetic), a read-only memory (ROM) (magnetic), an erasable programmable read-only memory (EPROM) (magnetic), a portable optical disc such as CD, CD-R, CD-RW, DVD, DVD-R, or DVD-RW, or flash memory such as compact flash cards, secured digital cards, USB memory devices, memory sticks, and the like.
- a non- transitory computer-readable storage medium of memory 350 can be used to store instructions (e.g., for performing some or all of processes 500, 600, 700, 800, or 900, described below) for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device, and execute the instructions.
- instructions e.g., for performing some or all of processes 500, 600, 700, 800, or 900, described below
- the instructions can be stored on a non-transitory computer-readable storage medium of server system 110, or can be divided between the non-transitory computer-readable storage medium of memory 350 and the non-transitory computer-readable storage medium of server system 110.
- a "non-transitory computer readable storage medium" can be any medium that can contain or store the program for use by or in connection with the instruction execution system, apparatus, or device.
- the memory 350 can store an operating system 352, a communication module 354, a graphical user interface module 356, a sensor processing module 358, a phone module 360, and applications 362.
- Operating system 352 can include instructions for handling basic system services and for performing hardware dependent tasks.
- Communication module 354 can facilitate communicating with one or more additional devices, one or more computers, and/or one or more servers.
- Graphical user interface module 356 can facilitate graphic user interface processing.
- Sensor processing module 358 can facilitate sensor related processing and functions.
- Phone module 360 can facilitate phone-related processes and functions.
- Application module 362 can facilitate various functionalities of user applications, such as electronic-messaging, web browsing, media processing, navigation, imaging, and/or other processes and functions.
- Memory 350 can also store client-side virtual assistant instructions (e.g., in a virtual assistant client module 364) and various user data 366 (e.g., user-specific vocabulary data, preference data, and/or other data, such as the user' s electronic address book, to-do lists, shopping lists, etc.) to provide the client-side functionalities of the virtual assistant.
- client-side virtual assistant instructions e.g., in a virtual assistant client module 364
- various user data 366 e.g., user-specific vocabulary data, preference data, and/or other data, such as the user' s electronic address book, to-do lists, shopping lists, etc.
- virtual assistant client module 364 can be capable of accepting voice input (e.g., speech input), text input, touch input, and/or gestural input through various user interfaces (e.g., I/O subsystem 340, audio subsystem 326, or the like) of user device 102.
- Virtual assistant client module 364 can also be capable of providing output in audio (e.g., speech output), visual, and/or tactile forms.
- output can be provided as voice, sound, alerts, text messages, menus, graphics, videos, animations, vibrations, and/or combinations of two or more of the above.
- virtual assistant client module 364 can communicate with the virtual assistant server using communication subsystem324.
- virtual assistant client module 364 can utilize the various sensors, subsystems, and peripheral devices to gather additional information from the surrounding environment of user device 102 to establish a context associated with a user, the current user interaction, and/or the current user input.
- virtual assistant client module 364 can provide the contextual information or a subset thereof with the user input to the virtual assistant server to help infer the user's intent.
- the virtual assistant can also use the contextual information to determine how to prepare and deliver outputs to the user.
- the contextual information that accompanies the user input can include sensor information, such as lighting, ambient noise, ambient temperature, images or videos of the surrounding environment, distance to another object, and the like.
- the contextual information can further include information associated with the physical state of user device 102 (e.g., device orientation, device location, device temperature, power level, speed, acceleration, motion patterns, cellular signal strength, etc.) or the software state of user device 102 (e.g., running processes, installed programs, past and present network activities, background services, error logs, resources usage, etc.). Any of these types of contextual information can be provided to the virtual assistant server 114 as contextual information associated with a user input.
- virtual assistant client module 364 can selectively provide information (e.g., user data 366) stored on user device 102 in response to requests from the virtual assistant server 114. Virtual assistant client module 364 can also elicit additional input from the user via a natural language dialogue or other user interfaces upon request by virtual assistant server 114. Virtual assistant client module 364 can pass the additional input to virtual assistant server 114 to help virtual assistant server 114 in intent inference and/or fulfillment of the user's intent expressed in the user request.
- information e.g., user data 366
- Virtual assistant client module 364 can also elicit additional input from the user via a natural language dialogue or other user interfaces upon request by virtual assistant server 114. Virtual assistant client module 364 can pass the additional input to virtual assistant server 114 to help virtual assistant server 114 in intent inference and/or fulfillment of the user's intent expressed in the user request.
- Memory 350 can further store electronic device data 370 that can include a unique identifier, a state, a type, a location, and any other relevant information associated with one or more of the electronic devices capable of being controlled by user device 102 and/or server system 110 (e.g., electronic devices 128, 130, and 132).
- FIG. 4 shows a visual representation of entries that can be stored in electronic device data 370 for seven different electronic devices. As shown, each entry includes a unique name, type, and state of the electronic device.
- Data and model storage 120 of virtual assistant server 114 can include similar or identical entries for the electronic devices that can be maintained separately from that of electronic device data 370 of memory 350.
- memory 350 can further include instructions (e.g., in daemon module 368) for creating and updating entries for electronic devices in electronic device data 370, communicating with the electronic devices of system 100, and for communicating with server system 110.
- a software application associated with the electronic device can communicate with processor(s) 304 executing daemon module 368 to provide user device 102 with a unique name, type, state, location, and the like, of the electronic device.
- the software application can allow the user to enter the unique name in any desired manner. For example, a dropdown box with common names and/or a freeform text field can be provided in the application to allow a user to name a particular device.
- the type, state, and/or location of the electronic device can be predetermined or determined by the software application through communication with the electronic device.
- Processor(s) 304 executing daemon module 368 can store this information as an entry in electronic device data 370 and can also transmit this information to server system 110 to be stored in data and models storage 120.
- daemon module 368 when executed by processor(s) 304, daemon module 368 can receive commands that are to be provided to electronic devices 128, 130, and 132 from server system 110 via network(s), and can transmit those commands to the appropriate electronic devices. Processor(s) 304 executing daemon module 368 can further receive state updates from electronic devices 128, 130, and 132, update the corresponding entries in electronic device data 370 to reflect the updated states of the devices, and transmit the state updates to server system 110 to allow server system 110 to update the corresponding entries in data and models storage 120 to reflect the updated states of the devices.
- daemon module 368 can include instructions to manage access to electronic device data 370 by other devices and software applications. For example, when executed by processor(s) 304, daemon module 368 can grant access to all of electronic device data 370 by server system 110, but can restrict access to only a portion of electronic device data 370 by other devices or software applications. This can be useful when user device 102 is used to control electronic devices made by different manufacturers. In these situations, devices or software applications from each manufacturer can communicate with daemon module 368 using an API, and daemon module 368 can limit their access to only the portions of electronic device data 370 that correspond to their respective electronic devices.
- company X can manufacture a light bulb capable of being controlled by user device 102
- company Y can manufacture a thermostat capable of being controlled by user device 102
- Daemon module 368 can facilitate communication between user device 102 and each of the light bulb and the thermostat to allow user device 102 to issue commands to the electronic devices and to receive state information associated with the electronic devices for updating electronic device data 370.
- daemon module 368 can limit the access that the light bulb (and an associated software application running on user device 102) has to information in electronic device data 370 to only the information associated with the light bulb (and possibly any other electronic devices manufactured by company X).
- daemon module 368 can limit the access that the thermostat (and an associated software application running on user device 102) has to information in electronic device data 370 to only the information associated with the thermostat (and possibly any other electronic devices manufactured by company Y). However, daemon module 368 can grant access to all of the information in electronic device data 370 to server system 110.
- memory 350 can include additional instructions or fewer instructions.
- various functions of user device 102 can be implemented in hardware and/or in firmware, including in one or more signal processing and/or application specific integrated circuits.
- FIG. 5 illustrates an exemplary process 500 for controlling electronic devices using a virtual assistant.
- process 500 can be performed using a system similar or identical to system 100, shown in FIG. 1.
- the blocks of process 500 can be performed by both user device 102 and server system 110.
- the blocks on the left side of FIG. 5 can be performed by user device 102, while the blocks on the right side of FIG. 5 can be performed by server system 110.
- an audio input including user speech can be received at a user device.
- a user device e.g., user device 102
- the microphone can convert the audio input into an analog or digital representation, and provide the audio data to one or more processors (e.g., processor(s) 304).
- data corresponding to the audio input received at block 502 can be transmitted to one or more servers for processing.
- user device 102 can transmit data corresponding to the audio input to virtual assistant server 114 of server system 110 via network(s) 108.
- data corresponding to the audio input transmitted by the user device at block 504 can be received by one or more servers.
- virtual assistant server 114 of server system 110 can receive the data corresponding to the audio input transmitted by user device 102 via network(s) 108.
- speech-to-text conversion can be performed on the data corresponding to the audio input to convert the user speech into a textual
- the user speech can be converted using any known speech-to-text conversion process.
- one or more electronic devices can be identified based at least in part on the textual representation generated at block 508.
- block 510 can include processing the textual representation of the user input to determine a user intent to issue a command to one or more electronic devices.
- server system 110 can include one or more data and model storages 120 that can store a unique identifier, a state, a type, a location, and any other relevant information associated with the electronic devices that can be controlled using system 100.
- block 510 can include identifying one or more of the electronic devices having associated information stored in data models and storages 120.
- the one or more electronic devices can be identified in any number of ways.
- the one or more electronic devices can be identified by parsing the textual representation to identify any of a set of nouns that correspond to the electronic devices supported by system 100.
- the set of nouns can include the unique names of the electronic devices stored in electronic device data 370 and data and models storage 120, the possible types of electronic devices and their synonyms (e.g., garage door, thermostat, light, dimmable light, switch, color changeable light, bulb, lamp, lock, outlet, socket, etc.), categories of possible device states (e.g., volume, temperature, brightness, color, etc.), and the like.
- categories of possible device states e.g., volume, temperature, brightness, color, etc.
- the set of nouns can include the unique names of the seven electronic devices (e.g., “Garage Door,” “Upstairs Thermostat,” “Downstairs Thermostat,” “Living Room Lamp 1,” “Living Room Lamp 2,” “Front Door,” and “Toaster Outlet”), the possible types of electronic devices and their synonyms (e.g., “Garage Door,” “Thermostat,” “Light,” “Bulb,” “Lamp,” “Lock,” “Outlet,” “Socket,” etc.), and categories of possible device states (e.g., temperature).
- the seven electronic devices e.g., "Garage Door,” “Upstairs Thermostat,” “Downstairs Thermostat,” “Living Room Lamp 1,” “Living Room Lamp 2,” “Front Door,” and “Toaster Outlet”
- the possible types of electronic devices and their synonyms e.g., “Garage Door,” “Thermostat,” “Light,” “Bulb,” “Lamp,” “Lock
- the textual representation of user speech generated at block 508 includes "Lock the front door”
- the textual representation can be processed using processing modules 118 and data and models storage 120 to search for any of the set of nouns.
- the electronic device identified at block 510 can include this device.
- more than one electronic device can be identified at block 510 depending on the textual representation of user speech. For example, if the textual representation of user speech generated at block 508 instead includes "Turn off all the bulbs,” the textual representation can be processed using processing modules 118 and data and models storage 120 to search for any of the set of nouns.
- the textual representation includes the synonym "bulb” of the possible device type "light,” and that the instruction from the user was to turn off all of those types of devices.
- the electronic devices identified at block 510 can include both “Living Room Lamp 1" and “Living Room Lamp 2.”
- block 510 can further include the use of contextual information received from user device 102 (e.g., received as part of the data corresponding to the audio input at block 506) to disambiguate between potential matching electronic devices.
- contextual information can be used, such as sensor information (e.g., lighting, ambient noise, ambient temperature, images or videos of the surrounding environment, distance to another object, and the like), information associated with the physical state of user device 102 (e.g., device orientation, device location, device temperature, power level, speed, acceleration, motion patterns, cellular signal strength, etc.), the software state of user device 102 (e.g., running processes, installed programs, past and present network activities, background services, error logs, resources usage, etc.), or the like.
- sensor information e.g., lighting, ambient noise, ambient temperature, images or videos of the surrounding environment, distance to another object, and the like
- information associated with the physical state of user device 102 e.g., device orientation, device location, device temperature, power level, speed, acceleration, motion patterns, cellular signal strength, etc.
- the software state of user device 102 e.g., running processes, installed programs, past and present network activities, background services, error logs, resources usage, etc.
- server system 110 at blocks
- the closest light or the light at which user device 102 was pointing can be selected as the electronic device at block 510.
- Other types of contextual information can be used in similar ways to
- words associated with a state in the textual representation of user input can additionally or alternatively be used to disambiguate between potential matching electronic devices or to identify the appropriate electronic device.
- a textual representation that includes "Turn it to 68" may not produce any matches using the set of nouns described above.
- block 510 can further include parsing the textual representation to identify any of a set of words associated with a state that corresponds to the electronic devices supported by system 100.
- the set of words associated with a state can include the possible states of the electronic devices and their synonyms (e.g., open, closed, close, shut, on, off, active, inactive, lock, locked, a color, etc.), the types of values of the states (e.g., binary, float, etc.), a query for the state of the device, adjectives associated with a specific type of state (e.g., warmer, cooler, brighter, dimmer, a color, etc.), or the like.
- the textual representation includes the float value "68.”
- contextual information such as a location of user device 102 can be used to select the thermostat that is closer to user device 102 as the electronic device identified at block 510.
- the textual representation instead included "Make it brighter”
- the set of words associated with a state can be used to determine that the textual representation includes the word "brighter,” which is an adjective that describes the state of devices having the type "light.”
- contextual information such as a location of user device 102 can be used to select the light that is closer to user device 102 as the electronic device identified at block 510.
- a command to be performed by each of the one or more electronic devices identified at block 510 can be identified.
- the command(s) to be performed can be identified in any number of ways.
- the command(s) to be performed can be identified by parsing the textual representation of user speech to identify any of the set of words associated with a state (e.g., the possible states of the electronic devices and their synonyms, the types of values of the states, a query for the state of the device, adjectives associated with a specific type of state).
- the identified state or operation can then be used to identify a command to be performed by each of the one or more electronic devices identified at block 510.
- the textual representation of user speech includes “Lock the front door,” it can be determined that the textual representation includes the state “lock” from the set of states.
- a command to transition to the "lock” state can be generated and identified at block 512 as being the command to be performed by the electronic device "Front Door” that was identified at block 510.
- a single command for a single electronic device is identified in the example above, it should be appreciated that multiple commands can be identified if multiple electronic devices were identified at block 510.
- the textual representation "Turn on all of the lights” can result in the identification a command to transition to the "on” state for each of "Living Room Lamp 1" and “Living Room Lamp 2" at block 512.
- block 512 can include identifying a command to set a state of the electronic device identified at block 510 to a value relative to its current value. For example, if the textual representation includes "make it warmer," the command identified at block 514 can be a command to increase the temperature of the thermostat identified at block 510 by a predetermined amount.
- the command can be a command to change the state value by an amount relative to the electronic device's current value rather than a command to transition the state value to a specific value (e.g., determined using the state of the thermostat stored in data and models storage 120) since the actual state of the electronic device may differ from the state stored in data and models storage 120.
- a specific value e.g., determined using the state of the thermostat stored in data and models storage 120
- block 512 can include identifying an instruction to cause user device 102 to query the identified electronic device(s). For example, if the textual representation includes "Is the garage door closed?", the command identified at block 514 can be a command to query the state of electronic device "Garage Door.”
- an identification of each of the one or more electronic devices identified at block 510 and the command(s) to be performed by the one or more electronic devices identified at block 512 can be transmitted to the user device.
- server system 110 can transmit the unique identifier associated with each of the electronic devices identified at block 510 and the command(s) to be performed by the one or more electronic devices to user device 102 via network(s) 108.
- the textual representation of the user speech generated at block 508 can also be transmitted to the user device at block 514.
- blocks 510 and 514 can also be performed on the user device.
- the transmitted textual representation can be used by the user device to identify one or more electronic devices and/or identify a command or commands to be performed by the one or more electronic devices in electronic device data 370. This can be desirable, for example, when the electronic device data 370 in the user device is more up-to-date than the data on the one or more servers. In such instances, the user device can identify an electronic devices and/or a command that is not included in the data of the one or more servers.
- the textual representation can be parsed at blocks 510 and/or 512 at the one or more servers to determine key words or terms that can be suitable for identifying one or more of electronic devices and/or identifying a command or commands to be performed by the one or more electronic devices.
- the parsed key words or terms can also be transmitted to the user device at block 514.
- the transmitted key words or terms can be used by the user device to identify one or more electronic devices and/or identify a command or commands to be performed by the one or more electronic devices in electronic device data 370. This can be desirable, for example, when the electronic device data 370 in the user device is more up-to-date than the data on the one or more servers. In such instances, the user device can identify an electronic devices and/or a command that is not included in the data of the one or more servers.
- the identification of each of the one or more the electronic devices and command(s) transmitted by the one or more servers can be received by the user device.
- user device 102 can receive the unique identifier(s) and the command(s) transmitted by server system 110 at block 514 via network(s) 108.
- the user device can transmit the command(s) received at block 516 to the electronic device(s) associated with the identifier(s) received at block 516. For example, if user device 102 received an identifier associated with electronic device 128 (e.g., "Front Door") and a command to transition the electronic device to a "locked” state at block 516, user device 102 can transmit the command to electronic device 128 to transition to the "locked" state via network(s) 126. If user device 102 received additional identifiers and commands at block 516, user device 102 can further transmit those commands to the identified electronic devices at block 518.
- an identifier associated with electronic device 128 e.g., "Front Door”
- user device 102 can transmit the command to electronic device 128 to transition to the "locked” state via network(s) 126.
- user device 102 can further transmit those commands to the identified electronic devices at block 518.
- the actual state of an electronic device may not be the same as the state of the electronic device as stored in user device 102 (e.g., in memory 350) and/or server system 110 (e.g., in data and models storage 120).
- a door lock could have been manually opened or closed without using the virtual assistant of system 100.
- block 518 can be performed regardless of the state of the electronic device as stored in user device 102 and/or server system 110.
- a command to set a door lock's state to "locked” can be transmitted to the door lock even if the corresponding entry in user device 102 and/or server system 110 indicates that they door is already locked.
- block 518 can be performed without first querying the electronic device (e.g., between blocks 516 and 518) to determine its actual state in order to reduce the amount of time required to issue a command to the electronic device.
- the command to set the door lock's state to "locked" can be transmitted to the door lock without first querying its state, thereby reducing the time required to transmit the command to the door lock by an amount corresponding to the time required to send a query to the door lock and to receive the state from the door lock.
- the user device can receive a current state of each electronic device (that was sent a command at block 518) after each electronic device executes their respective command.
- user device 102 can receive an updated status of electronic device 128 after it performed the command to set its state to "locked.”
- the current state returned to user device 102 can be the state "locked.” If commands were sent to more than one electronic device at block 518, block 520 can further include receiving current states from those electronic devices. In some examples, block 520 can further include updating the state of the electronic device in electronic device data 370 based on the received current state.
- block 520 can further include outputting an audio or visual indication of a result of the command(s) transmitted to the electronic device(s) at block 518 based on the transmitted command(s) and the received current state(s) of the electronic device(s). For example, if the command transmitted to electronic device 128 was a command to transition the device's state to "locked” and the current state of electronic device 128 received at block 520 was "locked," an indication of the result can be that electronic device 128 was successfully transitioned to the "locked” state.
- the received current state of the electronic device e.g., "unlocked”
- the desired state indicated in the command e.g., "locked”
- an indication of a failure to transition to the "locked” state can be presented to the user.
- the current state can further include an error state, such as an undetermined or unavailable state of the device.
- the user device can transmit the current state(s) of the electronic device(s) received at block 520 to the one or more servers.
- user device 102 can transmit the current state of the electronic device received at block 520 to server system 110. If the current state of more than one electronic device was received at block 520, block 522 can further include transmitting those current states to server system 110.
- the one or more servers can receive the current state(s) of the electronic device(s) transmitted by the user device at block 522.
- server system 110 can receive the current state of the electronic device transmitted by user device 102 at block 522. If user device 102 transmitted more than one current state, block 524 can further include receiving those current states as well.
- block 524 can further include updating the state(s) of the electronic device(s) in data and models storage 120 based on the received current state(s). For example, server system 110 can update the state of electronic device 128 in data and models storage 120 to "locked.”
- process 500 can further include generating a notification associated with the current state of one or more of the electronic devices in response to determining that a predetermined condition has been satisfied. For example, in response to the location of user device 102 exiting a predetermined area (e.g., an area corresponding to the user's home) while one or more of the electronic devices are in a predetermined state (e.g., the "Front Door" is unlocked), a notification can be presented to the user via user device 102 indicating that the user forgot to lock their door. Other similar notifications can be generated in response to other predetermined conditions.
- a predetermined area e.g., an area corresponding to the user's home
- a predetermined state e.g., the "Front Door" is unlocked
- Other similar notifications can be generated in response to other predetermined conditions.
- a virtual assistant implemented by a user device can receive natural language commands to set the state or query any number of electronic devices.
- the natural language commands can refer to the electronic devices in any desired manner and need not include unique identifiers of the electronic devices or a type of the electronic device.
- FIG. 6 illustrates an exemplary process 600 for remotely controlling electronic devices using a virtual assistant.
- process 600 can be similar to process 500, except that process 600 can be performed using a system similar or identical to system 200, shown in FIG. 2.
- process 600 can be performed by a user device (e.g., user device 102) that is located remotely from the electronic devices being controlled (e.g., electronic devices 128, 130, and 132), and a second user device (e.g., second user device 134) can instead be used to control the electronic devices.
- portions of process 600 can be performed by each of user device 102, server system 110, and second user device 134.
- the blocks on the left side of FIG. 6 can be performed by user device 102
- the blocks in the middle of FIG. 6 can be performed by server system 110
- the blocks on the right side of FIG. 6 can be performed by second user device 134.
- the blocks of process 600 can be similar or identical to the identically numbered blocks of process 500, except that blocks 516, 518, 520, and 522 of process 600 can instead be performed by a second user device (e.g., second user device 134). Additionally, as a result, the identification of each of the one or more electronic devices and command(s) to be performed by the electronic device(s) can instead be transmitted to the second user device at block 514, and the current state(s) of the electronic device(s) can instead be received from the second user device at block 524.
- a second user device e.g., second user device 134
- process 600 can further include transmitting, by the one or more servers, the current state(s) of the electronic device(s) received at block 524 to the user device that received the audio input at block 502. Additionally or alternatively, the process can include transmitting an indication of success of the command transmitted to the electronic device at block 518. For example, a visual or audio output can be generated that notifies the user of the success, partial success, or failure to execute the command by the electronic device. The success determination can depend on the command transmitted to the electronic device and the current state of the device received at block 524.
- FIG. 7 illustrates an exemplary process 700 for controlling electronic devices using a virtual assistant.
- process 700 can be similar to process 500, except that process 700 can be performed using a standalone user device that can perform the functions of both user device 102 and server system 110. As a result, all blocks of process 700 can be performed by the user device (e.g., user device 102).
- the blocks of process 700 can be similar or identical to the identically numbered blocks of process 500, except that blocks 508, 510, and 512 can instead be performed by the user device (e.g., user device 102). Additionally, as a result, the blocks corresponding to functions for communicating between user device 102 and server system 110 (e.g., blocks 504, 506, 514, 516, 522, and 524) need not be performed. STORING A CONFIGURATION OF ELECTRONIC DEVICES
- FIG. 8 illustrates an exemplary process 800 for storing the states of multiple electronic devices as a configuration using a virtual assistant.
- the configuration can represent a stored set of states of the multiple electronic devices that can be referenced in a spoken user input to cause the multiple electronic devices to transition to the states defined in the configuration.
- a user may create a "sleep" configuration in which the states of all lights are set to off, the states of the thermostats are set to 72°F, the state of all doors are set to locked, and the state of the garage door is set to closed.
- process 800 can be performed using a system similar or identical to system 100, shown in FIG. 1.
- the blocks of process 800 can be performed by both user device 102 and server system 110. Specifically, the blocks on the left side of FIG. 8 can be performed by user device 102, while the blocks on the right can be performed by server system 110.
- an audio input including user speech can be received at a user device in a manner similar or identical to block 502 of process 500.
- data corresponding to the audio input received at block 802 can be transmitted to one or more servers for processing in a manner similar or identical to block 504 of process 500.
- the data corresponding to the audio input transmitted by the user device at block 804 can be received by one or more servers in a manner similar or identical to block 506 of process 500.
- speech to text conversion can be performed on the data corresponding to the audio input to convert the user speech into a textual representation of the user speech in a manner similar or identical to block 508 of process 500.
- the textual representation of the user speech represents a user intent to store the states of the electronic devices of system 100 as a configuration.
- one or more processing modules 118 of server system 110 can utilize data and model storage 120 to determine the user's intent based on natural language input. In some examples, this can include parsing the textual representation for words likely to be related to storing a configuration, such as "save,” “store,” “name,” “keep,” “configuration,” “scene,” their synonyms, and the like.
- the textual representation includes "Store this configuration as sleep,” it can be determined at block 810 that the user intends to store the state of the electronic devices as a configuration named "sleep.”
- Other textual representations such as "Save this scene as work,” can similarly result in a determination at block 810 that the user intends to store the state of the electronic devices as a configuration named "work.”
- the one or more servers can transmit an instruction to the user device to query the state of the electronic devices.
- server system 110 can transmit an instruction to user device 102 to query the state of electronic devices 128, 130, and 132 via network(s) 108.
- the instruction to query the state of the electronic devices transmitted by the one or more servers can be received by the user device.
- user device 102 can receive the instruction to query the state of electronic devices 128, 130, and 132 from server system 110 via network(s) 108.
- the user device can transmit a query to each of the electronic devices for their current state.
- user device 102 can transmit a command to each of electronic devices 128, 130, and 132 instructing them to return their current state via network(s) 126.
- the user device can receive a current state of each of the electronic device(s) in response to the query transmitted at block 516 (or a current state of all electronic devices capable of transmitting their current state).
- user device 102 can receive a current state of electronic devices 128, 130, and 132 via network(s) 126 in response to the query sent to each of the devices at block 816.
- block 818 can further include updating the state of the electronic device in electronic device data 370 based on the received current state.
- the current state can further include an error state, such as an undetermined or unavailable state of the device.
- the user device can transmit the current states of the electronic devices received at block 818 to the one or more servers.
- user device 102 can transmit the current states of the electronic devices received at block 818 to server system 110.
- the one or more servers can receive the current states of the electronic devices transmitted by the user device at block 820.
- server system 110 can receive the current state of electronic devices 128, 130, and 132 from user device 102 via network(s) 126.
- the one or more servers can store the current states of the electronic devices received at block 822 as a configuration.
- the configuration can be assigned a unique identifier, such as "sleep,” “morning,” “work,” or the like, based on the name provided in the textual representation and identified at block 810.
- server system 110 can store the current states of electronic devices 128, 130, and 132 as a "sleep" configuration in model and data storage 120 in response to a user speech received at block 802 that included "name this configuration sleep.”
- FIG. 9 illustrates an exemplary process 900 for setting the states of multiple electronic devices using a previously stored configuration (e.g., created using process 800) using a virtual assistant.
- process 900 can be performed using a system similar or identical to system 100, shown in FIG. 1.
- the blocks of process 900 can be performed by both user device 102 and server system 110. Specifically, the blocks on the left side of FIG. 9 can be performed by user device 102, while the blocks on the right can be performed by server system 110.
- an audio input including user speech can be received at a user device in a manner similar or identical to block 502 of process 500.
- data corresponding to the audio input received at block 902 can be transmitted to one or more servers for processing in a manner similar or identical to block 504 of process 500.
- data corresponding to the audio input transmitted by the user device at block 904 can be received by one or more servers in a manner similar or identical to block 506 of process 500.
- speech to text conversion can be performed on the user speech of the audio input to convert the user speech into a textual representation of the user speech in a manner similar or identical to block 508 of process 500.
- the textual representation of the user speech represents a user intent to set the states of the electronic devices of system 100 based on a stored configuration.
- one or more processing modules 118 of server system 110 can utilize data and model storage 120 to determine the user's intent based on natural language input. In some examples, this can include parsing the textual representation for words likely to be related to using a stored configuration, such as the unique identifiers associated with the stored configurations, "set,” “configuration,” “scene,” their synonyms, or the like. For example, if the textual representation includes "I'm going to sleep,” it can be determined at block 910 that the user intends to set the state of the electronic devices based on the "sleep" configuration. Other textual representations, such as "night mode,” “set to sleep,” or the like, can similarly result in a determination at block 910 that the user intends set the state of the electronic devices based on the "sleep” configuration.
- commands to set the states of the electronic devices of system 100 based on the configuration identified at block 910 can be transmitted by the one or more servers to the user device. Identifications associated with the commands can also be transmitted to identify which devices are to perform each command. For example, server system 110 can transmit the unique identifiers associated with the electronic devices and the commands that are to be performed by those electronic devices to cause the electronic devices to be in the states specified by the stored configuration.
- commands to set the states of the electronic devices of system 100 transmitted by the server(s) can be received by the user device.
- user device 102 can receive the commands transmitted by server system 110 at block 912 via network(s) 108.
- the user device can transmit the commands received at block 914 to the electronic devices associated with the commands.
- user device 102 can transmit commands to electronic devices 128, 130, and 132 via network(s) 126 to cause the electronic devices to be in the states specified by the stored configuration.
- the actual state of an electronic device may not be the same as the state of the electronic device as stored in user device 102 (e.g., in memory 350) and/or server system 110 (e.g., in data and models storage 120).
- block 916 can be performed regardless of the state of the electronic device as stored in user device 102 and/or server system 110, and without first querying the electronic devices (e.g., between blocks 914 and 916) to determine their actual states in order to reduce the amount of time required to issue a command to the electronic devices.
- the user device can receive an updated state of the electronic devices after the electronic devices perform the commands transmitted by the user device at block 916.
- user device 102 can receive updated statuses of electronic devices 128, 130, and 132 after they performed the commands to set their states to the states specified by the stored configuration.
- block 920 can further include updating the state of the electronic device in electronic device data 370 based on the received current state.
- user device 102 can update the state of electronic device 128 in electronic device data 370 to "locked.”
- block 918 can further include outputting an audio or visual indication of a result of the command(s) transmitted to the electronic device(s) at block 916 based on the transmitted command(s) and the received current state(s) of the electronic device(s).
- the updated state can further include an error state, such as an undetermined or unavailable state of the device.
- the user device can transmit the updated states of the electronic device received at block 918 to the one or more servers.
- user device 102 can transmit the updated states of the electronic devices received at block 918 to server system 110.
- the one or more servers can receive the updated states of the electronic devices transmitted by the user device at block 920.
- server system 110 can receive the updated states of the electronic devices transmitted by user device 102 at block 920.
- block 922 can further include updating the states of the electronic devices in data and models storage 120 based on the received updated states.
- the states of the electronic devices can be configured using a stored configuration in response to determining that a predetermined condition has been satisfied. For example, in response to the location of user device 102 entering a predetermined area (e.g., an area corresponding to the user's home), commands can be sent to the electronic devices to transition to states specified by a stored configuration (e.g., a "home" configuration).
- a stored configuration e.g., a "home” configuration
- commands can be sent to the electronic devices to transition to states specified by another stored configuration (e.g., a "work" configuration) in response to the location of user device 102 exiting a predetermined area (e.g., an area corresponding to the user's home) during a predetermined window of time (e.g., between 8-9 a.m. on a weekday).
- a predetermined area e.g., an area corresponding to the user's home
- a predetermined window of time e.g., between 8-9 a.m. on a weekday.
- Other similar predetermined conditions can be created to cause system 100 to configure the electronic devices based on stored configurations.
- FIG. 10 shows a functional block diagram of an electronic device 1000 configured in accordance with the principles of the various described examples.
- the functional blocks of the device can be implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described examples. It is understood by persons of skill in the art that the functional blocks described in FIG. 10 can be combined or separated into sub-blocks to implement the principles of the various described examples.
- electronic device 1000 can include a touch screen display unit 1002 configured to display a user interface and to receive touch input, and a sound receiving unit 1004 configured to receive sound input.
- electronic device 1000 can include a speaker unit 1006 configured to generate sound.
- Electronic device 1000 can further include a processing unit 1008 coupled to touch screen display unit 1002 and sound receiving unit 1004 (and, optionally, coupled to speaker unit 1006).
- processing unit 1008 can include an audio input receiving unit 1010, an audio input transmitting unit 1012, an identification and command receiving unit 1014, an identification and command transmitting unit 1016, a state receiving unit 1018, a state transmitting unit 1020, a state updating unit 1022, an indication outputting unit 1024, a second identification and command receiving unit 1026, a second identification and command transmitting unit 1028, and a second state receiving unit 1030, a second state transmitting unit 1032, and a notification transmitting unit 1034.
- Processing unit 1008 can be configured to receive an audio input (e.g., using audio input receiving unit 1010) containing user speech. Processing unit 1008 can be further configured to transmit (e.g., using audio input transmitting unit 1012) data corresponding to the audio input to one or more servers. Processing unit 1008 can be further configured to receive (e.g., using identification and command receiving unit 1014), from the one or more servers, an identification of a first electronic device determined by the one or more servers based on the data corresponding to the audio input and a first command to be performed by the first electronic device determined by the one or more servers based on the data corresponding to the audio input. The first command can be transmitted to the first electronic device (e.g., using an audio input (e.g., using audio input transmitting unit 1012) data corresponding to the audio input to one or more servers. Processing unit 1008 can be further configured to receive (e.g., using identification and command receiving unit 1014), from the one or more servers, an identification of a first electronic device determined by the one or more servers based
- a current state of the first electronic device can be received (e.g., using state receiving unit 1018) from the first electronic device after transmitting the first command to the first electronic device.
- the current state of the first electronic device can be transmitted (e.g., using state transmitting unit 1020) to the one or more servers.
- first electronic device includes a light bulb.
- the first command includes a command to set an ON/OFF state, dimmable state, or color state of the light.
- the current state of the first electronic device includes the ON/OFF state, dimmable state, or color state of the light bulb after transmitting the first command to set the ON/OFF state, dimmable state, or color state of the light bulb.
- first electronic device includes a switch.
- the first command includes a command to set an ON/OFF state of the switch.
- the current state of the first electronic device includes the ON/OFF state of the switch after transmitting the first command to set the
- the first electronic device includes an electrical outlet.
- the first command includes a command to set an
- the current state of the first electronic device includes the ACTIVE/INACTIVE state of the electrical outlet after transmitting the command to set the ACTIVE/INACTIVE state of the electrical outlet.
- the first electronic device includes a door lock.
- the first command includes a command to set a LOCKED/UNLOCKED state of the door lock.
- the current state of the first electronic device includes the LOCKED/UNLOCKED state of the door lock after transmitting the command to set the LOCKED/UNLOCKED state of the door lock.
- the first electronic device includes a garage door.
- the first command includes a command to set an OPEN/CLOSED state of the garage door.
- the current state of the first electronic device includes the OPEN/CLOSED state of the garage door after transmitting the command to set the OPEN/CLOSED state of the garage door.
- the first electronic device includes a thermostat.
- the first command includes a command to set a numerical value of a temperature setting of the thermostat.
- the current state of the first electronic device includes the numerical value of the temperature setting of the thermostat after transmitting the first command to set the numerical value of the temperature setting of the thermostat.
- the first command includes a query for the current state of the first electronic device.
- the first command can be transmitted (e.g., using identification and command transmitting unit 1016) to first electronic device over a local wireless network.
- the first command can be transmitted to the first electronic device directly through Bluetooth, line of sight, peer-to-peer, or WiFi communication.
- processing unit 1008 can be configured to exclude querying the first electronic device for the state of the first electronic device between receiving the first command from the one or more servers and transmitting the first command to the first electronic device.
- electronic device 1000 can further include a database unit 1034 for storing a state of each of a plurality of electronic devices, the plurality of electronic devices including the first electronic device.
- processing unit 1008 can be further configured to update (e.g., using state updating unit 1022) a state of the first electronic device stored in database unit 1034 based at least in part on the current state of the first electronic device received from the first electronic device.
- processing unit 1008 can be further configured to output (e.g., using indication outputting unit 1024) an indication of a result of the first command based on the first command and the current state of the first electronic device received from the first electronic device.
- electronic device 1000 can include a mobile phone, desktop computer, laptop computer, tablet computer, portable media player, television, television set-top box, or wearable electronic device.
- processing unit 1008 can be further configured to receive (e.g., using second identification and command receiving unit 1026), from the one or more servers, an identification of a second electronic device determined by the one or more servers based on the data corresponding to the audio input and a second command to be performed by the second electronic device determined by the one or more servers based on the data corresponding to the audio input.
- Processing unit 1008 can be further configured to transmit (e.g., using second identification and command transmitting unit 1028) the second command to the second electronic device and to receive (e.g., using second state receiving unit 1030), after transmitting the second command to the second electronic device, a current state of the second electronic device from the second electronic device.
- Processing unit 1008 can be further configured to transmit (e.g., using second state transmitting unit 1032) the current state of the second electronic device to the one or more servers.
- processing unit 1008 can be further configured to transmit (e.g., using notification transmitting unit 1036) a notification associated with the current state of the first electronic device in response to determining that a predetermined condition has been satisfied.
- FIG. 11 shows a functional block diagram of an electronic device 1100 configured in accordance with the principles of the various described examples.
- the functional blocks of the device can be implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described examples. It is understood by persons of skill in the art that the functional blocks described in FIG. 11 can be combined or separated into sub-blocks to implement the principles of the various described examples.
- electronic device 1100 can include a touch screen display unit 1102 configured to display a user interface and to receive touch input, and a sound receiving unit 1104 configured to receive sound input.
- electronic device 1100 can include a speaker unit 1106 configured to generate sound.
- Electronic device 1100 can further include a processing unit 1108 coupled to touch screen display unit 1102 and sound receiving unit 1104 (and, optionally, coupled to speaker unit 1106).
- processing unit 1108 can include an audio input receiving unit 1110, an audio input transmitting unit 1112, an instruction receiving unit 1114, a query transmitting unit 1116, a state receiving unit 1118, and a state transmitting unit 1120.
- Processing unit 1108 can be configured to receive an audio input (e.g., using audio input receiving unit 1110) containing user speech. Processing unit 1108 can be further configured to transmit (e.g., using audio input transmitting unit 1112) data corresponding to the audio input to one or more servers. Processing unit 1108 can be further configured to receive (e.g., using instruction receiving unit 1114), from the one or more servers, an instruction to query a state of each of a plurality of electronic devices determined by the one or more servers based on the data corresponding to the audio input.
- an audio input e.g., using audio input receiving unit 1110
- Processing unit 1108 can be further configured to transmit (e.g., using audio input transmitting unit 1112) data corresponding to the audio input to one or more servers.
- Processing unit 1108 can be further configured to receive (e.g., using instruction receiving unit 1114), from the one or more servers, an instruction to query a state of each of a plurality of electronic devices determined by the one or more servers based on the data
- a state query can be transmitted (e.g., using query transmitting unit 1116) to each of the plurality of electronic devices, and a current state of each of the plurality of electronic devices can be received (e.g., using state receiving unit 1118) from the plurality of electronic devices.
- the current state of each of the plurality of electronic devices can be transmitted (e.g., using state transmitting unit 1120) to the one or more servers to be stored as a configuration.
- FIG. 12 shows a functional block diagram of an electronic device 1200 configured in accordance with the principles of the various described examples.
- the functional blocks of the device can be implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described examples. It is understood by persons of skill in the art that the functional blocks described in FIG. 12 can be combined or separated into sub-blocks to implement the principles of the various described examples.
- electronic device 1200 can include a touch screen display unit 1202 configured to display a user interface and to receive touch input, and a sound receiving unit 1204 configured to receive sound input.
- electronic device 1200 can include a speaker unit 1206 configured to generate sound.
- Electronic device 1200 can further include a processing unit 1208 coupled to touch screen display unit 1202 and sound receiving unit 1204 (and, optionally, coupled to speaker unit 1206).
- processing unit 1208 can include an audio input receiving unit 1210, an audio input transmitting unit 1212, an instruction receiving unit 1214, a query transmitting unit 1216, a state receiving unit 1218, and a state transmitting unit 1220.
- processing unit 1208 can be further configured to receive (e.g., using audio input receiving unit 1210) an audio input including a user speech, transmit (e.g., using audio input transmitting unit 1212) data corresponding to the audio input to the one or more servers, and receive (e.g., using command receiving unit 1214), from the one or more servers, a plurality of commands to set the state of each of the plurality of electronic devices determined by the one or more servers based on a stored configuration.
- Processing unit 1208 can be further configured to transmit (e.g., using command transmitting unit 1216) the plurality of commands to the plurality of electronic devices.
- Processing unit 1208 can be further configured to receive (e.g., using state receiving unit 1218) an updated state of each of the plurality of electronic devices from the plurality of electronic devices and to transmit (e.g., using state transmitting unit 1220) the updated state of each of the plurality of electronic devices to the one or more servers.
- electronic device 1300 can include a touch screen display unit 1302 configured to display a user interface and to receive touch input, and a sound receiving unit 1304 configured to receive sound input.
- electronic device 1300 can include a speaker unit 1306 configured to generate sound.
- Electronic device 1300 can further include a processing unit 1308 coupled to touch screen display unit 1302 and sound receiving unit 1304 (and, optionally, coupled to speaker unit 1306).
- processing unit 1308 can include an audio input receiving unit 1310, speech-to-text converting unit 1312, an electronic device identifying unit 1314, a command identifying unit 1316, an identification and command transmitting unit 1318, a state receiving unit 1320, a state updating unit 1322, a contextual information receiving unit 1324, an indication transmitting unit 1326, a second electronic device identifying unit 1328, a second command identifying unit 1330, a second identification and command transmitting unit 1332, and a second state receiving unit 1336.
- Processing unit 1308 can be configured to receive data corresponding to an audio input (e.g., using audio input receiving unit 1310) containing user speech. Processing unit 1308 can be further configured perform (e.g., using speech to text converting unit 1312) speech-to-text conversion on the data corresponding to the audio input to generate a textual representation of the user speech. Processing unit 1308 can be further configured to identify (e.g., using electronic device identifying unit 1314) a first electronic device based on the textual representation of the user speech. Processing unit 1308 can be further configured to identify (e.g., using command identifying unit 1316) a first command to be performed by the first electronic device based on the textual representation of user speech.
- an audio input e.g., using audio input receiving unit 1310
- Processing unit 1308 can be further configured perform (e.g., using speech to text converting unit 1312) speech-to-text conversion on the data corresponding to the audio input to generate a textual representation of the user speech.
- Processing unit 1308 can
- Processing unit 1308 can be further configured to transmit (e.g., using identification and command transmitting unit 1318) an identification of the first electronic device and the first command to the user device. Processing unit 1308 can be further configured to receive (e.g., using state receiving unit 1320) a current state of the first electronic device.
- first electronic device includes a light bulb.
- the first command includes a command to set an ON/OFF state, dimmable state, or color state of the light.
- the current state of the first electronic device includes the ON/OFF state, dimmable state, or color state of the light bulb after transmitting the first command to set the ON/OFF state, dimmable state, or color state of the light bulb.
- the first electronic device includes an electrical outlet.
- the first command includes a command to set an
- the current state of the first electronic device includes the ACTIVE/INACTIVE state of the electrical outlet after transmitting the command to set the ACTIVE/INACTIVE state of the electrical outlet.
- the first electronic device includes a switch.
- the first command includes a command to set an ON/OFF state of the switch.
- the current state of the first electronic device includes the ON/OFF state of the electrical outlet after transmitting the command to set the ON/OFF state of the switch.
- the first electronic device includes a door lock.
- the first command includes a command to set a LOCKED/UNLOCKED state of the door lock.
- the current state of the first electronic device includes the LOCKED/UNLOCKED state of the door lock after transmitting the command to set the LOCKED/UNLOCKED state of the door lock.
- the first electronic device includes a garage door.
- the first command includes a command to set an OPEN/CLOSED state of the garage door.
- the current state of the first electronic device includes the OPEN/CLOSED state of the garage door after transmitting the command to set the OPEN/CLOSED state of the garage door.
- the first electronic device includes a thermostat.
- the first command includes a command to set a numerical value of a temperature setting of the thermostat.
- the current state of the first electronic device includes the numerical value of the temperature setting of the thermostat after transmitting the first command to set the numerical value of the temperature setting of the thermostat.
- the first command includes a query for the current state of the first electronic device.
- electronic device 1300 further includes a database unit 1334 for storing a name, a type, and a state of each of a plurality of electronic devices, the plurality of electronic devices comprising the first electronic device.
- processing unit 1308 can be further configured to update (e.g., using state updating unit 1322) the state of the first electronic device stored in database unit 1334 based on the current state of the first electronic device.
- processing unit 1308 can be further configured to receive (e.g., using contextual information receiving unit 1324) contextual information within the data corresponding to the audio input from the user device.
- processing unit 1308 can be further configured to identify (e.g., using electronic device identifying unit 1314) the first electronic device based on the contextual information.
- processing unit 1308 can be further configured to identify (e.g., using command identifying unit 1316) the first command based on the contextual information.
- the contextual information includes an orientation of the user device when the user device received the audio input or a location of the user device when the user device received the audio input.
- the textual representation of the user speech excludes the name of the first electronic device. In other examples, the textual representation of the user speech excludes the type of the first electronic device.
- electronic device 1300 includes a mobile phone, desktop computer, laptop computer, tablet computer, portable media player, television, television set-top box, or wearable electronic device.
- processing unit 1308 can be further configured to transmit (e.g., using identification and command transmitting unit 1318) the identification of the first electronic device and the first command to the user device, and to receive (e.g., using state receiving unit 1320) the current state of the first electronic device from the user device.
- processing unit 1308 can be further configured to transmit (e.g., using identification and command transmitting unit 1318) the identification of the first electronic device and the first command to a second user device, and to receive (e.g., using state receiving unit 1320) the current state of the first electronic device from the second user device.
- processing unit 1308 can be further configured to transmit (e.g., using indication transmitting unit 1326) an indication to the second user device of a result of the first command based on the first command and the current state of the first electronic device.
- processing unit 1308 can be further configured to identify (e.g., using second electronic device identifying unit 1328) a second electronic device based on the textual representation of the user speech, identify (e.g., using second command identifying unit 1330) a second command to be performed by the second electronic device based on the textual representation of the user speech, transmit (e.g., using second identification and command transmitting unit 1332) an identification of the second electronic device and the second command, and receive (e.g., using second state receiving unit 1336) a current state of the second electronic device.
- identify e.g., using second electronic device identifying unit 1328
- identify e.g., using second command identifying unit 1330
- a second command to be performed by the second electronic device based on the textual representation of the user speech
- transmit e.g., using second identification and command transmitting unit 1332
- receive e.g., using second state receiving unit 1336
- electronic device 1400 can include a touch screen display unit 1402 configured to display a user interface and to receive touch input, and a sound receiving unit 1404 configured to receive sound input.
- electronic device 1400 can include a speaker unit 1406 configured to generate sound.
- Electronic device 1400 can further include a processing unit 1408 coupled to touch screen display unit 1402 and sound receiving unit 1404 (and, optionally, coupled to speaker unit 1406).
- processing unit 1408 can include an audio input receiving unit 1410, speech-to-text converting unit 1412, a determining unit 1414, an instruction transmitting unit 1416, a state receiving unit 1416, a configuration storing unit 1420, a second audio input receiving unit 1422, a second speech to text converting unit 1424, a second determining unit 1426, a command transmitting unit 1428, and a second state receiving unit 1430.
- Processing unit 1408 can be configured to receive (e.g., using audio input receiving unit 1410) data corresponding to an audio input comprising a user speech from a user device. Processing unit 1408 can be further configured perform (e.g., using speech to text converting unit 1412) speech-to-text conversion on the data corresponding to the audio input to generate a textual representation of the user speech. Processing unit 1408 can be further configured to determine (e.g., using determining unit 1414) that the textual representation of the user speech represents a user intent to store a state of each of a plurality of electronic devices as a
- Processing unit 1408 can be further configured to transmit (e.g., using instruction transmitting unit 1416) an instruction to query the state of each of the plurality of electronic devices. Processing unit 1408 can be further configured to receive (e.g., using state receiving unit 1418) a current state of each of the plurality of electronic devices. Processing unit 1408 can be further configured to store (e.g., using configuration storing unit 1420) the received current state of each of the plurality of electronic devices as the configuration.
- electronic device 1500 can include a touch screen display unit 1502 configured to display a user interface and to receive touch input, and a sound receiving unit 1504 configured to receive sound input.
- electronic device 1500 can include a speaker unit 1506 configured to generate sound.
- Electronic device 1500 can further include a processing unit 1508 coupled to touch screen display unit 1502 and sound receiving unit 1504 (and, optionally, coupled to speaker unit 1506).
- processing unit 1408 can include an audio input receiving unit 1510, speech-to-text converting unit 1512, a determining unit 1514, an instruction transmitting unit 1516, a state receiving unit 1516, a configuration storing unit 1520, a second audio input receiving unit 1522, a second speech to text converting unit 1524, a second determining unit 1526, a command transmitting unit 1528, and a second state receiving unit 1530.
- processing unit 1508 can be further configured to receive (e.g., using audio input receiving unit 1510) data corresponding to an audio input comprising a user speech, perform (e.g., using speech to text converting unit 1512) speech-to-text conversion on the data corresponding to the audio input to generate a textual representation of the user speech, determine (e.g., using determining unit 1514) that the textual representation of the user speech represents a user intent to change the state of each of the plurality of electronic devices based on the
- one aspect of the present technology is the gathering and use of data available from various sources to improve the delivery to users of invitational content or any other content that may be of interest to them.
- the present disclosure contemplates that in some instances, this gathered data can include personal information data that uniquely identifies or can be used to contact or locate a specific person.
- personal information data can include demographic data, location-based data, telephone numbers, email addresses, home addresses, or any other identifying information.
- the present disclosure recognizes that the use of such personal information data, in the present technology, can be used to the benefit of users.
- the personal information data can be used to deliver targeted content that is of
- the present disclosure also contemplates examples in which users selectively block the use of, or access to, personal information data. That is, the present disclosure contemplates that hardware and/or software elements can be provided to prevent or block access to such personal information data.
- the present technology can be configured to allow users to select to "opt in” or "opt out" of participation in the collection of personal information data during registration for services.
- users can select not to provide location information for targeted content delivery services.
- users can select to not provide to not provide
- content can be selected and delivered to users by inferring preferences based on non-personal information data or a bare minimum amount of personal information, such as the content being requested by the device associated with a user, other non-personal information available to the content delivery services, or publicly available information.
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Acoustics & Sound (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- User Interface Of Digital Computer (AREA)
- Selective Calling Equipment (AREA)
- Telephonic Communication Services (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Power-Operated Mechanisms For Wings (AREA)
- Lock And Its Accessories (AREA)
- Artificial Intelligence (AREA)
Abstract
This relates to systems and processes for using a virtual assistant to control electronic devices. In one example process, a user can speak an input in natural language form to a user device to control one or more electronic devices. The user device can transmit the user speech to a server to be converted into a textual representation. The server can identify the one or more electronic devices and appropriate commands to be performed by the one or more electronic devices based on the textual representation. The identified one or more devices and commands to be performed can be transmitted back to the user device, which can forward the commands to the appropriate one or more electronic devices for execution. In response to receiving the commands, the one or more electronic devices can perform the commands and transmit their current states to the user device.
Description
INTELLIGENT ASSISTANT FOR HOME AUTOMATION
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority from U.S. Provisional Serial No.
62/005,893, filed on May 30, 2014, entitled INTELLIGENT ASSISTANT FOR HOME AUTOMATION, and U.S. Non-Provisional Serial No. 14/503,105, filed on September 30, 2014, entitled INTELLIGENT ASSISTANT FOR HOME
AUTOMATION, which are hereby incorporated by reference in their entirety for all purposes.
FIELD
[0002] This relates generally to natural language processing and, more
specifically, to the use of a virtual assistant with natural language processing to control electronic devices.
BACKGROUND
[0003] Home electronic devices that can be controlled remotely using software applications running on a computing device, such as a mobile phone, tablet computer, laptop computer, desktop computer, or the like, have become increasingly popular. For example, numerous manufacturers create light bulbs that can be controlled by a software application running on a mobile phone to adjust the brightness and/or color of the bulb. Other devices, such as door locks, thermostats, and the like, having similar controls are also available.
[0004] While these devices can provide users with a greater level of control and convenience, it can become exceedingly difficult to manage these devices as the number of remotely controlled devices and the number of types of remotely controlled devices in the home increase. For example, a typical home can include 40-50 light bulbs placed throughout the various rooms of the home. Using conventional software applications, each light bulb is given a unique identifier, and a user attempting to control one of these devices must select the appropriate identifier from a list of available devices within a graphical user interface. Remembering the correct identifier for a particular light bulb and finding that identifier from a list of 40-50
identifiers can be a difficult and time-consuming process. To add to the difficulty of managing and controlling a large number of remotely controlled devices, different manufactures typically provide different software applications that must be used to control their respective devices. As a result, a user must locate and open one software application to turn on/off their light bulbs, and must then locate and open another software application to set the temperature of their thermostat.
SUMMARY
[0005] Systems and processes for using a virtual assistant to control electronic devices are provided. In one example process, a user can speak an input in natural language form to a user device to control one or more electronic devices. The user device can transmit the user speech to a server to be converted into a textual representation. The server can identify the one or more electronic devices and appropriate commands to be performed by the one or more electronic devices based on the textual representation. The identified one or more devices and commands to be performed can be transmitted back to the user device, which can forward the commands to the appropriate one or more electronic devices for execution. In response to receiving the commands, the one or more electronic devices can perform the commands and transmit their current states to the user device.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 illustrates an exemplary environment in which a virtual assistant can be used to control electronic devices according to various examples.
[0007] FIG. 2 illustrates an exemplary environment in which a virtual assistant can be used to remotely control electronic devices according to various examples.
[0008] FIG. 3 illustrates an exemplary user device according to various examples.
[0009] FIG. 4 shows a visual representation of multiple entries used to store information associated with electronic devices according to various examples.
[0010] FIG. 5 illustrates an exemplary process for controlling electronic devices using a virtual assistant implemented using a client-server model according to various examples.
[0011] FIG. 6 illustrates an exemplary process for remotely controlling electronic devices using a virtual assistant implemented using a client-server model according to various examples.
[0012] FIG. 7 illustrates an exemplary process for controlling electronic devices using a virtual assistant on a standalone user device according to various examples.
[0013] FIG. 8 illustrates an exemplary process for storing the states of electronic devices as a configuration according to various examples.
[0014] FIG. 9 illustrates an exemplary process for setting the states of electronic devices using a previously stored configuration according to various examples.
[0015] FIG. 10 illustrates a functional block diagram of an electronic device configured to control electronic devices according to various examples.
[0016] FIG. 11 illustrates a functional block diagram of an electronic device configured to store the states of electronic devices as a configuration according to various examples.
[0017] FIG. 12 illustrates a functional block diagram of an electronic device configured to set the states of electronic devices based on a stored configuration according to various examples.
[0018] FIG. 13 illustrates a functional block diagram of an electronic device configured to control electronic devices according to various examples.
[0019] FIG. 14 illustrates a functional block diagram of an electronic device configured to store the states of electronic devices as a configuration according to various examples.
[0020] FIG. 15 illustrates a functional block diagram of an electronic device configured to set the states of electronic devices based on a stored configuration according to various examples.
DETAILED DESCRIPTION
[0021] In the following description of examples, reference is made to the accompanying drawings in which it is shown by way of illustration specific examples that can be practiced. It is to be understood that other examples can be used and
structural changes can be made without departing from the scope of the various examples.
[0022] Intelligent automated assistants (or virtual assistants) provide an intuitive interface between users and electronic devices. These assistants can allow users to interact with devices or systems using natural language in spoken and/or text forms. For example, a user can access the services of an electronic device by providing a spoken user input in natural language form to a virtual assistant associated with the electronic device. The virtual assistant can perform natural language processing on the spoken user input to infer the user' s intent and operationalize the user's intent into tasks. The tasks can then be performed by executing one or more functions of the electronic device and a relevant output can be returned to the user in natural language form.
[0023] This relates to systems and processes for using a virtual assistant to control electronic devices. In one example process, a user can speak an input in natural language form to a user device to control one or more electronic devices. The user device can transmit the user speech to a server to be converted into a textual representation. The server can identify the one or more electronic devices and appropriate commands to be performed by the one or more electronic devices based on the textual representation. The identified one or more devices and commands to be performed can be transmitted back to the user device, which can forward the commands to the appropriate one or more electronic devices for execution. In response to receiving the commands, the one or more electronic devices can perform the commands and transmit their current states to the user device.
SYSTEM OVERVIEW
[0024] FIG. 1 illustrates exemplary system 100 for implementing a virtual assistant to control electronic devices according to various examples. The terms "virtual assistant," "digital assistant," "intelligent automated assistant," or "automatic digital assistant" can refer to any information processing system that interprets natural language input in spoken and/or textual form to infer user intent, and performs actions based on the inferred user intent. For example, to act on an inferred user intent, the system can perform one or more of the following: identifying a task flow with steps and parameters designed to accomplish the inferred user intent; inputting specific
requirements from the inferred user intent into the task flow; executing the task flow by invoking programs, methods, services, APIs, or the like; and generating output responses to the user in an audible (e.g., speech) and/or visual form.
[0025] A virtual assistant can be capable of accepting a user request at least partially in the form of a natural language command, request, statement, narrative, and/or inquiry. Typically, the user request seeks either an informational answer or performance of a task by the virtual assistant. A satisfactory response to the user request can include provision of the requested informational answer, performance of the requested task, or a combination of the two. For example, a user can ask the virtual assistant a question, such as "Where am I right now?" Based on the user's current location, the virtual assistant can answer, "You are in Central Park." The user can also request the performance of a task, for example, "Please remind me to call Mom at 4 p.m. today." In response, the virtual assistant can acknowledge the request and then create an appropriate reminder item in the user's electronic schedule. During the performance of a requested task, the virtual assistant can sometimes interact with the user in a continuous dialogue involving multiple exchanges of information over an extended period of time. There are numerous other ways of interacting with a virtual assistant to request information or performance of various tasks. In addition to providing verbal responses and taking programmed actions, the virtual assistant can also provide responses in other visual or audio forms (e.g., as text, alerts, music, videos, animations, etc.).
[0026] An example of a virtual assistant is described in Applicants' U.S. Utility Application Serial No. 12/987,982 for "Intelligent Automated Assistant," filed January 10, 2011, the entire disclosure of which is incorporated herein by reference.
[0027] As shown in FIG. 1, in some examples, a virtual assistant can be implemented according to a client-server model. The virtual assistant can include a client-side portion executed on a user device 102, and a server-side portion executed on a server system 110. User device 102 can include any electronic device, such as a mobile phone, tablet computer, portable media player, desktop computer, laptop computer, PDA, television, television set-top box, wearable electronic device, or the like, and can communicate with server system 110 through one or more networks 108, which can include the Internet, an intranet, or any other wired or wireless public or private network. The client-side portion executed on user device 102 can provide
client-side functionalities, such as user-facing input and output processing and communications with server system 110. Server system 110 can provide server-side functionalities for any number of clients residing on a respective user device 102.
[0028] Server system 110 can include one or more virtual assistant servers 114 that can include a client-facing I/O interface 122, one or more processing modules 118, data and model storage 120, and an I/O interface to external services 116. The client-facing I/O interface 122 can facilitate the client-facing input and output processing for virtual assistant server 114. The one or more processing modules 118 can utilize data and model storage 120 to determine the user's intent based on natural language input, and perform task execution based on inferred user intent.
Additionally, data and model storage 120 can store a unique identifier, a state, a type, a location, and any other relevant information associated with one or more of electronic devices (e.g., electronic devices 128, 130, and 132) capable of being controlled by user device 102 and/or server system 110. In some examples, virtual assistant server 114 can communicate with external services 124, such as telephony services, calendar services, information services, messaging services, navigation services, and the like, through network(s) 108 for task completion or information acquisition. The I O interface to external services 116 can facilitate such
communications.
[0029] Server system 110 can be implemented on one or more standalone data processing devices or a distributed network of computers. In some examples, server system 110 can employ various virtual devices and/or services of third party service providers (e.g., third-party cloud service providers) to provide the underlying computing resources and/or infrastructure resources of server system 110.
[0030] User device 102 can be further coupled to electronic devices 128, 130, and 132 via one or more networks 126. Electronic devices 128, 130, and 132 can include any type of remotely controlled electronic device, such as a light bulb (e.g., having a binary ON/OFF state, numerical dimmable state, color state, etc.), garage door (e.g., having a binary OPEN/CLOSED state), door lock (e.g., having binary
LOCKED/UNLOCKED state), thermostat (e.g., having one or more numerical temperature states, such as a high temperature, low temperature, time-based temperatures, etc.), electrical outlet (e.g., having a binary ON/OFF state), switch (e.g., having a binary ON/OFF state), or the like. Network(s) 126 can include a WiFi
network or any other wired or wireless public or private local network. Additionally or alternatively, user device 102 can be coupled to communicate directly with electronic devices 128, 130, or 132 using, for example, Bluetooth, BTLE, line of sight, peer-to-peer, or another radio-based or other wireless communication. Thus, in the illustrated example, user device 102 can be located near electronic devices 128, 130, and 132, such that it can communicate with them directly or over the same local network. For example, user device 102 and electronic devices 128, 130, and 132 can be located within the same home or building, and network(s) 126 can include the home or building's WiFi network. As discussed in greater detail below with respect to FIGs. 5, 8, and 9, user device 102 can issue commands to control any of electronic devices 128, 130, and 132 in response to a natural language spoken input provided by a user to user device 102.
[0031] While only three electronic devices 128, 130, and 132 are shown, it should be appreciated that system 100 can include any number of electronic devices.
Additionally, although the functionality of the virtual assistant is shown in FIG. 1 as including both a client-side portion and a server-side portion, in some examples, the functions of the assistant can be implemented as a standalone application installed on a user device. Moreover, the division of functionalities between the client and server portions of the virtual assistant can vary in different examples. For instance, in some examples, the client executed on user device 102 can be a thin-client that provides only user-facing input and output processing functions, and delegates all other functionalities of the virtual assistant to a backend server.
[0032] FIG. 2 illustrates another exemplary system 200 for implementing a virtual assistant to remotely control electronic devices according to various examples.
Similar to system 100, system 200 can include user device 102, server system 110, and external services 124 communicatively coupled together by network(s) 108. However, in contrast to system 100, user device 102 may not be coupled to electronic devices 128, 130, and 132. Instead, system 200 can include a second user device 134 coupled to communicate with user device 102 and/or server system 110 via network(s) 108 and coupled to communicate with electronic devices 128, 130, and 132 via network(s) 126. This configuration can represent a situation in which the user and user device 102 are located remotely from electronic devices 128, 130, and 132
(e.g., the user and user device 102 are at the user's office, while electronic devices 128, 130, and 132 are at the user's home).
[0033] Second user device 134 can include any type of electronic device, such as a mobile phone, tablet computer, portable media player, desktop computer, laptop computer, PDA, television, television set-top box, wearable electronic device, or the like, and can be configured to receive commands from user device 102 and/or server system 110 and to issue commands to electronic devices 128, 130, and 132. As discussed in greater detail below with respect to FIG. 6, second user device 134 can issue commands to control any of electronic devices 128, 130, and 132 in response to a natural language spoken input provided by a user to user device 102.
USER DEVICE
[0034] FIG. 3 is a block diagram of a user-device 102 (or second user device 134) according to various examples. As shown, user device 102 can include a memory interface 302, one or more processors 304, and a peripherals interface 306. The various components in user device 102 can be coupled together by one or more communication buses or signal lines. User device 102 can further include various sensors, subsystems, and peripheral devices that are coupled to the peripherals interface 306. The sensors, subsystems, and peripheral devices gather information and/or facilitate various functionalities of user device 102.
[0035] For example, user device 102 can include a motion sensor 310, a light sensor 312, and a proximity sensor 314 coupled to peripherals interface 306 to facilitate orientation, light, and proximity sensing functions. One or more other sensors 316, such as a positioning system (e.g., a GPS receiver), a temperature sensor, a biometric sensor, a gyroscope, a compass, an accelerometer, and the like, are also connected to peripherals interface 306, to facilitate related functionalities.
[0036] In some examples, a camera subsystem 320 and an optical sensor 322 can be utilized to facilitate camera functions, such as taking photographs and recording video clips. Communication functions can be facilitated through one or more wired and/or wireless communication subsystems 324, which can include various communication ports, radio frequency receivers and transmitters, and/or optical (e.g., infrared) receivers and transmitters. An audio subsystem 326 can be coupled to
speakers 328 and a microphone 330 to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions.
[0037] In some examples, user device 102 can further include an I/O subsystem 340 coupled to peripherals interface 306. I/O subsystem 340 can include a touch screen controller 342 and/or other input controller(s) 344. Touch-screen controller 342 can be coupled to a touch screen 346. Touch screen 346 and the touch screen controller 342 can, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, such as capacitive, resistive, infrared, and surface acoustic wave technologies, proximity sensor arrays, and the like. Other input controller(s) 344 can be coupled to other input/control devices 348, such as one or more buttons, rocker switches, a thumb-wheel, an infrared port, a USB port, and/or a pointer device such as a stylus.
[0038] In some examples, user device 102 can further include a memory interface 302 coupled to memory 350. Memory 350 can include any electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, a portable computer diskette (magnetic), a random access memory (RAM) (magnetic), a read-only memory (ROM) (magnetic), an erasable programmable read-only memory (EPROM) (magnetic), a portable optical disc such as CD, CD-R, CD-RW, DVD, DVD-R, or DVD-RW, or flash memory such as compact flash cards, secured digital cards, USB memory devices, memory sticks, and the like. In some examples, a non- transitory computer-readable storage medium of memory 350 can be used to store instructions (e.g., for performing some or all of processes 500, 600, 700, 800, or 900, described below) for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device, and execute the instructions. In other examples, the instructions (e.g., for performing processes 500, 600, 700, 800, or 900, described below) can be stored on a non-transitory computer-readable storage medium of server system 110, or can be divided between the non-transitory computer-readable storage medium of memory 350 and the non-transitory computer-readable storage medium of server system 110. In the context of this document, a "non-transitory computer readable storage medium" can be any medium that can contain or store the program for use by or in connection with the instruction execution system, apparatus, or device.
[0039] In some examples, the memory 350 can store an operating system 352, a communication module 354, a graphical user interface module 356, a sensor processing module 358, a phone module 360, and applications 362. Operating system 352 can include instructions for handling basic system services and for performing hardware dependent tasks. Communication module 354 can facilitate communicating with one or more additional devices, one or more computers, and/or one or more servers. Graphical user interface module 356 can facilitate graphic user interface processing. Sensor processing module 358 can facilitate sensor related processing and functions. Phone module 360 can facilitate phone-related processes and functions. Application module 362 can facilitate various functionalities of user applications, such as electronic-messaging, web browsing, media processing, navigation, imaging, and/or other processes and functions.
[0040] Memory 350 can also store client-side virtual assistant instructions (e.g., in a virtual assistant client module 364) and various user data 366 (e.g., user-specific vocabulary data, preference data, and/or other data, such as the user' s electronic address book, to-do lists, shopping lists, etc.) to provide the client-side functionalities of the virtual assistant.
[0041] In various examples, virtual assistant client module 364 can be capable of accepting voice input (e.g., speech input), text input, touch input, and/or gestural input through various user interfaces (e.g., I/O subsystem 340, audio subsystem 326, or the like) of user device 102. Virtual assistant client module 364 can also be capable of providing output in audio (e.g., speech output), visual, and/or tactile forms. For example, output can be provided as voice, sound, alerts, text messages, menus, graphics, videos, animations, vibrations, and/or combinations of two or more of the above. During operation, virtual assistant client module 364 can communicate with the virtual assistant server using communication subsystem324.
[0042] In some examples, virtual assistant client module 364 can utilize the various sensors, subsystems, and peripheral devices to gather additional information from the surrounding environment of user device 102 to establish a context associated with a user, the current user interaction, and/or the current user input. In some examples, virtual assistant client module 364 can provide the contextual information or a subset thereof with the user input to the virtual assistant server to help infer the
user's intent. The virtual assistant can also use the contextual information to determine how to prepare and deliver outputs to the user.
[0043] In some examples, the contextual information that accompanies the user input can include sensor information, such as lighting, ambient noise, ambient temperature, images or videos of the surrounding environment, distance to another object, and the like. The contextual information can further include information associated with the physical state of user device 102 (e.g., device orientation, device location, device temperature, power level, speed, acceleration, motion patterns, cellular signal strength, etc.) or the software state of user device 102 (e.g., running processes, installed programs, past and present network activities, background services, error logs, resources usage, etc.). Any of these types of contextual information can be provided to the virtual assistant server 114 as contextual information associated with a user input.
[0044] In some examples, virtual assistant client module 364 can selectively provide information (e.g., user data 366) stored on user device 102 in response to requests from the virtual assistant server 114. Virtual assistant client module 364 can also elicit additional input from the user via a natural language dialogue or other user interfaces upon request by virtual assistant server 114. Virtual assistant client module 364 can pass the additional input to virtual assistant server 114 to help virtual assistant server 114 in intent inference and/or fulfillment of the user's intent expressed in the user request.
[0045] Memory 350 can further store electronic device data 370 that can include a unique identifier, a state, a type, a location, and any other relevant information associated with one or more of the electronic devices capable of being controlled by user device 102 and/or server system 110 (e.g., electronic devices 128, 130, and 132). FIG. 4 shows a visual representation of entries that can be stored in electronic device data 370 for seven different electronic devices. As shown, each entry includes a unique name, type, and state of the electronic device. Data and model storage 120 of virtual assistant server 114 can include similar or identical entries for the electronic devices that can be maintained separately from that of electronic device data 370 of memory 350.
[0046] Referring back to FIG. 3, memory 350 can further include instructions (e.g., in daemon module 368) for creating and updating entries for electronic devices in electronic device data 370, communicating with the electronic devices of system 100, and for communicating with server system 110. For example, to add an electronic device to system 100, a software application associated with the electronic device can communicate with processor(s) 304 executing daemon module 368 to provide user device 102 with a unique name, type, state, location, and the like, of the electronic device. The software application can allow the user to enter the unique name in any desired manner. For example, a dropdown box with common names and/or a freeform text field can be provided in the application to allow a user to name a particular device. The type, state, and/or location of the electronic device can be predetermined or determined by the software application through communication with the electronic device. Processor(s) 304 executing daemon module 368 can store this information as an entry in electronic device data 370 and can also transmit this information to server system 110 to be stored in data and models storage 120.
Additionally, when executed by processor(s) 304, daemon module 368 can receive commands that are to be provided to electronic devices 128, 130, and 132 from server system 110 via network(s), and can transmit those commands to the appropriate electronic devices. Processor(s) 304 executing daemon module 368 can further receive state updates from electronic devices 128, 130, and 132, update the corresponding entries in electronic device data 370 to reflect the updated states of the devices, and transmit the state updates to server system 110 to allow server system 110 to update the corresponding entries in data and models storage 120 to reflect the updated states of the devices.
[0047] Additionally, daemon module 368 can include instructions to manage access to electronic device data 370 by other devices and software applications. For example, when executed by processor(s) 304, daemon module 368 can grant access to all of electronic device data 370 by server system 110, but can restrict access to only a portion of electronic device data 370 by other devices or software applications. This can be useful when user device 102 is used to control electronic devices made by different manufacturers. In these situations, devices or software applications from each manufacturer can communicate with daemon module 368 using an API, and daemon module 368 can limit their access to only the portions of electronic device
data 370 that correspond to their respective electronic devices. For example, company X can manufacture a light bulb capable of being controlled by user device 102, and company Y can manufacture a thermostat capable of being controlled by user device 102. Daemon module 368 can facilitate communication between user device 102 and each of the light bulb and the thermostat to allow user device 102 to issue commands to the electronic devices and to receive state information associated with the electronic devices for updating electronic device data 370. However, daemon module 368 can limit the access that the light bulb (and an associated software application running on user device 102) has to information in electronic device data 370 to only the information associated with the light bulb (and possibly any other electronic devices manufactured by company X). Similarly, daemon module 368 can limit the access that the thermostat (and an associated software application running on user device 102) has to information in electronic device data 370 to only the information associated with the thermostat (and possibly any other electronic devices manufactured by company Y). However, daemon module 368 can grant access to all of the information in electronic device data 370 to server system 110.
[0048] In various examples, memory 350 can include additional instructions or fewer instructions. Furthermore, various functions of user device 102 can be implemented in hardware and/or in firmware, including in one or more signal processing and/or application specific integrated circuits.
LOCAL CONTROL OF ELECTRONIC DEVICES
[0049] FIG. 5 illustrates an exemplary process 500 for controlling electronic devices using a virtual assistant. In some examples, process 500 can be performed using a system similar or identical to system 100, shown in FIG. 1. In these examples, the blocks of process 500 can be performed by both user device 102 and server system 110. Specifically, the blocks on the left side of FIG. 5 can be performed by user device 102, while the blocks on the right side of FIG. 5 can be performed by server system 110.
[0050] At block 502, an audio input including user speech can be received at a user device. In some examples, a user device (e.g., user device 102) can receive audio input that includes a user's speech via a microphone (e.g., microphone 330). The
microphone can convert the audio input into an analog or digital representation, and provide the audio data to one or more processors (e.g., processor(s) 304).
[0051] At block 504, data corresponding to the audio input received at block 502 can be transmitted to one or more servers for processing. For example, user device 102 can transmit data corresponding to the audio input to virtual assistant server 114 of server system 110 via network(s) 108.
[0052] At block 506, data corresponding to the audio input transmitted by the user device at block 504 can be received by one or more servers. For example, virtual assistant server 114 of server system 110 can receive the data corresponding to the audio input transmitted by user device 102 via network(s) 108.
[0053] At block 508, speech-to-text conversion can be performed on the data corresponding to the audio input to convert the user speech into a textual
representation of the user speech. The user speech can be converted using any known speech-to-text conversion process.
[0054] At block 510, one or more electronic devices can be identified based at least in part on the textual representation generated at block 508. In some examples, block 510 can include processing the textual representation of the user input to determine a user intent to issue a command to one or more electronic devices. As discussed above, server system 110 can include one or more data and model storages 120 that can store a unique identifier, a state, a type, a location, and any other relevant information associated with the electronic devices that can be controlled using system 100. Thus, block 510 can include identifying one or more of the electronic devices having associated information stored in data models and storages 120.
[0055] The one or more electronic devices can be identified in any number of ways. In some examples, the one or more electronic devices can be identified by parsing the textual representation to identify any of a set of nouns that correspond to the electronic devices supported by system 100. For example, the set of nouns can include the unique names of the electronic devices stored in electronic device data 370 and data and models storage 120, the possible types of electronic devices and their synonyms (e.g., garage door, thermostat, light, dimmable light, switch, color changeable light, bulb, lamp, lock, outlet, socket, etc.), categories of possible device states (e.g., volume, temperature, brightness, color, etc.), and the like.
[0056] To illustrate, using the example electronic device entries of FIG. 4, the set of nouns can include the unique names of the seven electronic devices (e.g., "Garage Door," "Upstairs Thermostat," "Downstairs Thermostat," "Living Room Lamp 1," "Living Room Lamp 2," "Front Door," and "Toaster Outlet"), the possible types of electronic devices and their synonyms (e.g., "Garage Door," "Thermostat," "Light," "Bulb," "Lamp," "Lock," "Outlet," "Socket," etc.), and categories of possible device states (e.g., temperature). Thus, if the textual representation of user speech generated at block 508 includes "Lock the front door," the textual representation can be processed using processing modules 118 and data and models storage 120 to search for any of the set of nouns. As a result of the search, it can be determined that the textual representation includes the unique name "Front Door," and the electronic device identified at block 510 can include this device. It should be appreciated that more than one electronic device can be identified at block 510 depending on the textual representation of user speech. For example, if the textual representation of user speech generated at block 508 instead includes "Turn off all the bulbs," the textual representation can be processed using processing modules 118 and data and models storage 120 to search for any of the set of nouns. As a result of the search, it can be determined that the textual representation includes the synonym "bulb" of the possible device type "light," and that the instruction from the user was to turn off all of those types of devices. As a result, the electronic devices identified at block 510 can include both "Living Room Lamp 1" and "Living Room Lamp 2."
[0057] In some examples, it can be difficult to identify the appropriate electronic device using only the set of nouns described above. For example, a textual representation that includes "Turn on the light" can produce a type match with both "Living Room Lamp 1" and "Living Room Lamp 2." In these examples, block 510 can further include the use of contextual information received from user device 102 (e.g., received as part of the data corresponding to the audio input at block 506) to disambiguate between potential matching electronic devices. Any type of contextual information can be used, such as sensor information (e.g., lighting, ambient noise, ambient temperature, images or videos of the surrounding environment, distance to another object, and the like), information associated with the physical state of user device 102 (e.g., device orientation, device location, device temperature, power level, speed, acceleration, motion patterns, cellular signal strength, etc.), the software state
of user device 102 (e.g., running processes, installed programs, past and present network activities, background services, error logs, resources usage, etc.), or the like. For example, continuing with the "Turn on the light" example provided above, the location and orientation of user device 102 when user device 102 received the audio input at block 502 can be provided to server system 110 at blocks 504 and 506. This contextual information can be used to determine a location of user device 102 and/or a direction at which user device 102 was pointed when receiving the user speech.
When compared with the known locations of "Living Room Lamp 1" and "Living Room Lamp 2" stored in data and models storage 120, the closest light or the light at which user device 102 was pointing can be selected as the electronic device at block 510. Other types of contextual information can be used in similar ways to
disambiguate between potential matching electronic devices at block 510 by identifying contextual information that makes one or more of the potential matching electronic devices more or less likely to have been referenced by the textual representation of user speech.
[0058] In yet other examples, words associated with a state in the textual representation of user input can additionally or alternatively be used to disambiguate between potential matching electronic devices or to identify the appropriate electronic device. For example, a textual representation that includes "Turn it to 68" may not produce any matches using the set of nouns described above. Thus, in these examples, block 510 can further include parsing the textual representation to identify any of a set of words associated with a state that corresponds to the electronic devices supported by system 100. For example, the set of words associated with a state can include the possible states of the electronic devices and their synonyms (e.g., open, closed, close, shut, on, off, active, inactive, lock, locked, a color, etc.), the types of values of the states (e.g., binary, float, etc.), a query for the state of the device, adjectives associated with a specific type of state (e.g., warmer, cooler, brighter, dimmer, a color, etc.), or the like. When used to parse "Turn it to 68," it can be determined that the textual representation includes the float value "68." When compared to the entries shown in FIG. 4, it can be determined that only "Upstairs Thermostat" and "Downstairs Thermostat" accept state float values. To disambiguate between the two thermostats, contextual information, such as a location of user device 102 can be used to select the thermostat that is closer to user device 102 as the
electronic device identified at block 510. Similarly, if the textual representation instead included "Make it brighter," the set of words associated with a state can be used to determine that the textual representation includes the word "brighter," which is an adjective that describes the state of devices having the type "light." To disambiguate between the two lights, contextual information, such as a location of user device 102 can be used to select the light that is closer to user device 102 as the electronic device identified at block 510.
[0059] At block 512, a command to be performed by each of the one or more electronic devices identified at block 510 can be identified. The command(s) to be performed can be identified in any number of ways. In some examples, the command(s) to be performed can be identified by parsing the textual representation of user speech to identify any of the set of words associated with a state (e.g., the possible states of the electronic devices and their synonyms, the types of values of the states, a query for the state of the device, adjectives associated with a specific type of state). The identified state or operation can then be used to identify a command to be performed by each of the one or more electronic devices identified at block 510. For example, if the textual representation of user speech includes "Lock the front door," it can be determined that the textual representation includes the state "lock" from the set of states. Thus, a command to transition to the "lock" state can be generated and identified at block 512 as being the command to be performed by the electronic device "Front Door" that was identified at block 510. While a single command for a single electronic device is identified in the example above, it should be appreciated that multiple commands can be identified if multiple electronic devices were identified at block 510. For example, the textual representation "Turn on all of the lights" can result in the identification a command to transition to the "on" state for each of "Living Room Lamp 1" and "Living Room Lamp 2" at block 512.
[0060] In some examples, when the textual representation of user speech includes one of the adjectives associated with a specific type of state (e.g., warmer, cooler, brighter, dimmer, etc.), block 512 can include identifying a command to set a state of the electronic device identified at block 510 to a value relative to its current value. For example, if the textual representation includes "make it warmer," the command identified at block 514 can be a command to increase the temperature of the thermostat identified at block 510 by a predetermined amount. The command can be
a command to change the state value by an amount relative to the electronic device's current value rather than a command to transition the state value to a specific value (e.g., determined using the state of the thermostat stored in data and models storage 120) since the actual state of the electronic device may differ from the state stored in data and models storage 120.
[0061] In some examples, when the textual representation of user speech includes a query for the state of the device, block 512 can include identifying an instruction to cause user device 102 to query the identified electronic device(s). For example, if the textual representation includes "Is the garage door closed?", the command identified at block 514 can be a command to query the state of electronic device "Garage Door."
[0062] At block 514, an identification of each of the one or more electronic devices identified at block 510 and the command(s) to be performed by the one or more electronic devices identified at block 512 can be transmitted to the user device. For example, server system 110 can transmit the unique identifier associated with each of the electronic devices identified at block 510 and the command(s) to be performed by the one or more electronic devices to user device 102 via network(s) 108.
[0063] In some examples, the textual representation of the user speech generated at block 508 can also be transmitted to the user device at block 514. In these examples, blocks 510 and 514 can also be performed on the user device. The transmitted textual representation can be used by the user device to identify one or more electronic devices and/or identify a command or commands to be performed by the one or more electronic devices in electronic device data 370. This can be desirable, for example, when the electronic device data 370 in the user device is more up-to-date than the data on the one or more servers. In such instances, the user device can identify an electronic devices and/or a command that is not included in the data of the one or more servers.
[0064] In other examples, the textual representation can be parsed at blocks 510 and/or 512 at the one or more servers to determine key words or terms that can be suitable for identifying one or more of electronic devices and/or identifying a command or commands to be performed by the one or more electronic devices. In these examples, the parsed key words or terms can also be transmitted to the user
device at block 514. The transmitted key words or terms can be used by the user device to identify one or more electronic devices and/or identify a command or commands to be performed by the one or more electronic devices in electronic device data 370. This can be desirable, for example, when the electronic device data 370 in the user device is more up-to-date than the data on the one or more servers. In such instances, the user device can identify an electronic devices and/or a command that is not included in the data of the one or more servers.
[0065] At block 516, the identification of each of the one or more the electronic devices and command(s) transmitted by the one or more servers can be received by the user device. For example, user device 102 can receive the unique identifier(s) and the command(s) transmitted by server system 110 at block 514 via network(s) 108.
[0066] At block 518, the user device can transmit the command(s) received at block 516 to the electronic device(s) associated with the identifier(s) received at block 516. For example, if user device 102 received an identifier associated with electronic device 128 (e.g., "Front Door") and a command to transition the electronic device to a "locked" state at block 516, user device 102 can transmit the command to electronic device 128 to transition to the "locked" state via network(s) 126. If user device 102 received additional identifiers and commands at block 516, user device 102 can further transmit those commands to the identified electronic devices at block 518.
[0067] In some examples, the actual state of an electronic device may not be the same as the state of the electronic device as stored in user device 102 (e.g., in memory 350) and/or server system 110 (e.g., in data and models storage 120). For example, a door lock could have been manually opened or closed without using the virtual assistant of system 100. Thus, in some examples, block 518 can be performed regardless of the state of the electronic device as stored in user device 102 and/or server system 110. For example, a command to set a door lock's state to "locked" can be transmitted to the door lock even if the corresponding entry in user device 102 and/or server system 110 indicates that they door is already locked. Moreover, block 518 can be performed without first querying the electronic device (e.g., between blocks 516 and 518) to determine its actual state in order to reduce the amount of time required to issue a command to the electronic device. For example, the command to set the door lock's state to "locked" can be transmitted to the door lock without first querying its state, thereby reducing the time required to transmit the command to the
door lock by an amount corresponding to the time required to send a query to the door lock and to receive the state from the door lock.
[0068] At block 520, the user device can receive a current state of each electronic device (that was sent a command at block 518) after each electronic device executes their respective command. For example, user device 102 can receive an updated status of electronic device 128 after it performed the command to set its state to "locked." In this example, the current state returned to user device 102 can be the state "locked." If commands were sent to more than one electronic device at block 518, block 520 can further include receiving current states from those electronic devices. In some examples, block 520 can further include updating the state of the electronic device in electronic device data 370 based on the received current state. For example, user device 102 can update the state of electronic device 128 in electronic device data 370 to "locked." In some examples, block 520 can further include outputting an audio or visual indication of a result of the command(s) transmitted to the electronic device(s) at block 518 based on the transmitted command(s) and the received current state(s) of the electronic device(s). For example, if the command transmitted to electronic device 128 was a command to transition the device's state to "locked" and the current state of electronic device 128 received at block 520 was "locked," an indication of the result can be that electronic device 128 was successfully transitioned to the "locked" state. Alternatively, if the received current state of the electronic device (e.g., "unlocked") differs from the desired state indicated in the command (e.g., "locked"), an indication of a failure to transition to the "locked" state can be presented to the user. The current state can further include an error state, such as an undetermined or unavailable state of the device.
[0069] At block 522, the user device can transmit the current state(s) of the electronic device(s) received at block 520 to the one or more servers. For example, user device 102 can transmit the current state of the electronic device received at block 520 to server system 110. If the current state of more than one electronic device was received at block 520, block 522 can further include transmitting those current states to server system 110.
[0070] At block 524, the one or more servers can receive the current state(s) of the electronic device(s) transmitted by the user device at block 522. For example,
server system 110 can receive the current state of the electronic device transmitted by user device 102 at block 522. If user device 102 transmitted more than one current state, block 524 can further include receiving those current states as well. In some examples, block 524 can further include updating the state(s) of the electronic device(s) in data and models storage 120 based on the received current state(s). For example, server system 110 can update the state of electronic device 128 in data and models storage 120 to "locked."
[0071] In some examples, process 500 can further include generating a notification associated with the current state of one or more of the electronic devices in response to determining that a predetermined condition has been satisfied. For example, in response to the location of user device 102 exiting a predetermined area (e.g., an area corresponding to the user's home) while one or more of the electronic devices are in a predetermined state (e.g., the "Front Door" is unlocked), a notification can be presented to the user via user device 102 indicating that the user forgot to lock their door. Other similar notifications can be generated in response to other predetermined conditions.
[0072] Using process 500, a virtual assistant implemented by a user device can receive natural language commands to set the state or query any number of electronic devices. The natural language commands can refer to the electronic devices in any desired manner and need not include unique identifiers of the electronic devices or a type of the electronic device.
REMOTE CONTROL OF ELECTRONIC DEVICES
[0073] FIG. 6 illustrates an exemplary process 600 for remotely controlling electronic devices using a virtual assistant. In some examples, process 600 can be similar to process 500, except that process 600 can be performed using a system similar or identical to system 200, shown in FIG. 2. For example, process 600 can be performed by a user device (e.g., user device 102) that is located remotely from the electronic devices being controlled (e.g., electronic devices 128, 130, and 132), and a second user device (e.g., second user device 134) can instead be used to control the electronic devices. Thus, portions of process 600 can be performed by each of user device 102, server system 110, and second user device 134. Specifically, the blocks on the left side of FIG. 6 can be performed by user device 102, the blocks in the
middle of FIG. 6 can be performed by server system 110, and the blocks on the right side of FIG. 6 can be performed by second user device 134.
[0074] The blocks of process 600 can be similar or identical to the identically numbered blocks of process 500, except that blocks 516, 518, 520, and 522 of process 600 can instead be performed by a second user device (e.g., second user device 134). Additionally, as a result, the identification of each of the one or more electronic devices and command(s) to be performed by the electronic device(s) can instead be transmitted to the second user device at block 514, and the current state(s) of the electronic device(s) can instead be received from the second user device at block 524.
[0075] In some examples, process 600 can further include transmitting, by the one or more servers, the current state(s) of the electronic device(s) received at block 524 to the user device that received the audio input at block 502. Additionally or alternatively, the process can include transmitting an indication of success of the command transmitted to the electronic device at block 518. For example, a visual or audio output can be generated that notifies the user of the success, partial success, or failure to execute the command by the electronic device. The success determination can depend on the command transmitted to the electronic device and the current state of the device received at block 524.
STANDALONE CONTROL OF ELECTRONIC DEVICES
[0076] FIG. 7 illustrates an exemplary process 700 for controlling electronic devices using a virtual assistant. In some examples, process 700 can be similar to process 500, except that process 700 can be performed using a standalone user device that can perform the functions of both user device 102 and server system 110. As a result, all blocks of process 700 can be performed by the user device (e.g., user device 102).
[0077] The blocks of process 700 can be similar or identical to the identically numbered blocks of process 500, except that blocks 508, 510, and 512 can instead be performed by the user device (e.g., user device 102). Additionally, as a result, the blocks corresponding to functions for communicating between user device 102 and server system 110 (e.g., blocks 504, 506, 514, 516, 522, and 524) need not be performed.
STORING A CONFIGURATION OF ELECTRONIC DEVICES
[0078] FIG. 8 illustrates an exemplary process 800 for storing the states of multiple electronic devices as a configuration using a virtual assistant. The configuration can represent a stored set of states of the multiple electronic devices that can be referenced in a spoken user input to cause the multiple electronic devices to transition to the states defined in the configuration. For example, a user may create a "sleep" configuration in which the states of all lights are set to off, the states of the thermostats are set to 72°F, the state of all doors are set to locked, and the state of the garage door is set to closed. Thus, when the user is about to go to sleep, the user can provide user device 102 with a command that references the stored configuration, such as "I'm going to sleep," and system 100 can set the states of the electronic devices based on the stored states in the sleep configuration. In some examples, process 800 can be performed using a system similar or identical to system 100, shown in FIG. 1. In these examples, the blocks of process 800 can be performed by both user device 102 and server system 110. Specifically, the blocks on the left side of FIG. 8 can be performed by user device 102, while the blocks on the right can be performed by server system 110.
[0079] At block 802, an audio input including user speech can be received at a user device in a manner similar or identical to block 502 of process 500. At block 804, data corresponding to the audio input received at block 802 can be transmitted to one or more servers for processing in a manner similar or identical to block 504 of process 500.
[0080] At block 806, the data corresponding to the audio input transmitted by the user device at block 804 can be received by one or more servers in a manner similar or identical to block 506 of process 500. At block 808, speech to text conversion can be performed on the data corresponding to the audio input to convert the user speech into a textual representation of the user speech in a manner similar or identical to block 508 of process 500.
[0081] At block 810, it can be determined that the textual representation of the user speech represents a user intent to store the states of the electronic devices of system 100 as a configuration. For example, one or more processing modules 118 of server system 110 can utilize data and model storage 120 to determine the user's
intent based on natural language input. In some examples, this can include parsing the textual representation for words likely to be related to storing a configuration, such as "save," "store," "name," "keep," "configuration," "scene," their synonyms, and the like. For example, if the textual representation includes "Store this configuration as sleep," it can be determined at block 810 that the user intends to store the state of the electronic devices as a configuration named "sleep." Other textual representations, such as "Save this scene as work," can similarly result in a determination at block 810 that the user intends to store the state of the electronic devices as a configuration named "work."
[0082] At block 812, in response to determining that the textual representation of the user speech represents a user intent to store the state of the electronic devices of system 100 as a configuration, the one or more servers can transmit an instruction to the user device to query the state of the electronic devices. For example, server system 110 can transmit an instruction to user device 102 to query the state of electronic devices 128, 130, and 132 via network(s) 108.
[0083] At block 814, the instruction to query the state of the electronic devices transmitted by the one or more servers can be received by the user device. For example, user device 102 can receive the instruction to query the state of electronic devices 128, 130, and 132 from server system 110 via network(s) 108.
[0084] At block 816, the user device can transmit a query to each of the electronic devices for their current state. For example, user device 102 can transmit a command to each of electronic devices 128, 130, and 132 instructing them to return their current state via network(s) 126.
[0085] At block 818, the user device can receive a current state of each of the electronic device(s) in response to the query transmitted at block 516 (or a current state of all electronic devices capable of transmitting their current state). For example, user device 102 can receive a current state of electronic devices 128, 130, and 132 via network(s) 126 in response to the query sent to each of the devices at block 816. In some examples, block 818 can further include updating the state of the electronic device in electronic device data 370 based on the received current state. The current state can further include an error state, such as an undetermined or unavailable state of the device.
[0086] At block 820, the user device can transmit the current states of the electronic devices received at block 818 to the one or more servers. For example, user device 102 can transmit the current states of the electronic devices received at block 818 to server system 110.
[0087] At block 822, the one or more servers can receive the current states of the electronic devices transmitted by the user device at block 820. For example, server system 110 can receive the current state of electronic devices 128, 130, and 132 from user device 102 via network(s) 126.
[0088] At block 824, the one or more servers can store the current states of the electronic devices received at block 822 as a configuration. In some examples, the configuration can be assigned a unique identifier, such as "sleep," "morning," "work," or the like, based on the name provided in the textual representation and identified at block 810. For example, server system 110 can store the current states of electronic devices 128, 130, and 132 as a "sleep" configuration in model and data storage 120 in response to a user speech received at block 802 that included "name this configuration sleep."
CONTROLLING ELECTRONIC DEVICES USING A STORED CONFIGURATION
[0089] FIG. 9 illustrates an exemplary process 900 for setting the states of multiple electronic devices using a previously stored configuration (e.g., created using process 800) using a virtual assistant. In some examples, process 900 can be performed using a system similar or identical to system 100, shown in FIG. 1. In these examples, the blocks of process 900 can be performed by both user device 102 and server system 110. Specifically, the blocks on the left side of FIG. 9 can be performed by user device 102, while the blocks on the right can be performed by server system 110.
[0090] At block 902, an audio input including user speech can be received at a user device in a manner similar or identical to block 502 of process 500. At block 904, data corresponding to the audio input received at block 902 can be transmitted to one or more servers for processing in a manner similar or identical to block 504 of process 500.
[0091] At block 906, data corresponding to the audio input transmitted by the user device at block 904 can be received by one or more servers in a manner similar or identical to block 506 of process 500. At block 908, speech to text conversion can be performed on the user speech of the audio input to convert the user speech into a textual representation of the user speech in a manner similar or identical to block 508 of process 500.
[0092] At block 910, it can be determined that the textual representation of the user speech represents a user intent to set the states of the electronic devices of system 100 based on a stored configuration. For example, one or more processing modules 118 of server system 110 can utilize data and model storage 120 to determine the user's intent based on natural language input. In some examples, this can include parsing the textual representation for words likely to be related to using a stored configuration, such as the unique identifiers associated with the stored configurations, "set," "configuration," "scene," their synonyms, or the like. For example, if the textual representation includes "I'm going to sleep," it can be determined at block 910 that the user intends to set the state of the electronic devices based on the "sleep" configuration. Other textual representations, such as "night mode," "set to sleep," or the like, can similarly result in a determination at block 910 that the user intends set the state of the electronic devices based on the "sleep" configuration.
[0093] At block 912, commands to set the states of the electronic devices of system 100 based on the configuration identified at block 910 can be transmitted by the one or more servers to the user device. Identifications associated with the commands can also be transmitted to identify which devices are to perform each command. For example, server system 110 can transmit the unique identifiers associated with the electronic devices and the commands that are to be performed by those electronic devices to cause the electronic devices to be in the states specified by the stored configuration.
[0094] At block 914, commands to set the states of the electronic devices of system 100 transmitted by the server(s) can be received by the user device. For example, user device 102 can receive the commands transmitted by server system 110 at block 912 via network(s) 108.
[0095] At block 916, the user device can transmit the commands received at block 914 to the electronic devices associated with the commands. For example, user device 102 can transmit commands to electronic devices 128, 130, and 132 via network(s) 126 to cause the electronic devices to be in the states specified by the stored configuration.
[0096] In some examples, the actual state of an electronic device may not be the same as the state of the electronic device as stored in user device 102 (e.g., in memory 350) and/or server system 110 (e.g., in data and models storage 120). Thus, in some examples and similar to process 500, block 916 can be performed regardless of the state of the electronic device as stored in user device 102 and/or server system 110, and without first querying the electronic devices (e.g., between blocks 914 and 916) to determine their actual states in order to reduce the amount of time required to issue a command to the electronic devices.
[0097] At block 918, the user device can receive an updated state of the electronic devices after the electronic devices perform the commands transmitted by the user device at block 916. For example, user device 102 can receive updated statuses of electronic devices 128, 130, and 132 after they performed the commands to set their states to the states specified by the stored configuration. In some examples, block 920 can further include updating the state of the electronic device in electronic device data 370 based on the received current state. For example, user device 102 can update the state of electronic device 128 in electronic device data 370 to "locked." In some examples, similar to block 520, block 918 can further include outputting an audio or visual indication of a result of the command(s) transmitted to the electronic device(s) at block 916 based on the transmitted command(s) and the received current state(s) of the electronic device(s). The updated state can further include an error state, such as an undetermined or unavailable state of the device.
[0098] At block 920, the user device can transmit the updated states of the electronic device received at block 918 to the one or more servers. For example, user device 102 can transmit the updated states of the electronic devices received at block 918 to server system 110.
[0099] At block 922, the one or more servers can receive the updated states of the electronic devices transmitted by the user device at block 920. For example, server
system 110 can receive the updated states of the electronic devices transmitted by user device 102 at block 920. In some examples, block 922 can further include updating the states of the electronic devices in data and models storage 120 based on the received updated states.
[0100] In some examples, additionally or alternatively, the states of the electronic devices can be configured using a stored configuration in response to determining that a predetermined condition has been satisfied. For example, in response to the location of user device 102 entering a predetermined area (e.g., an area corresponding to the user's home), commands can be sent to the electronic devices to transition to states specified by a stored configuration (e.g., a "home" configuration). Similarly, commands can be sent to the electronic devices to transition to states specified by another stored configuration (e.g., a "work" configuration) in response to the location of user device 102 exiting a predetermined area (e.g., an area corresponding to the user's home) during a predetermined window of time (e.g., between 8-9 a.m. on a weekday). Other similar predetermined conditions can be created to cause system 100 to configure the electronic devices based on stored configurations.
ELECTRONIC DEVICE
[0101] In accordance with some examples, FIG. 10 shows a functional block diagram of an electronic device 1000 configured in accordance with the principles of the various described examples. The functional blocks of the device can be implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described examples. It is understood by persons of skill in the art that the functional blocks described in FIG. 10 can be combined or separated into sub-blocks to implement the principles of the various described examples.
Therefore, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein.
[0102] As shown in FIG. 10, electronic device 1000 can include a touch screen display unit 1002 configured to display a user interface and to receive touch input, and a sound receiving unit 1004 configured to receive sound input. In some examples, electronic device 1000 can include a speaker unit 1006 configured to generate sound. Electronic device 1000 can further include a processing unit 1008 coupled to touch screen display unit 1002 and sound receiving unit 1004 (and,
optionally, coupled to speaker unit 1006). In some examples, processing unit 1008 can include an audio input receiving unit 1010, an audio input transmitting unit 1012, an identification and command receiving unit 1014, an identification and command transmitting unit 1016, a state receiving unit 1018, a state transmitting unit 1020, a state updating unit 1022, an indication outputting unit 1024, a second identification and command receiving unit 1026, a second identification and command transmitting unit 1028, and a second state receiving unit 1030, a second state transmitting unit 1032, and a notification transmitting unit 1034.
[0103] Processing unit 1008 can be configured to receive an audio input (e.g., using audio input receiving unit 1010) containing user speech. Processing unit 1008 can be further configured to transmit (e.g., using audio input transmitting unit 1012) data corresponding to the audio input to one or more servers. Processing unit 1008 can be further configured to receive (e.g., using identification and command receiving unit 1014), from the one or more servers, an identification of a first electronic device determined by the one or more servers based on the data corresponding to the audio input and a first command to be performed by the first electronic device determined by the one or more servers based on the data corresponding to the audio input. The first command can be transmitted to the first electronic device (e.g., using
identification and command transmitting unit 1016). A current state of the first electronic device can be received (e.g., using state receiving unit 1018) from the first electronic device after transmitting the first command to the first electronic device. The current state of the first electronic device can be transmitted (e.g., using state transmitting unit 1020) to the one or more servers.
[0104] In some examples, first electronic device includes a light bulb. In other examples, the first command includes a command to set an ON/OFF state, dimmable state, or color state of the light. In yet other examples, the current state of the first electronic device includes the ON/OFF state, dimmable state, or color state of the light bulb after transmitting the first command to set the ON/OFF state, dimmable state, or color state of the light bulb.
[0105] In some examples, first electronic device includes a switch. In other examples, the first command includes a command to set an ON/OFF state of the switch. In yet other examples, the current state of the first electronic device includes
the ON/OFF state of the switch after transmitting the first command to set the
ON/OFF state of the switch.
[0106] In some examples, the first electronic device includes an electrical outlet. In other examples, the first command includes a command to set an
ACTIVE/INACTIVE state of the electrical outlet. In yet other examples, the current state of the first electronic device includes the ACTIVE/INACTIVE state of the electrical outlet after transmitting the command to set the ACTIVE/INACTIVE state of the electrical outlet.
[0107] In some examples, the first electronic device includes a door lock. In other examples, the first command includes a command to set a LOCKED/UNLOCKED state of the door lock. In yet other examples, the current state of the first electronic device includes the LOCKED/UNLOCKED state of the door lock after transmitting the command to set the LOCKED/UNLOCKED state of the door lock.
[0108] In some examples, the first electronic device includes a garage door. In other examples, the first command includes a command to set an OPEN/CLOSED state of the garage door. In yet other examples, the current state of the first electronic device includes the OPEN/CLOSED state of the garage door after transmitting the command to set the OPEN/CLOSED state of the garage door.
[0109] In some examples, the first electronic device includes a thermostat. In other examples, the first command includes a command to set a numerical value of a temperature setting of the thermostat. In yet other examples, the current state of the first electronic device includes the numerical value of the temperature setting of the thermostat after transmitting the first command to set the numerical value of the temperature setting of the thermostat.
[0110] In some examples, the first command includes a query for the current state of the first electronic device.
[0111] In some examples, the first command can be transmitted (e.g., using identification and command transmitting unit 1016) to first electronic device over a local wireless network.
[0112] In some examples, the first command can be transmitted to the first electronic device directly through Bluetooth, line of sight, peer-to-peer, or WiFi communication.
[0113] In some examples, processing unit 1008 can be configured to exclude querying the first electronic device for the state of the first electronic device between receiving the first command from the one or more servers and transmitting the first command to the first electronic device.
[0114] In some examples, electronic device 1000 can further include a database unit 1034 for storing a state of each of a plurality of electronic devices, the plurality of electronic devices including the first electronic device. In other examples, processing unit 1008 can be further configured to update (e.g., using state updating unit 1022) a state of the first electronic device stored in database unit 1034 based at least in part on the current state of the first electronic device received from the first electronic device.
[0115] In some examples, processing unit 1008 can be further configured to output (e.g., using indication outputting unit 1024) an indication of a result of the first command based on the first command and the current state of the first electronic device received from the first electronic device.
[0116] In some examples, electronic device 1000 can include a mobile phone, desktop computer, laptop computer, tablet computer, portable media player, television, television set-top box, or wearable electronic device.
[0117] In some examples, processing unit 1008 can be further configured to receive (e.g., using second identification and command receiving unit 1026), from the one or more servers, an identification of a second electronic device determined by the one or more servers based on the data corresponding to the audio input and a second command to be performed by the second electronic device determined by the one or more servers based on the data corresponding to the audio input. Processing unit 1008 can be further configured to transmit (e.g., using second identification and command transmitting unit 1028) the second command to the second electronic device and to receive (e.g., using second state receiving unit 1030), after transmitting the second command to the second electronic device, a current state of the second electronic device from the second electronic device. Processing unit 1008 can be further configured to transmit (e.g., using second state transmitting unit 1032) the current state of the second electronic device to the one or more servers.
[0118] In some examples, processing unit 1008 can be further configured to transmit (e.g., using notification transmitting unit 1036) a notification associated with the
current state of the first electronic device in response to determining that a predetermined condition has been satisfied.
[0119] In accordance with some examples, FIG. 11 shows a functional block diagram of an electronic device 1100 configured in accordance with the principles of the various described examples. The functional blocks of the device can be implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described examples. It is understood by persons of skill in the art that the functional blocks described in FIG. 11 can be combined or separated into sub-blocks to implement the principles of the various described examples.
Therefore, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein.
[0120] As shown in FIG. 11, electronic device 1100 can include a touch screen display unit 1102 configured to display a user interface and to receive touch input, and a sound receiving unit 1104 configured to receive sound input. In some examples, electronic device 1100 can include a speaker unit 1106 configured to generate sound. Electronic device 1100 can further include a processing unit 1108 coupled to touch screen display unit 1102 and sound receiving unit 1104 (and, optionally, coupled to speaker unit 1106). In some examples, processing unit 1108 can include an audio input receiving unit 1110, an audio input transmitting unit 1112, an instruction receiving unit 1114, a query transmitting unit 1116, a state receiving unit 1118, and a state transmitting unit 1120.
[0121] Processing unit 1108 can be configured to receive an audio input (e.g., using audio input receiving unit 1110) containing user speech. Processing unit 1108 can be further configured to transmit (e.g., using audio input transmitting unit 1112) data corresponding to the audio input to one or more servers. Processing unit 1108 can be further configured to receive (e.g., using instruction receiving unit 1114), from the one or more servers, an instruction to query a state of each of a plurality of electronic devices determined by the one or more servers based on the data corresponding to the audio input. A state query can be transmitted (e.g., using query transmitting unit 1116) to each of the plurality of electronic devices, and a current state of each of the plurality of electronic devices can be received (e.g., using state receiving unit 1118) from the plurality of electronic devices. The current state of each of the plurality of
electronic devices can be transmitted (e.g., using state transmitting unit 1120) to the one or more servers to be stored as a configuration.
[0122] In accordance with some examples, FIG. 12 shows a functional block diagram of an electronic device 1200 configured in accordance with the principles of the various described examples. The functional blocks of the device can be implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described examples. It is understood by persons of skill in the art that the functional blocks described in FIG. 12 can be combined or separated into sub-blocks to implement the principles of the various described examples.
Therefore, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein.
[0123] As shown in FIG. 12, electronic device 1200 can include a touch screen display unit 1202 configured to display a user interface and to receive touch input, and a sound receiving unit 1204 configured to receive sound input. In some examples, electronic device 1200 can include a speaker unit 1206 configured to generate sound. Electronic device 1200 can further include a processing unit 1208 coupled to touch screen display unit 1202 and sound receiving unit 1204 (and, optionally, coupled to speaker unit 1206). In some examples, processing unit 1208 can include an audio input receiving unit 1210, an audio input transmitting unit 1212, an instruction receiving unit 1214, a query transmitting unit 1216, a state receiving unit 1218, and a state transmitting unit 1220.
[0124] In some examples, processing unit 1208 can be further configured to receive (e.g., using audio input receiving unit 1210) an audio input including a user speech, transmit (e.g., using audio input transmitting unit 1212) data corresponding to the audio input to the one or more servers, and receive (e.g., using command receiving unit 1214), from the one or more servers, a plurality of commands to set the state of each of the plurality of electronic devices determined by the one or more servers based on a stored configuration. Processing unit 1208 can be further configured to transmit (e.g., using command transmitting unit 1216) the plurality of commands to the plurality of electronic devices. Processing unit 1208 can be further configured to receive (e.g., using state receiving unit 1218) an updated state of each of the plurality of electronic devices from the plurality of electronic devices and to transmit (e.g.,
using state transmitting unit 1220) the updated state of each of the plurality of electronic devices to the one or more servers.
[0125] As shown in FIG. 13, electronic device 1300 can include a touch screen display unit 1302 configured to display a user interface and to receive touch input, and a sound receiving unit 1304 configured to receive sound input. In some examples, electronic device 1300 can include a speaker unit 1306 configured to generate sound. Electronic device 1300 can further include a processing unit 1308 coupled to touch screen display unit 1302 and sound receiving unit 1304 (and, optionally, coupled to speaker unit 1306). In some examples, processing unit 1308 can include an audio input receiving unit 1310, speech-to-text converting unit 1312, an electronic device identifying unit 1314, a command identifying unit 1316, an identification and command transmitting unit 1318, a state receiving unit 1320, a state updating unit 1322, a contextual information receiving unit 1324, an indication transmitting unit 1326, a second electronic device identifying unit 1328, a second command identifying unit 1330, a second identification and command transmitting unit 1332, and a second state receiving unit 1336.
[0126] Processing unit 1308 can be configured to receive data corresponding to an audio input (e.g., using audio input receiving unit 1310) containing user speech. Processing unit 1308 can be further configured perform (e.g., using speech to text converting unit 1312) speech-to-text conversion on the data corresponding to the audio input to generate a textual representation of the user speech. Processing unit 1308 can be further configured to identify (e.g., using electronic device identifying unit 1314) a first electronic device based on the textual representation of the user speech. Processing unit 1308 can be further configured to identify (e.g., using command identifying unit 1316) a first command to be performed by the first electronic device based on the textual representation of user speech. Processing unit 1308 can be further configured to transmit (e.g., using identification and command transmitting unit 1318) an identification of the first electronic device and the first command to the user device. Processing unit 1308 can be further configured to receive (e.g., using state receiving unit 1320) a current state of the first electronic device.
[0127] In some examples, first electronic device includes a light bulb. In other examples, the first command includes a command to set an ON/OFF state, dimmable
state, or color state of the light. In yet other examples, the current state of the first electronic device includes the ON/OFF state, dimmable state, or color state of the light bulb after transmitting the first command to set the ON/OFF state, dimmable state, or color state of the light bulb.
[0128] In some examples, the first electronic device includes an electrical outlet. In other examples, the first command includes a command to set an
ACTIVE/INACTIVE state of the electrical outlet. In yet other examples, the current state of the first electronic device includes the ACTIVE/INACTIVE state of the electrical outlet after transmitting the command to set the ACTIVE/INACTIVE state of the electrical outlet.
[0129] In some examples, the first electronic device includes a switch. In other examples, the first command includes a command to set an ON/OFF state of the switch. In yet other examples, the current state of the first electronic device includes the ON/OFF state of the electrical outlet after transmitting the command to set the ON/OFF state of the switch.
[0130] In some examples, the first electronic device includes a door lock. In other examples, the first command includes a command to set a LOCKED/UNLOCKED state of the door lock. In yet other examples, the current state of the first electronic device includes the LOCKED/UNLOCKED state of the door lock after transmitting the command to set the LOCKED/UNLOCKED state of the door lock.
[0131] In some examples, the first electronic device includes a garage door. In other examples, the first command includes a command to set an OPEN/CLOSED state of the garage door. In yet other examples, the current state of the first electronic device includes the OPEN/CLOSED state of the garage door after transmitting the command to set the OPEN/CLOSED state of the garage door.
[0132] In some examples, the first electronic device includes a thermostat. In other examples, the first command includes a command to set a numerical value of a temperature setting of the thermostat. In yet other examples, the current state of the first electronic device includes the numerical value of the temperature setting of the thermostat after transmitting the first command to set the numerical value of the temperature setting of the thermostat.
[0133] In some examples, the first command includes a query for the current state of the first electronic device.
[0134] In some examples, electronic device 1300 further includes a database unit 1334 for storing a name, a type, and a state of each of a plurality of electronic devices, the plurality of electronic devices comprising the first electronic device. In other examples, processing unit 1308 can be further configured to update (e.g., using state updating unit 1322) the state of the first electronic device stored in database unit 1334 based on the current state of the first electronic device.
[0135] In some examples, processing unit 1308 can be further configured to receive (e.g., using contextual information receiving unit 1324) contextual information within the data corresponding to the audio input from the user device. In other examples, processing unit 1308 can be further configured to identify (e.g., using electronic device identifying unit 1314) the first electronic device based on the contextual information. In yet other examples, processing unit 1308 can be further configured to identify (e.g., using command identifying unit 1316) the first command based on the contextual information. In some examples, the contextual information includes an orientation of the user device when the user device received the audio input or a location of the user device when the user device received the audio input.
[0136] In some examples, the textual representation of the user speech excludes the name of the first electronic device. In other examples, the textual representation of the user speech excludes the type of the first electronic device.
[0137] In some examples, electronic device 1300 includes a mobile phone, desktop computer, laptop computer, tablet computer, portable media player, television, television set-top box, or wearable electronic device.
[0138] In some examples, processing unit 1308 can be further configured to transmit (e.g., using identification and command transmitting unit 1318) the identification of the first electronic device and the first command to the user device, and to receive (e.g., using state receiving unit 1320) the current state of the first electronic device from the user device.
[0139] In other examples, processing unit 1308 can be further configured to transmit (e.g., using identification and command transmitting unit 1318) the identification of the first electronic device and the first command to a second user device, and to
receive (e.g., using state receiving unit 1320) the current state of the first electronic device from the second user device.
[0140] In other examples, processing unit 1308 can be further configured to transmit (e.g., using indication transmitting unit 1326) an indication to the second user device of a result of the first command based on the first command and the current state of the first electronic device.
[0141] In other examples, processing unit 1308 can be further configured to identify (e.g., using second electronic device identifying unit 1328) a second electronic device based on the textual representation of the user speech, identify (e.g., using second command identifying unit 1330) a second command to be performed by the second electronic device based on the textual representation of the user speech, transmit (e.g., using second identification and command transmitting unit 1332) an identification of the second electronic device and the second command, and receive (e.g., using second state receiving unit 1336) a current state of the second electronic device.
[0142] As shown in FIG. 14, electronic device 1400 can include a touch screen display unit 1402 configured to display a user interface and to receive touch input, and a sound receiving unit 1404 configured to receive sound input. In some examples, electronic device 1400 can include a speaker unit 1406 configured to generate sound. Electronic device 1400 can further include a processing unit 1408 coupled to touch screen display unit 1402 and sound receiving unit 1404 (and, optionally, coupled to speaker unit 1406). In some examples, processing unit 1408 can include an audio input receiving unit 1410, speech-to-text converting unit 1412, a determining unit 1414, an instruction transmitting unit 1416, a state receiving unit 1416, a configuration storing unit 1420, a second audio input receiving unit 1422, a second speech to text converting unit 1424, a second determining unit 1426, a command transmitting unit 1428, and a second state receiving unit 1430.
[0143] Processing unit 1408 can be configured to receive (e.g., using audio input receiving unit 1410) data corresponding to an audio input comprising a user speech from a user device. Processing unit 1408 can be further configured perform (e.g., using speech to text converting unit 1412) speech-to-text conversion on the data corresponding to the audio input to generate a textual representation of the user speech. Processing unit 1408 can be further configured to determine (e.g., using
determining unit 1414) that the textual representation of the user speech represents a user intent to store a state of each of a plurality of electronic devices as a
configuration. Processing unit 1408 can be further configured to transmit (e.g., using instruction transmitting unit 1416) an instruction to query the state of each of the plurality of electronic devices. Processing unit 1408 can be further configured to receive (e.g., using state receiving unit 1418) a current state of each of the plurality of electronic devices. Processing unit 1408 can be further configured to store (e.g., using configuration storing unit 1420) the received current state of each of the plurality of electronic devices as the configuration.
[0144] As shown in FIG. 15, electronic device 1500 can include a touch screen display unit 1502 configured to display a user interface and to receive touch input, and a sound receiving unit 1504 configured to receive sound input. In some examples, electronic device 1500 can include a speaker unit 1506 configured to generate sound. Electronic device 1500 can further include a processing unit 1508 coupled to touch screen display unit 1502 and sound receiving unit 1504 (and, optionally, coupled to speaker unit 1506). In some examples, processing unit 1408 can include an audio input receiving unit 1510, speech-to-text converting unit 1512, a determining unit 1514, an instruction transmitting unit 1516, a state receiving unit 1516, a configuration storing unit 1520, a second audio input receiving unit 1522, a second speech to text converting unit 1524, a second determining unit 1526, a command transmitting unit 1528, and a second state receiving unit 1530.
[0145] In some examples, processing unit 1508 can be further configured to receive (e.g., using audio input receiving unit 1510) data corresponding to an audio input comprising a user speech, perform (e.g., using speech to text converting unit 1512) speech-to-text conversion on the data corresponding to the audio input to generate a textual representation of the user speech, determine (e.g., using determining unit 1514) that the textual representation of the user speech represents a user intent to change the state of each of the plurality of electronic devices based on the
configuration, transmit (e.g., using command transmitting unit 1516) a plurality of commands to set the state of each of the plurality of electronic devices based on the configuration, and receive (e.g., using state receiving unit 1518) an updated state of each of the plurality of electronic devices.
[0146] As described above, one aspect of the present technology is the gathering and use of data available from various sources to improve the delivery to users of invitational content or any other content that may be of interest to them. The present disclosure contemplates that in some instances, this gathered data can include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data can include demographic data, location-based data, telephone numbers, email addresses, home addresses, or any other identifying information.
[0147] The present disclosure recognizes that the use of such personal information data, in the present technology, can be used to the benefit of users. For example, the personal information data can be used to deliver targeted content that is of
greater interest to the user. Accordingly, use of such personal information data enables calculated control of the delivered content. Further, other uses for personal information data that benefit the user are also contemplated by the present disclosure.
[0148] The present disclosure further contemplates that the entities responsible for the collection, analysis, disclosure, transfer, storage, or other use of such
personal information data will comply with well-established privacy policies and/or privacy practices. In particular, such entities should implement and
consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or governmental requirements for maintaining personal information data private and secure. For example, personal information from users should be collected for legitimate and reasonable uses of the entity and not shared or sold outside of those legitimate uses. Further, such collection should occur only after receiving the informed consent of the users. Additionally, such entities would take any needed steps for safeguarding and securing access to such personal information data and ensuring that others with access to the personal information data adhere to their privacy policies and procedures. Further, such entities can subject themselves to evaluation by third parties to certify their adherence to
widely accepted privacy policies and practices.
[0149] Despite the foregoing, the present disclosure also contemplates examples in which users selectively block the use of, or access to, personal information data. That is, the present disclosure contemplates that hardware and/or software elements can be provided to prevent or block access to such personal information data. For example,
in the case of advertisement delivery services, the present technology can be configured to allow users to select to "opt in" or "opt out" of participation in the collection of personal information data during registration for services. In another example, users can select not to provide location information for targeted content delivery services. In yet another example, users can select to not provide
precise location information, but permit the transfer of location zone information.
[0150] Therefore, although the present disclosure broadly covers use of personal information data to implement one or more various disclosed examples, the present disclosure also contemplates that the various examples can also be
implemented without the need for accessing such personal information data. That is, the various examples of the present technology are not rendered inoperable due to the lack of all or a portion of such personal information data. For example, content can be selected and delivered to users by inferring preferences based on non-personal information data or a bare minimum amount of personal information, such as the content being requested by the device associated with a user, other non-personal information available to the content delivery services, or publicly available information.
[0151] Although examples have been fully described with reference to the accompanying drawings, it is to be noted that various changes and modifications will become apparent to those skilled in the art. Such changes and modifications are to be understood as being included within the scope of the various examples as defined by the appended claims.
Claims
1. A method for controlling electronic devices using a virtual assistant on a user device, the method comprising:
receiving, by the user device, an audio input comprising user speech;
transmitting data corresponding to the audio input to one or more servers; receiving, from the one or more servers:
an identification of a first electronic device determined by the one or more servers based on the data corresponding to the audio input; and
a first command to be performed by the first electronic device determined by the one or more servers based on the data corresponding to the audio input; and
transmitting the first command to the first electronic device.
2. The method of claim 1, further comprising:
receiving, after transmitting the first command to the first electronic device, a current state of the first electronic device from the first electronic device; and
transmitting the current state of the first electronic device to the one or more servers.
3. The method of claim 2, wherein the first electronic device comprises a light bulb.
4. The method of claim 3, wherein the first command comprises a command to set an ON/OFF state, dimmable state, or color state of the light bulb.
5. The method of claim 4, wherein the current state of the first electronic device comprises the ON/OFF state, dimmable state, or color state of the light bulb after transmitting the first command to set the ON/OFF state, dimmable state, or color state of the light bulb.
6. The method of claim 2, wherein the first electronic device comprises an electrical outlet.
7. The method of claim 6, wherein the first command comprises a command to set an ACTIVE/INACTIVE state of the electrical outlet.
8. The method of claim 7, wherein the current state of the first electronic device comprises the ACTIVE/INACTIVE state of the electrical outlet after transmitting the command to set the ACTIVE/INACTIVE state of the electrical outlet.
9. The method of claim 2, wherein the first electronic device comprises a switch.
10. The method of claim 9, wherein the first command comprises a command to set an ON/OFF state of the switch.
11. The method of claim 10, wherein the current state of the first electronic device comprises the ON/OFF state of the electrical outlet after transmitting the command to set the ON/OFF state of the switch.
12. The method of claim 2, wherein the first electronic device comprises a door lock.
13. The method of claim 12, wherein the first command comprises a command to set a LOCKED/UNLOCKED state of the door lock.
14. The method of claim 13, wherein the current state of the first electronic device comprises the LOCKED/UNLOCKED state of the door lock after transmitting the command to set the LOCKED/UNLOCKED state of the door lock.
15. The method of claim 2, wherein the first electronic device comprises a garage door.
16. The method of claim 15, wherein the first command comprises a command to set an OPEN/CLOSED state of the garage door.
17. The method of claim 16, wherein the current state of the first electronic device comprises the OPEN/CLOSED state of the garage door after transmitting the command to set the OPEN/CLOSED state of the garage door.
18. The method of claim 2, wherein the first electronic device comprises a thermostat.
19. The method of claim 18, wherein the first command comprises a command to set a numerical value of a temperature setting of the thermostat.
20. The method of claim 19, wherein the current state of the first electronic device comprises the numerical value of the temperature setting of the thermostat after transmitting the first command to set the numerical value of the temperature setting of the thermostat.
21. The method of claim 2, wherein the first command comprises a query for the current state of the first electronic device.
22. The method of claim 2, further comprising outputting a notification associated with the current state of the first electronic device in response to determining that a predetermined condition has been satisfied.
23. The method of claim 2, wherein the user device comprises a database for storing a state of each of a plurality of electronic devices, the plurality of electronic devices comprising the first electronic device, and wherein the method further comprises updating a state of the first electronic device stored in the database based at least in part on the current state of the first electronic device received from the first electronic device.
24. The method of claim 2, wherein the method further comprises outputting an indication of a result of the first command based on the first command and the current state of the first electronic device received from the first electronic device, wherein the indication of the result is an audio, visual, or both an audio and visual indication.
25. The method of claim 1, wherein the user device comprises a mobile phone, desktop computer, laptop computer, tablet computer, portable media player, television, television set-top box, or wearable electronic device.
26. The method of claim 1, wherein the first command is transmitted to the first electronic device over a local wireless network.
27. The method of claim 1, wherein the first command is transmitted to the first electronic device directly through Bluetooth, line of sight, peer-to-peer, or WiFi communication.
28. The method of claim 1, wherein the method excludes querying the first electronic device for the state of the first electronic device between receiving the first command from the one or more servers and transmitting the first command to the first electronic device.
29. The method of claim 1, further comprising:
receiving, from the one or more servers:
an identification of a second electronic device determined by the one or more servers based on the data corresponding to the audio input; and
a second command to be performed by the second electronic device determined by the one or more servers based on the data corresponding to the audio input;
transmitting the second command to the second electronic device;
receiving, after transmitting the second command to the second electronic device, a current state of the second electronic device from the second electronic device; and
transmitting the current state of the second electronic device to the one or more servers.
30. A method for controlling electronic devices using a virtual assistant on a user device, the method comprising:
receiving, by the user device, an audio input comprising a user speech;
transmitting data corresponding to the audio input to one or more servers;
receiving, from the one or more servers, an instruction to query a state of each of a plurality of electronic devices determined by the one or more servers based on the data corresponding to the audio input; and
transmitting a state query to each of the plurality of electronic devices.
31. The method of claim 30, further comprising:
receiving a current state of each of the plurality of electronic devices from the plurality of electronic devices; and
transmitting the current state of each of the plurality of electronic devices to the one or more servers to be stored as a configuration.
32. A method for controlling electronic devices using a virtual assistant on a user device, the method comprising:
receiving, by the user device, an audio input comprising a user speech;
transmitting data corresponding to the audio input to one or more servers; receiving, from the one or more servers, a plurality of commands to set a state of each of a plurality of electronic devices determined by the one or more servers based on a stored configuration; and
transmitting the plurality of commands to the plurality of electronic devices.
33. The method of claim 32, further comprising:
receiving an updated state of each of the plurality of electronic devices from the plurality of electronic devices; and
transmitting the updated state of each of the plurality of electronic devices to the one or more servers.
34. A method for controlling electronic devices using a virtual assistant on a user device, the method comprising:
receiving, by one or more servers, data corresponding to an audio input comprising user speech from a user device;
performing a speech to text conversion on the data corresponding to audio input to generate a textual representation of the user speech;
identifying a first electronic device based on the textual representation of the user speech;
identifying a first command to be performed by the first electronic device based on the textual representation of the user speech; and
transmitting an identification of the first electronic device and the first command.
35. The method of claim 34, further comprising receiving a current state of the first electronic device.
36. The method of claim 35, wherein the first electronic device comprises a light bulb.
37. The method of claim 36, wherein the first command comprises a command to change an ON/OFF state, dimmable state, or color state of the light bulb.
38. The method of claim 37, wherein the current state of the first electronic device comprises the ON/OFF state, dimmable state, or color state of the light bulb after the light bulb receives the first command to set the ON/OFF state, dimmable state, or color state of the light bulb.
39. The method of claim 35, wherein the first electronic device comprises an electrical outlet.
40. The method of claim 39, wherein the first command comprises a command to set an ACTIVE/INACTIVE state of the electrical outlet.
41. The method of claim 40, wherein the current state of the first electronic device comprises the ACTIVE/INACTIVE state of the electrical outlet after the electrical outlet receives the first command to set the ACTIVE/INACTIVE state of the electrical outlet.
The method of claim 35, wherein the first electronic device comprises a door
43. The method of claim 42, wherein the first command comprises a command to set a LOCKED/UNLOCKED state of the door lock.
44. The method of claim 43, wherein the current state of the first electronic device comprises the LOCKED/UNLOCKED state of the door lock after the door lock receives the first command to set the LOCKED/UNLOCKED state of the door lock.
45. The method of claim 35, wherein the first electronic device comprises a garage door.
46. The method of claim 45, wherein the first command comprises a command to set an OPEN/CLOSED state of the garage door.
47. The method of claim 46, wherein the current state of the first electronic device comprises the OPEN/CLOSED state of the garage door after the garage door receives the first command to set the OPEN/CLOSED state of the garage door.
48. The method of claim 35, wherein the first electronic device comprises a thermostat.
49. The method of claim 48, wherein the first command comprises a command to set a numerical value of a temperature setting of the thermostat.
50. The method of claim 49, wherein the current state of the first electronic device comprises the numerical value of the temperature setting of the thermostat after the thermostat receives the first command to set the numerical value of the temperature setting of the thermostat.
51. The method of claim 35, wherein the first electronic device comprises a switch.
52. The method of claim 51, wherein the first command comprises a command to set an ON/OFF state of the switch.
53. The method of claim 52, wherein the current state of the first electronic device comprises the ON/OFF state of the electrical outlet after transmitting the command to set the ON/OFF state of the switch.
54. The method of claim 35, wherein the first command comprises a query for the current state of the first electronic device.
55. The method of claim 35, wherein the one or more servers comprises a database storing a name, a type, and a state of each of a plurality of electronic devices, the plurality of electronic devices comprising the first electronic device.
56. The method of claim 55, wherein the method further comprises updating the state of the first electronic device stored in the database based on the current state of the first electronic device.
57. The method of claim 55, wherein the textual representation of the user speech excludes the name of the first electronic device.
58. The method of claim 55, wherein the textual representation of the user speech excludes the type of the first electronic device.
59. The method of claim 34, wherein the data corresponding to the audio input comprises contextual information associated with the audio input from the user device.
60. The method of claim 59, wherein identifying the first electronic device is further based on the contextual information.
61. The method of claim 59, wherein identifying the first command is further based on the contextual information.
62. The method of claim 59, wherein the contextual information comprises an orientation of the user device when the user device received the audio input or a location of the user device when the user device received the audio input.
63. The method of claim 34, wherein the user device comprises a mobile phone, desktop computer, laptop computer, tablet computer, portable media player, television, television set-top box, or wearable electronic device.
64. The method of claim 34, wherein the identification of the first electronic device and the first command are transmitted to the user device, and wherein the current state of the first electronic device is received from the user device.
65. The method of claim 34, wherein the identification of the first electronic device and the first command are transmitted to a second user device, and wherein the current state of the first electronic device is received from the second user device.
66. The method of claim 65, wherein the method further comprises transmitting, to the second user device, an indication of a result of the first command based on the first command and the current state of the first electronic device.
67. The method of claim 34, wherein the method further comprises:
identifying a second electronic device based on the textual representation of the user speech;
identifying a second command to be performed by the second electronic device based on the textual representation of the user speech;
transmitting an identification of the second electronic device and the second command; and
receiving a current state of the second electronic device.
68. A method for controlling electronic devices using a virtual assistant on a user device, the method comprising:
receiving, by one or more servers, data corresponding to an audio input comprising a user speech from a user device;
performing speech to text conversion on the data corresponding to the audio input to generate a textual representation of the user speech;
determining that the textual representation of the user speech represents a user intent to store a state of each of a plurality of electronic devices as a configuration; and
transmitting, to the user device, an instruction to query the state of each of the plurality of electronic devices.
69. The method of claim 68, further comprising:
receiving a current state of each of the plurality of electronic devices; and storing the received current state of each of the plurality of electronic devices as the configuration.
70. A method for controlling electronic devices using a virtual assistant on a user device, the method comprising:
receiving, by one or more servers, data corresponding to an audio input comprising a user speech;
performing speech to text conversion on the data corresponding to the audio input to generate a textual representation of the user speech;
determining that the textual representation of the user speech represents a user intent to change the state of each of a plurality of electronic devices based on a configuration; and
transmitting a plurality of commands to set the state of each of the plurality of electronic devices based on the configuration.
71. The method of claim 70, further comprising:
receiving an updated state of each of the plurality of electronic devices.
72. A non-transitory computer-readable storage medium comprising instructions for performing the method of any of claims 1-71.
73. A system comprising:
the non-transitory computer readable storage medium of claim 72; and one or more processors capable of executing the instructions of the non- transitory computer readable storage medium.
74. A system comprising:
means for receiving an audio input comprising user speech;
means for transmitting data corresponding to the audio input to one or more servers;
means for receiving, from the one or more servers:
an identification of an electronic device determined by the one or more servers based on the data corresponding to the audio input; and
a command to be performed by the electronic device determined by the one or more servers based on the data corresponding to the audio input;
means for transmitting the command to the electronic device;
means for receiving, after transmitting the command to the electronic device, a current state of the electronic device from the electronic device; and
means for transmitting the current state of the electronic device to the one or more servers.
75. A system comprising:
means for receiving an audio input comprising a first user speech;
means for transmitting data corresponding to the audio input to one or more servers;
means for receiving, from the one or more servers, an instruction to query a state of each of a plurality of electronic devices determined by the one or more servers based on the data corresponding to the audio input;
means for transmitting a state query to each of the plurality of electronic devices;
means for receiving a current state of each of the plurality of electronic devices from the plurality of electronic devices; and
means for transmitting the current state of each of the plurality of electronic devices to the one or more servers to be stored as a configuration.
76. A system comprising:
means for receiving an audio input comprising a user speech;
means for transmitting data corresponding to the audio input to one or more servers;
means for receiving, from the one or more servers, a plurality of commands to set a state of each of a plurality of electronic devices determined by the one or more servers based on a stored configuration; and
means for transmitting the plurality of commands to the plurality of electronic devices.
77. A system comprising:
means for receiving data corresponding to an audio input comprising user speech from a user device;
means for performing a speech to text conversion on the data corresponding to the audio input to generate a textual representation of the user speech;
means for identifying a first electronic device based on the textual representation of the user speech;
means for identifying a first command to be performed by the first electronic device based on the textual representation of the user speech;
means for transmitting an identification of the first electronic device and the first command; and
means for receiving a current state of the first electronic device.
78. A system comprising:
means for receiving data corresponding to an audio input comprising a user speech from a user device;
means for performing speech to text conversion on the data corresponding to the audio input to generate a textual representation of the user speech;
means for determining that the textual representation of the user speech represents a user intent to store a state of each of a plurality of electronic devices as a configuration;
means for transmitting, to the user device, an instruction to query the state of each of the plurality of electronic devices;
means for receiving a current state of each of the plurality of electronic devices; and
means for storing the received current state of each of the plurality of electronic devices as the configuration.
79. A system comprising:
means for receiving data corresponding to an audio input comprising a user speech;
means for performing speech to text conversion on the data corresponding to the audio input to generate a textual representation of the user speech;
means for determining that the textual representation of the user speech represents a user intent to change the state of each of a plurality of electronic devices based on a configuration; and
means for transmitting a plurality of commands to set the state of each of the plurality of electronic devices based on the configuration.
Priority Applications (16)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020187031452A KR102088124B1 (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
AU2015267612A AU2015267612C1 (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
KR1020167032258A KR101915575B1 (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
CN202010735884.0A CN111880425B (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
EP15718294.0A EP3105640B1 (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
JP2016564974A JP6471174B2 (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
KR1020227013616A KR20220058645A (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
CN201580028666.0A CN106415412B (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
EP21151452.6A EP3825790A1 (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
KR1020237034098A KR20230148261A (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
KR1020217038446A KR20210148395A (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
KR1020217001610A KR20210009442A (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
KR1020187031455A KR20180121685A (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
AU2018201834A AU2018201834B2 (en) | 2014-05-30 | 2018-03-14 | Intelligent assistant for home automation |
AU2020200103A AU2020200103B2 (en) | 2014-05-30 | 2020-01-07 | Intelligent assistant for home automation |
AU2021218051A AU2021218051B2 (en) | 2014-05-30 | 2021-08-17 | Intelligent assistant for home automation |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462005893P | 2014-05-30 | 2014-05-30 | |
US62/005,893 | 2014-05-30 | ||
US14/503,105 | 2014-09-30 | ||
US14/503,105 US10170123B2 (en) | 2014-05-30 | 2014-09-30 | Intelligent assistant for home automation |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015183401A1 true WO2015183401A1 (en) | 2015-12-03 |
Family
ID=52998224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2015/023593 WO2015183401A1 (en) | 2014-05-30 | 2015-03-31 | Intelligent assistant for home automation |
Country Status (8)
Country | Link |
---|---|
US (7) | US10170123B2 (en) |
EP (2) | EP3105640B1 (en) |
JP (4) | JP6471174B2 (en) |
KR (7) | KR20210148395A (en) |
CN (3) | CN111880425B (en) |
AU (3) | AU2015267612C1 (en) |
TW (1) | TWI519969B (en) |
WO (1) | WO2015183401A1 (en) |
Cited By (149)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354036A (en) * | 2016-08-30 | 2017-01-25 | 广东美的制冷设备有限公司 | Household appliance control method and device |
CN106444452A (en) * | 2016-10-31 | 2017-02-22 | 广东美的制冷设备有限公司 | Household appliance control method and apparatus thereof |
CN107450899A (en) * | 2016-06-01 | 2017-12-08 | 深圳市信锐网科技术有限公司 | The generation method and device of terminal control script |
DK201670577A1 (en) * | 2016-06-09 | 2018-01-08 | Apple Inc | Intelligent automated assistant in a home environment |
US9865248B2 (en) | 2008-04-05 | 2018-01-09 | Apple Inc. | Intelligent text-to-speech conversion |
US9966060B2 (en) | 2013-06-07 | 2018-05-08 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
US9971774B2 (en) | 2012-09-19 | 2018-05-15 | Apple Inc. | Voice-based media searching |
US9986419B2 (en) | 2014-09-30 | 2018-05-29 | Apple Inc. | Social reminders |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
US10049675B2 (en) | 2010-02-25 | 2018-08-14 | Apple Inc. | User profiling for voice input processing |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
US10079014B2 (en) | 2012-06-08 | 2018-09-18 | Apple Inc. | Name recognition system |
US10083690B2 (en) | 2014-05-30 | 2018-09-25 | Apple Inc. | Better resolution when referencing to concepts |
US10108612B2 (en) | 2008-07-31 | 2018-10-23 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
CN108694943A (en) * | 2017-03-30 | 2018-10-23 | Lg电子株式会社 | Voice server, speech recognition server system and its method of operating |
CN108717270A (en) * | 2018-05-30 | 2018-10-30 | 珠海格力电器股份有限公司 | Control method and device of intelligent equipment, storage medium and processor |
WO2018208506A1 (en) * | 2017-05-12 | 2018-11-15 | Apple Inc. | Synchronization and task delegation of a digital assistant |
GB2564237A (en) * | 2017-05-23 | 2019-01-09 | Lenovo Singapore Pte Ltd | Method of associating user input with a device |
WO2019051287A1 (en) * | 2017-09-09 | 2019-03-14 | Google Llc | Systems, methods, and apparatus for providing image shortcuts for an assistant application |
US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
US10269345B2 (en) | 2016-06-11 | 2019-04-23 | Apple Inc. | Intelligent task discovery |
CN109754795A (en) * | 2017-11-08 | 2019-05-14 | 哈曼国际工业有限公司 | It is acted on behalf of close to perceptual speech |
US10303715B2 (en) | 2017-05-16 | 2019-05-28 | Apple Inc. | Intelligent automated assistant for media exploration |
US10311144B2 (en) | 2017-05-16 | 2019-06-04 | Apple Inc. | Emoji word sense disambiguation |
US10311871B2 (en) | 2015-03-08 | 2019-06-04 | Apple Inc. | Competing devices responding to voice triggers |
US10318871B2 (en) | 2005-09-08 | 2019-06-11 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US10332518B2 (en) | 2017-05-09 | 2019-06-25 | Apple Inc. | User interface for correcting recognition errors |
US10354652B2 (en) | 2015-12-02 | 2019-07-16 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10356243B2 (en) | 2015-06-05 | 2019-07-16 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10381016B2 (en) | 2008-01-03 | 2019-08-13 | Apple Inc. | Methods and apparatus for altering audio output signals |
US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
US10403278B2 (en) | 2017-05-16 | 2019-09-03 | Apple Inc. | Methods and systems for phonetic matching in digital assistant services |
US10403283B1 (en) | 2018-06-01 | 2019-09-03 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US10410637B2 (en) | 2017-05-12 | 2019-09-10 | Apple Inc. | User-specific acoustic models |
US10417405B2 (en) | 2011-03-21 | 2019-09-17 | Apple Inc. | Device access using voice authentication |
US10417266B2 (en) | 2017-05-09 | 2019-09-17 | Apple Inc. | Context-aware ranking of intelligent response suggestions |
US10417344B2 (en) | 2014-05-30 | 2019-09-17 | Apple Inc. | Exemplar-based natural language processing |
GB2572175A (en) * | 2018-03-21 | 2019-09-25 | Emotech Ltd | Processing a command |
US10431204B2 (en) | 2014-09-11 | 2019-10-01 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10438595B2 (en) | 2014-09-30 | 2019-10-08 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US10445429B2 (en) | 2017-09-21 | 2019-10-15 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
US10453443B2 (en) | 2014-09-30 | 2019-10-22 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
US10482874B2 (en) | 2017-05-15 | 2019-11-19 | Apple Inc. | Hierarchical belief states for digital assistants |
US10497365B2 (en) | 2014-05-30 | 2019-12-03 | Apple Inc. | Multi-command single utterance input method |
US10496705B1 (en) | 2018-06-03 | 2019-12-03 | Apple Inc. | Accelerated task performance |
WO2019231537A1 (en) * | 2018-06-01 | 2019-12-05 | Apple Inc. | Virtual assistant operation in multi-device environments |
US10529332B2 (en) | 2015-03-08 | 2020-01-07 | Apple Inc. | Virtual assistant activation |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US10580409B2 (en) | 2016-06-11 | 2020-03-03 | Apple Inc. | Application integration with a digital assistant |
US10592604B2 (en) | 2018-03-12 | 2020-03-17 | Apple Inc. | Inverse text normalization for automatic speech recognition |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
US10636424B2 (en) | 2017-11-30 | 2020-04-28 | Apple Inc. | Multi-turn canned dialog |
US10643611B2 (en) | 2008-10-02 | 2020-05-05 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
US10657961B2 (en) | 2013-06-08 | 2020-05-19 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US10684703B2 (en) | 2018-06-01 | 2020-06-16 | Apple Inc. | Attention aware virtual assistant dismissal |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10699717B2 (en) | 2014-05-30 | 2020-06-30 | Apple Inc. | Intelligent assistant for home automation |
US10706841B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Task flow identification based on user intent |
US10714117B2 (en) | 2013-02-07 | 2020-07-14 | Apple Inc. | Voice trigger for a digital assistant |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
US10733993B2 (en) | 2016-06-10 | 2020-08-04 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10733982B2 (en) | 2018-01-08 | 2020-08-04 | Apple Inc. | Multi-directional dialog |
US10733375B2 (en) | 2018-01-31 | 2020-08-04 | Apple Inc. | Knowledge-based framework for improving natural language understanding |
US10741185B2 (en) | 2010-01-18 | 2020-08-11 | Apple Inc. | Intelligent automated assistant |
US10748546B2 (en) | 2017-05-16 | 2020-08-18 | Apple Inc. | Digital assistant services based on device capabilities |
US10755703B2 (en) | 2017-05-11 | 2020-08-25 | Apple Inc. | Offline personal assistant |
US10755051B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Rule-based natural language processing |
US10769385B2 (en) | 2013-06-09 | 2020-09-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
US10791176B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US10789959B2 (en) | 2018-03-02 | 2020-09-29 | Apple Inc. | Training speaker recognition models for digital assistants |
US10789945B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Low-latency intelligent automated assistant |
EP3716167A1 (en) * | 2019-03-27 | 2020-09-30 | BlackBerry Limited | Systems and methods of tracking distributed tasks |
US10795541B2 (en) | 2009-06-05 | 2020-10-06 | Apple Inc. | Intelligent organization of tasks items |
US10810274B2 (en) | 2017-05-15 | 2020-10-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
US10904611B2 (en) | 2014-06-30 | 2021-01-26 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10909331B2 (en) | 2018-03-30 | 2021-02-02 | Apple Inc. | Implicit identification of translation payload with neural machine translation |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US10942703B2 (en) | 2015-12-23 | 2021-03-09 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10942702B2 (en) | 2016-06-11 | 2021-03-09 | Apple Inc. | Intelligent device arbitration and control |
US10984780B2 (en) | 2018-05-21 | 2021-04-20 | Apple Inc. | Global semantic word embeddings using bi-directional recurrent neural networks |
US20210117681A1 (en) | 2019-10-18 | 2021-04-22 | Facebook, Inc. | Multimodal Dialog State Tracking and Action Prediction for Assistant Systems |
US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
US11010127B2 (en) | 2015-06-29 | 2021-05-18 | Apple Inc. | Virtual assistant for media playback |
US11023513B2 (en) | 2007-12-20 | 2021-06-01 | Apple Inc. | Method and apparatus for searching using an active ontology |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US11020860B2 (en) | 2016-06-15 | 2021-06-01 | Irobot Corporation | Systems and methods to control an autonomous mobile robot |
US11048473B2 (en) | 2013-06-09 | 2021-06-29 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US11069336B2 (en) | 2012-03-02 | 2021-07-20 | Apple Inc. | Systems and methods for name pronunciation |
US11069347B2 (en) | 2016-06-08 | 2021-07-20 | Apple Inc. | Intelligent automated assistant for media exploration |
US11070949B2 (en) | 2015-05-27 | 2021-07-20 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display |
US11080012B2 (en) | 2009-06-05 | 2021-08-03 | Apple Inc. | Interface for a virtual digital assistant |
US11120372B2 (en) | 2011-06-03 | 2021-09-14 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US11126400B2 (en) | 2015-09-08 | 2021-09-21 | Apple Inc. | Zero latency digital assistant |
US11127397B2 (en) | 2015-05-27 | 2021-09-21 | Apple Inc. | Device voice control |
US11133008B2 (en) | 2014-05-30 | 2021-09-28 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
US11217251B2 (en) | 2019-05-06 | 2022-01-04 | Apple Inc. | Spoken notifications |
US11227589B2 (en) | 2016-06-06 | 2022-01-18 | Apple Inc. | Intelligent list reading |
US11231904B2 (en) | 2015-03-06 | 2022-01-25 | Apple Inc. | Reducing response latency of intelligent automated assistants |
US11237797B2 (en) | 2019-05-31 | 2022-02-01 | Apple Inc. | User activity shortcut suggestions |
US11269678B2 (en) | 2012-05-15 | 2022-03-08 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
US11314370B2 (en) | 2013-12-06 | 2022-04-26 | Apple Inc. | Method for extracting salient dialog usage from live data |
US11350253B2 (en) | 2011-06-03 | 2022-05-31 | Apple Inc. | Active transport based notifications |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
KR20220074984A (en) * | 2016-10-03 | 2022-06-03 | 구글 엘엘씨 | Processing voice commands based on device topology |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
US11388291B2 (en) | 2013-03-14 | 2022-07-12 | Apple Inc. | System and method for processing voicemail |
US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11468282B2 (en) | 2015-05-15 | 2022-10-11 | Apple Inc. | Virtual assistant in a communication session |
US11467802B2 (en) | 2017-05-11 | 2022-10-11 | Apple Inc. | Maintaining privacy of personal information |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
US11488406B2 (en) | 2019-09-25 | 2022-11-01 | Apple Inc. | Text detection using global geometry estimators |
US11495218B2 (en) | 2018-06-01 | 2022-11-08 | Apple Inc. | Virtual assistant operation in multi-device environments |
US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
US11500672B2 (en) | 2015-09-08 | 2022-11-15 | Apple Inc. | Distributed personal assistant |
US11532306B2 (en) | 2017-05-16 | 2022-12-20 | Apple Inc. | Detecting a trigger of a digital assistant |
US11567788B1 (en) | 2019-10-18 | 2023-01-31 | Meta Platforms, Inc. | Generating proactive reminders for assistant systems |
US11638059B2 (en) | 2019-01-04 | 2023-04-25 | Apple Inc. | Content playback on multiple devices |
US11657813B2 (en) | 2019-05-31 | 2023-05-23 | Apple Inc. | Voice identification in digital assistant systems |
US11671920B2 (en) | 2007-04-03 | 2023-06-06 | Apple Inc. | Method and system for operating a multifunction portable electronic device using voice-activation |
US11696060B2 (en) | 2020-07-21 | 2023-07-04 | Apple Inc. | User identification using headphones |
US11755276B2 (en) | 2020-05-12 | 2023-09-12 | Apple Inc. | Reducing description length based on confidence |
US11765209B2 (en) | 2020-05-11 | 2023-09-19 | Apple Inc. | Digital assistant hardware abstraction |
US11790914B2 (en) | 2019-06-01 | 2023-10-17 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11798547B2 (en) | 2013-03-15 | 2023-10-24 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
US11809483B2 (en) | 2015-09-08 | 2023-11-07 | Apple Inc. | Intelligent automated assistant for media search and playback |
US11831799B2 (en) | 2019-08-09 | 2023-11-28 | Apple Inc. | Propagating context information in a privacy preserving manner |
US11838734B2 (en) | 2020-07-20 | 2023-12-05 | Apple Inc. | Multi-device audio adjustment coordination |
US11853536B2 (en) | 2015-09-08 | 2023-12-26 | Apple Inc. | Intelligent automated assistant in a media environment |
US11886805B2 (en) | 2015-11-09 | 2024-01-30 | Apple Inc. | Unconventional virtual assistant interactions |
US11914848B2 (en) | 2020-05-11 | 2024-02-27 | Apple Inc. | Providing relevant data items based on context |
US12010262B2 (en) | 2013-08-06 | 2024-06-11 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US12014118B2 (en) | 2017-05-15 | 2024-06-18 | Apple Inc. | Multi-modal interfaces having selection disambiguation and text modification capability |
US12051413B2 (en) | 2015-09-30 | 2024-07-30 | Apple Inc. | Intelligent device identification |
Families Citing this family (228)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658091B1 (en) | 2002-02-01 | 2003-12-02 | @Security Broadband Corp. | LIfestyle multimedia security system |
US20170118037A1 (en) | 2008-08-11 | 2017-04-27 | Icontrol Networks, Inc. | Integrated cloud system for premises automation |
US10142392B2 (en) | 2007-01-24 | 2018-11-27 | Icontrol Networks, Inc. | Methods and systems for improved system performance |
US11277465B2 (en) | 2004-03-16 | 2022-03-15 | Icontrol Networks, Inc. | Generating risk profile using data of home monitoring and security system |
US11159484B2 (en) | 2004-03-16 | 2021-10-26 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US10127802B2 (en) | 2010-09-28 | 2018-11-13 | Icontrol Networks, Inc. | Integrated security system with parallel processing architecture |
US9141276B2 (en) | 2005-03-16 | 2015-09-22 | Icontrol Networks, Inc. | Integrated interface for mobile device |
US8963713B2 (en) | 2005-03-16 | 2015-02-24 | Icontrol Networks, Inc. | Integrated security network with security alarm signaling system |
US11343380B2 (en) | 2004-03-16 | 2022-05-24 | Icontrol Networks, Inc. | Premises system automation |
US9191228B2 (en) | 2005-03-16 | 2015-11-17 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US20160065414A1 (en) | 2013-06-27 | 2016-03-03 | Ken Sundermeyer | Control system user interface |
US11316958B2 (en) | 2008-08-11 | 2022-04-26 | Icontrol Networks, Inc. | Virtual device systems and methods |
US10380871B2 (en) | 2005-03-16 | 2019-08-13 | Icontrol Networks, Inc. | Control system user interface |
US10375253B2 (en) | 2008-08-25 | 2019-08-06 | Icontrol Networks, Inc. | Security system with networked touchscreen and gateway |
US11489812B2 (en) | 2004-03-16 | 2022-11-01 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US10156959B2 (en) | 2005-03-16 | 2018-12-18 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US10382452B1 (en) | 2007-06-12 | 2019-08-13 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11113950B2 (en) | 2005-03-16 | 2021-09-07 | Icontrol Networks, Inc. | Gateway integrated with premises security system |
US10237237B2 (en) | 2007-06-12 | 2019-03-19 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10444964B2 (en) | 2007-06-12 | 2019-10-15 | Icontrol Networks, Inc. | Control system user interface |
AU2005223267B2 (en) | 2004-03-16 | 2010-12-09 | Icontrol Networks, Inc. | Premises management system |
US11811845B2 (en) | 2004-03-16 | 2023-11-07 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US10721087B2 (en) | 2005-03-16 | 2020-07-21 | Icontrol Networks, Inc. | Method for networked touchscreen with integrated interfaces |
US11201755B2 (en) | 2004-03-16 | 2021-12-14 | Icontrol Networks, Inc. | Premises system management using status signal |
US10339791B2 (en) | 2007-06-12 | 2019-07-02 | Icontrol Networks, Inc. | Security network integrated with premise security system |
US10200504B2 (en) | 2007-06-12 | 2019-02-05 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US9729342B2 (en) | 2010-12-20 | 2017-08-08 | Icontrol Networks, Inc. | Defining and implementing sensor triggered response rules |
US11582065B2 (en) | 2007-06-12 | 2023-02-14 | Icontrol Networks, Inc. | Systems and methods for device communication |
US9531593B2 (en) | 2007-06-12 | 2016-12-27 | Icontrol Networks, Inc. | Takeover processes in security network integrated with premise security system |
US20090077623A1 (en) | 2005-03-16 | 2009-03-19 | Marc Baum | Security Network Integrating Security System and Network Devices |
US11677577B2 (en) | 2004-03-16 | 2023-06-13 | Icontrol Networks, Inc. | Premises system management using status signal |
US10522026B2 (en) | 2008-08-11 | 2019-12-31 | Icontrol Networks, Inc. | Automation system user interface with three-dimensional display |
US11916870B2 (en) | 2004-03-16 | 2024-02-27 | Icontrol Networks, Inc. | Gateway registry methods and systems |
US9609003B1 (en) | 2007-06-12 | 2017-03-28 | Icontrol Networks, Inc. | Generating risk profile using data of home monitoring and security system |
US11244545B2 (en) | 2004-03-16 | 2022-02-08 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US10313303B2 (en) | 2007-06-12 | 2019-06-04 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US7711796B2 (en) | 2006-06-12 | 2010-05-04 | Icontrol Networks, Inc. | Gateway registry methods and systems |
US11368429B2 (en) | 2004-03-16 | 2022-06-21 | Icontrol Networks, Inc. | Premises management configuration and control |
US8635350B2 (en) | 2006-06-12 | 2014-01-21 | Icontrol Networks, Inc. | IP device discovery systems and methods |
US12063220B2 (en) | 2004-03-16 | 2024-08-13 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US8988221B2 (en) | 2005-03-16 | 2015-03-24 | Icontrol Networks, Inc. | Integrated security system with parallel processing architecture |
US11615697B2 (en) | 2005-03-16 | 2023-03-28 | Icontrol Networks, Inc. | Premise management systems and methods |
US11700142B2 (en) | 2005-03-16 | 2023-07-11 | Icontrol Networks, Inc. | Security network integrating security system and network devices |
US9306809B2 (en) | 2007-06-12 | 2016-04-05 | Icontrol Networks, Inc. | Security system with networked touchscreen |
US10999254B2 (en) | 2005-03-16 | 2021-05-04 | Icontrol Networks, Inc. | System for data routing in networks |
US11496568B2 (en) | 2005-03-16 | 2022-11-08 | Icontrol Networks, Inc. | Security system with networked touchscreen |
US20120324566A1 (en) | 2005-03-16 | 2012-12-20 | Marc Baum | Takeover Processes In Security Network Integrated With Premise Security System |
US20110128378A1 (en) | 2005-03-16 | 2011-06-02 | Reza Raji | Modular Electronic Display Platform |
US20170180198A1 (en) | 2008-08-11 | 2017-06-22 | Marc Baum | Forming a security network including integrated security system components |
US12063221B2 (en) | 2006-06-12 | 2024-08-13 | Icontrol Networks, Inc. | Activation of gateway device |
US10079839B1 (en) | 2007-06-12 | 2018-09-18 | Icontrol Networks, Inc. | Activation of gateway device |
US11706279B2 (en) | 2007-01-24 | 2023-07-18 | Icontrol Networks, Inc. | Methods and systems for data communication |
US7633385B2 (en) | 2007-02-28 | 2009-12-15 | Ucontrol, Inc. | Method and system for communicating with and controlling an alarm system from a remote server |
US8451986B2 (en) | 2007-04-23 | 2013-05-28 | Icontrol Networks, Inc. | Method and system for automatically providing alternate network access for telecommunications |
US11089122B2 (en) | 2007-06-12 | 2021-08-10 | Icontrol Networks, Inc. | Controlling data routing among networks |
US10666523B2 (en) | 2007-06-12 | 2020-05-26 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US12003387B2 (en) | 2012-06-27 | 2024-06-04 | Comcast Cable Communications, Llc | Control system user interface |
US11601810B2 (en) | 2007-06-12 | 2023-03-07 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10616075B2 (en) | 2007-06-12 | 2020-04-07 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11423756B2 (en) | 2007-06-12 | 2022-08-23 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11646907B2 (en) | 2007-06-12 | 2023-05-09 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11212192B2 (en) | 2007-06-12 | 2021-12-28 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10523689B2 (en) | 2007-06-12 | 2019-12-31 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US11237714B2 (en) | 2007-06-12 | 2022-02-01 | Control Networks, Inc. | Control system user interface |
US10423309B2 (en) | 2007-06-12 | 2019-09-24 | Icontrol Networks, Inc. | Device integration framework |
US10389736B2 (en) | 2007-06-12 | 2019-08-20 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11316753B2 (en) | 2007-06-12 | 2022-04-26 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11218878B2 (en) | 2007-06-12 | 2022-01-04 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10498830B2 (en) | 2007-06-12 | 2019-12-03 | Icontrol Networks, Inc. | Wi-Fi-to-serial encapsulation in systems |
US10051078B2 (en) | 2007-06-12 | 2018-08-14 | Icontrol Networks, Inc. | WiFi-to-serial encapsulation in systems |
US11831462B2 (en) | 2007-08-24 | 2023-11-28 | Icontrol Networks, Inc. | Controlling data routing in premises management systems |
US11916928B2 (en) | 2008-01-24 | 2024-02-27 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US20170185278A1 (en) | 2008-08-11 | 2017-06-29 | Icontrol Networks, Inc. | Automation system user interface |
US11258625B2 (en) | 2008-08-11 | 2022-02-22 | Icontrol Networks, Inc. | Mobile premises automation platform |
US11758026B2 (en) | 2008-08-11 | 2023-09-12 | Icontrol Networks, Inc. | Virtual device systems and methods |
US11792036B2 (en) | 2008-08-11 | 2023-10-17 | Icontrol Networks, Inc. | Mobile premises automation platform |
US10530839B2 (en) | 2008-08-11 | 2020-01-07 | Icontrol Networks, Inc. | Integrated cloud system with lightweight gateway for premises automation |
US11729255B2 (en) | 2008-08-11 | 2023-08-15 | Icontrol Networks, Inc. | Integrated cloud system with lightweight gateway for premises automation |
US8638211B2 (en) | 2009-04-30 | 2014-01-28 | Icontrol Networks, Inc. | Configurable controller and interface for home SMA, phone and multimedia |
US11592723B2 (en) | 2009-12-22 | 2023-02-28 | View, Inc. | Automated commissioning of controllers in a window network |
US8836467B1 (en) | 2010-09-28 | 2014-09-16 | Icontrol Networks, Inc. | Method, system and apparatus for automated reporting of account and sensor zone information to a central station |
US11750414B2 (en) | 2010-12-16 | 2023-09-05 | Icontrol Networks, Inc. | Bidirectional security sensor communication for a premises security system |
US9147337B2 (en) | 2010-12-17 | 2015-09-29 | Icontrol Networks, Inc. | Method and system for logging security event data |
US11054792B2 (en) | 2012-04-13 | 2021-07-06 | View, Inc. | Monitoring sites containing switchable optical devices and controllers |
US10964320B2 (en) | 2012-04-13 | 2021-03-30 | View, Inc. | Controlling optically-switchable devices |
US11405463B2 (en) | 2014-03-03 | 2022-08-02 | Icontrol Networks, Inc. | Media content management |
US11146637B2 (en) | 2014-03-03 | 2021-10-12 | Icontrol Networks, Inc. | Media content management |
KR102431749B1 (en) | 2014-03-05 | 2022-08-11 | 뷰, 인크. | Monitoring sites containing switchable optical devices and controllers |
GB2532244B (en) * | 2014-11-13 | 2021-03-24 | Honeywell Technologies Sarl | A commissioning tool and a method of commissioning a building management system |
WO2016104824A1 (en) * | 2014-12-23 | 2016-06-30 | 엘지전자 주식회사 | Portable device and control method therefor |
US9805717B2 (en) | 2015-03-06 | 2017-10-31 | Dell Products Lp | Voice-based input using natural language processing for interfacing with one or more devices |
US9792275B2 (en) * | 2015-03-06 | 2017-10-17 | Dell Products Lp | Natural language processing (NLP) interfacing with devices |
US10097368B2 (en) * | 2015-04-09 | 2018-10-09 | Honeywell International Inc. | WiFi access based actions/scenes execution in home automation security panels |
US9964328B2 (en) | 2015-05-04 | 2018-05-08 | Johnson Controls Technology Company | User control device with cantilevered display |
US11216020B2 (en) | 2015-05-04 | 2022-01-04 | Johnson Controls Tyco IP Holdings LLP | Mountable touch thermostat using transparent screen technology |
US10677484B2 (en) | 2015-05-04 | 2020-06-09 | Johnson Controls Technology Company | User control device and multi-function home control system |
US10559045B2 (en) | 2015-09-11 | 2020-02-11 | Johnson Controls Technology Company | Thermostat with occupancy detection based on load of HVAC equipment |
US10760809B2 (en) | 2015-09-11 | 2020-09-01 | Johnson Controls Technology Company | Thermostat with mode settings for multiple zones |
US10241754B1 (en) * | 2015-09-29 | 2019-03-26 | Amazon Technologies, Inc. | Systems and methods for providing supplemental information with a response to a command |
US10608879B2 (en) | 2015-10-16 | 2020-03-31 | Dell Products L.P. | Validation using natural language processing |
US10725800B2 (en) | 2015-10-16 | 2020-07-28 | Dell Products L.P. | User-specific customization for command interface |
US10748116B2 (en) | 2015-10-16 | 2020-08-18 | Dell Products L.P. | Test vector generation from documentation |
US10655881B2 (en) | 2015-10-28 | 2020-05-19 | Johnson Controls Technology Company | Thermostat with halo light system and emergency directions |
US10162327B2 (en) | 2015-10-28 | 2018-12-25 | Johnson Controls Technology Company | Multi-function thermostat with concierge features |
US10546472B2 (en) | 2015-10-28 | 2020-01-28 | Johnson Controls Technology Company | Thermostat with direction handoff features |
US11277893B2 (en) | 2015-10-28 | 2022-03-15 | Johnson Controls Technology Company | Thermostat with area light system and occupancy sensor |
US9653075B1 (en) * | 2015-11-06 | 2017-05-16 | Google Inc. | Voice commands across devices |
KR102453603B1 (en) * | 2015-11-10 | 2022-10-12 | 삼성전자주식회사 | Electronic device and method for controlling thereof |
US10318266B2 (en) | 2015-11-25 | 2019-06-11 | Johnson Controls Technology Company | Modular multi-function thermostat |
US10127906B1 (en) | 2015-12-28 | 2018-11-13 | Amazon Technologies, Inc. | Naming devices via voice commands |
US10185544B1 (en) * | 2015-12-28 | 2019-01-22 | Amazon Technologies, Inc. | Naming devices via voice commands |
US10026401B1 (en) | 2015-12-28 | 2018-07-17 | Amazon Technologies, Inc. | Naming devices via voice commands |
US20190057703A1 (en) * | 2016-02-29 | 2019-02-21 | Faraday&Future Inc. | Voice assistance system for devices of an ecosystem |
US9924021B2 (en) * | 2016-03-11 | 2018-03-20 | Distech Controls Inc. | Environment controllers capable of controlling a plurality of smart light fixtures |
US11108650B1 (en) * | 2016-04-08 | 2021-08-31 | Tyrion Integration Services, Inc. | Cloud-based system and hardware for providing remote access to local instrumentation |
CN109313498B (en) * | 2016-04-26 | 2023-08-11 | 唯景公司 | Controlling an optically switchable device |
US10505756B2 (en) | 2017-02-10 | 2019-12-10 | Johnson Controls Technology Company | Building management system with space graphs |
US10417451B2 (en) | 2017-09-27 | 2019-09-17 | Johnson Controls Technology Company | Building system with smart entity personal identifying information (PII) masking |
AU2017100585B4 (en) * | 2016-06-09 | 2018-02-01 | Apple Inc. | Intelligent automated assistant in a home environment |
CN107490971B (en) * | 2016-06-09 | 2019-06-11 | 苹果公司 | Intelligent automation assistant in home environment |
US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
TWI612818B (en) * | 2016-06-24 | 2018-01-21 | 禾聯碩股份有限公司 | Control system for controlling home appliance using television and method thereof |
US10091545B1 (en) * | 2016-06-27 | 2018-10-02 | Amazon Technologies, Inc. | Methods and systems for detecting audio output of associated device |
US10941951B2 (en) | 2016-07-27 | 2021-03-09 | Johnson Controls Technology Company | Systems and methods for temperature and humidity control |
US10147423B2 (en) * | 2016-09-29 | 2018-12-04 | Intel IP Corporation | Context-aware query recognition for electronic devices |
US11410646B1 (en) * | 2016-09-29 | 2022-08-09 | Amazon Technologies, Inc. | Processing complex utterances for natural language understanding |
EP3312722A1 (en) | 2016-10-21 | 2018-04-25 | Fujitsu Limited | Data processing apparatus, method, and program |
ES2765415T3 (en) | 2016-10-21 | 2020-06-09 | Fujitsu Ltd | Microservices-based data processing apparatus, method and program |
JP7100422B2 (en) | 2016-10-21 | 2022-07-13 | 富士通株式会社 | Devices, programs, and methods for recognizing data properties |
US10776170B2 (en) | 2016-10-21 | 2020-09-15 | Fujitsu Limited | Software service execution apparatus, system, and method |
JP6805765B2 (en) | 2016-10-21 | 2020-12-23 | 富士通株式会社 | Systems, methods, and programs for running software services |
US20180122372A1 (en) * | 2016-10-31 | 2018-05-03 | Soundhound, Inc. | Distinguishable open sounds |
US10210866B2 (en) * | 2017-01-20 | 2019-02-19 | Essential Products, Inc. | Ambient assistant device |
US10515098B2 (en) | 2017-02-10 | 2019-12-24 | Johnson Controls Technology Company | Building management smart entity creation and maintenance using time series data |
US11360447B2 (en) | 2017-02-10 | 2022-06-14 | Johnson Controls Technology Company | Building smart entity system with agent based communication and control |
US11994833B2 (en) | 2017-02-10 | 2024-05-28 | Johnson Controls Technology Company | Building smart entity system with agent based data ingestion and entity creation using time series data |
US11231943B2 (en) * | 2017-03-24 | 2022-01-25 | Google Llc | Smart setup of assistant services |
KR102416782B1 (en) * | 2017-03-28 | 2022-07-05 | 삼성전자주식회사 | Method for operating speech recognition service and electronic device supporting the same |
US10458669B2 (en) | 2017-03-29 | 2019-10-29 | Johnson Controls Technology Company | Thermostat with interactive installation features |
US11250844B2 (en) * | 2017-04-12 | 2022-02-15 | Soundhound, Inc. | Managing agent engagement in a man-machine dialog |
WO2018191688A2 (en) | 2017-04-14 | 2018-10-18 | Johnson Controls Techology Company | Thermostat with exhaust fan control for air quality and humidity control |
US10712038B2 (en) | 2017-04-14 | 2020-07-14 | Johnson Controls Technology Company | Multi-function thermostat with air quality display |
US11170768B2 (en) * | 2017-04-17 | 2021-11-09 | Samsung Electronics Co., Ltd | Device for performing task corresponding to user utterance |
WO2018200134A1 (en) * | 2017-04-24 | 2018-11-01 | Google Llc | Contextual situation analysis |
US11150922B2 (en) | 2017-04-25 | 2021-10-19 | Google Llc | Initializing a conversation with an automated agent via selectable graphical element |
US10754673B2 (en) | 2017-05-08 | 2020-08-25 | Google Llc | Smart device configuration guidance via automated assistant interface of separate client device |
CN108874460B (en) * | 2017-05-11 | 2022-12-02 | 达发科技股份有限公司 | Voice transmission device and method for executing voice assistant program |
US10983753B2 (en) | 2017-06-09 | 2021-04-20 | International Business Machines Corporation | Cognitive and interactive sensor based smart home solution |
US10607606B2 (en) * | 2017-06-19 | 2020-03-31 | Lenovo (Singapore) Pte. Ltd. | Systems and methods for execution of digital assistant |
CN107248937A (en) * | 2017-06-30 | 2017-10-13 | 北京百度网讯科技有限公司 | A kind of method and system interacted with user based on Internet of Things |
WO2019011356A1 (en) * | 2017-07-14 | 2019-01-17 | Cognigy Gmbh | Method for conducting dialog between human and computer |
US10951967B2 (en) * | 2017-08-23 | 2021-03-16 | Amazon Technologies, Inc. | Voice-controlled multimedia device and universal remote |
JP7097161B2 (en) * | 2017-09-01 | 2022-07-07 | シャープ株式会社 | Network systems, information processing methods, servers, and equipment |
US11314788B2 (en) | 2017-09-27 | 2022-04-26 | Johnson Controls Tyco IP Holdings LLP | Smart entity management for building management systems |
US11768826B2 (en) | 2017-09-27 | 2023-09-26 | Johnson Controls Tyco IP Holdings LLP | Web services for creation and maintenance of smart entities for connected devices |
US10962945B2 (en) | 2017-09-27 | 2021-03-30 | Johnson Controls Technology Company | Building management system with integration of data into smart entities |
US10546023B2 (en) * | 2017-10-03 | 2020-01-28 | Google Llc | Providing command bundle suggestions for an automated assistant |
US20190130707A1 (en) * | 2017-10-31 | 2019-05-02 | Ecolink Intelligent Technology, Inc. | Event notification using an intelligent digital assistant |
KR102498007B1 (en) * | 2018-01-08 | 2023-02-08 | 엘지전자 주식회사 | Laundry Treating Apparatus Control System by Voice Recognition and operating Method the same |
JP6928842B2 (en) * | 2018-02-14 | 2021-09-01 | パナソニックIpマネジメント株式会社 | Control information acquisition system and control information acquisition method |
US11131474B2 (en) | 2018-03-09 | 2021-09-28 | Johnson Controls Tyco IP Holdings LLP | Thermostat with user interface features |
EP3590249B1 (en) | 2018-03-14 | 2020-12-30 | Google LLC | Generating iot-based notification(s) and provisioning of command(s) to cause automatic rendering of the iot-based notification(s) by automated assistant client(s) of client device(s) |
JP7088703B2 (en) * | 2018-03-20 | 2022-06-21 | シャープ株式会社 | Information processing system |
US20210029803A1 (en) * | 2018-04-02 | 2021-01-28 | Signify Holding B.V. | System and methods for augmenting voice commands using connected lighting systems |
CN110412881B (en) * | 2018-04-30 | 2022-10-14 | 仁宝电脑工业股份有限公司 | Separated mobile intelligent system and operation method and base device thereof |
EP3783867A1 (en) * | 2018-05-07 | 2021-02-24 | Google LLC | Providing composite graphical assistant interfaces for controlling various connected devices |
CN118605832A (en) * | 2018-05-07 | 2024-09-06 | 谷歌有限责任公司 | Method and system for providing a composite graphical assistant interface for controlling a connected device |
KR102453833B1 (en) * | 2018-05-10 | 2022-10-14 | 삼성전자주식회사 | Electronic device and control method thereof |
US11127395B1 (en) * | 2018-05-23 | 2021-09-21 | Amazon Technologies, Inc. | Device-specific skill processing |
US10607610B2 (en) | 2018-05-29 | 2020-03-31 | Nortek Security & Control Llc | Audio firewall |
US10360304B1 (en) * | 2018-06-04 | 2019-07-23 | Imageous, Inc. | Natural language processing interface-enabled building conditions control system |
CN108984678A (en) * | 2018-06-29 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | wearable device, information processing method, device and system |
US10783428B2 (en) * | 2018-07-05 | 2020-09-22 | Accenture Global Solutions Limited | Holographic virtual assistant |
US11144596B2 (en) * | 2018-07-24 | 2021-10-12 | Harman International Industries, Incorporated | Retroactive information searching enabled by neural sensing |
US11373640B1 (en) * | 2018-08-01 | 2022-06-28 | Amazon Technologies, Inc. | Intelligent device grouping |
CN112313742B (en) | 2018-08-23 | 2024-10-18 | 谷歌有限责任公司 | Adjusting assistant responsiveness based on characteristics of a multi-assistant environment |
KR102173841B1 (en) * | 2018-09-20 | 2020-11-05 | 현대오토에버 주식회사 | System and method for controlling electronic devices by area using a plurality of artificial intelligent voice terminals |
US11256405B2 (en) * | 2018-09-24 | 2022-02-22 | Google Llc | Controlling a device based on processing of image data that captures the device and/or an installation environment of the device |
JP7209818B2 (en) * | 2018-09-27 | 2023-01-20 | グーグル エルエルシー | Analysis of web pages to facilitate automatic navigation |
WO2020076795A2 (en) * | 2018-10-08 | 2020-04-16 | Google Llc | Summarily conveying smart appliance statuses |
US11700141B2 (en) * | 2018-10-08 | 2023-07-11 | Google Llc | Control and/or registration of smart devices, locally by an assistant client device |
US10650819B2 (en) | 2018-10-15 | 2020-05-12 | Midea Group Co., Ltd. | System and method for providing portable natural language processing interface across multiple appliances |
KR102619973B1 (en) * | 2018-11-28 | 2024-01-02 | 삼성전자주식회사 | Electronic device for scheduling a plurality of tasks and operating method thereof |
JP7108879B2 (en) * | 2018-12-12 | 2022-07-29 | パナソニックIpマネジメント株式会社 | Control method and control system |
US11204594B2 (en) * | 2018-12-13 | 2021-12-21 | Fisher-Rosemount Systems, Inc. | Systems, methods, and apparatus to augment process control with virtual assistant |
US11107390B2 (en) | 2018-12-21 | 2021-08-31 | Johnson Controls Technology Company | Display device with halo |
CN109658932B (en) * | 2018-12-24 | 2020-11-17 | 深圳创维-Rgb电子有限公司 | Equipment control method, device, equipment and medium |
TWI688872B (en) * | 2018-12-28 | 2020-03-21 | 中華電信股份有限公司 | System and method for voice control iot device |
KR20200085593A (en) * | 2019-01-07 | 2020-07-15 | 삼성전자주식회사 | Electronic apparatus and contolling method thereof |
TWI702512B (en) * | 2019-01-10 | 2020-08-21 | 中興保全科技股份有限公司 | Intelligent assistant device |
KR20200094845A (en) * | 2019-01-23 | 2020-08-10 | 삼성전자주식회사 | Server, electronic device and method for managing home appliance |
EP3884484A1 (en) * | 2019-02-08 | 2021-09-29 | Google LLC | Adapting to differences in device state reporting of third party servers |
EP3935451A1 (en) * | 2019-03-05 | 2022-01-12 | Italy Innovazioni S.p.A. | A home automation system |
US11657800B2 (en) * | 2019-04-26 | 2023-05-23 | Lg Electronics Inc. | Electronic device with wakeup word determined multi-mode operation |
KR102323656B1 (en) * | 2019-06-04 | 2021-11-08 | 엘지전자 주식회사 | Apparatus and method for controlling operation of home appliance, home appliance and method for operating of home appliance |
CN110534105B (en) * | 2019-07-24 | 2021-10-15 | 珠海格力电器股份有限公司 | Voice control method and device |
WO2021060570A1 (en) * | 2019-09-23 | 2021-04-01 | 엘지전자 주식회사 | Home appliance and server |
US11393477B2 (en) | 2019-09-24 | 2022-07-19 | Amazon Technologies, Inc. | Multi-assistant natural language input processing to determine a voice model for synthesized speech |
US11120790B2 (en) | 2019-09-24 | 2021-09-14 | Amazon Technologies, Inc. | Multi-assistant natural language input processing |
CN110600003A (en) * | 2019-10-18 | 2019-12-20 | 北京云迹科技有限公司 | Robot voice output method and device, robot and storage medium |
JP6799297B1 (en) * | 2019-10-23 | 2020-12-16 | ソプラ株式会社 | Information output device, information output method, and information output program |
CN114514575A (en) | 2019-11-01 | 2022-05-17 | 三星电子株式会社 | Hub device, multi-device system including hub device and plurality of devices, and operation method of hub device and multi-device system |
US12001754B2 (en) | 2019-11-21 | 2024-06-04 | Motorola Mobility Llc | Context based media selection based on preferences setting for active consumer(s) |
US11233490B2 (en) * | 2019-11-21 | 2022-01-25 | Motorola Mobility Llc | Context based volume adaptation by voice assistant devices |
CN111028828A (en) * | 2019-12-20 | 2020-04-17 | 京东方科技集团股份有限公司 | Voice interaction method based on screen drawing, screen drawing and storage medium |
US11544458B2 (en) | 2020-01-17 | 2023-01-03 | Apple Inc. | Automatic grammar detection and correction |
KR102181827B1 (en) * | 2020-03-06 | 2020-11-23 | 주식회사 디프로매트 | Method for controlling a safe using active distributed system and a safe using the same |
CN111402882A (en) * | 2020-03-27 | 2020-07-10 | 四川虹美智能科技有限公司 | Intelligent voice module and operation method thereof |
US11590929B2 (en) * | 2020-05-05 | 2023-02-28 | Nvidia Corporation | Systems and methods for performing commands in a vehicle using speech and image recognition |
US11810578B2 (en) | 2020-05-11 | 2023-11-07 | Apple Inc. | Device arbitration for digital assistant-based intercom systems |
US12018850B2 (en) | 2020-08-13 | 2024-06-25 | Kohler Co. | Modular smart bathroom fan |
US11829720B2 (en) | 2020-09-01 | 2023-11-28 | Apple Inc. | Analysis and validation of language models |
CN116457874A (en) * | 2020-10-07 | 2023-07-18 | 三星电子株式会社 | Electronic device for understanding natural language and parameter acquisition method |
US20220131718A1 (en) * | 2020-10-25 | 2022-04-28 | Dizmo Ag | System and method for controlling devices |
US12002462B2 (en) | 2020-11-11 | 2024-06-04 | Boston Scientific Neuromodulation Corporation | Voice command handler for programming stimulation systems and methods of using |
US11914835B2 (en) * | 2020-11-16 | 2024-02-27 | Samsung Electronics Co., Ltd. | Method for displaying user interface and electronic device therefor |
US12113671B2 (en) * | 2021-04-16 | 2024-10-08 | Yonomi, Llc | Behavior driven digital twin for Internet of Things devices |
US11935168B1 (en) | 2021-05-14 | 2024-03-19 | Apple Inc. | Selective amplification of voice and interactive language simulator |
US11797766B2 (en) | 2021-05-21 | 2023-10-24 | Apple Inc. | Word prediction with multiple overlapping contexts |
US11922938B1 (en) | 2021-11-22 | 2024-03-05 | Amazon Technologies, Inc. | Access to multiple virtual assistants |
EP4380112A1 (en) * | 2022-02-07 | 2024-06-05 | Samsung Electronics Co., Ltd. | Server for controlling home network on basis of sleep state and operating method therefor |
US11908473B2 (en) | 2022-05-10 | 2024-02-20 | Apple Inc. | Task modification after task initiation |
US12135863B2 (en) | 2022-05-10 | 2024-11-05 | Apple Inc. | Search operations in various user interfaces |
KR20230160137A (en) * | 2022-05-16 | 2023-11-23 | 주식회사 카카오 | Method and apparatus for messaing service |
US11995457B2 (en) | 2022-06-03 | 2024-05-28 | Apple Inc. | Digital assistant integration with system interface |
US11978436B2 (en) | 2022-06-03 | 2024-05-07 | Apple Inc. | Application vocabulary integration with a digital assistant |
WO2024171261A1 (en) * | 2023-02-13 | 2024-08-22 | 日本電信電話株式会社 | Data processing device, method, and program |
US12130031B2 (en) * | 2023-03-06 | 2024-10-29 | HG Home Guardian Inc. | System and method for monitoring a home environment of utility devices |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030187659A1 (en) * | 2002-03-15 | 2003-10-02 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling devices connected to home network |
WO2008130095A1 (en) * | 2007-04-20 | 2008-10-30 | Seoby Electronics Co., Ltd. | Home network system and control method thereof |
US20100332235A1 (en) * | 2009-06-29 | 2010-12-30 | Abraham Ben David | Intelligent home automation |
US20120232886A1 (en) * | 2011-03-07 | 2012-09-13 | Accenture Global Services Limited | Computer network, computer-implemented method, computer program product, client, and server for natural language-based control of a digital network |
US8654936B1 (en) * | 2004-02-24 | 2014-02-18 | At&T Intellectual Property I, L.P. | Home control, monitoring and communication system using remote voice commands |
US20140098247A1 (en) * | 1999-06-04 | 2014-04-10 | Ip Holdings, Inc. | Home Automation And Smart Home Control Using Mobile Devices And Wireless Enabled Electrical Switches |
WO2015084659A1 (en) * | 2013-12-02 | 2015-06-11 | Rawles Llc | Natural language control of secondary device |
Family Cites Families (6848)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1559320A (en) | 1924-11-17 | 1925-10-27 | Albert A Hirsh | Tooth cleaner |
US2180522A (en) | 1938-11-01 | 1939-11-21 | Henne Isabelle | Dental floss throw-away unit and method of making same |
US3828132A (en) | 1970-10-30 | 1974-08-06 | Bell Telephone Labor Inc | Speech synthesis by concatenation of formant encoded words |
US3710321A (en) | 1971-01-18 | 1973-01-09 | Ibm | Machine recognition of lexical symbols |
US3704345A (en) | 1971-03-19 | 1972-11-28 | Bell Telephone Labor Inc | Conversion of printed text into synthetic speech |
US3979557A (en) | 1974-07-03 | 1976-09-07 | International Telephone And Telegraph Corporation | Speech processor system for pitch period extraction using prediction filters |
US4013085A (en) | 1974-07-17 | 1977-03-22 | Wright Charles E | Dental cleaning means and method of manufacture therefor |
US4108211A (en) | 1975-04-28 | 1978-08-22 | Fuji Photo Optical Co., Ltd. | Articulated, four-way bendable tube structure |
US4107784A (en) | 1975-12-22 | 1978-08-15 | Bemmelen Henri M Van | Management control terminal method and apparatus |
US4090216A (en) | 1976-05-26 | 1978-05-16 | Gte Sylvania Incorporated | Ambient light contrast and color control circuit |
BG24190A1 (en) | 1976-09-08 | 1978-01-10 | Antonov | Method of synthesis of speech and device for effecting same |
US4081631A (en) | 1976-12-08 | 1978-03-28 | Motorola, Inc. | Dual purpose, weather resistant data terminal keyboard assembly including audio porting |
US4384169A (en) | 1977-01-21 | 1983-05-17 | Forrest S. Mozer | Method and apparatus for speech synthesizing |
US4159536A (en) | 1977-04-08 | 1979-06-26 | Willard E. Kehoe | Portable electronic language translation device |
GB1545406A (en) | 1977-12-16 | 1979-05-10 | Ibm | Keyboard apparatus |
US4181821A (en) | 1978-10-31 | 1980-01-01 | Bell Telephone Laboratories, Incorporated | Multiple template speech recognition system |
JPS597120B2 (en) | 1978-11-24 | 1984-02-16 | 日本電気株式会社 | speech analysis device |
US4241286A (en) | 1979-01-04 | 1980-12-23 | Mack Gordon | Welding helmet lens assembly |
US4253477A (en) | 1979-08-02 | 1981-03-03 | Eichman John J | Dental floss holder |
JPS5681900A (en) | 1979-12-10 | 1981-07-04 | Nippon Electric Co | Voice synthesizer |
US4310721A (en) | 1980-01-23 | 1982-01-12 | The United States Of America As Represented By The Secretary Of The Army | Half duplex integral vocoder modem system |
US4348553A (en) | 1980-07-02 | 1982-09-07 | International Business Machines Corporation | Parallel pattern verifier with dynamic time warping |
JPS5741731A (en) | 1980-08-25 | 1982-03-09 | Fujitsu Ltd | Coordinate input device |
US4332464A (en) | 1980-09-22 | 1982-06-01 | Xerox Corporation | Interactive user-machine interface method and apparatus for copier/duplicator |
NZ199001A (en) | 1981-01-30 | 1984-02-03 | Mobil Oil Corp | Alkylation of aromatic compounds using catalyst with metal component and a zeolite |
US4495644A (en) | 1981-04-27 | 1985-01-22 | Quest Automation Public Limited Company | Apparatus for signature verification |
JPS57178295A (en) | 1981-04-27 | 1982-11-02 | Nippon Electric Co | Continuous word recognition apparatus |
US4433377A (en) | 1981-06-29 | 1984-02-21 | Eustis Mary S | Data processing with format varying |
US4386345A (en) | 1981-09-22 | 1983-05-31 | Sperry Corporation | Color and brightness tracking in a cathode ray tube display system |
DE3382796T2 (en) | 1982-06-11 | 1996-03-28 | Mitsubishi Electric Corp | Intermediate image coding device. |
US4451849A (en) | 1982-06-23 | 1984-05-29 | Rca Corporation | Plural operating mode ambient light responsive television picture control |
US4485439A (en) | 1982-07-27 | 1984-11-27 | S.A. Analis | Standard hardware-software interface for connecting any instrument which provides a digital output stream with any digital host computer |
US4513379A (en) | 1982-09-07 | 1985-04-23 | General Electric Company | Customization window for a computer numerical control system |
JPS5957336A (en) | 1982-09-27 | 1984-04-02 | Toshiba Corp | Picture display device |
US4555775B1 (en) | 1982-10-07 | 1995-12-05 | Bell Telephone Labor Inc | Dynamic generation and overlaying of graphic windows for multiple active program storage areas |
US4587670A (en) | 1982-10-15 | 1986-05-06 | At&T Bell Laboratories | Hidden Markov model speech recognition arrangement |
US4688195A (en) | 1983-01-28 | 1987-08-18 | Texas Instruments Incorporated | Natural-language interface generating system |
US4831551A (en) | 1983-01-28 | 1989-05-16 | Texas Instruments Incorporated | Speaker-dependent connected speech word recognizer |
US4586158A (en) | 1983-02-22 | 1986-04-29 | International Business Machines Corp. | Screen management system |
DE3381300D1 (en) | 1983-03-31 | 1990-04-12 | Ibm | IMAGE ROOM MANAGEMENT AND PLAYBACK IN A PART OF THE SCREEN OF A VIRTUAL MULTIFUNCTIONAL TERMINAL. |
US4654875A (en) | 1983-05-23 | 1987-03-31 | The Research Foundation Of State University Of New York | System to achieve automatic recognition of linguistic strings |
SE8303123L (en) | 1983-06-02 | 1984-12-03 | Fixfabriken Ab | PARTY ARRANGEMENTS |
US4618984A (en) | 1983-06-08 | 1986-10-21 | International Business Machines Corporation | Adaptive automatic discrete utterance recognition |
JPS603056A (en) | 1983-06-21 | 1985-01-09 | Toshiba Corp | Information rearranging device |
US4611346A (en) | 1983-09-29 | 1986-09-09 | International Business Machines Corporation | Method and apparatus for character recognition accommodating diacritical marks |
DE3335358A1 (en) | 1983-09-29 | 1985-04-11 | Siemens AG, 1000 Berlin und 8000 München | METHOD FOR DETERMINING LANGUAGE SPECTRES FOR AUTOMATIC VOICE RECOGNITION AND VOICE ENCODING |
US4797930A (en) | 1983-11-03 | 1989-01-10 | Texas Instruments Incorporated | constructed syllable pitch patterns from phonological linguistic unit string data |
US4802223A (en) | 1983-11-03 | 1989-01-31 | Texas Instruments Incorporated | Low data rate speech encoding employing syllable pitch patterns |
US5164900A (en) | 1983-11-14 | 1992-11-17 | Colman Bernath | Method and device for phonetically encoding Chinese textual data for data processing entry |
US5212638A (en) | 1983-11-14 | 1993-05-18 | Colman Bernath | Alphabetic keyboard arrangement for typing Mandarin Chinese phonetic data |
US4680805A (en) | 1983-11-17 | 1987-07-14 | Texas Instruments Incorporated | Method and apparatus for recognition of discontinuous text |
US4589022A (en) | 1983-11-28 | 1986-05-13 | General Electric Company | Brightness control system for CRT video display |
JPS60116072A (en) | 1983-11-29 | 1985-06-22 | N K B:Kk | Information furnishing system |
US4736296A (en) | 1983-12-26 | 1988-04-05 | Hitachi, Ltd. | Method and apparatus of intelligent guidance in natural language |
US4726065A (en) | 1984-01-26 | 1988-02-16 | Horst Froessl | Image manipulation by speech signals |
US4955047A (en) | 1984-03-26 | 1990-09-04 | Dytel Corporation | Automated attendant with direct inward system access |
US4811243A (en) | 1984-04-06 | 1989-03-07 | Racine Marsh V | Computer aided coordinate digitizing system |
US4692941A (en) | 1984-04-10 | 1987-09-08 | First Byte | Real-time text-to-speech conversion system |
US4709390A (en) | 1984-05-04 | 1987-11-24 | American Telephone And Telegraph Company, At&T Bell Laboratories | Speech message code modifying arrangement |
JPH067397Y2 (en) | 1984-07-30 | 1994-02-23 | カシオ計算機株式会社 | Document input device |
JPH0724055B2 (en) | 1984-07-31 | 1995-03-15 | 株式会社日立製作所 | Word division processing method |
US4783807A (en) | 1984-08-27 | 1988-11-08 | John Marley | System and method for sound recognition with feature selection synchronized to voice pitch |
JP2607457B2 (en) | 1984-09-17 | 1997-05-07 | 株式会社東芝 | Pattern recognition device |
JPS61105671A (en) | 1984-10-29 | 1986-05-23 | Hitachi Ltd | Natural language processing device |
US4718094A (en) | 1984-11-19 | 1988-01-05 | International Business Machines Corp. | Speech recognition system |
US5165007A (en) | 1985-02-01 | 1992-11-17 | International Business Machines Corporation | Feneme-based Markov models for words |
US4783804A (en) | 1985-03-21 | 1988-11-08 | American Telephone And Telegraph Company, At&T Bell Laboratories | Hidden Markov model speech recognition arrangement |
US4944013A (en) | 1985-04-03 | 1990-07-24 | British Telecommunications Public Limited Company | Multi-pulse speech coder |
US4670848A (en) | 1985-04-10 | 1987-06-02 | Standard Systems Corporation | Artificial intelligence system |
US4658425A (en) | 1985-04-19 | 1987-04-14 | Shure Brothers, Inc. | Microphone actuation control system suitable for teleconference systems |
US4819271A (en) | 1985-05-29 | 1989-04-04 | International Business Machines Corporation | Constructing Markov model word baseforms from multiple utterances by concatenating model sequences for word segments |
US4833712A (en) | 1985-05-29 | 1989-05-23 | International Business Machines Corporation | Automatic generation of simple Markov model stunted baseforms for words in a vocabulary |
US4698625A (en) | 1985-05-30 | 1987-10-06 | International Business Machines Corp. | Graphic highlight adjacent a pointing cursor |
US4829583A (en) | 1985-06-03 | 1989-05-09 | Sino Business Machines, Inc. | Method and apparatus for processing ideographic characters |
US5067158A (en) | 1985-06-11 | 1991-11-19 | Texas Instruments Incorporated | Linear predictive residual representation via non-iterative spectral reconstruction |
US5175803A (en) | 1985-06-14 | 1992-12-29 | Yeh Victor C | Method and apparatus for data processing and word processing in Chinese using a phonetic Chinese language |
US4713775A (en) | 1985-08-21 | 1987-12-15 | Teknowledge, Incorporated | Intelligent assistant for using and operating computer system capabilities to solve problems |
EP0218859A3 (en) | 1985-10-11 | 1989-09-06 | International Business Machines Corporation | Signal processor communication interface |
US4754489A (en) | 1985-10-15 | 1988-06-28 | The Palantir Corporation | Means for resolving ambiguities in text based upon character context |
US5133023A (en) | 1985-10-15 | 1992-07-21 | The Palantir Corporation | Means for resolving ambiguities in text based upon character context |
US4655233A (en) | 1985-11-04 | 1987-04-07 | Laughlin Patrick E | Dental flossing tool |
US4776016A (en) | 1985-11-21 | 1988-10-04 | Position Orientation Systems, Inc. | Voice control system |
NL8503304A (en) | 1985-11-29 | 1987-06-16 | Philips Nv | METHOD AND APPARATUS FOR SEGMENTING AN ELECTRIC SIGNAL FROM AN ACOUSTIC SIGNAL, FOR EXAMPLE, A VOICE SIGNAL. |
JPH0833744B2 (en) | 1986-01-09 | 1996-03-29 | 株式会社東芝 | Speech synthesizer |
US4680429A (en) | 1986-01-15 | 1987-07-14 | Tektronix, Inc. | Touch panel |
US4807752A (en) | 1986-01-21 | 1989-02-28 | Placontrol Corporation | Dental floss holders and package assembly of same |
US4724542A (en) | 1986-01-22 | 1988-02-09 | International Business Machines Corporation | Automatic reference adaptation during dynamic signature verification |
US5759101A (en) | 1986-03-10 | 1998-06-02 | Response Reward Systems L.C. | Central and remote evaluation of responses of participatory broadcast audience with automatic crediting and couponing |
US5128752A (en) | 1986-03-10 | 1992-07-07 | Kohorn H Von | System and method for generating and redeeming tokens |
US5032989A (en) | 1986-03-19 | 1991-07-16 | Realpro, Ltd. | Real estate search and location system and method |
DE3779351D1 (en) | 1986-03-28 | 1992-07-02 | American Telephone And Telegraph Co., New York, N.Y., Us | |
JPS62235998A (en) | 1986-04-05 | 1987-10-16 | シャープ株式会社 | Syllable identification system |
JPH0814822B2 (en) | 1986-04-30 | 1996-02-14 | カシオ計算機株式会社 | Command input device |
US4903305A (en) | 1986-05-12 | 1990-02-20 | Dragon Systems, Inc. | Method for representing word models for use in speech recognition |
US4837798A (en) | 1986-06-02 | 1989-06-06 | American Telephone And Telegraph Company | Communication system having unified messaging |
GB8618665D0 (en) | 1986-07-31 | 1986-09-10 | British Telecomm | Graphical workstation |
US4790028A (en) | 1986-09-12 | 1988-12-06 | Westinghouse Electric Corp. | Method and apparatus for generating variably scaled displays |
US5765131A (en) | 1986-10-03 | 1998-06-09 | British Telecommunications Public Limited Company | Language translation system and method |
CA1294056C (en) | 1986-10-03 | 1992-01-07 | Frederick Warwick Michael Stentiford | Language translation system |
US4837831A (en) | 1986-10-15 | 1989-06-06 | Dragon Systems, Inc. | Method for creating and using multiple-word sound models in speech recognition |
US5083268A (en) | 1986-10-15 | 1992-01-21 | Texas Instruments Incorporated | System and method for parsing natural language by unifying lexical features of words |
US4878230A (en) | 1986-10-16 | 1989-10-31 | Mitsubishi Denki Kabushiki Kaisha | Amplitude-adaptive vector quantization system |
US5123103A (en) | 1986-10-17 | 1992-06-16 | Hitachi, Ltd. | Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts |
US4829576A (en) | 1986-10-21 | 1989-05-09 | Dragon Systems, Inc. | Voice recognition system |
US4887212A (en) | 1986-10-29 | 1989-12-12 | International Business Machines Corporation | Parser for natural language text |
US4852168A (en) | 1986-11-18 | 1989-07-25 | Sprague Richard P | Compression of stored waveforms for artificial speech |
US4833718A (en) | 1986-11-18 | 1989-05-23 | First Byte | Compression of stored waveforms for artificial speech |
US4727354A (en) | 1987-01-07 | 1988-02-23 | Unisys Corporation | System for selecting best fit vector code in vector quantization encoding |
US4827520A (en) | 1987-01-16 | 1989-05-02 | Prince Corporation | Voice actuated control system for use in a vehicle |
US5179627A (en) | 1987-02-10 | 1993-01-12 | Dictaphone Corporation | Digital dictation system |
US4965763A (en) | 1987-03-03 | 1990-10-23 | International Business Machines Corporation | Computer method for automatic extraction of commonly specified information from business correspondence |
JP2595235B2 (en) | 1987-03-18 | 1997-04-02 | 富士通株式会社 | Speech synthesizer |
US4755811A (en) | 1987-03-24 | 1988-07-05 | Tektronix, Inc. | Touch controlled zoom of waveform displays |
US4803729A (en) | 1987-04-03 | 1989-02-07 | Dragon Systems, Inc. | Speech recognition method |
US5027408A (en) | 1987-04-09 | 1991-06-25 | Kroeker John P | Speech-recognition circuitry employing phoneme estimation |
US5125030A (en) | 1987-04-13 | 1992-06-23 | Kokusai Denshin Denwa Co., Ltd. | Speech signal coding/decoding system based on the type of speech signal |
US5644727A (en) | 1987-04-15 | 1997-07-01 | Proprietary Financial Products, Inc. | System for the operation and management of one or more financial accounts through the use of a digital communication and computation system for exchange, investment and borrowing |
AT386947B (en) | 1987-04-17 | 1988-11-10 | Rochus Marxer | TENSIONABLE THREAD, CONTAINER FOR THIS THREAD, AND HOLDER FOR DENTAL CARE, ESPECIALLY FOR CLEANING THE DENTAL SPACES |
JPS63280559A (en) | 1987-05-13 | 1988-11-17 | Hitachi Ltd | Telecontrol system |
JPS63285598A (en) | 1987-05-18 | 1988-11-22 | ケイディディ株式会社 | Phoneme connection type parameter rule synthesization system |
CA1295064C (en) | 1987-05-29 | 1992-01-28 | Kuniyoshi Marui | Voice recognition system used in telephone apparatus |
US5231670A (en) | 1987-06-01 | 1993-07-27 | Kurzweil Applied Intelligence, Inc. | Voice controlled system and method for generating text from a voice controlled input |
CA1265623A (en) | 1987-06-11 | 1990-02-06 | Eddy Lee | Method of facilitating computer sorting |
DE3723078A1 (en) | 1987-07-11 | 1989-01-19 | Philips Patentverwaltung | METHOD FOR DETECTING CONTINUOUSLY SPOKEN WORDS |
US4974191A (en) | 1987-07-31 | 1990-11-27 | Syntellect Software Inc. | Adaptive natural language computer interface system |
CA1288516C (en) | 1987-07-31 | 1991-09-03 | Leendert M. Bijnagte | Apparatus and method for communicating textual and image information between a host computer and a remote display terminal |
US4827518A (en) | 1987-08-06 | 1989-05-02 | Bell Communications Research, Inc. | Speaker verification system using integrated circuit cards |
CA1280215C (en) | 1987-09-28 | 1991-02-12 | Eddy Lee | Multilingual ordered data retrieval system |
JP2602847B2 (en) | 1987-09-29 | 1997-04-23 | 株式会社日立製作所 | Multimedia mail system |
US5022081A (en) | 1987-10-01 | 1991-06-04 | Sharp Kabushiki Kaisha | Information recognition system |
EP0380572B1 (en) | 1987-10-09 | 1994-07-27 | Sound Entertainment, Inc. | Generating speech from digitally stored coarticulated speech segments |
JPH01102599A (en) | 1987-10-12 | 1989-04-20 | Internatl Business Mach Corp <Ibm> | Voice recognition |
US4852173A (en) | 1987-10-29 | 1989-07-25 | International Business Machines Corporation | Design and construction of a binary-tree system for language modelling |
DE3876379T2 (en) | 1987-10-30 | 1993-06-09 | Ibm | AUTOMATIC DETERMINATION OF LABELS AND MARKOV WORD MODELS IN A VOICE RECOGNITION SYSTEM. |
US5072452A (en) | 1987-10-30 | 1991-12-10 | International Business Machines Corporation | Automatic determination of labels and Markov word models in a speech recognition system |
US4914586A (en) | 1987-11-06 | 1990-04-03 | Xerox Corporation | Garbage collector for hypermedia systems |
US4992972A (en) | 1987-11-18 | 1991-02-12 | International Business Machines Corporation | Flexible context searchable on-line information system with help files and modules for on-line computer system documentation |
US4908867A (en) | 1987-11-19 | 1990-03-13 | British Telecommunications Public Limited Company | Speech synthesis |
US5220657A (en) | 1987-12-02 | 1993-06-15 | Xerox Corporation | Updating local copy of shared data in a collaborative system |
JP2739945B2 (en) | 1987-12-24 | 1998-04-15 | 株式会社東芝 | Voice recognition method |
US5053758A (en) | 1988-02-01 | 1991-10-01 | Sperry Marine Inc. | Touchscreen control panel with sliding touch control |
US4984177A (en) | 1988-02-05 | 1991-01-08 | Advanced Products And Technologies, Inc. | Voice language translator |
GB2219178A (en) | 1988-02-11 | 1989-11-29 | Benchmark Technologies | State machine controlled video processor |
CA1333420C (en) | 1988-02-29 | 1994-12-06 | Tokumichi Murakami | Vector quantizer |
US5079723A (en) | 1988-03-04 | 1992-01-07 | Xerox Corporation | Touch dialogue user interface for reproduction machines |
US4994966A (en) | 1988-03-31 | 1991-02-19 | Emerson & Stern Associates, Inc. | System and method for natural language parsing by initiating processing prior to entry of complete sentences |
FI80536C (en) | 1988-04-15 | 1990-06-11 | Nokia Mobira Oy | matrix Display |
US4914590A (en) | 1988-05-18 | 1990-04-03 | Emhart Industries, Inc. | Natural language understanding system |
US4975975A (en) | 1988-05-26 | 1990-12-04 | Gtx Corporation | Hierarchical parametric apparatus and method for recognizing drawn characters |
US5315689A (en) | 1988-05-27 | 1994-05-24 | Kabushiki Kaisha Toshiba | Speech recognition system having word-based and phoneme-based recognition means |
US5029211A (en) | 1988-05-30 | 1991-07-02 | Nec Corporation | Speech analysis and synthesis system |
US5111423A (en) | 1988-07-21 | 1992-05-05 | Altera Corporation | Programmable interface for computer system peripheral circuit card |
FR2636163B1 (en) | 1988-09-02 | 1991-07-05 | Hamon Christian | METHOD AND DEVICE FOR SYNTHESIZING SPEECH BY ADDING-COVERING WAVEFORMS |
US5257387A (en) | 1988-09-09 | 1993-10-26 | Compaq Computer Corporation | Computer implemented method and apparatus for dynamic and automatic configuration of a computer system and circuit boards including computer resource allocation conflict resolution |
US5353432A (en) | 1988-09-09 | 1994-10-04 | Compaq Computer Corporation | Interactive method for configuration of computer system and circuit boards with user specification of system resources and computer resolution of resource conflicts |
US5161102A (en) | 1988-09-09 | 1992-11-03 | Compaq Computer Corporation | Computer interface for the configuration of computer system and circuit boards |
US4839853A (en) | 1988-09-15 | 1989-06-13 | Bell Communications Research, Inc. | Computer information retrieval using latent semantic structure |
JPH0286397A (en) | 1988-09-22 | 1990-03-27 | Nippon Telegr & Teleph Corp <Ntt> | Microphone array |
US5201034A (en) | 1988-09-30 | 1993-04-06 | Hitachi Ltd. | Interactive intelligent interface |
JPH0293597A (en) | 1988-09-30 | 1990-04-04 | Nippon I B M Kk | Speech recognition device |
US4905163A (en) | 1988-10-03 | 1990-02-27 | Minnesota Mining & Manufacturing Company | Intelligent optical navigator dynamic information presentation and navigation system |
US5282265A (en) | 1988-10-04 | 1994-01-25 | Canon Kabushiki Kaisha | Knowledge information processing system |
US4918723A (en) | 1988-10-07 | 1990-04-17 | Jerry R. Iggulden | Keyboard to facsimile machine transmission system |
DE3837590A1 (en) | 1988-11-05 | 1990-05-10 | Ant Nachrichtentech | PROCESS FOR REDUCING THE DATA RATE OF DIGITAL IMAGE DATA |
ATE102731T1 (en) | 1988-11-23 | 1994-03-15 | Digital Equipment Corp | NAME PRONUNCIATION BY A SYNTHETIC. |
US5027110A (en) | 1988-12-05 | 1991-06-25 | At&T Bell Laboratories | Arrangement for simultaneously displaying on one or more display terminals a series of images |
US5027406A (en) | 1988-12-06 | 1991-06-25 | Dragon Systems, Inc. | Method for interactive speech recognition and training |
JPH02153415A (en) | 1988-12-06 | 1990-06-13 | Hitachi Ltd | Keyboard device |
GB8828796D0 (en) | 1988-12-09 | 1989-01-18 | British Telecomm | Data compression |
US4935954A (en) | 1988-12-28 | 1990-06-19 | At&T Company | Automated message retrieval system |
US5127055A (en) | 1988-12-30 | 1992-06-30 | Kurzweil Applied Intelligence, Inc. | Speech recognition apparatus & method having dynamic reference pattern adaptation |
EP0375805B1 (en) | 1988-12-30 | 1995-05-24 | Yozan Inc. | Vectorizing method |
US5293448A (en) | 1989-10-02 | 1994-03-08 | Nippon Telegraph And Telephone Corporation | Speech analysis-synthesis method and apparatus therefor |
US5047614A (en) | 1989-01-23 | 1991-09-10 | Bianco James S | Method and apparatus for computer-aided shopping |
JP2574892B2 (en) | 1989-02-15 | 1997-01-22 | 株式会社日立製作所 | Load sharing control method for automobile |
US5086792A (en) | 1989-02-16 | 1992-02-11 | Placontrol Corp. | Dental floss loop devices, and methods of manufacture and packaging same |
US4928307A (en) | 1989-03-02 | 1990-05-22 | Acs Communications | Time dependent, variable amplitude threshold output circuit for frequency variant and frequency invariant signal discrimination |
SE466029B (en) | 1989-03-06 | 1991-12-02 | Ibm Svenska Ab | DEVICE AND PROCEDURE FOR ANALYSIS OF NATURAL LANGUAGES IN A COMPUTER-BASED INFORMATION PROCESSING SYSTEM |
JP2763322B2 (en) | 1989-03-13 | 1998-06-11 | キヤノン株式会社 | Audio processing method |
JPH0636156B2 (en) | 1989-03-13 | 1994-05-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Voice recognizer |
US5033087A (en) | 1989-03-14 | 1991-07-16 | International Business Machines Corp. | Method and apparatus for the automatic determination of phonological rules as for a continuous speech recognition system |
JPH0782544B2 (en) | 1989-03-24 | 1995-09-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | DP matching method and apparatus using multi-template |
US5003577A (en) | 1989-04-05 | 1991-03-26 | At&T Bell Laboratories | Voice and data interface to a voice-mail service system |
US4977598A (en) | 1989-04-13 | 1990-12-11 | Texas Instruments Incorporated | Efficient pruning algorithm for hidden markov model speech recognition |
US5197005A (en) | 1989-05-01 | 1993-03-23 | Intelligent Business Systems | Database retrieval system having a natural language interface |
US4994983A (en) | 1989-05-02 | 1991-02-19 | Itt Corporation | Automatic speech recognition system using seed templates |
US5287448A (en) | 1989-05-04 | 1994-02-15 | Apple Computer, Inc. | Method and apparatus for providing help information to users of computers |
JP2904283B2 (en) | 1989-05-22 | 1999-06-14 | マツダ株式会社 | Multiplex transmission equipment for vehicles |
US4953106A (en) | 1989-05-23 | 1990-08-28 | At&T Bell Laboratories | Technique for drawing directed graphs |
US5010574A (en) | 1989-06-13 | 1991-04-23 | At&T Bell Laboratories | Vector quantizer search arrangement |
JPH03163623A (en) | 1989-06-23 | 1991-07-15 | Articulate Syst Inc | Voice control computor interface |
JP2527817B2 (en) | 1989-07-14 | 1996-08-28 | シャープ株式会社 | Subject association device and word association device |
JP2940005B2 (en) | 1989-07-20 | 1999-08-25 | 日本電気株式会社 | Audio coding device |
JPH03113578A (en) | 1989-09-27 | 1991-05-14 | Fujitsu Ltd | Graphic output processing system |
US5091945A (en) | 1989-09-28 | 1992-02-25 | At&T Bell Laboratories | Source dependent channel coding with error protection |
US5276616A (en) | 1989-10-16 | 1994-01-04 | Sharp Kabushiki Kaisha | Apparatus for automatically generating index |
CA2027705C (en) | 1989-10-17 | 1994-02-15 | Masami Akamine | Speech coding system utilizing a recursive computation technique for improvement in processing speed |
US5075896A (en) | 1989-10-25 | 1991-12-24 | Xerox Corporation | Character and phoneme recognition based on probability clustering |
US4980916A (en) | 1989-10-26 | 1990-12-25 | General Electric Company | Method for improving speech quality in code excited linear predictive speech coding |
US5020112A (en) | 1989-10-31 | 1991-05-28 | At&T Bell Laboratories | Image recognition method using two-dimensional stochastic grammars |
US5220629A (en) | 1989-11-06 | 1993-06-15 | Canon Kabushiki Kaisha | Speech synthesis apparatus and method |
US5220639A (en) | 1989-12-01 | 1993-06-15 | National Science Council | Mandarin speech input method for Chinese computers and a mandarin speech recognition machine |
US5021971A (en) | 1989-12-07 | 1991-06-04 | Unisys Corporation | Reflective binary encoder for vector quantization |
US5179652A (en) | 1989-12-13 | 1993-01-12 | Anthony I. Rozmanith | Method and apparatus for storing, transmitting and retrieving graphical and tabular data |
US5077669A (en) | 1989-12-27 | 1991-12-31 | International Business Machines Corporation | Method for quasi-key search within a national language support (nls) data processing system |
US5091790A (en) | 1989-12-29 | 1992-02-25 | Morton Silverberg | Multipurpose computer accessory for facilitating facsimile communication |
EP0438662A2 (en) | 1990-01-23 | 1991-07-31 | International Business Machines Corporation | Apparatus and method of grouping utterances of a phoneme into context-de-pendent categories based on sound-similarity for automatic speech recognition |
US5175814A (en) | 1990-01-30 | 1992-12-29 | Digital Equipment Corporation | Direct manipulation interface for boolean information retrieval |
US5218700A (en) | 1990-01-30 | 1993-06-08 | Allen Beechick | Apparatus and method for sorting a list of items |
US5255386A (en) | 1990-02-08 | 1993-10-19 | International Business Machines Corporation | Method and apparatus for intelligent help that matches the semantic similarity of the inferred intent of query or command to a best-fit predefined command intent |
CH681573A5 (en) | 1990-02-13 | 1993-04-15 | Astral | Automatic teller arrangement involving bank computers - is operated by user data card carrying personal data, account information and transaction records |
DE69133296T2 (en) | 1990-02-22 | 2004-01-29 | Nec Corp | speech |
US5067503A (en) | 1990-03-21 | 1991-11-26 | Stile Thomas W | Dental apparatus for flossing teeth |
US5266949A (en) | 1990-03-29 | 1993-11-30 | Nokia Mobile Phones Ltd. | Lighted electronic keyboard |
US5299284A (en) | 1990-04-09 | 1994-03-29 | Arizona Board Of Regents, Acting On Behalf Of Arizona State University | Pattern classification using linear programming |
US5125022A (en) | 1990-05-15 | 1992-06-23 | Vcs Industries, Inc. | Method for recognizing alphanumeric strings spoken over a telephone network |
US5127043A (en) | 1990-05-15 | 1992-06-30 | Vcs Industries, Inc. | Simultaneous speaker-independent voice recognition and verification over a telephone network |
US5301109A (en) | 1990-06-11 | 1994-04-05 | Bell Communications Research, Inc. | Computerized cross-language document retrieval using latent semantic indexing |
JP3266246B2 (en) | 1990-06-15 | 2002-03-18 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | Natural language analysis apparatus and method, and knowledge base construction method for natural language analysis |
US5202952A (en) | 1990-06-22 | 1993-04-13 | Dragon Systems, Inc. | Large-vocabulary continuous speech prefiltering and processing system |
EP0464712A3 (en) | 1990-06-28 | 1993-01-13 | Kabushiki Kaisha Toshiba | Display/input control system for software keyboard in information processing apparatus having integral display/input device |
DE4023318A1 (en) | 1990-07-21 | 1992-02-20 | Fraunhofer Ges Forschung | METHOD FOR PERFORMING A VARIABLE DIALOG WITH TECHNICAL DEVICES |
US5175536A (en) | 1990-08-01 | 1992-12-29 | Westinghouse Electric Corp. | Apparatus and method for adapting cards designed for a VME bus for use in a VXI bus system |
US5103498A (en) | 1990-08-02 | 1992-04-07 | Tandy Corporation | Intelligent help system |
JPH0493894A (en) | 1990-08-03 | 1992-03-26 | Canon Inc | Method and device for character processing |
DE69131819T2 (en) | 1990-08-09 | 2000-04-27 | Semantic Compaction System, Pittsburgh | COMMUNICATION SYSTEM WITH TEXT MESSAGE DETECTION BASED ON CONCEPTS THAT ARE ENTERED BY KEYBOARD ICONS |
GB9017600D0 (en) | 1990-08-10 | 1990-09-26 | British Aerospace | An assembly and method for binary tree-searched vector quanisation data compression processing |
DE4126902C2 (en) | 1990-08-15 | 1996-06-27 | Ricoh Kk | Speech interval - detection unit |
US5404295A (en) | 1990-08-16 | 1995-04-04 | Katz; Boris | Method and apparatus for utilizing annotations to facilitate computer retrieval of database material |
US5309359A (en) | 1990-08-16 | 1994-05-03 | Boris Katz | Method and apparatus for generating and utlizing annotations to facilitate computer text retrieval |
US5297170A (en) | 1990-08-21 | 1994-03-22 | Codex Corporation | Lattice and trellis-coded quantization |
US5400434A (en) | 1990-09-04 | 1995-03-21 | Matsushita Electric Industrial Co., Ltd. | Voice source for synthetic speech system |
EP0473864A1 (en) | 1990-09-04 | 1992-03-11 | International Business Machines Corporation | Method and apparatus for paraphrasing information contained in logical forms |
JPH0833739B2 (en) | 1990-09-13 | 1996-03-29 | 三菱電機株式会社 | Pattern expression model learning device |
US5119079A (en) | 1990-09-17 | 1992-06-02 | Xerox Corporation | Touch screen user interface with expanding touch locations for a reprographic machine |
US5216747A (en) | 1990-09-20 | 1993-06-01 | Digital Voice Systems, Inc. | Voiced/unvoiced estimation of an acoustic signal |
US5276794A (en) | 1990-09-25 | 1994-01-04 | Grid Systems Corporation | Pop-up keyboard system for entering handwritten data into computer generated forms |
US5164982A (en) | 1990-09-27 | 1992-11-17 | Radish Communications Systems, Inc. | Telecommunication display system |
US5305205A (en) | 1990-10-23 | 1994-04-19 | Weber Maria L | Computer-assisted transcription apparatus |
US5128672A (en) | 1990-10-30 | 1992-07-07 | Apple Computer, Inc. | Dynamic predictive keyboard |
US5325298A (en) | 1990-11-07 | 1994-06-28 | Hnc, Inc. | Methods for generating or revising context vectors for a plurality of word stems |
US5317507A (en) | 1990-11-07 | 1994-05-31 | Gallant Stephen I | Method for document retrieval and for word sense disambiguation using neural networks |
US5260697A (en) | 1990-11-13 | 1993-11-09 | Wang Laboratories, Inc. | Computer with separate display plane and user interface processor |
US5450523A (en) | 1990-11-15 | 1995-09-12 | Matsushita Electric Industrial Co., Ltd. | Training module for estimating mixture Gaussian densities for speech unit models in speech recognition systems |
US5247579A (en) | 1990-12-05 | 1993-09-21 | Digital Voice Systems, Inc. | Methods for speech transmission |
US5345536A (en) | 1990-12-21 | 1994-09-06 | Matsushita Electric Industrial Co., Ltd. | Method of speech recognition |
US5127053A (en) | 1990-12-24 | 1992-06-30 | General Electric Company | Low-complexity method for improving the performance of autocorrelation-based pitch detectors |
US5133011A (en) | 1990-12-26 | 1992-07-21 | International Business Machines Corporation | Method and apparatus for linear vocal control of cursor position |
US5210689A (en) | 1990-12-28 | 1993-05-11 | Semantic Compaction Systems | System and method for automatically selecting among a plurality of input modes |
US5196838A (en) | 1990-12-28 | 1993-03-23 | Apple Computer, Inc. | Intelligent scrolling |
US5497319A (en) | 1990-12-31 | 1996-03-05 | Trans-Link International Corp. | Machine translation and telecommunications system |
JPH04236624A (en) | 1991-01-18 | 1992-08-25 | Sony Corp | Control system |
US5712949A (en) | 1991-01-29 | 1998-01-27 | Sony Corporation | Disc reproduction system with sequential reproduction of audio and image data |
FI88345C (en) | 1991-01-29 | 1993-04-26 | Nokia Mobile Phones Ltd | BELYST KEYBOARD |
US5268990A (en) | 1991-01-31 | 1993-12-07 | Sri International | Method for recognizing speech using linguistically-motivated hidden Markov models |
US5369577A (en) | 1991-02-01 | 1994-11-29 | Wang Laboratories, Inc. | Text searching system |
US5689618A (en) | 1991-02-19 | 1997-11-18 | Bright Star Technology, Inc. | Advanced tools for speech synchronized animation |
US5167004A (en) | 1991-02-28 | 1992-11-24 | Texas Instruments Incorporated | Temporal decorrelation method for robust speaker verification |
GB9105367D0 (en) | 1991-03-13 | 1991-04-24 | Univ Strathclyde | Computerised information-retrieval database systems |
EP0505621A3 (en) | 1991-03-28 | 1993-06-02 | International Business Machines Corporation | Improved message recognition employing integrated speech and handwriting information |
US5212821A (en) | 1991-03-29 | 1993-05-18 | At&T Bell Laboratories | Machine-based learning system |
US5327342A (en) | 1991-03-31 | 1994-07-05 | Roy Prannoy L | Method and apparatus for generating personalized handwriting |
JP2970964B2 (en) | 1991-09-18 | 1999-11-02 | 株式会社日立製作所 | Monitoring device |
WO1992017875A1 (en) | 1991-04-08 | 1992-10-15 | Hitachi, Ltd. | Method and apparatus for image or data processing, and monitoring method and apparatus using the same |
US5303406A (en) | 1991-04-29 | 1994-04-12 | Motorola, Inc. | Noise squelch circuit with adaptive noise shaping |
US5367640A (en) | 1991-04-30 | 1994-11-22 | Hewlett-Packard Company | System for configuring an input/output board in a computer |
US5274771A (en) | 1991-04-30 | 1993-12-28 | Hewlett-Packard Company | System for configuring an input/output board in a computer |
US5341466A (en) | 1991-05-09 | 1994-08-23 | New York University | Fractal computer user centerface with zooming capability |
JP3123558B2 (en) | 1991-05-09 | 2001-01-15 | ソニー株式会社 | Information input processing device and method |
US5202828A (en) | 1991-05-15 | 1993-04-13 | Apple Computer, Inc. | User interface system having programmable user interface elements |
US5500905A (en) | 1991-06-12 | 1996-03-19 | Microelectronics And Computer Technology Corporation | Pattern recognition neural network with saccade-like operation |
US5241619A (en) | 1991-06-25 | 1993-08-31 | Bolt Beranek And Newman Inc. | Word dependent N-best search method |
US5475587A (en) | 1991-06-28 | 1995-12-12 | Digital Equipment Corporation | Method and apparatus for efficient morphological text analysis using a high-level language for compact specification of inflectional paradigms |
US5293452A (en) | 1991-07-01 | 1994-03-08 | Texas Instruments Incorporated | Voice log-in using spoken name input |
US5442780A (en) | 1991-07-11 | 1995-08-15 | Mitsubishi Denki Kabushiki Kaisha | Natural language database retrieval system using virtual tables to convert parsed input phrases into retrieval keys |
US5477451A (en) | 1991-07-25 | 1995-12-19 | International Business Machines Corp. | Method and system for natural language translation |
US5687077A (en) | 1991-07-31 | 1997-11-11 | Universal Dynamics Limited | Method and apparatus for adaptive control |
JPH05197389A (en) | 1991-08-13 | 1993-08-06 | Toshiba Corp | Voice recognition device |
US5278980A (en) | 1991-08-16 | 1994-01-11 | Xerox Corporation | Iterative technique for phrase query formation and an information retrieval system employing same |
US5450522A (en) | 1991-08-19 | 1995-09-12 | U S West Advanced Technologies, Inc. | Auditory model for parametrization of speech |
US5326270A (en) | 1991-08-29 | 1994-07-05 | Introspect Technologies, Inc. | System and method for assessing an individual's task-processing style |
US5199077A (en) | 1991-09-19 | 1993-03-30 | Xerox Corporation | Wordspotting for voice editing and indexing |
DE4131387A1 (en) | 1991-09-20 | 1993-03-25 | Siemens Ag | METHOD FOR RECOGNIZING PATTERNS IN TIME VARIANTS OF MEASURING SIGNALS |
US5488727A (en) | 1991-09-30 | 1996-01-30 | International Business Machines Corporation | Methods to support multimethod function overloading with compile-time type checking |
JP2662120B2 (en) | 1991-10-01 | 1997-10-08 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Speech recognition device and processing unit for speech recognition |
JPH05108065A (en) | 1991-10-15 | 1993-04-30 | Kawai Musical Instr Mfg Co Ltd | Automatic performance device |
JP3155577B2 (en) | 1991-10-16 | 2001-04-09 | キヤノン株式会社 | Character recognition method and device |
US5222146A (en) | 1991-10-23 | 1993-06-22 | International Business Machines Corporation | Speech recognition apparatus having a speech coder outputting acoustic prototype ranks |
US5371853A (en) | 1991-10-28 | 1994-12-06 | University Of Maryland At College Park | Method and system for CELP speech coding and codebook for use therewith |
US5757979A (en) | 1991-10-30 | 1998-05-26 | Fuji Electric Co., Ltd. | Apparatus and method for nonlinear normalization of image |
KR940002854B1 (en) | 1991-11-06 | 1994-04-04 | 한국전기통신공사 | Sound synthesizing system |
US5386494A (en) | 1991-12-06 | 1995-01-31 | Apple Computer, Inc. | Method and apparatus for controlling a speech recognition function using a cursor control device |
US5293254A (en) | 1991-12-06 | 1994-03-08 | Xerox Corporation | Method for maintaining bit density while converting images in scale or resolution |
JPH05165459A (en) | 1991-12-19 | 1993-07-02 | Toshiba Corp | Enlarging display system |
US5475796A (en) | 1991-12-20 | 1995-12-12 | Nec Corporation | Pitch pattern generation apparatus |
US6400996B1 (en) | 1999-02-01 | 2002-06-04 | Steven M. Hoffberg | Adaptive pattern recognition based control system and method |
US6081750A (en) | 1991-12-23 | 2000-06-27 | Hoffberg; Steven Mark | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
US5903454A (en) | 1991-12-23 | 1999-05-11 | Hoffberg; Linda Irene | Human-factored interface corporating adaptive pattern recognition based controller apparatus |
US5502790A (en) | 1991-12-24 | 1996-03-26 | Oki Electric Industry Co., Ltd. | Speech recognition method and system using triphones, diphones, and phonemes |
US5349645A (en) | 1991-12-31 | 1994-09-20 | Matsushita Electric Industrial Co., Ltd. | Word hypothesizer for continuous speech decoding using stressed-vowel centered bidirectional tree searches |
JPH05188994A (en) | 1992-01-07 | 1993-07-30 | Sony Corp | Noise suppression device |
US5392419A (en) | 1992-01-24 | 1995-02-21 | Hewlett-Packard Company | Language identification system and method for a peripheral unit |
US5357431A (en) | 1992-01-27 | 1994-10-18 | Fujitsu Limited | Character string retrieval system using index and unit for making the index |
US5274818A (en) | 1992-02-03 | 1993-12-28 | Thinking Machines Corporation | System and method for compiling a fine-grained array based source program onto a course-grained hardware |
US5267345A (en) | 1992-02-10 | 1993-11-30 | International Business Machines Corporation | Speech recognition apparatus which predicts word classes from context and words from word classes |
US5621806A (en) | 1992-02-14 | 1997-04-15 | Texas Instruments Incorporated | Apparatus and methods for determining the relative displacement of an object |
US5412735A (en) | 1992-02-27 | 1995-05-02 | Central Institute For The Deaf | Adaptive noise reduction circuit for a sound reproduction system |
DE69322894T2 (en) | 1992-03-02 | 1999-07-29 | At & T Corp., New York, N.Y. | Learning method and device for speech recognition |
US6222525B1 (en) | 1992-03-05 | 2001-04-24 | Brad A. Armstrong | Image controllers with sheet connected sensors |
US5353376A (en) | 1992-03-20 | 1994-10-04 | Texas Instruments Incorporated | System and method for improved speech acquisition for hands-free voice telecommunication in a noisy environment |
US6055514A (en) | 1992-03-20 | 2000-04-25 | Wren; Stephen Corey | System for marketing foods and services utilizing computerized centraland remote facilities |
US5333266A (en) | 1992-03-27 | 1994-07-26 | International Business Machines Corporation | Method and apparatus for message handling in computer systems |
US5440615A (en) | 1992-03-31 | 1995-08-08 | At&T Corp. | Language selection for voice messaging system |
US5757358A (en) | 1992-03-31 | 1998-05-26 | The United States Of America As Represented By The Secretary Of The Navy | Method and apparatus for enhancing computer-user selection of computer-displayed objects through dynamic selection area and constant visual feedback |
US5390236A (en) | 1992-03-31 | 1995-02-14 | Klausner Patent Technologies | Telephone answering device linking displayed data with recorded audio message |
US5283818A (en) | 1992-03-31 | 1994-02-01 | Klausner Patent Technologies | Telephone answering device linking displayed data with recorded audio message |
CA2088080C (en) | 1992-04-02 | 1997-10-07 | Enrico Luigi Bocchieri | Automatic speech recognizer |
US5317647A (en) | 1992-04-07 | 1994-05-31 | Apple Computer, Inc. | Constrained attribute grammars for syntactic pattern recognition |
JPH05293126A (en) | 1992-04-15 | 1993-11-09 | Matsushita Electric Works Ltd | Dental floss |
US5412804A (en) | 1992-04-30 | 1995-05-02 | Oracle Corporation | Extending the semantics of the outer join operator for un-nesting queries to a data base |
US5745873A (en) | 1992-05-01 | 1998-04-28 | Massachusetts Institute Of Technology | Speech recognition using final decision based on tentative decisions |
US5377103A (en) | 1992-05-15 | 1994-12-27 | International Business Machines Corporation | Constrained natural language interface for a computer that employs a browse function |
US5369575A (en) | 1992-05-15 | 1994-11-29 | International Business Machines Corporation | Constrained natural language interface for a computer system |
US5293584A (en) | 1992-05-21 | 1994-03-08 | International Business Machines Corporation | Speech recognition system for natural language translation |
US5463696A (en) | 1992-05-27 | 1995-10-31 | Apple Computer, Inc. | Recognition system and method for user inputs to a computer system |
US5477447A (en) | 1992-05-27 | 1995-12-19 | Apple Computer, Incorporated | Method and apparatus for providing computer-implemented assistance |
US5434777A (en) | 1992-05-27 | 1995-07-18 | Apple Computer, Inc. | Method and apparatus for processing natural language |
US5390281A (en) | 1992-05-27 | 1995-02-14 | Apple Computer, Inc. | Method and apparatus for deducing user intent and providing computer implemented services |
US5734789A (en) | 1992-06-01 | 1998-03-31 | Hughes Electronics | Voiced, unvoiced or noise modes in a CELP vocoder |
JP2795058B2 (en) | 1992-06-03 | 1998-09-10 | 松下電器産業株式会社 | Time series signal processing device |
US5543588A (en) | 1992-06-08 | 1996-08-06 | Synaptics, Incorporated | Touch pad driven handheld computing device |
US5502774A (en) | 1992-06-09 | 1996-03-26 | International Business Machines Corporation | Automatic recognition of a consistent message using multiple complimentary sources of information |
AU4013693A (en) | 1992-06-16 | 1993-12-23 | Honeywell Inc. | A method for utilizing a low resolution touch screen system in a high resolution graphics environment |
JPH064093A (en) | 1992-06-18 | 1994-01-14 | Matsushita Electric Ind Co Ltd | Hmm generating device, hmm storage device, likelihood calculating device, and recognizing device |
US5333275A (en) | 1992-06-23 | 1994-07-26 | Wheatley Barbara J | System and method for time aligning speech |
US5325297A (en) | 1992-06-25 | 1994-06-28 | System Of Multiple-Colored Images For Internationally Listed Estates, Inc. | Computer implemented method and system for storing and retrieving textual data and compressed image data |
US5835732A (en) | 1993-10-28 | 1998-11-10 | Elonex Ip Holdings, Ltd. | Miniature digital assistant having enhanced host communication |
JPH0619965A (en) | 1992-07-01 | 1994-01-28 | Canon Inc | Natural language processor |
US5303308A (en) | 1992-07-07 | 1994-04-12 | Gn Netcom A/S | Audio frequency signal compressing system |
JP3230319B2 (en) | 1992-07-09 | 2001-11-19 | ソニー株式会社 | Sound reproduction device |
US5625554A (en) | 1992-07-20 | 1997-04-29 | Xerox Corporation | Finite-state transduction of related word forms for text indexing and retrieval |
US5325462A (en) | 1992-08-03 | 1994-06-28 | International Business Machines Corporation | System and method for speech synthesis employing improved formant composition |
US5999908A (en) | 1992-08-06 | 1999-12-07 | Abelow; Daniel H. | Customer-based product design module |
JPH0669954A (en) | 1992-08-18 | 1994-03-11 | Fujitsu Ltd | Message supersession notice system |
US5412806A (en) | 1992-08-20 | 1995-05-02 | Hewlett-Packard Company | Calibration of logical cost formulae for queries in a heterogeneous DBMS using synthetic database |
GB9220404D0 (en) | 1992-08-20 | 1992-11-11 | Nat Security Agency | Method of identifying,retrieving and sorting documents |
US5305768A (en) | 1992-08-24 | 1994-04-26 | Product Development (Zgs) Ltd. | Dental flosser units and method of making same |
US5425108A (en) | 1992-09-04 | 1995-06-13 | Industrial Technology Research Institute | Mobile type of automatic identification system for a car plate |
DE4229577A1 (en) | 1992-09-04 | 1994-03-10 | Daimler Benz Ag | Method for speech recognition with which an adaptation of microphone and speech characteristics is achieved |
US5333236A (en) | 1992-09-10 | 1994-07-26 | International Business Machines Corporation | Speech recognizer having a speech coder for an acoustic match based on context-dependent speech-transition acoustic models |
US5982352A (en) | 1992-09-18 | 1999-11-09 | Pryor; Timothy R. | Method for providing human input to a computer |
US5384893A (en) | 1992-09-23 | 1995-01-24 | Emerson & Stern Associates, Inc. | Method and apparatus for speech synthesis based on prosodic analysis |
FR2696036B1 (en) | 1992-09-24 | 1994-10-14 | France Telecom | Method of measuring resemblance between sound samples and device for implementing this method. |
JPH0772840B2 (en) | 1992-09-29 | 1995-08-02 | 日本アイ・ビー・エム株式会社 | Speech model configuration method, speech recognition method, speech recognition device, and speech model training method |
JP2779886B2 (en) | 1992-10-05 | 1998-07-23 | 日本電信電話株式会社 | Wideband audio signal restoration method |
JP2851977B2 (en) | 1992-10-14 | 1999-01-27 | シャープ株式会社 | Playback device |
US5758313A (en) | 1992-10-16 | 1998-05-26 | Mobile Information Systems, Inc. | Method and apparatus for tracking vehicle location |
US5353374A (en) | 1992-10-19 | 1994-10-04 | Loral Aerospace Corporation | Low bit rate voice transmission for use in a noisy environment |
US5920836A (en) | 1992-11-13 | 1999-07-06 | Dragon Systems, Inc. | Word recognition system using language context at current cursor position to affect recognition probabilities |
US5636325A (en) | 1992-11-13 | 1997-06-03 | International Business Machines Corporation | Speech synthesis and analysis of dialects |
US6092043A (en) | 1992-11-13 | 2000-07-18 | Dragon Systems, Inc. | Apparatuses and method for training and operating speech recognition systems |
EP0598598B1 (en) | 1992-11-18 | 2000-02-02 | Canon Information Systems, Inc. | Text-to-speech processor, and parser for use in such a processor |
US5455888A (en) | 1992-12-04 | 1995-10-03 | Northern Telecom Limited | Speech bandwidth extension method and apparatus |
US7835989B1 (en) | 1992-12-09 | 2010-11-16 | Discovery Communications, Inc. | Electronic book alternative delivery systems |
US8073695B1 (en) | 1992-12-09 | 2011-12-06 | Adrea, LLC | Electronic book with voice emulation features |
US5465401A (en) | 1992-12-15 | 1995-11-07 | Texas Instruments Incorporated | Communication system and methods for enhanced information transfer |
US5335276A (en) | 1992-12-16 | 1994-08-02 | Texas Instruments Incorporated | Communication system and methods for enhanced information transfer |
WO1994014270A1 (en) | 1992-12-17 | 1994-06-23 | Bell Atlantic Network Services, Inc. | Mechanized directory assistance |
US5533182A (en) | 1992-12-22 | 1996-07-02 | International Business Machines Corporation | Aural position indicating mechanism for viewable objects |
US5412756A (en) | 1992-12-22 | 1995-05-02 | Mitsubishi Denki Kabushiki Kaisha | Artificial intelligence software shell for plant operation simulation |
DE69310187T2 (en) | 1992-12-23 | 1997-11-27 | Taligent Inc | OBJECT-ORIENTED FRAMEWORK SYSTEM |
US5373566A (en) | 1992-12-24 | 1994-12-13 | Motorola, Inc. | Neural network-based diacritical marker recognition system and method |
FR2700055B1 (en) | 1992-12-30 | 1995-01-27 | Sextant Avionique | Method for denoising vector speech and device for implementing it. |
US5384892A (en) | 1992-12-31 | 1995-01-24 | Apple Computer, Inc. | Dynamic language model for speech recognition |
US6311157B1 (en) | 1992-12-31 | 2001-10-30 | Apple Computer, Inc. | Assigning meanings to utterances in a speech recognition system |
US5613036A (en) | 1992-12-31 | 1997-03-18 | Apple Computer, Inc. | Dynamic categories for a speech recognition system |
US5463725A (en) | 1992-12-31 | 1995-10-31 | International Business Machines Corp. | Data processing system graphical user interface which emulates printed material |
US5734791A (en) | 1992-12-31 | 1998-03-31 | Apple Computer, Inc. | Rapid tree-based method for vector quantization |
US5390279A (en) | 1992-12-31 | 1995-02-14 | Apple Computer, Inc. | Partitioning speech rules by context for speech recognition |
US5335011A (en) | 1993-01-12 | 1994-08-02 | Bell Communications Research, Inc. | Sound localization system for teleconferencing using self-steering microphone arrays |
JP2752309B2 (en) | 1993-01-19 | 1998-05-18 | 松下電器産業株式会社 | Display device |
US5878396A (en) | 1993-01-21 | 1999-03-02 | Apple Computer, Inc. | Method and apparatus for synthetic speech in facial animation |
US5490234A (en) | 1993-01-21 | 1996-02-06 | Apple Computer, Inc. | Waveform blending technique for text-to-speech system |
US5642466A (en) | 1993-01-21 | 1997-06-24 | Apple Computer, Inc. | Intonation adjustment in text-to-speech systems |
US6122616A (en) | 1993-01-21 | 2000-09-19 | Apple Computer, Inc. | Method and apparatus for diphone aliasing |
EP0609030B1 (en) | 1993-01-26 | 1999-06-09 | Sun Microsystems, Inc. | Method and apparatus for browsing information in a computer database |
US5491758A (en) | 1993-01-27 | 1996-02-13 | International Business Machines Corporation | Automatic handwriting recognition using both static and dynamic parameters |
US5890122A (en) | 1993-02-08 | 1999-03-30 | Microsoft Corporation | Voice-controlled computer simulateously displaying application menu and list of available commands |
US5449368A (en) | 1993-02-18 | 1995-09-12 | Kuzmak; Lubomyr I. | Laparoscopic adjustable gastric banding device and method for implantation and removal thereof |
US5864844A (en) | 1993-02-18 | 1999-01-26 | Apple Computer, Inc. | System and method for enhancing a user interface with a computer based training tool |
US5473728A (en) | 1993-02-24 | 1995-12-05 | The United States Of America As Represented By The Secretary Of The Navy | Training of homoscedastic hidden Markov models for automatic speech recognition |
US5467425A (en) | 1993-02-26 | 1995-11-14 | International Business Machines Corporation | Building scalable N-gram language models using maximum likelihood maximum entropy N-gram models |
CA2091658A1 (en) | 1993-03-15 | 1994-09-16 | Matthew Lennig | Method and apparatus for automation of directory assistance using speech recognition |
CA2119397C (en) | 1993-03-19 | 2007-10-02 | Kim E.A. Silverman | Improved automated voice synthesis employing enhanced prosodic treatment of text, spelling of text and rate of annunciation |
JPH06274586A (en) | 1993-03-22 | 1994-09-30 | Mitsubishi Electric Corp | Displaying system |
US6055531A (en) | 1993-03-24 | 2000-04-25 | Engate Incorporated | Down-line transcription system having context sensitive searching capability |
SG47774A1 (en) | 1993-03-26 | 1998-04-17 | British Telecomm | Text-to-waveform conversion |
US5536902A (en) | 1993-04-14 | 1996-07-16 | Yamaha Corporation | Method of and apparatus for analyzing and synthesizing a sound by extracting and controlling a sound parameter |
US5444823A (en) | 1993-04-16 | 1995-08-22 | Compaq Computer Corporation | Intelligent search engine for associated on-line documentation having questionless case-based knowledge base |
US6496793B1 (en) | 1993-04-21 | 2002-12-17 | Borland Software Corporation | System and methods for national language support with embedded locale-specific language driver identifiers |
CA2095452C (en) | 1993-05-04 | 1997-03-18 | Phillip J. Beaudet | Dynamic hierarchical selection menu |
US5428731A (en) | 1993-05-10 | 1995-06-27 | Apple Computer, Inc. | Interactive multimedia delivery engine |
US5860064A (en) | 1993-05-13 | 1999-01-12 | Apple Computer, Inc. | Method and apparatus for automatic generation of vocal emotion in a synthetic text-to-speech system |
US5652897A (en) | 1993-05-24 | 1997-07-29 | Unisys Corporation | Robust language processor for segmenting and parsing-language containing multiple instructions |
DE69432199T2 (en) | 1993-05-24 | 2004-01-08 | Sun Microsystems, Inc., Mountain View | Graphical user interface with methods for interfacing with remote control devices |
JPH06332617A (en) | 1993-05-25 | 1994-12-02 | Pfu Ltd | Display method in touch panel input device |
US5710922A (en) | 1993-06-02 | 1998-01-20 | Apple Computer, Inc. | Method for synchronizing and archiving information between computer systems |
WO1994029788A1 (en) | 1993-06-15 | 1994-12-22 | Honeywell Inc. | A method for utilizing a low resolution touch screen system in a high resolution graphics environment |
KR950001695A (en) | 1993-06-18 | 1995-01-03 | 오오가 노리오 | Disc player |
US5481739A (en) | 1993-06-23 | 1996-01-02 | Apple Computer, Inc. | Vector quantization using thresholds |
US5574823A (en) | 1993-06-23 | 1996-11-12 | Her Majesty The Queen In Right Of Canada As Represented By The Minister Of Communications | Frequency selective harmonic coding |
US5515475A (en) | 1993-06-24 | 1996-05-07 | Northern Telecom Limited | Speech recognition method using a two-pass search |
JPH0756933A (en) | 1993-06-24 | 1995-03-03 | Xerox Corp | Method for retrieval of document |
JP2648558B2 (en) | 1993-06-29 | 1997-09-03 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Information selection device and information selection method |
JP3685812B2 (en) | 1993-06-29 | 2005-08-24 | ソニー株式会社 | Audio signal transmitter / receiver |
US5860075A (en) | 1993-06-30 | 1999-01-12 | Matsushita Electric Industrial Co., Ltd. | Document data filing apparatus for generating visual attribute values of document data to be filed |
US5794207A (en) | 1996-09-04 | 1998-08-11 | Walker Asset Management Limited Partnership | Method and apparatus for a cryptographically assisted commercial network system designed to facilitate buyer-driven conditional purchase offers |
US5973676A (en) | 1993-06-30 | 1999-10-26 | Kabushiki Kaisha Toshiba | Input apparatus suitable for portable electronic device |
AU7323694A (en) | 1993-07-07 | 1995-02-06 | Inference Corporation | Case-based organizing and querying of a database |
JPH0736882A (en) | 1993-07-19 | 1995-02-07 | Fujitsu Ltd | Dictionary retrieving device |
US5818182A (en) | 1993-08-13 | 1998-10-06 | Apple Computer, Inc. | Removable media ejection system |
US5495604A (en) | 1993-08-25 | 1996-02-27 | Asymetrix Corporation | Method and apparatus for the modeling and query of database structures using natural language-like constructs |
US5619694A (en) | 1993-08-26 | 1997-04-08 | Nec Corporation | Case database storage/retrieval system |
US5940811A (en) | 1993-08-27 | 1999-08-17 | Affinity Technology Group, Inc. | Closed loop financial transaction method and apparatus |
US5377258A (en) | 1993-08-30 | 1994-12-27 | National Medical Research Council | Method and apparatus for an automated and interactive behavioral guidance system |
US5627939A (en) | 1993-09-03 | 1997-05-06 | Microsoft Corporation | Speech recognition system and method employing data compression |
US5500937A (en) | 1993-09-08 | 1996-03-19 | Apple Computer, Inc. | Method and apparatus for editing an inked object while simultaneously displaying its recognized object |
US5568540A (en) | 1993-09-13 | 1996-10-22 | Active Voice Corporation | Method and apparatus for selecting and playing a voice mail message |
US6594688B2 (en) | 1993-10-01 | 2003-07-15 | Collaboration Properties, Inc. | Dedicated echo canceler for a workstation |
US5689641A (en) | 1993-10-01 | 1997-11-18 | Vicor, Inc. | Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal |
US5873056A (en) | 1993-10-12 | 1999-02-16 | The Syracuse University | Natural language processing system for semantic vector representation which accounts for lexical ambiguity |
JP2986345B2 (en) | 1993-10-18 | 1999-12-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Voice recording indexing apparatus and method |
US5708659A (en) | 1993-10-20 | 1998-01-13 | Lsi Logic Corporation | Method for hashing in a packet network switching system |
JP3697276B2 (en) | 1993-10-27 | 2005-09-21 | ゼロックス コーポレイション | Image display method, image display apparatus, and image scaling method |
JP2813728B2 (en) | 1993-11-01 | 1998-10-22 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Personal communication device with zoom / pan function |
US5422656A (en) | 1993-11-01 | 1995-06-06 | International Business Machines Corp. | Personal communicator having improved contrast control for a liquid crystal, touch sensitive display |
US5977950A (en) | 1993-11-29 | 1999-11-02 | Motorola, Inc. | Manually controllable cursor in a virtual image |
WO1995016950A1 (en) | 1993-12-14 | 1995-06-22 | Apple Computer, Inc. | Method and apparatus for transferring data between a computer and a peripheral storage device |
US5578808A (en) | 1993-12-22 | 1996-11-26 | Datamark Services, Inc. | Data card that can be used for transactions involving separate card issuers |
ZA948426B (en) | 1993-12-22 | 1995-06-30 | Qualcomm Inc | Distributed voice recognition system |
US5384671A (en) | 1993-12-23 | 1995-01-24 | Quantum Corporation | PRML sampled data channel synchronous servo detector |
CA2179523A1 (en) | 1993-12-23 | 1995-06-29 | David A. Boulton | Method and apparatus for implementing user feedback |
JP2610114B2 (en) | 1993-12-30 | 1997-05-14 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Pointing system, computer system and force response method |
US5621859A (en) | 1994-01-19 | 1997-04-15 | Bbn Corporation | Single tree method for grammar directed, very large vocabulary speech recognizer |
US5577164A (en) | 1994-01-28 | 1996-11-19 | Canon Kabushiki Kaisha | Incorrect voice command recognition prevention and recovery processing method and apparatus |
US5583993A (en) | 1994-01-31 | 1996-12-10 | Apple Computer, Inc. | Method and apparatus for synchronously sharing data among computer |
US6463176B1 (en) | 1994-02-02 | 2002-10-08 | Canon Kabushiki Kaisha | Image recognition/reproduction method and apparatus |
US5577135A (en) | 1994-03-01 | 1996-11-19 | Apple Computer, Inc. | Handwriting signal processing front-end for handwriting recognizers |
AU684872B2 (en) | 1994-03-10 | 1998-01-08 | Cable And Wireless Plc | Communication system |
US5548507A (en) | 1994-03-14 | 1996-08-20 | International Business Machines Corporation | Language identification process using coded language words |
US5724406A (en) | 1994-03-22 | 1998-03-03 | Ericsson Messaging Systems, Inc. | Call processing system and method for providing a variety of messaging services |
US5584024A (en) | 1994-03-24 | 1996-12-10 | Software Ag | Interactive database query system and method for prohibiting the selection of semantically incorrect query parameters |
US5574824A (en) | 1994-04-11 | 1996-11-12 | The United States Of America As Represented By The Secretary Of The Air Force | Analysis/synthesis-based microphone array speech enhancer with variable signal distortion |
CH689410A5 (en) | 1994-04-21 | 1999-03-31 | Info Byte Ag | Method and apparatus for voice-activated remote control of electrical loads. |
GB9408042D0 (en) | 1994-04-22 | 1994-06-15 | Hewlett Packard Co | Device for managing voice data |
US5642519A (en) | 1994-04-29 | 1997-06-24 | Sun Microsystems, Inc. | Speech interpreter with a unified grammer compiler |
US5786803A (en) | 1994-05-09 | 1998-07-28 | Apple Computer, Inc. | System and method for adjusting the illumination characteristics of an output device |
US5670985A (en) | 1994-05-09 | 1997-09-23 | Apple Computer, Inc. | System and method for adjusting the output of an output device to compensate for ambient illumination |
US5828768A (en) | 1994-05-11 | 1998-10-27 | Noise Cancellation Technologies, Inc. | Multimedia personal computer with active noise reduction and piezo speakers |
US5596260A (en) | 1994-05-13 | 1997-01-21 | Apple Computer, Inc. | Apparatus and method for determining a charge of a battery |
JPH07320051A (en) | 1994-05-20 | 1995-12-08 | Nippon Telegr & Teleph Corp <Ntt> | Method and device for enlargement and reduction display in optional area of graphic |
JPH07320079A (en) | 1994-05-20 | 1995-12-08 | Nippon Telegr & Teleph Corp <Ntt> | Method and device for partial enlargement display of figure |
EP0684607B1 (en) | 1994-05-25 | 2001-03-14 | Victor Company Of Japan, Limited | Variable transfer rate data reproduction apparatus |
JPH07325591A (en) | 1994-05-31 | 1995-12-12 | Nec Corp | Method and device for generating imitated musical sound performance environment |
US5535121A (en) | 1994-06-01 | 1996-07-09 | Mitsubishi Electric Research Laboratories, Inc. | System for correcting auxiliary verb sequences |
US5477448A (en) | 1994-06-01 | 1995-12-19 | Mitsubishi Electric Research Laboratories, Inc. | System for correcting improper determiners |
US5485372A (en) | 1994-06-01 | 1996-01-16 | Mitsubishi Electric Research Laboratories, Inc. | System for underlying spelling recovery |
US5537317A (en) | 1994-06-01 | 1996-07-16 | Mitsubishi Electric Research Laboratories Inc. | System for correcting grammer based parts on speech probability |
US5521816A (en) | 1994-06-01 | 1996-05-28 | Mitsubishi Electric Research Laboratories, Inc. | Word inflection correction system |
US5644656A (en) | 1994-06-07 | 1997-07-01 | Massachusetts Institute Of Technology | Method and apparatus for automated text recognition |
US5493677A (en) | 1994-06-08 | 1996-02-20 | Systems Research & Applications Corporation | Generation, archiving, and retrieval of digital images with evoked suggestion-set captions and natural language interface |
US5812697A (en) | 1994-06-10 | 1998-09-22 | Nippon Steel Corporation | Method and apparatus for recognizing hand-written characters using a weighting dictionary |
US5675819A (en) | 1994-06-16 | 1997-10-07 | Xerox Corporation | Document information retrieval using global word co-occurrence patterns |
JPH0869470A (en) | 1994-06-21 | 1996-03-12 | Canon Inc | Natural language processing device and method |
US5610812A (en) | 1994-06-24 | 1997-03-11 | Mitsubishi Electric Information Technology Center America, Inc. | Contextual tagger utilizing deterministic finite state transducer |
US5948040A (en) | 1994-06-24 | 1999-09-07 | Delorme Publishing Co. | Travel reservation information and planning system |
US5581484A (en) | 1994-06-27 | 1996-12-03 | Prince; Kevin R. | Finger mounted computer input device |
JPH10510639A (en) | 1994-07-01 | 1998-10-13 | パーム コンピューティング,インコーポレーテッド | Multi pen stroke character set and handwritten document recognition system |
US6442523B1 (en) | 1994-07-22 | 2002-08-27 | Steven H. Siegel | Method for the auditory navigation of text |
CN1059303C (en) | 1994-07-25 | 2000-12-06 | 国际商业机器公司 | Apparatus and method for marking text on a display screen in a personal communications device |
US5568536A (en) | 1994-07-25 | 1996-10-22 | International Business Machines Corporation | Selective reconfiguration method and apparatus in a multiple application personal communications device |
JP3359745B2 (en) | 1994-07-29 | 2002-12-24 | シャープ株式会社 | Moving image reproducing device and moving image recording device |
JP3586777B2 (en) | 1994-08-17 | 2004-11-10 | 富士通株式会社 | Voice input device |
JP3565453B2 (en) | 1994-08-23 | 2004-09-15 | キヤノン株式会社 | Image input / output device |
US6137476A (en) | 1994-08-25 | 2000-10-24 | International Business Machines Corp. | Data mouse |
JPH0877173A (en) | 1994-09-01 | 1996-03-22 | Fujitsu Ltd | System and method for correcting character string |
US5559301A (en) | 1994-09-15 | 1996-09-24 | Korg, Inc. | Touchscreen interface having pop-up variable adjustment displays for controllers and audio processing systems |
EP0703525B1 (en) | 1994-09-22 | 2001-12-05 | Aisin Aw Co., Ltd. | Touch display type information input system |
GB9419388D0 (en) | 1994-09-26 | 1994-11-09 | Canon Kk | Speech analysis |
JP3027321B2 (en) | 1994-09-27 | 2000-04-04 | 財団法人工業技術研究院 | Method and apparatus for online recognition of unrestricted handwritten alphanumeric characters |
US5799268A (en) | 1994-09-28 | 1998-08-25 | Apple Computer, Inc. | Method for extracting knowledge from online documentation and creating a glossary, index, help database or the like |
IT1266943B1 (en) | 1994-09-29 | 1997-01-21 | Cselt Centro Studi Lab Telecom | VOICE SYNTHESIS PROCEDURE BY CONCATENATION AND PARTIAL OVERLAPPING OF WAVE FORMS. |
US5682539A (en) | 1994-09-29 | 1997-10-28 | Conrad; Donovan | Anticipated meaning natural language interface |
GB2293667B (en) | 1994-09-30 | 1998-05-27 | Intermation Limited | Database management system |
US5715468A (en) | 1994-09-30 | 1998-02-03 | Budzinski; Robert Lucius | Memory system for storing and retrieving experience and knowledge with natural language |
US5777614A (en) | 1994-10-14 | 1998-07-07 | Hitachi, Ltd. | Editing support system including an interactive interface |
US5661787A (en) | 1994-10-27 | 1997-08-26 | Pocock; Michael H. | System for on-demand remote access to a self-generating audio recording, storage, indexing and transaction system |
US5845255A (en) | 1994-10-28 | 1998-12-01 | Advanced Health Med-E-Systems Corporation | Prescription management system |
JPH08138321A (en) | 1994-11-11 | 1996-05-31 | Pioneer Electron Corp | Disc player |
US5613122A (en) | 1994-11-14 | 1997-03-18 | Object Technology Licensing Corp. | Object-oriented operating system |
US5652884A (en) | 1994-11-14 | 1997-07-29 | Object Technology Licensing Corp. | Method and apparatus for dynamic update of an existing object in an object editor |
US5577241A (en) | 1994-12-07 | 1996-11-19 | Excite, Inc. | Information retrieval system and method with implementation extensible query architecture |
US5748974A (en) | 1994-12-13 | 1998-05-05 | International Business Machines Corporation | Multimodal natural language interface for cross-application tasks |
DE4445023A1 (en) | 1994-12-16 | 1996-06-20 | Thomson Brandt Gmbh | Vibration resistant player with reduced energy consumption |
JPH08185265A (en) | 1994-12-28 | 1996-07-16 | Fujitsu Ltd | Touch panel controller |
US5682475A (en) | 1994-12-30 | 1997-10-28 | International Business Machines Corporation | Method and system for variable password access |
US5774859A (en) | 1995-01-03 | 1998-06-30 | Scientific-Atlanta, Inc. | Information system having a speech interface |
US5794050A (en) | 1995-01-04 | 1998-08-11 | Intelligent Text Processing, Inc. | Natural language understanding system |
US5835077A (en) | 1995-01-13 | 1998-11-10 | Remec, Inc., | Computer control device |
US5634084A (en) | 1995-01-20 | 1997-05-27 | Centigram Communications Corporation | Abbreviation and acronym/initialism expansion procedures for a text to speech reader |
JPH10512074A (en) | 1995-02-13 | 1998-11-17 | インタートラスト テクノロジーズ コーポレイション | System and method for secure transaction management and electronic rights protection |
US5565888A (en) | 1995-02-17 | 1996-10-15 | International Business Machines Corporation | Method and apparatus for improving visibility and selectability of icons |
JPH08227341A (en) | 1995-02-22 | 1996-09-03 | Mitsubishi Electric Corp | User interface |
US6122482A (en) | 1995-02-22 | 2000-09-19 | Global Communications, Inc. | Satellite broadcast receiving and distribution system |
US6009237A (en) | 1995-02-24 | 1999-12-28 | Hitachi Ltd. | Optical disk and optical disk reproduction apparatus |
US5748512A (en) | 1995-02-28 | 1998-05-05 | Microsoft Corporation | Adjusting keyboard |
US5543897A (en) | 1995-03-07 | 1996-08-06 | Eastman Kodak Company | Reproduction apparatus having touch screen operator interface and auxiliary keyboard |
US5701400A (en) | 1995-03-08 | 1997-12-23 | Amado; Carlos Armando | Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data |
US5564446A (en) | 1995-03-27 | 1996-10-15 | Wiltshire; Curtis B. | Dental floss device and applicator assembly |
US5749081A (en) | 1995-04-06 | 1998-05-05 | Firefly Network, Inc. | System and method for recommending items to a user |
NZ304418A (en) | 1995-04-12 | 1998-02-26 | British Telecomm | Extension and combination of digitised speech waveforms for speech synthesis |
US5616876A (en) | 1995-04-19 | 1997-04-01 | Microsoft Corporation | System and methods for selecting music on the basis of subjective content |
US5943049A (en) | 1995-04-27 | 1999-08-24 | Casio Computer Co., Ltd. | Image processor for displayed message, balloon, and character's face |
US5642464A (en) | 1995-05-03 | 1997-06-24 | Northern Telecom Limited | Methods and apparatus for noise conditioning in digital speech compression systems using linear predictive coding |
US5812698A (en) | 1995-05-12 | 1998-09-22 | Synaptics, Inc. | Handwriting recognition system and method |
US5708822A (en) | 1995-05-31 | 1998-01-13 | Oracle Corporation | Methods and apparatus for thematic parsing of discourse |
TW338815B (en) | 1995-06-05 | 1998-08-21 | Motorola Inc | Method and apparatus for character recognition of handwritten input |
US5920327A (en) | 1995-06-06 | 1999-07-06 | Microsoft Corporation | Multiple resolution data display |
US6268859B1 (en) | 1995-06-06 | 2001-07-31 | Apple Computer, Inc. | Method and system for rendering overlapping opaque graphical objects in graphic imaging systems |
US5991441A (en) | 1995-06-07 | 1999-11-23 | Wang Laboratories, Inc. | Real time handwriting recognition system |
US6496182B1 (en) | 1995-06-07 | 2002-12-17 | Microsoft Corporation | Method and system for providing touch-sensitive screens for the visually impaired |
US5664055A (en) | 1995-06-07 | 1997-09-02 | Lucent Technologies Inc. | CS-ACELP speech compression system with adaptive pitch prediction filter gain based on a measure of periodicity |
FI99072C (en) | 1995-06-08 | 1997-09-25 | Nokia Telecommunications Oy | A method for issuing delivery confirmations of message deliveries over a telephone network |
JP3385146B2 (en) | 1995-06-13 | 2003-03-10 | シャープ株式会社 | Conversational sentence translator |
DE69620399T2 (en) | 1995-06-13 | 2002-11-07 | British Telecommunications P.L.C., London | VOICE SYNTHESIS |
US5710886A (en) | 1995-06-16 | 1998-01-20 | Sellectsoft, L.C. | Electric couponing method and apparatus |
JP3284832B2 (en) | 1995-06-22 | 2002-05-20 | セイコーエプソン株式会社 | Speech recognition dialogue processing method and speech recognition dialogue device |
JPH0916598A (en) | 1995-07-03 | 1997-01-17 | Fujitsu Ltd | System and method for character string correction using error pattern |
JPH0918585A (en) | 1995-07-03 | 1997-01-17 | Matsushita Electric Ind Co Ltd | Voice mail system |
US6038533A (en) | 1995-07-07 | 2000-03-14 | Lucent Technologies Inc. | System and method for selecting training text |
US5684513A (en) | 1995-07-17 | 1997-11-04 | Decker; Mark Randall | Electronic luminescence keyboard system for a portable device |
US5760760A (en) | 1995-07-17 | 1998-06-02 | Dell Usa, L.P. | Intelligent LCD brightness control system |
US5949961A (en) | 1995-07-19 | 1999-09-07 | International Business Machines Corporation | Word syllabification in speech synthesis system |
US5999895A (en) | 1995-07-24 | 1999-12-07 | Forest; Donald K. | Sound operated menu method and apparatus |
KR0183726B1 (en) | 1995-07-31 | 1999-04-15 | 윤종용 | Cd regenerative apparatus regenerating signal from cd ok and video cd |
US5864815A (en) | 1995-07-31 | 1999-01-26 | Microsoft Corporation | Method and system for displaying speech recognition status information in a visual notification area |
US5724985A (en) | 1995-08-02 | 1998-03-10 | Pacesetter, Inc. | User interface for an implantable medical device using an integrated digitizer display screen |
JPH0955792A (en) | 1995-08-11 | 1997-02-25 | Ricoh Co Ltd | Voice mail system |
US6026388A (en) | 1995-08-16 | 2000-02-15 | Textwise, Llc | User interface and other enhancements for natural language information retrieval system and method |
US5835721A (en) | 1995-08-21 | 1998-11-10 | Apple Computer, Inc. | Method and system for data transmission over a network link between computers with the ability to withstand temporary interruptions |
JP3697748B2 (en) | 1995-08-21 | 2005-09-21 | セイコーエプソン株式会社 | Terminal, voice recognition device |
EP0788648B1 (en) | 1995-08-28 | 2000-08-16 | Koninklijke Philips Electronics N.V. | Method and system for pattern recognition based on dynamically constructing a subset of reference vectors |
MX9801518A (en) | 1995-09-02 | 1998-05-31 | New Transducers Ltd | Passenger vehicles incorporating loudspeakers comprising panel-form acoustic radiating elements. |
US5570324A (en) | 1995-09-06 | 1996-10-29 | Northrop Grumman Corporation | Underwater sound localization system |
US5855000A (en) | 1995-09-08 | 1998-12-29 | Carnegie Mellon University | Method and apparatus for correcting and repairing machine-transcribed input using independent or cross-modal secondary input |
US5712957A (en) | 1995-09-08 | 1998-01-27 | Carnegie Mellon University | Locating and correcting erroneously recognized portions of utterances by rescoring based on two n-best lists |
DE19533541C1 (en) | 1995-09-11 | 1997-03-27 | Daimler Benz Aerospace Ag | Method for the automatic control of one or more devices by voice commands or by voice dialog in real time and device for executing the method |
WO1997010586A1 (en) | 1995-09-14 | 1997-03-20 | Ericsson Inc. | System for adaptively filtering audio signals to enhance speech intelligibility in noisy environmental conditions |
US6173261B1 (en) | 1998-09-30 | 2001-01-09 | At&T Corp | Grammar fragment acquisition using syntactic and semantic clustering |
US5737734A (en) | 1995-09-15 | 1998-04-07 | Infonautics Corporation | Query word relevance adjustment in a search of an information retrieval system |
US5790978A (en) | 1995-09-15 | 1998-08-04 | Lucent Technologies, Inc. | System and method for determining pitch contours |
JPH0981320A (en) | 1995-09-20 | 1997-03-28 | Matsushita Electric Ind Co Ltd | Pen input type selection input device and method therefor |
US5771276A (en) | 1995-10-10 | 1998-06-23 | Ast Research, Inc. | Voice templates for interactive voice mail and voice response system |
US5884323A (en) | 1995-10-13 | 1999-03-16 | 3Com Corporation | Extendible method and apparatus for synchronizing files on two different computer systems |
US20030051136A1 (en) | 1995-11-06 | 2003-03-13 | Pavel Curtis | Multimedia coordination system |
US5799276A (en) | 1995-11-07 | 1998-08-25 | Accent Incorporated | Knowledge-based speech recognition system and methods having frame length computed based upon estimated pitch period of vocalic intervals |
JPH09146708A (en) | 1995-11-09 | 1997-06-06 | Internatl Business Mach Corp <Ibm> | Driving method for touch panel and touch input method |
JP3152871B2 (en) | 1995-11-10 | 2001-04-03 | 富士通株式会社 | Dictionary search apparatus and method for performing a search using a lattice as a key |
US6064959A (en) | 1997-03-28 | 2000-05-16 | Dragon Systems, Inc. | Error correction in speech recognition |
US5794237A (en) | 1995-11-13 | 1998-08-11 | International Business Machines Corporation | System and method for improving problem source identification in computer systems employing relevance feedback and statistical source ranking |
US5799279A (en) | 1995-11-13 | 1998-08-25 | Dragon Systems, Inc. | Continuous speech recognition of text and commands |
US5802526A (en) | 1995-11-15 | 1998-09-01 | Microsoft Corporation | System and method for graphically displaying and navigating through an interactive voice response menu |
US5801692A (en) | 1995-11-30 | 1998-09-01 | Microsoft Corporation | Audio-visual user interface controls |
US6240384B1 (en) | 1995-12-04 | 2001-05-29 | Kabushiki Kaisha Toshiba | Speech synthesis method |
US5987401A (en) | 1995-12-08 | 1999-11-16 | Apple Computer, Inc. | Language translation for real-time text-based conversations |
US5880731A (en) | 1995-12-14 | 1999-03-09 | Microsoft Corporation | Use of avatars with automatic gesturing and bounded interaction in on-line chat session |
US5761640A (en) | 1995-12-18 | 1998-06-02 | Nynex Science & Technology, Inc. | Name and address processor |
US5706442A (en) | 1995-12-20 | 1998-01-06 | Block Financial Corporation | System for on-line financial services using distributed objects |
JPH09179719A (en) | 1995-12-26 | 1997-07-11 | Nec Corp | Voice synthesizer |
US5787422A (en) | 1996-01-11 | 1998-07-28 | Xerox Corporation | Method and apparatus for information accesss employing overlapping clusters |
AU1836297A (en) | 1996-01-17 | 1997-08-11 | Personal Agents, Inc. | Intelligent agents for electronic commerce |
US6119101A (en) | 1996-01-17 | 2000-09-12 | Personal Agents, Inc. | Intelligent agents for electronic commerce |
US6125356A (en) | 1996-01-18 | 2000-09-26 | Rosefaire Development, Ltd. | Portable sales presentation system with selective scripted seller prompts |
US6011585A (en) | 1996-01-19 | 2000-01-04 | Apple Computer, Inc. | Apparatus and method for rotating the display orientation of a captured image |
JPH09265731A (en) | 1996-01-24 | 1997-10-07 | Sony Corp | Speech reproducing device and its method, speech recording device and its method, speech recording and reproducing system, speech data transfer method, information receiving device, and reproducing device |
US5987404A (en) | 1996-01-29 | 1999-11-16 | International Business Machines Corporation | Statistical natural language understanding using hidden clumpings |
US5729694A (en) | 1996-02-06 | 1998-03-17 | The Regents Of The University Of California | Speech coding, reconstruction and recognition using acoustics and electromagnetic waves |
US6535610B1 (en) | 1996-02-07 | 2003-03-18 | Morgan Stanley & Co. Incorporated | Directional microphone utilizing spaced apart omni-directional microphones |
US6076088A (en) | 1996-02-09 | 2000-06-13 | Paik; Woojin | Information extraction system and method using concept relation concept (CRC) triples |
US5737487A (en) | 1996-02-13 | 1998-04-07 | Apple Computer, Inc. | Speaker adaptation based on lateral tying for large-vocabulary continuous speech recognition |
US5864868A (en) | 1996-02-13 | 1999-01-26 | Contois; David C. | Computer control system and user interface for media playing devices |
US5835893A (en) | 1996-02-15 | 1998-11-10 | Atr Interpreting Telecommunications Research Labs | Class-based word clustering for speech recognition using a three-level balanced hierarchical similarity |
FI102343B (en) | 1996-02-20 | 1998-11-13 | Sonera Oyj | System and method for transmitting data |
GB2310559B (en) | 1996-02-23 | 2000-09-20 | Nokia Mobile Phones Ltd | Audio output apparatus for a mobile communication device |
US5864855A (en) | 1996-02-26 | 1999-01-26 | The United States Of America As Represented By The Secretary Of The Army | Parallel document clustering process |
JPH11504734A (en) | 1996-02-27 | 1999-04-27 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | Method and apparatus for automatic speech segmentation into pseudophone units |
US5895448A (en) | 1996-02-29 | 1999-04-20 | Nynex Science And Technology, Inc. | Methods and apparatus for generating and using speaker independent garbage models for speaker dependent speech recognition purpose |
US6226533B1 (en) | 1996-02-29 | 2001-05-01 | Sony Corporation | Voice messaging transceiver message duration indicator and method |
US5842165A (en) | 1996-02-29 | 1998-11-24 | Nynex Science & Technology, Inc. | Methods and apparatus for generating and using garbage models for speaker dependent speech recognition purposes |
US6069622A (en) | 1996-03-08 | 2000-05-30 | Microsoft Corporation | Method and system for generating comic panels |
GB9605216D0 (en) | 1996-03-12 | 1996-05-15 | Ncr Int Inc | Display system and method of moving a cursor of the display system |
JP3160707B2 (en) | 1996-03-22 | 2001-04-25 | 富士通株式会社 | Data transmitting / receiving device, data transmitting device, and data receiving device |
JPH09265457A (en) | 1996-03-29 | 1997-10-07 | Hitachi Ltd | On-line conversation system |
JP4218982B2 (en) | 1996-03-29 | 2009-02-04 | ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー | Audio processing |
US5901287A (en) | 1996-04-01 | 1999-05-04 | The Sabre Group Inc. | Information aggregation and synthesization system |
US5790671A (en) | 1996-04-04 | 1998-08-04 | Ericsson Inc. | Method for automatically adjusting audio response for improved intelligibility |
US5867799A (en) | 1996-04-04 | 1999-02-02 | Lang; Andrew K. | Information system and method for filtering a massive flow of information entities to meet user information classification needs |
US6173194B1 (en) | 1996-04-15 | 2001-01-09 | Nokia Mobile Phones Limited | Mobile terminal having improved user interface |
US5987140A (en) | 1996-04-26 | 1999-11-16 | Verifone, Inc. | System, method and article of manufacture for secure network electronic payment and credit collection |
US5963924A (en) | 1996-04-26 | 1999-10-05 | Verifone, Inc. | System, method and article of manufacture for the use of payment instrument holders and payment instruments in network electronic commerce |
US5913193A (en) | 1996-04-30 | 1999-06-15 | Microsoft Corporation | Method and system of runtime acoustic unit selection for speech synthesis |
US5857184A (en) | 1996-05-03 | 1999-01-05 | Walden Media, Inc. | Language and method for creating, organizing, and retrieving data from a database |
US5828999A (en) | 1996-05-06 | 1998-10-27 | Apple Computer, Inc. | Method and system for deriving a large-span semantic language model for large-vocabulary recognition systems |
FR2748342B1 (en) | 1996-05-06 | 1998-07-17 | France Telecom | METHOD AND DEVICE FOR FILTERING A SPEECH SIGNAL BY EQUALIZATION, USING A STATISTICAL MODEL OF THIS SIGNAL |
US5917487A (en) | 1996-05-10 | 1999-06-29 | Apple Computer, Inc. | Data-driven method and system for drawing user interface objects |
US5826261A (en) | 1996-05-10 | 1998-10-20 | Spencer; Graham | System and method for querying multiple, distributed databases by selective sharing of local relative significance information for terms related to the query |
US6366883B1 (en) | 1996-05-15 | 2002-04-02 | Atr Interpreting Telecommunications | Concatenation of speech segments by use of a speech synthesizer |
US5758314A (en) | 1996-05-21 | 1998-05-26 | Sybase, Inc. | Client/server database system with methods for improved soundex processing in a heterogeneous language environment |
US5727950A (en) | 1996-05-22 | 1998-03-17 | Netsage Corporation | Agent based instruction system and method |
US6556712B1 (en) | 1996-05-23 | 2003-04-29 | Apple Computer, Inc. | Methods and apparatus for handwriting recognition |
US5848386A (en) | 1996-05-28 | 1998-12-08 | Ricoh Company, Ltd. | Method and system for translating documents using different translation resources for different portions of the documents |
US5850480A (en) | 1996-05-30 | 1998-12-15 | Scan-Optics, Inc. | OCR error correction methods and apparatus utilizing contextual comparison |
JP2856390B2 (en) | 1996-07-26 | 1999-02-10 | 株式会社日立製作所 | Information recording medium and recording / reproducing method using the same |
US5966533A (en) | 1996-06-11 | 1999-10-12 | Excite, Inc. | Method and system for dynamically synthesizing a computer program by differentially resolving atoms based on user context data |
US5915249A (en) | 1996-06-14 | 1999-06-22 | Excite, Inc. | System and method for accelerated query evaluation of very large full-text databases |
US5987132A (en) | 1996-06-17 | 1999-11-16 | Verifone, Inc. | System, method and article of manufacture for conditionally accepting a payment method utilizing an extensible, flexible architecture |
US5832433A (en) | 1996-06-24 | 1998-11-03 | Nynex Science And Technology, Inc. | Speech synthesis method for operator assistance telecommunications calls comprising a plurality of text-to-speech (TTS) devices |
JP2973944B2 (en) | 1996-06-26 | 1999-11-08 | 富士ゼロックス株式会社 | Document processing apparatus and document processing method |
US5912952A (en) | 1996-06-27 | 1999-06-15 | At&T Corp | Voice response unit with a visual menu interface |
US5802466A (en) | 1996-06-28 | 1998-09-01 | Mci Communications Corporation | Personal communication device voice mail notification apparatus and method |
US5825881A (en) | 1996-06-28 | 1998-10-20 | Allsoft Distributing Inc. | Public network merchandising system |
US6070147A (en) | 1996-07-02 | 2000-05-30 | Tecmark Services, Inc. | Customer identification and marketing analysis systems |
US6054990A (en) | 1996-07-05 | 2000-04-25 | Tran; Bao Q. | Computer system with handwriting annotation |
US5915238A (en) | 1996-07-16 | 1999-06-22 | Tjaden; Gary S. | Personalized audio information delivery system |
CN1231039B (en) | 1996-07-22 | 2011-08-24 | Cyva研究公司 | Personal information security and exchange tool |
US5862223A (en) | 1996-07-24 | 1999-01-19 | Walker Asset Management Limited Partnership | Method and apparatus for a cryptographically-assisted commercial network system designed to facilitate and support expert-based commerce |
US6453281B1 (en) | 1996-07-30 | 2002-09-17 | Vxi Corporation | Portable audio database device with icon-based graphical user-interface |
KR100260760B1 (en) | 1996-07-31 | 2000-07-01 | 모리 하루오 | Information display system with touch panel |
US5818924A (en) | 1996-08-02 | 1998-10-06 | Siemens Business Communication Systems, Inc. | Combined keypad and protective cover |
US5797008A (en) | 1996-08-09 | 1998-08-18 | Digital Equipment Corporation | Memory storing an integrated index of database records |
US5765168A (en) | 1996-08-09 | 1998-06-09 | Digital Equipment Corporation | Method for maintaining an index |
US7113958B1 (en) | 1996-08-12 | 2006-09-26 | Battelle Memorial Institute | Three-dimensional display of document set |
US6298174B1 (en) | 1996-08-12 | 2001-10-02 | Battelle Memorial Institute | Three-dimensional display of document set |
US5818451A (en) | 1996-08-12 | 1998-10-06 | International Busienss Machines Corporation | Computer programmed soft keyboard system, method and apparatus having user input displacement |
US7191135B2 (en) | 1998-04-08 | 2007-03-13 | Symbol Technologies, Inc. | Speech recognition system and method for employing the same |