CROSS-REFERENCE TO RELATED APPLICATION(S)This application claims the benefit of U.S. Provisional Application No. 62/297,076 filed on Feb. 18, 2016, which is incorporated by reference herein.
BACKGROUNDIncreasing popularity of portable electronics demands that electronic devices become capable of handling more functions. One of the areas of development is human-machine interaction based on voice or motion. When a user provides a request to a machine by providing a voice command instead of touching or typing on a visual display, a user's interaction with a machine becomes more similar to human-to-human interaction, therefore being more natural and intuitive.
One of the challenges in implementing the human-machine voice communication is knowing when the machine should be waiting for a user command. As it is seldom the case that a user is constantly and continuously talking to his machine, it is not efficient for the machine to be constantly listening for commands. However, it is equally important that the machine not miss a communication from a user when it comes. Existing voice interaction engines such as AMAZON ECHO® and GOOGLE NOW™ address this problem by requiring a trigger word from the user as a signal to the machine to receive a user command of the trigger word. This trigger-word mechanism prevents false triggering and saves processing power. However, it has the disadvantage of feeling unnatural to the user, who has to say the trigger word every time he wants to interact with his machine.
Apple's Siri voice engine does not require a trigger word but instead relies on a button touch to start waiting for a user command. While some users may prefer this touch-based initiation to trigger words, neither option is ideal as they both require the user to do something that he would not do when interacting with another human. A more natural way of initiating machine interaction without wasting processing power or compromising accuracy is desired.
SUMMARYIn one aspect, the present disclosure pertains to a device for interacting with a user. The device includes a target area, a sensor coupled to the target area, a processor coupled to the sensor, and an input engine. The sensor detects whether a human is present in a predefined proximity region and detects a direction of visual attention given by the human in the predefined proximity region. The processor makes a determination that the user's visual attention is in a direction of the target area for a minimum visual contact period, and based on this determination, the input engine is activated.
In another aspect, the present disclosure pertains to a method of transitioning an input engine from sleep mode to interactive mode. The method includes identifying a user eye, determining a direction of user's visual attention based on movement of the eye; and activating an input engine to receive input if the visual attention is in a predefined direction for a minimum visual contact period.
In yet another aspect, the present disclosure pertains to a non-transitory computer-readable medium storing instructions for executing the above method.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 depicts an interactive device according to one embodiment.
FIG. 2 depicts a situation where the user's visual attention is not on the target area.
FIG. 3 depicts a situation where the user's visual attention is on the target area.
FIG. 4 is a flowchart depicting how the device decides to transition from sleep mode to interactive mode according to one embodiment.
FIG. 5 is a flowchart depicting how the device decides to transition from interactive mode to sleep mode according to one embodiment.
FIG. 6 depicts an exemplary device according to one embodiment.
FIG. 7A andFIG. 7B depict an exploded view and a perspective view, respectively, of components within the device in accordance with one embodiment.
FIG. 8A andFIG. 8B depict a rotation range of the exemplary device according to one embodiment.
FIG. 9A andFIG. 9B illustrate a rotation range of the device according to another embodiment.
FIG. 10 depicts an exemplary block diagram of the system architecture according to one embodiment.
FIG. 11 depicts an exemplary block diagram of NLU engine architecture according to one embodiment.
FIG. 12 depicts an exemplary block diagram of hardware architecture of the device according to one embodiment.
FIG. 13 depicts an exemplary block diagram of robotic architecture of the present device according to one embodiment.
FIG. 14 depicts an exemplary flow chart of performing a desired motion by the device according to one embodiment.
FIG. 15 depicts an exemplary code sample for motion API.
FIG. 16 depicts an exemplary timing diagram for servo motor pulse width modulation (PWM) according to one embodiment.
FIG. 17 depicts an exemplary block diagram of the present system according to one embodiment.
FIG. 18 depicts an exemplary diagram of connecting the device to multiple secondary devices according to one embodiment.
FIG. 19 depicts an exemplary diagram of a multi-modality display feature in the device according to one embodiment.
DETAILED DESCRIPTIONThe system and method disclosed herein detects human visual attention and uses it to initiate human-machine interaction. With the visual attention-based initiation method, a user would not need to take an unnatural step of manually starting the interaction by saying or doing something he would not do if he were interacting with another human person. The machine may give a signal to the user that it is listening when the machine recognizes the visual attention as being directed at it.
FIG. 1 depicts aninteractive device10 according to one embodiment. As shown, thedevice10 includes atarget area20, asensor30, aprocessor40, amicrophone50, and aspeaker60 connected to one another. Thesensor20 may be any sensor capable of proximity sensing and eye tracking, including but not limited to a camera, an infrared sensor, or a laser sensor. Theprocessor40 may use any suitable computer vision algorithm to determine a user's proximity to thedevice10 and to determine the direction of the user's visual attention. Thetarget area20 may have a display device or some other component that would cause the user to look at it when he wants to interact with thedevice10. For example, where thedevice10 is a robot, thetarget area20 may be made to look like the robot's face with eyes. Thesensor20 may be positioned behind or near thetarget area20 to accurately track the user's visual attention. In some embodiments, there may bemultiple sensors20 positioned in different parts of thedevice10.
FIG. 2 depicts a situation where the user's visual attention is not on thetarget area20. Theprocessor30 of thedevice10 periodically checks to see if a user is looking at it, and if not, it remains in sleep mode.
FIG. 3 depicts a situation where the user's visual attention is on thetarget area20. Upon determining that the user's visual attention is on thetarget area20, the processor transitions thedevice10 from sleep mode to interactive mode. In interactive mode, themicrophone50 is activated to receive user's voice. In the particular example ofFIG. 3, an image of a microphone is shown on thetarget area20 to let the user know that thedevice10 is in interactive mode and listening.
FIG. 4 is a flowchart depicting how thedevice10 decides to transition from sleep mode to interactive mode in accordance with one embodiment. As mentioned before, thesensor20 periodically (e.g., at a regular time interval such as every few seconds) checks to see if there is a potential user in its proximity (at 100). Upon determining that there is a user in proximity (e.g., within a predetermined distance), thesensor20 locates the user's eye(s) and determines the direction of the user's visual attention or gaze (at 110). If the user looks in the direction of thetarget area20 for a preset minimum visual contact period (e.g., 3 seconds) (at 120), processor transitions thedevice10 into interactive mode (at 130). In the interactive mode, the microphone and voice input engine are triggered and thedevice10 waits for a voice command from the user. If, on the other hand, the user is not looking at the device10 (at 120), theprocessor30 continually checks to see if the user's visual attention is now directed at thedevice10.
Upon the device's transition to interactive mode (at 130), a signal may be generated to let the user know that the interactive mode is ON and thedevice10 is listening (at 140). The signal may be visual, such as an image of a microphone being displayed, the eyes of a robot becoming brighter, and the color or brightness of thetarget area20 changing. The signal may be an audio signal, such as a short chime sound or a word “Hi” generated by thespeaker60. The signal may include a movement of a part of thedevice10. For example, where thedevice10 is a robot, the robot may tilt, raise, or turn its head or change its facial expression (e.g., eyes open wider, quick two blinks of the eyes). In an embodiment where there aremultiple sensors20, if the user is behind or to the side of the robot's front face, the robot may turn around to “look at” the user to signal that it is in interactive mode.
Although the description herein focuses on voice interaction, the device and method described herein is not limited to visual attention triggering only voice interaction. In some embodiments, once thedevice10 is in interactive mode, it may be ready to receive and process visual/motion input (e.g., a wink, a wave of a finger, and pointing of a finger) or temperature input as well as audio input. Suitable types of sensors may be incorporated into thedevice10 to allow the desired type of input to be received and processed.
FIG. 5 is a flowchart depicting how thedevice10 decides to transition from interactive mode to sleep mode in accordance with one embodiment. As shown, there may be more than one trigger for transitioning from interactive mode to sleep mode. In the particular embodiment that is depicted, hearing a trigger word like “Bye” or a phrase like “Talk to you later” or “See you later” (at 210) may cause the transition. Thesensor20, which may continually be monitoring the user's proximity even in interactive mode, may detect that the user has walked away outside the predefined interaction distance from the device10 (at 220), and this detection may cause the transition. Also, as mentioned above, themicrophone50 is activated in interactive mode. When no voice is received by themicrophone50 for a predetermined length of time Δt (at 230), theprocessor30 may conclude that the interaction is over and transition to sleep mode (at 240). Depending on the embodiment, one of these conditions being satisfied may trigger the transition to sleep mode or it may take at least two of these conditions being fulfilled for the transition to occur.
In one embodiment, thedevice10 is implemented as a robotic companion device that may include being an emotive personal assistant, a smart home hub, and an Internet Protocol (IP) camera. Thedevice10 may include far-field voice recognition capability and natural language understanding, a knowledge engine to answer different questions in different types of domains (e.g., weather, general knowledge, traffic, sports, and news), an Internet of Things (IOT) hub functionality to control other devices such as light and thermostat and send notifications from various sensors, a user interface configured to display animations and emotional expressions, and a camera for monitoring the surroundings (e.g., a home). This camera may be a high-definition (HD) camera for wide angle viewing that is separate from thesensor20.
An example robotic companion device may include the following hardware components:
- A system-on-chip (SOC)/central processing unit (CPU) (e.g., SAMSUNG™ ARTIK™ 5) that runs the system and controls software and includes connectivity;
- A camera, such as an 1080-pixel IP camera (e.g., OV2718) that provides multi-axis camera movement for streaming and security features;
- A display screen such as a curved/flat display (e.g., a 2-inch screen, 360×480 resolution, 300 pixels per inch (PPI)) that displays notifications and animations;
- A speaker (e.g., 2 watts) to play music and also play back text to speech response;
- A motor (e.g., 4 brushless direct current (DC) gear motors) to drive movements;
- An encoder/potentiometer (e.g., 4 rotary encoders or potentiometers) to precisely control movements;
- A motor drive board to drive the motors;
- A microphone array (e.g., 2-6 array microphone system with noise cancellation digital signal processing) to receive voice input and enable accurate and reliable far-field voice recognition;
- A charging dock;
- A gear box (e.g., 4 high-torque gear assemblies) that provides adequate torque and speed to provide smooth movements;
- A Gimbal/Stewart platform that provides a desired range and degrees of motion for the interactive device;
- A pinion (e.g., 2-pinion gears) that transfer and provide coupling with actuated parts;
- A support shaft (e.g., 2 support shafts) that provide support and coupling with actuated parts;
- A speaker mesh (e.g., 1 metal round hole mesh) that provides aesthetic and acoustic enhancements; and
- A plastic shell body (e.g., 2 plastic outer shell pieces) as the exterior surface of the interactive device to provide protection.
FIG. 6 depicts anexemplary device10 in accordance with one embodiment. Thedevice10 as shown includes ahead11 and abody12. Thehead11 includes ahead shell13 and thetarget area20 that includes a user interface (UI). Thesensor30, which is a camera in this particular embodiment, is positioned behind and on the inside of thetarget area20. Themicrophone50 is positioned to the side of thetarget area20 to resemble “ears.” In this particular embodiment, thespeaker60 is positioned near thebody12. It should be understood that the components of theinteractive device10 may be arranged differently without deviating from the scope of this disclosure. It should also be understood that while the description focuses on an embodiment of thedevice10 that is a robotic companion, this is not a limitation and thedevice10 may be any electronic device.
FIG. 7A andFIG. 7B depict an exploded view and a perspective view, respectively, of components within thedevice10 in accordance with one embodiment. As shown, thedevice10 rests on abase300 for stability, and hasrollers302 that allows thebody12 to swivel. There are a plurality of stepper motors to enable movement of various parts: afirst stepper motor304 for head rotation, a set ofsecond stepper motors306 for head tilting, and athird stepper motor308 for body rotation.Geared neck sub-assembly310 andPCB sub-assembly312 are incorporated into thedevice10, as are a head tilt-control arm314 coupled to the headtilt control gear316.
FIG. 8A andFIG. 8B illustrate a rotation range of theexemplary device10 in accordance with one embodiment. This example embodiment includes abody12 that is configured to rotate about a y-axis with a total of 300 degrees of movement (+150 degrees to −150 degrees) while thebase300 and thehead11 remain in position. Thehead11 and thebody12 can be controlled separately.FIG. 8B illustrates another embodiment in which thehead11 rotates about a y-axis by a total of 100 degrees of movement (+50 degrees to −50 degrees) while thebody12 remains in position. It should be understood that both the body rotation depicted inFIG. 8A and the head rotation depicted inFIG. 8B may be combined into a single embodiment.
FIG. 9A andFIG. 9B illustrate a rotation range of theinteractive device10 in accordance with another embodiment. In the embodiment ofFIG. 9A, thehead11 is configured to rotate about a z-axis with a total of 50 degrees of movement (+25 degrees to −25 degrees). In the embodiment ofFIG. 9B, thehead11 is able to rotate about the x-axis as though thehead11 is tilting back and forth.
FIG. 10 depicts an exemplary block diagram of the system architecture in accordance with one embodiment. The system includes a main application process module350 that communicates with a motioncontrol process module360. The main application process350 includes abehavior tree module354, a natural language understanding (NLU) engine356, and a web real-time communications (webRTC) peer-to-peer (P2P)video streaming module358. Thebehavior tree module354 manages and coordinates all motor commands to create a desired display and a desired motor animation. The NLU engine356 processes speech input that includes performing signal enhancement, speech recognition, NLU, service integration, and text-to-speech (TTS) response. The webRTC P2Pvideo streaming module358 manages the video stream from the interactive device to various sources and companion applications.
The motioncontrol process module360 includes a proportional-integral-derivative (PID)controller364 and asensor hub366. The PID controller controls a plurality of motors (e.g., 4 motors) precisely using a feedback loop and uses analog positional encoders to accurately track motion. Thesensor hub366 provides sound source localization using energy estimation, and may be used to send other sensor events to the main application process module350.
FIG. 11 depicts an exemplary block diagram of NLU engine356 architecture in accordance with one embodiment. The NLU engine356 may provide signal enhancement by enhancing the accuracy and enabled far-field voice recognition. The NLU engine356 uses multiple microphone arrays to perform beam forming to identify the sound source, then uses the direction information of the sound source to cancel out noise from other directions. This function improves overall speech recognition accuracy.
The NLU engine356 may further provide speech recognition by converting the enhanced speech signal into text based on a well-defined corpus of training data to identify the right word and sentence compositions. The NLU engine356 may further provide NLU to map the recognized text to perform a desired action using NLU tools. The NLU tools can map different phrases and language constructs that imply the same intent to a desired action. For example, the NLU engine356 receives a voice message from a user, “What is the weather in San Jose?” The NLU engine356 provides NLU to the voice message to derive an intent “weather,” and intent parameter “San Jose,” and performs a desired action to fetch weather data for San Jose, e.g. from YAHOO™ Weather.
Once the NLU engine356 identifies the desired action based on the type of action, the system fetches data from different service/content providers. For example, the NLU engine356 provides service integration with a plurality of content providers such as a weather query from YAHOO Weather, a knowledge query from WOLFRAIVIALPHA®, a smart home query from SMARTTHINGS™ API, a news query from NPR™ news, and a sports query from STATS™. The present system formats the data so that a TTS engine uses the data to output a reply to the user via a speaker with a natural tone and speed. For example, the present system formats a data reply, “The weather in San Jose today is Sunny, with High of 54 and a Low of 43degrees” to output the data reply as an audio message via the speaker.
FIG. 12 depicts an exemplary block diagram of hardware architecture of thedevice10 in accordance with one embodiment.FIG. 12 is a more specific embodiment of what is depicted inFIG. 1, and shows theApplication processor40 as being in communication with the target area20 (which is a display device in this embodiment), the sensor30 (which is an HD camera in this embodiment), a microphone50 (which is part of a microphone array in this embodiment), andspeakers60. For the embodiment ofFIG. 12, theprocessor40 also communicates with a QuadChannel Motor driver70, which in turn controls aneck motor72, awaist motor74, aleft support motor76, and aright support motor78. Theprocessor40 may also communicate withencoders80 andZigbee radio85.
FIG. 13 depicts an exemplary block diagram of robotic architecture of the present device in accordance with one embodiment. As shown, the SOC host computer communicates with the controller to move different parts of thedevice10. A ServoEaser library may be used to smooth motor movements by giving acceleration effect.
FIG. 14 depicts an exemplary flow chart of performing a desired motion by thedevice10, in accordance with one embodiment. Thedevice10 includes a plurality of motion command application interfaces (APIs) to perform a respective desired action. For example, a motion command “B1, 30.2, 3” means theinteractive device10 performs a “neckForward” function to 30.2 degrees (relative angle) with a speed level of 3. In another example, a motion command “E1” means the interactive device performs a “happy1” function.FIG. 15 depicts an exemplary code sample for motion API.
FIG. 16 depicts an exemplary timing diagram for servo motor pulse width modulation (PWM) in accordance with one embodiment. The servo driver board has PID control to stabilize motor rotation. The real time angle values are selected using a potentiometer.
FIG. 17 depicts an exemplary block diagram of the present system in accordance with one embodiment. In this embodiment, thedevice10 provide security by monitoring users and activity within a boundary area (e.g., within a home), provides a connectivity to other devices and appliances, and provides direct interfacing for queries and tasks. For example, let's suppose the presentinteractive device10 receives a voice input from a user to pre-heat an oven to 180 degrees. Theinteractive device10 communicates with the oven device to turn on the oven at 180 degrees setting and further provides the user with an audio reply to confirm that the oven has been set to 180 degrees. Thedevice10 may further receive an acknowledgement message from the oven that that oven has reached 180 degrees so theinteractive device10 can send a second audio reply to the user to notify him that the oven has reached 180 degrees.
According to one embodiment, thedevice10 is further connected to one or more secondary devices to receive or provide information to the secondary device.FIG. 18 depicts an exemplary diagram of connecting thedevice10 to multiple secondary devices in accordance with one embodiment. Thedevice10 may be wirelessly connected to each secondary device via a Wi-Fi connection or a Bluetooth connection. The secondary device includes a video camera, a microphone array, and a speaker. For example, a video camera of the secondary device captures and detects a broken window. The secondary device sends the image of the broken window to thepresent device10 that may further transmit the image to the user's mobile device.
In accordance with one embodiment, thedevice10 provides a multi-modality display system to project visual content (e.g., a movie, information, a UI element) on areas with a different display mode.FIG. 19 depicts an exemplary diagram of a multi-modality display feature in thedevice10 in accordance with one embodiment. Thedevice10 may include an optical projector that is placed within thehead shell13 with the lens of the projector facing up. A curved projector screen may be installed on the internal curved surface of thehead shell13. In one embodiment, the head projector to either the curved projector screen on the internal curved surface of thehead shell13 or a surface (e.g., a wall surface) that is external to thedevice10. Thehead shell13 may include a transparent window portion so that the projector can project the visual content on an external surface (e.g., a wall) through the transparent window. In one embodiment, the multi-path optical guide assembly is a rotatable mirror. The optical guide assembly may direct light from the project to the curved projector to display various UI elements, e.g. eyes, and facial expressions. The optical guide assembly may direct light to the surface external to the present interactive device to display visual content such as information and media (e.g., a movie).
According to one embodiment, thedevice10 includes one or more sensors to determine whether to project visual content on the curved projector screen or to the wall based on various decision factors including but not limited to user distance, a type of visual content (e.g., a movie), and a specified usage parameter. For example, if the present interactive device detects a user who is relatively close based on the user being within a predefined threshold radius, the presentinteractive device10 displays the visual content on the curved projector screen. In another example, if the type of visual content is a movie, thepresent device10 displays the visual content on the wall. Thedevice10 may further determine a mode and a resolution of the projector based on the type of visual content, a proximity to a projection surface, and an optical property of the projector.
In another example, if the camera of thedevice10 detects that the amount of light in a room is too much (too bright) compared to a threshold reference value, thedevice10 displays the visual content on the curved projector screen. The rotation of the optical guide assembly may be implemented by a set of action mechanism and control circuits. To give a smooth display mode transition, the projector may be dimmed out when the mirror is rotating.
According to another embodiment, thedevice10 provides feedback in response to a voice input by a user to establish that it is engaged for human voice interaction. The feedback includes one or more visual feedback, audio feedback, and movement feedback. For example, when a user provides a trigger voice command such as “Hello,” thedevice10 may tilt itshead shell13 to one side to simulate listening, display wide open eyes on a UI on the head shell as a listening facial expression, and provide a voice feedback. The movement feedback may include raising the head shell and turning thehead shell13 in the direction of the sound source. According to one embodiment, thedevice10 includes a 4-degree of freedom (DOF) mechanical structure design.
As mentioned above, according to another embodiment, the sensor30 (e.g., the camera) in thedevice10 detects that a user is coming closer. Thedevice10 allows thesensor30 to further locate the eye of the user and estimate the visual attention of the user. If thedevice10 determines that the user has sufficient visual contact, thedevice10 triggers the voice input engine and waits for a voice command from the user. According to one embodiment, thedevice10 includes asensor30 and amicrophone array50 to detect a particular user.
According to yet another embodiment, thedevice10 receives a natural gesture input and provides a feedback to the gesture input. Table 1 illustrates various gestures and their associated meaning, and the corresponding feedback from thedevice10.
| TABLE 1 |
|
| Gesture | Meaning | Reaction fromDevice 10 |
|
| Index finger of one hand is extended and | Request for silence | Mutes, or stops moving |
| placed vertically in front of lips, with the |
| remaining fingers curled toward the palm |
| with the thumb forming a fist |
| Connect thumb and forefinger in a circle | Okay | Accepts user commands |
| and hold other fingers up straight | | or executes instructions |
| Index finger sticking out of the clenched | Beckoning | Turns to focus on action |
| fist, palm facing the gesturer. The finger | | issuer from others |
| moves repeated towards the gesturer (in a |
| hook) as though to draw something nearer |
| Natural number one through ten | Number gestures | Inputs number or number- |
| | related commands |
| Raise one hand and then slap hands | High five | Greeting, congratulations |
| together | | or celebration |
| Draw circle and triangle | Alarm state | Communicates with |
| | emergency provider |
|
According to one embodiment, thedevice10 provides multi-user behavior and pattern recognition. Thedevice10 understands group behavior and individual preferences of each user based on interaction with each user. Thedevice10 provides a heuristic method to automatically learn by logging the time of day of interaction, duration of interaction, and a user identifier to determine the user's intrinsic pattern. Thedevice10 may further analyze group interactions between multiple users using a camera, to understand group structure and hierarchy. For example, thedevice10 may classify a group of users sitting at a table as a family having dinner, which is then correlated with other logs such as a time of day and the number of people detected. This allows thedevice10 to determine an average time of day that the family has dinner so that the device can provide information and services such as nutrition information, take-out service, recipes, etc.
In another embodiment, thedevice10 determines that a user has interest in sports based on various factors such as detecting a type of sportswear on the user, and a frequency of voice input from the user associated with a particular sport. Thedevice10 may then provide sports information to the user, such as special events or calendar events.
According to one embodiment, thedevice10 receives haptic and tactile interactions from a user to adjust a behavior, add a feature, control, and convey a message. For example, a user taps thehead shell13 of thedevice13 to convey happiness or satisfaction. Thedevice10 detects the tap on thehead shell13 and changes its movement, animation, and its vocal response to the interaction. According to one embodiment, thedevice10 provides emotion detection using voice, images, and sound to identify a user's emotional state. Thedevice10 may provide a behavior change based on a detected type of music. For example, the speaker of thedevice10 provides a surfer-like voice when surf rock music is playing, and the of the present interactive device displays animations associated with the surf rock genre.
According to one embodiment, thedevice10 synchronizes expression, movements, and output responses for multimodal interaction. Thedevice10 provides various techniques to ensure that each modality of output is synchronized to create the proper effect needed to create a natural interaction with the user. The techniques include buffered query response and preemptive motion cues. Thedevice10 synchronizes and coordinates functions of all the output modalities so that the final actuation is as natural as possible. For example, if the TTS engine's response from the server is slow, thedevice10 includes a controller mechanism that automatically determines that time is required and starts an idle animation on the UI and a synchronized movement that shows a natural waiting behavior.
According to one embodiment, thedevice10 provides automatic security profile creation and notification. Thedevice10 includes a high definition camera, a microphone array, actuators, and speakers to automatically determine and learn the security status of a location based on past history and trigger words. For example, thedevice10 can learn that a desired word (e.g., help, danger) or loud noises (e.g., a sound above a predefined decibel threshold) are indicators for investigation, and switches into a tracking mode. This allows thedevice10 to track the source of the sound/behavior and monitor the source. Thedevice10 may further analyze the voice signature to detect stress or mood.
Thedevice10 further includes a computing module to provide accurate and precise coordination between the computing module and the actuators. The camera and microphone in conjunction with the computing module identifies a position, direction, and a video stream of the area of interest and synchronizes with the actuating motors to keep track of the area of interest. Thedevice10 dynamically determines a point of interest to track, where the point of interest may be a sound or a specific action in the camera feed. According to one embodiment, thedevice10 dynamically selects a desired modality of sensing. For example, the camera of thedevice10 captures a dog barking since the dog is producing a loud uncommon noise and an unusual person moving through the home quietly. Although they are both analogous behavior, thedevice10 dynamically determines that the camera tracks the unusual person rather than the sound emanating from the barking.
According to one embodiment, thedevice10 provides machine-learning based sound source separation and characterization using an actuated microphone array. Sound source separation and acoustic scene analysis involves being able to distinguish different sound sources within a particular acoustic environment. Thedevice10 uses the microphone array that can be actuated based on a combination of beam forming and blind source separation techniques to identify the approximate location of different sound sources and then determine their general category type based on the supervised machine-learning model.
The actuated microphone array allows thedevice10 to create a dynamic acoustic model of the environment. Thedevice10 updates the acoustic model and feeds data from the acoustic model into a blind source separation model that determines and learns different sound sources within the environment after a period of time. For example, thedevice10 detects that there is a consistent buzz everyday at a specific time of the day. Thedevice10 has a trained model having common acoustic signals for common household noises (e.g., a sound of a blender running). Thedevice10 uses the trained model to determine and identify that the consistent buzz is potentially the sound of a blender. Thedevice10 can use the identified blender sound to create an acoustic map of the surrounding environment. Thedevice10 can associate the identified blender sound with a kitchen location. Thus, thedevice10 can determine a geographical location of the kitchen based on the direction of the blender sound (using beam forming and localizing the blender sound). Thedevice10 may further analyze other sound sources within the surrounding environment to infer other sound sources and their respective locations; for example, a TV is associated with a living room and an air vent is associated with a ceiling. This allows better noise canceling and acoustic echo cancellation, and further enables thedevice10 to create a model of the surrounding environment to facilitate other tasks carried out by thedevice10.
In one embodiment, thedevice10 detects a blender sound and does not identify the blender sound, thedevice10 prompts the user to respond and identify the blender sound. The user may respond with a voice input that identifies the sound, for example “a blender.” Thedevice10 receives the voice input, identifies the voice input as “blender” word, associates word with the blender sound, and stores this association.
According to one embodiment, thedevice10 provides automatic kinematic movement and behavior creation based on manipulation of thedevice10 by a user. This allows thedevice10 to create a new actuated motion or a behavior. The user may begin the creation of a new motion behavior by setting thedevice10 to a learning mode. Once the learning mode is initiated, the user moves an actuated part of thedevice10 to a desired location at a desired speed (as if controlling thedevice10 by hand, this may be either a single pose or a combination of different poses to create a behavior sequences). The user assigns a name to the behavior and identifies one or more key frames. Thedevice10 registers the behavior, and can execute the motion or poses associated with the behavior automatically.
According to one embodiment, thedevice10 further provides inferred pose estimation of the robot based on a visual cue. A user may provide thedevice10 with a movement/behavior by articulating a movement with a similar degree of freedom as thedevice10. Thedevice10 captures the movement with an inbuilt camera, analyzes the captured movement, automatically infers the movement, and determines a method of achieving the movement using its actuation mechanism. For example, thedevice10 captures a video feed of a pose performed by a user. Thedevice10 analyzes the video feed of the pose, and determines the specific poses, angle, and speed at which the actuating motors need to be triggered to create a closest approximation of the pose. According to one embodiment, thedevice10 learns language based on voice, face, and lip recognition.
The present disclosure may be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. In this disclosure, example embodiments are described in detail with reference to the accompanying drawings, in which like reference numbers refer to like elements throughout. The present disclosure, however, may be embodied in various different forms, and should not be construed as being limited to only the illustrated embodiments herein. Rather, these embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey the aspects and features of the present disclosure to those skilled in the art. Accordingly, processes, elements, and techniques that are not necessary to those having ordinary skill in the art for a complete understanding of the aspects and features of the present disclosure may not be described. In the drawings, the relative sizes of elements, layers, and regions may be exaggerated for clarity.
It will be understood that, although the terms “first,” “second,” “third,” etc., may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are used to distinguish one element, component, region, layer or section from another element, component, region, layer or section. Thus, a first element, component, region, layer or section described below could be termed a second element, component, region, layer or section, without departing from the scope of the present disclosure.
The electronic devices or any other relevant devices or components according to embodiments of the present disclosure described herein may be implemented utilizing any suitable hardware, firmware (e.g., an application-specific integrated circuit), software, or a combination of software, firmware, and hardware. For example, the various components of these devices may be formed on one integrated circuit (IC) chip or on separate IC chips. Further, the various components of these devices may be implemented on a flexible printed circuit film, a tape carrier package (TCP), a printed circuit board (PCB), or formed on one substrate. Further, the various components of these devices may be a process or thread, running on one or more processors, in one or more computing devices, executing computer program instructions and interacting with other system components for performing the various functionalities described herein. The computer program instructions are stored in a memory which may be implemented in a computing device using a standard memory device, such as, for example, a random access memory (RAM). The computer program instructions may also be stored in other non-transitory computer readable media such as, for example, a CD-ROM, flash drive, or the like. Also, a person of skill in the art should recognize that the functionality of various computing devices may be combined or integrated into a single computing device, or the functionality of a particular computing device may be distributed across one or more other computing devices without departing from the spirit and scope of the exemplary embodiments of the present disclosure.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present disclosure belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present specification, and should not be interpreted in an idealized or overly formal sense, unless expressly so defined herein.
Some portions of the above descriptions are presented in terms of algorithms and/or symbolic representations of operations on data bits that may occur within a computer/server memory. These descriptions and representations are used by those skilled in the art of data compression to convey ideas, structures, and methodologies to others skilled in the art. An algorithm is a self-consistent sequence for achieving a desired result and requiring physical manipulations of physical quantities, which may take the form of electro-magnetic signals capable of being stored, transferred, combined, compared, replicated, reproduced, and otherwise manipulated. Such signals may be referred to as bits, values, elements, symbols, characters, terms, numbers, or the like. These and similar terms are associated with appropriate physical quantities, and are used as representative labels for these quantities. Accordingly, terms such as “processing,” “computing,” “calculating,” “determining,” “displaying” or the like, refer to the action and processes of a computing device or system that manipulates data represented as physical quantities within registers/memories into other data that is also represented by stored/transmitted/displayed physical quantities.
While the embodiments are described in terms of a method or technique, it should be understood that aspects of the disclosure may also cover an article of manufacture that includes a non-transitory computer readable medium on which computer-readable instructions for carrying out embodiments of the method are stored. The computer readable medium may include, for example, semiconductor, magnetic, opto-magnetic, optical, or other forms of computer readable medium for storing computer readable code. Further, the disclosure may also cover apparatuses for practicing embodiments of the system and method disclosed herein. Such apparatus may include circuits, dedicated and/or programmable, to carry out operations pertaining to embodiments.
Examples of such apparatus include a general purpose computer and/or a dedicated computing device when appropriately programmed and may include a combination of a computer/computing device and dedicated/programmable hardware circuits (such as electrical, mechanical, and/or optical circuits) adapted for the various operations pertaining to the embodiments.