WO2016021058A1 - 対話システム、および情報処理方法 - Google Patents

対話システム、および情報処理方法 Download PDF

Info

Publication number
WO2016021058A1
WO2016021058A1 PCT/JP2014/071061 JP2014071061W WO2016021058A1 WO 2016021058 A1 WO2016021058 A1 WO 2016021058A1 JP 2014071061 W JP2014071061 W JP 2014071061W WO 2016021058 A1 WO2016021058 A1 WO 2016021058A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
input
state
output
information
Prior art date
Application number
PCT/JP2014/071061
Other languages
English (en)
French (fr)
Inventor
義崇 平松
秋山 靖浩
達彦 影広
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2014/071061 priority Critical patent/WO2016021058A1/ja
Priority to JP2016539785A priority patent/JP6235148B2/ja
Publication of WO2016021058A1 publication Critical patent/WO2016021058A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer

Definitions

  • the present invention relates to a dialogue technique between a user and a machine.
  • Patent Document 1 proposes a dialogue system that detects the movement of a user's conflict, determines the progress of the dialogue based on the movement of the conflict, and notifies the next user of the termination of the dialogue when it is determined to be terminated. Has been.
  • Patent Document 1 whether or not the dialogue system is speaking or whether the speed of the collaborative operation after the speech is larger than a predetermined threshold is a criterion for terminating the dialogue.
  • a predetermined threshold since the speed of the interaction operation varies from person to person, some people cannot respond with a single threshold.
  • the present invention has been made to solve the above-described problems.
  • the robot performs a first output to the user, and the first input from the user is performed during or after the first output is performed. To detect. Further, the robot performs the second output after the input from the user, and detects the second input from the user during or after the execution of the second output. Then, the state of the user with respect to the second output is determined based on the first input and the second input, and the process of the robot selected according to the determined state of the user is executed. Thereby, in the dialog system, dialog control suitable for each user is executed.
  • Another aspect of the present invention is a system including an output unit that outputs a process to a user, a detection unit that detects an input from the user, a determination unit that determines a user's state, and a processing unit that determines the process. is there.
  • the output unit outputs the first process, and the detection unit detects the first input from the user during or after outputting the first process.
  • the output unit outputs the second process after detecting the first input from the user, and the detection unit detects the second input from the user during or after outputting the second process.
  • the determination unit determines a user state with respect to the second process based on the first input and the second input, the processing unit selects the third process from the determination result, and the output unit outputs the third process. To do.
  • the processing unit assumes a user state (for example, understanding level) for the second process, and selects the third process from the assumed result and the determination result. Further, in a more preferred form, the processing unit sets a level (for example, difficulty level) in advance for the process, and based on the level set for the second process, the user's action for the second process Assume a state.
  • a user state for example, understanding level
  • the processing unit sets a level (for example, difficulty level) in advance for the process, and based on the level set for the second process, the user's action for the second process Assume a state.
  • the detection unit uses the first user's movement as the first input from the user, and uses the second user's movement as the second input from the user.
  • non-verbal responses may be more useful than linguistic responses. This is particularly effective for determining the user's reaction while the system side is speaking.
  • the timing of the first input and the second input is not limited except that the first input precedes in time.
  • the input collected at the start of the dialogue may be the first input. This method simplifies control.
  • the input immediately before the second input may be the first input. This method is effective when there is a temporal change (for example, fatigue) in the user's reaction.
  • Another aspect of the present invention includes a camera that acquires an image, a detection unit that detects a user's movement from the image, an output unit that outputs a sentence to the user, and a recognition unit that recognizes an input from the user. And a determination unit for determining the state of the user.
  • the detection unit detects the first movement of the user based on an image acquired by the camera during or after outputting the first sentence.
  • the detection unit detects the second movement of the user based on an image acquired by the camera during or after outputting the second sentence.
  • the output of the first sentence precedes the output of the second sentence in time
  • the recognition unit recognizes an input from the user to the second sentence
  • the determination unit includes the first movement and the second movement.
  • the state of the user is determined based on the movement of the user, and the processing content for the input from the user is determined according to the determination.
  • Another aspect of the present invention includes an output device that outputs information to the user, an input device that inputs information from the user, a determination unit that determines the state of the user, and a processing unit that determines the information to be output.
  • the determination unit detects the first reaction of the user to the output of the first information from the output device.
  • the determination unit detects the second reaction of the user with respect to the output of the second information performed after the output of the first information from the output device.
  • the determination unit determines the user's state based on the detected first reaction and second reaction, and the processing unit determines information to be output based on the determined user state.
  • dialogue control suitable for the user can be realized by outputting the processing selected according to the state of the user.
  • surface figure which shows the table which enumerated the conditions for calculating
  • notations such as “first”, “second”, and “third” are attached to identify the constituent elements, and do not necessarily limit the number or order.
  • a number for identifying a component may be used for each context, and a number used in one context does not necessarily indicate the same configuration in another context. Further, it does not preclude that a component identified by a certain number also functions as a component identified by another number.
  • the first process is output to the user, the first input is detected from the user during or after the first process is output, and the detected first input is accumulated.
  • the second process is output to the user, and during or after the second process is output, the second input from the user is detected, and the first input and the second input are detected.
  • the interactive system configuration includes an output unit that outputs a process to the user, a detection unit that detects an input from the user, a determination unit that determines the state of the user, and a processing unit that selects the process.
  • the output unit outputs the first process
  • the detection unit detects the first input from the user during or after the output of the first process
  • the output unit performs the second process after the input from the user.
  • the detection unit detects the second input from the user during or after the second process is being output
  • the determination unit is configured to detect the second input from the user based on the first input and the second input.
  • the state is determined, the processing unit selects a third process from the determination result, and the output unit outputs the third process.
  • FIG. 1A is a block diagram showing a configuration of a dialogue system 1000 according to the first embodiment of the present invention.
  • FIG. 1B is a block diagram showing a hardware configuration of the information processing apparatus 123 of FIG. 1A.
  • the dialogue system 1000 includes a dialogue robot 100.
  • the interactive robot 100 receives an input by detecting a sound, a gesture, a character from a user, or an operation from a controller. In addition, an output by sound, an output by presentation to a display device, or an output by gesture, feedback to a controller, or the like is performed to the user.
  • the interactive robot 100 includes an input device 121, an output device 122, an information processing device 123, an operation mechanism 124, a control unit 125, and a storage unit 126.
  • the input device group 121 is a set of devices that receive input from the user. For example, a microphone that receives sound, a camera that captures the state of a dialog robot and a user's gesture, a network transmission / reception device that receives information via a network, a controller that inputs operations to the dialog robot, a keyboard that inputs characters, etc. , One or more.
  • the output device group 122 is a set of devices that output to the user. For example, a speaker that outputs sound, a display device that presents information on the screen, a control signal output device of the operation mechanism 124 for realizing the movement of the interactive robot, a controller that moves by receiving feedback such as vibration from the interactive robot, etc. , One or more.
  • the operation mechanism 124 is a mechanism for operating the dialogue robot 100 itself.
  • the control unit 125 controls each functional unit included in the interactive robot 100.
  • the information processing apparatus 123 includes a CPU 131, a main storage unit 132, an auxiliary storage unit 133, and a bus 134.
  • the devices 131 to 133 are connected by a bus 134, and data is transmitted and received between the devices.
  • the CPU 131 reads the program stored in the main storage unit 132 or the auxiliary storage unit 133, executes the calculation, and outputs the calculation result to the main storage unit 132, the auxiliary storage unit 133, or the control unit 125.
  • the main storage unit 132 stores programs executed by the CPU 131, calculation results executed by the CPU 131, and setting information used by the information processing apparatus 123.
  • the main storage unit 132 is realized by, for example, a random access memory (RAM) or a read only memory (ROM).
  • the auxiliary storage unit 133 stores a program executed by the CPU 131, a calculation result executed by the CPU 131, and setting information used by the information processing apparatus 123. In particular, it is used for the purpose of storing data that cannot be stored in the main memory 132 or holding data even when the power is shut off.
  • the auxiliary storage unit 133 is configured by, for example, a magnetic disk drive such as a hard disk (HDD), a nonvolatile memory such as a flash memory, or the like alone or in combination. In the auxiliary storage unit 133, rules for determining the state of the user described later, a database described later, and the like should be set.
  • the storage device 126 stores an operation control processing program for the interactive robot 100 to operate, data such as setting information, a spatial map, and the like.
  • the storage device 126 can be realized using a storage device such as a hard disk (HDD). Note that rules for determining the state of the user set in the auxiliary storage unit 133 and information on a database to be described later may be set in the storage device 126.
  • HDD hard disk
  • the configuration of the interactive robot 100 is not limited to this, and it is only necessary to have an input function and an output function. Further, part of the functions may be separated outside the robot 100 via a wired or wireless network.
  • FIG. 2 is a block diagram illustrating a functional configuration of the dialogue processing unit 201 that is realized by the CPU 131 of the information processing device 123 executing a processing program stored in the main storage unit 132 or the auxiliary storage unit 133. .
  • the dialogue processing unit 201 includes an operation processing unit 202, an operation processing unit 203, a database 213, a user state determination unit 214, a processing unit 215, and an output unit 216.
  • the input device group 121 includes a camera 291 and a microphone array 292 including a plurality of microphones. Further, a controller and a keyboard may be provided.
  • the output device group 122 includes a speaker. Further, an output function added to the display device 282 and the controller may be provided.
  • the operation processing unit 202 includes an input unit 211 and a detection unit 212, and is a functional block that receives and processes information on a user's movement and operation. An image obtained by photographing the front of the interactive robot 100 by the camera 291 is input to the input unit 211.
  • the detection unit 212 recognizes the presence of the user from the frame image acquired by the camera 291. If the user exists, the detection unit 212 determines the identity of the user, and further detects each of the two or more frame images acquired by the camera 291. Used to detect the movement of the user's head. Only when it is determined that the user exists, the movement of the user's head is transmitted to the user state determination unit 214.
  • a face is detected using a known face detection technique, and if a face is detected, it is determined that the user is present.
  • the method for determining the identity of the user can be realized, for example, by collating the detected face with the face detected immediately before.
  • the movement of the head is detected for each user, the distance to the front is measured by an external measurement device (not shown) in the interactive robot 100, and the head of the user at the nearest position is measured. Send only part movement. Or you may transmit the motion of the head detected about each user.
  • the operation processing unit 202 processes information based on an image from the camera 291, but may be configured to process information based on sound from the microphone array 292. For example, instead of the movement of the head, the information may be processed based on voices such as “yes” and “no” or input from a keyboard.
  • the operation processing unit 203 includes an input unit 221 and a detection unit 222, and is a functional block that receives and processes information related to operations on the interactive system 1000.
  • the input unit 221 receives an audio signal from the user through the microphone array 292.
  • the detecting unit 222 recognizes a sentence uttered by the user from the audio signal acquired by the microphone array 292, and detects a plurality of conversation topics from the sentence. By setting a hierarchical relationship in advance for each detected topic, the hierarchical relationship between topics can be determined at the detected stage.
  • the upper hierarchy is the main and the lower hierarchy is the sub.
  • the main is “Mt. Fuji”
  • the sub is “Mt. Fuji height” or “Mt. Fuji weather”.
  • the conversation topic is set to “reunion”.
  • the microphone array 292 detects voice signals coming from each direction, recognizes a sentence spoken by the user with respect to each voice signal, and selects a plurality of conversation topics from the sentences. To detect.
  • the operation processing unit 203 processes information based on the sound from the microphone array 292.
  • the operation processing unit 203 may be configured to process information based on an image from the camera 291 or the like.
  • information may be processed based on an image of a sign language by a gesture or input from a keyboard.
  • the database 213 has a user status management table for managing the user status and an output setting table for setting output contents to the user.
  • an output setting table is prepared for each topic (combination of main topic and subtopic). If the existing user is new, a new table is prepared. In addition, some or all of the data can be deleted in response to an instruction from the dialog system administrator.
  • Fig. 3 shows the configuration of the user status management table and output setting table.
  • the user status management table 3000 shown in FIG. 3A includes an output content to the user, a content level thereof, a user status assumed for the output, a sequence of motion vectors that are input from the user, an actual user status It is the table which comprised the state as one set.
  • the output content represents the content output to the user
  • FIG. 3A shows text for synthesizing the sound output from the speaker 281 as an example.
  • this output content an image to be displayed on the display device 282, movement information to be sent to the operation mechanism 124, vibration information for the output function of the controller, and the like can be set.
  • Content level sets a numerical value representing the level in the content output to the user.
  • the difficulty level is used as an example of the level.
  • the difficulty level indicates that the larger the numerical value, the more difficult it is to understand.
  • the minimum is 1, and the maximum is 5.
  • For the user status assumed for the output, set a numerical value that ranks the status that the user has.
  • the degree of understanding of the output is used as an example of the state of the user. The degree of understanding of the output indicates that the larger the value is, the better the user understands, and the minimum is 0 and the maximum is 5.
  • the motion vector series a series of symbols representing a motion vector that is a user's reaction is set.
  • the actual state of the user observes the state of the user based on the motion vector that is the user's reaction, and sets a ranked numerical value.
  • the same scale as the assumed user state for the output is used.
  • the output content, the content level, and the assumed state are acquired from the processing unit 215, the user actual state is acquired from the user state determination unit 214, the motion vector series is acquired from the detection unit 213, and the information is sequentially updated. Necessary information is output for each piece of information in the user status management table in response to an inquiry from the functional block.
  • the user status management table 3000 can be created for each user when there are a plurality of users.
  • the detection unit 212 detects the first input from all users during or after outputting the first process.
  • the detecting unit 222 detects second inputs from all users during or after the second process is being output. Based on these inputs, the user state determination unit 214 determines a user state for the second process based on the first input and the second input for each user, and generates a plurality of user state management tables 3000. can do.
  • the processing content level and the assumed user status may be determined on a one-to-one basis. For example, since it is considered that there is an inverse correlation between the difficulty level and the understanding level, the assumed state is set to be low (understanding level is low) for processing with a high (difficult) content level. Further, when there are a plurality of users and a plurality of user state management tables 3000 are generated, different assumed states may be set for each user assuming individual differences.
  • the output setting table 3010 shown in FIG. 3B shows a configuration in which only two topics are detected from the detection unit 222, of which the upper layer side is the main topic and the lower layer side is the subtopic.
  • the configuration is a table in which a main topic, a process, a content level, and output contents to the user are configured as one set.
  • a combination of a main topic and a subtopic constitutes one topic.
  • two topics are detected by a combination of one main topic A and two subtopics 01 and 02.
  • the number of subtopics may be increased to 3 or more.
  • the subtopic hierarchy may be omitted and only the main topic may be used, or the main topic / subtopic hierarchy may be three or more levels instead of two as in the example of FIG. 3B.
  • the main topic refers to the main topic for the user's utterance content. For example, “Mt. Fuji”.
  • Process is an item for categorizing answers to main topics into multiple categories, and is expressed by a combination of sub-process name and sub-topic name.
  • the sub-process names are “main”, “capture”, and the like.
  • the subtopics are “mountain height” and “mountain weather”, for example, and are indicated by numbers such as “01” and “02” in the output setting table.
  • Content level and output content are the same as in FIG. 3A.
  • the content level is set for each output content.
  • the output setting table is set so that the output content is uniquely determined by using the main topic, process, and content level as keys.
  • Each item is set at a stage before the interactive system 1000 operates, or added as necessary.
  • the user state determination unit 214 acquires a set of motion vector sequences stored in the user state management table 3000 from the database 213, extracts a first motion from the acquired set of motion vector sequences, and receives a first motion from the detection unit 212.
  • the second motion vector sequence is acquired, the second motion is determined from the acquired second motion vector sequence, and the state of the user with respect to the immediately preceding process is determined from the first motion and the second motion.
  • the degree of understanding of the output shown in FIG. 3A is used as the user state.
  • the processing unit 215 includes a set of topics detected by the detection unit 222, an assumed state immediately before being stored in the user state management table from the database 213, a user actual state determined by the user state determination unit 214, Determine the output content and content level from the current position in the dialogue scenario.
  • the user state determination unit 214 determines the states of a plurality of users, the output content and content level are determined for each user, and finally the majority is taken to determine the final output content and content level.
  • the output content and content level may be determined for each user, and a signal for instructing the robot to move in the direction in which the user is present may be input to the output content, and output may be performed for each user.
  • FIG. 4 is a diagram showing an example of a dialogue scenario set 401.
  • a dialogue scenario is prepared for each topic. When subtopics are different in the same main topic, they are prepared separately.
  • the positions are indicated by circles, and the arrows indicate the directions in which transition from one position to another is possible. However, the position changes only when the sub-process matches the name written on the arrow.
  • the output unit 216 acquires the output content from the processing unit 215 and transmits the content to the output device group 122 and the control unit 125.
  • FIG. 5 is a flowchart showing the flow of processing of the dialogue processing unit 201, in other words, the operation in which the dialogue robot 100 interacts with the user.
  • the operation processing unit 203 receives the user's voice signal from the microphone array 292 and detects a plurality of topics (S501).
  • the processing unit 215 acquires a set of topics from the operation processing unit 203, and determines the output content (S502).
  • the output unit 216 acquires the output content from the processing unit 215 and transmits it to the output device group 122 and the control unit 125 (S503).
  • the camera 291 images the front of the interactive robot 1000 (S504).
  • the operation processing unit 202 recognizes the presence of the user from the video captured by the camera 291 (S505).
  • the movement of the user's head is detected and transmitted to the database 213 and the user state determination unit 214 in the form of a motion vector sequence.
  • the motion vector series is registered in the user state management table 3000 (S507).
  • the user state determination unit 214 acquires a motion vector sequence from the image processing unit 202, acquires a past motion vector sequence from the database 213, and determines the user state from these (S508). A specific example of the user state determination will be described later with reference to FIG.
  • the processing unit 215 determines the output content and the content level from the set of topics acquired in step S502, the latest assumed state acquired from the database 213, and the user state acquired from the user state determination unit 214 (S509). ). In order to determine the output content and the content level, first, the subprocess and the content level are determined (described in FIG. 7), and the output content is determined from the subprocess and the content level.
  • the output unit 216 acquires the output content determined in step S509 from the processing unit 215, and transmits it to the output device group 122 and the control unit 125 (S510).
  • the database 213 stores the output content acquired from the processing unit 215 and its content level in the user status management table 3000 (S511).
  • the user's state is determined by analyzing the user's new movement based on the user's past movement in time. As a result, it is possible to easily determine the degree of understanding by compensating for individual differences among users. As the user's past movement in time, for example, a movement while outputting an explanation for the user can be used.
  • FIG. 6 is a diagram showing a flow for determining the output content and the content level in steps S502 and S509, taking as an example the case where only two topics are detected.
  • each step will be described for each series of related operations with reference to FIGS.
  • the main topic is input from the detection unit 222 and accumulated in the main storage unit 132 or the auxiliary storage unit 133 (S601).
  • the input main topic is compared with the main topic input at the previous timing stored in the main storage unit 132 or the auxiliary storage unit 133 (S602).
  • the currently positioned position is extracted from the dialogue scenario corresponding to the main topic (S606).
  • step S605 is processed. This is equivalent to starting a different conversation on the same topic.
  • step S608 and subsequent steps are processed.
  • the subprocess and content level to be set next are obtained from the user state management table 3000 (S608).
  • the process is set together with the sub-process and the sub-topic detected by the detection unit 222. For example, when the obtained sub-process is “main” and the detected sub-topic is “01”, the process name is “main 01”.
  • Transition to the position along the arrow that matches the sub-process obtained in step S608 (S609).
  • the transition is made from the position (431) to the first position (432).
  • the content level obtained in S608, the main topic, and the process are set in the key, the output content is extracted from the output content setting table, and transmitted to the output unit 216 (S610).
  • the output content setting table shown in FIG. 3B when the main topic is “A”, the process is “main 01”, and the content level is “4”, the output content is “A is XX”.
  • the assumed state is calculated using the content level obtained in S608, and transmitted to the database together with the extracted output content (S611).
  • the calculation formula for the assumed state will be described using an example where the difficulty level is used as the content level, and the higher the level, the higher the difficulty level.
  • the level is high, that is, when the output content is difficult, an expression having a property that the possibility of being understood by the user is low, that is, the assumed state of the user is small is set.
  • the content level is small, that is, when the output content is easy, an expression having a property that the user is highly likely to understand, that is, the assumed state of the user is large is set.
  • the formula is based on that. For example, it is calculated by the following formula.
  • the maximum value of the user state is a value when the user understands most. From there, the above properties are satisfied by subtracting the size of the content level. However, the maximum value of the content level is the maximum value of the user state.
  • the known user weight is a weight reflecting the information of the user facing the interactive robot 1000, and the value range is 0 to 1. If the user understands even difficult explanations, the weight is made smaller than 0.5, and if the person who does not seem to understand, the weight is made larger than 0.5.
  • the assumed states and actual user states of the target user are obtained from the user state management table, and the determination is made using the assumed state ⁇ the number of actual user states. .
  • the assumed state ⁇ the number of actual user states represents the number that the user actually understood better than the assumption of the interactive system 1000, and is useful as a criterion for determining that the user is easy to understand.
  • the user's actual state is N times or more consecutively. This represents whether or not a high level of understanding has been continued for this explanation, and is useful as a criterion for determining that the user can easily understand. It is also possible to use the number when the user's real state is high when the content level is high. This represents the number understood with respect to the output of difficult contents, and is useful as a standard that can be determined as an easy-to-understand user.
  • the weights may be set by adding the above-described criteria.
  • the main topic is treated as a combination of multiple topics, and the topic set that is not treated as the main topic is treated as a subtopic name in the process. Processing can be performed in the same flow as above.
  • FIG. 7 is a diagram showing a table listing sub-processes to be set next and conditions for obtaining content levels from the user state management table 3000. If the condition is met, set the corresponding subprocess and content level. If there is information in the remarks, the process is executed.
  • Condition 1 is when the value of the assumed state is smaller than the actual state. This means that they understood more than expected. Therefore, it is judged that it will be understood even if it explains the contents that are interesting or somewhat difficult, and a predetermined comment in the remarks is uttered, supplemented to the sub-process, and the content level is set to 4. .
  • the comment shall be a content indicating an unexpected impression.
  • the output unit can perform an additional process before executing the normal sub-process.
  • a process subordinate to a certain process can be selected as a process from the determination result.
  • Condition 2 is when the assumed state value is larger than the actual state. This means that they did not understand more than expected. Therefore, it is determined that the explanation should be easier, and a predetermined comment in the remarks is uttered, and the sub-process is simplified and the content level is set to 2. The comment shall indicate that it was difficult to explain.
  • Condition 3 is a case where the previous real state is continuously high and the next topic (a combination of different main topics and subtopics) is entered. Since it is determined that the user should be stimulated and a description with a high content level is selected, the main and the content level are set to 5 for the sub-process.
  • Conditions 4 and 5 are cases where the assumed state and the actual state are the same and the actual state is high. This is because the user is interested in the supplementary explanation, and it is determined that supplementary explanation is necessary for the subprocess, and the actual level is set to ⁇ 1.
  • Condition 6 is the case where the assumed state and the actual state are the same, and the actual state is 3. This is because the user is convinced of the immediately preceding explanation and the interest is moderate, so it is determined that the dialogue should be terminated, and the termination is set in the subprocess. Thus, depending on the determination result, an option for not performing the processing can be provided.
  • Conditions 7 and 8 are cases where the assumed state and the actual state are the same and the actual state is low. This is because the user did not know the previous output, so it is determined that the explanation should be easier, and the sub-process is simplified, and the content level is set to the actual state +1.
  • Requirement 10 is for the first dialogue.
  • the condition 11 is a case where the user starts talking with the user who has spoken with the j dialogue system 1000 in the past. Since this is a known user, it is judged that he / she can understand even a little difficult content, and the main and content level is set to 4 for the sub-process.
  • the condition is not limited to this, and any one of an assumed state, a real state, and a dialogue scenario position may be used.
  • the sub-process and the content level are determined.
  • the output content table (FIG. 3B) is referenced as a key, the output content is determined.
  • the processing unit 215 sets the content level for the process in advance, determines the level based on the past determination result, and selects the process for which the level is set. Can be configured. At this time, the level may be determined using a plurality of past determination results. For example, an average value or a mode value of a plurality of past determination results can be used.
  • the processing unit 215 uses the user state management table 3000 generated for each user, performs condition determination for each user, and selects and outputs a process for each user from the result. Can do. Further, when the number of users is large and the process is complicated, one can be extracted from the determination results for each user, and one process can be selected and output based on the extracted determination results.
  • FIG. 8A is a diagram illustrating an example of a flow of processing for detecting the movement of the user's head in step S507.
  • a face is detected from one of two temporally continuous frame images. The detected result is indicated by 811.
  • a plurality of feature points are detected in the detected area inside the face.
  • a vector up to the position where each feature point detected in the other frame image is obtained can be used as a head motion vector obtained by averaging the vectors. .
  • FIG. 8B is an enlarged view of the process 803.
  • a motion vector indicated by an arrow is indicated for each feature point indicated by a circle, triangle, or cross.
  • FIG. 8C shows an example in which a motion vector is quantized and expressed.
  • the motion vector is quantized in four directions.
  • Reference Document 1 As a method of performing the processing 802 and the processing 803, the method described in Reference Document 1 below can be used. [Reference 1] J. Shi and C. Tomasi, “Good Features to Track,” CVPR '94, pp.593-600.
  • the detected motion vectors are handled as one series by collecting a predetermined amount of time.
  • a sequence of motion vectors is transmitted to the database 213 and the user state determination unit 214 every time the motion vector is obtained.
  • the flow of processing for detecting the movement of the user's head is not limited to this.
  • FIG. 9 is a diagram illustrating a state in which data is stored in the user state management table 3000 included in the database 213.
  • the structure of the user state management table is the same as the structure shown in FIG. 3A.
  • the acquired data is stored at the timing t1 when the output content, the content level, and the assumed state are acquired from the processing unit 215.
  • the motion vector sequence is stored at timing t2 when the motion vector sequence is received from the detection unit 213.
  • the user actual state is stored at timing t3 when the user actual state is acquired from the user state determining unit 214. This series of flow is executed sequentially.
  • the processing unit sets the level for processing in advance, prepares an initial state table for each user, updates the table sequentially according to the determination result, and the set contents Based on the level and the updated actual state of the user, the state of the user for each process can be assumed.
  • a method for extracting a sequence of past motion vectors in step S508 will be described using a user state management table in the database 213 shown in FIG.
  • FIG. 10A is a diagram showing the user state management table 3000 in a state immediately after the interactive robot 100 executes the first explanation (output) to the user and then answers the question from the user.
  • the user state management table 3000 information when the first explanation is executed to the user is stored in the first line, and information in response to the question from the user is output contents, content level, and assumed state in the second line. Stored.
  • the motion vector sequence 1001 in the first row is used as a motion vector sequence necessary for determining the first motion. Since only one movement is obtained from the user at the stage of outputting the output contents of the second line, the user state determination unit 214 uses the understanding level determination rule described later in the user state determination table of FIG. Can not.
  • the output content of the second line may be determined as an intermediate value (for example, 2 or 3) temporarily, for example, the user's actual state (understanding level).
  • another table for determining the actual state (degree of understanding) only by the first movement may be prepared.
  • the user state management table 3000 is created for each user by the processing unit 215, and an initial state is prepared for each user.
  • the table can be configured so that the state is sequentially updated according to the determination result and the next processing is assumed from the updated state.
  • FIG. 10B is a diagram showing a user state management table in a state immediately after the interactive robot 100 explains to the user and then repeats the acceptance and answer of the question several times and then answers the question from the user. is there.
  • the user status management table information is stored from the first row to a plurality of rows, and information is stored in the output content, content level, and assumed state of the Kth row.
  • a line having the same value as the content level of the Kth line is searched in the range from the first line to the (K-1) th line, and among the found lines, the motion vector series of the Jth line closest to K 1002 can be used. This means that the user's movement when the same content level as the output contents currently being explained has been explained in the past is used as the first movement.
  • the level of understanding suitable for the user can be estimated. If there is no row having the same value as the content level of the Kth row, for example, the motion vector sequence of the first row may be used. Or you may set so that the motion vector series of the row
  • the method for selecting one motion vector sequence has been described above, but a plurality of past motion vector sequences may be used. For example, an average value or a most frequent value may be used. Thus, the input from the same user accumulated in the past can be used effectively.
  • the motion is classified from the motion vector sequence selected by the above method.
  • the motion vector sequences to be used are combined to generate one motion vector sequence, and the motion is classified using the generated motion vector sequence.
  • FIG. 11 is a diagram showing a movement classification flow.
  • a motion vector series is input (S1101).
  • the direction with the largest number of times in the motion vector series is obtained (S1102).
  • FIG. 12 is a table showing rules for determining the state of the user by the user state determination unit 214 in step S508 when the degree of understanding of the output is set as the user state.
  • the rows of the table correspond to the first movement and the columns of the table correspond to the second movement.
  • movements are represented by three major classifications, up / down, left / right, and no movement, and up / down movements are represented by three classifications of large, medium, and small, that is, a total of five categories. ing.
  • the values in the table represent the level of understanding, and the larger the number, the higher the level of understanding.
  • the understanding level is 1 when the level of understanding is neutral (whether or not understood), 0 when the level of understanding is not understood, and the level of understanding is 2 or higher.
  • the first movement corresponds to the vertical direction and the period is medium
  • the second movement corresponds to the vertical direction and the period is small
  • the degree of understanding at that time is 2. .
  • the period of movement is smaller than before, so it was determined that it was not understood much or either, and it is a lower value. Is set.
  • a value corresponding to the magnitude of the period is set.
  • the period of movement is larger than before, so it is determined that the degree of understanding is high, and the values in FIG. 5 are set.
  • the user is a type of user who does not know what kind of reaction to take when understanding, and the greater the period of vertical movement, the higher the level of understanding.
  • the values in FIG. 12 are set.
  • the method for determining the degree of understanding of the user is not limited to this, and the data used for the determination is a sequence of past motion vectors stored in the database 213 and a sequence of motion vectors acquired from the detection unit 212. If there is.
  • the user's degree of understanding is determined as the user state in step S508 of FIG. This result is used in the process of determining the output content and content level in S509 of FIG. As a specific example, the user's degree of understanding is substituted into the actual state of the table of FIG. 7, and the sub-process and content level that satisfy the condition are determined.
  • the interactive system 1000 includes an output unit that outputs to a user, a detection unit that detects input from the user, a determination unit that determines the state of the user, and a processing unit that selects a process.
  • the output unit performs a first output, the detection unit detects a first input from a user during or after execution of the first output, and the output unit receives from the user A second output is performed after the input, and the detection unit detects a second input from the user during or after the execution of the second output, and the determination unit detects the first input and the second input.
  • the processing unit selects a process from the determination result, and the output unit executes and outputs the process.
  • the first output is made to the user, the first input is detected from the user during or after the second output is executed, the detected first input is accumulated, and the user
  • the robot performs the second output after the input of, and detects the second input from the user during or after the execution of the second output, and based on the first input and the second input, the user's past Dialog control suitable for the user is realized by determining the user's state in consideration of the above reaction.
  • dialog control suitable for the user is realized by selecting the robot processing according to the determined user status.
  • the operation processing unit 203 may be a functional block that receives and processes information related to operations and responses to the interactive system 1000.
  • a keyboard may be prepared in the input device group, an input unit that receives input of a plurality of character codes from the keyboard, and a detection unit that generates a sentence from a plurality of input character codes and detects a plurality of topics.
  • a camera may be prepared in the input device group, an input unit that receives video captured by the camera, and a detection unit that recognizes a gesture from the input video, generates a sentence, and detects a plurality of topics.
  • the conversation scenario set 401, the user state management table, and the output content setting table can be used as they are.
  • a controller 293 for operating the dialog system 1000 may be prepared in the input device group, and an input unit that receives a signal from the controller 293 and a detection unit that detects an operation command of the dialog robot from the input signal may be used.
  • the structure of the dialogue scenario set 401, the user state management table, and the output content setting table can be used as they are by making the content according to the operation.
  • the operation processing unit 202 may be a functional block that receives and processes information about a user's movement and operation.
  • a controller 293 for operating the interactive system 1000 may be prepared in the input device group, and an input unit that receives a signal from the controller 293 and a detection unit that detects a user's operation on the controller 293 from the input signal may be used.
  • the detection unit 212 in the first embodiment detects the movement of the user's head, the movement of the user's eyes or the movement of the entire body may be used.
  • the functional blocks may be the same as long as the format is changed according to the operation for detecting the motion vector sequence expression.
  • the understanding degree with respect to the output is used as the user state determined by the user state determination unit 214 in the first embodiment, the degree of reliability for measuring the degree of reliability for the dialogue system and the degree of user stress are also used. Good.
  • the output content setting table is a rule according to the set scale, the functional blocks may be the same.
  • the above components, functions, processing units, processing means, etc. may be realized in hardware by designing some or all of them, for example, with an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files for realizing each function can be stored in a recording device such as a memory, a hard disk, an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
  • the above configuration may be configured by a single computer, or may be configured by another computer in which any part of the input device, output device, processing device, and storage device is connected via a network.
  • the idea of the invention is equivalent and unchanged.
  • the present invention can be used for general dialogue technology between a user and a machine.
  • Robot 121 Input device group 122: Output device group 123: Information processing device 124: Operation mechanism 125: Control unit 126: Storage unit 202: Operation processing unit 203: Operation processing unit 213: Database 214: User state determination unit 215 : Processing unit 216: Output unit 1000: Dialog system

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

 動作の速さには個人差があっても、適切に対話を制御する。 発明に係る対話システムは、たとえば請求項に記載の構成を採用することができる。具体的には、対話システムであって、ユーザに処理を出力する出力部と、ユーザからの入力を検出する検出部と、ユーザの状態を判定する判定部と、処理を実行する処理部を有し、前記出力部は、第1の処理を出力し、前記検出部は、第1の処理を出力中あるいは出力後にユーザから第1の入力を検出し、前記出力部は、ユーザからの入力後に第2の処理を出力し、前記検出部は、第2の処理を出力中あるいは出力後に、ユーザからの第2の入力を検出し、前記判定部は第1の入力と第2の入力に基づいて第2の処理に対するユーザの状態を判定し、前記処理部は前記判定結果から第3の処理を選択し、前記出力部は第3の処理を出力する。

Description

対話システム、および情報処理方法
 本発明は、ユーザと機械との間の対話技術に関する。
 近年、ユーザの反応を検出し、対話を制御する対話システムの研究が進みつつある。例えば、特許文献1では、ユーザの相槌の動きを検出し、前記相槌の動きから対話の進行を判定し、終了と判定された場合に、次のユーザに対話の終了を予告する対話システムが提案されている。
特開2003-228449号 公報
 特許文献1では、対話システムが発話中もしく発話後の相槌動作の速さが、所定のしきい値より大きいか否かが、対話を終了する基準となっている。しかし、相槌動作の速さには個人差があるため、単一のしきい値では、対応できない人が出る。
 本発明は、上記のような課題を解決するためになされたものであり、ロボットがユーザに対して第1の出力を行い、第1の出力を実行中あるいは実行後にユーザから第1の入力を検出する。また、ユーザからの入力後にロボットが第2の出力を行い、第2の出力を実行中あるいは実行後に、ユーザからの第2の入力を検出する。そして、第1の入力と第2の入力に基づいて第2の出力に対するユーザの状態を判定し、判定されたユーザの状態に応じて選択されたロボットの処理を実行する。これにより、対話システムにおいて、ユーザごとに適した対話制御実行する。
 本発明の他の側面は、ユーザに処理を出力する出力部と、ユーザからの入力を検出する検出部と、ユーザの状態を判定する判定部と、処理を決定する処理部とを有するシステムである。出力部は第1の処理を出力し、検出部は第1の処理を出力中あるいは出力後にユーザから第1の入力を検出する。また、出力部はユーザからの第1の入力を検出した後に第2の処理を出力し、検出部は第2の処理を出力中あるいは出力後にユーザからの第2の入力を検出する。判定部は第1の入力と第2の入力に基づいて第2の処理に対するユーザの状態を判定し、処理部は判定結果から第3の処理を選択し、出力部は第3の処理を出力する。
 このようなシステムの好ましい形態では、処理部は第2の処理に対するユーザの状態(例えば理解度)を想定しておき、想定結果と判定結果から、第3の処理を選択する。また、さらに好ましい形態では、処理部は、処理に対してレベル(例えば難易度)を事前に設定しておき、第2の処理に設定されているレベルに基づいて、第2の処理に対するユーザの状態を想定する。
 また、別の好ましい形態では、検出部はユーザからの第1の入力として第1のユーザの動きを用い、ユーザからの第2の入力として第2のユーザの動きを用いる。理解度を測る手法としては、言語的な反応より、非言語的な反応のほうが有用であることがある。特にシステム側が発話している間の、ユーザの反応を判定するためには有効である。
 第1の入力と第2の入力のタイミングは、第1の入力が時間的に先行している以外は制限がない。対話開始時に採集した入力を第1の入力としてもよい。この方式は制御がシンプルになる。また、第2の入力の直前の入力を第1の入力としてもよい。この方式は、ユーザの反応に時間的な変化(例えば疲労等)がみられるときには有効である。また、第1の入力と第2の入力と過去に蓄積された同一ユーザからの入力に基づいて第2の処理に対するユーザの状態を判定してもよい。例えば、ユーザからの入力を逐次蓄積しておき、類似する状況におけるユーザの入力を判定に用いると、正確な判定が期待できる。
 本発明の他の側面は、画像を取得するカメラと、画像から、ユーザの動きを検出する検出部と、ユーザに対して文章を出力する出力部と、ユーザからの入力を認識する認識部と、ユーザの状態を判定する判定部と、を有する対話システムである。検出部は、第1の文章を出力している間またはその後にカメラで取得した画像に基づき、ユーザの第1の動きを検出する。検出部は、第2の文章を出力している間またはその後にカメラで取得した画像に基づき、ユーザの第2の動きを検出する。第1の文章の出力は第2の文章の出力に対して時間的に先行し、認識部は、第2の文章に対するユーザからの入力を認識し、判定部は、第1の動きおよび第2の動きに基づいてユーザの状態を判定し、判定に応じてユーザからの入力に対する処理内容を決定する。
 本発明の他の側面は、ユーザに情報を出力する出力装置と、ユーザからの情報を入力する入力装置と、ユーザの状態を判定する判定部と、出力する情報を決定する処理部を有し、ユーザへの複数回の情報の出力と、ユーザからの複数回の情報の入力によって、ユーザと対話を行う対話システムにおける情報処理方法である。
 判定部は、出力装置からの第1の情報の出力に対する、ユーザの第1の反応を検知する。判定部は、出力装置からの第1の情報の出力以降に行われる第2の情報の出力に対する、ユーザの第2の反応を検知する。判定部は、検知した第1の反応と第2の反応に基づいて、ユーザの状態を判定し、処理部は、判定されたユーザの状態に基づいて、出力する情報を決定する。
 本発明に係る対話システムによれば、ユーザの状態に応じて選択された処理を出力することで、ユーザに適した対話制御を実現することができる。
本発明の第1の実施形態に係る、対話システムの構成を示すブロック図である。 図1Aの情報処理装置のハード構成を示すブロック図である。 図1Aの情報処理部の機能構成を示すブロック図である。 ユーザ状態管理テーブルの構成を示す表図である。 出力設定テーブルの構成を示す表図である。 対話シナリオの集合401の一例を示すグラフ図である。 第1の実施形態において対話ロボット100がユーザと対話する動作を示す流れ図である。 検出部222が出力内容とその内容レベルを決定するフローを示した流れ図である。 サブプロセスと内容のレベルを求める条件を列挙したテーブルを示す表図である。 ユーザの頭部の動きを検出する処理の流れの一例を示す概念図である。 ユーザの頭部の動きを検出する特徴点と動きベクトルの例を示す概念図である。 頭部の動きの量子化に用いる方向の一例を示す平面図である。 検出された動きベクトルを1つの系列として取り扱う様子の一例を示す概念図である。 データベース213が持つユーザ状態管理テーブルにデータが格納される様子を示す表図である。 対話ロボット100がユーザに最初の説明を実行し、ユーザから質問を受け付け、回答をした直後の状態のユーザ状態管理テーブルを示すに示す表図である。 対話ロボット100がユーザに説明を実行し、その後、質問応答を何回か実行した後、ユーザから質問を受け付けて回答をした直後のユーザ状態管理テーブルを示すに示す表図である。 動きの分類フローを示す流れ図である。 ユーザの状態を判定するルールをテーブルに示す表図である。
 以下、本発明の実施形態を、図面を用いて説明する。なお、各図面において、同一の符号が付されている構成要素は同一の機能を有することとする。重複する説明は省略することがある。また、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
 本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられることがあり、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
 典型的な実施例では、ユーザに対して第1の処理を出力し、第1の処理を出力中あるいは出力後にユーザから第1の入力を検出し、検出された第1の入力を蓄積し、ユーザから第1の入力を受けた後にユーザに対して第2の処理を出力し、第2の処理を出力中あるいは出力後に、ユーザからの第2の入力を検出し、第1の入力と第2の入力に基づいてユーザの状態を判定し、判定されたユーザの状態に応じて選択された処理を出力することで、ユーザに適した対話制御を実現する構成を説明する。
 また、対話システム構成としては、ユーザに処理を出力する出力部と、ユーザからの入力を検出する検出部と、ユーザの状態を判定する判定部と、処理を選択する処理部とを有し、出力部は、第1の処理を出力し、検出部は、第1の処理を出力中あるいは出力後にユーザから第1の入力を検出し、出力部は、ユーザからの入力後に第2の処理を出力し、検出部は、第2の処理を出力中あるいは出力後にユーザからの第2の入力を検出し、判定部は第1の入力と第2の入力に基づいて第2の処理に対するユーザの状態を判定し、処理部は、判定結果から第3の処理を選択し、出力部は、第3の処理を出力する。
 図1Aは、本発明の第1の実施形態に係る対話システム1000の構成を示すブロック図である。
 図1Bは、図1Aの情報処理装置123のハードウェア構成を示すブロック図である。
 対話システム1000は、対話ロボット100を備える。対話ロボット100は、ユーザからの音、ジェスチャ、文字の検出、あるいは、コントローラからの操作などにより入力を受ける。また、音による出力、表示装置への提示による出力、あるいは、ジェスチャ、コントローラへのフィードバックなどによる出力をユーザに行う。対話ロボット100は、入力装置121、出力装置122、情報処理装置123、動作機構124、制御部125、記憶部126を備える。
 入力装置群121は、ユーザからの入力を受ける装置の集合である。例えば、音を受け付けるマイク、対話ロボット周辺の様子やユーザのジェスチャを撮影するカメラ、ネットワークを経由して情報を受けとるネットワーク送受信装置、対話ロボットに対する操作を入力するコントローラ、文字を入力するキーボードなどのうち、一つあるいは複数個で実現される。
 出力装置群122は、ユーザに出力する装置の集合である。例えば、音を出力するスピーカ、画面に情報を提示する表示装置、対話ロボットの動きを実現するための動作機構124の制御信号出力装置、対話ロボットから振動などのフィードバックを受けて動くコントローラなどのうち、一つあるいは複数個で実現される。
 動作機構124は、対話ロボット100自体を動作させる機構である。制御部125は、対話ロボット100が備える各機能部を制御する。
 図1Bに示したように、情報処理装置123は、CPU131、主記憶部132、補助記憶部133、バス134を備える。上記131から133までの各装置はバス134によって接続され、各装置間で相互にデータの送受信が行われる。また、CPU131と別の補助演算部を備えてもよい。
 CPU131は、主記憶部132または補助記憶部133に格納されているプログラムを読み出し、演算を実行し、主記憶部132や補助記憶部133や制御部125に演算結果を出力する。
 主記憶部132は、CPU131によって実行されるプログラムや、CPU131によって実行される演算結果や、情報処理装置123で利用される設定情報を格納する。主記憶部132は、たとえば、ランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)等で実現される。
 補助記憶部133、CPU131によって実行されるプログラムや、CPU131によって実行される演算結果や、情報処理装置123で利用される設定情報を格納する。とくに、主記憶132に格納しきれないデータの格納や、電源遮断された状態でもデータを保持する目的で使用される。補助記憶部133は、たとえば、ハードディスク(HDD)などの磁気ディスクドライブ、あるいはフラッシュメモリ等の不揮発性メモリ等を、単体あるいは複数組み合わせて構成される。補助記憶部133には、後述するユーザの状態を判定するためのルールや、後述するデータベース等も設定されている 。
 記憶装置126は、対話ロボット100が動作を行うための動作制御用の処理プログラムや設定情報等のデータや空間地図などを格納する。記憶装置126は、ハードディスク(HDD)などの記憶装置を用いて実現することができる。なお、補助記憶部133に設定されているユーザの状態を判定するためのルールや、後述するデータベースに関する情報を、記憶装置126に設定してもよい。
 対話ロボット100の構成はこれに限られるものではなく、入力機能、出力機能を備えていればよい。また、有線または無線のネットワークを介して、機能の一部をロボット100外部に分離してもよい。
 図2は、情報処理装置123のCPU131が、主記憶部132または補助記憶部133に格納されている処理プログラムを実行することにより実現される、対話処理部201の機能構成を示すブロック図である。
 対話処理部201は、動作処理部202と、操作処理部203、データベース213、ユーザ状態判定部214、処理部215、出力部216、を備える。
 入力装置群121にはカメラ291、複数のマイクから構成されるマイクアレイ292が含まれる。また、コントローラ、キーボードを備えてもよい。
 出力装置群122には、スピーカが含まれる。また、表示装置282、コントローラに付加する出力機能を備えてもよい。
 動作処理部202は、入力部211、検出部212、を備え、ユーザの動きや動作に関する情報が入力され、処理する機能ブロックである。入力部211には、カメラ291により対話ロボット100の前方を撮影した映像が入力される。
 検出部212は、カメラ291が取得したフレーム画像からユーザの存在を認識し、ユーザが存在する場合は、ユーザの同一性を判定し、さらに、カメラ291が取得した2枚以上のフレーム画像それぞれを用いて、ユーザの頭部の動きを検出する。ユーザが存在すると判定された時だけ、ユーザ状態判定部214に対してユーザの頭部の動きを送信する。
 フレーム画像からユーザの存在を認識する方法は、例えば、公知の顔検出技術を用いて顔を検出し、顔が検出されれば、ユーザが存在すると判定する。ユーザの同一性を判定する方法は、例えば、検出された顔と、直前に検出された顔との間で照合することで、実現できる。また、ユーザが複数存在すると判定された場合は、それぞれのユーザについて頭部の動きを検出し、対話ロボット100に図示しない外界測定装置で前方との距離を測定し、最も近い位置のユーザの頭部の動きだけを送信する。または、それぞれのユーザについて検出された頭部の動きを送信してもよい。
 上記の例では、動作処理部202はカメラ291からの画像を基に情報を処理するが、マイクアレイ292からの音声等を基に情報を処理する構成としてもよい。例えば、頭部の動きのかわりに、「はい」「いいえ」等の音声や、キーボードからの入力等を基に情報を処理する構成としてもよい。
 操作処理部203は、入力部221、検出部222、を備え、対話システム1000に対する操作に関する情報が入力され、処理する機能ブロックである。入力部221は、マイクアレイ292によりユーザからの音声信号が入力される。
 検出部222は、マイクアレイ292が取得した音声信号から、ユーザが発話した文章を認識し、その文章から会話のトピックを複数検出する。検出された各トピックは、事前に階層関係を設定しておくことで、検出された段階でトピック間の階層関係を決めることができる。検出されるトピックの階層が2つの場合、上位階層をメイン、下位階層をサブとする。例えば、メインは「富士山」で、サブは「富士山の高さ」や「富士山の天気」である。
 また、ユーザが発話した文章が、相槌の際に発せられる傾向の高い「んー」「そー」「へぇー」などの場合は、会話のトピックを“相槌”に設定する。また、ユーザが複数人いる場合は、マイクアレイ292により各方向から来た音声信号を検出し、それぞれの音声信号に対して、ユーザが発話した文章を認識し、その文章から会話のトピックを複数検出する。
 上記の例では、操作処理部203はマイクアレイ292からの音声を基に情報を処理するが、カメラ291からの画像等を基に情報を処理する構成としてもよい。例えば、音声による会話のかわりに、ジェスチャによる手話の画像や、キーボードからの入力等を基に情報を処理する構成としてもよい。 データベース213は、ユーザの状態を管理するユーザ状態管理テーブルと、ユーザへの出力内容を設定するための出力設定テーブルを持つ。ユーザ状態管理テーブルはユーザごとに持つ。また、出力設定テーブルは、トピック(メイントピックとサブトピックの組み合わせ)毎に準備する。存在するユーザが新規の場合は、新たにテーブルを用意する。また、対話システム管理者からの指示を受けてデータの一部またはすべてを削除可能とする。
 図3にユーザ状態管理テーブルと出力設定テーブルの構成を示す。
 図3Aに示すユーザ状態管理テーブル3000は、ユーザへの出力内容と、その内容レベルと、出力に対して想定されるユーザの状態と、ユーザからの入力である動きベクトルの系列、ユーザの実際の状態を1つの組として構成したテーブルである。
 出力内容はユーザに対して出力する内容を表しており、図3Aでは、一例として、スピーカ281で出力される音を合成するためのテキストが示されている。この出力内容には、表示装置282に表示する画像や、動作機構124に送る動きの情報や、コントローラの出力機能に対する振動情報なども設定できる。
 内容レベルは、ユーザに出力される内容にレベルを表す数値を設定する。図3Aでは、レベルの一例として難易度を用いる。難易度は数値が大きいほど理解するのが難しいことを表し、最小は1、最大は5である。
 出力に対して想定されるユーザの状態には、ユーザが持っている状態をランク付けした数値を設定する。図3Aでは、ユーザの状態の一例として、出力に対する理解度を用いる。出力に対する理解度は、値が大きいほどユーザがよく理解していることを表し、最小が0、最大が5である。動きベクトルの系列は、ユーザの反応である動きのベクトルを表す記号の系列が設定される。
 ユーザの実際の状態は、ユーザの反応である動きのベクトルに基づいてユーザが持っている状態を観測し、ランク付けした数値を設定する。図3Aでは出力に対して想定されるユーザの状態と同じ尺度を用いる。
 以降では、図3Aに示される各カラムの名称で説明をする。出力内容と内容レベルと想定状態は処理部215から取得され、ユーザ実状態はユーザ状態判定部214から取得され、動きベクトル系列は検出部213から取得され、逐次情報が更新される。ユーザ状態管理テーブルの各情報は、機能ブロックからの問い合わせに応じて、必要な情報が出力される。
 ユーザ状態管理テーブル3000は、ユーザが複数いる場合はユーザ毎に作成することができる。作成においては、検出部212は、第1の処理を出力中あるいは出力後に全てのユーザから第1の入力を検出する。また、検出部222は、第2の処理を出力中あるいは出力後に全てのユーザからの第2の入力を検出する。これらの入力に基づいて、ユーザ状態判定部214は、ユーザごとに第1の入力と第2の入力に基づいて第2の処理に対するユーザの状態を判定し、複数のユーザ状態管理テーブル3000を生成することができる。
 ユーザ状態管理テーブル3000では、処理の内容レベルとユーザ想定状態は1対1に予め決めておいてもよい。例えば、難易度と理解度は逆の相関があると考えられるので、内容レベルが高い(難しい)処理については、想定状態を低く(理解度が小さい)設定する。また、ユーザが複数おり、ユーザ状態管理テーブル3000を複数生成する場合には、個人差を想定してユーザ毎に異なる想定状態を設定してもよい。
 図3Bに示す出力設定テーブル3010は、検出部222から検出されるトピックが2つだけであり、そのうち上位階層側はメイントピック、下位階層側をサブトピックとした場合の構成を示している。その構成はメイントピックと、プロセスと、内容レベルと、ユーザへの出力内容を1つの組として構成したテーブルである。以降の説明では、図3Bに示される各カラムの名称で説明をする。メイントピックとサブトピックの組み合わせで、1つのトピックを構成する。図3Bの例では、一つのメイントピックAと二つのサブトピック01と02の組み合わせで、2つのトピックが検出される。サブトピックの数は3以上に増やしてもよい。また、サブトピックの階層を省略してメイントピックのみとしてもよいし、メイントピック・サブトピックの階層を、図3Bの例のように2階層でなく、3階層以上としてもよい。
 メイントピックは、ユーザの発話内容に対する主要なトピックを指す。たとえば「富士山」である。
 プロセスは、主要なトピックに対する回答を複数にカテゴリ分けするための項目であり、サブプロセス名とサブトピック名の組み合わせで表現される。サブプロセス名は「メイン」「捕捉」等である。サブトピックはたとえば「富士山の高さ」「富士山の天気」であり、出力設定テーブルでは「01」「02」などの番号で示している。
 内容レベルと出力内容は図3Aと同様である。内容レベルは出力内容ごとに設定される。出力設定テーブルは、メイントピックとプロセスと内容レベルをキーにすることで、出力内容が一意に決定されるように設定する。各項目は対話システム1000が動作する前の段階で設定しておくか、もしくは、必要に応じて適宜追加する。
 図2に戻って説明を続ける。ユーザ状態判定部214は、データベース213からユーザ状態管理テーブル3000に格納されている動きベクトル系列の集合を取得し、取得した動きベクトル系列の集合から第1の動きを抽出し、検出部212から第2の動きベクトルの系列を取得し、取得した第2の動きベクトルの系列から第2の動きを判定し、第1の動きと第2の動きから直前の処理に対するユーザの状態を判定する。本実施形態では、ユーザの状態として図3Aに示した出力に対する理解度を用いる。検出部212からそれぞれのユーザの頭部の動きが取得された場合は、ユーザごとに状態を判定する。
 処理部215は、検出部222が検出したトピックの集合と、データベース213からユーザ状態管理テーブルに格納されている直前のタイミングの想定状態と、ユーザ状態判定部214で判定されたユーザ実状態と、対話シナリオにおける現在のポジションから、出力内容と内容レベルを決定する。また、ユーザ状態判定部214が複数のユーザの状態を判定した場合は、ユーザごとに出力内容と内容レベルを決定し、最後に多数決を取って、最終的な出力内容と内容レベルを決定する。もしくは、ユーザごとに出力内容と内容レベルを決定し、出力内容にユーザのいる方向を向く動作をロボットに指示する信号を入れ、ユーザごとに出力を行うようにしてもよい。
 図4は対話シナリオの集合401の一例を示す図である。対話シナリオはトピックごとに用意される。同じメイントピックでサブトピックが異なる場合は、別々に用意される。対話シナリオにおいて、ポジションが丸で示され、矢印はあるポジションから別のポジションに遷移可能な方向を表す。ただし、サブプロセスが、矢印に記載された名称と一致するときだけポジションが遷移する。
 出力部216は、処理部215から出力内容を取得し、出力装置群122および制御部125に内容を送信する。
 図5は、対話処理部201の処理の流れ、換言すると、対話ロボット100がユーザと対話する動作を示すフローチャート図である。
 操作処理部203がマイクアレイ292からユーザの音声信号を入力、トピックを複数検出する(S501)。
 処理部215は、操作処理部203からトピックの集合を取得し、出力内容を決定する(S502)。
 出力部216は、処理部215から出力内容を取得し、出力装置群122および制御部125に送信する(S503)。
 カメラ291が対話ロボット1000の前方を撮影する(S504)。
 動作処理部202が、カメラ291で撮影された映像からユーザの存在を認識する(S505)。
 ユーザが存在しなかった場合(S506N)、ステップS501に戻る。
 ユーザが存在していた場合(S506Y)、例えばユーザの頭部の動きを検出し、動きベクトル系列の形式でデータベース213とユーザ状態判定部214に送信する。データベース213ではユーザ状態管理テーブル3000に動きベクトル系列を登録する(S507)。
 ユーザ状態判定部214が、画像処理部202から動きベクトル系列を取得し、データベース213から過去の動きベクトル系列を取得し、これらからユーザの状態を判定する(S508)。ユーザの状態判定の具体例については、後に図10で説明する。
 処理部215が、ステップS502で取得したトピックの集合と、データベース213から取得した最新の想定状態と、ユーザ状態判定部214から取得したユーザの状態から、出力内容とその内容レベルを決定する(S509)。出力内容とその内容レベルを決定するためには、まずサブプロセスと内容レベルを決定し(図7で説明する)、サブプロセスと内容レベルから出力内容を決定する。
 出力部216は、処理部215からステップS509で決定された出力内容を取得し、出力装置群122および制御部125に送信する(S510)。ステップS510と同じタイミングで、データベース213は、処理部215から取得した出力内容とその内容レベルをユーザ状態管理テーブル3000に格納する(S511)。
 質問に対する回答を出力している間のユーザの動きだけでは、ユーザの個人差により理解度判定が困難である。そこで、本実施例では、時間的に過去のユーザの動きを元に、ユーザの新しい動きを分析して、ユーザの状態を判定する。これにより、ユーザの個人差を補償して、理解度判定を容易に行うことができる。時間的に過去のユーザの動きは、例えばユーザに対する説明を出力している間の動きを用いることができる。
 図6は、検出されるトピックが2つだけの場合を例にとり、ステップS502およびステップS509で出力内容とその内容レベルを決定するフローを示した図である。以下、各ステップについて、図2~図4を参照しながら、関連する一連の動作毎に説明する。
 まず、検出部222からメイントピックが入力され、主記憶部132または補助記憶部133に蓄積する(S601)。
 入力されたメイントピックと、主記憶部132または補助記憶部133に蓄積されている1つ前のタイミングで入力されたメイントピックを比較する(S602)。
 比較の結果、1つ前のタイミングの入力とメイントピックに違いがある場合(S603Y)、対話シナリオ集合401からメイントピックに対応した対話シナリオが選択され(S604)、選択された対話シナリオのポジションをSに設定する(S605)。
 1つ前のタイミングの入力とメイントピックが同じなら(S603N)、メイントピックに対応する対話シナリオの中で現在、位置しているポジションを取り出す(S606)。
 現在のポジションがEの場合(S607N)は、ステップS605を処理する。これは同じトピックで違う会話を始めることに相当する。
 現在のポジションがEでない場合は(S607Y)は、ステップS608以降を処理する。
 ユーザ状態管理テーブル3000から次に設定したいサブプロセスと内容レベルを求める(S608)。このとき、サブプロセスと検出部222が検出したサブトピックと合わせてプロセスが設定される。例えば、求められたサブプロセスが“メイン”であり、検出されたサブトピックが“01”の場合、プロセス名は“メイン01”となる。
 ステップS608で求められたサブプロセスと一致する矢印に沿ってポジションに遷移する(S609)。例えば、図4に示したメイントピックAの対話シナリオにおいて、現在のポジションがSであり、かつ、サブプロセスがメインの場合は、ポジション(431)から1のポジション(432)に遷移する。
 S608で求められた内容レベルと、メイントピックとプロセスと合わせてキーに設定し、出力内容設定テーブルから出力内容を取り出し、出力部216に送信する(S610)。図3Bに示した出力内容設定テーブルの場合、メイントピックが“A”、プロセスが“メイン01”、内容レベルが“4”のときは、出力内容は“AはXXです”となる。
 S608で求められた内容レベルを用いて想定状態を計算し、取り出した出力内容とともにデータベースに送信する(S611)。想定状態の計算式は、内容レベルとして難易度を用い、レベルが大きいほど難易度が高いことを表す場合を例に説明する。レベルが大きいとき、つまり、出力内容が難しいときは、ユーザに理解してもらえる可能性が低い、すなわち、想定されるユーザの状態は小さくなる性質を持つ式を設定する。逆に、内容レベルが小さいとき、つまり、出力内容が易しいときは、ユーザに理解してもらえる可能性が高い、すなわち、想定されるユーザの状態は大きくなる性質を持つ式を設定する。また、ユーザの情報があれば、それを踏まえた式とする。例えば、下記の式で計算される。
 想定状態=ユーザ状態の最大値-内容レベル×ユーザの理解度重み
 上記の式において、ユーザ状態の最大値とはユーザが最も理解したときの値である。そこから、内容レベルの大きさを引くことで、前述の性質を満たす。ただし、内容レベルの最大値はユーザ状態の最大値とする。既知ユーザ重みとは、対話ロボット1000に対面しているユーザの情報を反映した重みであり、値域は0から1である。ユーザが難しい説明でも理解してくれる人ならば重みを0.5より小さくし、理解度できなさそうな人なら重みを0.5より大きくする。
 理解してくれやすいユーザか否かを知る方法としては、例えば、ユーザ状態管理テーブルから対象のユーザの想定状態とユーザ実状態をすべて取得し、想定状態<ユーザ実状態の数を用いて判断する。これは、想定状態<ユーザ実状態の数は、対話システム1000の想定よりも実際にユーザがよく理解してくれた数を表しており、理解しやすいユーザと判断できる基準として有用である。
 また、ユーザ実状態が所定の大きさ以上がN回連続したか否かを用いることでもできる。これは、こちらの説明に対して高い理解度を示し続けたか否かを表しており、理解しやすいユーザと判断できる基準として有用である。また、内容レベルが高い時に対するユーザの実状態が高い場合の数も用いることでもできる。これは、難しい内容の出力に対して理解した数を表しており、理解しやすいユーザと判断できる基準として有用である。以上説明した基準をそれぞれ足し合わせて、重みを設定してもよい。
 また、トピックが2つより多い場合は、例えば、メイントピックを複数のトピックを組合せたものとして扱い、メイントピックに扱われなかったトピック集合はプロセス内のサブトピック名として連結して扱うことで、上記と同様のフローで処理可能である。
 図7は、ユーザ状態管理テーブル3000から次に設定したいサブプロセスと内容レベルを求める条件を列挙したテーブルを示す図である。条件を満たす場合に、対応するサブプロセスと内容レベルを設定する。また、備考に情報がある場合はその処理を実行する。
 条件1は、想定状態の値が実状態より小さい場合である。これは、想定よりも理解をしてくれたことを表す。したがって、興味がある、もしくは、やや難しめの内容を説明しても理解してくれそうと判断し、備考にある所定のコメントを発話して、サブプロセスに補足、内容レベルを4に設定する。コメントは、意外だった感想を示す内容とする。このように、想定結果と判定結果が一致しない場合などに、出力部は、通常のサブプロセスの処理の実行前に、付加的な処理を行うこともできる。また、判定結果から、ある処理に従属する処理を処理として選択することもできる。
 条件2は想定状態の値が実状態より大きい場合である。これは、想定よりも理解してくれなかったことを表す。したがって、説明を易しくした方がいいと判断し、備考にある所定のコメントを発話して、サブプロセスに平易化、内容レベルを2に設定する。コメントは、自分の説明が難しかったことを示す内容とする。
 条件3は直前の実状態が連続して高い値であり、かつ、次の話題(異なるメイントピックとサブトピックの組み合わせ)に移る場合である。ユーザに刺激を与えた方がいいと判断し、あえて内容レベルの高い説明を選択するため、サブプロセスにメイン、内容レベルを5に設定する。
 条件4、5は、想定状態と実状態が同じであり、かつ、実状態が高い場合である。これは、ユーザは、興味を持ったので補足説明をした方がいいと判断し、サブプロセスに補足、内容レベルは実状態-1を設定する。
 条件6は想定状態と実状態が同じであり、実状態が3の場合である。これは、ユーザは直前の説明に納得し、興味もほどほどなので、対話を終了した方がいいと判断し、サブプロセスに終了を設定する。このように、判定結果によっては、処理を行わない選択肢を設けることもできる。
 条件7、8は、想定状態と実状態が同じであり、かつ、実状態が低い場合である。これは、ユーザは直前の出力がわからなかったので、説明を易しくした方がいいと判断し、サブプロセスに平易化、内容レベルは実状態+1を設定する。
 条件10は、最初の対話のときの場合である。サブプロセスにメイン、内容レベルは3を設定する。条件11は、j対話システム1000と過去に話したことのあるユーザと、対話し始めた場合である。これは、知っているユーザなので、多少難しい内容を説明しても理解してくれると判断し、サブプロセスにメイン、内容レベルは4を設定する。条件は、これに限られるものではなく、想定状態、実状態、対話シナリオのポジションのいずれかが用いられていればよい。
 図7に示したテーブルを参照することにより、サブプロセスと内容レベルが定まる。サブプロセスと内容レベルにメイントピックの情報を加え、キーとして出力内容テーブル(図3B)を参照すると、出力内容が定まる。
 図7にみられるように、処理部215は、処理に対して内容レベルを事前に設定しておき、過去の判定結果に基づいてレベルを決定し、レベルが設定された処理を選択するように構成することができる。このとき、過去の複数回の判定結果を用いてレベルを決定してもよい。例えば、過去の複数回の判定結果の平均値や最頻値を用いることができる。
 なお、複数ユーザがいる場合は、処理部215は、ユーザ毎に生成されたユーザ状態管理テーブル3000を用い、ユーザ毎に条件判定を行い、その結果からユーザ毎に処理を選択して出力することができる。また、ユーザの人数が多く処理が煩雑な場合などは、ユーザ毎の判定結果から1つを抽出し、抽出された1つの判定結果に基づいて一つの処理を選択し出力することもできる。
 図8Aは、ステップS507のユーザの頭部の動きを検出する処理の流れの一例を示す図である。最初に、処理801のように、時間的に連続する2つのフレーム画像のうちの一方のフレーム画像から顔を検出する。検出された結果は811で示される。次に、処理802に示すように、検出された顔内部の領域において特徴点を複数検出する。最後に、処理803に示すように検出されたそれぞれの特徴点が、他方のフレーム画像で存在する位置までのベクトルを求めて、前記ベクトルを平均したものを頭部の動きベクトルとして用いることができる。
 図8Bは、処理803を拡大表示したものである。丸や三角やバツで示される各特徴点に対して、矢印で示す動きベクトルが示される。
 図8Cは、動きベクトルを量子化して表現する例を示す。動きベクトルは例えば、図8Cに示すように、4方向に量子化する。処理802および処理803を行う方法は、下記参考文献1に記されている方法を用いることができる。
[参考文献1]J. Shi and C. Tomasi, "Good Features to Track," CVPR'94, pp.593-600。
 図8Dに示すように、検出された動きベクトルは、所定の時間分をまとめて1つの系列として取り扱う。動きベクトルが求められた時間ごとに、動きベクトルの系列をデータベース213とユーザ状態判定部214に送信する。ユーザの頭部の動きを検出する処理の流れは、これに限られるものではない。
 図9は、データベース213が持つユーザ状態管理テーブル3000にデータが格納される様子を表す図である。ユーザ状態管理テーブルの構造は、図3Aで示した構造と同様である。まず、ステップS502で複数のトピックに基づいて、出力内容を決定した後、処理部215から出力内容とその内容レベルと想定状態を取得したタイミングt1で、取得したデータを格納する。
 次に、ステップS507で撮影された映像からユーザの頭部の動きを検出した後、検出部213から動きベクトル系列を受け取ったタイミングt2で、動きベクトル系列を格納する。
 続いて、ステップS508で動きベクトル系列と過去の動きベクトルから、ユーザの状態を判定した後、ユーザ状態判定部214からユーザ実状態を取得したタイミングt3で、ユーザ実状態を格納する。この一連の流れを逐次実行する。
 以上の例では、処理部は、処理に対してレベルを事前に設定しておき、ユーザごとにあらかじめ初期状態のテーブルを用意し、判定結果に応じて逐次テーブルを更新し、設定されている内容レベルや更新されたユーザの実状態に基づいて、各処理に対するユーザの状態を想定することができる。
 ステップS508で過去の動きベクトルの系列を取り出す方法について、図10に示すデータベース213内のユーザ状態管理テーブルを用いて説明する。
 図10Aは、対話ロボット100がユーザに最初の説明(出力)を実行し、その後、ユーザからの質問に回答した直後の状態の、ユーザ状態管理テーブル3000を示す図である。ユーザ状態管理テーブル3000には、ユーザに最初の説明を実行した際の情報が1行目に格納され、ユーザからの質問に回答した情報が、2行目の出力内容、内容レベル、想定状態に格納されている。この状態では、第1の動きを判定するために必要な動きベクトル系列として、1行目の動きベクトル系列1001を用いる。2行目の出力内容を出力する段階では、ユーザからは1つの動きしか得られていないので、ユーザ状態判定部214は、後に図12のユーザ状態判定テーブルで説明する、理解度判定ルールが利用できない。この場合は、2行目の出力内容は、例えばユーザの実状態(理解度)は暫定的に中間値(例えば2または3)として決定すればよい。あるいは、第1の動きのみで実状態(理解度)を判定する別のテーブルを準備すればよい。あるいは、図12のテーブルで、第1の動き「なし」として第2の動きのみで判定すればよい。
 ユーザ状態管理テーブル3000は、処理部215によりユーザ毎に作成され、其々あらかじめ初期状態を用意する。テーブルは、判定結果に応じて逐次状態を更新し、更新された状態から次の処理を想定するように構成することができる。
 図10Bは、対話ロボット100がユーザに説明を実行し、その後、質問の受付と回答を何回か繰り返した後に、ユーザからの質問に回答した直後の状態の、ユーザ状態管理テーブルを示す図である。ユーザ状態管理テーブルには、1行目から複数行にわたって情報が格納され、K行目の出力内容、内容レベル、想定状態に情報が格納されている。
 この状態では、K行目の内容レベルと同じ値を持つ行を1行目からK-1行目までの範囲で検索し、見つかった行のうち、最もKに近いJ行目の動きベクトル系列1002を用いることができる。これは、現在説明している出力内容と同じ内容レベルを過去に説明したときのユーザの動きを第1の動きとして用いることを意味する。
 現在の説明と同じ内容レベルで説明した時のユーザの動きを用いてユーザの理解度を判定することで、ユーザに適した理解度の推定が可能となる。また、K行目の内容レベルと同じ値を持つ行がなかった場合、例えば、1行目の動きベクトル系列を用いればよい。あるいは、内容レベルが最も近い、かつ、最もKに近い行の動きベクトル系列を用いるように設定してもよい。上記では、動きベクトル系列を1つ選択する方法を説明したが、過去の動きベクトル系列を複数個用いてもよい。例えば、平均値あるいは、最頻出の値を使用すればよい。このように、過去に蓄積された同一ユーザからの入力を有効に利用することができる。
 また、「わたしの言うことがわかりますか?」などの理解度判定用の出力を設定しておき、これに対する応答を、第1の動きとして用いることもできる。
 以上の方法で選択された動きベクトル系列から動きを分類する。過去の動きベクトル系列を複数利用する場合は、利用する動きベクトル系列をまとめて一つの動きベクトル系列を生成し、生成された動きベクトル系列を用いて動きの分類を行う。
 図11は、動きの分類フローを示す図である。動きベクトル系列が入力される(S1101)。動きベクトル系列の中で最も回数の多い方向を求める(S1102)。図8Cで説明した動きベクトルの量子化に従うと、前記方向が0の場合(S1103、D=0)、動きは“なし”と判定する(S1104)。前記方向が左右、つまり1または3の場合(S1103,D=1)、動きを“左右あり”と判定する(S1105)。前記方向が上下、つまり2または4の場合(S1103、D=2)、前記回数が所定のしきい値T1以上の場合(S1106、Y)は、第1の動きを“上下大”と判定する(S1108)。前記回数が所定のしきい値T1より小さい場合(S1106、N)、かつ、前記回数が所定のしきい値T2以上の場合(S1107、Y)、第1の動きを“上下中”と判定する(S1109)。前記回数が所定のしきい値T1より小さい場合(S1106、N)、かつ、前記回数が所定のしきい値T2より小さい場合(S1107、N)、動きを“上下小”と判定する(S1110)。
 図12は、ユーザ状態として出力に対する理解度を設定した場合の、ステップS508において、ユーザ状態判定部214がユーザの状態を判定するルールをテーブルに示した図である。図12では、テーブルの行が第1の動きに対応し、テーブルの列が第2の動きに対応する。このテーブルにおいて動きは、上下方向、左右、動きなしの3種類の大きな分類と、上下方向の動きについては、その周期が大、中、小の3種類の分類、すなわち合計5つのカテゴリで表現されている。また、テーブルの値は、理解度の大きさを表しており、数字が大きいほど理解度が高いことを示す。
 図12では、理解度がニュートラル(理解したか、しなかったか不明)の場合が1、理解がされなかった場合は0、理解度が2以上は理解があったとしている。例えば、図12の1201で示した場所は、第1の動きが上下方向で周期が中、第2の動きが上下方向で周期が小に対応しており、そのときの理解度は2である。
 このテーブルの値の設定基準について説明する。まず、第2の動きが左右の場合は、第1の動きに関わらず理解度に0が設定されている。これは、左右の動きは首をかしげる動作に対応しており、首をかしげた場合は、第1の動きに関わらず理解できなかったと判断したためである。続いて、第1の動きが上下にある場合について説明する。多くの日本人の場合、理解した時は上下の動きをしてくれる傾向が強いことから、この場合は、理解した時は上下の動きをするタイプのユーザと判断する。第2の動きがない場合は、このタイプのユーザが動かない場合は理解できなかったと判断し、0が設定されている。また、第2の動きが上下かつ、第1の動きより周期が小さい場合は、前よりも動きの周期が小さいので、あまり理解してもらえなかった、もしくはどちらかわからないと判断し、低めの値が設定されている。第2の動きが上下かつ、第1の動きと周期が同じ場合は、周期の大きさに応じた値が設定されている。第2の動きが上下かつ、第1の動きより周期が大きい場合は、前よりも動きの周期が大きいので、理解度が高いと判断し、図5の値が設定されている。
 次に第1の動きが左右にある場合と、動きがなしの場合について説明する。この場合は、理解したときにどのような反応をするかわからないタイプのユーザと判断し、上下方向の動きの周期が大きいほど理解度が高く、動きがない場合は理解したかどうか判断できないとして、図12の値が設定されている。ユーザの理解度を判定する方法は、これに限られるものではなく、判定に用いられるデータは、データベース213に格納されている過去の動きベクトルの系列と、検出部212から取得する動きベクトルの系列があればよい。
 以上の例では、図5のステップS508においてユーザ状態としてユーザの理解度を判定している。この結果は、図5のS509で出力内容と内容レベルを決定する処理で使用される。具体例としては、ユーザの理解度は図7のテーブルの実状態に代入され、条件を満たすサブプロセスと内容レベルが決定される。
 以上のように、本実施形態に係る対話システム1000は、ユーザに出力する出力部と、ユーザからの入力を検出する検出部と、ユーザの状態を判定する判定部と、処理を選択する処理部とを有し、前記出力部は、第1の出力を行い、前記検出部は、第1の出力を実行中あるいは実行後にユーザから第1の入力を検出し、前記出力部は、ユーザからの入力後に第2の出力を行い、前記検出部は、第2の出力を実行中あるいは実行後に、ユーザからの第2の入力を検出し、前記判定部は第1の入力と第2の入力に基づいて第2の出力に対するユーザの状態を判定し、前記処理部は、前記判定結果から処理を選択し、前記出力部は、前記処理を実行して出力することを特徴とする。
 かかる特徴によれば、ユーザに対して第1の出力を行い、第2の出力を実行中あるいは実行後にユーザから第1の入力を検出し、検出された第1の入力を蓄積し、ユーザからの入力後にロボットが第2の出力を行い、第2の出力を実行中あるいは実行後に、ユーザからの第2の入力を検出し、第1の入力と第2の入力に基づいて、ユーザの過去の反応をも参酌してユーザの状態を判定することで、ユーザに適した対話制御を実現する。
 また、判定されたユーザの状態に応じてロボットの処理を選択することで、ユーザに適した対話制御を実現する。
 本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、操作処理部203は、対話システム1000に対する操作や応答に関する情報が入力され、処理する機能ブロックであればよい。例えば、入力装置群にキーボードを用意し、キーボードから複数の文字コードの入力を受ける入力部、入力された複数の文字コードから文章を生成し、トピックを複数検出する検出部としてもよい。また、入力装置群にカメラを用意し、カメラで撮影された映像を受ける入力部、入力された映像からジェスチャを認識して文章を生成し、トピックを複数検出する検出部としてもよい。いずれもの場合も、対話シナリオの集合401、ユーザ状態管理テーブル、出力内容設定テーブルをそのまま用いることができる。また、入力装置群に対話システム1000を操作するためのコントローラ293を用意し、コントローラ293から信号を受ける入力部、入力された信号から対話ロボットの操作コマンドを検出する検出部としてもよい。この場合は、対話シナリオの集合401、ユーザ状態管理テーブル、出力内容設定テーブルは、操作に合わせた内容にすることで、構造をそのまま利用できる。
 また、動作処理部202は、ユーザの動きや動作に関する情報が入力され、処理する機能ブロックであればよい。例えば、入力装置群に対話システム1000を操作するためのコントローラ293を用意し、コントローラ293から信号を受ける入力部、入力された信号からユーザのコントローラ293に対する動作を検出する検出部としてもよい。また、第1の実施形態における検出部212は、ユーザの頭部の動きを検出していたが、ユーザの目の動きや、体全体の動きを用いてもよい。いずれの場合も、動きベクトル系列の表現を検出する動作に応じた形式に変えれば、各機能ブロックは同様でよい。
 また、第1の実施形態におけるユーザ状態判定部214で判定されるユーザの状態として出力に対する理解度を用いていたが、対話システムに対して信頼度合いを測る信頼度や、ユーザのストレス度合いとしてもよい。この場合、出力内容設定テーブルを設定された尺度に沿ったルールにすれば、機能ブロックは同様でよい。
 上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。
 上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に格納することができる。
 以上の構成は、単体のコンピュータで構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。発明の思想としては等価であり、変わるところがない。
 本発明は、ユーザと機械との間の対話技術全般に利用することができる。
100:ロボット
121:入力装置群
122:出力装置群
123:情報処理装置
124:動作機構
125:制御部
126:記憶部
202:動作処理部
203:操作処理部
213:データベース
214:ユーザ状態判定部
215:処理部
216:出力部
1000:対話システム

Claims (15)

  1.  ユーザに処理を出力する出力部と、
     前記ユーザからの入力を検出する検出部と、
     前記ユーザの状態を判定する判定部と、
     処理を決定する処理部とを有し、
     前記出力部は、第1の処理を出力し、
     前記検出部は、第1の処理を出力中あるいは出力後にユーザから第1の入力を検出し、
     前記出力部は、ユーザからの第1の入力を検出した後に第2の処理を出力し、
     前記検出部は、第2の処理を出力中あるいは出力後にユーザからの第2の入力を検出し、
     前記判定部は、第1の入力と第2の入力に基づいて第2の処理に対するユーザの状態を判定し、
     前記処理部は、前記判定結果から第3の処理を選択し、
     前記出力部は、第3の処理を出力することを特徴とする対話システム。
  2.  請求項1において、
     前記処理部は、前記第2の処理に対する前記ユーザの状態を想定し、前記想定結果と前記判定結果から、前記第3の処理を選択することを特徴とする対話システム。
  3.  請求項2において、
     前記処理部は、前記処理に対してレベルを事前に設定しておき、前記第2の処理に設定されているレベルに基づいて、前記第2の処理に対する前記ユーザの状態を想定することを特徴とする対話システム。
  4.  請求項2において、
     前記処理部は、前記ユーザごとにあらかじめ初期状態を用意し、前記判定結果に応じて逐次状態を更新し、前記更新された状態から前記第2の処理に対する前記ユーザの状態を想定することを特徴とする対話システム。
  5.  請求項2において、
     前記処理部は、前記処理に対してレベルを事前に設定しておき、前記ユーザごとにあらかじめ初期状態を用意し、前記判定結果に応じて逐次状態を更新し、前記第2の処理に設定されているレベルと前記更新された状態に基づいて、前記第2の処理に対する前記ユーザの状態を想定することを特徴とする対話システム。
  6.  請求項1において、
     前記検出部は前記ユーザからの第1の入力として第1のユーザの動きを用い、前記ユーザからの第2の入力として第2のユーザの動きを用いることを特徴とする対話システム。
  7.  請求項6において、
     前記第1のユーザの動きと前記第2のユーザの動きが同じ方向、かつ、前記第1のユーザの動きと前記第2のユーザの動きの大きさに違いがある場合に、前記ユーザの状態の判定する基準を変えることを特徴とする対話システム。
  8.  請求項1において、
     前記ユーザが複数いる場合
     前記検出部は、前記第1の処理を出力中あるいは出力後に、全ての前記ユーザから前記第1の入力を検出し、
     前記検出部は、前記第2の処理を出力中あるいは出力後に、全ての前記ユーザから前記第2の入力を検出し、
     前記判定部は、前記ユーザごとに前記第1の入力と前記第2の入力に基づいて前記第2の処理に対する前記ユーザの状態を判定し、
     前記処理部は、前記ユーザごとの判定結果から前記第3の処理を選択し、
     前記出力部は、前記第3の処理を出力することを特徴とする対話システム。
  9.  請求項1において、
     前記ユーザが複数いる場合
     前記検出部は、前記第1の処理を出力中あるいは出力後に、全ての前記ユーザから前記第1の入力を検出し、
     前記検出部は、前記第2の処理を出力中あるいは出力後に、全ての前記ユーザから前記第2の入力を検出し、
     前記判定部は、前記ユーザごとに前記第1の入力と前記第2の入力に基づいて前記第2の処理に対する前記ユーザの状態を判定し、
     前記処理部は、前記ユーザごとの判定結果から1つを抽出し、前記抽出された1つの判定結果から前記第3の処理を選択し、
     前記出力部は、前記第3の処理を出力することを特徴とする対話システム。
  10.  請求項1において、
     前記判定部は、前記第1の入力と前記第2の入力と過去に蓄積された同一ユーザからの入力に基づいて前記第2の処理に対する前記ユーザの状態を判定することを特徴とする対話システム。
  11.  画像を取得するカメラと、
     前記画像から、ユーザの動きを検出する検出部と、
     前記ユーザに対して文章を出力する出力部と、
     前記ユーザからの入力を認識する認識部と、
     前記ユーザの状態を判定する判定部と、を有する対話システムであって、
     前記検出部は、第1の文章を出力している間またはその後に前記カメラで取得した画像に基づき、前記ユーザの第1の動きを検出し、
     前記検出部は、第2の文章を出力している間またはその後に前記カメラで取得した画像に基づき、前記ユーザの第2の動きを検出し、
     前記第1の文章の出力は前記第2の文章の出力に対して時間的に先行し、
     前記認識部は、前記第2の文章に対するユーザからの入力を認識し、
     前記判定部は、前記第1の動きおよび前記第2の動きに基づいて前記ユーザの状態を判定し、前記判定に応じて前記ユーザからの入力に対する処理内容を決定することを特徴とする対話システム。
  12.  ユーザに情報を出力する出力装置と、
     前記ユーザからの情報を入力する入力装置と、
     前記ユーザの状態を判定する判定部と、
     前記出力する情報を決定する処理部を有し、
     前記ユーザへの複数回の情報の出力と、前記ユーザからの複数回の情報の入力によって、ユーザと対話を行う対話システムにおける情報処理方法であって、
     前記判定部は、前記出力装置からの第1の情報の出力に対する、前記ユーザの第1の反応を検知し、
     前記判定部は、前記出力装置からの第1の情報の出力以降に行われる第2の情報の出力に対する、前記ユーザの第2の反応を検知し、
     前記判定部は、前記検知した第1の反応と前記第2の反応に基づいて、前記ユーザの状態を判定し、
     前記処理部は、前記判定されたユーザの状態に基づいて、前記出力する情報を決定する対話システムにおける情報処理方法。
  13.  前記ユーザの第1の反応および第2の反応は、カメラによって撮影された画像に基づく前記ユーザの動きである、
     請求項12記載の対話システムにおける情報処理方法。
  14.  前記第2の情報は、予め定められた内容で準備された複数の文章から選択される文章であり、
     前記複数の文章には、其々当該文章を認知した前記ユーザの状態を想定する想定状態の情報が予め付されており、
     前記処理部は、前記第1の反応と前記第2の反応に基づいて前記判定部によって判定されたユーザの状態と、前記第2の情報に付された想定状態の情報に基づいて、前記出力する情報を決定する、
     請求項12記載の対話システムにおける情報処理方法。
  15.  前記出力する情報は、少なくともメイントピック、プロセス、内容レベル、および出力内容である文章を組にして格納したテーブルから文章を選択して決定され、
     前記第2の情報の出力に対する前記ユーザからの情報の入力により、前記メイントピックが決定され、
     前記第1の反応と前記第2の反応に基づいて判定された前記ユーザの状態により、前記プロセスと内容レベルが決定され、
     これらの決定に基づいて、前記文章を選択する、
     請求項12記載の対話システムにおける情報処理方法。
PCT/JP2014/071061 2014-08-08 2014-08-08 対話システム、および情報処理方法 WO2016021058A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2014/071061 WO2016021058A1 (ja) 2014-08-08 2014-08-08 対話システム、および情報処理方法
JP2016539785A JP6235148B2 (ja) 2014-08-08 2014-08-08 対話システム、および情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/071061 WO2016021058A1 (ja) 2014-08-08 2014-08-08 対話システム、および情報処理方法

Publications (1)

Publication Number Publication Date
WO2016021058A1 true WO2016021058A1 (ja) 2016-02-11

Family

ID=55263360

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/071061 WO2016021058A1 (ja) 2014-08-08 2014-08-08 対話システム、および情報処理方法

Country Status (2)

Country Link
JP (1) JP6235148B2 (ja)
WO (1) WO2016021058A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010076602A (ja) * 2008-09-26 2010-04-08 Denso It Laboratory Inc 車載機器制御装置および車載機器制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010076602A (ja) * 2008-09-26 2010-04-08 Denso It Laboratory Inc 車載機器制御装置および車載機器制御方法

Also Published As

Publication number Publication date
JP6235148B2 (ja) 2017-11-22
JPWO2016021058A1 (ja) 2017-05-25

Similar Documents

Publication Publication Date Title
JP6947852B2 (ja) 複数のコンピューティングデバイスを使用したインターホン式の通信
JP6761598B2 (ja) 感情推定システム、感情推定モデル生成システム
US11769492B2 (en) Voice conversation analysis method and apparatus using artificial intelligence
US10818284B2 (en) Methods of and electronic devices for determining an intent associated with a spoken user utterance
US11462213B2 (en) Information processing apparatus, information processing method, and program
KR101699720B1 (ko) 음성명령 인식 장치 및 음성명령 인식 방법
JP2021533397A (ja) 話者埋め込みと訓練された生成モデルとを使用する話者ダイアライゼーション
KR20170080672A (ko) 키 문구 사용자 인식의 증강
JP2019053126A (ja) 成長型対話装置
US20180165581A1 (en) Electronic apparatus, method of providing guide and non-transitory computer readable recording medium
US11881209B2 (en) Electronic device and control method
US10836044B2 (en) Robot control device and robot control method
KR102412643B1 (ko) 개인 맞춤형 인공지능 키오스크 장치 및 이를 이용한 서비스 방법
CN110998718A (zh) 信息处理设备和信息处理方法
JP6772839B2 (ja) 情報処理装置、情報処理方法およびプログラム
US20210216589A1 (en) Information processing apparatus, information processing method, program, and dialog system
CN111506183A (zh) 一种智能终端及用户交互方法
US20210158800A1 (en) Electronic apparatus and control method thereof
JP6629172B2 (ja) 対話制御装置、その方法及びプログラム
JP6235148B2 (ja) 対話システム、および情報処理方法
JP6950708B2 (ja) 情報処理装置、情報処理方法、および情報処理システム
KR20210027991A (ko) 전자장치 및 그 제어방법
JP6901992B2 (ja) 案内ロボットシステム及び言語選択方法
WO2019146199A1 (ja) 情報処理装置、及び情報処理方法
JPWO2020116001A1 (ja) 情報処理装置および情報処理方法

Legal Events

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

Ref document number: 14899225

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016539785

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14899225

Country of ref document: EP

Kind code of ref document: A1