WO2013150076A1 - Robot apte a integrer des dialogues naturels avec un utilisateur dans ses comportements, procedes de programmation et d'utilisation dudit robot - Google Patents

Robot apte a integrer des dialogues naturels avec un utilisateur dans ses comportements, procedes de programmation et d'utilisation dudit robot Download PDF

Info

Publication number
WO2013150076A1
WO2013150076A1 PCT/EP2013/057043 EP2013057043W WO2013150076A1 WO 2013150076 A1 WO2013150076 A1 WO 2013150076A1 EP 2013057043 W EP2013057043 W EP 2013057043W WO 2013150076 A1 WO2013150076 A1 WO 2013150076A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
dialogue
robot
user
humanoid robot
Prior art date
Application number
PCT/EP2013/057043
Other languages
English (en)
Inventor
David Houssin
Gwennael GATE
Original Assignee
Aldebaran Robotics
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aldebaran Robotics filed Critical Aldebaran Robotics
Priority to CN201380029253.5A priority Critical patent/CN104350541B/zh
Priority to EP13714282.4A priority patent/EP2834811A1/fr
Priority to US14/390,746 priority patent/US10052769B2/en
Priority to JP2015503871A priority patent/JP6367179B2/ja
Publication of WO2013150076A1 publication Critical patent/WO2013150076A1/fr

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0005Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
    • B25J11/001Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means with emotions simulating means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0005Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device
    • Y10S901/47Optical

Definitions

  • the present invention belongs to the field of robot programming systems. More specifically, it provides a humanoid robot already equipped with the ability to perform behaviors of advanced dialogue capabilities with a human user.
  • a robot can be called a humanoid from the moment it has certain attributes of the appearance and functionality of the man: a head, a trunk, two arms, possibly two hands, two legs, two feet ...
  • the most important humanoid characteristic is the capacity for oral expression in dialogue with a human, said expression capacity being as coordinated as possible with the gestural and / or symbolic expression of the human being. personality and emotions of the robot.
  • the robot it is necessary for the robot to be able to interpret questions or affirmations of the human being, to make replicas in conversational mode, with a richness of expression corresponding to that of a human being and modes of expression that are in synergy with types of behavior and emotions that are normally those of a human being.
  • the robots disclosed by these documents can only execute a limited and predetermined number of dialogue elements, or at least if one wishes to multiply said dialogue elements towards a diversity corresponding to the normal behavior of a being. human, combinatorics would quickly become inaccessible to one. In particular, in order to be able to provide the assistance services to the person indicated above, it is necessary to provide the humanoid robots with a richer conversational aptitude than that of the robots of the prior art.
  • the present invention implements in said robot a conversational agent, voice recognition tools and tools for analyzing the behavior of human beings with which the robot converses.
  • the present invention discloses a humanoid robot comprising: i) at least one sensor selected from a group comprising first sound-type sensors and second sensors, of at least a second type, of events generated by at least one a user of said robot, ii) at least one event recognition module at the output of said at least one sensor, and iii) at least one event generation module to said at least one user, a dialogue module with said at least one user least one user, said dialog module receiving as input outputs of said at least one recognition module and producing outputs to said selected event generation module in a group comprising words, motions, expressions and emotions, said robot being characterized in that it further comprises an artificial intelligence engine configured to drive the outputs of the event generation module.
  • control of the event generation module by the artificial intelligence engine is performed according to the context of the dialogue and variables defining the present and predictive configuration of the robot.
  • said at least one event recognition module receives inputs from at least two sensors belonging to at least two different types, and in that said at least one event generation module at the output of said module of dialogue is able to output events taking into account said inputs from said at least two sensors.
  • said at least one recognition module is able to structure the entries in concepts according to a dynamic hierarchical tree.
  • an entry in said at least one recognition module applies to textual or voice entries and activates a grammar in said dialog module.
  • an entry in said at least one recognition module activates / deactivates the recognition of said entry.
  • said at least one recognition module comprises a first and a second sub-module, the first submodule operating on a closed list of words attached to at least one concept and the second sub-module operating on an open list of words. .
  • an output of the first sub-module is provided alone to the dialogue module.
  • an output of the second sub-module is only provided to the dialogue module.
  • an output of the first sub-module and an output of the second sub-module are jointly provided to the dialogue module.
  • an output of the first sub-module is first provided only to the dialogue module, said output of the first sub-module being confirmed in the dialogue module by an output of the second sub-module.
  • none of the outputs of the first and second sub-modules generates output of the dialogue module and in that said robot proposes at least one input to said at least one user.
  • the dialogue module also receives input dynamic elements from an application.
  • At least one output of the dialogue module is provided to a module able to execute a function chosen in a group of functions for generating at least one expression of said robot, decision to generate at least one behavior of said robot and generating at least one emotion of said robot.
  • said function for generating at least one behavior takes into account the constraints of the system of said robot.
  • said function for generating at least one emotion is able to generate a series of predefined expressions between a neutral state and a predefined state in response to input events.
  • the humanoid robot of the invention further comprises a visual recognition module, said module being able to interpret at least one sign of said at least one user as a beginning or an end of a sequence of a dialogue.
  • said dialog module comprises a lexical analysis sub-module and an interpretation sub-module of the outputs of said lexical analysis sub-module capable of generating concepts to which the words of the current dialogue are attached.
  • said dialog module is able to process questions and commands from said at least one user relating to the state of his physical and / or logical system.
  • the invention also discloses a method of dialogue between a humanoid robot and at least one user, comprising: i) at least one step of recognizing inputs from at least one sensor selected from a group comprising first sensors of the type and second sensors, of at least a second type, of events generated by said at least one user, ii) a step of generating events to said at least one user, and, iii) a step of dialog with said dialog with said at least one user, said dialog step receiving at the outputs of said at least one recognition step and producing outputs to said event generation step selected from a group comprising speech, motion, expressions and emotions, said method being characterized in that it further comprises a step of controlling the outputs of the event generation module by means of n engine of artificial intelligence.
  • control of the event generation module by the artificial intelligence engine is performed according to the context of the dialogue and variables defining the present and predictive configuration of the robot.
  • said robot dialogs with at least two users, parameters characterizing said at least two users being stored in a memory of said robot to be used when said robot recognizes one of the at least two users.
  • the invention also discloses a computer program embarked on a humanoid robot comprising program code instructions for executing the method of the invention, when the program is executed on a computer, said program being adapted to manage a dialogue between said humanoid robot and at least one user, said computer program comprising: i) at least one event recognition module at the output of at least one sensor selected from a group comprising first sound-type sensors and second sensors of at least a second type, events generated by said at least one user, ii) at least one event generation module to said at least one user, and iii) a dialog module with said at least one user, said dialog module receiving as input outputs of said at least one recognition module and outputting outputs to said event generation module chosen from a group comprising words, movements, expressions and emotions, said program being characterized in that it further comprises an artificial intelligence engine configured to control the outputs of the event generation module.
  • the invention also discloses a computer program comprising program code instructions configured to generate a computer program according to the invention and transmit it to
  • the invention allows the use of programming languages already in use in the field of conversational agents, the syntax of said languages being already known to a large community of programmers who will thus be available to develop new applications embodying the present invention. .
  • the conversational agents of the prior art are considerably increased in their possibilities thanks to the integration of advanced speech recognition functionalities, as well as to the taking into account of information. from other sensors of the robot, including visual recognition, which allow him to detect situations of activation dialogues and its interlocutors.
  • a dialogue according to the method of the invention may be adapted to different categories of conversation elements with personalities of different robots that will depend on the preferences of their user.
  • the robot will be able to express emotions in adequacy with said conversation elements to have behaviors also synchronized with said elements, which will allow the creation of fluid scenarios of exchanges between a user and his or her robots.
  • the robot will be able to provide information on the status of a number of elements of its system (eg remaining battery life) and receive system commands in a system. dialogue mode with a user, which greatly improves the ergonomics of use of said robot.
  • FIG. 1 represents a humanoid robot capable of implementing the invention in several of its embodiments
  • FIG. 2 represents a general flowchart of the treatments according to several embodiments of the invention.
  • FIG. 3 represents the processing blocks of a dialogue behavior management module and a voice recognition module according to several embodiments of the invention
  • FIG. 4 represents an example of a tree of several dialogue levels according to several embodiments of the invention.
  • FIG. 4a represents a concept tree according to several embodiments of the invention.
  • FIG. 5 represents a simplified flowchart of the speech recognition module processes in several embodiments of the invention.
  • FIG. 6 represents the data flow between several software modules configured to implement the invention in several of its embodiments
  • FIG. 6a illustrates the operation of an emotion engine in certain embodiments of the invention
  • FIG. 6b illustrates the operation of a decision engine in certain embodiments of the invention
  • FIG. 7 represents the different functions at the input and at the output of the management module of a dialogue for implementing the invention in several of its embodiments;
  • FIG. 8 represents the data model of a dialog analysis and interpretation module for implementing the invention in several of its embodiments
  • FIG. 9 represents the architecture of the software modules implanted on a robot configured to implement the invention in several of its embodiments.
  • FIG. 1 represents a humanoid robot capable of implementing the invention in several of its embodiments.
  • This humanoid robot is shown in the figure in one embodiment of the invention. Such a robot has been disclosed in particular in the patent application WO2009 / 124951 published on 15/10/2009. This platform served as a basis for the improvements that led to the present invention. In the remainder of the description, this humanoid robot can be indifferently referred to under this generic name or under its trademark NAO TM, without the generality of the reference being modified.
  • the robot has about two dozen electronic sensor control cards and actuators that drive the joints.
  • the electronic control card includes a commercial microcontroller. It can be for example a DSPIC TM of the company Microchip. It is a 16-bit MCU coupled to a DSP. This MCU has a servo loop cycle of one ms.
  • the robot can also include other types of actuators, including LEDs (electroluminescent diodes) whose color and intensity can reflect the emotions of the robot. It may also include other types of position sensors, including an inertial unit, FSR (ground pressure sensors), etc ....
  • the head 1 10 comprises the intelligence of the robot, in particular the card which performs the high-level functions that enable the robot to perform the tasks assigned to it, notably, in the context of the present invention, for the execution of the dialogues written by a user.
  • the head will advantageously also include specialized cards, especially in the treatment of speech (synthesis and recognition) or vision.
  • said audio signals are captured by four microphones and processed in software in specialized modules which are described in comments in FIG. 9.
  • the direction of origin of the sounds can be determined analysis of the arrival date differences of the sound signals on the four sensors.
  • the lyrics are recognized by a grammatical engine speech recognition software (for example of the type marketed by the company Nuance TM) or natural language interpreter.
  • the head also includes one or more dedicated I / O processing cards, such as the encoding required to open a port to establish remote communication over a wide area network (WAN) wide area network.
  • the card processor can be a commercial x86 processor. We will choose in a preferred way a low-power processor, for example an ATOM TM from Intel (32-bit, 1600 MHz).
  • the card also includes a set of RAM and flash memories. This card also manages the communication of the robot with the outside (behavior server, other robots ...), normally on a WiFi transmission layer, WiMax, possibly on a public network of mobile data communications with standard protocols possibly encapsulated in a VPN.
  • the processor is normally controlled by a standard OS which allows to use the usual high-level languages (C, C ++, Python, ...) or the specific languages of artificial intelligence like URBI (programming language specialized in robotics) for programming high-level functions.
  • a behavior is a combination of actions (movements, words) and possibly events.
  • These behaviors may also have been arranged in a scenario created by a user who is not a professional programmer using the invention disclosed in the patent application WO201 1/003628.
  • they may be behaviors articulated among themselves according to a relatively complex logic in which the sequences of behaviors are conditioned by the events that occur in the environment of the robot.
  • a user who needs a minimum of programmer skills can use the workshop Choregraph TM, whose main modes of operation are described in the cited application.
  • the flow logic of the scenario is not in principle adaptive.
  • a programmer is able to produce a complex scenario comprising sets of behaviors comprising various gestures and movements, sound or visual signal transmissions, and especially natural dialogues between the robot and a human being or another robot, said dialogues being coordinated with the personality and emotions of the robot and the semantic and event context of the conversation.
  • FIG. 2 represents a general flowchart of the treatments according to several embodiments of the invention.
  • a dialog writing module 210 implanted on a workstation, for example a PC, separate from the robot is intended to program dialogue scenarios.
  • the dialogues may have several characters, one or more robots and one or more speakers.
  • Said module is advantageously implanted in the Chorégraphe TM software workshop which makes it possible to program robot behaviors, the dialogues being mixed within scenarios with behaviors to be executed by the robot in relation to the elements of the dialogs.
  • a voice recognition module 220 whose features have been indicated in comment in Figure 1 is installed on the robot. It is intended to interpret the elements of the dialogues created in the dialog writing module 210, said dialog elements being transmitted to the robot by a wired or wireless communication interface, according to the modalities described above in commentary on FIG. .
  • the elements of the dialogs transmitted to the module 220 are compiled for example in a language using the normalized BNF (Backus Normal Form) syntax. For example, a sequence of words will be interpreted as a logical "AND", a logical “OR” to be symbolized in a different way, for example by a "
  • BNF Backus Normal Form
  • the elements coming from the module 210 for writing the dialogs and the outputs of the module 220 of speech recognition are passed to a module dialogue engine 230.
  • Said engine generates words, emotions, expressions, behaviors and events created in module 210, according to modalities explained in commentary in FIGS. 6 and 7.
  • Behavior is a sequence of gestures defining a compound movement (getting up , play football, etc.).
  • An expression is a behavior of a particular type defined for a given dialogue by a word / action couple.
  • An action can be a combination of movements and / or signs emitted for example by the LED of the robot.
  • a method for creating scenarios consisting of sequences of expressions has been disclosed by the international application published under No. WO201 1/003628.
  • An emotion is a sequence of expressions defined by a terminal expression and a sequence of expressions that tend towards the terminal expression. For example, we can define the following emotions E iin "happy / sad,”"tired,””scared,””excited,””curious", each expression in E, for i varying from 1 to n being an intermediate expression between a reference state and the expression E n, n. If the robot is in a state E jiP p different from n, a list of events defined to provoke the emotion will make the robot go from the state E jiP to a state E jin .
  • the dialog description language is derived from the ChatScript language (http://chatscript.sourceforqe.net/).
  • chatScript syntax we write a scenario as a set of rules. For example :
  • a complete rule usually includes:
  • the language is adapted to mix the dialogue elements with behaviors of the robot.
  • Nonlimiting examples of adaptation are given in the following description.
  • a behavior will be defined by a single string of characters (for example: “failure”, “football”, “taichi”, etc.).
  • An emotion also, given that a code will indicate that it is an emotion (we can for example use a capital initial: “Happy / Sad”, “Tired”, “Scared”, “Excited”, “ Curious “, ).
  • the language used makes it possible to simply write several formulations for a sentence of the user (different formulations of 'hello' for example).
  • An entry can be a sentence of the entity interacting with the robot (a "user” who can be a human being or another robot), an event, or both (I say hello as I move my hand towards the robot).
  • a dialog behavior may for example be of the type in which the robot follows the user's gaze and analyzes the movements of the user to achieve more natural responses (eg do not speak at the same time as the user).
  • Each element of the dialogue language is retranscribed in its equivalent in the module 220 comprising the voice recognition engine, said engine being able to recognize only a certain number of words. Thanks to this transformation, we are guaranteed that every recognized sentence has an answer.
  • the dialog description language has an equivalent in speech recognition, which is not the case for a keyboard dialogue which is the known context of use of the ChatScript language.
  • the grammar of the dialogue description language includes the following features:
  • Some patterns are indicated in the dialog script by a sign: - 'Or' accepts a list of possible words, for example: [hello hello];
  • Sub-dialogue a sub-dialog is activated on certain sentences and can be linked in cascades, for example:
  • This sub-dialog feature can for example give rise to a dialog of the type:
  • An event can also be triggered at the end of a dialog, possibly by launching an application:
  • $ userstate 'hungry' will both affect hunger to userstate and launch a [userstate, hungry] event upon which an application can subscribe;
  • the dialog can store user information, for example:
  • Dynamic elements; variables and lists (mp3, applications, preferences ...) can be integrated into the input and output dialog, for example:
  • Erase rules an entry can be disabled or enabled to avoid a repetition phenomenon in the responses; the same input can be repeated in the dialog or in several dialogs, the erase rules will allow all entries to be interpreted, for example:
  • the dialogue engine 230 acts on both the network and the dialogue lists 310, 330 and on the voice recognition 220.
  • the dialogue network 310 is the structured set of dialogues that indicates how to articulate them: first an introduction and then another dialogue for example.
  • the network gives meaning to dialogues.
  • List 330 is the unstructured list of active dialogs that is present in both the chat engine and the speech engine.
  • a dialog can be enabled or disabled (which simultaneously affects all of its entries 340). Activation / deactivation can be triggered automatically by a trigger (ut :) or manually by a user. Minimizing the number of active dialogs at a given time optimizes speech recognition performance in quality and processing time. You can set the dialogs in the editor so that they remain active even if a new dialog is opened, the default solution being that the opening of a new dialog closes the previous dialog. An input of a dialog can also be enabled / disabled individually, either by connecting to a sub-dialog or by deleting to avoid a repetition of an element of the current dialog.
  • the dialogue engine 230 comprises a pattern recognition module 320 whose operation has been illustrated in comment in FIG. 2 (point 1). It also includes a dynamic concepts tree 350.
  • a concept is a list of words that are defined as semantically equivalent in a given dialogue.
  • the phrase “I live” is considered in a given dialogue as semantically equivalent to the sentences “I live” “I lodge” “I live”, “I live” “I lodge” “I live” ... So we will define a concept (living) and a concept (I):
  • a dynamic concept tree groups several hierarchically organized concepts. It will also be possible to modify the list of sentences attached to a concept at runtime. For example, the concept “food” includes the concepts “fruits” and “meat” and the concept “fruits” includes “banana” and “orange”: Concept: (food) (-fruit -viande)
  • banana is a fruit
  • the entry in a dialog of the list 330 activates a grammar in the list of grammars 360 of the speech recognition module 220.
  • the list of entries 370 of the speech recognition module is activated / deactivated synchronously with the list of entries 340 of the dialog module.
  • the modification of a concept in the dynamic concepts tree 350 of the dialog module 230 causes an adaptation of the dynamic inputs 380 of the speech recognition module.
  • FIG. 4 represents an example of a tree of several dialogue levels according to several embodiments of the invention.
  • a dialog comprises three logical levels in the robot engine module of dialogue 230 embedded on the robot:
  • a level 410 including the active dialogs by default: general dialogs 41 10 (greeting, presentation, mood) and a dialogue called "system” 4120 to know the state of the robot (battery, temperature, configuration ...) or give basic commands (get up, walk ...); the possibility not only to obtain information on the state of the robot's vital functions, but to be able to control some of them (to go into stand-by mode, to connect to a power supply, etc.) makes it possible to lower the barrier psychological feeling felt by non-technical users in their confrontation with robots;
  • a level 420 comprising the dialog selection routines according to the inputs of the user, said selection being triggered by a trigger Ut: several selections 4210, 4220, 4230, 4240, for example, can be programmed;
  • a level 430 comprising applications 4310, 4320, 4330, for example, which are dialogue sequences or files and are capable of being launched automatically or manually by a user.
  • Trigger sentences can then trigger the loading of other dialogs for example for:
  • the choice can be made either by the robot (the human must understand what the robot wants), either by the human (the robot must understand the choice of the robot).
  • This choice can be made with a dialogue as described above but this dialogue often involves repeating the same sentences which makes the dialogue difficult to write: U: (guess who I think) it's a man?
  • a concept is a word related to other words, phrases or concepts.
  • the words represent the leaves of the tree.
  • the concepts represent the nodes of the tree. Nodes and leaves are elements of pattern matching.
  • FIG. 5 represents a simplified flowchart of the speech recognition module processes in one embodiment of the invention.
  • a first level 510 includes a recognizable number of recognizable words; recognized words must appear in a closed list; examples of voice recognition software of this type are provided by Nuance TM (Vocon TM brand), Acapella TM and, for software using natural language, Dragon TM;
  • a second voice recognition level 520 is of the open type, that is to say that the diversity of the recognized words is much greater; examples of voice recognition software of this type are provided in particular by the company Nuance TM under the brand name NMSP TM; these softwares make it possible to manage words which are not known in advance which will be designated by a numbered joker
  • a voice recognition architect of this type comprising two levels, one closed 510 and the other open 520 (for example of the voice dictation type) makes it possible to optimize the speed / quality of recognition torque.
  • FIG. are merged the two types of voice recognition:
  • - Case 530 the robot is in the same context as that of the user and what he says is recognized by the limited recognition; then voice dictation is not necessary;
  • - Case 540 the robot is not in the same context as that of the user (the user speaks of a car but the robot thinks he is talking about food); then the sentences recognized by the vocal dictation can be compared to a dialogue;
  • FIG. 6 shows the data flow between several software modules configured to implement the invention in several of its embodiments.
  • the figure shows the data exchanges between the input events 610, the dialog 620, the events outputs 630 and an artificial intelligence engine embedded on the robot 640:
  • the dialogue 620 waits for events input (for example a smile 6130 or the word of the user 6120;
  • the dialog engine can dynamically load new 6240 dialogs or 6230 dynamic data (for example an mp3 file or an application installed on it);
  • the outputs of the dialog can be sent to different artificial intelligence modules 640:
  • ⁇ Speech and expressions are processed by a processing engine of the expression 6410, Narrator, using movements and speech synthesis, according to the methods described in particular in the international patent application published under No. WO201 1/003628; ⁇ Emotions are treated by an emotional engine 6420 that changes the emotion of the robot to stabilize over time;
  • a 6430 decision engine decides whether to initiate a behavior and can report the decision to the event dialog engine; the robot can refuse to get up if the conditions are not checked to do it.
  • This behavior may be the choice to use voice recognition or the input keyboard, as explained above in commentary in FIG. 4; the behavior triggers the speech and the interruption of the speech according to the actions of the user, for example, open the mouth, turn the heels, turn the head, etc.
  • the dialog includes a 6230 interpreter and a 6240 dialog template.
  • a dialog template includes:
  • References 6310, 6320, 6330, 6340 represent the outputs of the dialog engine as events.
  • Figure 6a illustrates the operation of an emotion engine in some embodiments of the invention.
  • the robot's emotion is a point in a multidimensional space of emotions (for example, TRISTE, CONTENT, FURIEUX, FATIGUE ).
  • the dialogue engine but not only the dialogue engine for example, its battery status, faces encountered, time is also a source of evolution of emotion, sends a pulse to the emotional motor that moves his current emotion. This emotion stabilizes toward neutral emotion (0,0,0,0,0,0.) Over time.
  • Figure 6b illustrates the operation of a decision engine in some embodiments of the invention.
  • the decision engine takes into account all the requests for the execution of behaviors and all the constraints of the robot in the form of available resources.
  • a request to run the chat engine is only part of the decision.
  • the set of variables / events of the robot participate in the decision (battery, temperature, emotions ).
  • FIG. 7 represents the various functions at the input and at the output of the management module of a dialogue for implementing the invention in several of its embodiments.
  • a dialogue 710 takes as input the result of the voice recognition 730 as the keyboard inputs 740 or events 720.
  • Dynamic data 750 such as mp3 files or an application can also be taken into account.
  • the dialog module analyzes the position of the head of the speaker to know if it is addressed to him. Similarly, he can evaluate the positions of the lips to know if the user speaks or not and therefore, whether to listen or if he can speak (item 760).
  • the face recognition allows, as well as the speech itself, to indicate the name of the current speaker.
  • a speech response from the chat engine can be given by the robot's voice or on a 7A0 screen (or both).
  • the dialog module is able to trigger the execution of behaviors (element 7B0).
  • Figure 8 shows the data model of a dialog analysis and interpretation module for implementing the invention in several of its embodiments.
  • the parser 810 finds words of a lexicon 81 1 0 in dialogues 8120 which are supplied to it as input.
  • the input dialogs have the 8140 data model.
  • Libraries 8130 "Libparser.so" parsing the contents of the dialogs perform this function. It allows to build in memory, for the interpreter 820 a model of dialogues and all the entries of these dialogues.
  • the interpreter maintains an 8210 stack of active dialogs as well as all active inputs for each user.
  • the "parsed" dialogs at the input of the interpreter have the form 8220 and the data model 8240.
  • the interpreter contains libraries 8240 "Libinterpreter.so" to fulfill its interpretation functions.
  • variables depending on the user are automatically reset or affected according to the user's history.
  • Behaviors 830 have an 8310 data model of state variables.
  • FIG. 9 represents the architecture of the software modules implanted on a robot configured to implement the invention in several of its embodiments.
  • a robot such as NAO is advantageously equipped with high level software for controlling the functions of the robot in one embodiment of the invention.
  • a software architecture of this type, called NAOQI has been disclosed in particular in the patent application WO2009 / 124955 published on 15/10/2009. It comprises the basic functions of communication management between a robot and a PC or a remote site and exchange of software that provide the software infrastructure necessary for the implementation of the present invention.
  • NAOQI is an optimized framework for robotic applications; It supports several languages, including C ++, Python, Urbi, Java, Matlab. In the context of the present invention, the following NAOQI modules are particularly useful:
  • the ALMemory module, 910 manages a shared memory between the different modules of NAOQI;
  • the ALMotion module 920 manages the movements of the robot
  • the voice synthesis module, 930 generates the words of the robot
  • the closed recognition module 940 performs the functions of reference 510 of FIG. 5;
  • the Open Recognition module, 950 performs the functions of reference 520 of FIG. 6;
  • the ALDialog module, 960 performs the functions of the reference dialogue engine module 230 in FIG. 2;
  • the Narrator module, 970 performs the functions of reference 6410 of FIG. 6;
  • the decision engine module, 980 performs the functions of reference 6420 of FIG. 6;
  • the emotion engine module, 990 performs the functions of reference 6430 of FIG. 6.
  • modules are advantageously coded in C ++.
  • the figure also shows the data flows between modules.
  • the dialogs are generated in a dialog editing module 9A0 implanted on a standard computer. They can also be generated in the Choreographer workshop. The consistency between the dialogs of the ALDialog 960 module and those of the 9A0 editing module is ensured.
  • the data stream between the analyzer 810 and the interpreter 820 (which are shown in FIG. 8) of the dialog engine 960 is produced both on the computer at the time of editing and on the robot at the time. execution.
  • the parser can read a dialog description file u: (.%)
  • the interpreter builds, from the result of the parser (a written dialogue without syntax error), the model of dialogue in memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Robotics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Databases & Information Systems (AREA)
  • Manipulator (AREA)
  • Toys (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)

Abstract

L'invention concerne un robot humanoïde, ledit robot étant apte à dialoguer avec au moins un utilisateur, ledit dialogue utilisant deux modes de reconnaissance vocale, l'un ouvert et l'autre fermé, le mode fermé étant défini par un concept caractérisant une séquence de dialogue. Le dialogue peut également être influencé par des événements qui ne sont ni des paroles ni un texte. Le robot de l'invention est apte à exécuter des comportements, à générer des expressions et des émotions. L'invention procure par rapport aux robots de l'art antérieur l'avantage de réduire considérablement le temps de programmation et la latence de l'exécution des séquences du dialogue, ce qui procure une fluidité et un naturel proches des dialogues humains.

Description

ROBOT APTE A INTEGRER DES DIALOGUES NATURELS AVEC UN UTILISATEUR DANS SES COMPORTEMENTS, PROCEDES DE
PROGRAMMATION ET D'UTILISATION DUDIT ROBOT
La présente invention appartient au domaine des systèmes de programmation de robots. Plus précisément, elle permet de doter un robot humanoïde déjà doté d'aptitude à exécuter des comportements de capacités de dialogue avancées avec un utilisateur humain. Un robot peut être qualifié d'humanoïde à partir du moment où il possède certains attributs de l'apparence et des fonctionnalités de l'homme: une tête, un tronc, deux bras, éventuellement deux mains, deux jambes, deux pieds... Dans le cadre de la présente invention, la caractéristique humanoïde la plus importante est cependant la capacité d'expression orale en dialogue avec un humain, ladite capacité d'expression devant être la plus coordonnée possible avec l'expression gestuelle et/ou symbolique de la personnalité et des émotions du robot. On imagine le développement d'applications du type « robot compagnon », c'est-à-dire un robot qui soit en mesure de prendre en charge, notamment pour le compte d'un ou plusieurs êtres humains en état de dépendance, un certain nombre de fonctions d'assistance dans la vie quotidienne, tout en apportant auxdits humains une présence qui puisse être considérée comme un substitut émotionnellement quasi-équivalent à la présence d'un assistant personnel humain. Pour cela, il est indispensable de développer l'aptitude desdits robots humanoïdes à dialoguer avec des êtres humains de la manière la plus proche possible des comportements humains. En particulier, il est nécessaire que le robot puisse interpréter des questions ou affirmations de l'être humain, émettre des répliques en mode conversationnel, avec une richesse d'expression correspondant à celle d'un être humain et des modes d'expression qui soient en synergie avec des types de comportements et d'émotions qui sont normalement ceux d'un être humain.
Des premiers pas dans cette voie ont été accomplis grâce aux procédés de programmation de robots humanoïdes de marque Nao™ commercialisés par le demandeur de la présente demande de brevet et divulgués dans la demande internationale de brevet publiée sous le n °WO2012/000927 relative à un robot joueur et dans la demande internationale de brevet publiée sous le n °WO2012/010451 relative à un robot humanoïde doté d'une interface de dialogue naturel.
Cependant, les robots divulgués par ces documents ne peuvent exécuter qu'un nombre limité et prédéterminé d'éléments de dialogue, ou tout au moins, si l'on souhaitait multiplier lesdits éléments de dialogue vers une diversité correspondant au comportement normal d'un être humain, la combinatoire deviendrait rapidement inaccessible à un. Pour pouvoir fournir notamment les services d'assistance à la personne indiquée ci-dessus, il est donc nécessaire de doter les robots humanoïdes d'une aptitude conversationnelle plus riche que celle des robots de l'art antérieur.
Pour ce faire, la présente invention implante dans ledit robot un agent conversationnel, des outils de reconnaissance vocale et des outils d'analyse des comportements des êtres humains avec lesquels le robot converse.
A cet effet, la présente invention divulgue un robot humanoïde comprenant : i) au moins un capteur choisi dans un groupe comprenant des premiers capteurs de type sonore et des deuxièmes capteurs, d'au moins un deuxième type, d'événements générés par au moins un utilisateur dudit robot, ii) au moins un module de reconnaissance d'événements en sortie dudit au moins un capteur et, iii) au moins un module de génération d'événements vers ledit au moins un utilisateur, un module de dialogue avec ledit au moins un utilisateur, ledit module de dialogue recevant en entrée des sorties dudit au moins un module de reconnaissance et produisant des sorties vers ledit module de génération d'événements choisies dans un groupe comprenant des paroles, des mouvements, des expressions et des émotions, ledit robot étant caractérisé en ce qu'il comprend en outre un moteur d'intelligence artificielle configuré pour piloter les sorties du module de génération d'événements.
Avantageusement, le pilotage du module de génération d'événements par le moteur d'intelligence artificielle est effectué en fonction du contexte du dialogue et de variables définissant la configuration présente et prévisionnelle du robot. Avantageusement, ledit au moins un module de reconnaissance d'événements reçoit des entrées en provenance d'au moins deux capteurs appartenant à au moins deux types différents, et en ce que ledit au moins un module de génération d'événements en sortie dudit module de dialogue est apte à produire en sortie des événements prenant en compte lesdites entrées en provenance desdits au moins deux capteurs.
Avantageusement, ledit au moins un module de reconnaissance est apte à structurer les entrées en concepts selon un arbre hiérarchique dynamique.
Avantageusement, une entrée dans ledit au moins un module de reconnaissance s'applique à des entrées textuelles ou vocales et active une grammaire dans ledit module de dialogue. Avantageusement, une entrée dans ledit au moins un module de reconnaissance active/désactive la reconnaissance de ladite entrée.
Avantageusement, ledit au moins un module de reconnaissance comprend un premier et un deuxième sous-modules, le premier sous-module opérant sur une liste fermée de mots rattachés à au moins un concept et le deuxième sous-module opérant sur une liste ouverte de mots.
Avantageusement, une sortie du premier sous-module est seule fournie au module de dialogue.
Avantageusement, une sortie du deuxième sous-module est seule fournie au module de dialogue.
Avantageusement, une sortie du premier sous-module et une sortie du deuxième sous-module sont conjointement fournies au module de dialogue.
Avantageusement, une sortie du premier sous-module est d'abord seule fournie au module de dialogue, ladite sortie du premier sous-module étant confirmée dans le module de dialogue par une sortie du deuxième sous- module. Avantageusement, aucune des sorties des premier et deuxième sous- modules ne génère de sortie du module de dialogue et en ce que ledit robot propose au moins une entrée audit au moins un utilisateur. Avantageusement, le module de dialogue reçoit en outre en entrée des éléments dynamiques en provenance d'une application.
Avantageusement, au moins une sortie du module de dialogue est fournie à un module apte à exécuter une fonction choisie dans un groupe de fonctions de génération d'au moins une expression dudit robot, de décision de génération d'au moins un comportement dudit robot et de génération d'au moins une émotion dudit robot.
Avantageusement, ladite fonction de génération d'au moins un comportement prend en compte les contraintes du système dudit robot.
Avantageusement, ladite fonction de génération d'au moins une émotion est apte à générer une suite d'expressions prédéfinies entre un état neutre et un état prédéfini en réponse à des événements en entrée.
Avantageusement, le robot humanoïde de l'invention comprend en outre un module de reconnaissance visuelle, ledit module étant apte à interpréter au moins un signe dudit au moins un utilisateur comme un commencement ou une fin d'une séquence d'un dialogue.
Avantageusement, ledit module de dialogue comprend un sous-module d'analyse lexicale et un sous-module d'interprétation des sorties dudit sous- module d'analyse lexicale apte à générer des concepts auxquels sont rattachés les mots du dialogue courant.
Avantageusement, ledit module de dialogue est apte à traiter des questions et des commandes dudit au moins un utilisateur relatives à l'état de son système physique et/ou logique. L'invention divulgue également un procédé de dialogue entre un robot humanoïde et au moins un utilisateur, comprenant : i) au moins une étape de reconnaissance d'entrées en provenance d'au moins un capteur choisi dans un groupe comprenant des premiers capteurs de type sonore et des deuxièmes capteurs, d'au moins un deuxième type, d'événements générés par ledit au moins un utilisateur , ii) une étape de génération d'événements vers ledit au moins un utilisateur, et, iii) une étape de dialogue avec ledit dialogue avec ledit au moins un utilisateur, ladite étape de dialogue recevant en entrée des sorties de ladite au moins une étape de reconnaissance et produisant des sorties vers ladite étape de génération d'événements choisies dans un groupe comprenant des paroles, des mouvements, des expressions et des émotions, ledit procédé étant caractérisé en ce qu'il comprend en outre une étape de pilotage des sorties du module de génération d'événements par un moteur d'intelligence artificielle.
Avantageusement, le pilotage du module de génération d'événements par le moteur d'intelligence artificielle est effectué en fonction du contexte du dialogue et de variables définissant la configuration présente et prévisionnelle du robot.
Avantageusement, ledit robot dialogue avec au moins deux utilisateurs, des paramètres caractérisant lesdits au moins deux utilisateurs étant stockés dans une mémoire dudit robot pour être utilisés quand ledit robot reconnaît un des au moins deux utilisateurs.
L'invention divulgue également un programme d'ordinateur embarqué sur un robot humanoïde comprenant des instructions de code de programme permettant l'exécution du procédé de l'invention, lorsque le programme est exécuté sur un ordinateur, ledit programme étant adapté pour gérer un dialogue entre ledit robot humanoïde et au moins utilisateur, ledit programme d'ordinateur comprenant : i) au moins un module de reconnaissance d'événements en sortie d'au moins un capteur choisi dans un groupe comprenant des premiers capteurs de type sonore et des deuxièmes capteurs, d'au moins un deuxième type, d'événements générés par ledit au moins un utilisateur, ii) au moins un module de génération d'événements vers ledit au moins un utilisateur, et, iii) un module de dialogue avec ledit au moins un utilisateur, ledit module de dialogue recevant en entrée des sorties dudit au moins un module de reconnaissance et produisant des sorties vers ledit module de génération d'événements choisies dans un groupe comprenant des paroles, des mouvements, des expressions et des émotions, ledit programme étant caractérisé en ce qu'il comprend en outre un moteur d'intelligence artificielle configuré pour piloter les sorties du module de génération d'événements.. Avantageusement, l'invention divulgue également un programme d'ordinateur comprenant des instructions de code de programme configurées pour générer un programme d'ordinateur selon l'invention et le transmettre à au moins un robot humanoïde, lesdites instructions étant générées dans une interface de type ChatScript.
L'invention permet l'utilisation de langages de programmation déjà en usage dans le domaine des agents conversationnels, la syntaxe desdits langages étant déjà connue d'une communauté importante de programmeurs qui seront ainsi disponibles pour développer de nouvelles applications mettant en œuvre la présente invention. Mis en œuvre dans le cadre de la présente invention, les agents conversationnels de l'art antérieur voient leurs possibilités accrues de manière considérable grâce à l'intégration de fonctionnalités évoluées de reconnaissance de la parole, ainsi qu'à la prise en compte des informations en provenance d'autres capteurs du robot, notamment de reconnaissance visuelle, qui lui permettent de détecter les situations d'activation des dialogues et ses interlocuteurs. Un dialogue selon le procédé de l'invention pourra être adapté à différentes catégories d'éléments de conversation avec des personnalités de robots différentes qui seront fonction des préférences de leur utilisateur. Le robot pourra exprimer des émotions en adéquation avec lesdits éléments de conversation avoir des comportements également synchronisés avec lesdits éléments, ce qui permettra la création de scénarios fluides d'échanges entre un utilisateur et son ou ses robots. En outre, le robot pourra fournir des informations sur l'état d'un certain nombre d'éléments de son système (durée restante d'autonomie de la batterie, par exemple) et recevoir des commandes système dans un mode dialogue avec un utilisateur, ce qui améliore grandement l'ergonomie d'usage dudit robot.
L'invention sera mieux comprise et ses différentes caractéristiques et avantages ressortiront de la description qui suit de plusieurs exemples de réalisation et de ses figures annexées dont :
- La figure 1 représente un robot humanoïde apte à mettre en œuvre l'invention dans plusieurs de ses modes de réalisation ;
- La figure 2 représente un organigramme général des traitements selon plusieurs modes de réalisation de l'invention;
- La figure 3 représente les blocs de traitement d'un module de gestion d'un comportement dialogue et d'un module de reconnaissance vocale selon plusieurs modes de réalisation de l'invention;
- La figure 4 représente un exemple d'arborescence de plusieurs niveaux de dialogues selon plusieurs modes de réalisation de l'invention;
- La figure 4a représente un arbre de concepts selon plusieurs modes de réalisation de l'invention;
- La figure 5 représente un organigramme simplifié des traitements du module de reconnaissance vocale dans plusieurs modes de réalisation de l'invention ;
- La figure 6 représente le flot de données entre plusieurs modules logiciels configurés pour mettre œuvre l'invention dans plusieurs de ses modes de réalisation ;
- La figure 6a illustre le fonctionnement d'un moteur d'émotion dans certains modes de réalisation de l'invention ;
- La figure 6b illustre le fonctionnement d'un moteur de décision dans certains modes de réalisation de l'invention ;
- La figure 7 représente les différentes fonctions en entrée et en sortie du module de gestion d'un dialogue pour mettre œuvre l'invention dans plusieurs de ses modes de réalisation ;
- La figure 8 représente le modèle de données d'un module d'analyse et d'interprétation de dialogues pour mettre en œuvre l'invention dans plusieurs de ses modes de réalisation ; - La figure 9 représente l'architecture des modules logiciels implantés sur un robot configuré pour mettre œuvre l'invention dans plusieurs de ses modes de réalisation. La figure 1 représente un robot humanoïde apte à mettre en œuvre l'invention dans plusieurs de ses modes de réalisation.
Ce robot humanoïde est représenté sur la figure dans un mode de réalisation de l'invention. Un tel robot a été divulgué notamment dans la demande de brevet WO2009/124951 publiée le 15/10/2009. Cette plateforme a servi de base aux améliorations qui ont conduit à la présente invention. Dans la suite de la description, ce robot humanoïde peut être indifféremment désigné sous cette appellation générique ou sous sa marque commerciale NAO™, sans que la généralité de la référence en soit modifiée.
Ce robot comprend environ deux douzaines de cartes électroniques de commande de capteurs et d'actionneurs qui pilotent les articulations. La carte électronique de contrôle comporte un microcontrôleur du commerce. Ce peut être par exemple un DSPIC™ de la société Microchip. C'est un MCU 16 bits couplé à un DSP. Ce MCU a un cycle d'asservissement en boucle d'une ms. Le robot peut également comporter d'autres types d'actionneurs, notamment des LED (Diodes électroluminescentes) dont la couleur et l'intensité peuvent traduire les émotions du robot. Celui-ci peut également comporter d'autres types de capteurs de position, notamment une centrale inertielle, des FSR (Capteurs de pression au sol), etc....
La tête 1 10 comporte l'intelligence du robot, notamment la carte qui exécute les fonctions de haut niveau qui permettent au robot d'accomplir les missions qui lui sont assignées, notamment, dans le cadre de la présente invention, pour l'exécution de dialogues écrits par un utilisateur. La tête comportera avantageusement également des cartes spécialisées, notamment dans le traitement de la parole (synthèse et reconnaissance) ou de la vision.
S'agissant de la reconnaissance de la parole, , dans l'architecture de traitement des signaux audio actuellement utilisée, lesdits signaux audio sont capturés par quatre microphones et traités de manière logicielle dans des modules spécialisés qui sont décrits en commentaires à la figure 9. La direction de provenance des sons peut être déterminée analyse des différences de date d'arrivée des signaux sonores sur les quatre capteurs. Les paroles sont reconnues par un logiciel de reconnaissance vocale à moteur grammatical (par exemple du type commercialisé par la société Nuance™) ou à interpréteur de langage naturel.
La tête comporte également une ou plusieurs cartes spécialisées dans le traitement d'entrées/sorties de service, comme l'encodage nécessaire à l'ouverture d'un port pour établir une communication à distance sur un réseau étendu WAN (Wide Area Network). Le processeur de la carte peut être un processeur x86 du commerce. On choisira de manière privilégiée un processeur à basse consommation, par exemple un ATOM™ de la société Intel (32 bits, 1600 MHz). La carte comporte également un ensemble de mémoires RAM et flash. Cette carte gère également les communications du robot avec l'extérieur (serveur de comportements, autres robots...), normalement sur une couche de transmission WiFi, WiMax, éventuellement sur un réseau public de communications mobiles de données avec des protocoles standards éventuellement encapsulés dans un VPN. Le processeur est normalement piloté par un OS standard ce qui permet d'utiliser les langages de haut niveau usuels (C, C++, Python, ...) ou les langages spécifiques de l'intelligence artificielle comme URBI (langage de programmation spécialisé dans la robotique) pour la programmation des fonctions de haut niveau.
Le robot va pouvoir exécuter des comportements pour lesquels il pourra avoir été programmé à l'avance, notamment par un code généré selon l'invention divulguée dans la demande de brevet internationale publiée sous le n °WO2012/010451 déjà citée, ledit code ayant été créé par un programmeur dans une interface graphique. Selon cette invention et dans la suite de la présente description, un comportement est une combinaison d'actions (mouvements, paroles) et éventuellement d'événements. Ces comportements peuvent également avoir été agencés dans un scénario créé par un utilisateur qui n'est pas un programmeur professionnel en utilisant l'invention divulguée dans la demande de brevet WO201 1 /003628. Dans le premier cas, il peut s'agir de comportements articulés entre eux selon une logique relativement complexe dans laquelle les séquences de comportements sont conditionnées par les événements qui se produisent dans l'environnement du robot. Dans ce cas, un utilisateur qui doit disposer d'un minimum de compétences de programmeur peut utiliser l'atelier Chorégraphe™, dont les principaux modes opératoires sont décrits dans la demande citée. Dans le deuxième cas, la logique de déroulement du scénario n'est pas en principe adaptative.
Selon la présente invention, un programmeur est en mesure de produire un scénario complexe comprenant des ensembles de comportements comprenant des gestes et mouvements divers, des émissions de signaux sonores ou visuels, et surtout des dialogues naturels entre le robot et un être humain ou un autre robot, lesdits dialogues étant coordonnés avec la personnalité et les émotions du robot et le contexte sémantique et événementiel de la conversation.
La figure 2 représente un organigramme général des traitements selon plusieurs modes de réalisation de l'invention.
Selon l'invention, un module 210 d'écriture de dialogues implanté sur une une station de travail, par exemple un PC, distincte du robot est destinée à programmer des scénarios de dialogues. Lesdits dialogues pourront avoir plusieurs personnages, un ou plusieurs robots et un ou plusieurs locuteurs. Ledit module est avantageusement implanté dans l'atelier logiciel Chorégraphe™ qui permet de programmer des comportements du robot, les dialogues étant mixés au sein de scénarios avec des comportements à exécuter par le robot en relation avec les éléments des dialogues. Un module de reconnaissance vocale 220 dont les fonctionnalités ont été indiquées en commentaire à la figure 1 est implanté sur le robot. Il est destiné à interpréter les éléments des dialogues créés dans le module 210 d'écriture de dialogues, lesdits éléments de dialogues étant transmis au robot par une interface de communication filaire ou sans fil, selon les modalités décrites plus haut en commentaire à la figure 1 . Les éléments des dialogues transmis au module 220 sont compilés par exemple dans un langage utilisant la syntaxe normalisée BNF (Backus Normal Form). Par exemple, une suite de mots sera interprétée comme un « ET » logique, un « OU » logique devant être symbolisée de manière différente, par exemple par un « | ». Le fonctionnement du module 220 de reconnaissance vocale est détaillé plus loin dans la description en commentaire à la figure 5.
Les éléments en provenance du module 210 d'écriture des dialogues et les sorties du module 220 de reconnaissance vocale sont passés à un module moteur de dialogue 230. Ledit moteur génère des paroles, émotions, expressions, comportements et événements créés dans le module 210, selon des modalités expliquées en commentaire aux figures 6 et 7. Un comportement est une suite de gestes définissant un mouvement composé (se lever, jouer au football, etc .). Une expression est un comportement d'un type particulier défini pour un dialogue donné par un couple parole/action. Une action peut être une combinaison de mouvements et/ou de signes émis par exemple par le LED du robot. Un procédé de création de scénarios constitués de suites d'expressions a été divulgué par la demande internationale publiée sous le n ° WO201 1 /003628. Une émotion est une suite d'expressions définie par une expression terminale et une suite d'expressions qui tendent vers l'expression terminale. A titre d'exemple, on peut définir les émotions Eiin suivantes : « heureux/triste », « fatigué », « effrayé », « excité », « curieux », chaque expression Ei n,pour i variant de 1 à n étant une expression intermédiaire entre un état de référence et l'expression En,n. Si le robot est dans un état EjiP p différend de n, une liste d'événements définies pour provoquer l'émotion n fera passer le robot de l'état EjiP à un état Ejin.
Le langage de description des dialogues est dérivé du langage ChatScript (http://chatscript.sourceforqe.net/).
Dans la syntaxe ChatScript, on écrit un scénario comme un ensemble de règles. Par exemple :
? : VIANDE (vous aimez la viande) Oui
Une règle complète comprend généralement :
- un type, « ?: » dans l'exemple, qui indique une question ;
- une étiquette, « VIANDE » dans l'exemple, qui peut être omise, mais qui, lorsqu'elle est présente, permet des appels par d'autres dialogues ;
- une entrée caractérisée par un motif indiqué entre parenthèses, « (vous aimez la viande) » dans l'exemple, phrase à laquelle seront rattachées les phrases comprenant ces trois mots dans cet ordre, mais également d'autres mots : « Albert, vous aimez la viande », Albert, vous aimez la viande rouge », ... ;
- une sortie, « Oui » dans l'exemple Selon l'invention, le langage est adapté pour mixer les éléments de dialogues avec des comportements du robot. Des exemples non limitatifs d'adaptation sont donnés dans la suite de la description.
Par exemple, un comportement sera défini par une chaîne de caractères unique (par exemple: « échec », « football », « taïchi », etc.). Une émotion également, étant entendu qu'un code indiquera qu'il s'agit d'une émotion (on peut par exemple utiliser une initiale majuscule : « Heureux/Triste », « Fatigué », « Effrayé », « Excité », « Curieux », ...). Le langage utilisé permet d'écrire simplement plusieurs formulations pour une phrase de l'utilisateur (différentes formulations de 'bonjour' par exemple). Une entrée peut être une phrase de l'entité dialoguant avec le robot (un « utilisateur » qui peut être un être humain ou un autre robot), un événement ou les deux (je dis bonjour en avançant la main vers le robot). Pour une phrase de l'utilisateur, ce langage permet d'exprimer plusieurs réponses possibles sous forme de phrases, d'émotions, d'événements ou de comportements. Un comportement de dialogue peut par exemple être du type dans lequel le robot suit l'utilisateur du regard et analyse les mouvements de l'utilisateur pour réaliser des réponses plus naturelles (par exemple ne pas parler en même temps que l'utilisateur).
Chaque élément du langage de dialogue est retranscrit dans son équivalent dans le module 220 comprenant le moteur de reconnaissance vocale, ledit moteur n'étant apte qu'à reconnaître de manière sûr qu'un nombre de mots limité. Grâce à cette transformation, nous avons la garantie que chaque phrase reconnue possède une réponse. A l'écriture du dialogue, pas à l'exécution, nous générons donc l'ensemble des dialogues et l'ensemble des entrées du dialogue au format de la reconnaissance vocale. Il est donc important que le langage de description de dialogues possède un équivalent dans la reconnaissance vocale, ce qui n'est pas le cas d'un dialogue au clavier qui est le contexte connu d'utilisation du langage ChatScript.
La grammaire du langage de description des dialogues comporte notamment les fonctionnalités suivantes :
1 ) Reconnaissance de motifs (ou pattern matchinq) :
Certains motifs sont signalés dans le script du dialogue par un signe : - 'Ou' accepte une liste de mots possibles, par exemple : [salut bonjour] ;
- 'Et' cherche une liste exacte de mots, par exemple : 'je suis content' ;
- Mots optionnels, par exemple : salut {'mon robot'} ;
- Mots interdits, par exemple : je suis !pas content ; le mot pas ne vérifie pas l'entrée ;
- Mots inconnus, par exemple : mon nom est * ; on ne connaît pas le nom de l'utilisateur ;
2) Contexte dans un dialogue ; on passe d'un dialogue à l'autre à l'aide de phrases trigger, par exemple :
- Ut : (parlons de voiture) ; cette phrase va provoquer le lancement du dialogue sur les voitures ;
3) Sous-dialogue ; un sous dialogue est activé sur certaines phrases et peut s'enchainer en cascades, par exemple :
- U : (comment vas-tu ?) Je vais bien et toi ?
A : (je ne vais pas bien) ha bon pourquoi ?
B : (je suis malade) Ho dommage, veux tu un médicament ?
A : (je vais bien) super
Cette fonctionnalité de sous-dialogue peut par exemple donner lieu à un dialogue du type:
Humain : Comment vas-tu ?
Robot : je vais bien et toi ?
Humain : Je ne vais pas bien
Robot : ha bon, pourquoi ?
Humain : Je suis malade
4) Evénements :
La prise en compte d'événements comme entrée d'un dialogue au même titre que les paroles captées par le robot donne à l'agent conversationnel de l'invention des potentialités qui n'existent pas dans l'art antérieur. En particulier, la reconnaissance visuelle du robot lui permet de détecter une personne dans son environnement et de lui adresser un salut, comme ce sera le cas lorsque la personne s'adresse à lui : - U : ([e .iaceDetected salut]) salut toi
Si le robot voit une personne ou si quelqu'un dit 'salut', alors le robot répond 'salut toi'.
Un événement peut être également déclenché en sortie d'un dialogue, éventuellement par le lancement d'une application :
- U : (j'ai faim) $userstate='faim'
$userstate='faim' va à la fois affecter la faim à userstate et lancer un événement [userstate,faim] sur lequel une application peut s'abonner ;
5) Sélection de comportements implicites ou explicites :
- U : (tu me reconnais ?) [$faceRecognized==" run :faceRecognition je ne te reconnais pas mais je vais me souvenir de toi la prochaine fois]
6) Propositions ; lorsque le robot ne comprend pas ou comprend mal ce que dit l'utilisateur, alors il consomme une proposition du dialogue courant afin de le préciser, par exemple :
- Proposai : quel âge as-tu ?
- U : (j'ai [5 6 7 8] ans) tu es jeune !
7) Variables ; le dialogue peut stocker des informations de l'utilisateur, par exemple :
- U : (j'ai _[5 6 7 8] ans) $age=$1 tu es jeune !
8) Eléments dynamiques ; variables et listes (mp3, applications, préférences...) peuvent être intégrés au dialogue en entrée et en sortie, par exemple :
- U : (que sais tu faire ?) Je sais -applications
- U : (quel est ton nom ?) mon nom est $nom
- U : ({lance lis raconte} * _~application) ok je lance $1 $application peut être par exemple ('trois mousquetaires', 'le monde')
9) Emotions. SAD, HAPPY, CURIOUS, SCARED, TIRED (ou TRISTE, HEUREUX, CURIEUX, EFFRAYE, FATIGUE), soit:
- U : (je ne t'aime pas !) ça me rend triste TRISTE
10) Règles d'effacement ; une entrée peut être désactivée ou activée afin d'éviter un phénomène de répétition dans les réponses ; la même entrée peut ainsi être répétée dans le dialogue ou dans plusieurs dialogues, les règles d'effacement permettront à l'ensemble des entrées d'être interprétées, par exemple :
- U : delete (comment vas-tu) je vais bien
- U : (comment vas-tu nao) tu te souviens de mon nom ! je vais bien
- U : (comment vas-tu) comme tout à l'heure
1 1 ) Règles de réponse ; on peut faire produire plusieurs sorties possibles par le robot entre lesquelles le choix est déterminé en fonction des entrées qu'il reçoit du ou des utilisateurs de manière déterministe (toujours la même sortie, ou la sortie d'un rang donné dans la liste, quelle que soit l'entrée), aléatoire, séquentielle (l'entrée i+1 déclenche la sortie j+1 si l'entrée i déclenche la sortie j) ou conditionnelle. Le module de dialogue a accès à l'ensemble de la mémoire du robot et peut donc donner une réponse en fonction de valeurs de la mémoire du robot; les sorties peuvent être effacées après avoir été utilisées pour ajouter de la variété au dialogue ; à titre d'exemple :.
- U : (comment vas-tu ) ['je vais bien' 'je te l'ai déjà dis'] # séquentiel par défaut
- U : (comment vas-tu) Arandom ['je vais bien' 'je vais très bien' 'je vais super bien']
- U : (quel est ton nom) Afirst ['mon nom est $name' 'je n'ai pas de nom'] # Ici 'mon nom est $name' est affichable uniquement si $name existe.
- U : (comment vas-tu) Adelete je vais bien # effacer la règle après l'affichage de la réponse
12) L_ancer un sous-dialogue, topic:
- U : (je veux parler de voitures) topic :cars La figure 3 représente les blocs de traitement d'un module de gestion d'un comportement dialogue et d'un module de reconnaissance vocale selon plusieurs modes de réalisation de l'invention.
Lorsqu'un dialogue est exécuté par le runtime embarqué sur le robot, le moteur de dialogue 230 agit à la fois sur le réseau et les listes de dialogues 310, 330 et sur la reconnaissance vocale 220. Le réseau de dialogue 310 est l'ensemble structuré des dialogues qui indique la façon de les articuler : d'abord une introduction puis un autre dialogue par exemple. Le réseau donne un sens aux dialogues. La liste 330 est la liste non structurée des dialogues actifs qui est présente à la fois dans le moteur de dialogue et dans le moteur de reconnaissance vocale.
Un dialogue peut être activé ou désactivé (ce qui affecte simultanément toutes ses entrées 340). L'activation/désactivation peut être déclenchée de manière automatique par un trigger (ut :) ou de manière manuelle par un utilisateur. Le fait de minimiser le nombre de dialogues actifs à un moment donné permet d'optimiser les performances de la reconnaissance vocale en qualité et temps de traitement. On peut paramétrer les dialogues dans l'éditeur de manière à ce qu'ils restent actifs même en cas d'ouverture d'un nouveau dialogue, la solution par défaut étant que l'ouverture d'un nouveau dialogue ferme le dialogue précédent. Une entrée d'un dialogue peut également être activée/désactivée individuellement, soit par branchement sur un sous-dialogue soit par effacement effectué pour éviter une répétition d'un élément du dialogue en cours. Le moteur de dialogue 230 comprend un module de reconnaissance de motifs 320 dont le fonctionnement a été illustré en commentaire à la figure 2 (point 1 ). Il comprend également un arbre de concepts dynamiques 350.
Un concept est une liste de mots que l'on définit comme sémantiquement équivalents dans un dialogue donné. A titre d'exemple, la phrase « j'habite » est considérée dans un dialogue donné comme sémantiquement équivalente aux phrases « je vis » « je loge » « j'habite », « moi, je vis » «moi, je loge » « moi j'habite » ...Nous allons donc définir un concept (habiter) et un concept (je) :
Concept :(habiter) (vis loge habite habiter vivre loger)
Concept : (je) (moi je j'ai)
La phrase s'écrira donc à plusieurs endroits dans les dialogues :
U : (~je -habiter)
Un arbre de concept dynamique groupe plusieurs concepts organisés hiérarchiquement. Il sera également possible de modifier la liste des phrases rattachées à un concept à l'exécution. A titre d'exemple, le concept « nourriture » regroupe les concepts « fruits » et « viande » et le concept « fruits » regroupe « banane » et « orange » : Concept :(nourriture) (-fruit -viande)
Concept :(fruit) (banane orange)
Il sera possible d'ajouter de nouveaux fruits pendant les dialogues. Les dialogues suivants pourront ainsi être réalisés :
U : ( connais tu _{de la des} _~nourriture ) oui je connais $1 $2 Ce qui donne à l'exécution :
Utilisateur : connais tu la banane ?
Robot : oui je connais la banane
U : (indique moi un fruit) -fruit est un fruit
Utilisateur : indique moi un fruit
Robot : banane est un fruit
L'entrée dans un dialogue de la liste 330 active une grammaire dans la liste de grammaires 360 du module de reconnaissance vocale 220. La liste d'entrées 370 du module de reconnaissance vocale est activée/désactivée de manière synchronisée avec la liste d'entrées 340 du module de dialogue. La modification d'un concept dans l'arbre des concepts dynamiques 350 du module de dialogue 230 entraîne une adaptation des entrées dynamiques 380 du module de reconnaissance vocale.
La figure 4 représente un exemple d'arborescence de plusieurs niveaux de dialogues selon plusieurs modes de réalisation de l'invention.
Plusieurs dialogues sont représentés sur la figure. Ils peuvent tourner en parallèle (avec une pile de priorités), un dialogue pouvant en remplacer un autre.
Un dialogue comprend trois niveaux logiques dans le module moteur de dialogue 230 embarqué sur le robot:
- Un niveau 410 comprenant les dialogues actifs par défaut : des dialogues généraux 41 10 (salutation, présentation, humeur) et un dialogue dit « système » 4120 permettant de connaître l'état du robot (batterie, température, configuration...) ou donner des commandes élémentaires (se lever, marcher...) ; la possibilité non seulement d'obtenir des informations sur l'état des fonctions vitales du robot, mais de pouvoir en commander certaines (se mettre en mode veille, se brancher à une prise d'alimentation...) permet d'abaisser la barrière psychologique ressentie par des utilisateurs non techniciens dans leur confrontation à des robots ;
- Un niveau 420 comprenant les routines de sélection des dialogues en fonction des entrées de l'utilisateur, ladite sélection pouvant être déclenchée par un trigger Ut :; plusieurs sélections 4210, 4220, 4230, 4240, par exemple, peuvent être programmées ;
- Un niveau 430 comprenant des applications 4310, 4320, 4330, par exemple, qui sont des enchaînements de dialogues ou des fichiers et sont susceptibles d'être lancés automatiquement ou manuellement par un utilsateur.
Par défaut un dialogue contenant des généralités et des commandes systèmes ('parle plus fort' par exemple) sont chargés. Des phrases trigger peuvent alors déclencher le chargement d'autres dialogues par exemple pour :
- Changer de sujet de discussion (parler de voitures, de sa journée...) ;
- Expliquer ce que le robot sait faire ('je sais raconter une histoire') ; cette partie contient des éléments dynamiques : mp3 installés, applications installées ; toute application pouvant être lancée par la reconnaissance vocale doit contenir des informations : son thème (jeu, informations...) et optionnellement un dialogue précisant l'application (Le robot peut indiquer qu'Alice au pays des merveilles est une histoire avec une petite fille...) ;
- Lancer le dialogue d'une application (une histoire interactive par exemple)
Un choix peut être proposé: deviner une personne célèbre, sélectionner un comportement, choisir un produit, chercher une personne dans une entreprise... Le choix peut être fait soit par le robot (l'humain doit comprendre ce que veut le robot), soit par l'humain (le robot doit comprendre le choix du robot). Ce choix peut être réalisé avec un dialogue comme décrit précédemment mais ce dialogue implique de répéter souvent les même phrases ce qui rend le dialogue difficile à écrire : U : (devine à qui je pense) c'est un homme ?
A : (oui) c'est une femme ?
B : (oui) ...
B : (non) ...
A : (non) c'est un personnage de fiction ?
La notion de concept permet de parcourir un arbre des possibles. Un concept est un mot lié à d'autres mots, phrases ou concepts.
Concept : (homme) ['il respire' 'c'est un humain']
Concept : (superman) [-homme superhero -vole -cape]
Concept : (halliday) [-chanteur -homme]
Concept: (tous) [-superman -halliday]
La nature hiérarchique de l'arbre des possibles est illustrée sur la figure 4a pour l'exemple ci-dessus.
Les mots représentent les feuilles de l'arbre. Les concepts représentent les nœuds de l'arbre. Les nœuds et les feuilles sont des éléments du pattern matching (reconnaissance de motif).
Avec une seule entrée:
U :(['sait il' 'est il' -superman) oui
Nous pourrons matcher :
Sait il voler
Est-il un homme
Est-il superman
Nous pourrons aussi proposer :
U : (aide moi) -superman
Ici nous affichons une des feuilles de l'arbre.
Utilisateur : aide moi Robot : il respire.
Pour que l'humain devine superman, il suffit d'écrire :
U : (c'est superman ?) oui tu as trouvé !
U : (-superman) oui
Proposai : non, ce n'est pas lui.
Pour que le robot devine un personnage, il suffit d'écrire :
U : (devine à qui je pense) ?~tous
La figure 5 représente un organigramme simplifié des traitements du module de reconnaissance vocale dans un mode de réalisation de l'invention.
Deux niveaux de reconnaissance vocale sont superposés :
- Un premier niveau 510 comprend un nombre de mots reconnaissables limité ; les mots reconnus doivent impérativement figurer dans une liste fermée ; des exemples de logiciel de reconnaissance vocale de ce type sont fournis par les sociétés Nuance™ (marque Vocon™), Acapella™ et, pour les logiciels utilisant un langage naturel, Dragon™ ;
- Un deuxième niveau 520 de reconnaissance vocale est de type ouvert, c'est-à-dire que la diversité des mots reconnus est beaucoup plus importante ; des exemples de logiciel de reconnaissance vocale de ce type sont fournis notamment par la société Nuance™ sous la marque NMSP™ ; ces logiciels permettent de gérer des mots qui ne sont pas connus à l'avance qui seront désignés par un joker numéroté
$x.
Une architecte de reconnaissance vocale de ce type, comprenant deux niveaux, l'un fermé 510 et l'autre ouvert 520 (par exemple du type dictée vocale) permet d'optimiser le couple vitesse/qualité de reconnaissance La figure 5 illustre la manière dont sont fusionnés les deux types de reconnaissance vocale :
- Cas 530 : le robot est dans le même contexte que celui de l'utilisateur et ce qu'il dit est reconnu par la reconnaissance limitée ; alors la dictée vocale n'est pas nécessaire ; - Cas 540 : le robot n'est pas dans le même contexte que celui de l'utilisateur (l'utilisateur parle de voiture mais le robot pense qu'il parle de nourriture) ; alors les phrases reconnues par la dictée vocale peuvent être rapprochées d'un dialogue ;
- Cas 550 : la reconnaissance de type 520 complète la reconnaissance de type 510 ;
- Cas 560 : la reconnaissance ouverte confirme un choix possible de la reconnaissance fermée ;
- Cas 570 : le robot ne comprend pas ce que dit l'utilisateur ; il fait une proposition pour valider le domaine du dialogue ou passer à un autre sujet, les cas ci-dessus 530 à 560 pouvant alors s'enchaîner sur cette relance du robot.
La figure 6 représente le flot de données entre plusieurs modules logiciels configurés pour mettre œuvre l'invention dans plusieurs de ses modes de réalisation.
La figure indique les échanges de données entre les événements en entrée 610, le dialogue 620, les événements en sorties 630 et un moteur d'intelligence artificielle embarqué sur le robot 640:
- Le dialogue 620 attend en entrée des événements (par exemple un sourire 6130 ou de la parole de l'utilisateur 6120 ;
- Le moteur de dialogue peut dynamiquement charger de nouveaux dialogues 6240 ou des données dynamiques 6230 (par exemple un fichier mp3 ou une application installés sur le) ;
- Il formule sa réponse sous forme de parole expressive 6310, autrement-dit, une parole comportant des informations sur la façon d'interpréter le texte (une didascalie pour le robot), comportement 6320, émotion 6330, événement 6340 ;
- Les sorties du dialogue peuvent être envoyées à différents modules d'intelligence artificielle 640:
La parole et les expressions sont traitées par un moteur de traitement de l'expression 6410, Narrateur, utilisant les mouvements et la synthèse vocale, selon les modalités décrites notamment dans le demande de brevet internationale publiée sous le n °WO201 1 /003628; Les émotions sont traitées par un moteur émotionnel 6420 qui fait évoluer l'émotion du robot pour les stabiliser dans le temps ;
Un moteur de décision 6430 décide de lancer ou non un comportement et peut indiquer la décision au moteur de dialogue sous forme d'événement ; le robot peut refuser de se lever si les conditions ne sont pas vérifiées pour le faire.
Ce comportement peut le choix d'utiliser la reconnaissance vocale ou le clavier en entrée, comme explicité plus haut en commentaire à la figure 4 ; le comportement déclenche la parole et l'interruption de la parole en fonction des actions de l'utilisateur, par exemple, ouvrir la bouche, tourner les talons, tourner la tête, etc ..
Le dialogue comprend un interpréteur 6230 et un modèle de dialogue 6240. Un modèle de dialogue comprend :
- Un réseau de dialogues ainsi que les dialogues actifs ;
- L'ensemble des entrées des dialogues ainsi que les entrées actives ;
- L'ensemble des sorties des dialogues ;
- L'ensemble des propositions des dialogues.
Les références 6310, 6320, 6330, 6340 représentent les sorties du moteur de dialogue sous forme d'événements.
La figure 6a illustre le fonctionnement d'un moteur d'émotion dans certains modes de réalisation de l'invention.
Comme expliqué ci-dessus en commentaire à la figure 2, l'émotion du robot est un point dans un espace multidimensionnel des émotions (par exemple TRISTE, CONTENT, FURIEUX, FATIGUE...).
Le moteur de dialogue, mais pas seulement le moteur de dialogue par exemple, son état de batterie, des visages rencontrés, l'heure sont également source d'évolution de l'émotion, envoie une impulsion au moteur émotionel qui déplace son émotion courante. Cette émotion se stabilise vers l'émotion neutre (0,0,0,0,0,0.) avec le temps.
La figure 6b illustre le fonctionnement d'un moteur de décision dans certains modes de réalisation de l'invention. Le moteur de décision prend en compte l'ensemble des demandes d'exécution de comportements et l'ensemble des contraintes du robot sous forme de ressources disponibles. Une demande d'exécution du moteur de dialogue n'est qu'un élément de la décision. L'ensemble des variables/événements du robot participe à la décision (batterie, température, émotions...).
La figure 7 représente les différentes fonctions en entrée et en sortie du module de gestion d'un dialogue pour mettre œuvre l'invention dans plusieurs de ses modes de réalisation.
La figure illustre qu'un dialogue 710 prend en entrée aussi bien le résultat de la reconnaissance vocale 730 que des entrées clavier 740 ou des événements 720. Des données dynamiques 750, telles que des fichiers mp3 ou un applicatif peuvent également être prises en compte. Avantageusement, à partir du traitement des images reçues par une caméra embarquée sur le robot, le module de dialogue analyse la position de la tête du/des locuteurs pour savoir si on s'adresse à lui. De même, il peut évaluer les positions des lèvres pour savoir si l'utilisateur parle ou non et par conséquent, s'il faut écouter ou s'il peut parler (élément 760).
Egalement, la reconnaissance de visage permet, au même titre que la parole elle-même, d'indiquer le nom du locuteur courant.
Une réponse 'parole' du moteur de dialogue peut être donnée par la voix du robot ou sur un écran 7A0 (ou les deux).
Comme déjà indiqué, le module dialogue est en mesure de déclencher l'exécution de comportements (élément 7B0).
La figure 8 représente le modèle de données d'un module d'analyse et d'interprétation de dialogues pour mettre en œuvre l'invention dans plusieurs de ses modes de réalisation.
L'analyseur 810 retrouve des mots d'un lexique 81 1 0 dans des dialogues 8120 qui lui sont fournis en entrée. Les dialogues en entrée ont le modèle de données 8140. Des librairies 8130 « Libparser.so » de parsing du contenu des dialogues réalisent cette fonction. Il permet de construire en mémoire, pour l'interpréteur 820 un modèle de dialogues et l'ensemble des entrées de ces dialogues. A l'exécution, l'interpréteur maintient une pile 8210 de dialogues actifs ainsi que l'ensemble des entrées actives pour chaque utilisateur. Les dialogues « parsés » en entrée de l'interpréteur ont la forme 8220 et le modèle de données 8240. L'interpréteur comporte des librairies 8240 « Libinterpreter.so » pour remplir ses fonctions d'interprétation.
En effet, concepts, variables et dialogues courants peuvent être rendus dépendants de l'utilisateur.
Ainsi, les règles suivantes permettent de changer d'utilisateur :
U : (e :faceRecognition ) ($name = $faceRecognition)
U: (mon nom est _*) ($name = $1 )
Dans ce cas les variables dépendant de l'utilisateur (préférences, âge, taille...) sont automatiquement réinitialisées ou affectées selon l'historique de l'utilisateur.
Les comportements 830 ont un modèle de données 8310 de variables d'état. La figure 9 représente l'architecture des modules logiciels implantés sur un robot configuré pour mettre œuvre l'invention dans plusieurs de ses modes de réalisation.
Un robot tel que NAO est avantageusement doté de logiciels de haut niveau permettant le pilotage des fonctions du robot dans un mode de réalisation de l'invention. Une architecture logicielle de ce type, dénommée NAOQI, a été divulguée notamment dans la demande de brevet WO2009/124955 publiée le 15/10/2009. Elle comporte les fonctions de base de gestion des communications entre un robot et un PC ou un site distant et d'échange de logiciels qui fournissent l'infrastructure logicielle nécessaire à la mise en œuvre de la présente invention.
NAOQI est un framework optimisé pour les applications robotiques ; il supporte plusieurs langages, notamment C++, Python, Urbi, java, matlab. Dans le cadre de la présente invention, sont particulièrement utiles les modules de NAOQI suivants :
- le module ALMemory, 910, gère une mémoire partagée entre les différents modules de NAOQI ;
- le module ALMotion, 920 gère les mouvements du robot ;
- le module Synthèse vocale, 930, génère les paroles du robot ;
- le module Reconnaissance fermée, 940, réalise les fonctions de la référence 510 de la figure 5 ; le module Reconnaissance ouverte, 950, réalise les fonctions de la référence 520 de la figure 6 ;
le module ALDialog, 960, réalise les fonctions du module moteur de dialogue de référence 230 sur la figure 2 ;
le module Narrateur, 970, réalise les fonctions de la référence 6410 de la figure 6 ;
le module Moteur de décision, 980, réalise les fonctions de la référence 6420 de la figure 6 ;
le module Moteur d'émotion, 990, réalise les fonctions de la référence 6430 de la figure 6.
Ces modules sont avantageusement codés en C++. La figure indique également les flots de données entre modules.
Comme indiqué en commentaire à la figure 2, les dialogues sont générés dans un module d'édition de dialogue 9A0 implanté sur un ordinateur standard. Ils peuvent également être générés dans l'atelier Chorégraphe. La cohérence entre les dialogues du module ALDialog 960 et ceux du module d'édition 9A0 est assurée. Le flot de données entre l'analyseur 810 et l'interpréteur 820 (qui sont représentés sur la figure 8) du moteur de dialogue 960 est produit à la fois sur l'ordinateur au moment de l'édition et sur le robot à l'exécution.
L'analyseur peut lire un fichier de description de dialogue u : (....)
L'interpréteur construit, à partir du résultat de l'analyseur (un dialogue écrit sans erreur de syntaxe), le modèle de dialogue en mémoire.
Les exemples décrits ci-dessus sont donnés à titre d'illustration de modes de réalisation de l'invention. Ils ne limitent en aucune manière le champ de l'invention qui est défini par les revendications qui suivent.

Claims

REVENDICATIONS
1 . Robot humanoïde (1 10) comprenant : i) au moins un capteur choisi dans un groupe comprenant des premiers capteurs de type sonore et des deuxièmes capteurs, d'au moins un deuxième type, d'événements générés par au moins un utilisateur dudit robot, ii) au moins un module (610) de reconnaissance d'événements en sortie dudit au moins un capteur et, iii) au moins un module (630) de génération d'événements vers ledit au moins un utilisateur, un module (620) de dialogue avec ledit au moins un utilisateur, ledit module de dialogue recevant en entrée des sorties dudit au moins un module de reconnaissance et produisant des sorties vers ledit module de génération d'événements choisies dans un groupe comprenant des paroles, des mouvements, des expressions et des émotions, ledit robot étant caractérisé en ce qu'il comprend en outre un moteur d'intelligence artificielle (640) configuré pour piloter les sorties du module de génération d'événements.
2. Robot humanoïde selon la revendication 1 , caractérisé en ce que le pilotage du module de génération d'événements par le moteur d'intelligence artificielle est effectué en fonction du contexte du dialogue et de variables définissant la configuration présente et prévisionnelle du robot.
3. Robot humanoïde selon l'une des revendications 1 à 2, caractérisé en ce que ledit au moins un module de reconnaissance d'événements reçoit des entrées en provenance d'au moins deux capteurs appartenant à au moins deux types différents, et en ce que ledit au moins un module de génération d'événements en sortie dudit module de dialogue est apte à produire en sortie des événements prenant en compte lesdites entrées en provenance desdits au moins deux capteurs.
4. Robot humanoïde selon l'une des revendications 1 à 3, caractérisé en ce que ledit au moins un module de reconnaissance est apte à structurer les entrées en concepts selon un arbre hiérarchique dynamique.
5. Robot humanoïde selon l'une des revendications 1 à 4, caractérisé en ce qu'une entrée dans ledit au moins un module de reconnaissance s'applique à des entrées textuelles ou vocales et active une grammaire dans ledit module de dialogue.
6. Robot humanoïde selon la revendication 5, caractérisé en ce qu'une entrée dans ledit au moins un module de reconnaissance active/désactive la reconnaissance de ladite entrée.
7. Robot humanoïde selon l'une des revendications 5 à 6, caractérisé en ce que ledit au moins un module de reconnaissance comprend un premier et un deuxième sous-modules, le premier sous-module opérant sur une liste fermée de mots rattachés à au moins un concept et le deuxième sous-module opérant sur une liste ouverte de mots.
8. Robot humanoïde selon la revendication 7, caractérisé en ce qu'une sortie du premier sous-module est seule fournie au module de dialogue.
9. Robot humanoïde selon la revendication 7, caractérisé en ce qu'une sortie du deuxième sous-module est seule fournie au module de dialogue.
10. Robot humanoïde selon la revendication 7, caractérisé en ce qu'une sortie du premier sous-module et une sortie du deuxième sous-module sont conjointement fournies au module de dialogue.
1 1 . Robot humanoïde selon la revendication 7, caractérisé en ce qu'une sortie du premier sous-module est d'abord seule fournie au module de dialogue, ladite sortie du premier sous-module étant confirmée dans le module de dialogue par une sortie du deuxième sous-module.
12. Robot humanoïde selon l'une des revendications 7 à 1 1 , caractérisé en ce qu'aucune des sorties des premier et deuxième sous-modules ne génère de sortie du module de dialogue et en ce que ledit robot propose au moins une entrée audit au moins un utilisateur.
13. Robot humanoïde selon l'une des revendications 1 à 12, caractérisé en ce que le module de dialogue reçoit en outre en entrée des éléments dynamiques en provenance d'une application.
14. Robot humanoïde selon l'une des revendications 1 à 13, caractérisé en ce qu'au moins une sortie du module de dialogue est fournie à un module apte à exécuter une fonction choisie dans un groupe de fonctions de génération d'au moins une expression dudit robot, de décision de génération d'au moins un comportement dudit robot et de génération d'au moins une émotion dudit robot.
15. Robot humanoïde selon la revendication 14, caractérisé en ce que ladite fonction de génération d'au moins un comportement prend en compte les contraintes du système dudit robot.
16. Robot humanoïde selon la revendication 14, caractérisé en ce que ladite fonction de génération d'au moins une émotion est apte à générer une suite d'expressions prédéfinies entre un état neutre et un état prédéfini en réponse à des événements en entrée.
17. Robot humanoïde selon l'une des revendications 1 à 16, caractérisé en ce qu'il comprend en outre un module de reconnaissance visuelle, ledit module étant apte à interpréter au moins un signe dudit au moins un utilisateur comme un commencement ou une fin d'une séquence d'un dialogue.
18. Robot humanoïde selon l'une des revendications 4 à 17, caractérisé en ce que ledit module de dialogue comprend un sous-module d'analyse lexicale et un sous-module d'interprétation des sorties dudit sous-module d'analyse lexicale apte à générer des concepts auxquels sont rattachés les mots du dialogue courant.
19. Robot humanoïde selon l'une des revendications 1 à 18, caractérisé en ce que ledit module de dialogue est apte à traiter des questions et des commandes dudit au moins un utilisateur relatives à l'état de son système physique et/ou logique.
20. Procédé de dialogue entre un robot humanoïde et au moins un utilisateur, comprenant : i) au moins une étape de reconnaissance d'entrées en provenance d'au moins un capteur choisi dans un groupe comprenant des premiers capteurs de type sonore et des deuxièmes capteurs, d'au moins un deuxième type, d'événements générés par ledit au moins un utilisateur , ii) une étape de génération d'événements vers ledit au moins un utilisateur, et, iii) une étape de dialogue avec ledit dialogue avec ledit au moins un utilisateur, ladite étape de dialogue recevant en entrée des sorties de ladite au moins une étape de reconnaissance et produisant des sorties vers ladite étape de génération d'événements choisies dans un groupe comprenant des paroles, des mouvements, des expressions et des émotions, ledit procédé étant caractérisé en ce qu'il comprend en outre une étape de pilotage des sorties du module de génération d'événements par un moteur d'intelligence artificielle.
21 . Procédé de dialogue selon la revendication 20, caractérisé en ce que le pilotage du module de génération d'événements par le moteur d'intelligence artificielle est effectué en fonction du contexte du dialogue et de variables définissant la configuration présente et prévisionnelle du robot.
22. Procédé de dialogue selon l'une des revendications 20 à 21 , caractérisé en ce que ledit robot dialogue avec au moins deux utilisateurs, des paramètres caractérisant lesdits au moins deux utilisateurs étant stockés dans une mémoire dudit robot pour être utilisés quand ledit robot reconnaît un des au moins deux utilisateurs.
23. Programme d'ordinateur embarqué sur un robot humanoïde comprenant des instructions de code de programme permettant l'exécution du procédé selon l'une des revendications 20 à 22 lorsque le programme est exécuté sur un ordinateur, ledit programme étant adapté pour gérer un dialogue entre ledit robot humanoïde et au moins utilisateur, ledit programme d'ordinateur comprenant : i) au moins un module de reconnaissance d'événements en sortie d'au moins un capteur choisi dans un groupe comprenant des premiers capteurs de type sonore et des deuxièmes capteurs, d'au moins un deuxième type, d'événements générés par ledit au moins un utilisateur, ii) au moins un module de génération d'événements vers ledit au moins un utilisateur, et, iii) un module de dialogue avec ledit au moins un utilisateur, ledit module de dialogue recevant en entrée des sorties dudit au moins un module de reconnaissance et produisant des sorties vers ledit module de génération d'événements choisies dans un groupe comprenant des paroles, des mouvements, des expressions et des émotions, ledit programme étant caractérisé en ce qu'il comprend en outre un moteur d'intelligence artificielle configuré pour piloter les sorties du module de génération d'événements..
24. Programme d'ordinateur comprenant des instructions de code de programme configurées pour générer un programme d'ordinateur selon la revendication 23 et le transmettre à au moins un robot humanoïde, lesdites instructions étant générées dans une interface de type ChatScript.
PCT/EP2013/057043 2012-04-04 2013-04-03 Robot apte a integrer des dialogues naturels avec un utilisateur dans ses comportements, procedes de programmation et d'utilisation dudit robot WO2013150076A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201380029253.5A CN104350541B (zh) 2012-04-04 2013-04-03 能够将与用户的自然对话合并到其行为中的机器人,以及编程和使用所述机器人的方法
EP13714282.4A EP2834811A1 (fr) 2012-04-04 2013-04-03 Robot apte a integrer des dialogues naturels avec un utilisateur dans ses comportements, procedes de programmation et d'utilisation dudit robot
US14/390,746 US10052769B2 (en) 2012-04-04 2013-04-03 Robot capable of incorporating natural dialogues with a user into the behaviour of same, and methods of programming and using said robot
JP2015503871A JP6367179B2 (ja) 2012-04-04 2013-04-03 ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1253073A FR2989209B1 (fr) 2012-04-04 2012-04-04 Robot apte a integrer des dialogues naturels avec un utilisateur dans ses comportements, procedes de programmation et d'utilisation dudit robot
FR1253073 2012-04-04

Publications (1)

Publication Number Publication Date
WO2013150076A1 true WO2013150076A1 (fr) 2013-10-10

Family

ID=46785533

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2013/057043 WO2013150076A1 (fr) 2012-04-04 2013-04-03 Robot apte a integrer des dialogues naturels avec un utilisateur dans ses comportements, procedes de programmation et d'utilisation dudit robot

Country Status (6)

Country Link
US (1) US10052769B2 (fr)
EP (1) EP2834811A1 (fr)
JP (1) JP6367179B2 (fr)
CN (1) CN104350541B (fr)
FR (1) FR2989209B1 (fr)
WO (1) WO2013150076A1 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2933067A1 (fr) 2014-04-17 2015-10-21 Aldebaran Robotics Procédé de réalisation de dialogue multimodal entre un utilisateur et un robot humanoïde, produit de programme informatique et robot humanoïde mettant en oeuvre ce procédé
EP2933070A1 (fr) * 2014-04-17 2015-10-21 Aldebaran Robotics Procédés et systèmes de manipulation d'un dialogue avec un robot
CN105468145A (zh) * 2015-11-18 2016-04-06 北京航空航天大学 一种基于手势和语音识别的机器人人机交互方法和装置
WO2019211552A1 (fr) * 2018-05-04 2019-11-07 Spoon Procede de commande d'une pluralite d'effecteurs d'un robot

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9634855B2 (en) 2010-05-13 2017-04-25 Alexander Poltorak Electronic personal interactive device that determines topics of interest using a conversational agent
FR2989209B1 (fr) * 2012-04-04 2015-01-23 Aldebaran Robotics Robot apte a integrer des dialogues naturels avec un utilisateur dans ses comportements, procedes de programmation et d'utilisation dudit robot
US10163455B2 (en) * 2013-12-03 2018-12-25 Lenovo (Singapore) Pte. Ltd. Detecting pause in audible input to device
US9421688B2 (en) * 2013-12-12 2016-08-23 Beatbots, LLC Robot
US9358475B2 (en) 2013-12-12 2016-06-07 Beatbots, LLC Robot
WO2016173326A1 (fr) * 2015-04-30 2016-11-03 北京贝虎机器人技术有限公司 Système et procédé d'interaction reposant sur un sujet
JP6992957B2 (ja) 2015-10-21 2022-01-13 国立大学法人大阪大学 エージェント対話システム
JP1580536S (fr) * 2016-01-29 2017-07-03
JP2017151517A (ja) * 2016-02-22 2017-08-31 富士ゼロックス株式会社 ロボット制御システム
JP6726388B2 (ja) * 2016-03-16 2020-07-22 富士ゼロックス株式会社 ロボット制御システム
CN105690408A (zh) * 2016-04-27 2016-06-22 深圳前海勇艺达机器人有限公司 一种基于数据字典的情感识别机器人
JP6747506B2 (ja) * 2016-04-28 2020-08-26 富士通株式会社 ロボット
DE102016115243A1 (de) * 2016-04-28 2017-11-02 Masoud Amri Programmieren in natürlicher Sprache
WO2017197018A2 (fr) 2016-05-10 2017-11-16 Trustees Of Tufts College Systèmes et procédés permettant la généralisation et l'apprentissage en une seule fois en ligne par des systèmes intelligents d'éléments relatifs à une tâche et transfert vers une cohorte de systèmes intelligents
CN107515570A (zh) * 2016-06-17 2017-12-26 青海汉拉信息科技股份有限公司 汉语文本自适应云计算集群遥控的全自动执行系统
US10239205B2 (en) * 2016-06-29 2019-03-26 International Business Machines Corporation System, method, and recording medium for corpus curation for action manifestation for cognitive robots
CN106182007B (zh) * 2016-08-09 2018-07-27 北京光年无限科技有限公司 一种用于智能机器人的卡顿处理方法及装置
CN106346487B (zh) * 2016-08-25 2018-09-21 威仔软件科技(苏州)有限公司 交互式vr沙盘展示机器人
CN106445147B (zh) * 2016-09-28 2019-05-10 北京百度网讯科技有限公司 基于人工智能的对话系统的行为管理方法及装置
CN108115678B (zh) * 2016-11-28 2020-10-23 深圳光启合众科技有限公司 机器人及其动作控制方法和装置
TWI612472B (zh) * 2016-12-01 2018-01-21 財團法人資訊工業策進會 指令轉換方法與系統以及非暫態電腦可讀取記錄媒體
EP3551393A4 (fr) * 2016-12-12 2020-08-12 Microsoft Technology Licensing, LLC Génération de gestes de robot
JP6842095B2 (ja) * 2017-03-10 2021-03-17 日本電信電話株式会社 対話方法、対話システム、対話装置、およびプログラム
US11151997B2 (en) * 2017-03-10 2021-10-19 Nippon Telegraph And Telephone Corporation Dialog system, dialog method, dialog apparatus and program
US10850398B2 (en) * 2017-05-11 2020-12-01 Misty Robotics, Inc. Infinite robot personalities
US11625622B2 (en) 2017-06-15 2023-04-11 Microsoft Technology Licensing, Llc Memorable event detection, recording, and exploitation
JP2019005842A (ja) * 2017-06-23 2019-01-17 カシオ計算機株式会社 ロボット、ロボットの制御方法及びプログラム
US10569420B1 (en) * 2017-06-23 2020-02-25 X Development Llc Interfacing with autonomous devices
KR102353486B1 (ko) * 2017-07-18 2022-01-20 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US10896678B2 (en) 2017-08-10 2021-01-19 Facet Labs, Llc Oral communication device and computing systems for processing data and outputting oral feedback, and related methods
KR101854576B1 (ko) * 2017-11-10 2018-05-03 베스핀글로벌 주식회사 챗봇 기반 클라우드 관리 시스템 및 그의 운영 방법
US10572585B2 (en) 2017-11-30 2020-02-25 International Business Machines Coporation Context-based linguistic analytics in dialogues
WO2019133689A1 (fr) * 2017-12-29 2019-07-04 DMAI, Inc. Système et procédé de réponse sélective de périphérique d'animatronique pour le dialogue homme-machine
EP3732676A4 (fr) 2017-12-29 2021-09-22 DMAI, Inc. Système et procédé d'initiation intelligente d'un dialogue homme-machine basé sur des entrées sensorielles multimodales
CN111801730A (zh) * 2017-12-29 2020-10-20 得麦股份有限公司 用于人工智能驱动的自动伴侣的系统和方法
US11024294B2 (en) 2017-12-29 2021-06-01 DMAI, Inc. System and method for dialogue management
US11468894B2 (en) 2017-12-29 2022-10-11 DMAI, Inc. System and method for personalizing dialogue based on user's appearances
US10691113B1 (en) * 2018-02-06 2020-06-23 Anthony Bergman Robotic process control system
WO2019160613A1 (fr) * 2018-02-15 2019-08-22 DMAI, Inc. Système et procédé de configuration de programme dynamique
CN110309254A (zh) * 2018-03-01 2019-10-08 富泰华工业(深圳)有限公司 智能机器人与人机交互方法
CN108406811A (zh) * 2018-03-19 2018-08-17 重庆鲁班机器人技术研究院有限公司 机器人编程装置、系统及方法
FR3081578B1 (fr) * 2018-05-25 2022-08-12 Hoomano Dispositif et methode de mesure d’une caracteristique d’une interaction entre un utilisateur et un dispositif d’interaction
EP3576084B1 (fr) * 2018-05-29 2020-09-30 Christoph Neumann Conception du dialogue efficace
CN109063060A (zh) * 2018-07-20 2018-12-21 吴怡 一种语义网法律咨询服务机器人
US11279036B2 (en) 2018-10-01 2022-03-22 Toyota Research Institute, Inc. Methods and systems for implementing customized motions based on individual profiles for identified users
US11023787B2 (en) * 2018-10-19 2021-06-01 Oracle International Corporation Method, system and program for generating decision trees for chatbots dialog flow capabilities
US20220055224A1 (en) * 2018-11-05 2022-02-24 DMAI, Inc. Configurable and Interactive Robotic Systems
USD916161S1 (en) 2018-11-05 2021-04-13 DMAI, Inc. Robot
USD888165S1 (en) 2018-11-05 2020-06-23 DMAI, Inc. Robot
US11816551B2 (en) 2018-11-05 2023-11-14 International Business Machines Corporation Outcome-based skill qualification in cognitive interfaces for text-based and media-based interaction
USD892886S1 (en) * 2018-11-08 2020-08-11 Genesis Robotics And Motion Technologies, LP Robot
USD893573S1 (en) * 2018-12-03 2020-08-18 Cloudminds (Beijing) Technologies Co., Ltd. Robot
US20200298401A1 (en) * 2019-01-03 2020-09-24 Lucomm technologies, Inc Semantic Robotic System
KR20210020312A (ko) * 2019-08-14 2021-02-24 엘지전자 주식회사 로봇 및 그의 제어 방법
US11449682B2 (en) * 2019-08-29 2022-09-20 Oracle International Corporation Adjusting chatbot conversation to user personality and mood
CN110570866A (zh) * 2019-09-11 2019-12-13 百度在线网络技术(北京)有限公司 语音技能创建方法、装置、电子设备和介质
US11775772B2 (en) 2019-12-05 2023-10-03 Oracle International Corporation Chatbot providing a defeating reply
US11252113B1 (en) * 2021-06-15 2022-02-15 Drift.com, Inc. Proactive and reactive directing of conversational bot-human interactions
CN116847957A (zh) 2021-06-28 2023-10-03 三星电子株式会社 机器人和用于操作机器人的方法
KR20230111061A (ko) * 2022-01-17 2023-07-25 삼성전자주식회사 로봇 및 이의 제어 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030152261A1 (en) * 2001-05-02 2003-08-14 Atsuo Hiroe Robot apparatus, method and device for recognition of letters or characters, control program and recording medium
WO2009124955A2 (fr) 2008-04-09 2009-10-15 Aldebaran Robotics Systeme et procede de communication distribue et modulaire comprenant au moins un serveur, au moins un terminal distant, et au moins un terminal mobile capable de communiquer avec le terminal distant relie en reseau audit serveur
WO2009124951A1 (fr) 2008-04-09 2009-10-15 Aldebaran Robotics Architecture de controle - commande d'un robot mobile utilisant des membres articules
WO2011003628A2 (fr) 2009-07-10 2011-01-13 Aldebaran Robotics S.A Systeme et procede pour generer des comportements contextuels d'un robot mobile
WO2012000927A1 (fr) 2010-07-02 2012-01-05 Aldebaran Robotics Robot humanoide joueur, methode et systeme d'utilisation dudit robot
WO2012010451A1 (fr) 2010-07-23 2012-01-26 Aldebaran Robotics Robot humanoide dote d'une interface de dialogue naturel, procede de controle du robot et programme correspondant

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1136194A4 (fr) * 1998-11-30 2001-09-26 Sony Corp Robot, procede de commande de robot et support d'enregistrement de programme
US6513006B2 (en) * 1999-08-26 2003-01-28 Matsushita Electronic Industrial Co., Ltd. Automatic control of household activity using speech recognition and natural language
US6731307B1 (en) * 2000-10-30 2004-05-04 Koninklije Philips Electronics N.V. User interface/entertainment device that simulates personal interaction and responds to user's mental state and/or personality
JP4150198B2 (ja) * 2002-03-15 2008-09-17 ソニー株式会社 音声合成方法、音声合成装置、プログラム及び記録媒体、並びにロボット装置
JP2003305677A (ja) * 2002-04-11 2003-10-28 Sony Corp ロボット装置およびロボット制御方法、記録媒体、並びにプログラム
US7136818B1 (en) * 2002-05-16 2006-11-14 At&T Corp. System and method of providing conversational visual prosody for talking heads
JP3945356B2 (ja) * 2002-09-17 2007-07-18 株式会社デンソー 音声対話装置及びプログラム
US7044840B2 (en) * 2002-08-07 2006-05-16 Toyoda Koki Kabushiki Kaisha Grinding method and grinding machine
JP2004090109A (ja) * 2002-08-29 2004-03-25 Sony Corp ロボット装置およびロボット装置の対話方法
JP2004240150A (ja) * 2003-02-05 2004-08-26 Nippon Telegr & Teleph Corp <Ntt> 音声対話装置、音声対話装置選択方法、プログラム及び記録媒体
US7113848B2 (en) * 2003-06-09 2006-09-26 Hanson David F Human emulation robot system
US7075331B2 (en) * 2004-06-03 2006-07-11 Tekelec Methods and systems for providing hardware assisted programming of a programmable logic device in an embedded system
JP2005342862A (ja) 2004-06-04 2005-12-15 Nec Corp ロボット
JP4629560B2 (ja) * 2004-12-01 2011-02-09 本田技研工業株式会社 対話型情報システム
US8473449B2 (en) * 2005-01-06 2013-06-25 Neuric Technologies, Llc Process of dialogue and discussion
US7047108B1 (en) * 2005-03-01 2006-05-16 Sony Corporation Enhancements to mechanical robot
JP4353212B2 (ja) * 2006-07-20 2009-10-28 株式会社デンソー 単語列認識装置
US20080243750A1 (en) * 2007-03-31 2008-10-02 Mitchell Kwok Human Artificial Intelligence Software Application for Machine & Computer Based Program Function
US20090164397A1 (en) * 2007-12-20 2009-06-25 Mitchell Kwok Human Level Artificial Intelligence Machine
JP2009122598A (ja) * 2007-11-19 2009-06-04 Pioneer Electronic Corp 電子機器、電子機器の制御方法、音声認識装置、音声認識方法及び音声認識プログラム
JP2010094799A (ja) * 2008-10-17 2010-04-30 Littleisland Inc 人型ロボット
KR20100081587A (ko) * 2009-01-06 2010-07-15 삼성전자주식회사 로봇의 소리 인식 장치 및 그 제어 방법
US8369992B2 (en) * 2009-09-22 2013-02-05 GM Global Technology Operations LLC Embedded diagnostic, prognostic, and health management system and method for a humanoid robot
US8483873B2 (en) * 2010-07-20 2013-07-09 Innvo Labs Limited Autonomous robotic life form
KR20120047577A (ko) * 2010-11-04 2012-05-14 주식회사 케이티 대화형 행동모델을 이용한 로봇 인터랙션 서비스 제공 장치 및 방법
FR2989209B1 (fr) * 2012-04-04 2015-01-23 Aldebaran Robotics Robot apte a integrer des dialogues naturels avec un utilisateur dans ses comportements, procedes de programmation et d'utilisation dudit robot

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030152261A1 (en) * 2001-05-02 2003-08-14 Atsuo Hiroe Robot apparatus, method and device for recognition of letters or characters, control program and recording medium
WO2009124955A2 (fr) 2008-04-09 2009-10-15 Aldebaran Robotics Systeme et procede de communication distribue et modulaire comprenant au moins un serveur, au moins un terminal distant, et au moins un terminal mobile capable de communiquer avec le terminal distant relie en reseau audit serveur
WO2009124951A1 (fr) 2008-04-09 2009-10-15 Aldebaran Robotics Architecture de controle - commande d'un robot mobile utilisant des membres articules
WO2011003628A2 (fr) 2009-07-10 2011-01-13 Aldebaran Robotics S.A Systeme et procede pour generer des comportements contextuels d'un robot mobile
WO2012000927A1 (fr) 2010-07-02 2012-01-05 Aldebaran Robotics Robot humanoide joueur, methode et systeme d'utilisation dudit robot
WO2012010451A1 (fr) 2010-07-23 2012-01-26 Aldebaran Robotics Robot humanoide dote d'une interface de dialogue naturel, procede de controle du robot et programme correspondant

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Modify variable from C++", 14 December 2011 (2011-12-14), XP002696066, Retrieved from the Internet <URL:http://web.archive.org/web/20120203055815/http://www.chatbots.org/ai_zone/viewthread/747/> [retrieved on 20130425] *
BISCHOFF R ET AL: "HERMES - A Versatile Personal Robotic Assistant", PROCEEDINGS OF THE IEEE, vol. 92, no. 11, 1 November 2004 (2004-11-01), NEW YORK, US, pages 1759 - 1779, XP011121110, ISSN: 0018-9219, DOI: 10.1109/JPROC.2004.835381 *
DOMINEY P F ET AL: "Robot command, interrogation and teaching via social interaction", HUMANOID ROBOTS, 2005 5TH IEEE-RAS INTERNATIONAL CONFERENCE ON, 5 December 2005 (2005-12-05), PISCATAWAY, NJ, USA,IEEE, pages 475 - 480, XP010880443, ISBN: 978-0-7803-9320-2, DOI: 10.1109/ICHR.2005.1573612 *
HOLZAPFEL H ET AL: "A dialogue approach to learning object descriptions and semantic categories", ROBOTICS AND AUTONOMOUS SYSTEMS, vol. 56, no. 11, 30 November 2008 (2008-11-30), ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, pages 1004 - 1013, XP025561295, ISSN: 0921-8890, [retrieved on 20080902], DOI: 10.1016/J.ROBOT.2008.08.012 *
MIKIO NAKANO ET AL: "A Robot That Can Engage in Both Task-Oriented and Non-Task-Oriented Dialogues", HUMANOID ROBOTS, 2006 6TH IEEE-RAS INTERNATIONAL CONFERENCE ON, 1 December 2006 (2006-12-01), IEEE, PI, pages 404 - 411, XP031053052, ISBN: 978-1-4244-0199-4 *
SAKAGAMI Y ET AL: "The intelligent ASIMO: system overview and integration", PROCEEDINGS OF THE 2002 IEEE/RSJ INTERNATIONAL CONFERENCE ON INTELLIGENT ROBOTS AND SYSTEMS. (IROS 2002), vol. 3, 30 September 2002 (2002-09-30) - 4 October 2002 (2002-10-04), LAUSANNE, SWITZERLAND,, pages 2478 - 2483, XP010609464, ISBN: 978-0-7803-7398-3, DOI: 10.1109/IRDS.2002.1041641 *
See also references of EP2834811A1 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10242666B2 (en) 2014-04-17 2019-03-26 Softbank Robotics Europe Method of performing multi-modal dialogue between a humanoid robot and user, computer program product and humanoid robot for implementing said method
CN110774285A (zh) * 2014-04-17 2020-02-11 软银机器人欧洲公司 人形机器人和执行人形机器人与用户之间的对话的方法
WO2015158878A1 (fr) * 2014-04-17 2015-10-22 Aldebaran Robotics Procédés et systèmes de traitement d'un dialogue avec un robot
AU2015248713B2 (en) * 2014-04-17 2018-03-29 Softbank Robotics Europe Method of performing multi-modal dialogue between a humanoid robot and user, computer program product and humanoid robot for implementing said method
KR20170003580A (ko) * 2014-04-17 2017-01-09 소프트뱅크 로보틱스 유럽 휴머노이드 로봇과 사용자 간 멀티모드 대화를 수행하는 방법, 이러한 방법을 구현하기 위한 컴퓨터 프로그램 프로덕트 및 휴머노이드 로봇
CN106457563A (zh) * 2014-04-17 2017-02-22 软银机器人欧洲公司 执行人形机器人与用户之间的多模式对话的方法、用于实施所述方法的计算机程序产品和人形机器人
CN106663219A (zh) * 2014-04-17 2017-05-10 软银机器人欧洲公司 处理与机器人的对话的方法和系统
EP2933067A1 (fr) 2014-04-17 2015-10-21 Aldebaran Robotics Procédé de réalisation de dialogue multimodal entre un utilisateur et un robot humanoïde, produit de programme informatique et robot humanoïde mettant en oeuvre ce procédé
CN106663219B (zh) * 2014-04-17 2020-04-21 软银机器人欧洲公司 处理与机器人的对话的方法和系统
EP2933070A1 (fr) * 2014-04-17 2015-10-21 Aldebaran Robotics Procédés et systèmes de manipulation d'un dialogue avec un robot
JP2017520782A (ja) * 2014-04-17 2017-07-27 ソフトバンク・ロボティクス・ヨーロッパSoftbank Robotics Europe 人間型ロボットとユーザーの間におけるマルチモード会話を実行する方法、前記方法を実装するコンピュータプログラムプロダクト及び人間型ロボット
US10008196B2 (en) 2014-04-17 2018-06-26 Softbank Robotics Europe Methods and systems of handling a dialog with a robot
KR101991163B1 (ko) * 2014-04-17 2019-06-19 소프트뱅크 로보틱스 유럽 휴머노이드 로봇과 사용자 간 멀티모드 대화를 수행하는 방법, 이러한 방법을 구현하기 위한 컴퓨터 프로그램 프로덕트 및 휴머노이드 로봇
JP2019164352A (ja) * 2014-04-17 2019-09-26 ソフトバンク・ロボティクス・ヨーロッパSoftbank Robotics Europe 人間型ロボットとユーザーの間におけるマルチモード会話を実行する方法、前記方法を実装するコンピュータプログラム及び人間型ロボット
AU2018202162B2 (en) * 2014-04-17 2020-01-16 Softbank Robotics Europe Methods and systems of handling a dialog with a robot
CN105468145B (zh) * 2015-11-18 2019-05-28 北京航空航天大学 一种基于手势和语音识别的机器人人机交互方法和装置
CN105468145A (zh) * 2015-11-18 2016-04-06 北京航空航天大学 一种基于手势和语音识别的机器人人机交互方法和装置
FR3080926A1 (fr) * 2018-05-04 2019-11-08 Spoon Procede de commande d'une pluralite d'effecteurs d'un robot
WO2019211552A1 (fr) * 2018-05-04 2019-11-07 Spoon Procede de commande d'une pluralite d'effecteurs d'un robot
US20220009082A1 (en) * 2018-05-04 2022-01-13 Spoon Method for controlling a plurality of robot effectors

Also Published As

Publication number Publication date
US20150100157A1 (en) 2015-04-09
CN104350541B (zh) 2018-10-16
JP6367179B2 (ja) 2018-08-01
US10052769B2 (en) 2018-08-21
FR2989209B1 (fr) 2015-01-23
JP2015524934A (ja) 2015-08-27
FR2989209A1 (fr) 2013-10-11
EP2834811A1 (fr) 2015-02-11
CN104350541A (zh) 2015-02-11

Similar Documents

Publication Publication Date Title
WO2013150076A1 (fr) Robot apte a integrer des dialogues naturels avec un utilisateur dans ses comportements, procedes de programmation et d&#39;utilisation dudit robot
KR102306624B1 (ko) 지속적 컴패니언 디바이스 구성 및 전개 플랫폼
US11148296B2 (en) Engaging in human-based social interaction for performing tasks using a persistent companion device
US10929759B2 (en) Intelligent robot software platform
US20170206064A1 (en) Persistent companion device configuration and deployment platform
WO2012010437A1 (fr) Robot humanoide dote d&#39;une interface de dialogue naturel, procede de controle du robot et programme correspondant
WO2016011159A9 (fr) Appareil et procédés permettant de fournir un dispositif d&#39;accompagnement persistant
US20160071302A1 (en) Systems and methods for cinematic direction and dynamic character control via natural language output
CN107480766B (zh) 多模态虚拟机器人的内容生成的方法和系统
EP2855105A1 (fr) Systeme et procede pour generer des comportements contextuels d&#39;un robot mobile executes en temps reel
Catania et al. CORK: A COnversational agent framewoRK exploiting both rational and emotional intelligence
Origlia et al. FANTASIA: a framework for advanced natural tools and applications in social, interactive approaches
CN112883181A (zh) 会话消息的处理方法、装置、电子设备及存储介质
KR20230130580A (ko) 실시간 대화형 디지털 에이전트들의 자율적인 생성, 전개, 및 개인화
Feng et al. A platform for building mobile virtual humans
CA3102196A1 (fr) Procede de commande d&#39;une pluralite d&#39;effecteurs d&#39;un robot
WO2018183812A1 (fr) Configuration de dispositif accompagnateur persistant et plateforme de déploiement
Geraci Design and implementation of embodied conversational agents
Vargas MASTER’S DEGREE IN AUTOMATIC CONTROL AND ROBOTICS
Agent A Generic Framework for Embodied Conversational Agent Development and its Applications

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13714282

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015503871

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2013714282

Country of ref document: EP

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112014024917

Country of ref document: BR

WWE Wipo information: entry into national phase

Ref document number: 14390746

Country of ref document: US

ENP Entry into the national phase

Ref document number: 112014024917

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20141006