Conversation controller
A conversation controller outputs a reply sentence according to a user utterance. The conversation controller comprises a conversation database and a conversation control unit. The conversation database stores a plurality of plans. Each plan has a reply sentence and one or more pieces of next plan designation information for designating a next candidate reply sentence to be output following the reply sentence. The conversation control unit selects one of the plans stored in the conversation database according to a user utterance and outputs a reply sentence which the selected plan has. Then, the conversation control unit selects one piece of the next plan designation information which the plan has according to a next user utterance and outputs a next candidate reply sentence on the basis of the selected piece of the next plan designation information. Some plans have a plurality of reply sentences into which one explanatory sentence is divided.
Latest Aruze Corp. Patents:
This application claims benefit of priority under 35 U.S.C. § 119 to Japanese Patent Application No. 2005-307863, filed on Oct. 21, 2005, the entire contents of which are incorporated by reference herein.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates to a conversation controller configured to output an answer or a reply to a user utterance.
2. Description of the Related Art
Various conventional conversation controllers are developed to be employed at various situations. Each conversation controller outputs an answer or a reply to a user utterance. The conventional conversation controllers are disclosed in Japanese Patent Laid-open Publications No. 2004-258902, No. 2004-258903 and No. 2004-258904. Each conversation controller answers a user's question while establishing a conversation with the user.
In each conversation controller, it is impossible to output reply sentences in sequence to realize a flow of conversation which is previously prepared because the flow of conversation is determined according to a user utterance.
SUMMARY OF THE INVENTIONIt is an object of the present invention to provide a conversation controller capable of outputting reply sentences in sequence to realize a flow of conversation which is previously prepared therein while responding to a user utterance.
In order to achieve the object, the present invention provides a conversation controller configured to output a reply sentence according to a user utterance, comprising: a plan memory unit configured to store a plurality of plans, wherein each plan has a reply sentence and one or more pieces of next candidate designation information for designating a next candidate reply sentence to be output following the reply sentence; and a plan conversation unit configured to select one of the plans stored in the plan memory unit according to a first user utterance and output a reply sentence which the selected plan has, and select one piece of the next candidate designation information which the plan has according to a second user utterance and output a next candidate reply sentence on the basis of the selected piece of the next candidate designation information.
According to the present invention, the conversation controller can output a plurality of reply sentences according in a predetermined order by carrying out a series of plans in order designated by the next candidate designation information.
In a preferred embodiment of the present invention, the plan conversation unit withholds an output of the next candidate reply sentence when receiving the second user utterance which is not related to the next candidate reply sentence or it is unclear whether or not there is a relation between the second user utterance and the next candidate reply sentence, and then outputs the withheld next candidate reply sentence when receiving a third user utterance which is related to the withheld next candidate reply sentence.
According to the embodiment, when user's interest moves toward another topic other than the topic of the associated plan, the conversation controller can withhold an output of the associated reply sentence. In contrast, when user's interest returns to the associated plan, the conversation controller can resume the output of the associated reply sentence from a withheld portion of the associated reply sentence.
In a preferred embodiment of the present invention, the conversation controller further comprises a discourse space conversation unit configured to output a reply sentence about a topic which is not related to the withheld next candidate reply sentence according to the second user utterance.
According to the embodiment, when a user wants to talk about another topic other than the topic of the associated plan, the conversation controller can withhold an output of the associated reply sentence and respond to the user according to a user utterance about the another topic. Then, when user's interest returns to the associated plan, the conversation controller can resume the output of the associated reply sentence from a withheld portion of the associated reply sentence. Therefore, the conversation controller can executes the output of the associated reply sentence from beginning to end of the associated reply sentence while inserting a conversation about another topic other than the topic of the associated plan according to a user utterance in the middle of the output of the associated explanatory sentence.
In a preferred embodiment of the present invention, the reply sentence is a part of an explanatory sentence or a part of an interrogative sentence for urging a selection to the user.
According to the embodiment, the conversation controller can output a long explanatory sentence or a long questionnaire sentence as a plurality of dividend reply sentences in order previously prepared therein.
BRIEF DESCRIPTION OF THE DRAWINGS
Hereinafter, an exemplary embodiment of the present invention will be described with reference to FIGS. 1 to 22. In the exemplary embodiment, the present invention is proposed as a conversation controller configured to output an answer to a user utterance and establish a conversation with the user.
(1. Configuration of Conversation Controller)
(1-1. General Configuration)
A conversation controller 1 includes therein an information processor such as a computer or a workstation, or a hardware corresponding to the information processor. The information processor has a central processing unit (CPU), a main memory (random access memory: RAM), a read only memory (ROM), an input-output device (I/O device) and an external storage device such as a hard disk. A program for allowing the information processor to function as the conversation controller 1 and a program for allowing the information processor to execute a conversation control method are stored in the ROM or the external storage device. The CPU reads the program on the main memory and executes the program, which realizes the conversation controller 1 or the conversation control method. It is noted that the program may be stored in a computer-readable program recording medium such as a magnetic disc, an optical disc, a magnetic optical disc, a compact disc (CD) or a digital video disc (DVD), or an external device such as a server of an application service provider (ASP). In this case, the CPU reads the program from the computer-readable program recording medium or the external device on the main memory and executes the program.
As shown in
(1-1-1. Input Unit)
The input unit 100 receives input information (user utterance) provided from a user. The input unit 100 outputs a speech corresponding to contents of the received utterance as a speech signal to the speech recognition unit 200. It is noted that the input unit 100 may be a key board or a touch panel for inputting character information. In this case, the speech recognition unit 200 is omitted.
(1-1-2. Speech Recognition Unit)
The speech recognition unit 200 identifies a character string corresponding to the contents of the utterance received at the input device 100, based on the contents of the utterance. Specifically, the speech recognition unit 200, when receiving the speech signal from the input unit 100, compares the received speech signal with the conservation database 500 and dictionaries stored in the speech recognition dictionary memory 700, based on the speech signal. Then, the speech recognition unit 200 outputs to the conversation control unit 300 a speech recognition result estimated based on the speech signal. The speech recognition unit 200 requests acquisition of memory contents of the conversation database 500 to the conversation control unit 300, and then receives the memory contents of the conversation database 500 which the conversation control unit 300 retrieves according to the request from the speech recognition unit 200. It is noted that the speech recognition unit 200 may directly retrieves the memory contents of the conversation database 500.
(1-1-2-1. Configuration of Speech Recognition Unit)
As shown in
The speech recognition dictionary memory 700 stores a phoneme hidden markov model (phoneme HMM) therein. The phoneme HMM has various states which each includes the following information: (a) a state number; (b) an acceptable context class; (c) lists of a previous state and a subsequent state; (d) a parameter of an output probability distribution density; and (e) a self-transition probability and a transition probability to a subsequent state. In the exemplary embodiment, the phoneme HMM is generated by converting a prescribed speaker mixture HMM, in order to identify which speakers respective distributions are derived from. An output probability distribution function has a mixture Gaussian distribution which includes a 34-dimensional diagonal covariance matrix. The speech recognition dictionary memory 700 further stores a word dictionary therein. Each symbol string which represents how to read a word every word in the phoneme HMM is stored in the word dictionary.
A speech of a speaker is input into the feature extraction portion 200A after being input into a microphone and then converted into a speech signal. The feature extraction portion 200A extracts a feature parameter from the speech signal and then outputs the feature parameter into the buffer memory 200B after executing an A/D conversion for the input speech signal. We can propose various methods for extracting the feature parameter. For example, the feature extraction portion 200A executes an LPC analysis to extract a 34-dimensional feature parameter which includes a logarithm power, a 16-dimensional cepstrum coefficient, a Δ logarithm power and a 16-dimensional Δ cepstrum coefficient. The aging extracted feature parameter is input into the word retrieving portion 200C via the buffer memory 200B.
The word retrieving portion 200C retrieves word hypotheses by using a one-pass Viterbi decoding method, based on the feature parameter input from the feature extraction portion 200A and the phoneme HMM and the word dictionary stored in the speech recognition dictionary memory 700, and then calculates likelihoods. The word retrieving portion 200C calculates a likelihood in a word and a likelihood from the launch of a speech every a state of the phoneme HMM at each time. More specifically, the likelihoods are calculated every an identification number of the associated word, a speech launch time of the associated word, and a previous word uttered before the associated word is uttered. The word retrieving portion 200C may exclude a word hypothesis having the lowest likelihood among the calculated likelihoods to reduce a computer throughput. The word retrieving portion 200C outputs the retrieved word hypotheses, the likelihoods associated with the retrieved word hypotheses, and information (e.g. frame number) regarding a time when has elapsed after the speech launch time, into the candidate determination portion 200E and a word hypothesis refinement portion 200F via the buffer memory 200D.
The candidate determination portion 200E compares the retrieved word hypotheses with topic identification information in a prescribed discourse space, with reference to the conversation control unit 300, and then determines whether or not there is one word hypothesis which coincides with the topic identification information among the retrieved word hypotheses. If there is the one word hypothesis, the candidate determination portion 200E outputs the one word hypothesis as a recognition result to the conversation control unit 300. If there is not the one word hypothesis, the candidate determination portion 200E requires the word hypothesis refinement portion 200F to carry out a refinement of the retrieved word hypotheses.
An operation of the candidate determination portion 200E will be described. We assume the following matters: (a) the word retrieving portion 200C outputs a plurality of word hypotheses (“KANTAKU (reclamation)”, “KATAKU (excuse)” and “KANTOKU (movie director)”) and a plurality of likelihoods (recognition rates) respectively associated with the plurality of word hypotheses into the candidate determination portion 200E; (b) the prescribed discourse space is a space regarding a movie; (c) the topic identification information includes “KANTOKU (movie director)”; (d) the likelihood of “KANTAKU (reclamation)” has the highest value among the plurality of likelihoods; and (e) the likelihood of “KANTOKU (movie director)” has the lowest value among the plurality of likelihoods.
The candidate determination portion 200E compares the retrieved word hypotheses with topic identification information in a prescribed discourse space, and then determines that one word hypothesis “KANTOKU (movie director)” coincides with the topic identification information. The candidate determination portion 200E outputs the one word hypothesis “KANTOKU (movie director)” as a recognition result to the conversation control unit 300. Due to such process, the word hypothesis “KANTOKU (movie director)” associated with the topic “movie” which a speaker currently utters is preferentially-selected over another word hypotheses “KANTAKU (reclamation)” and “KATAKU (excuse)” of which the likelihoods have higher values than the likelihood of “KANTOKU (movie director)”. As a result, the candidate determination portion 200E can output the recognition result in the context of the discourse.
On the other hand, if there is not the one word hypothesis, the candidate determination portion 200E requires the word hypothesis refinement portion 200F to carry out a refinement of the retrieved word hypotheses. The word hypothesis refinement portion 200F refers to a statistical language model stored in the speech recognition dictionary memory 700 based on the retrieved word hypotheses output from the word retrieving portion 200C via the buffer memory 200D, and then carries out the refinement of the retrieved word hypotheses such that one word hypothesis is selected from among word hypotheses for the same words which speakers start uttering at a different speech launch time and finish uttering at the same speech termination time. The one word hypothesis has the highest likelihood among likelihoods which are calculated from the different speech launch time to the same speech termination time every a head phonemic context of each associated same word. In the exemplary embodiment, we define the head phonemic context which indicates three phonemes string including an end phoneme of a word hypothesis for a word preceding the associated same word and the first and second phonemes of a word hypothesis for the associated same word. After the refinement, the word hypothesis refinement portion 200F outputs one word string for a word hypothesis having the highest likelihood among word strings for all refined word hypotheses as a recognition result to the conversation control unit 300.
A word refinement process executed by the word hypothesis refinement portion 200F will be described with reference to
We assume that there are six hypotheses Wa, Wb, Wc, Wd, We, Wf as a word hypothesis of the (i−1)-th word W(i−1) and there is the i-th word Wi consisting of a phonemic string a1, a2, . . . , an, wherein the i-th word Wi follows the (i−1)-th word W(i−1). We further assume that end phonemes of the former three hypotheses Wa, Wb, Wc and the latter three hypotheses Wd, We, Wf are identical to end phonemes “x”, “y”, respectively. If there are three hypotheses having three preceded hypotheses Wa, Wb, Wc and one hypothesis having three preceded hypotheses Wd, We, Wf at the same speech termination time te, the word hypothesis refinement portion 200F selects one hypothesis having the highest likelihood from among the former three hypotheses having the same head phonemic contexts one another, and then excludes another two hypotheses.
In the above example, the word hypothesis refinement portion 200F does not exclude the latter one hypothesis because the head phonemic context of the latter one hypothesis differs from the head phonemic contexts of the former three hypotheses, that is, the end phoneme “y” of the preceded hypothesis for the latter one hypothesis differs from the end phonemes “x” of the preceded hypotheses for the former three hypotheses. The word hypothesis refinement portion 200F leaves one hypothesis every an end phoneme of a preceded hypothesis.
We may define the head phonemic context which indicates plural phonemes string including an end phoneme of a word hypothesis for a word preceding the associated same word, a phoneme string, which includes at least one phoneme, of the word hypothesis for the word preceding the associated same word, and a phoneme string, which includes the first phoneme, of the word hypothesis for the associated same word.
The feature extraction portion 200A, the word retrieving portion 200C, the candidate determination portion 200E and the word hypothesis refinement portion 200F each is composed of a computer such as a microcomputer. The buffer memories 200B, 200D and the speech recognition dictionary memory 700 each is composed of a memory unit such as a hard disk.
In the exemplary embodiment, instead of carrying out a speech recognition by using the word retrieving portion 200C and the word hypothesis refinement portion 200F, the speech recognition unit 200 may be composed of a phoneme comparison portion configured to refer to the phoneme HMM and a speech recognition portion configured to carry out the speech recognition by referring to the statistical language model according to a One Pass DP algorithm.
In the exemplary embodiment, instead of the speech recognition unit 200, the conversation database 500 and the speech recognition dictionary memory 700 constituting a part of the conversation controller 1, these elements may constitute a speech recognition apparatus which is independent from the conversation controller 1.
(1-1-2-2. Operation of Speech Recognition Unit)
An operation of the speech recognition unit 200 will be described with reference to
In step S401, when the speech recognition unit 200 receives the speech signal from the input unit 100, it carries out a feature analysis for a speech included in the received speech signal to generate a feature parameter. In step S402, the speech recognition unit 200 compares the generated feature parameter with the phoneme HMM and the language model stored in the speech recognition dictionary memory 700, and then retrieves a certain number of word hypotheses and calculates likelihoods of the word hypotheses. In step S403, the speech recognition unit 200 compares the retrieved word hypotheses with the topic identification information in the prescribed discourse space. In step S404, the speech recognition unit 200 determines whether or not there is one word hypothesis which coincides with the topic identification information among the retrieved word hypotheses. If there is the one word hypothesis, the speech recognition unit 200 outputs the one word hypothesis as the recognition result to the conversation control unit 300 (step S405). If there is not the one word hypothesis, the speech recognition unit 200 outputs one word hypothesis having the highest likelihood as the recognition result to the conversation control unit 300, according to the calculated likelihoods of the word hypotheses (step S406).
(1-1-3. Speech Recognition Dictionary Memory)
The speech recognition dictionary memory 700 stores character strings corresponding to standard speech signals therein. Upon the comparison, the speech recognition unit 200 identifies a word hypothesis for a character string corresponding to the received speech signal, and then outputs the identified word hypothesis as a character string signal (recognition result) to the conversation control unit 300.
(1-1-4. Sentence Analyzing Unit)
A configuration of the sentence analyzing unit 400 will be described with reference to
The sentence analyzing unit 400 analyses a character string identified at the input unit 100 or the speech recognition unit 200. The sentence analyzing unit 400 comprises a character string identifying portion 410, a morpheme extracting portion 420, a morpheme database 430, an input type determining portion 440 and an utterance type database 450. The character string identifying portion 410 divides a character string identified at the input unit 100 or the speech recognition unit 200 into segments. A segment means a sentence resulting from dividing a character string as much as possible to the extent of not breaking the grammatical meaning. Specifically, when a character string includes a time interval exceeding a certain level, the character string identifying portion 410 divides the character string at that portion. The character string identifying portion 410 outputs the resulting character strings to the morpheme extracting portion 420 and the input type determining portion 440. A “character string” to be described below means a character string of a sentence.
(1-1-4-1. Morpheme Extracting Unit)
Based on a character string of a sentence resulting from division at the character string identifying portion 410, the morpheme extracting portion 420 extracts, from the character string of the sentence, morphemes constituting minimum units of the character string, as first morpheme information. In the exemplary embodiment, a morpheme means a minimum unit of a word structure shown in a character string. Minimum units of the word structure may be parts of speech including a noun, an adjective and a verb, for example.
In the exemplary embodiment, as shown in
The morpheme extracting portion 420 outputs the extracted morpheme as the first morpheme information to a topic identification information retrieval portion 350. It is noted that the first morpheme information need not be structured. In the exemplary embodiment, a structuring means classifying and arranging morphemes included in a character string based on parts of speech. For example, a character string is divided into morphemes, and then the morphemes are arranged in a prescribed order such as a subject, an object and a predicate. The exemplary embodiment is realized even if structured first morpheme information is employed.
(1-1-4-2. Input Type Determining Unit)
The input type determining portion 440 determines the type of contents of the utterance (the type of utterance), based on the character string identified at the character string identifying portion 410. In the exemplary embodiment, the type of utterance is information for identifying the type of contents of the utterance and means one of the “types of uttered sentences” shown in
In the exemplary embodiment, the “types of uttered sentences” include declarative sentences (D: Declaration), time sentences (T: Time), locational sentences (L: Location), negational sentences (N: Negation) and the like, as shown in
In the exemplary embodiment, when the input type determining portion 440 determines the “type of an uttered sentence”, the input type determining portion 440 uses a declarative expression dictionary for determining that it is a declarative sentence, a negational expression dictionary for determining that it is a negational sentence, and the like, as shown in
Based on the extracted elements, the input type determining portion 440 determines the “type of the uttered sentence”. When the character string includes elements declaring an event, for example, the input type determining portion 440 determines that the character string including the elements is a declarative sentence. The input type determining portion 440 outputs the determined “type of the uttered sentence” to a reply retrieval portion 380.
(1-1-5. Conversation Database)
A structure of data stored in the conversation database 500 will be described with reference to
As shown in
In the exemplary embodiment, a piece of topic identification information means a keyword relevant to contents to be input from a user or a reply sentence to be output to a user.
Each piece of topic identification information 810 is associated with one or more topic titles 820. Each topic title 820 is composed of one character, a plurality of character strings, or morphemes formed by combining these. Each topic title 820 is associated with a reply sentence 830 to be output to a user. A plurality of reply types each indicating a type of the reply sentence 830 are associated with the reply sentences 830, respectively.
An association between one piece of topic identification information 810 and another piece of topic identification information 810 will be described. In the exemplary embodiment, an association between information X and information Y means that, if the information X is read out, the information Y associated with the information X can be readout. For example, a state in which information (e.g. a pointer that indicates an address in which the information Y is stored, a physical memory address in which the information Y is stored, or a logical address in which the information Y is stored) for reading out the information Y is stored in data of the information X is called “the information Y is associated with the information X”.
In the exemplary embodiment, as shown in
Also, topic identification information 810C1 (movie director), topic identification information 810C2 (leading actor), topic identification information 810C3 (distribution company), topic identification information 810C4 (screen time), topic identification information 810D1 (Seven Samurai), topic identification information 810D2 (Ran), topic identification information 810D3 (Yojimbo), . . . , as a subordinate concept to the topic identification information 810A (movie) are associated with the topic identification information 810A (movie) and stored in a lower level than the topic identification information 810A (movie).
A synonym 900 is associated with the topic identification information 810A (movie). For example, the synonym 900 (work, contents, cinema) is stored as a synonym of a keyword “movie” of the topic identification information 810A. Thereby, in a case where the keyword “movie” is not included in an utterance, if at least one of the keywords “work”, “contents”, “cinema” is included in the utterance, the conversation controller 1 can treat the topic identification information 810A as topic identification information included in the utterance.
When the conversation controller 1 identifies the topic identification information 810, the conversation controller 1 can retrieve and extract another topic identification information 810 associated with the identified topic identification information 810 and the topic titles 820 or the reply sentences 830 of topic identification information 810, at high speed, with reference to the stored contents of the conversation database 500.
A structure of data of the topic title 820 will be described with reference to
The topic identification information 810D1, the topic identification information 810D2, the topic identification information 810D3, . . . , include topic titles 8201, 8202, . . . , topic titles 8203, 8204, . . . , topic titles 8205, 8206, . . . , respectively. In the exemplary embodiment, as shown in
As shown in
The topic title 8202 (Seven Samurai; *; interesting) has the meaning that “Seven Samurai is interesting”. Included in the parenthesis of a topic title 8202 are the first identification information 1001, the second identification information 1002 and the third identification information 1003 in this order from the left, below. When a topic title 820 includes no morpheme in an item of identification information, “*” is shown in that portion.
It is noted that the identification information constituting the topic title 820 may have another identification information (e.g. fourth identification information).
The reply sentence 830 will be described with reference to
A structure of data of the topic identification information 810 will be described with reference to
When the topic title (820) 1-1 is (Sato; *; like) {these are extracted morphemes included in “I like Sato”}, for example, the reply sentence (830) 1-1 associated with the topic title (820) 1-1 include (DA: the declarative affirmative sentence “I like Sato too”) and (TA: the time affirmative sentence “I like Sato at bat”). The reply retrieval portion 380 to be described below retrieves one of the reply sentences 830 associated with the topic title 820, with reference to an output from the input type determining portion 440.
Each piece of next plan designation information 840 is associated with each reply sentence 830. The next plan designation information 840 is information for designating a reply sentence (hereinafter called next reply sentence) to be preferentially output in response to a user utterance. If the next plan designation information 840 is information for identifying the next reply sentence, we can define any information as the next plan designation information 840. For example, a reply sentence ID for identifying at least one of all reply sentences stored in the conversation database 500 is defined as the next plan designation information 840.
In the exemplary embodiment, the next plan designation information 840 is described as the information (e.g. reply sentence ID) for identifying the next reply sentence by reply sentence. However, the next plan designation information 840 may be information for identifying the next reply sentence by topic identification information 810 and the topic titles 820. For example, a topic identification information ID and a topic title ID are defined as the next plan designation information 840. In this case, the next reply sentence is called a next reply sentence group because a plurality of reply sentences are designated as the next reply sentence. Any reply sentence included in the next reply sentence group is output as a reply sentence.
(1-1-6. Conversation Control Unit)
A configuration of the conversation control unit 300 will be described with reference to
The conversation control unit 300 controls a data passing between configuration elements (the speech recognition unit 200, the sentence analyzing unit 400, the conversation database 500, the output unit 600 and the speech recognition dictionary memory 700) in the conversation controller 1, and has a function for determining and outputting a reply sentence in response to a user utterance.
As shown in
(1-1-6-1. Manage Portion)
The manage portion 310 stores a discourse history and has a function for updating the discourse history. The manage portion 310 further has a function for sending a part or a whole of the discourse history to a topic identification information retrieval portion 350, an elliptical sentence complementation portion 360, a topic retrieval portion 370 and/or a reply retrieval portion 380, according to a demand from the topic identification information retrieval portion 350, the elliptical sentence complementation portion 360, the topic retrieval portion 370 and/or the reply retrieval portion 380.
(1-1-6-2. Plan Conversation Process Portion)
The plan conversation process portion 320 executes a plan and has a function for establishing a conversation between a user and the conversation controller 1 according to the plan. It is noted that the plan means providing a predetermined reply following a predetermined order to a user.
The plan conversation process portion 320 further has a function for outputting the predetermined reply following the predetermined order, in response to a user utterance.
As shown in
As shown in
Thus, the plans 1402 are linked one another via the next plan designation information 1502, which realizes a plan conversation in which a series of contents is output to a user. That is, it is possible to provide reply sentences to the user in order, in response to a user utterance, by dividing contents (an explanatory sentence, an announcement sentence, a questionnaire or the like) that one wishes to tell into a plurality of reply sentences and then preparing an order of the dividend reply sentences as a plan. It is noted that it is not necessary to immediately output to a user a reply sentence 1501 included in a plan 1402 designated by next plan designation information 1502, in response to a user utterance for a previous reply sentence. For example, the conversation controller 1 may output to the user the reply sentence 1501 included in the plan 1402 designated by the next plan designation information 1502, after having a conversation on a topic other than one of a current plan with the user.
The reply sentence 1501 shown in
The link between the plans 1402 is limited to a one-dimensional array in
Each plan 1402 has one or more pieces of next plan designation information 1502. It is noted that there may be no next plan designation information 1502 in a plan 1402 for an end of conversation.
As shown in
In this example, if a user utterance is “please tell me a crisis management applied when a large earthquake occurs”, the plan conversation process portion 320 starts to execute this series of plans. More specifically, when the plan conversation process portion 320 receives the user utterance “please tell me a crisis management applied when a large earthquake occurs”, the plan conversation process portion 320 searches the plan space 1401 and checks whether or not there is the plan 14021 which includes the reply sentence 15011 corresponding to the user utterance. Here, a user utterance character string 17011 included in the plan 14021 corresponds to the user utterance “please tell me a crisis management applied when a large earthquake occurs”.
If the plan conversation process portion 320 discovers the plan 14021, the plan conversation process portion 320 retrieves the reply sentence 15011 included in the plan 14021. Then, the plan conversation process portion 320 outputs the reply sentence 15011 as a reply for the user utterance and identifies a next candidate reply sentence with reference to the next plan designation information 15021.
Next, when the plan conversation process portion 320 receives another user utterance via the input unit 100, a speech recognition unit 200 and the like after outputting the reply sentence 15011, the plan conversation process portion 320 checks whether or not the reply sentence 15012 included in the plan 14022 which is designated by the next plan designation information 15021 is output. More specifically, the plan conversation process portion 320 compares the received user utterance with a user utterance character string 17012 or topic titles 820 (not shown in
In the same way, the plan conversation process portion 320 transfers the plans 14023, 14024 according to a series of user utterances and outputs the reply sentences 15013, 15014. The plan conversation process portion 320 finishes a plan execution when the output of the reply sentence 15014 is completed. Thus, the plan conversation process portion 320 can provide conversation contents to a user in order previously defined by sequentially executing the plan 14021, 14022, 14023, 14024.
(1-1-6-3. Discourse Space Conversation Control Process Portion)
As shown in
The discourse history is information for identifying a topic or subject of conversation between a user and the conversation controller 1 and includes at least one of noted topic identification information, a noted topic title, user input sentence topic identification information and reply sentence topic identification information. The noted topic identification information, the noted topic title and the reply sentence topic identification information are not limited to information which is defined by the last conversation. They may be information which becomes them during a specified past period or an accumulated record of them.
(1-1-6-3-1. Topic Identification Information Retrieval Portion)
The topic identification information retrieval portion 350 compares the first morpheme information extracted at the morpheme extracting portion 420 with pieces of topic identification information, and retrieves a piece of topic identification information corresponding to a morpheme constituting part of the first morpheme information from the pieces of topic identification information. Specifically, when the first morpheme information received from the morpheme extracting portion 420 is two morphemes “Sato” and “like”, the topic identification information retrieval portion 350 compares the received first morpheme information with the topic identification information group.
Upon the comparison, when the topic identification information group includes a morpheme constituting part of the first morpheme information (e.g. “Sato”) as a noted topic title 820focus, the topic identification information retrieval portion 350 outputs the noted topic title 820focus to the reply retrieval portion 380. Here, we use the reference number 820focus in order to distinguish between a topic title 820 retrieved by the last time and another topic title 820. On the other hand, when the topic identification information group does not include the morpheme constituting the part of the first morpheme information as the noted topic title 820focus, the topic identification information retrieval portion 350 determines user input sentence topic identification information based on the first morpheme information, and outputs the received first morpheme information and the determined user input sentence topic identification information to the elliptical sentence complementation portion 360. Here, the user input sentence topic identification information means topic identification information corresponding to a morpheme that is relevant to contents about which a user talks or that may be relevant to contents about which the user talks among morphemes included in the first morpheme information.
(1-1-6-3-2. Elliptical Sentence Complementation Portion)
The elliptical sentence complementation portion 360 generates various kinds of complemented first morpheme information by complementing the first morpheme information, by means of topic identification information 810 retrieved by the last time (hereinafter called “noted topic identification information”) and topic identification information 810 included in a previous reply sentence (hereinafter called “reply sentence topic identification information”). For example, if a user utterance is “like”, the elliptical sentence complementation portion 360 adds the noted topic identification information “Sato” to the first morpheme information “like” and generates the complemented first morpheme information “Sato, like”.
That is, with the first morpheme information as “W”, and with a set of the noted topic identification information and the reply sentence topic identification information as “D”, the elliptical sentence complementation portion 360 adds one or more elements of the set “D” to the first morpheme information “W” and generates the complemented first morpheme information.
In this manner, when a sentence constituted by use of the first morpheme information is an elliptical sentence and is unclear as Japanese, the elliptical sentence complementation portion 360 can use the set “D” to add one or more elements (e.g. Sato) of the set “D” to the first morpheme information “W”. As a result, the elliptical sentence complementation portion 360 can make the first morpheme information “like” into the complemented first morpheme information “Sato, like”. Here, the complemented first morpheme information “Sato, like” correspond to a user utterance “I like Sato”.
That is, even if the contents of a user utterance constitute an elliptical sentence, the elliptical sentence complementation portion 360 can complement the elliptical sentence by using the set “D”. As a result, even when a sentence composed of the first morpheme information is an elliptical sentence, the elliptical sentence complementation portion 360 can make the sentence into correct Japanese.
Based on the set “D”, the elliptical sentence complementation portion 360 searches a topic title 820 which is related to the complemented first morpheme information. When the elliptical sentence complementation portion 360 discovers the topic title 820 which is related to the complemented first morpheme information, the elliptical sentence complementation portion 360 outputs the topic title 820 to reply retrieval portion 380. The reply retrieval portion 380 can output a reply sentence 830 best suited for the contents of a user utterance based on an appropriate topic title 820 searched at the elliptical sentence complementation portion 360.
The elliptical sentence complementation portion 360 is not limited to adding the set “D” to the first morpheme information. Based on the noted topic title, the elliptical sentence complementation portion 360 may add a morpheme included in any of the first identification information, second identification information and third identification information constituting the topic title to extracted first morpheme information.
(1-1-6-3-3. Topic Retrieval Portion)
When the elliptical sentence complementation portion 360 does not determine the topic title 820, the topic retrieval portion 370 compares the first morpheme information with topic titles 820 associated with the user input sentence topic identification information, and retrieves a topic title 820 best suited for the first morpheme information from among the topic titles 820.
More specifically, when the topic retrieval portion 370 receives a search command signal from the elliptical sentence complementation portion 360, the topic retrieval portion 370 retrieves a topic title 820 best suited for the first morpheme information from among topic titles 820 associated with the user input sentence topic identification information, based on the user input sentence topic identification information and the first morpheme information included in the received search command signal. The topic retrieval portion 370 outputs the retrieved topic title 820 as a search result signal to the reply retrieval portion 380.
For example, as shown in
Based on the result of the comparison, the topic retrieval portion 370 retrieves the topic title (820) 1-1 “Sato; *; like” which is identical to the received first morpheme information “Sato, like” from among the topic titles (820) 1-1, 1-2, . . . . The topic retrieval portion 370 outputs the retrieved topic title (820) 1-1 “Sato; *; like” as the search result signal to the reply retrieval portion 380.
(1-1-6-3-4. Reply Retrieval Portion)
Based on the topic title 820 retrieved at the elliptical sentence complementation portion 360 or the topic retrieval portion 370, the reply retrieval portion 380 retrieves a reply sentence associated with the topic title. Also, based on the topic title 820 retrieved at the topic retrieval portion 370, the reply retrieval portion 380 compares different types of response associated with the topic title 820 with the type of utterance determined at the input type determining portion 440. Upon the comparison, the reply retrieval portion 380 retrieves a type of response which is identical to the determined type of utterance from among the types of response.
For example, as shown in
Here, “A” in “DA”, “TA” and so on means an affirmative form. When the types of utterance and the types of response include “A”, affirmation of a certain matter is indicated. The types of utterance and the types of response can include the types of “DQ”, “TQ” and so on. “Q” in “DQ”, “TQ” and so on means a question about a matter.
When the type of response is in the interrogative form (Q), a reply sentence associated with this type of response is made in the affirmative form (A). A reply sentence created in the affirmative form (A) may be a sentence for replying to a question. For example, when an uttered sentence is “Have you ever operated slot machines?”, the type of utterance of the uttered sentence is the interrogative form (Q). A reply sentence associated with the interrogative form (Q) may be “I have operated slot machines before” (affirmative form (A)), for example.
On the other hand, when the type of response is in the affirmative form (A), a reply sentence associated with this type of response is made in the interrogative form (Q). A reply sentence created in the interrogative form (Q) may be an interrogative sentence for asking back against the contents of an utterance or an interrogative sentence for finding out a certain matter. For example, when the uttered sentence is “I like playing slot machines”, the type of utterance of this uttered sentence is the affirmative form (A). A reply sentence associated with the affirmative form (A) may be “Do you like playing pachinko?” (an interrogative sentence (Q) for finding out a certain matter), for example.
The reply retrieval portion 380 outputs the retrieved reply sentence 830 as a reply sentence signal to the management portion 310. Upon receiving the reply sentence signal from the reply retrieval portion 380, the management portion 310 outputs the received reply sentence signal to the output unit 600.
(1-1-6-4. CA Conversation Process Portion)
When the plan conversation process portion 320 or the discourse space conversation control process portion 330 does not determine a reply sentence for a user, the CA conversation process portion 340 outputs the reply sentence so that the conversation controller 1 can continue to talk with the user according to contents of a user utterance.
The configuration of the conversation controller 1 will be again described with reference to
(1-1-7. Output Unit)
The output unit 600 outputs the reply sentence retrieved at the reply retrieval portion 380. The output unit 600 may be a speaker or a display, for example. Specifically, when receiving the reply sentence from the reply retrieval portion 380, the output unit 600 outputs the received reply sentence (e.g. I like Sato too) by voice, based on the reply sentence.
An operation of the conversation controller 1 will be described with reference to FIGS. 18 to 22.
When the conversation control unit 300 receives a user utterance, a main process shown in
In step S1801, the plan conversation process portion 320 executes a plan conversation control process. The plan conversation control process is a process for carrying out a plan.
An example of the plan conversation control process will be described with reference to
In step S1901, the plan conversation process portion 320 checks basic control state information. Information on whether or not execution of the plan is completed is stored as the basic control state information in a certain storage region. The basic control state information is employed to describe a basic control state of the plan.
As shown in
(1) Cohesiveness
Cohesiveness is set in the basic control state information when a user utterance is related to a plan 1402 in execution, more specifically, related to a topic title 820 or an example sentence 1701 corresponding to the plan 1402. In the cohesiveness, the plan conversation process portion 320 finishes the plan 1402 and then transfers to another plan 1402 corresponding to the reply sentence 1501 designated by the next plan designation information 1502.
(2) Cancellation
Cancellation is set in the basic control state information when the contents of a user utterance is determined to require completion of a plan 1402 or an interest of a user is determined to transfer a matter other than a plan in execution. In the cancellation, the plan conversation process portion 320 searches whether or not there is another plan 1402, which corresponds to the user utterance, other than the plan 1402 subject to the cancellation. If there is the another plan 1402, the plan conversation process portion 320 starts execution of the another plan 1402. If there is not the another plan 1402, the plan conversation process portion 320 finishes execution of a series of plans.
(3) Maintenance
Maintenance is set in the basic control state information when a user utterance is not related to a plan 1402 in execution, more specifically, related to a topic title 820 or an example sentence 1701 corresponding to the plan 1402, and the user utterance does not correspond to the basic control state “cancellation”.
In the maintenance, the plan conversation process portion 320 determines whether or not a plan 1402 in a pending/stopping state is reexecuted when receiving a user utterance. If the user utterance is not adapted to the reexecution of the plan 1402 (e.g. the user utterance is not related to a topic title 820 or an example sentence 1701 corresponding to the plan 1402), the plan conversation process portion 320 starts execution of another plan 1402 or executes a discourse space conversation control process (step S1802) to be described hereinafter. If the user utterance is adapted to the reexecution of the plan 1402, the plan conversation process portion 320 outputs a reply sentence 1501 based on the stored next plan designation information 1502.
Further, in the maintenance, if the user utterance is not related to the associated plan 1402, the plan conversation process portion 320 searches another plan 1402 so as to output a reply sentence other than the reply sentence 1501 corresponding to the associated plan 1402, or executes the discourse space conversation control process. However, if the user utterance is again related to the associated plan 1402, the plan conversation process portion 320 reexecutes the associated plan 1402.
(4) Continuation
Continuation is set in the basic control state information when a user utterance is not related to a reply sentence 1501 included in a plan 1402 in execution, the contents of the user utterance do not correspond to the basic control sate “cancellation”, and the intention of user to be interpreted based on the user utterance is not clear.
In the continuation, the plan conversation process portion 320 determines whether or not a plan 1402 in a pending/stopping state is reexecuted when receiving a user utterance. If the user utterance is not adapted to the reexecution of the plan 1402, the plan conversation process portion 320 executes a CA conversation control process to be described below so as to output a reply sentence for drawing out an utterance from the user.
In step S1902, the plan conversation process portion 320 determines whether or not the basic control state set in the basic control state information is the cohesiveness. If the basic control state is the cohesiveness, the process proceeds to step S1903. In step S1903, the plan conversation process portion 320 determines whether or not a reply sentence 1501 is a final reply sentence in a plan 1402 in execution.
If the reply sentence 1501 is the final reply sentence, the process proceeds to step S1904. In step S1904, the plan conversation process portion 320 searches in the plan space in order to determine whether or not another plan 1402 is started because the plan conversation process portion 320 already passed on all contents to be replied to the user. In step S1905, the plan conversation process portion 320 determines whether or not there is the another plan 1402 corresponding to the user utterance in the plan space. If there is not the another plan 1402, the plan conversation process portion 320 finishes the plan conversation control process because there is not any plan 1402 to be provided to the user.
If there is the another plan 1402, the process proceeds to step S1906. In step S1906, the plan conversation process portion 320 transfers into the another plan 1402 in order to start execution of the another plan 1402 (output of a reply sentence 1501 included in the another plan 1402).
In step S1908, the plan conversation process portion 320 outputs the reply sentence 1501 included in the associated plan 1402. The reply sentence 1501 is output as a reply to the user utterance, which provides information to be sent to the user. The plan conversation process portion 320 finishes the plan conversation control process when having finished a reply sentence output process in the step S1908.
On the other hand, in step S1903, if the reply sentence 1501 is not the final reply sentence, the process proceeds to step S1907. In step S1907, the plan conversation process portion 320 transfers into a plan 1402 corresponding to a reply sentence 1501 following the output reply sentence 1501, that is, a reply sentence 1501 identified by the next plan designation information 1502. Then, the process proceeds to step S1908.
In step S1902, if the basic control state is not the cohesiveness, the process proceeds to step S1909. In step S1909, the plan conversation process portion 320 determines whether or not the basic control state set in the basic control state information is the cancellation. If the basic control state is the cancellation, the process proceeds to step S1904 because there is not a plan 1402 to be continued. If the basic control state is not the cancellation, the process proceeds to step S1910.
In step S1910, the plan conversation process portion 320 determines whether or not the basic control state set in the basic control state information is the maintenance. If the basic control state is the maintenance, the plan conversation process portion 320 searches whether or not a user is interested in a plan 1402 in a pending/stopping state. If the user is interested in the plan 1402, the plan conversation process portion 320 reexecutes the plan 1402 in the pending/stopping state.
More specifically, as shown in
In step S1910, if the basic control state is not the maintenance, the plan conversation process portion 320 finishes the plan conversation control process without outputting a reply sentence because the basic control state is the continuation.
As shown in
As shown in
In step S2202, the speech recognition unit 200 identifies a character string corresponding to the contents of the utterance, based on the contents of the utterance retrieved by the input device 100. More specifically, the speech recognition unit 200, when receiving the speech signal from the input unit 100, identifies a word hypothesis (candidate) corresponding to the speech signal. Then, the speech recognition unit 200 retrieves a character string corresponding to the identified word hypothesis and outputs the retrieved character string to the conversation control unit 300 (discourse space conversation control process portion 330) as a character string signal.
In step S2203, the character string identifying portion 410 divides a character string identified at the speech recognition unit 200 into segments. A segment means a sentence resulting from dividing a character string as much as possible to the extent of not breaking the grammatical meaning. More specifically, when a character string includes a time interval exceeding a certain level, the character string identifying portion 410 divides the character string at that portion. The character string identifying portion 410 outputs the resulting character strings to the morpheme extracting portion 420 and the input type determining portion 440. It is preferred that the character string identifying portion 410 divides a character string at a portion where there is punctuation or space in a case where the character string is input from a key board.
In step S2204, based on the character string identified at the character string identifying portion 410, the morpheme extracting portion 420 extracts morphemes constituting minimum units of the character string as first morpheme information. More specifically, when receiving a character string from the character string identifying portion 410, the morpheme extracting portion 420 compares the received character string with a morpheme group previously stored in the morpheme database 430. The morpheme group is prepared as a morpheme dictionary in which a direction word, a reading, a part of speech and an inflected form are described every morpheme which belongs to respective parts of speech. Upon the comparison, the morpheme extracting portion 420 extracts, from the received character string, morphemes (m1, m2, . . . ) matching some of the stored morpheme group. The morpheme extracting portion 420 outputs the extracted morphemes to the topic identification information retrieval portion 350 as the first morpheme information.
In step S2205, the input type determining portion 440 determines the type of utterance, based on the character string identified at the character string identifying portion 410. More specifically, when receiving a character string from the character string identifying portion 410, the input type determining portion 440 compares the received character string with the dictionaries stored in the utterance type database 450, based on the character string. Upon the comparison, the input type determining portion 440 extracts elements relevant to the dictionaries from the character string. Based on the extracted elements, the input type determining portion 440 determines which type of the uttered sentence each extracted element belongs to. The input type determining portion 440 outputs the determined type of the uttered sentence (the type of utterance) to the reply retrieval portion 380.
In step S2206, the topic identification information retrieval portion 350 compares first morpheme information extracted at the morpheme extracting portion 420 with a noted topic title 820focus. If a morpheme constituting part of the first morpheme information is related to the noted topic title 820focus, the topic identification information retrieval portion 350 outputs the noted topic title 820focus to the reply retrieval portion 380. If a morpheme constituting part of the first morpheme information is not related to the noted topic title 820focus, the topic identification information retrieval portion 350 outputs the received first morpheme information and user input sentence topic identification information to the elliptical sentence complementation portion 360 as the search command signal.
In step S2207, the elliptical sentence complementation portion 360 adds noted topic identification information and reply sentence topic identification information to the received first morpheme information, based on the first morpheme information received from the topic identification information retrieval portion 350. More specifically, with the first morpheme information as “W”, and with a set of the noted topic identification information and the reply sentence topic identification information as “D”, the elliptical sentence complementation portion 360 adds one or more elements of the set “D” to the first morpheme information “W” and generates the complemented first morpheme information. Then, the elliptical sentence complementation portion 360 compares the complemented first morpheme information with all topic titles 820 associated with the set “D” and searches a topic title 820 which is related to the complemented first morpheme information. If there is the topic title 820 which is related to the complemented first morpheme information, the elliptical sentence complementation portion 360 outputs the topic title 820 to the reply retrieval portion 380. If there is not the topic title 820 which is related to the complemented first morpheme information, the elliptical sentence complementation portion 360 outputs the first morpheme information and the user input sentence topic identification information to the topic retrieval portion 370.
In step S2208, the topic retrieval portion 370 compares the first morpheme information with the user input sentence topic identification information, and retrieves a topic title 820 best suited for the first morpheme information from among the topic titles 820. More specifically, when the topic retrieval portion 370 receives the search command signal from the elliptical sentence complementation portion 360, the topic retrieval portion 370 retrieves a topic title 820 best suited for the first morpheme information from among topic titles 820 associated with the user input sentence topic identification information, based on the user input sentence topic identification information and the first morpheme information included in the received search command signal. The topic retrieval portion 370 outputs the retrieved topic title 820 to the reply retrieval portion 380 as a search result signal.
In step S2209, based on a topic title 820 retrieved at the topic identification information retrieval portion 350, the elliptical sentence complementation portion 360 or the topic retrieval portion 370, the reply retrieval portion 380 compares different types of response associated with the topic title 820 with the type of utterance determined at the input type determining portion 440. Upon the comparison, the reply retrieval portion 380 retrieves a type of response which is identical to the determined type of utterance from among the types of response. For example, when the reply retrieval portion 380 receives the search result signal from the topic retrieval portion 370 and the type of utterance from the input type determining portion 440, the reply retrieval portion 380, based on a topic title corresponding to the received search result signal and the received type of utterance, identifies the type of response which is identical to the type of utterance (e.g. DA) among from the types of response associated with the topic title.
In step S2210, the reply retrieval portion 380 outputs the reply sentence 830 retrieved in step S2209 to the output unit 600 via the manage portion 310. When the output unit 600 receives the reply sentence 830 from the management portion 310, the output unit 600 outputs the received reply sentence 830.
As shown in
In the CA conversation control process, the conversation control unit 300 determines whether a user utterance is an utterance for explaining something, an utterance for identifying something, an utterance for accusing or attacking something, or an utterance other than the above utterances, and then outputs a reply sentence corresponding to the contents of the user utterance and the determination result. Thereby, even if a reply sentence suited for the user utterance is not output in the plan conversation control process or the discourse space conversation control process, the conversation control unit 300 can output a bridging reply sentence which allows the flow of conversation to continual.
In step S1804, the conversation control unit 300 executes the basic control information update process. In the basic control information update process, the manage portion 310 of the conversation control unit 300 sets the cohesiveness in the basic control information when the plan conversation process portion 320 outputs a reply sentence. When the plan conversation process portion 320 stops outputting a reply sentence, the manage portion 310 sets the cancellation in the basic control information. When the discourse space conversation control process portion 330 outputs a reply sentence, the manage portion 310 sets the maintenance in the basic control information. When the CA conversation process portion 340 outputs a reply sentence, the manage portion 310 sets the continuation in the basic control information.
The basic control information set in the basic control information update process is referred in the plan conversation control process (step S1801) to be employed for continuation or resumption of a plan.
As described the above, the conversation controller 1 can carry out a plan which is previously prepared according to a user utterance and respond accurately to a topic which is not included in a plan, by executing the main process every time the user utterance is received.
Claims
1. A conversation controller configured to output a reply sentence according to a user utterance, comprising:
- a plan memory unit configured to store a plurality of plans, wherein each plan has a reply sentence and one or more pieces of next candidate designation information for designating a next candidate reply sentence to be output following the reply sentence; and
- a plan conversation unit configured to select one of the plans stored in the plan memory unit according to a first user utterance and output a reply sentence which the selected plan has, and select one piece of the next candidate designation information which the plan has according to a second user utterance and output a next candidate reply sentence on the basis of the selected piece of the next candidate designation information.
2. The conversation controller according to claim 1, wherein the plan conversation unit withholds an output of the next candidate reply sentence when receiving the second user utterance which is not related to the next candidate reply sentence or it is unclear whether or not there is a relation between the second user utterance and the next candidate reply sentence, and then outputs the withheld next candidate reply sentence when receiving a third user utterance which is related to the withheld next candidate reply sentence.
3. The conversation controller according to claim 2, further comprising a discourse space conversation unit configured to output a reply sentence about a topic which is not related to the withheld next candidate reply sentence according to the second user utterance.
4. The conversation controller according to claim 1, wherein the reply sentence is a part of an explanatory sentence.
5. The conversation controller according to claim 1, wherein the reply sentence is a part of an interrogative sentence for urging a selection to the user.
Type: Application
Filed: Oct 17, 2006
Publication Date: Apr 26, 2007
Patent Grant number: 7949532
Applicants: Aruze Corp. (Tokyo), PtoPA Inc. (Tokyo)
Inventors: Shengyang Huang (Tokyo), Hiroshi Katukura (Tokyo)
Application Number: 11/581,585
International Classification: G06F 17/27 (20060101);