EP2834811A1 - Robot capable of incorporating natural dialogues with a user into the behaviour of same, and methods of programming and using said robot - Google Patents

Robot capable of incorporating natural dialogues with a user into the behaviour of same, and methods of programming and using said robot

Info

Publication number
EP2834811A1
EP2834811A1 EP13714282.4A EP13714282A EP2834811A1 EP 2834811 A1 EP2834811 A1 EP 2834811A1 EP 13714282 A EP13714282 A EP 13714282A EP 2834811 A1 EP2834811 A1 EP 2834811A1
Authority
EP
European Patent Office
Prior art keywords
module
dialogue
robot
user
humanoid robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP13714282.4A
Other languages
German (de)
French (fr)
Inventor
David Houssin
Gwennael GATE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aldebaran SAS
Original Assignee
Aldebaran Robotics SA
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 SA filed Critical Aldebaran Robotics SA
Publication of EP2834811A1 publication Critical patent/EP2834811A1/en
Ceased legal-status Critical Current

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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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

The invention concerns a humanoid robot, said robot being capable of holding a dialogue with at least one user, said dialogue using two speech recognition modes, one open and the other closed, the closed mode being defined by a concept characterising a sequence of dialogue. The dialogue can also be influenced by events that are neither speech nor a text. The robot of the invention is capable of executing behaviour and generating expressions and emotions. Relative to the robots of the prior art, the invention provides the advantage of considerably reducing the programming time and latency of execution of the sequences of dialogue, which provides a fluency and a nature close to human dialogues.

Description

ROBOT APTE A INTEGRER DES DIALOGUES NATURELS AVEC UN UTILISATEUR DANS SES COMPORTEMENTS, PROCEDES DE  ROBOT FOR INTEGRATING NATURAL DIALOGUES WITH A USER IN HIS BEHAVIOR, METHODS FOR
PROGRAMMATION ET D'UTILISATION DUDIT ROBOT  PROGRAMMING AND USING 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. 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 ... In the context of the present invention, however, 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. One can imagine the development of applications of the "companion robot" type, that is to say a robot that is able to take care, particularly on behalf of one or more human beings in a state of dependence, a certain number of assistance functions in everyday life, while providing these humans with a presence that can be considered as an emotionally equivalent substitute for the presence of a personal human assistant. For this, it is essential to develop the ability of said humanoid robots to interact with human beings as closely as possible to human behavior. In particular, 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.
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. The first steps in this direction have been made thanks to programming methods of Nao ™ brand humanoid robots marketed by the applicant of the present patent application and disclosed in the international patent application published under the number WO2012 / 000927 relating to a player robot and in the international patent application published under No. WO2012 / 010451 relating to a humanoid robot with a natural dialogue interface.
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.  However, 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.
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.  To do this, 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.
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. For this purpose, 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.
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. Advantageously, the 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. Advantageously, 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.
Avantageusement, ledit au moins un module de reconnaissance est apte à structurer les entrées en concepts selon un arbre hiérarchique dynamique. Advantageously, said at least one recognition module is able to structure the entries in concepts according to a dynamic hierarchical tree.
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. Advantageously, an entry in said at least one recognition module applies to textual or voice entries and activates a grammar in said dialog module. Advantageously, an entry in said at least one recognition module activates / deactivates the recognition of said entry.
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. Advantageously, 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. .
Avantageusement, une sortie du premier sous-module est seule fournie au module de dialogue. Advantageously, an output of the first sub-module is provided alone to the dialogue module.
Avantageusement, une sortie du deuxième sous-module est seule fournie au module de dialogue. Advantageously, an output of the second sub-module is only provided to the dialogue module.
Avantageusement, une sortie du premier sous-module et une sortie du deuxième sous-module sont conjointement fournies au module de dialogue. Advantageously, an output of the first sub-module and an output of the second sub-module are jointly provided to the dialogue module.
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. Advantageously, 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. Advantageously, 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. Advantageously, the dialogue module also receives input dynamic elements from an 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. Advantageously, 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.
Avantageusement, ladite fonction de génération d'au moins un comportement prend en compte les contraintes du système dudit robot. Advantageously, said function for generating at least one behavior takes into account the constraints of the system of said 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. Advantageously, 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.
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. Advantageously, 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.
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. Advantageously, 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.
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. Advantageously, 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.
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. Advantageously, the 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.
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. Advantageously, 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.
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. 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. Advantageously 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 at least one humanoid robot, said instructions being generated in a ChatScript type interface .
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. 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. . Implemented in the context of 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. In addition, 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.
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 : The invention will be better understood and its various features and advantages will emerge from the following description of several exemplary embodiments and its appended figures including:
- La figure 1 représente un robot humanoïde apte à mettre en œuvre l'invention dans plusieurs de ses modes de réalisation ;  FIG. 1 represents a humanoid robot capable of implementing the invention in several of its embodiments;
- La figure 2 représente un organigramme général des traitements selon plusieurs modes de réalisation de l'invention;  FIG. 2 represents a general flowchart of the treatments according to several embodiments of the 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;  FIG. 3 represents the processing blocks of a dialogue behavior management module and a voice recognition module according to several embodiments of the invention;
- La figure 4 représente un exemple d'arborescence de plusieurs niveaux de dialogues selon plusieurs modes de réalisation de l'invention;  FIG. 4 represents an example of a tree of several dialogue levels according to several embodiments of the invention;
- La figure 4a représente un arbre de concepts selon plusieurs modes de réalisation de l'invention;  FIG. 4a represents a concept tree according to several embodiments of the 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 ;  FIG. 5 represents a simplified flowchart of the speech recognition module processes in several embodiments of the 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 ;  FIG. 6 represents the data flow between several software modules configured to implement the invention in several of its embodiments;
- La figure 6a illustre le fonctionnement d'un moteur d'émotion dans certains modes de réalisation de l'invention ;  FIG. 6a illustrates the operation of an emotion engine in certain embodiments of the invention;
- La figure 6b illustre le fonctionnement d'un moteur de décision dans certains modes de réalisation de l'invention ;  FIG. 6b illustrates the operation of a decision engine in certain embodiments of the 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 ;  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;
- 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. 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.
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. 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 ™, without the generality of the reference being modified.
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....  This 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 ™ 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 ....
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.  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.
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. With regard to speech recognition, in the currently used audio signal processing architecture, 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 ™) or natural language interpreter.
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.  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 ™ 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.
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. The robot will be able to execute behaviors for which it may have been programmed in advance, in particular by a code generated according to the invention disclosed in the international patent application published under No. WO2012 / 010451 already cited, said code having been created by a programmer in a graphical interface. According to this invention and in the remainder of the present description, 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. In the first case, 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. In this case, a user who needs a minimum of programmer skills can use the workshop Choregraph ™, whose main modes of operation are described in the cited application. In the second case, the flow logic of the scenario is not in principle adaptive.
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.  According to the present invention, 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.
La figure 2 représente un organigramme général des traitements selon plusieurs modes de réalisation de l'invention. FIG. 2 represents a general flowchart of the treatments according to several embodiments of the 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.  According to 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 ™ 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 "| ". The operation of the voice recognition module 220 is detailed later in the description in comment in FIG.
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. 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 .
Le langage de description des dialogues est dérivé du langage ChatScript (http://chatscript.sourceforqe.net/).  The dialog description language is derived from the ChatScript language (http://chatscript.sourceforqe.net/).
Dans la syntaxe ChatScript, on écrit un scénario comme un ensemble de règles. Par exemple :  In ChatScript syntax, we write a scenario as a set of rules. For example :
? : VIANDE (vous aimez la viande) Oui  ? : MEAT (you like meat) Yes
Une règle complète comprend généralement :  A complete rule usually includes:
- un type, « ?: » dans l'exemple, qui indique une question ;  - a type, "?:" in the example, which indicates a 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 ;  - a label, "MEAT" in the example, which can be omitted, but which, when present, allows calls by other 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 », ... ;  - an entry characterized by a pattern in parentheses, "(you like meat)" in the example, sentence to which will be attached sentences containing these three words in this order, but also other words: "Albert, you like meat, "Albert, you like red meat", ...;
- 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. - an exit, "Yes" in the example According to the invention, the language is adapted to mix the dialogue elements with behaviors of the robot. Nonlimiting examples of adaptation are given in the following 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).  For example, 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). For a user's sentence, this language makes it possible to express several possible answers in the form of sentences, emotions, events or behaviors. 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).
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. 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. At the writing of the dialogue, not at the execution, we thus generate all the dialogs and all the entries of the dialogue in the format of the speech recognition. It is therefore important that 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.
La grammaire du langage de description des dialogues comporte notamment les fonctionnalités suivantes : The grammar of the dialogue description language includes the following features:
1 ) Reconnaissance de motifs (ou pattern matchinq) :  1) Pattern recognition (or matchinq pattern):
Certains motifs sont signalés dans le script du dialogue par un signe : - 'Ou' accepte une liste de mots possibles, par exemple : [salut bonjour] ; Some patterns are indicated in the dialog script by a sign: - 'Or' accepts a list of possible words, for example: [hello hello];
- 'Et' cherche une liste exacte de mots, par exemple : 'je suis content' ;  - 'And' looks for an exact list of words, for example: 'I'm happy';
- Mots optionnels, par exemple : salut {'mon robot'} ;  - Optional words, for example: hi {'my robot'};
- Mots interdits, par exemple : je suis !pas content ; le mot pas ne vérifie pas l'entrée ;  - Forbidden words, for example: I am not happy; the word not does not check the entry;
- Mots inconnus, par exemple : mon nom est * ; on ne connaît pas le nom de l'utilisateur ; - Unknown words, for example: my name is * ; we do not know the name of the user;
2) Contexte dans un dialogue ; on passe d'un dialogue à l'autre à l'aide de phrases trigger, par exemple :  2) Context in a dialogue; we switch from one dialog to another using trigger sentences, for example:
- Ut : (parlons de voiture) ; cette phrase va provoquer le lancement du dialogue sur les voitures ;  - Ut: (let's talk about cars) this sentence will provoke the launch of the dialogue on cars;
3) Sous-dialogue ; un sous dialogue est activé sur certaines phrases et peut s'enchainer en cascades, par exemple :  3) Sub-dialogue; a sub-dialog is activated on certain sentences and can be linked in cascades, for example:
- U : (comment vas-tu ?) Je vais bien et toi ?  - U: (how are you?) I'm fine and you?
A : (je ne vais pas bien) ha bon pourquoi ?  A: (I'm not good) ha why?
B : (je suis malade) Ho dommage, veux tu un médicament ?  B: (I'm sick) Damage, do you want a medicine?
A : (je vais bien) super  A: (I'm fine) super
Cette fonctionnalité de sous-dialogue peut par exemple donner lieu à un dialogue du type:  This sub-dialog feature can for example give rise to a dialog of the type:
Humain : Comment vas-tu ? Human: How are you?
Robot : je vais bien et toi ? Robot: I'm fine and you?
Humain : Je ne vais pas bien Human: I'm not well
Robot : ha bon, pourquoi ? Robot: ha good, why?
Humain : Je suis malade Human: I'm sick
4) Evénements : 4) Events:
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 The taking into account of events as input of a dialogue in the same way as the words picked up by the robot gives the conversational agent of the invention potentialities that do not exist in the prior art. In particular, the visual recognition of the robot allows him to detect a person in his environment and send him a greeting, as will be the case when the person speaks to him: - U: ([e .iaceDetected hi]) hi you
Si le robot voit une personne ou si quelqu'un dit 'salut', alors le robot répond 'salut toi'.  If the robot sees a person or someone says 'hi', then the robot answers 'hello you'.
Un événement peut être également déclenché en sortie d'un dialogue, éventuellement par le lancement d'une application : An event can also be triggered at the end of a dialog, possibly by launching an application:
- U : (j'ai faim) $userstate='faim'  - U: (I'm hungry) $ userstate = 'hungry'
$userstate='faim' va à la fois affecter la faim à userstate et lancer un événement [userstate,faim] sur lequel une application peut s'abonner ;  $ userstate = 'hungry' will both affect hunger to userstate and launch a [userstate, hungry] event upon which an application can subscribe;
5) Sélection de comportements implicites ou explicites :  5) Selection of implicit or explicit behaviors:
- U : (tu me reconnais ?) [$faceRecognized==" run :faceRecognition je ne te reconnais pas mais je vais me souvenir de toi la prochaine fois]  - U: (do you recognize me?) [$ FaceRecognized == "run: faceRecognition I do not recognize you but I'll remember you next time]
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 :  6) Proposals; when the robot does not understand or understands what the user is saying, then he or she consumes a proposition of the current dialogue in order to specify it, for example:
- Proposai : quel âge as-tu ?  - Proposai: how old are you?
- U : (j'ai [5 6 7 8] ans) tu es jeune !  - U: (I [5 6 7 8] years old) you are young!
7) Variables ; le dialogue peut stocker des informations de l'utilisateur, par exemple :  7) Variables; the dialog can store user information, for example:
- U : (j'ai _[5 6 7 8] ans) $age=$1 tu es jeune !  - U: (I have _ [5 6 7 8] years old) $ age = $ 1 you're young!
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 :  8) Dynamic elements; variables and lists (mp3, applications, preferences ...) can be integrated into the input and output dialog, for example:
- U : (que sais tu faire ?) Je sais -applications  - U: (what do you know?) I know -applications
- U : (quel est ton nom ?) mon nom est $nom  - U: (what is your name?) My name is $ name
- U : ({lance lis raconte} * _~application) ok je lance $1 $application peut être par exemple ('trois mousquetaires', 'le monde') - U: ({spear reads} * _ ~ application) ok I run $ 1 $ application can be for example ('three musketeers', 'the world')
9) Emotions. SAD, HAPPY, CURIOUS, SCARED, TIRED (ou TRISTE, HEUREUX, CURIEUX, EFFRAYE, FATIGUE), soit:  9) Emotions. SAD, HAPPY, CURIOUS, SCARED, TIRED (or SAD, HAPPY, CURIOUS, AFFECTED, FATIGUE), or:
- U : (je ne t'aime pas !) ça me rend triste TRISTE  - U: (I do not love you!) It makes me sad 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 : 10) 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:
- U : delete (comment vas-tu) je vais bien  - U: delete (how are you) I'm fine
- U : (comment vas-tu nao) tu te souviens de mon nom ! je vais bien  - U: (how are you nao) you remember my name! I'm fine
- U : (comment vas-tu) comme tout à l'heure  - U: (how are you) like just now
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 :.  1 1) Response rules; it is possible to produce several possible outputs by the robot between which the choice is determined according to the inputs it receives from the user or users in a deterministic manner (always the same output, or the output of a given rank in the list, which whether the input), random, sequential (the input i + 1 triggers the output j + 1 if the input i triggers the output j) or conditional. The dialog module has access to the entire memory of the robot and can therefore give an answer according to values of the robot memory; the outputs can be erased after being used to add variety to the dialog; for exemple :.
- U : (comment vas-tu ) ['je vais bien' 'je te l'ai déjà dis'] # séquentiel par défaut  - U: (how are you) ['I'm fine' 'I've already told you'] # sequential by default
- U : (comment vas-tu) Arandom ['je vais bien' 'je vais très bien' 'je vais super bien'] - U: (how are you) A random ['I'm fine''I'mfine''I'mfine'']
- 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: (what's your name) A first ['my name is $ name''I do not have a name'] # Here 'my name is $ name' is only viewable if $ name exists.
- U : (comment vas-tu) Adelete je vais bien # effacer la règle après l'affichage de la réponse - U: (how are you) To delete I'm fine # erase the rule after displaying the answer
12) L_ancer un sous-dialogue, topic: 12) L_ancer a sub-dialog, 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.  - U: (I mean cars) topic: cars Figure 3 shows the processing blocks of a dialog behavior management module and a voice recognition module according to several embodiments of the 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. When a dialog is executed by the embedded runtime on the robot, 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.
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.  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.
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) :  A concept is a list of words that are defined as semantically equivalent in a given dialogue. As an example, 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):
Concept :(habiter) (vis loge habite habiter vivre loger)  Concept: (live) (live house live lives live)
Concept : (je) (moi je j'ai) Concept: (I) (me I have)
La phrase s'écrira donc à plusieurs endroits dans les dialogues :  The sentence will be written in several places in the dialogues:
U : (~je -habiter) U: (~ I-live)
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) 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)
Concept :(fruit) (banane orange) Concept: (fruit) (orange banana)
Il sera possible d'ajouter de nouveaux fruits pendant les dialogues. Les dialogues suivants pourront ainsi être réalisés : It will be possible to add new fruits during dialogues. The following dialogues can be realized:
U : ( connais tu _{de la des} _~nourriture ) oui je connais $1 $2 Ce qui donne à l'exécution :  U: (do you know _ {of the} _ ~ food) yes I know $ 1 $ 2 Which gives to the execution:
Utilisateur : connais tu la banane ? User: do you know banana?
Robot : oui je connais la banane Robot: yes I know banana
U : (indique moi un fruit) -fruit est un fruit U: (tell me a fruit) -fruit is a fruit
Utilisateur : indique moi un fruit User: tell me a fruit
Robot : banane est un fruit Robot: banana is a 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. 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.
La figure 4 représente un exemple d'arborescence de plusieurs niveaux de dialogues selon plusieurs modes de réalisation de l'invention. FIG. 4 represents an example of a tree of several dialogue levels according to several embodiments of the 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. Several dialogues are represented in the figure. They can run in parallel (with a stack of priorities), a dialogue that can replace another.
Un dialogue comprend trois niveaux logiques dans le module moteur de dialogue 230 embarqué sur le robot:  A dialog comprises three logical levels in the robot engine module of dialogue 230 embedded on the 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 ; - 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;
- 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 ;  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;
- 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.  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.
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 :  By default a dialog containing generalities and system commands ('speak louder' for example) are loaded. Trigger sentences can then trigger the loading of other dialogs for example for:
- Changer de sujet de discussion (parler de voitures, de sa journée...) ;  - Change the subject of discussion (talk about cars, his day ...);
- 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...) ;  - Explain what the robot knows how to do ('I know how to tell a story'); this part contains dynamic elements: mp3 installed, applications installed; any application that can be launched by voice recognition must contain information: its theme (game, information ...) and optionally a dialogue specifying the application (The robot can indicate that Alice in Wonderland is a story with a small girl...) ;
- Lancer le dialogue d'une application (une histoire interactive par exemple)  - Launch the dialogue of an application (an interactive story for example)
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 choice can be proposed: guess a famous person, select a behavior, choose a product, look for a person in a company ... 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 : (oui) c'est une femme ?  A: (yes) it's a woman?
B : (oui) ...  B: (yes) ...
B : (non) ...  B: (no) ...
A : (non) c'est un personnage de fiction ?  A: (no) it's a fictional character?
La notion de concept permet de parcourir un arbre des possibles. Un concept est un mot lié à d'autres mots, phrases ou concepts. The notion of concept makes it possible to traverse a tree of possibilities. A concept is a word related to other words, phrases or concepts.
Concept : (homme) ['il respire' 'c'est un humain'] Concept: (man) ['he breathes' 'it's a human']
Concept : (superman) [-homme superhero -vole -cape] Concept: (superman) [-man superhero -vole -cape]
Concept : (halliday) [-chanteur -homme] Concept: (halliday) [-catter-man]
Concept: (tous) [-superman -halliday] Concept: (all) [-superman -halliday]
La nature hiérarchique de l'arbre des possibles est illustrée sur la figure 4a pour l'exemple ci-dessus.  The hierarchical nature of the possible tree is illustrated in Figure 4a for the example above.
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).  The words represent the leaves of the tree. The concepts represent the nodes of the tree. Nodes and leaves are elements of pattern matching.
Avec une seule entrée: With one entry:
U :(['sait il' 'est il' -superman) oui U: (['know he' is he '-superman) yes
Nous pourrons matcher : We will be able to match:
Sait il voler Know how to fly
Est-il un homme Is he a man
Est-il superman Is he superman
Nous pourrons aussi proposer : We can also propose:
U : (aide moi) -superman U: (help me) -superman
Ici nous affichons une des feuilles de l'arbre. Here we display one of the leaves of the tree.
Utilisateur : aide moi Robot : il respire. User: help me Robot: he's breathing.
Pour que l'humain devine superman, il suffit d'écrire : For the human to guess superman, just write:
U : (c'est superman ?) oui tu as trouvé ! U: (is it superman?) Yes you found!
U : (-superman) oui U: (-superman) yes
Proposai : non, ce n'est pas lui.  Proposai: no, it's not him.
Pour que le robot devine un personnage, il suffit d'écrire : For the robot to guess a character, just write:
U : (devine à qui je pense) ?~tous U: (guess who do I think)? ~ All
La figure 5 représente un organigramme simplifié des traitements du module de reconnaissance vocale dans un mode de réalisation de l'invention. FIG. 5 represents a simplified flowchart of the speech recognition module processes in one embodiment of the invention.
Deux niveaux de reconnaissance vocale sont superposés : Two levels of speech recognition are superimposed:
- 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™ ;  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 ™ (Vocon ™ brand), Acapella ™ and, for software using natural language, 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é 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 ™ under the brand name NMSP ™; these softwares make it possible to manage words which are not known in advance which will be designated by a numbered joker
$x. $ 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 :  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:
- 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 ; - 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;
- Cas 550 : la reconnaissance de type 520 complète la reconnaissance de type 510 ;  - Case 550: type 520 recognition completes type 510 recognition;
- Cas 560 : la reconnaissance ouverte confirme un choix possible de la reconnaissance fermée ;  - Case 560: open recognition confirms a possible choice of closed recognition;
- 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.  - Case 570: the robot does not understand what the user says; it makes a proposal to validate the domain of the dialogue or move to another subject, the cases above 530 to 560 can then be linked to this restart of the 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. FIG. 6 shows the data flow between several software modules configured to implement the invention in several of its embodiments.
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:  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:
- Le dialogue 620 attend en entrée des événements (par exemple un sourire 6130 ou de la parole de l'utilisateur 6120 ;  The dialogue 620 waits for events input (for example a smile 6130 or the word of the user 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) ;  - The dialog engine can dynamically load new 6240 dialogs or 6230 dynamic data (for example an mp3 file or an application installed on it);
- 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 ;  - He formulates his answer in the form of expressive speech 6310, otherwise a word with information on how to interpret the text (a didascalia for the robot), behavior 6320, emotion 6330, event 6340;
- Les sorties du dialogue peuvent être envoyées à différents modules d'intelligence artificielle 640:  - The outputs of the dialog can be sent to different artificial intelligence modules 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 ; 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;
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. 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.
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 .. 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.
Le dialogue comprend un interpréteur 6230 et un modèle de dialogue 6240. Un modèle de dialogue comprend :  The dialog includes a 6230 interpreter and a 6240 dialog template. A dialog template includes:
- Un réseau de dialogues ainsi que les dialogues actifs ;  - A network of dialogues as well as active dialogues;
- L'ensemble des entrées des dialogues ainsi que les entrées actives ; - The set of dialogue entries as well as the active entries;
- L'ensemble des sorties des dialogues ; - The set of dialogue outputs;
- L'ensemble des propositions des dialogues.  - The set of propositions of the dialogues.
Les références 6310, 6320, 6330, 6340 représentent les sorties du moteur de dialogue sous forme d'événements.  References 6310, 6320, 6330, 6340 represent the outputs of the dialog engine as events.
La figure 6a illustre le fonctionnement d'un moteur d'émotion dans certains modes de réalisation de l'invention. Figure 6a illustrates the operation of an emotion engine in some embodiments of the 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...).  As explained above in comment 2, the robot's emotion is a point in a multidimensional space of emotions (for example, 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.  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.
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...). 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 ...).
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. 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.
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).  The figure illustrates that 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. Advantageously, from the processing of the images received by a camera embedded on the robot, 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).
Egalement, la reconnaissance de visage permet, au même titre que la parole elle-même, d'indiquer le nom du locuteur courant. Also, the face recognition allows, as well as the speech itself, to indicate the name of the current speaker.
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).  A speech response from the chat engine can be given by the robot's voice or on a 7A0 screen (or both).
Comme déjà indiqué, le module dialogue est en mesure de déclencher l'exécution de comportements (élément 7B0).  As already indicated, the dialog module is able to trigger the execution of behaviors (element 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. Figure 8 shows the data model of a dialog analysis and interpretation module for implementing the invention in several of its embodiments.
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. 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. At runtime, 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.
En effet, concepts, variables et dialogues courants peuvent être rendus dépendants de l'utilisateur. Indeed, concepts, variables and current dialogues can be made dependent on the user.
Ainsi, les règles suivantes permettent de changer d'utilisateur :  Thus, the following rules allow you to change users:
U : (e :faceRecognition ) ($name = $faceRecognition) U: (e: faceRecognition) ($ name = $ faceRecognition)
U: (mon nom est _*) ($name = $1 ) U: (my name is _ * ) ($ 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. In this case the variables depending on the user (preferences, age, size ...) are automatically reset or affected according to the user's history.
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.  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.
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.  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 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 :  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:
- le module ALMemory, 910, gère une mémoire partagée entre les différents modules de NAOQI ;  - the ALMemory module, 910, manages a shared memory between the different modules of NAOQI;
- le module ALMotion, 920 gère les mouvements du robot ;  the ALMotion module 920 manages the movements of the robot;
- le module Synthèse vocale, 930, génère les paroles du robot ; the voice synthesis module, 930, generates the words of the 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 ; 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;
le module ALDialog, 960, réalise les fonctions du module moteur de dialogue de référence 230 sur la figure 2 ;  the ALDialog module, 960, performs the functions of the reference dialogue engine module 230 in FIG. 2;
le module Narrateur, 970, réalise les fonctions de la référence 6410 de la figure 6 ;  the Narrator module, 970, performs the functions of reference 6410 of FIG. 6;
le module Moteur de décision, 980, réalise les fonctions de la référence 6420 de la figure 6 ;  the decision engine module, 980, performs the functions of reference 6420 of FIG. 6;
le module Moteur d'émotion, 990, réalise les fonctions de la référence 6430 de la figure 6.  the emotion engine module, 990, performs the functions of reference 6430 of FIG. 6.
Ces modules sont avantageusement codés en C++. La figure indique également les flots de données entre modules. These modules are advantageously coded in C ++. The figure also shows the data flows between 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.  As indicated in comment in FIG. 2, 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.
L'analyseur peut lire un fichier de description de dialogue u : (....) The parser can read a dialog description file 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. The interpreter builds, from the result of the parser (a written dialogue without syntax error), the model of dialogue in memory.
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. The examples described above are given by way of illustration of embodiments of the invention. They in no way limit the scope of the invention which is defined by the following claims.

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. 1. A humanoid robot (1 10) 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 user of said robot, ii) at least one event recognition module (610) at the output of said at least one sensor, and iii) at least one event generation module (630) to said at least one user, a module (620) of dialogue with said at least one user, said dialog module receiving as input outputs of said at least one recognition module and producing outputs to said event generation module selected from a group comprising words, motions, expressions and emotions, said robot being characterized in that it further comprises an artificial intelligence engine (640) configured to drive the outputs of the event generation module.
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. 2. Humanoid robot according to claim 1, characterized in that the 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.
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. 3. humanoid robot according to one of claims 1 to 2, characterized in that 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 dialog module is able to output events taking into account said inputs from said at least two sensors.
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. 4. humanoid robot according to one of claims 1 to 3, characterized in that said at least one recognition module is able to structure the entries in concepts according to a dynamic hierarchical tree.
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. 5. Humanoid robot according to one of claims 1 to 4, characterized in that an entry in said at least one recognition module applies to textual or voice inputs and activates a grammar in said dialogue module.
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. 6. Humanoid robot according to claim 5, characterized in that an entry in said at least one recognition module activates / deactivates the recognition of said input.
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. 7. humanoid robot according to one of claims 5 to 6, characterized in that said at least one recognition module comprises a first and a second sub-modules, the first submodule operating on a closed list of words attached to the least one concept and the second sub-module operating on an open list of words.
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. 8. humanoid robot according to claim 7, characterized in that an output of the first submodule is provided alone to the dialogue module.
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. 9. humanoid robot according to claim 7, characterized in that an output of the second sub-module is provided alone to the dialogue module.
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. 10. humanoid robot according to claim 7, characterized in that an output of the first sub-module and an output of the second sub-module are jointly provided to the dialogue module.
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. 1 1. Humanoid robot according to claim 7, characterized in that an output of the first sub-module is first supplied 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. -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. 12. humanoid robot according to one of claims 7 to 1 1, characterized in that 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 audit at least one user.
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. 13. humanoid robot according to one of claims 1 to 12, characterized in that the dialogue module further receives dynamic input elements from an 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. 14. humanoid robot according to one of claims 1 to 13, characterized in that at least one output of the dialogue module is provided to a module adapted to perform a function selected in a generation of group of functions of 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.
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. 15. humanoid robot according to claim 14, characterized in that said generating function of at least one behavior takes into account the constraints of the system of said 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. 16. humanoid robot according to claim 14, characterized in that said generating function of at least one emotion is able to generate a sequence of predefined expressions between a neutral state and a predefined state in response to input events.
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. 17. humanoid robot according to one of claims 1 to 16, characterized in that it 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.
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. 18. Humanoid robot according to one of claims 4 to 17, characterized in that said dialog module comprises a lexical analysis sub-module and a sub-module for interpreting the outputs of said submodule lexical analysis able to generate concepts to which are attached the words of the current dialogue.
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. 19. Humanoid robot according to one of claims 1 to 18, characterized in that said dialog module is able to handle questions and commands of said at least one user relating to the state of his physical system and / or logic.
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. 20. 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 sound-type sensors and second sensors; 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 dialogue 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 generating step selected from a group comprising words, motions, expressions and emotions , said method being characterized in that it further comprises a step of controlling the outputs of the event generation module by an artific intelligence engine ial.
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. 21. Dialogue method according to claim 20, characterized in that the 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.
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. 22. Dialogue method according to one of claims 20 to 21, characterized in that said robot dialog 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.
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.. 23. Computer program embedded on a humanoid robot comprising program code instructions for executing the method according to one of claims 20 to 22 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; a user, said dialog module receiving as input outputs of said at least one recognition module and producing 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.
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. A computer program comprising program code instructions configured to generate a computer program according to claim 23 and transmitting it to at least one humanoid robot, said instructions being generated in a ChatScript type interface.
EP13714282.4A 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 Ceased EP2834811A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1253073A FR2989209B1 (en) 2012-04-04 2012-04-04 ROBOT FOR INTEGRATING NATURAL DIALOGUES WITH A USER IN HIS BEHAVIOR, METHODS OF PROGRAMMING AND USING THE SAME
PCT/EP2013/057043 WO2013150076A1 (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

Publications (1)

Publication Number Publication Date
EP2834811A1 true EP2834811A1 (en) 2015-02-11

Family

ID=46785533

Family Applications (1)

Application Number Title Priority Date Filing Date
EP13714282.4A Ceased EP2834811A1 (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

Country Status (6)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063060A (en) * 2018-07-20 2018-12-21 吴怡 A kind of semantic net legal advice service robot

Families Citing this family (63)

* 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 (en) * 2012-04-04 2015-01-23 Aldebaran Robotics ROBOT FOR INTEGRATING NATURAL DIALOGUES WITH A USER IN HIS BEHAVIOR, METHODS OF PROGRAMMING AND USING THE SAME
US10163455B2 (en) * 2013-12-03 2018-12-25 Lenovo (Singapore) Pte. Ltd. Detecting pause in audible input to device
US9358475B2 (en) 2013-12-12 2016-06-07 Beatbots, LLC Robot
US9421688B2 (en) * 2013-12-12 2016-08-23 Beatbots, LLC Robot
EP2933067B1 (en) * 2014-04-17 2019-09-18 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
EP2933070A1 (en) * 2014-04-17 2015-10-21 Aldebaran Robotics Methods and systems of handling a dialog with a robot
WO2016173326A1 (en) * 2015-04-30 2016-11-03 北京贝虎机器人技术有限公司 Subject based interaction system and method
JP6992957B2 (en) 2015-10-21 2022-01-13 国立大学法人大阪大学 Agent dialogue system
CN105468145B (en) * 2015-11-18 2019-05-28 北京航空航天大学 A kind of robot man-machine interaction method and device based on gesture and speech recognition
JP1580536S (en) * 2016-01-29 2017-07-03
JP2017151517A (en) * 2016-02-22 2017-08-31 富士ゼロックス株式会社 Robot control system
JP6726388B2 (en) * 2016-03-16 2020-07-22 富士ゼロックス株式会社 Robot control system
CN105690408A (en) * 2016-04-27 2016-06-22 深圳前海勇艺达机器人有限公司 Emotion recognition robot based on data dictionary
JP6747506B2 (en) * 2016-04-28 2020-08-26 富士通株式会社 robot
DE102016115243A1 (en) * 2016-04-28 2017-11-02 Masoud Amri Programming in natural language
US11645444B2 (en) 2016-05-10 2023-05-09 Trustees Of Tufts College Systems and methods enabling online one-shot learning and generalization by intelligent systems of task-relevant features and transfer to a cohort of intelligent systems
CN107515570A (en) * 2016-06-17 2017-12-26 青海汉拉信息科技股份有限公司 The adaptive cloud computing cluster remote control of Chinese language text is performed entirely automatically system
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 (en) * 2016-08-09 2018-07-27 北京光年无限科技有限公司 A kind of interim card processing method and processing device for intelligent robot
CN106346487B (en) * 2016-08-25 2018-09-21 威仔软件科技(苏州)有限公司 Interactive VR sand table show robot
CN106445147B (en) * 2016-09-28 2019-05-10 北京百度网讯科技有限公司 The behavior management method and device of conversational system based on artificial intelligence
CN108115678B (en) * 2016-11-28 2020-10-23 深圳光启合众科技有限公司 Robot and motion control method and device thereof
TWI612472B (en) * 2016-12-01 2018-01-21 財團法人資訊工業策進會 Command transforming method, system, and non-transitory computer readable storage medium
CN110062683B (en) * 2016-12-12 2023-04-28 微软技术许可有限责任公司 Robot gesture generation method, device and computer readable medium
US11222634B2 (en) * 2017-03-10 2022-01-11 Nippon Telegraph And Telephone Corporation Dialogue method, dialogue system, dialogue apparatus and program
JP6818280B2 (en) * 2017-03-10 2021-01-20 日本電信電話株式会社 Dialogue system, dialogue method, dialogue device, 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
US10569420B1 (en) * 2017-06-23 2020-02-25 X Development Llc Interfacing with autonomous devices
JP2019005842A (en) * 2017-06-23 2019-01-17 カシオ計算機株式会社 Robot, robot controlling method, and program
KR102353486B1 (en) * 2017-07-18 2022-01-20 엘지전자 주식회사 Mobile terminal and method for controlling the same
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 (en) * 2017-11-10 2018-05-03 베스핀글로벌 주식회사 Cloud management system based on chatbot and operating method thereof
US10572585B2 (en) 2017-11-30 2020-02-25 International Business Machines Coporation Context-based linguistic analytics in dialogues
US11468894B2 (en) 2017-12-29 2022-10-11 DMAI, Inc. System and method for personalizing dialogue based on user's appearances
CN112074899A (en) 2017-12-29 2020-12-11 得麦股份有限公司 System and method for intelligent initiation of human-computer dialog based on multimodal sensory input
US11024294B2 (en) 2017-12-29 2021-06-01 DMAI, Inc. System and method for dialogue management
US20190206402A1 (en) * 2017-12-29 2019-07-04 DMAI, Inc. System and Method for Artificial Intelligence Driven Automated Companion
US11504856B2 (en) 2017-12-29 2022-11-22 DMAI, Inc. System and method for selective animatronic peripheral response for human machine dialogue
US10691113B1 (en) * 2018-02-06 2020-06-23 Anthony Bergman Robotic process control system
US11331807B2 (en) 2018-02-15 2022-05-17 DMAI, Inc. System and method for dynamic program configuration
CN110309254A (en) * 2018-03-01 2019-10-08 富泰华工业(深圳)有限公司 Intelligent robot and man-machine interaction method
CN108406811A (en) * 2018-03-19 2018-08-17 重庆鲁班机器人技术研究院有限公司 robot programming device, system and method
FR3080926B1 (en) * 2018-05-04 2020-04-24 Spoon METHOD FOR CONTROLLING A PLURALITY OF EFFECTORS OF A ROBOT
FR3081578B1 (en) * 2018-05-25 2022-08-12 Hoomano DEVICE AND METHOD FOR MEASURING A CHARACTERISTIC OF AN INTERACTION BETWEEN A USER AND AN INTERACTION DEVICE
EP3576084B1 (en) * 2018-05-29 2020-09-30 Christoph Neumann Efficient dialog design
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
USD888165S1 (en) 2018-11-05 2020-06-23 DMAI, Inc. Robot
USD916161S1 (en) 2018-11-05 2021-04-13 DMAI, Inc. Robot
WO2020097061A2 (en) * 2018-11-05 2020-05-14 DMAI, Inc. Configurable and interactive robotic systems
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
USD892887S1 (en) * 2018-11-08 2020-08-11 Genesis Robotics And Motion Technologies, LP Robot
JP1640516S (en) * 2018-12-03 2019-09-02
US20200298401A1 (en) * 2019-01-03 2020-09-24 Lucomm technologies, Inc Semantic Robotic System
KR20210020312A (en) * 2019-08-14 2021-02-24 엘지전자 주식회사 Robot and method for controlling same
US11449682B2 (en) * 2019-08-29 2022-09-20 Oracle International Corporation Adjusting chatbot conversation to user personality and mood
CN110570866A (en) * 2019-09-11 2019-12-13 百度在线网络技术(北京)有限公司 Voice skill creating method, device, electronic equipment and medium
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
EP4265377A1 (en) 2021-06-28 2023-10-25 Samsung Electronics Co., Ltd. Robot and driving method therefor
KR20230111061A (en) * 2022-01-17 2023-07-25 삼성전자주식회사 A Robot and Method for controlling thereof

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076331B1 (en) * 1998-11-30 2006-07-11 Sony Corporation Robot, method of robot control, and program recording medium
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
WO2002091356A1 (en) * 2001-05-02 2002-11-14 Sony Corporation Obot device, character recognizing apparatus and character reading method, and control program and recording medium
JP4150198B2 (en) * 2002-03-15 2008-09-17 ソニー株式会社 Speech synthesis method, speech synthesis apparatus, program and recording medium, and robot apparatus
JP2003305677A (en) * 2002-04-11 2003-10-28 Sony Corp Robot device, robot control method, recording medium and program
US7136818B1 (en) * 2002-05-16 2006-11-14 At&T Corp. System and method of providing conversational visual prosody for talking heads
JP3945356B2 (en) * 2002-09-17 2007-07-18 株式会社デンソー Spoken dialogue apparatus and program
US7044840B2 (en) * 2002-08-07 2006-05-16 Toyoda Koki Kabushiki Kaisha Grinding method and grinding machine
JP2004090109A (en) * 2002-08-29 2004-03-25 Sony Corp Robot device and interactive method for robot device
JP2004240150A (en) * 2003-02-05 2004-08-26 Nippon Telegr & Teleph Corp <Ntt> Voice interactive system, method for selecting voice interactive system, program, and recording medium
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 (en) 2004-06-04 2005-12-15 Nec Corp Robot
JP4629560B2 (en) * 2004-12-01 2011-02-09 本田技研工業株式会社 Interactive information system
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 (en) 2006-07-20 2009-10-28 株式会社デンソー Word string recognition device
US20090164397A1 (en) * 2007-12-20 2009-06-25 Mitchell Kwok Human Level Artificial Intelligence Machine
US20080243750A1 (en) * 2007-03-31 2008-10-02 Mitchell Kwok Human Artificial Intelligence Software Application for Machine & Computer Based Program Function
JP2009122598A (en) 2007-11-19 2009-06-04 Pioneer Electronic Corp Electronic device, control method of electronic device, speech recognition device, speech recognition method and speech recognition program
FR2930108B1 (en) 2008-04-09 2010-07-30 Aldebaran Robotics DISTRIBUTED COMMUNICATION SYSTEM AND METHOD COMPRISING AT LEAST ONE SERVER, AT LEAST ONE REMOTE TERMINAL, AND AT LEAST ONE MOBILE TERMINAL CAPABLE OF COMMUNICATING WITH THE REMOTE TERMINAL CONNECTING INTO NETWORK AUDIT SERVER
FR2929873B1 (en) 2008-04-09 2010-09-03 Aldebaran Robotics CONTROL-CONTROL ARCHITECTURE OF A MOBILE ROBOT USING ARTICULATED MEMBERS
JP2010094799A (en) * 2008-10-17 2010-04-30 Littleisland Inc Humanoid robot
KR20100081587A (en) * 2009-01-06 2010-07-15 삼성전자주식회사 Sound recognition apparatus of robot and method for controlling the same
FR2947923B1 (en) 2009-07-10 2016-02-05 Aldebaran Robotics SYSTEM AND METHOD FOR GENERATING CONTEXTUAL BEHAVIOR OF A MOBILE ROBOT
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
FR2962048A1 (en) 2010-07-02 2012-01-06 Aldebaran Robotics S A HUMANOID ROBOT PLAYER, METHOD AND SYSTEM FOR USING THE SAME
US8483873B2 (en) * 2010-07-20 2013-07-09 Innvo Labs Limited Autonomous robotic life form
FR2963132A1 (en) 2010-07-23 2012-01-27 Aldebaran Robotics HUMANOID ROBOT HAVING A NATURAL DIALOGUE INTERFACE, METHOD OF USING AND PROGRAMMING THE SAME
KR20120047577A (en) * 2010-11-04 2012-05-14 주식회사 케이티 Apparatus and method for providing robot interaction services using interactive behavior model
FR2989209B1 (en) * 2012-04-04 2015-01-23 Aldebaran Robotics ROBOT FOR INTEGRATING NATURAL DIALOGUES WITH A USER IN HIS BEHAVIOR, METHODS OF PROGRAMMING AND USING THE SAME

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BURGHART C ET AL: "A cognitive architecture for a humanoid robot: a first approach", HUMANOID ROBOTS, 2005 5TH IEEE-RAS INTERNATIONAL CONFERENCE ON DEC. 5, 2005, PISCATAWAY, NJ, USA,IEEE, 5 December 2005 (2005-12-05), pages 357 - 362, XP010880424, ISBN: 978-0-7803-9320-2, DOI: 10.1109/ICHR.2005.1573593 *
See also references of WO2013150076A1 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063060A (en) * 2018-07-20 2018-12-21 吴怡 A kind of semantic net legal advice service robot

Also Published As

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

Similar Documents

Publication Publication Date Title
EP2834811A1 (en) Robot capable of incorporating natural dialogues with a user into the behaviour of same, and methods of programming and using said robot
KR102306624B1 (en) Persistent companion device configuration and deployment platform
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 (en) Humanoid robot equipped with a natural dialogue interface, method for controlling the robot and corresponding program
WO2016011159A9 (en) Apparatus and methods for providing a persistent companion device
US20160071302A1 (en) Systems and methods for cinematic direction and dynamic character control via natural language output
CN107480766B (en) Method and system for content generation for multi-modal virtual robots
EP2855105A1 (en) System and method for generating contextual behaviours of a mobile robot executed in real time
Catania et al. CORK: A COnversational agent framewoRK exploiting both rational and emotional intelligence
CN112883181A (en) Session message processing method and device, electronic equipment and storage medium
Origlia et al. FANTASIA: a framework for advanced natural tools and applications in social, interactive approaches
KR20230130580A (en) Autonomous generation, deployment, and personalization of real-time interactive digital agents
Ishizuka et al. Describing and generating multimodal contents featuring affective lifelike agents with MPML
JP2024505503A (en) Methods and systems that enable natural language processing, understanding and generation
Cerezo et al. Interactive agents for multimodal emotional user interaction
Feng et al. A platform for building mobile virtual humans
CA3102196A1 (en) Method for controlling a plurality of robot effectors
WO2018183812A1 (en) Persistent companion device configuration and deployment platform
Geraci Design and implementation of embodied conversational agents
Vargas MASTER’S DEGREE IN AUTOMATIC CONTROL AND ROBOTICS

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20141024

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20190503

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SOFTBANK ROBOTICS EUROPE

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20210418