WO2017159207A1 - 処理実行装置、処理実行装置の制御方法、および制御プログラム - Google Patents
処理実行装置、処理実行装置の制御方法、および制御プログラム Download PDFInfo
- Publication number
- WO2017159207A1 WO2017159207A1 PCT/JP2017/005855 JP2017005855W WO2017159207A1 WO 2017159207 A1 WO2017159207 A1 WO 2017159207A1 JP 2017005855 W JP2017005855 W JP 2017005855W WO 2017159207 A1 WO2017159207 A1 WO 2017159207A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- phoneme
- string
- phoneme string
- rate
- predicate
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims description 183
- 230000008569 process Effects 0.000 claims description 162
- 238000007476 Maximum Likelihood Methods 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 21
- 238000001514 detection method Methods 0.000 description 34
- 238000004458 analytical method Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000014509 gene expression Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 239000002245 particle Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002940 repellent Effects 0.000 description 2
- 239000005871 repellent Substances 0.000 description 2
- 235000016496 Panda oleosa Nutrition 0.000 description 1
- 240000000220 Panda oleosa Species 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/10—Speech classification or search using distance or distortion measures between unknown speech and reference templates
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
Definitions
- the present invention relates to a process execution device that executes a process according to an instruction indicated by an input voice.
- Japanese Patent Application Laid-Open No. 2004-151620 discloses a technique for efficiently performing speech recognition and intention analysis using a server.
- JP 2010-170137 released on August 5, 2010
- JP 2012-128188 released July 5, 2012
- Patent Document 1 is a technique for performing so-called natural language processing. Speech recognition using these techniques is used for the purpose of general judgment of many situations. For this reason, the recognition accuracy is lowered when a specific process is executed. For this reason, there exists a problem that execution of a process as a user's intention may not be performed. For example, when a schedule book application is activated in a terminal device and a schedule is registered, the recognition accuracy decreases in general-purpose voice recognition, and the schedule as intended by the user may not be registered.
- the present invention has been made in view of the above-described problems, and an object of the present invention is to realize a process execution device that can execute a process as intended by a user when executing a specific process. There is to do.
- a process execution device is a process execution device that executes a process according to an instruction indicated by an input voice, and includes an input phoneme generated from the voice
- a first specification that specifies a first matching rate that is a matching rate between a first partial phoneme sequence that is a part of a sequence and a predicate phoneme sequence that is a plurality of phoneme sequences that are candidate speech predicates.
- a second matching unit that identifies a second matching rate that is a matching rate with any one of a plurality of phoneme sequences, and an integrated matching rate obtained by integrating the first matching rate and the second matching rate
- a combination of the first partial phoneme sequence and the second partial phoneme sequence having the highest A maximum likelihood predicate phoneme sequence most likely as the upper description part phoneme sequence included in the input phoneme sequence, and a maximum likelihood word phoneme sequence most likely as the word phoneme sequence included in the input phoneme sequence.
- a phoneme sequence specifying unit to be specified; and a process execution unit that executes processing according to the maximum likelihood predicate phoneme sequence and the maximum likelihood word phoneme sequence.
- a control method for a process execution device is a control method for a process execution device that executes a process according to an instruction indicated by an input voice,
- a first match that is a match rate between a first partial phoneme sequence that is a part of an input phoneme sequence generated from the speech and a predicate phoneme sequence that is a plurality of phoneme sequences that are candidate predicate of the speech
- a second specifying step of specifying a second match rate that is a match rate with any one of a plurality of phoneme sequences that are word candidates for the speech; and the first match rate and the second match The first partial phoneme string having the highest integrated match rate that integrates the rate And a combination of the second partial phoneme strings, the most likely
- FIG. 2 is a diagram showing an outline of the present invention.
- the robot 1 according to the present embodiment is a device that activates an application in accordance with a voice input (spoken) by a user and executes a process according to the voice.
- the robot 1 may have a function as a smartphone such as a function of driving a movable part in accordance with a user instruction, a call function, a screen display function, a sound output function, and a photography function.
- the present invention is applicable to any apparatus that executes processing according to an instruction indicated by an input voice, and the application example of the present invention is not limited to the robot 1.
- One embodiment of the present invention is suitable for a personal computer, a smartphone, a tablet, a mobile phone, and the like.
- the robot 1 accepts voice input by the user.
- the user speaks “Remember to go to Abeno Harukas tomorrow” to add a schedule to the schedule book application.
- the robot 1 When receiving the voice uttered by the user, the robot 1 generates a phoneme string from the waveform data of the voice.
- An existing technique can be used to generate a phoneme string from waveform data. In the illustrated example, it is assumed that “asitaabenotarukasuniikutoomoete” is generated as a phoneme sequence, and a phoneme sequence that is partially different from the speech uttered by the user is generated (underlined portion of “(1) Phoneme sequence generation” in FIG. 2).
- the generated phoneme string shown in the figure is an example, and the present invention is not limited to this example.
- a phoneme string “asitaabenoharukasuniikutooboete” may be generated according to the voice spoken by the user.
- the above phoneme string may be referred to as an input phoneme string.
- the robot 1 specifies the input phoneme string. Specifically, as shown in the figure, the robot 1 first specifies a phoneme string corresponding to the predicate in the input phoneme string. In the illustrated example, the “omoete” portion of the input phoneme string is specified as “oboete”. Subsequently, the robot 1 specifies a phoneme string corresponding to a word other than the predicate as illustrated. In the illustrated example, the part of “asitaabenotarukasuniikuto” in the input phoneme string is specified as “asitaabenoharukasuniikuto”. At this time, the robot 1 narrows down a dictionary for specifying a portion corresponding to a word other than the predicate in the phoneme string of the specified predicate (“oboete” in the illustrated example).
- the robot 1 executes processing according to the identified phoneme string.
- the schedule book application is activated and “go to Abeno Harukas” is registered as a schedule for the next day (tomorrow).
- a screen 50 indicating that a schedule is registered may be displayed on the display unit as shown in the figure. Details of the above-described processing described with reference to FIG. 2 will be described later.
- the robot 1 narrows down words included in a part other than the predicate of the input phoneme string (in the above example, the part of “asitaabenotarukasuniikuto”) by the phoneme string of the predicate. Can do.
- the recognition accuracy can be improved in a case where voice input is used for a specific purpose in which specific processing is executed according to the voice input by the user.
- the time taken to specify the phoneme string can be shortened.
- FIG. 1 is a block diagram illustrating an example of a main configuration of the robot 1.
- the robot 1 includes a voice input unit 11 that is a device (for example, a microphone) that receives voice, a control unit 12 that controls and controls functions of the robot 1, and a storage unit 13 that stores various data used by the robot 1. .
- the robot 1 has a function as a smartphone, the robot 1 includes a member that realizes the function (for example, a call unit that realizes a call function, a voice output unit that realizes a voice output function, or the like).
- the robot 1 may include a member that realizes a function of driving the movable part. However, since these members are not related to the present invention, illustration and description thereof are omitted.
- the control unit 12 includes a voice input control unit 21, a phoneme sequence generation unit 22, a sentence end detection unit 23, a match rate identification unit 24, a phoneme sequence identification unit 25, and a process execution unit 26.
- the voice input control unit 21 controls the voice input unit 11. Specifically, the voice input control unit 21 outputs voice waveform data acquired from the voice input unit 11 to the phoneme string generation unit 22. Further, the voice input control unit 21 outputs waveform data to the sentence end detection unit 23 in accordance with an instruction from the sentence end detection unit 23.
- the phoneme string generation unit 22 generates a phoneme string (input phoneme string) from speech waveform data.
- the phoneme string generation unit 22 repeats the process of specifying a phoneme from the waveform data acquired from the voice input control unit 21 and storing the phoneme in the storage unit 13.
- the phoneme string data 31 (for example, “asitaabenotarukasuniikutoomoete” shown in FIG. 2) is stored in the storage unit 13.
- the phoneme string generation unit 22 cannot generate a phoneme (in other words, when waveform data that can generate a phoneme cannot be acquired from the voice input control unit 21)
- a speech input is input to the sentence end detection unit 23. It is instructed to determine whether or not it has been completed.
- the sentence end detection unit 23 detects whether or not the voice input is completed, that is, whether or not the last phoneme of the phoneme string data 31 stored in the storage unit 13 is the end of the sentence. Specifically, the sentence end detection unit 23 acquires waveform data from the voice input control unit 21 in accordance with an instruction from the phoneme sequence generation unit 22. Then, referring to the waveform data, it is determined whether or not the voice input is completed. The determination will be specifically described. The sentence end detection unit 23 determines that the input of the voice is completed when the waveform data indicating that no voice is input is acquired for a predetermined time. On the other hand, when the waveform data indicating that the voice is input during the predetermined time is acquired, it is determined that the voice input is not completed.
- the “waveform data indicating that no voice is input” is waveform data whose wave height does not satisfy a predetermined threshold (in other words, waveform data that cannot generate phonemes).
- the sentence end detection unit 23 outputs the determination result to the phoneme string generation unit 22. If it is determined that the input of the voice has been completed, the last phoneme is specified as the end of the sentence, and a phoneme string specifying instruction is output to the matching rate specifying unit 24.
- the coincidence rate specifying unit 24 specifies the coincidence rate of the one or more partial phoneme sequences that are parts included in the phoneme sequence data 31 with the phoneme sequence registered in the dictionary.
- the coincidence rate specifying unit 24 includes a predicate specifying unit 241 (first specifying unit) and a non-predicate specifying unit 242 (second specifying unit).
- first specifying unit first specifying unit
- non-predicate specifying unit 242 second specifying unit
- the predicate specifying unit 241 is a part of the phoneme string data 31 from the read phoneme string data 31, and includes a partial phoneme string (first partial phoneme string) corresponding to the predicate and a predicate registered in the dictionary. Is compared with a phoneme string indicating a predicate phoneme string. Then, the predicate specifying unit 241 specifies a matching rate (hereinafter, may be referred to as a first matching rate) based on the comparison result. Specifically, first, the predicate specifying unit 241 searches a predicate dictionary 32a (predicate phoneme sequence dictionary) that is a dictionary in which predicate phoneme sequences are registered from the phoneme sequence dictionary 32 stored in the storage unit 13. read out.
- predicate dictionary 32a predicate phoneme sequence dictionary
- FIG. 3 is a diagram showing a data structure of the phoneme string dictionary 32 and a specific example. Note that the data structure and specific example of the phoneme string dictionary 32 shown in FIG. 3 are merely examples, and the present invention is not limited to this example.
- the predicate dictionary 32a stores a plurality of predicate phoneme strings that are candidates for speech predicates spoken by the user in the “phoneme string” column.
- the part shown in parentheses is a description for clearly indicating the predicate indicated by the phoneme string, and may not be stored in the column of “phoneme string”.
- the “search dictionary” column shows a phoneme string dictionary 32 used when other words are specified when the first partial phoneme string of the phoneme string data 31 is specified as each predicate phoneme string.
- Information (category information) is stored. Specifically, when the first partial phoneme string is specified as “oboete”, it is highly likely that the voice input by the user is a voice for registration of a schedule.
- the predicate phoneme string “oboete” stores information indicating a tense dictionary 32b, a location dictionary 32c, and an action dictionary 32d, which will be described later.
- the tense dictionary 32b is a dictionary in which phoneme strings indicating tense are registered.
- the place dictionary 32c is a dictionary in which phoneme strings indicating places are registered.
- the action dictionary 32d is a dictionary in which phoneme strings indicating actions are registered.
- the phoneme string according to the present embodiment is configured such that the consonant and the vowel are one character. That is, the sound repellent sound and the prompt sound are also expressed by one character. For example, as shown in FIG.
- a phoneme corresponding to “n” is represented by “@”.
- the phoneme corresponding to “Kyo” is expressed by “Ko” (in contrast, “ko” using the lower case “k” is “ko”. To express).
- the sound “tsu” is expressed as “!”. Note that this expression method is an example, and the expression method of phonemes such as sound repellent and prompting sound is not limited to this example.
- the predicate specifying unit 241 divides the read phoneme string data 31 into a sentence end part (last phoneme) of the phoneme string data 31 and other parts. That is, when the phoneme string data 31 is “asitaabenotarukasuniikutoomoete”, it is divided into “asitaabenotarukasuniikutoomoet / e” (“/” indicates the division part). Then, the phoneme string on the last phoneme side of the phoneme string data 31 (hereinafter referred to as a rear phoneme string) is compared with the predicate phoneme string included in the predicate dictionary 32a, and the coincidence rate is calculated.
- the predicate specifying unit 241 specifies the predicate phoneme string having the highest matching rate.
- the predicate specifying unit 241 performs the same processing on the new division pattern (that is, “asitaabenotarukasuniikutoomoe / te”) in which the division point is moved one before, and has the highest matching rate with the rear phoneme string. Specify a predicate phoneme sequence. Then, the predicate specifying unit 241 repeats this process, and specifies the predicate phoneme string having the highest matching rate with the rear phoneme string for each divided pattern up to the divided pattern “/ asitaabenoharukasuniikutoomoete”.
- FIG. 4 is a diagram illustrating a data structure and a specific example of the matching rate ranking 33a. Note that the matching rate ranking 33a illustrated in FIG. 4 is an example, and the data structure and the specific example are not limited to this example.
- the match rate ranking 33a is data in which combinations of rear phoneme sequences and predicate phoneme sequences of divided patterns are arranged in descending order of match rate.
- the combination includes a division pattern (that is, information that can specify a rear phoneme string), a predicate phoneme string having the highest matching rate with the rear phoneme string in the division pattern, and the matching rate.
- the match rate ranking 33a is data in which three combinations are arranged in descending order of match rate.
- the division pattern is stored in the “division pattern” column.
- the predicate phoneme string having the highest matching rate with the rear phoneme string in the divided pattern is stored in the “specific phoneme string” column.
- the match rate is stored in the “match rate” column.
- the predicate specifying unit 241 specifies the record having the highest match rate (that is, the ranking is first) from the match rate ranking 33a. Then, the division pattern and the predicate phoneme string included in the specified record are output to the specifying unit 242 other than the predicate.
- the predicate specific part 242 compares the remaining part (second partial phoneme string) other than the first partial phoneme string from the phoneme string data 31 with a phoneme string (word phoneme string) indicating a word registered in the dictionary, A matching rate (hereinafter, sometimes referred to as a second matching rate) is specified.
- the non-predicate specifying unit 242 first reads the predicate dictionary 32 a from the phoneme string dictionary 32 stored in the storage unit 13. Then, in the predicate dictionary 32a, information of the phoneme string dictionary 32 associated with the predicate phoneme string acquired from the predicate specifying unit 241 is read. For example, the tense dictionary 32b, the location dictionary 32c, the action dictionary 32d (word phoneme string dictionary), etc. associated with “oboete” are read.
- the phoneme string dictionary 32 other than the predicate dictionary 32a will be described with reference to FIG. 3 again.
- the phoneme string dictionary 32 (in the example shown, the tense dictionary 32b, the location dictionary 32c, and the action dictionary 32d) other than the predicate dictionary 32a is a plurality of phonemes that are word candidates of speech uttered by the user. Only a sequence (hereinafter referred to as a word phoneme sequence) is stored.
- the phoneme string dictionary 32 other than the predicate dictionary 32a is not limited to the illustrated example. Other examples include a particle dictionary storing phoneme strings indicating particles.
- the non-predicate specifying unit 242 uses the first phoneme sequence of the phoneme sequence data 31 (hereinafter referred to as the front phoneme sequence) as the first phoneme for the divided pattern acquired from the predicate specifying unit 241. Divide into other parts. In other words, “asitaabenotarukasuniikuto” is divided into “a / sitaabenotarukasuniikuto”. Then, the phoneme string in the divided pattern (hereinafter referred to as the second divided pattern) is compared with the word phoneme string included in the read phoneme string dictionary 32, and the coincidence rate is calculated. Then, the word phoneme string having the highest matching rate is specified.
- the specifying unit 242 other than the predicate performs the same processing on the new second division pattern (that is, “as / itaabenotarukasuniikuto”) that has been moved one segment later, and has the highest matching rate with the front phoneme sequence.
- a high word phoneme string is identified.
- the identifying unit 242 other than the predicate repeats this process, and identifies the word phoneme string having the highest matching rate with the front phoneme string for each second divided pattern up to the second divided pattern “asitaabenoharukasuniikuto /”.
- FIG. 5 is a diagram illustrating a data structure and a specific example of the matching rate ranking 33b and a matching rate ranking 33c described later. Note that the match rate ranking 33b and the match rate ranking 33c illustrated in FIG. 5 are examples, and the data structure and specific examples are not limited to this example.
- the match rate ranking 33b is data in which combinations of the front phoneme sequence and the word phoneme sequence of the second divided pattern are arranged in descending order of match rate.
- the combination includes a second divided pattern (that is, information that can identify a front phoneme string of the second divided pattern), a word phoneme string having the highest matching rate with the front phoneme string of the second divided pattern, and the match Rate included.
- the match rate ranking 33b is data in which the above combinations are arranged in order of the match rate.
- the second division pattern is stored in the “division pattern” column.
- the word phoneme string having the highest matching rate with the front phoneme string of the second divided pattern is stored in the “specific phoneme string” column.
- the match rate is stored in the “match rate” column.
- the specifying unit 242 other than the predicate is for the rear phoneme sequence of each second divided pattern included in each record of the match rate ranking 33b (that is, the portion for which the second match rate with the word phoneme sequence is not calculated). Divide into first phoneme and other parts.
- the second division pattern is a record of “asita / abenotarukasuniikuto”
- “abenotarukasuniikuto” is divided into “a / benotarukasuniikuto”.
- the front phoneme string in the divided pattern (hereinafter referred to as the third divided pattern) is compared with the word phoneme string included in the read phoneme string dictionary 32, and the coincidence rate is calculated.
- the word phoneme string having the highest matching rate is specified.
- the specifying unit 242 other than the predicate performs the same process on the new third division pattern (that is, “ab / enotarukasuniikuto”) in which the division point is moved one place later, and the matching rate with the front phoneme sequence The word phoneme string with the highest is identified.
- the identifying unit 242 other than the predicate repeats this process, and identifies the word phoneme string having the highest matching rate with the front phoneme string for each third divided pattern up to the third divided pattern “abenoharukasuniikuto /”. Note that the processing in this paragraph is referred to as processing A for later explanation.
- the non-predicate identifying unit 242 generates a ranking for the identified word phoneme string and stores it in the storage unit 13 as the matching rate ranking 33 (matching rate ranking 33c).
- the coincidence rate ranking 33c is generated in the rear phoneme string of each of the second divided patterns. Therefore, as shown in FIG. 5B and FIG. 5C, a plurality of coincidence rate rankings 33c. Will be generated.
- the match rate ranking 33c1 shown in (b) of FIG. 5 includes a front phoneme sequence and a word phoneme sequence of a third divided pattern obtained by further dividing the rear phoneme sequence of the second divided pattern ranked first in the match rate ranking 33b. The data are arranged in descending order of matching rate.
- the match rate ranking 33c2 shown in (c) of FIG. 5 includes a front phoneme sequence and a word phoneme of a third divided pattern obtained by further dividing the rear phoneme sequence of the second divided pattern ranked second in the match rate ranking 33b. It is data arranged in the order of the matching rate with respect to combinations with columns.
- the specifying unit 242 other than the predicate for the combination of the front phoneme sequence and the word phoneme sequence of the third divided pattern obtained by further dividing the rear phoneme sequence of the second divided pattern ranked third in the matching rate ranking 33b.
- a match rate ranking arranged in descending order of match rate is also generated.
- the specifying unit 242 other than the predicate also stores the matching rate ranking in the storage unit 13. Note that the processing in this paragraph is referred to as processing B for later explanation.
- the non-predicate specifying unit 242 specifies a combination of records having the highest total value (front and rear integrated match rate) totaled with each match rate in the match rate ranking 33b and each match rate in the match rate ranking 33c.
- a combination of a record whose division pattern is “asita / abenotarukasuniikuto” in the coincidence rate ranking 33b and a record whose division pattern is “abenotarukasu / niikuto” in the coincidence rate ranking 33c1 is specified.
- a record whose division pattern is “asita / abenotarukasuniikuto” is referred to as a first record.
- a record whose division pattern is “abenotarukasu / niikuto” is referred to as a second record.
- the specifying unit 242 other than the predicate updates (specifies) the matching rate included in the first record as the second matching rate, and temporarily stores the division pattern included in the first record. Further, the specifying unit 242 other than the predicate sets the matching rate ranking 33c generated from the rear phoneme string of the divided pattern included in the first record as the matching rate ranking of the target to be processed A described above.
- the matching rate ranking 33c1 is the matching rate ranking of the target to be processed A.
- the process of this paragraph is set to the process C for description later.
- the specifying unit 242 other than the predicate is the same as the processing A, the processing B, and the processing C described above for the portion in the second partial phoneme sequence for which the second matching rate with the word phoneme sequence is not specified. Repeat the process until it can no longer be divided. As a result, at least one division pattern is temporarily stored.
- “cannot be further divided” indicates a case where a record including a division pattern in which “/” indicating a division point is after the last phoneme is specified as one of the record combinations in the process C.
- the division pattern in which “/” indicating the division location is after the last phoneme, there is a division pattern such as “to /” when the rear phoneme string is “to”.
- the most probable word phoneme string can be selected by specifying the combination of records having the highest before-and-after integrated match rate and specifying the match rate included in the first record of the combination as the second match rate. The possibility of being able to be increased.
- the coincidence rate specifying unit 24 outputs the coincidence rate ranking 33 stored in the storage unit 13 and the temporarily stored division pattern to the phoneme string specifying unit 25.
- the number of records of the matching rate ranking 33 shown in FIGS. 4 and 5 is three (that is, ranking up to the third place), but is not limited to this example.
- the matching rate ranking 33 may store only combinations of rear phoneme sequences and predicate phoneme sequences having a matching rate equal to or higher than a predetermined threshold (for example, 0.50 or higher). In other words, in the example of FIGS. 4 and 5, when there are only one or two division patterns with a matching rate of 0.50 or more, there may be only one or two records, respectively.
- the phoneme string specifying unit 25 specifies a phoneme string corresponding to the voice input by the user from the phoneme string data 31.
- the phoneme string data 31 is corrected to an executable phoneme string according to an instruction input by the user.
- the phoneme string specifying unit 25 specifies the record with the highest matching rate from the matching rate ranking 33 a acquired from the matching rate specifying unit 24.
- the backward phoneme string of the divided pattern included in the record is specified as the predicate phoneme string (maximum likelihood predicate phoneme string) included in the record. For example, “omoete” is specified as “oboete”.
- the phoneme sequence specifying unit 25 uses each match phoneme sequence (maximum likelihood word phoneme sequence) included in the second partial phoneme sequence from the match rate ranking 33 other than the match rate ranking 33a and the temporarily stored division pattern. Is identified.
- the match rate rankings other than the match rate ranking 33a indicate the match rate ranking 33b, the match rate ranking 33c, and the like.
- the temporarily stored division pattern is identified from the match rate ranking 33, and the front phoneme sequence of the division pattern is identified as the word phoneme sequence associated with the division pattern in the match rate ranking 33. .
- “asita”, “abenoharukasu”, “ni”, “iku”, and “to” are specified.
- the phoneme string identification unit 25 identifies the combination of the first partial phoneme string and the second partial phoneme string that has the highest integrated match rate.
- the phoneme string specifying unit 25 specifies the most likely predicate phoneme string most likely as the predicate phoneme string and the most likely word phoneme string most likely as the word phoneme string.
- the integrated match rate is obtained by integrating the highest match rate (first match rate) in the match rate ranking 33a and the highest match rate (second match rate) in the match rate ranking 33 other than the match rate ranking 33a. Is.
- the phoneme string specifying unit 25 outputs the phoneme string data 31 corrected by the specified predicate phoneme string and the word phoneme string (hereinafter also referred to as a corrected phoneme string) to the process execution unit 26.
- a corrected phoneme string the phoneme string data 31 corrected by the specified predicate phoneme string and the word phoneme string (hereinafter also referred to as a corrected phoneme string) to the process execution unit 26.
- “asitaabenoharukasuniikutooboete” is output to the process execution unit 26.
- the process execution unit 26 executes a process according to the instruction indicated by the voice input by the user. Specifically, the process execution unit 26 identifies a predicate phoneme sequence included in the corrected phoneme sequence acquired from the phoneme sequence identification unit 25, and for process identification stored in the predicate phoneme sequence and the storage unit 13. An application for executing processing is specified from the database 34. Details of the process specifying database 34 will be described with reference to FIG. FIG. 6 is a diagram illustrating a data structure and a specific example of the process specifying database 34.
- the process specifying database 34 in FIG. 6 is an example, and the data structure and specific example of the process specifying database 34 are not limited to the example in FIG.
- the process specifying database 34 is a database that stores predicate phoneme strings and information indicating applications in association with each other. As illustrated in FIG. 6, the “specific phoneme string” column stores predicate phoneme strings that can be included in the corrected phoneme string. Further, the name of the application for executing the process is stored in the “application” column. That is, the process execution unit 26 can specify an application used to execute the process by specifying a record including the predicate phoneme sequence included in the corrected phoneme sequence.
- the information stored in the “application” column may be associated with each piece of information in the predicate dictionary 32a shown in FIG.
- the process specifying database 34 is omitted, and the process executing unit 26 refers to the predicate dictionary 32a instead of the process specifying database 34 and specifies an application to be used for executing the process.
- the process execution unit 26 reads the identified application from the application 35 stored in the storage unit 13. Then, processing corresponding to the corrected phoneme string is executed. For example, the process execution unit 26 activates a schedule book application and changes the corrected phoneme string to a character string mixed with kanji characters. Then, the schedule indicated by the character string is registered at the date and time indicated by the character string. For example, “go to Abeno Harukas” is registered as a schedule for the next day. Note that the existing technology can be used as the technology for changing the phoneme string to a character string mixed with kanji and kana and the technology for specifying a date from a character string mixed with kanji.
- the storage unit 13 stores at least phoneme string data 31, a phoneme string dictionary 32, a matching rate ranking 33, a process specifying database 34, and an application 35. Since these data have already been described, description thereof is omitted here.
- FIG. 7 is a flowchart illustrating an example of a flow of processing executed by the robot 1.
- the voice input control unit 21 of the robot 1 is in a state of waiting for acquisition of voice waveform data (S1).
- the voice input controller 11 receives the voice and the voice input controller 21 acquires the waveform data (YES in S1)
- the phoneme string generator 22 generates and stores a phoneme string from the waveform data (S2). ). Specifically, the process of generating phonemes from the waveform data and storing them in the storage unit 13 is repeated.
- the phoneme string generator 22 cannot generate a phoneme, it instructs the sentence end detector 23 to determine whether or not the voice input has been completed.
- the sentence end detection unit 23 determines whether or not the input of the voice is completed according to the instruction from the phoneme string generation unit 22 (S3). Specifically, the sentence end detection unit 23 refers to the waveform data acquired from the voice input control unit 21 and determines whether or not the voice input has ended. When it is determined that the input of the voice has been completed (YES in S3), the last phoneme is specified as the end of the sentence (S4), and a phoneme string specifying instruction is output to the matching rate specifying unit 24.
- the predicate specifying unit 241 of the match rate specifying unit 24 specifies the match rate (first match rate) between the first partial phoneme sequence and the predicate phoneme sequence in accordance with an instruction from the sentence end detection unit 23 (S5, first match rate). Specific step). Specifically, the predicate specifying unit 241 generates a match rate ranking 33a in which combinations of back phoneme sequences and predicate phoneme sequences in the division pattern of the phoneme sequence data 31 are arranged in descending order of match rate. Then, the predicate specifying unit 241 outputs the first combination in the matching rate ranking 33 a to the specifying unit 242 other than the predicate of the matching rate specifying unit 24.
- the specifying unit 242 other than the predicate specifies a matching rate (second matching rate) between the second partial phoneme string and the word phoneme string (S6, second specifying step).
- the match rate is specified using the phoneme string dictionary 32 associated with the predicate phoneme string acquired from the predicate specifying part 241 in the predicate dictionary 32a.
- the matching rate ranking 33 is generated, and the combination of records having the highest before-after integrated matching rate (the combination of the first record and the second record) is specified.
- the specifying unit 242 other than the predicate updates the matching rate included in the first record as the second matching rate, and temporarily stores the division pattern included in the first record.
- the specifying unit 242 other than the predicate repeats the process of step S6 until the second partial phoneme string can no longer be divided.
- the coincidence rate specifying unit 24 outputs the generated match rate ranking 33 and the temporarily stored division pattern to the phoneme string specifying unit 25.
- the phoneme string specifying unit 25 specifies the phoneme string of the input speech (S7, phoneme string specifying step). Specifically, the phoneme string specifying unit 25 corrects the phoneme string data 31 according to the acquired matching rate ranking 33 and the division pattern. Then, the corrected phoneme string data 31 (corrected phoneme string) is output to the process execution unit 26.
- the process execution unit 26 executes a process according to the identified phoneme string (S8, process execution step). Specifically, an application to be used for executing the process is specified from the predicate phoneme string included in the corrected phoneme string, and the application is activated to execute the process. For example, using the schedule book application, “go to Abeno Harukas” is registered as a schedule for the next day. Above, the process which the robot 1 performs is complete
- FIG. 8 is a block diagram illustrating an example of a main configuration of the robot 1a included in the processing execution system 100 according to the present embodiment.
- the robot 1 a according to the present embodiment includes a control unit 12 a instead of the control unit 12.
- a communication unit 14 is newly provided to exchange information with an external device.
- the control unit 12a does not include the phoneme string generation unit 22 described in the first embodiment. Moreover, it replaces with the voice input control part 21 and the sentence end detection part 23, and is provided with the voice input control part 21a and the sentence end detection part 23a.
- the voice input control unit 21 a outputs waveform data to the phoneme string generation device 2 via the communication unit 14. Further, the communication unit 14 repeats the process of storing the phonemes received from the phoneme string generation device 2 in the storage unit 13 as the phoneme string data 31.
- the sentence end detection unit 23 a acquires waveform data from the voice input control unit 21 in accordance with the instruction received from the phoneme string generation device 2. Then, referring to the waveform data, it is determined whether or not the voice input is completed. Since this determination has already been described in the first embodiment, a description thereof is omitted here.
- the sentence end detection unit 23 a transmits the determination result to the phoneme string generation device 2.
- the phoneme string generation device 2 is a device that realizes the function of the phoneme string generation unit 22 described in the first embodiment. Although not shown, the phoneme string generation device 2 has a function of performing wireless communication with the robot 1a, and can send and receive information to and from the communication unit 14 of the robot 1a. For example, the phoneme string generation device 2 receives waveform data from the robot 1a. In addition, the generated phonemes and instructions to the sentence end detection unit 23a are transmitted to the robot 1a.
- the robot 1a is communicably connected to the phoneme string generation device 2 that is an external device, and acquires phoneme strings generated by the phoneme string generation device 2 to obtain phoneme string data. 31 is stored in the storage unit 13. Thereby, the process which the robot 1a performs can be reduced.
- the processing execution system 100 includes the matching rate specifying unit 24, the phoneme string specifying unit 25, and the processing executing unit 26 among the members included in the robot 1a in the example of FIG. It is good also as a structure with which the control part of this apparatus is provided.
- the external device is a processing execution device according to an aspect of the present invention. Also, the sentence end detection unit 23a and the storage unit 13 provided in the robot 1a in the example of FIG.
- the end-of-sentence detection unit 23a and the storage unit 13 may be provided in an external device (hereinafter referred to as a process execution device) as the process execution device described above. Further, the sentence end detection unit 23a and the storage unit 13 may be provided in an external device different from the process execution device, and the other external device and the process execution device may be communicably connected. . That is, the robot 1a may ultimately be configured to include only the voice input unit 11, the communication unit 14, and the voice input control unit 21a.
- FIG. 9 is a block diagram illustrating an example of a main configuration of the robot 1b and the server 3 included in the processing execution system 200 according to the present embodiment.
- the robot 1b will be described.
- the server 3 is a device that performs processing based on the waveform data acquired from the robot 1b. Specifically, the server 3 performs voice recognition including natural language processing in response to an instruction from the robot 1b.
- the server 3 includes a server communication unit 41, a phoneme string generation unit 42, a speech recognition unit 43, and an intention analysis unit 44.
- the server communication unit 41 transmits / receives information to / from the robot 1b. Specifically, the server communication unit 41 receives waveform data from the robot 1b. Also, the generated phonemes and instructions to the sentence end detection unit 23a are transmitted to the robot 1b.
- the phoneme string generation unit 42 generates an input phoneme string from the waveform data in the same manner as the phoneme string generation unit 22 described in the first embodiment. Specifically, the phoneme string generation unit 42 repeats the process of specifying a phoneme from the waveform data and transmitting the phoneme to the robot 1b via the server communication unit 41. Thereby, the robot 1b can acquire the phoneme string data 31. In addition, the phoneme string generation unit 42 repeats the process of outputting the identified phonemes to the speech recognition unit 43. Thereby, the speech recognition unit 43 can acquire a phoneme string.
- the voice recognition unit 43 converts the acquired phoneme string into a character string mixed with kanji characters.
- the voice recognition unit 43 corrects phoneme strings or character strings as necessary. Thereby, the speech recognition unit 43 can convert, for example, the phoneme string “asitaabenotarukasuniikutoomoete” as “remember to go to Abeno Harukas tomorrow”. An existing technique can be used for conversion into a character string.
- the voice recognition unit 43 outputs the generated character string to the intention analysis unit 44.
- the intention analysis unit 44 analyzes the user's intention from the character string generated by the voice recognition unit 43. Specifically, the intention analysis unit 44 performs morphological analysis on the acquired character string, decomposes the character string, and associates the part of speech. Next, the intention analysis unit 44 divides the morpheme into segments, and generates segment information indicating combinations of predicates and sentence end expressions. For example, segment information indicating a combination of the predicate “remember (verb)” and the sentence end expression “te (particle)” is generated.
- the intention analysis unit 44 identifies the intention of the character string from the generated segment information. In other words, the intention analysis unit 44 determines whether the intention of the character string is “request”. Specifically, the server 3 stores a list (not shown) of sentence end expressions indicating “request” and a database (not shown) in which a character string of a predicate and information indicating an application are associated with each other. The intention analysis unit 44 determines whether or not the specified sentence end expression is included in the list. If the intention analysis unit 44 determines that the character string is included in the list, the intention analysis unit 44 refers to the database and identifies information indicating an application associated with the character string of the predicate.
- the segment information is a combination of the predicate “memo (verb)” and the sentence end expression “te (particle)”, it is first specified that the sentence end expression “te (particle)” is included in the above list Is done. Further, it is specified that the predicate “remember” is associated with information indicating the application of the schedule book. Then, the intention analysis unit 44 transmits an instruction to activate the schedule book application and the character string generated by the voice recognition unit 43 to the robot 1b. The communication unit 14 of the robot 1b temporarily stores the received instruction and character string in the storage unit 13.
- the robot 1b includes a control unit 12b instead of the control unit 12 or the control unit 12a.
- the control unit 12b includes a phoneme string specifying unit 25b and a process executing unit 26b in place of the phoneme string specifying unit 25 and the process executing unit 26, respectively.
- the phoneme sequence specifying unit 25b further specifies whether or not the integrated matching rate is equal to or higher than a predetermined value. . If the integrated matching rate is less than a predetermined value, the application recognition instruction generated by the intention analysis unit 44 of the server 3 temporarily stored in the storage unit 13 and generated by the voice recognition unit 43 are generated. The character string is output to the process execution unit 26b. Note that the processing when the integrated matching rate is equal to or greater than a predetermined value has already been described in the first embodiment, and thus description thereof is omitted here.
- the process execution unit 26b When the process execution unit 26b acquires the application activation instruction and the character string from the phoneme string identification unit 25b, the process execution unit 26b identifies and activates the application indicated by the activation instruction among the applications 35. And the process according to the acquired character string is performed. For example, the process execution unit 26b activates the schedule book application and registers the schedule indicated by the character string at the date and time indicated by the acquired character string.
- FIG. 10 is a flowchart illustrating an example of the flow of processing executed by the processing execution system 200. Note that steps S1 to S6 in FIG. 10 have already been described with reference to FIG. 7 in the first embodiment, and thus description thereof is omitted here.
- the phoneme string identification unit 25b calculates an integrated match rate (S11). Specifically, the highest match rate (first match rate) in the match rate ranking 33a and the highest match rate (second match rate) in the match rate rankings 33 other than the match rate ranking 33a are totaled, and integrated match Calculate the rate. Then, the phoneme string specifying unit 25b determines whether or not the integrated matching rate is equal to or higher than a predetermined value (S12). When it is determined that the integrated matching rate is equal to or greater than a predetermined value (YES in S12), the phoneme sequence specifying unit 25b includes a phoneme sequence including a maximum likelihood predicate phoneme sequence and a maximum likelihood word phoneme sequence (ie, Embodiment 1).
- the corrected phoneme string described in (1) is output to the process execution unit 26.
- the maximum likelihood predicate phoneme string is a predicate phoneme string associated with the first match rate in the match rate ranking 33a.
- the most likely word phoneme string is a word phoneme string associated with the second match rate in the match rate ranking 33 other than the match rate ranking 33a.
- the process execution part 26 performs the process according to the phoneme sequence which consists of a maximum likelihood predicate part phoneme sequence and a maximum likelihood word phoneme sequence (S13). Note that the processing in step S13 is substantially the same as the processing in step S8 described in the first embodiment.
- the phoneme string specifying unit 25b instructs the server 3 to specify the application to be started.
- the server 3 performs voice recognition and intention analysis according to the instruction (S14).
- indication which starts the application identified by the intention analysis are transmitted to the phoneme string specific
- the phoneme string identification unit 25b outputs the received character string and instruction to the process execution unit 26b.
- the process execution unit 26b executes a process according to the results of voice recognition and intention analysis (S15). Specifically, the application indicated by the acquired instruction is specified and activated. And the process according to the acquired character string is performed.
- the process execution system 200 performs the speech recognition and intention analysis performed by the server 3 when the integrated matching rate is less than a predetermined value, that is, when there is a high possibility that the process according to the user's instruction cannot be performed. Is obtained, and processing corresponding to the result is executed. Thereby, the process according to a user's instruction
- the server 3 (external device) further includes a sentence end detection unit and a coincidence rate identification unit (both not shown) having the same functions as the sentence end detection unit 23 and the coincidence rate identification unit 24 included in the control unit 12b of the robot 1b. May be provided.
- the server 3 stores the phoneme string dictionary and matching rate ranking (both not shown), which are the same data as the phoneme string dictionary 32 and matching rate ranking 33 stored in the storage unit 13 of the robot 1b. 3 is stored in a storage unit (not shown).
- the server 3 similarly to the robot 1b, the server 3 generates a match rate ranking, and transmits the match rate ranking and the division pattern to the robot 1b.
- the match rate ranking generation processing is the same as the processing described in the first embodiment, and thus description thereof is omitted here.
- the communication unit 14 of the robot 1b distinguishes and stores the matching rate ranking and division pattern received from the server 3 and the matching rate ranking 33 and division pattern generated in the robot 1b in the storage unit 13.
- the phoneme string specifying unit 25b when the integrated match rate in the combination of the first partial phoneme sequence and the second partial phoneme sequence is less than a predetermined value, the match rate ranking received from the server 3 stored in the storage unit 13. And the division pattern is read. Then, a combination (external combination) of the first partial phoneme string and the second partial phoneme string having the highest integrated matching rate is specified from the matching rate ranking and the division pattern. Then, it is specified whether or not the integrated matching rate is a predetermined value or more.
- the first partial phoneme sequence is identified as the maximum likelihood predicate phoneme sequence
- the second partial phoneme sequence is identified as the maximum likelihood word phoneme sequence
- the maximum likelihood predicate phoneme sequence and the maximum likelihood predicate phoneme sequence are identified.
- the corrected phoneme sequence corrected by the likelihood word phoneme sequence is output to the process execution unit 26.
- the application activation instruction specified by the intention analysis unit 44 of the server 3 and the characters generated by the speech recognition unit 43 are temporarily stored in the storage unit 13.
- the column is output to the process execution unit 26b. Since the subsequent processing has already been described in the third embodiment, the description thereof is omitted here.
- the robot 1b performs integrated matching when the integrated matching rate in the combination of the first partial phoneme string and the second partial phoneme string specified based on the matching rate ranking 33 is less than a predetermined value. It is determined whether the rate is equal to or greater than a predetermined value.
- the integrated match rate is an integrated match rate in the combination (external combination) of the first partial phoneme sequence and the second partial phoneme sequence specified based on the match rate ranking generated by the server 3.
- the phoneme string dictionary is updated as needed by registering new words, but the phoneme string dictionary 32 stored in the robot 1b is not always the latest version. If the phoneme string dictionary 32 is not the latest version, an appropriate division pattern cannot be specified, and processing as intended by the user may not be performed.
- the phoneme string dictionary stored in the server 3 can be easily updated by the administrator of the server 3. Therefore, the server 3 can always generate the matching rate ranking using the latest phoneme string dictionary.
- the robot 1b can specify a more appropriate combination of the first partial phoneme string and the second partial phoneme string by using the matching rate ranking generated by the server 3. Therefore, there is a high possibility that the process to be executed can be as intended by the user.
- the phoneme string specifying unit 25b uses the one having the higher integrated match rate among the combination of the first partial phoneme string and the second partial phoneme string specified based on the match rate ranking 33 and the external combination. It may be configured to generate a column.
- the server 3 may be configured to generate a matching rate ranking instead of voice recognition and intention analysis.
- the voice recognition unit 43 and the intention analysis unit 44 of the server 3 are omitted.
- the matching rate specifying unit of the server 3 may be configured to calculate the matching rate by a method different from that of the matching rate specifying unit of the robot 1b. For example, the matching rate specifying unit of the server 3 determines the matching rate when a part of the phoneme sequence generated by the phoneme sequence generating unit 42 and a phoneme sequence stored in the phoneme sequence dictionary match a predetermined number of characters. You may use the method of adding.
- the intention analysis unit 44 of the server 3 specifies a process to be executed by the application to be activated from the character string generated by the voice recognition unit 43, and information indicating the content of the process together with an instruction to activate the application, the robot 1b. May be sent to.
- the character string generated by the voice recognition unit 43 is “remember to go to Abeno Harukas tomorrow”
- information indicating a process of “register“ go to Abeno Harukas ”as a schedule for tomorrow” is applied to the application.
- the application in this case is, for example, a schedule book application.
- the information indicating the process of “registering“ go to Abeno Harukas ”as a schedule for tomorrow” can be expressed as “an instruction for registering“ going to Abeno Harukas ”as a schedule for tomorrow”.
- the non-predicate specifying unit 242 sets the match rate ranking 33 only for the front phoneme string in the division pattern of the record having the highest match rate among the match rate rankings 33a generated by the predicate specifying unit 241. It was a configuration to generate.
- the specifying unit 242 other than the predicate may be configured to generate the matching rate ranking 33 for the front phoneme string in each of the record division patterns included in the matching rate ranking 33a. Thereby, although the time concerning a process becomes long, the specific precision of a phoneme string can be raised.
- the specifying unit 242 other than the predicate uses the matching rate ranking 33c generated from the rear phoneme sequence of the divided pattern included in the first record in the above-described process C as the matching rate ranking of the target to be processed A described above. It was the composition to do.
- the specifying unit 242 other than the predicate may use all of the match rate rankings 33c as the match rate rankings of the objects to be processed A described above. Thereby, although the time concerning a process becomes long, the specific precision of a phoneme string can be raised.
- the sentence end detection part 23 and the sentence end detection part 23a determine whether the acquired waveform data is waveform data which cannot produce
- the sentence end detection unit 23 and the sentence end detection unit 23a may be configured to detect the sentence end with reference to the phoneme string generated by the phoneme string generation unit 22. Specifically, when the phoneme string (phoneme string data 31) satisfies a predetermined condition, the sentence end detection unit 23 determines that the input of the voice has been completed.
- a predetermined condition is “a predetermined number of identical phonemes continued”, but is not limited to this example.
- the sentence end detection unit 23 identifies the first phoneme in the same phoneme as the end of the sentence. Specifically, it is assumed that a phoneme string “... tooboeteeeee” is generated as a result of speaking to extend the ending when a user inputs a voice “remember ...”. In this case, the sentence end detection unit 23 and the sentence end detection unit 23a identify the first “e” among the six “e” as the end of the sentence, and delete the subsequent “eeeee”.
- the sentence end detection unit 23 and the sentence end detection unit 23a may combine the above-described two sentence end detection methods. Specifically, after specifying the provisional sentence end with reference to the waveform data, it may be determined whether or not the generated phoneme string data 31 satisfies a predetermined condition, and the sentence end may be specified. As a result, unnecessary phonemes not related to the instruction can be removed from the phoneme string data 31, so that the recognition accuracy of the instruction can be improved.
- FIG. 11 is a diagram illustrating an example in which the match rate is 0 when the difference in the number of phonemes is equal to or greater than a predetermined value.
- the difference between the number of phonemes in the rear phoneme string included in the “division pattern” column and the number of phonemes in the predicate phoneme string included in the “phoneme string to be compared” column is 5 or more.
- the matching rate is set to 0 without performing the process of calculating the matching rate from the editing distance. Thereby, the number of phoneme string combinations for calculating the coincidence rate can be reduced, and the processing time can be shortened.
- the predicate specifying unit 241 calculates the matching rate between the back phoneme sequence and the predicate phoneme sequence of the phoneme sequence data 31. .
- the predicate specifying unit 241 compares the front phoneme sequence of the phoneme sequence data 31 with the predicate phoneme sequence. It may be a configuration.
- the order of the categories of words included in the second partial phoneme string may be determined in advance. For example, when the predicate phoneme sequence is “oboete”, the second partial phoneme sequence is “temporal”, “place”, “particle”, “motion”, “particle” (for example, “tomorrow”, “Abeno Harukas”, “Ni”, “Go”, “To”) may be determined in advance. Thereby, when calculating the coincidence rate between each part of the second partial phoneme string and the word phoneme string, it is possible to specify one dictionary to be referred to.
- the configuration of the processing execution device may be incorporated in a device that executes processing based on the result of existing speech recognition.
- existing voice recognition is not particularly limited.
- the speech recognition may use an acoustic model and a language model generated using FST (Finite-State Transducer).
- FST Finite-State Transducer
- the generated acoustic model and language model are collectively referred to as a “model”.
- the normal process is executed based on the result of the existing voice recognition for the input voice.
- the period during which the model is corrected is based on the phoneme string using the configuration of the processing execution device according to one aspect of the present invention. Processing may be executed.
- the modification of the above model usually takes about 2 weeks to 1 month.
- the processing execution apparatus in order to obtain the same result as the above-described model correction, it is only necessary to add a phoneme string corresponding to a word corresponding to the phoneme string dictionary 32. End in time. Therefore, even when the existing speech recognition model is being corrected, the apparatus can operate as if speech recognition is being performed using the corrected model.
- the phoneme string dictionary 32 can be generated using data (for example, word data) used for generating the model.
- the processing of the specifying unit 242 other than the predicate may be parallelized using parallel computing technology to increase the processing speed.
- the case where the processing is predicted to take time is, for example, when there are a large number of word phoneme strings to be compared with the second partial phoneme string, or the number of words considered to be included in the second partial phoneme string. There are many cases.
- the process execution unit 26 activates the application and changes the corrected phoneme string to a character string mixed with kanji characters
- the application cannot execute the process unless it is a specific character string.
- it is a character string “Tomorrow”, it can be specified as a character string indicating the date of the next day, but if it is a character string “Next Day”, a character string indicating the date of the next day The case where it cannot specify as is considered.
- the robot 1 includes characters that can be processed by the application in phoneme strings that indicate character strings that cannot be processed by the application, among the phoneme strings stored in the phoneme string dictionary 32.
- Another phoneme string indicating the string may be associated.
- the phoneme string “asita” may be associated with the phoneme string “tuginohi”.
- the predicate specifying unit 241 and the non-predicate specifying unit 242 When the predicate specifying unit 241 and the non-predicate specifying unit 242 generate the matching rate ranking 33 and specify a phoneme sequence associated with another phoneme sequence as a specific phoneme sequence, Replace with another phoneme string. For example, when “tuginohi” is specified as the specific phoneme string, the specific phoneme string is replaced with “asita” associated with “tuginohi” in the tense dictionary 32b.
- the process execution unit 26 changes the corrected phoneme string to a character string mixed with kanji characters, a character string “Tomorrow” is generated, so that the process execution unit 26 performs the next day as intended by the user. You can register an appointment on the date. In addition, you may apply this modification to the structure which produces
- control blocks (particularly the control units 12, 12a, 12b) of the robots 1, 1a, 1b may be realized by a logic circuit (hardware) formed in an integrated circuit (IC chip) or the like.
- the control block may be realized by software using a CPU (Central Processing Unit).
- the robot 1, 1a, 1b includes a CPU, a ROM (Read Only Memory) or a storage device (these are referred to as “recording media”), a RAM (Random Access Memory), and the like.
- the CPU executes instructions of a program that is software for realizing each function.
- the program and various data are recorded so as to be readable by a computer (or CPU).
- the RAM expands the above program.
- the objective of this invention is achieved when a computer (or CPU) reads the said program from the said recording medium and runs it.
- a “non-temporary tangible medium” such as a tape, a disk, a card, a semiconductor memory, a programmable logic circuit, or the like can be used.
- the program may be supplied to the computer via an arbitrary transmission medium (such as a communication network or a broadcast wave) that can transmit the program.
- the present invention can also be realized in the form of a data signal embedded in a carrier wave in which the program is embodied by electronic transmission.
- a process execution device (robot 1) is a process execution device that executes a process according to an instruction indicated by an input voice, and is a part of an input phoneme string generated from the voice.
- a first specifying unit (predicate specification) that specifies a first matching rate that is a matching rate between a certain first partial phoneme sequence and any of the predicate phoneme sequences that are a plurality of phoneme sequences that are candidate speech predicates.
- a second specifying unit (specifying unit 242 other than predicate) that specifies a second match rate that is a match rate with any of word phoneme sequences that are a plurality of candidate phoneme sequences, the first match rate, and the first match rate
- the first partial phoneme string having the highest integrated match rate obtained by integrating two match rates and the above A combination of two partial phoneme strings is specified, and the most likely predicate phoneme string most likely as the upper description part phoneme string included in the input phoneme string and the most probable as the word phoneme string included in the input phoneme string
- a phoneme sequence specifying unit (phoneme sequence specifying unit 25) that specifies the most likely word phoneme sequence, and a process execution unit (process execution unit) that executes processing according to the maximum likelihood predicate phoneme sequence and the maximum likelihood word phoneme sequence 26).
- the first match rate between the first partial phoneme sequence and the predicate phoneme sequence is specified, and then the word phoneme sequence and the second according to the predicate phoneme sequence in which the first match rate is specified.
- the second matching rate with the partial phoneme string is specified.
- the comparison between the word phoneme string and the second partial phoneme string that is not related to the execution of the processing is performed. Therefore, there is a high possibility that the word phoneme string that matches the speech uttered by the user becomes the maximum likelihood word phoneme string. Therefore, the process to be executed can be as intended by the user.
- the word phoneme string to be compared with the second partial phoneme string is narrowed down, it is possible to reduce the time required for the process of specifying the second matching rate, and to reduce the burden on the processing execution device. As a result, even a device with low calculation capability can realize processing according to the input voice only by calculation within the device.
- the acoustic model and the language model are Since it is not necessary to prepare for optimizing (so-called “learning” or “correction” of these models), the time and cost required for the learning and correction can be reduced.
- the second specifying unit is configured to perform the second partial phoneme sequence that is the remainder of the first partial phoneme sequence having the highest first matching rate.
- the second matching rate may be specified.
- the first partial phoneme string having the highest first matching rate is set as the second partial phoneme string, and the second matching rate of only the second partial phoneme string is specified.
- the time required for specifying the second matching rate can be further shortened.
- the second specifying unit specifies the second matching rate for a part of the second partial phoneme string.
- the match rate with any of the word phoneme strings is specified.
- the combination of the front phoneme sequence and the rear phoneme sequence having the highest front / rear integrated match rate obtained by integrating the match rate of the front phoneme sequence and the match rate of the rear phoneme sequence is specified, and the front / rear integrated match rate
- the matching rate of the front phoneme sequence of the highest combination is updated as the second matching rate, and the rear phoneme sequence of the combination having the highest front-rear integrated matching rate is not specified for the second matching rate It may be updated as.
- the coincidence ratio between the front phoneme string and the word phoneme string and the coincidence ratio between the rear phoneme string and the word phoneme string of the part for which the second matching rate of the second partial phoneme string is not specified is calculated. Then, the process of specifying the coincidence rate of the front phoneme string having the highest front-and-rear integrated coincidence ratio obtained by integrating the two coincidence ratios as the second coincidence rate and setting the rear phoneme string as a part for which the second coincidence rate is not identified. repeat. That is, the part for which the second matching rate is specified is not involved in the subsequent specification of the second matching rate. Thereby, the time concerning specification of all the 2nd coincidence rates in the 2nd partial phoneme sequence can be shortened.
- the first specifying unit has a predetermined phoneme number difference between the first partial phoneme string and the upper description part phoneme string.
- the first matching rate is set to the lowest value
- the second specifying unit determines that the difference in the number of phonemes between the second partial phoneme string and the word phoneme string is equal to or greater than a predetermined value.
- the second matching rate may be the lowest value.
- the matching rate is obtained without performing comparison. Is determined to be the lowest value, so that the processing time can be shortened.
- the process execution unit may identify an application used for execution of the process according to the maximum likelihood predicate phoneme sequence. Good.
- the application used to execute the process is determined according to the maximum likelihood predicate phoneme sequence. That is, an application used for executing the process can be specified without requiring a complicated process such as specifying the intention of the voice uttered by the user unlike an existing apparatus that performs voice recognition.
- the process execution device is the process execution device according to any one of the aspects 1 to 5, wherein the phoneme string identification unit has a combination with the highest integrated match rate and the integrated match rate equal to or higher than a predetermined value.
- the process execution unit may execute the specified process using the result of performing speech recognition including natural language processing on the speech when there is no combination with the integrated matching rate equal to or greater than a predetermined value.
- the process to be executed is specified using the result of speech recognition including natural language processing. Therefore, even when the maximum likelihood predicate phoneme string and the maximum likelihood word phoneme string as specified by the user are not specified, the process as intended by the user can be executed.
- the process execution device is the process execution device according to any one of Aspects 1 to 6, wherein the phoneme string specifying unit includes the first match rate specified by an external device (server 3), and an external Further identifying an external combination that is a combination of the first partial phoneme string and the second partial phoneme string, and that has the highest integrated match rate obtained by integrating the second match rates specified by the device, and the external combination is When the combination has the highest integrated match rate, the maximum likelihood predicate phoneme sequence and the maximum likelihood word phoneme sequence may be specified based on the external combination.
- the phoneme string specifying unit includes the first match rate specified by an external device (server 3), and an external Further identifying an external combination that is a combination of the first partial phoneme string and the second partial phoneme string, and that has the highest integrated match rate obtained by integrating the second match rates specified by the device, and the external combination is When the combination has the highest integrated match rate, the maximum likelihood predicate phoneme sequence and the maximum likelihood word phoneme sequence may be specified based on the external combination.
- the external combination that is the combination with the highest integrated match rate obtained by integrating the first match rate and the second match rate specified by the external device is the combination with the highest integrated match rate
- the maximum likelihood predicate phoneme string and the maximum likelihood word phoneme string are specified. This increases the possibility that the process as intended by the user can be executed.
- the process execution device is the process execution device according to any one of the aspects 1 to 7, wherein the first specifying unit performs the first partial phoneme sequence including the last phoneme of the input phoneme sequence.
- One match rate may be specified.
- the first matching rate of the first partial phoneme string including the last phoneme of the input phoneme string is specified. If the speech is speech in a language such as Japanese, the predicate often comes at the end of the speech. For this reason, by setting the first partial phoneme string as a part including the last phoneme of the input phoneme string, it is possible to compare a part that is highly likely to correspond to a predicate in the input phoneme string with the predicate phoneme string.
- the process execution device provides the predicate phoneme according to any of the above aspects 1 to 8, wherein a plurality of upper description part phoneme strings are stored in association with category information indicating a category of the word phoneme string.
- a storage unit (storage unit 13) that stores a column dictionary (prediction dictionary 32a) and a plurality of word phoneme sequence dictionaries (temporal dictionary 32b, location dictionary 32c, action dictionary 32d) that store the word phoneme sequence for each category.
- the second specifying unit specifies category information associated with the predicate phoneme sequence in which the first matching rate is specified in the upper description unit phoneme sequence dictionary, and the category information The second matching rate between the word phoneme string stored in the word phoneme string dictionary indicated by and the second partial phoneme string may be specified.
- the category information associated with the predicate phoneme string for which the first matching rate is specified is specified, and the word phoneme string stored in the word phoneme string dictionary indicated by the category information
- the second match rate with the two partial phoneme strings is compared.
- the word phoneme string according to the predicate phoneme string for which the first matching rate is specified can be compared with the second partial phoneme string.
- the predicate phoneme string and the word phoneme string are stored as dictionary data, when adding a phoneme string, it is only necessary to add a new phoneme string to an appropriate predicate phoneme string dictionary or word phoneme string dictionary. . Therefore, it is possible to easily add a new phoneme string (so-called new word learning).
- the first specifying unit calculates the first matching rate using an edit distance
- the second specifying unit May calculate the second matching rate using the edit distance
- the first match rate and the second match rate are calculated using the edit distance, so that the maximum likelihood predicate phoneme sequence and the maximum likelihood word phoneme sequence can be correctly specified.
- a control method for a process execution device is a control method for a process execution device that executes processing according to an instruction indicated by an input voice, and is a method for controlling an input phoneme string generated from the voice.
- a first specifying step for specifying a first matching rate that is a matching rate between a first partial phoneme sequence that is a part and a predicate phoneme sequence that is a plurality of phoneme sequences that are candidate speech predicates S5), the second candidate phoneme sequence other than the first partial phoneme sequence in the input phoneme sequence, and the speech word candidates according to the predicate phoneme sequence in which the first match rate is specified
- a second specifying step (step S6) for specifying a second matching rate that is a matching rate with any of the word phoneme sequences that are a plurality of phoneme sequences, and the first matching rate and the second matching rate.
- the first partial phoneme sequence having the highest integrated match rate And a combination of the second partial phoneme strings, the most likely predicate phoneme string most likely as the upper description part phoneme string included in the input phoneme string, and the word phoneme string included in the input phoneme string A phoneme sequence specifying step (step S7) for specifying the most likely maximum likelihood word phoneme sequence, and a process execution step (step S8) for executing processing according to the maximum likelihood predicate phoneme sequence and the maximum likelihood word phoneme sequence And including.
- the method for controlling the process execution device according to this aspect has the same effects as the process execution device according to aspect 1.
- the process execution apparatus may be realized by a computer.
- the process execution apparatus is operated on each computer by causing the computer to operate as each unit (software element) included in the process execution apparatus.
- a control program for the processing execution apparatus to be realized and a computer-readable recording medium on which the control program is recorded.
- Reference Signs List 13 storage unit 25 phoneme sequence specifying unit 26 processing execution unit 32a predicate dictionary (predicate phoneme sequence dictionary) 32b Temporal dictionary (word phoneme string dictionary) 32c Place dictionary (word phoneme string dictionary) 32d motion dictionary (word phoneme string dictionary) 241 predicate specifying part (first specifying part) 242 Specific part other than predicate (second specific part) S5 1st specific step S6 2nd specific step S7 Phoneme string specific step S8 Process execution step
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
Abstract
特定の処理を実行する場合において、実行する処理をユーザの意図通りのものとする。ロボット(1)は、第1部分音素列と述部音素列との第1一致率を特定する述部特定部(241)と、第2部分音素列と第1一致率が特定された述部音素列に応じた単語音素列との第2一致率を特定する述部以外特定部(242)と、を備える。
Description
本発明は入力された音声が示す指示に応じた処理を実行する処理実行装置などに関する。
ユーザが入力した音声に応じた処理を実行する技術(いわゆる音声認識)は古くから研究されている。下記特許文献1には、音声認識と意図解析とをサーバにて効率的に行う技術が開示されている。
特許文献1の技術は、いわゆる自然言語処理を行う技術である。これらの技術を用いた音声認識は、多くのシチュエーションを汎用的に判断する目的で用いられている。そのため、特定の処理を実行する場合において、認識精度が下がってしまう。このため、ユーザの意図通りの処理の実行が行われないことがあるという問題がある。例えば、端末装置においてスケジュール帳のアプリケーションを起動させ、予定を登録する場合において、汎用的に判断する音声認識では認識精度が下がり、ユーザの意図通りの予定が登録されないことがある。
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、特定の処理を実行する場合において、実行する処理をユーザの意図通りのものとすることができる処理実行装置を実現することにある。
上記の課題を解決するために、本発明の一態様に係る処理実行装置は、入力された音声が示す指示に応じた処理を実行する処理実行装置であって、上記音声から生成された入力音素列の一部である第1部分音素列と、上記音声の述部候補となる複数の音素列である述部音素列のいずれかとの一致率である第1一致率を特定する第1の特定部と、上記入力音素列における、上記第1部分音素列以外の残部である第2部分音素列と、上記第1一致率が特定された述部音素列に応じた、上記音声の単語候補となる複数の音素列である単語音素列のいずれかとの一致率である第2一致率を特定する第2の特定部と、上記第1一致率と上記第2一致率とを統合した統合一致率が最も高い、上記第1部分音素列および上記第2部分音素列の組み合わせを特定して、上記入力音素列に含まれる上記述部音素列として最も確からしい最尤述部音素列と、上記入力音素列に含まれる上記単語音素列として最も確からしい最尤単語音素列とを特定する音素列特定部と、上記最尤述部音素列および上記最尤単語音素列に応じた処理を実行する処理実行部と、を備える。
また、上記の課題を解決するために、本発明の一態様に係る処理実行装置の制御方法は、入力された音声が示す指示に応じた処理を実行する処理実行装置の制御方法であって、上記音声から生成された入力音素列の一部である第1部分音素列と、上記音声の述部候補となる複数の音素列である述部音素列のいずれかとの一致率である第1一致率を特定する第1の特定ステップと、上記入力音素列における、上記第1部分音素列以外の残部である第2部分音素列と、上記第1一致率が特定された述部音素列に応じた、上記音声の単語候補となる複数の音素列である単語音素列のいずれかとの一致率である第2一致率を特定する第2の特定ステップと、上記第1一致率と上記第2一致率とを統合した統合一致率が最も高い、上記第1部分音素列および上記第2部分音素列の組み合わせを特定して、上記入力音素列に含まれる上記述部音素列として最も確からしい最尤述部音素列と、上記入力音素列に含まれる上記単語音素列として最も確からしい最尤単語音素列とを特定する音素列特定ステップと、上記最尤述部音素列および上記最尤単語音素列に応じた処理を実行する処理実行ステップと、を含む処理実行装置の制御方法。
本発明の一態様によれば、特定の処理を実行する場合において、実行する処理をユーザの意図通りのものとすることができるという効果を奏する。
〔実施形態1〕
以下、本発明の一実施形態について、図1~図7に基づいて説明する。まず、本発明の概要を図2に基づいて説明する。図2は、本発明の概要を示す図である。なお、ここでは、本発明の一態様をロボット1に適用した例を説明する。本実施形態に係るロボット1は、ユーザが入力(発話)した音声に応じてアプリケーションを起動し、該音声に応じた処理を実行する装置である。なお、ロボット1は、ユーザの指示に応じて可動部位を駆動させる機能や、通話機能、画面表示機能、音声出力機能、写真撮影機能などのスマートフォンとしての機能を備えるものであってもよい。なお、本発明は入力された音声が示す指示に応じた処理を実行する装置であれば適用可能であり、本発明の適用例はロボット1に限定されない。本発明の一態様は例えば、パーソナルコンピュータ、スマートフォン、タブレット、携帯電話などに好適である。
以下、本発明の一実施形態について、図1~図7に基づいて説明する。まず、本発明の概要を図2に基づいて説明する。図2は、本発明の概要を示す図である。なお、ここでは、本発明の一態様をロボット1に適用した例を説明する。本実施形態に係るロボット1は、ユーザが入力(発話)した音声に応じてアプリケーションを起動し、該音声に応じた処理を実行する装置である。なお、ロボット1は、ユーザの指示に応じて可動部位を駆動させる機能や、通話機能、画面表示機能、音声出力機能、写真撮影機能などのスマートフォンとしての機能を備えるものであってもよい。なお、本発明は入力された音声が示す指示に応じた処理を実行する装置であれば適用可能であり、本発明の適用例はロボット1に限定されない。本発明の一態様は例えば、パーソナルコンピュータ、スマートフォン、タブレット、携帯電話などに好適である。
図2に示すように、ロボット1は、ユーザが入力した音声を受け付ける。図示の例では、ユーザはスケジュール帳アプリケーションに予定を追加するために、「明日、アベノハルカスに行くと覚えて」と発話している。ユーザが発話した音声を受け付けると、ロボット1は、該音声の波形データから音素列を生成する。なお、波形データからの音素列の生成には既存の技術を使用することができる。図示の例では、音素列として「asitaabenotarukasuniikutoomoete」と、ユーザが発話した音声とは一部異なる音素列が生成されたとする(図2の「(1)音素列生成」の下線部分)。ただし、図示の生成された音素列は一例であり、この例に限定されない。例えば、ユーザが発話した音声のとおり、「asitaabenoharukasuniikutooboete」という音素列が生成されてもよい。なお以降、上記の音素列を入力音素列と称する場合がある。
次に、ロボット1は、入力音素列の特定を行う。具体的には、図示のように、ロボット1はまず入力音素列において述部に相当する部分の音素列を特定する。図示の例では、入力音素列の「omoete」の部分を「oboete」であると特定している。続いて、ロボット1は、図示のように、述部以外の単語に相当する部分の音素列を特定する。図示の例では、入力音素列の「asitaabenotarukasuniikuto」の部分を「asitaabenoharukasuniikuto」であると特定している。なおこのとき、ロボット1は、特定した述部の音素列(図示の例では「oboete」)で、述部以外の単語に相当する部分を特定するための辞書の絞り込みを行う。
最後に、ロボット1は、特定した音素列に応じた処理を実行する。図示の例では、スケジュール帳アプリケーションを起動し、翌日(明日)の予定として「アベノハルカスに行く」を登録している。なお、ロボット1が画面表示機能を備えている場合、図示のように、表示部に予定を登録したことを示す画面50を表示してもよい。なお、図2を参照して説明した、上記の処理の詳細については後述する。
以上のように、本発明の一態様に係るロボット1は、述部の音素列によって、入力音素列の述部以外の部分(上記の例では「asitaabenotarukasuniikuto」の部分)に含まれる単語を絞り込むことができる。これにより、ユーザが入力した音声に応じて、特定の処理を実行するという、音声入力を特定の目的に使用するケースにおいて、認識精度を上げることができる。また、音素列を特定するためにかかる時間を短縮することができる。
次に、ロボット1の要部構成について図1に基づいて説明する。図1は、ロボット1の要部構成の一例を示すブロック図である。ロボット1は、音声を受け付けるデバイス(例えばマイク)である音声入力部11、ロボット1の機能を統括して制御する制御部12、および、ロボット1が使用する各種データを記憶する記憶部13を備える。なお、ロボット1がスマートフォンとしての機能を有する場合、ロボット1は該機能を実現する部材(例えば、通話機能を実現する通話部、音声出力機能を実現する音声出力部など)を備える。また、ロボット1は可動部位を駆動させる機能を実現する部材を備えていてもよい。ただし、これらの部材は本発明との関連が薄いため、図示および説明を省略する。
制御部12は、音声入力制御部21、音素列生成部22、文末検知部23、一致率特定部24、音素列特定部25、および処理実行部26を含む。
音声入力制御部21は、音声入力部11を制御する。具体的には、音声入力制御部21は、音声入力部11から取得した音声の波形データを音素列生成部22に出力する。また、音声入力制御部21は、文末検知部23からの指示に従って波形データを文末検知部23に出力する。
音素列生成部22は、音声の波形データから音素列(入力音素列)を生成する。音素列生成部22は、音声入力制御部21から取得した波形データから音素を特定し、該音素を記憶部13に記憶していく処理を繰り返す。これにより、記憶部13には音素列データ31(例えば、図2で示した「asitaabenotarukasuniikutoomoete」)が記憶される。音素列生成部22は、音素を生成できなかった場合(換言すれば、音声入力制御部21から、音素を生成できるような波形データを取得できなかった場合)、文末検知部23に音声入力が終了したか否かを判定するよう指示する。
文末検知部23は、音声入力が終了したか否か、すなわち、記憶部13に記憶された音素列データ31の最後の音素が文末であるか否かを検知する。具体的には、文末検知部23は、音素列生成部22からの指示に従って、音声入力制御部21から波形データを取得する。そして、該波形データを参照し、音声の入力が終了したか否かを判定する。該判定について具体的に説明すると、文末検知部23は、音声が入力されていないことを示す波形データを所定時間取得した場合、音声の入力が終了したと判定する。一方、所定時間中に音声が入力されたことを示す波形データを取得した場合、音声の入力が終了していないと判定する。なお、「音声が入力されていないことを示す波形データ」とは、波の高さが所定の閾値に満たない波形データ(換言すれば、音素が生成できない波形データ)である。文末検知部23は、判定結果を音素列生成部22に出力する。また、音声の入力が終了したと判定した場合、最後の音素を文末と特定し、音素列の特定指示を一致率特定部24に出力する。
一致率特定部24は、音素列データ31に含まれる部分である1以上の部分音素列について、辞書に登録された音素列との一致率を特定する。一致率特定部24は、述部特定部241(第1の特定部)と述部以外特定部242(第2の特定部)とを含む。一致率特定部24は、文末検知部23からの指示を受けると、記憶部13から音素列データ31を読み出す。
述部特定部241は、読み出した音素列データ31から、該音素列データ31の一部であり、述部に相当する部分音素列(第1部分音素列)と、辞書に登録された述部を示す音素列(述部音素列)とを比較する。そして、述部特定部241は、比較結果に基づいて一致率(以降、第1一致率と称する場合がある)を特定する。具体的には、述部特定部241はまず、記憶部13に記憶された音素列辞書32から、述部音素列を登録している辞書である述部辞書32a(述部音素列辞書)を読み出す。ここで、述部辞書32aについて図3に基づいて説明する。図3は、音素列辞書32のデータ構造および具体例を示す図である。なお、図3に示す音素列辞書32のデータ構造および具体例は一例であり、この例に限定されない。
図3の(a)に示すように、述部辞書32aは、「音素列」のカラムに、ユーザが発話した音声の述部候補となる複数の述部音素列を格納している。なお、括弧書きで示した部分は、音素列が示す述部を明示するための記載であり、「音素列」のカラムに格納されていなくてもよい。また、「検索辞書」のカラムには、音素列データ31の第1部分音素列が各述部音素列に特定された場合に、その他の単語を特定する際に使用する音素列辞書32を示す情報(カテゴリ情報)が格納されている。具体的には、第1部分音素列が「oboete」であると特定された場合、ユーザが入力した音声は予定の登録のための音声である可能性が高く、音素列データ31には、時制、場所、動作などが含まれる可能性が高い。そのため、「oboete」という述部音素列には、後述する時制辞書32b、場所辞書32c、および動作辞書32dを示す情報などが格納されている。時制辞書32bは、時制を示す音素列が登録されている辞書である。場所辞書32cは、場所を示す音素列が登録されている辞書である。動作辞書32dは、動作を示す音素列が登録されている辞書である。なお、本実施形態に係る音素列は、子音と母音とが1文字になるように構成される。すなわち、撥音および促音も1文字で表現される。例えば、図3の(a)に示すように、「ん」に相当する音素は「@」で表現される。また、図3の(b)に示すように、「きょ」に相当する音素は「Ko」で表現される(これに対して、小文字の「k」を用いる「ko」は「こ」を表す)。さらに、促音である「っ」は「!」で表現される。なお、この表現方法は一例であり、撥音や促音などの音素の表現方法はこの例に限定されない。
続いて、述部特定部241は、読み出された音素列データ31を、音素列データ31の文末部分(最後の音素)とその他の部分とに分割する。つまり、音素列データ31が「asitaabenotarukasuniikutoomoete」である場合、「asitaabenotarukasuniikutoomoet/e」と分割する(「/」は分割箇所を示す)。そして、音素列データ31の最後の音素側の音素列(以降、後方音素列と称する)について、述部辞書32aに含まれる述部音素列と比較し、一致率を算出する。なお、一致率の算出については既存の技術を用いることができる。例えば、編集距離(レーベンシュタイン距離)から一致率を算出する技術を用いてもよいが、この例に限定されるものではない。そして、述部特定部241は、最も一致率の高い述部音素列を特定する。
続いて、述部特定部241は、分割箇所を1つ前に移動させた新たな分割パターン(すなわち、「asitaabenotarukasuniikutoomoe/te」)について、同様の処理を行い、後方音素列と最も一致率の高い述部音素列を特定する。そして、述部特定部241は、この処理を繰り返し、「/asitaabenoharukasuniikutoomoete」という分割パターンまでの各分割パターンについて、後方音素列と最も一致率の高い述部音素列を特定する。
続いて、述部特定部241は、特定した述部音素列についてのランキングを生成し、一致率ランキング33として記憶部13に記憶する。ここで、述部音素列の一致率ランキング33a(以降、単に一致率ランキング33aと称する)の詳細について図4に基づいて説明する。図4は、一致率ランキング33aのデータ構造および具体例を示す図である。なお、図4に示す一致率ランキング33aは一例であり、データ構造および具体例はこの例に限定されない。
一致率ランキング33aは、分割パターンの後方音素列と述部音素列との組み合わせを一致率が高い順に並べたデータである。該組み合わせには、分割パターン(すなわち後方音素列を特定可能な情報)、該分割パターンにおける後方音素列と最も一致率の高い述部音素列、および、該一致率が含まれる。図示の例では、一致率ランキング33aは、上記の組み合わせを、一致率が高い順に3つ並べたデータである。一致率ランキング33aにおいて、分割パターンは「分割パターン」のカラムに格納される。また、分割パターンにおける後方音素列と最も一致率の高い述部音素列は、「特定音素列」のカラムに格納される。また、一致率は「一致率」のカラムに格納される。述部特定部241は、該一致率ランキング33aから、一致率が最も高い(すなわち、ランキングが1位の)レコードを特定する。そして、特定したレコードに含まれる分割パターンと述部音素列とを述部以外特定部242に出力する。
述部以外特定部242は、音素列データ31から第1部分音素列以外の残部(第2部分音素列)と、辞書に登録された単語を示す音素列(単語音素列)とを比較し、一致率(以降、第2一致率と称する場合がある)を特定する。具体的には、述部以外特定部242はまず、記憶部13に記憶された音素列辞書32から、述部辞書32aを読み出す。そして、述部辞書32aにおいて、述部特定部241から取得した述部音素列に対応付けられている音素列辞書32の情報を読み出す。例えば、「oboete」に対応付けられている時制辞書32b、場所辞書32c、動作辞書32d(単語音素列辞書)などを読み出す。
ここで、図3を再度参照して、述部辞書32a以外の音素列辞書32について説明する。述部辞書32a以外の音素列辞書32(図示の例では、時制辞書32b、場所辞書32c、動作辞書32d)は、述部辞書32aと異なり、ユーザが発話した音声の単語候補となる複数の音素列(以降、単語音素列と称する)のみを格納するものである。なお、述部辞書32a以外の音素列辞書32は、図示の例に限定されるものではない。他の例としては、助詞を示す音素列を格納した助詞辞書などが挙げられる。
続いて、述部以外特定部242は、述部特定部241から取得した分割パターンについて、音素列データ31の最初の音素側の音素列(以降、前方音素列と称する)を、最初の音素とその他の部分とに分割する。つまり、「asitaabenotarukasuniikuto」を「a/sitaabenotarukasuniikuto」と分割する。そして、該分割パターン(以降、第2分割パターンと称する)における前方音素列について、読み出した音素列辞書32に含まれる単語音素列と比較し、一致率を算出する。そして、最も一致率の高い単語音素列を特定する。
続いて、述部以外特定部242は、分割箇所を1つ後に移動させた新たな第2分割パターン(すなわち、「as/itaabenotarukasuniikuto」)について、同様の処理を行い、前方音素列と最も一致率の高い単語音素列を特定する。そして、述部以外特定部242は、この処理を繰り返し、「asitaabenoharukasuniikuto/」という第2分割パターンまでの各第2分割パターンについて、前方音素列との一致率が最も高い単語音素列を特定する。
続いて、述部以外特定部242は、特定した単語音素列についてのランキングを生成し、一致率ランキング33として記憶部13に記憶する。ここで、単語音素列の一致率ランキング33b(以降、単に一致率ランキング33bと称する)の詳細について図5に基づいて説明する。図5は、一致率ランキング33b、および、後述する一致率ランキング33cのデータ構造および具体例を示す図である。なお、図5に示す一致率ランキング33bおよび一致率ランキング33cは一例であり、データ構造および具体例はこの例に限定されない。
図5の(a)に示すように、一致率ランキング33bは、第2分割パターンの前方音素列と単語音素列との組み合わせを一致率が高い順に並べたデータである。該組み合わせには、第2分割パターン(すなわち、第2分割パターンの前方音素列を特定可能な情報)、該第2分割パターンの前方音素列と最も一致率の高い単語音素列、および、該一致率が含まれる。図示の例では、一致率ランキング33bは、上記の組み合わせを一致率が高い順に3つ並べたデータである。一致率ランキング33bにおいて、第2分割パターンは「分割パターン」のカラムに格納される。また、第2分割パターンの前方音素列と最も一致率の高い単語音素列は、「特定音素列」のカラムに格納される。また、一致率は「一致率」のカラムに格納される。
続いて、述部以外特定部242は、一致率ランキング33bの各レコードに含まれる第2分割パターンそれぞれの後方音素列(すなわち、単語音素列との第2一致率が算出されていない部分)について、最初の音素とその他の部分とに分割する。つまり、第2分割パターンが「asita/abenotarukasuniikuto」のレコードの場合、「abenotarukasuniikuto」を「a/benotarukasuniikuto」と分割する。そして、該分割パターン(以降、第3分割パターンと称する)における前方音素列について、読み出した音素列辞書32に含まれる単語音素列と比較し、一致率を算出する。そして、最も一致率の高い単語音素列を特定する。続いて、述部以外特定部242は、分割箇所を1つ後に移動させた新たな第3分割パターン(すなわち、「ab/enotarukasuniikuto」)について、同様の処理を行い、前方音素列との一致率が最も高い単語音素列を特定する。そして、述部以外特定部242は、この処理を繰り返し、「abenoharukasuniikuto/」という第3分割パターンまでの各第3分割パターンについて、前方音素列との一致率が最も高い単語音素列を特定する。なお、後の説明のために、この段落の処理を処理Aとする。
続いて、述部以外特定部242は、特定した単語音素列についてのランキングを生成し、一致率ランキング33(一致率ランキング33c)として記憶部13に記憶する。上述したように、一致率ランキング33cは、第2分割パターンそれぞれの後方音素列において生成されるので、図5の(b)および図5の(c)に示すように、複数の一致率ランキング33cが生成されることとなる。図5の(b)に示す一致率ランキング33c1は、一致率ランキング33bにおける順位が1位の第2分割パターンの後方音素列を、さらに分割した第3分割パターンの前方音素列と単語音素列との組み合わせについて、一致率が高い順に並べたデータである。また、図5の(c)に示す一致率ランキング33c2は、一致率ランキング33bにおける順位が2位の第2分割パターンの後方音素列を、さらに分割した第3分割パターンの前方音素列と単語音素列との組み合わせについて、一致率が高い順に並べたデータである。また、述部以外特定部242は、一致率ランキング33bにおける順位が3位の第2分割パターンの後方音素列を、さらに分割した第3分割パターンの前方音素列と単語音素列との組み合わせについて、一致率が高い順に並べた一致率ランキングも生成する。述部以外特定部242は、該一致率ランキングについても記憶部13に記憶する。なお、後の説明のために、この段落の処理を処理Bとする。
述部以外特定部242は、一致率ランキング33bにおける各一致率と、一致率ランキング33cにおける各一致率と合計した合計値(前後統合一致率)が最も高いレコードの組み合わせを特定する。図5の例の場合、一致率ランキング33bにおける、分割パターンが「asita/abenotarukasuniikuto」のレコードと、一致率ランキング33c1における、分割パターンが「abenotarukasu/niikuto」のレコードとの組み合わせを特定する。なお以降、分割パターンが「asita/abenotarukasuniikuto」のレコードを第1レコードと称する。また、分割パターンが「abenotarukasu/niikuto」のレコードを第2レコードと称する。そして、述部以外特定部242は、第1レコードに含まれる一致率を第2一致率として更新(特定)し、該第1レコードに含まれる分割パターンを一時的に記憶しておく。また、述部以外特定部242は、第1レコードに含まれる分割パターンの後方音素列から生成された一致率ランキング33cを、上述した処理Aを行う対象の一致率ランキングとする。この例の場合、一致率ランキング33c1が処理Aを行う対象の一致率ランキングとなる。なお、後の説明のために、この段落の処理を処理Cとする。
以降、述部以外特定部242は、第2部分音素列における、単語音素列との第2一致率が特定されていない部分に対して、上述した処理A、処理B、および処理Cと同様の処理を、それ以上分割できなくなるまで繰り返す。これにより、少なくとも1つの分割パターンが一時的に記憶された状態となる。なお、「それ以上分割できなくなる」とは、分割箇所を示す「/」が最後の音素の後にある分割パターンを含むレコードが、処理Cにおけるレコードの組み合わせの一方として特定された場合を示す。分割箇所を示す「/」が最後の音素の後にある分割パターンの一例としては、後方音素列が「to」である場合における「to/」のような分割パターンが挙げられる。
このように、前後統合一致率が最も高いレコードの組み合わせを特定し、該組み合わせの第1レコードに含まれる一致率を第2一致率として特定することで、最も確からしい単語音素列を選ぶことができる可能性が高くなる。
一致率特定部24は、記憶部13に記憶した一致率ランキング33と、一時的に記憶した分割パターンとを音素列特定部25に出力する。なお、図4および図5に示す一致率ランキング33のレコードは3つ(すなわち、3位までのランキング)であるが、この例に限定されるものではない。また、一致率ランキング33は、一致率が所定の閾値以上(例えば、0.50以上)の後方音素列と述部音素列との組み合わせのみを格納するものであってもよい。換言すれば、図4および図5の例において、一致率が0.50以上の分割パターンが1つまたは2つのみの場合、それぞれレコードが1つまたは2つのみとなってもよい。
音素列特定部25は、音素列データ31からユーザが入力した音声に相当する音素列を特定する。換言すれば、音素列データ31をユーザが入力した指示を実行可能な音素列に補正する。具体的には、音素列特定部25は、一致率特定部24から取得した一致率ランキング33aから、一致率が最も高いレコードを特定する。そして、該レコードに含まれる分割パターンの後方音素列を、該レコードに含まれる述部音素列(最尤述部音素列)に特定する。例えば、「omoete」を「oboete」として特定する。
続いて、音素列特定部25は、一致率ランキング33a以外の一致率ランキング33と一時的に記憶された分割パターンとから第2部分音素列に含まれる各単語音素列(最尤単語音素列)を特定する。なお、一致率ランキング33a以外の一致率ランキングとは、一致率ランキング33b、一致率ランキング33cなどを指す。具体的には、一時的に記憶された分割パターンを一致率ランキング33から特定し、該分割パターンの前方音素列を、一致率ランキング33において該分割パターンに対応付けられた単語音素列に特定する。図5の例の場合、「asita」、「abenoharukasu」、「ni」、「iku」、「to」をそれぞれ特定する。
上記の処理について換言すれば、音素列特定部25は、統合一致率が最も高い、第1部分音素列および第2部分音素列の組み合わせを特定する。そして、音素列特定部25は、述部音素列として最も確からしい最尤述部音素列と、単語音素列として最も確からしい最尤単語音素列とを特定する。なお、統合一致率とは、一致率ランキング33aにおける最も高い一致率(第1一致率)と、一致率ランキング33a以外の一致率ランキング33における最も高い一致率(第2一致率)とを統合したものである。
そして、音素列特定部25は、特定した述部音素列および単語音素列によって補正された音素列データ31(以降、補正音素列と称する場合がある)を処理実行部26に出力する。上述の例の場合、「asitaabenoharukasuniikutooboete」を処理実行部26に出力する。
処理実行部26は、ユーザが入力した音声が示す指示に応じた処理を実行する。具体的には、処理実行部26は、音素列特定部25から取得した補正音素列に含まれる述部音素列を特定し、該述部音素列と記憶部13に記憶されている処理特定用データベース34とから、処理を実行するためのアプリケーションを特定する。ここで、処理特定用データベース34の詳細について、図6を参照して説明する。図6は、処理特定用データベース34のデータ構造および具体例を示す図である。なお、図6の処理特定用データベース34は一例であり、処理特定用データベース34のデータ構造および具体例は図6の例に限定されない。
処理特定用データベース34は、述部音素列とアプリケーションを示す情報とを対応付けて記憶するデータベースである。図6に示すように、「特定音素列」のカラムには、補正音素列に含まれ得る述部音素列が格納されている。また、「アプリケーション」のカラムには、処理を実行するためのアプリケーションの名称が格納されている。つまり、処理実行部26は、補正音素列に含まれる述部音素列を含むレコードを特定することで、処理を実行するために用いるアプリケーションを特定することができる。
なお、「アプリケーション」のカラムに格納されている情報は、図3に示す述部辞書32aの各情報に対応付けられていてもよい。この場合、処理特定用データベース34は省略され、処理実行部26は、処理特定用データベース34に代えて、述部辞書32aを参照して、処理を実行するために用いるアプリケーションを特定する。
処理実行部26は特定したアプリケーションを記憶部13に記憶されているアプリケーション35から読み出す。そして、補正音素列に応じた処理を実行する。例えば、処理実行部26は、スケジュール帳のアプリケーションを起動して、補正音素列を漢字仮名混じりの文字列に変更する。そして、該文字列が示す日時に、該文字列が示す予定を登録する。例えば、翌日の予定として、「アベノハルカスに行く」を登録する。なお、音素列を漢字仮名混じりの文字列に変更する技術、および、漢字仮名混じりの文字列から日付を特定する技術は、既存の技術を用いることができる。
記憶部13は、音素列データ31、音素列辞書32、一致率ランキング33、処理特定用データベース34、およびアプリケーション35を少なくとも記憶している。なお、これらのデータについては既に説明しているため、ここでの説明を省略する。
次に、本実施形態に係るロボット1が実行する処理の流れについて、図7に基づいて説明する。図7は、ロボット1が実行する処理の流れの一例を示すフローチャートである。
まず、ロボット1の音声入力制御部21は、音声の波形データの取得を待機している状態である(S1)。音声入力部11が音声を受け付けることにより、音声入力制御部21が該波形データを取得すると(S1でYES)、音素列生成部22は、該波形データから音素列を生成し、記憶する(S2)。具体的には、該波形データから音素を生成し、記憶部13に記憶する処理を繰り返す。音素列生成部22は、音素を生成できなかった場合、文末検知部23に音声入力が終了したか否かを判定するよう指示する。
続いて、文末検知部23は、音素列生成部22からの指示に従って、音声の入力が終了したか否かを判定する(S3)。具体的には、文末検知部23は、音声入力制御部21から取得した波形データを参照し、音声の入力が終了したか否かを判定する。音声の入力が終了したと判定した場合(S3でYES)、最後の音素を文末と特定する(S4)とともに、音素列の特定指示を一致率特定部24に出力する。
一致率特定部24の述部特定部241は、文末検知部23からの指示に従って第1部分音素列と述部音素列との一致率(第1一致率)を特定する(S5、第1の特定ステップ)。具体的には、述部特定部241は、音素列データ31の分割パターンにおける後方音素列と述部音素列との組み合わせを一致率が高い順に並べた一致率ランキング33aを生成する。そして、述部特定部241は、一致率ランキング33aにおいて1位の組み合わせを、一致率特定部24の述部以外特定部242に出力する。続いて、述部以外特定部242は、第2部分音素列と単語音素列との一致率(第2一致率)を特定する(S6、第2の特定ステップ)。具体的には、述部特定部241から取得した述部音素列に、述部辞書32aにおいて対応付けられている音素列辞書32を用いて一致率を特定する。そして、一致率ランキング33を生成するとともに、前後統合一致率が最も高いレコードの組み合わせ(第1レコードと第2レコードとの組み合わせ)を特定する。述部以外特定部242は、第1レコードに含まれる一致率を第2一致率として更新し、該第1レコードに含まれる分割パターンを一時的に記憶しておく。述部以外特定部242は、ステップS6の処理を、第2部分音素列をそれ以上分割できなくなるまで繰り返す。一致率特定部24は、生成した一致率ランキング33、および、一時的に記憶した分割パターンを音素列特定部25に出力する。
続いて、音素列特定部25は、入力された音声の音素列を特定する(S7、音素列特定ステップ)。具体的には、音素列特定部25は、音素列データ31を、取得した一致率ランキング33および分割パターンに従って補正する。そして、補正した音素列データ31(補正音素列)を、処理実行部26に出力する。
最後に、処理実行部26は、特定した音素列に応じた処理を実行する(S8、処理実行ステップ)。具体的には、補正音素列に含まれる述部音素列から処理の実行に使用するアプリケーションを特定し、該アプリケーションを起動して処理を実行する。例えば、スケジュール帳アプリケーションを用いて、翌日の予定として「アベノハルカスに行く」を登録する。以上で、ロボット1が実行する処理は終了する。
〔実施形態2〕
本発明の他の実施形態について、図8に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
本発明の他の実施形態について、図8に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
図8は、本実施形態に係る処理実行システム100に含まれるロボット1aの要部構成の一例を示すブロック図である。本実施形態に係るロボット1aは、実施形態1に係るロボット1と異なり、制御部12に代えて制御部12aを備える。また新たに、外部の装置と情報の送受信を行う通信部14を備える。
制御部12aは、実施形態1にて説明した音素列生成部22を備えない。また、音声入力制御部21および文末検知部23に代えて、音声入力制御部21aおよび文末検知部23aを備える。
音声入力制御部21aは、通信部14を介して、波形データを音素列生成装置2に出力する。また、通信部14は、音素列生成装置2から受信した音素を音素列データ31として記憶部13に記憶していく処理を繰り返す。
文末検知部23aは、音素列生成装置2から受信した指示に従って、音声入力制御部21から波形データを取得する。そして、該波形データを参照し、音声の入力が終了したか否かを判定する。この判定については、実施形態1で既に説明しているため、ここでの説明を省略する。文末検知部23aは、判定結果を音素列生成装置2に送信する。
音素列生成装置2は、実施形態1にて説明した音素列生成部22の機能を実現する装置である。なお、図示してはいないが、音素列生成装置2はロボット1aと無線通信を行う機能を備えており、ロボット1aの通信部14と情報の送受信を行うことができる。例えば、音素列生成装置2は、ロボット1aから波形データを受信する。また、生成した音素や、文末検知部23aへの指示をロボット1aに送信する。
以上のように、本実施形態に係るロボット1aは、外部の装置である音素列生成装置2と通信可能に接続されており、音素列生成装置2が生成した音素を取得することで音素列データ31を記憶部13に記憶する。これにより、ロボット1aが実行する処理を減らすことができる。なお、処理実行システム100は、図8の例においてロボット1aが備える部材のうち、一致率特定部24、音素列特定部25、および処理実行部26を、ロボット1aと通信可能に接続された外部の装置の制御部が備える構成としてもよい。この例の場合、該外部の装置が本発明の一態様に係る処理実行装置となる。また、図8の例においてロボット1aが備える文末検知部23aおよび記憶部13についても、外部の装置が備える構成であってもよい。文末検知部23aおよび記憶部13については、上述した処理実行装置としての外部の装置(以降、処理実行装置と称する)が備える構成であってもよい。また、文末検知部23aおよび記憶部13については、処理実行装置とは別の外部の装置が備え、該別の外部の装置と処理実行装置とが通信可能に接続された構成であってもよい。すなわち、ロボット1aは、究極的には、音声入力部11、通信部14、および音声入力制御部21aのみを備える構成であってもよい。
〔実施形態3〕
本発明のさらに別の実施形態について、図9および図10に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
本発明のさらに別の実施形態について、図9および図10に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
図9は、本実施形態に係る処理実行システム200に含まれるロボット1bおよびサーバ3の要部構成の一例を示すブロック図である。ここでは、まずサーバ3について説明した後、ロボット1bについて説明する。
サーバ3は、ロボット1bから取得した波形データに基づいて処理を行う装置である。具体的には、サーバ3は、ロボット1bからの指示に応じて、自然言語処理を含む音声認識を行う。サーバ3は、サーバ通信部41、音素列生成部42、音声認識部43、および意図解析部44を備える。
サーバ通信部41は、ロボット1bと情報の送受信を行う。具体的には、サーバ通信部41は、ロボット1bから波形データを受信する。また、生成した音素や、文末検知部23aへの指示をロボット1bに送信する。
音素列生成部42は、実施例1にて説明した音素列生成部22と同様に波形データから入力音素列を生成する。具体的には、音素列生成部42は、該波形データから音素を特定し、サーバ通信部41を介して、該音素をロボット1bに送信する処理を繰り返す。これにより、ロボット1bは音素列データ31を取得することができる。また、音素列生成部42は、特定した音素を音声認識部43に出力する処理を繰り返す。これにより、音声認識部43は音素列を取得することができる。
音声認識部43は、取得した音素列を漢字仮名混じりの文字列に変換する。また、音声認識部43は、必要に応じて音素列または文字列の補正を行う。これにより、音声認識部43は例えば、「asitaabenotarukasuniikutoomoete」という音素列を、「明日アベノハルカスに行くと覚えて」と変換することができる。なお、文字列への変換には既存の技術を用いることができる。音声認識部43は、生成した文字列を意図解析部44へ出力する。
意図解析部44は、音声認識部43が生成した文字列から、利用者の意図を解析する。具体的には、意図解析部44は、取得した文字列に対して形態素解析を行い、文字列を分解して品詞を対応付ける。次に、意図解析部44は、形態素を分節に分け、述部と文末表現との組み合わせを示す分節情報を生成する。例えば、述部「覚え(動詞)」と文末表現「て(助詞)」との組み合わせを示す分節情報が生成される。
そして、意図解析部44は、生成した分節情報から文字列の意図を特定する。換言すれば、意図解析部44は、文字列の意図が「依頼」であるか否かを判定する。具体的には、サーバ3は「依頼」を示す文末表現のリスト(不図示)、および、述部の文字列とアプリケーションを示す情報とを対応付けたデータベース(不図示)を記憶している。意図解析部44は、特定した文末表現が、上記のリストに含まれているか否かを判定する。そして、リストに含まれていると判定した場合、意図解析部44は、上記のデータベースを参照して、述部の文字列が対応付けられたアプリケーションを示す情報を特定する。
例えば、分節情報が述部「覚え(動詞)」と文末表現「て(助詞)」との組み合わせである場合、まず文末表現「て(助詞)」が上記のリストに含まれていることが特定される。さらに、述部「覚えて」がスケジュール帳のアプリケーションを示す情報に対応付けられていることが特定される。そして、意図解析部44は、スケジュール帳のアプリケーションを起動する指示と、音声認識部43が生成した文字列とをロボット1bに送信する。ロボット1bの通信部14は、受信した指示と文字列とを、記憶部13に一時的に記憶する。
ロボット1bは、実施形態1にて説明したロボット1、および、実施形態2にて説明したロボット1aと異なり、制御部12または制御部12aに代えて制御部12bを備える。制御部12bは、音素列特定部25および処理実行部26に代えて、音素列特定部25bおよび処理実行部26bをそれぞれ備える。
音素列特定部25bは、統合一致率が最も高い、第1部分音素列および第2部分音素列の組み合わせを特定したとき、該統合一致率が所定の値以上であるか否かをさらに特定する。そして、該統合一致率が所定の値に満たない場合、記憶部13に一時的に記憶されている、サーバ3の意図解析部44が特定したアプリケーションの起動指示と、音声認識部43が生成した文字列とを処理実行部26bに出力する。なお、統合一致率が所定の値以上の場合の処理については、実施形態1にて既に説明しているため、ここでの説明を省略する。また、サーバ3での文字列およびアプリケーションの起動指示の生成に時間がかかっているなどの要因で、記憶部13に該文字列および該指示が記憶されていない場合、音素列特定部25bは、これらの情報が記憶部13に記憶されるまで待機する。
処理実行部26bは、音素列特定部25bからアプリケーションの起動指示および文字列を取得した場合、アプリケーション35のうち、該起動指示が示すアプリケーションを特定し、起動する。そして、取得した文字列に応じた処理を実行する。例えば、処理実行部26bは、スケジュール帳のアプリケーションを起動して、取得した文字列が示す日時に該文字列が示す予定を登録する。
次に、本実施形態に係る処理実行システム200が実行する処理の流れについて、図10に基づいて説明する。図10は、処理実行システム200が実行する処理の流れの一例を示すフローチャートである。なお、図10のステップS1~ステップS6は、実施形態1にて図7を参照して既に説明しているため、ここでの説明を省略する。
音素列特定部25bは統合一致率を算出する(S11)。具体的には、一致率ランキング33aにおける最も高い一致率(第1一致率)と、一致率ランキング33a以外の一致率ランキング33における最も高い一致率(第2一致率)とを合計し、統合一致率を算出する。そして、音素列特定部25bは、該統合一致率が所定の値以上であるか否かを判定する(S12)。統合一致率が所定の値以上であると判定した場合(S12でYES)、音素列特定部25bは、最尤述部音素列と最尤単語音素列とからなる音素列(すなわち、実施形態1にて説明した補正音素列)を処理実行部26に出力する。なお、最尤述部音素列は、一致率ランキング33aにおいて第1一致率に対応付けられた述部音素列である。また、最尤単語音素列は、一致率ランキング33a以外の一致率ランキング33において第2一致率に対応付けられた単語音素列である。
そして、処理実行部26は、最尤述部音素列と最尤単語音素列からなる音素列に応じた処理を実行する(S13)。なおステップS13の処理は、実施形態1で説明したステップS8の処理と実質的に同一である。
一方、統合一致率が所定の値以上でないと判定した場合(S12でNO)、音素列特定部25bは、サーバ3に起動するアプリケーションを特定するよう指示する。サーバ3は、該指示に従って、音声認識および意図解析を行う(S14)。そして、音声認識によって生成された文字列と、意図解析によって特定されたアプリケーションを起動する指示とを音素列特定部25bに送信する。音素列特定部25bは、受信した文字列および指示を処理実行部26bに出力する。
最後に、処理実行部26bは、音声認識および意図解析の結果に応じた処理を実行する(S15)。具体的には、取得した指示が示すアプリケーションを特定し、起動する。そして、取得した文字列に応じた処理を実行する。
以上のように、処理実行システム200は、統合一致率が所定の値に満たない場合、すなわち、ユーザの指示通りの処理が実行できない可能性が高い場合、サーバ3が行った音声認識および意図解析の結果を取得し、該結果に応じた処理を実行する。これにより、ユーザの指示に応じた処理を正しく実行することができる。
(実施形態3の変形例)
サーバ3(外部の装置)はさらに、ロボット1bの制御部12bに含まれている文末検知部23および一致率特定部24と同様の機能を備える文末検知部および一致率特定部(ともに不図示)を備える構成であってもよい。この構成の場合、サーバ3は、ロボット1bの記憶部13に記憶されている音素列辞書32および一致率ランキング33と同様のデータである音素列辞書および一致率ランキング(ともに不図示)を、サーバ3の記憶部(不図示)に記憶している。
サーバ3(外部の装置)はさらに、ロボット1bの制御部12bに含まれている文末検知部23および一致率特定部24と同様の機能を備える文末検知部および一致率特定部(ともに不図示)を備える構成であってもよい。この構成の場合、サーバ3は、ロボット1bの記憶部13に記憶されている音素列辞書32および一致率ランキング33と同様のデータである音素列辞書および一致率ランキング(ともに不図示)を、サーバ3の記憶部(不図示)に記憶している。
つまり、サーバ3は、ロボット1bと同様に、一致率ランキングを生成し、該一致率ランキングと分割パターンとをロボット1bに送信する。なお、一致率ランキングの生成処理については、実施形態1で説明した処理と同様であるため、ここでの説明を省略する。
ロボット1bの通信部14は、サーバ3から受信した一致率ランキングおよび分割パターンと、ロボット1bにおいて生成された一致率ランキング33および分割パターンとを区別して記憶部13に記憶する。
音素列特定部25bは、第1部分音素列および第2部分音素列の組み合わせにおける統合一致率が所定の値に満たない場合、記憶部13に記憶されている、サーバ3から受信した一致率ランキングおよび分割パターンを読み出す。そして、該一致率ランキングおよび分割パターンから、統合一致率が最も高い第1部分音素列および第2部分音素列の組み合わせ(外部組み合わせ)を特定する。そして、該統合一致率が所定の値以上であるか否かを特定する。
統合一致率が所定の値以上である場合、第1部分音素列を最尤述部音素列、第2部分音素列を最尤単語音素列と特定し、該最尤述部音素列および該最尤単語音素列によって補正された補正音素列を処理実行部26に出力する。
一方、統合一致率が所定の値に満たない場合、記憶部13に一時的に記憶されている、サーバ3の意図解析部44が特定したアプリケーションの起動指示と、音声認識部43が生成した文字列とを処理実行部26bに出力する。以降の処理は、実施形態3にて既に説明しているため、ここでの説明を省略する。
このように、本変形例に係るロボット1bは、一致率ランキング33に基づいて特定した第1部分音素列および第2部分音素列の組み合わせにおける統合一致率が所定の値に満たない場合、統合一致率が所定の値以上であるか否かを判定する。なお、該統合一致率は、サーバ3にて生成された一致率ランキングに基づいて特定した第1部分音素列および第2部分音素列の組み合わせ(外部組み合わせ)における統合一致率である。
音素列辞書は新たな単語の登録などによって随時更新されるが、ロボット1bが記憶している音素列辞書32が常に最新版であるとは限らない。音素列辞書32が最新版でない場合、適切な分割パターンが特定できず、ユーザの意図通りの処理が実行できない可能性がある。一方、この例のように、サーバ3において一致率ランキングを生成する構成の場合、サーバ3に記憶している音素列辞書は、サーバ3の管理者によって容易に更新することができる。そのため、サーバ3は、常に最新の音素列辞書を用いて、一致率ランキングを生成することができる。ロボット1bは、サーバ3で生成された一致率ランキングを用いることにより、より適切な第1部分音素列および第2部分音素列の組み合わせを特定することができる。よって、実行する処理をユーザの意図通りのものとすることができる可能性が高くなる。
なお、音素列特定部25bは、一致率ランキング33に基づいて特定した第1部分音素列および第2部分音素列の組み合わせと、外部組み合わせとのうち、統合一致率が高い方を用いて補正音素列を生成する構成であってもよい。
また、サーバ3は、音声認識および意図解析に代えて、一致率ランキングを生成する構成であってもよい。この場合、サーバ3の音声認識部43および意図解析部44は省略される。
また、サーバ3の一致率特定部は、ロボット1bの一致率特定部と異なる方法で一致率を算出する構成であってもよい。例えば、サーバ3の一致率特定部は、音素列生成部42によって生成された音素列の一部と、音素列辞書に記憶されている音素列とが所定文字数一致している場合に一致率を加算する方法を用いてもよい。
また、サーバ3の意図解析部44は、音声認識部43が生成した文字列から、起動するアプリケーションに実行させる処理を特定し、該処理の内容を示す情報を、アプリケーションを起動する指示とともにロボット1bに送信してもよい。例えば、音声認識部43が生成した文字列が「明日アベノハルカスに行くと覚えて」である場合、「明日の予定として『アベノハルカスに行く』を登録する」という処理を示す情報を、アプリケーションを起動する指示とともにロボット1bに送信してもよい。この場合のアプリケーションは例えば、スケジュール帳のアプリケーションである。また、「明日の予定として『アベノハルカスに行く』を登録する」という処理を示す情報は、「『アベノハルカスに行く』を明日の予定として登録するための指示」と表現することもできる。
〔変形例〕
上述した各実施形態では、述部以外特定部242は、述部特定部241が生成した一致率ランキング33aのうち、一致率が最も高いレコードの分割パターンにおける前方音素列のみについて一致率ランキング33を生成する構成であった。しかしながら、述部以外特定部242は、一致率ランキング33aに含まれるレコードの分割パターンそれぞれにおける前方音素列について、一致率ランキング33を生成する構成であってもよい。これにより、処理に係る時間は長くなるが、音素列の特定精度を上げることができる。
上述した各実施形態では、述部以外特定部242は、述部特定部241が生成した一致率ランキング33aのうち、一致率が最も高いレコードの分割パターンにおける前方音素列のみについて一致率ランキング33を生成する構成であった。しかしながら、述部以外特定部242は、一致率ランキング33aに含まれるレコードの分割パターンそれぞれにおける前方音素列について、一致率ランキング33を生成する構成であってもよい。これにより、処理に係る時間は長くなるが、音素列の特定精度を上げることができる。
また、述部以外特定部242は、上述した処理Cにおいて、第1レコードに含まれる分割パターンの後方音素列から生成された一致率ランキング33cを、上述した処理Aを行う対象の一致率ランキングとする構成であった。しかしながら、述部以外特定部242は、一致率ランキング33cのすべてを、上述した処理Aを行う対象の一致率ランキングとしてもよい。これにより、処理に係る時間は長くなるが、音素列の特定精度を上げることができる。
また、上述した各実施形態では、文末検知部23および文末検知部23aは、取得した波形データが、音素を生成することができない波形データであるか否かを判定して、文末を検知する構成であった。しかしながら、文末検知部23および文末検知部23aは、音素列生成部22が生成した音素列を参照して文末を検知する構成であってもよい。具体的には、音素列(音素列データ31)が所定の条件を満たす場合、文末検知部23は音声の入力が終了したと判定する。所定の条件の一例としては、「同一の音素が所定数連続した」などが挙げられるが、この例に限定されるものではない。なお、「同一の音素が所定数連続した」ことを検知して、音声の入力が終了したと判定した場合、文末検知部23は、該同一の音素の中の最初の音素を文末と特定する。具体的には、ユーザが「…と覚えて」という音声を入力したときに、語尾を伸ばすように発話したことによって、「…tooboeteeeeee」という音素列が生成されたとする。この場合、文末検知部23および文末検知部23aは6つの「e」のうち最初の「e」を文末と特定し、以降の「eeeee」を削除する。
また、文末検知部23および文末検知部23aは、上述した2つの文末検知方法を組み合わせてもよい。具体的には、波形データを参照して仮の文末を特定した後、生成された音素列データ31が所定の条件を満たしているか否かを判定し、文末を特定してもよい。これにより、音素列データ31から、指示に関係しない余計な音素を除くことができるので、指示の認識精度を向上させることができる。
また、述部特定部241は、第1部分音素列と述部音素列との一致率を算出するとき、2つの音素列の音素数の差が所定値以上である場合、一致率を最低値としてもよい。この例について、図11に基づいて説明する。図11は、音素数の差が所定値以上である場合、一致率を0とする例を説明する図である。図11の例の場合、「分割パターン」のカラムに含まれる後方音素列の音素数と、「比較対象の音素列」のカラムに含まれる述部音素列の音素数との差が5以上である場合は、編集距離から一致率を算出する処理を行わず、一致率を0としている。これにより、一致率を算出する音素列の組み合わせの数を減らすことができ、処理時間の短縮を図ることができる。
また、上述した各実施形態では、ユーザが発話する音声が日本語であったため、述部特定部241は、音素列データ31の後方音素列と述部音素列との一致率を算出していた。しかしながら、述部特定部241は、ユーザが発話する音声が、英語などの、述部が最初に発話される言語である場合、音素列データ31の前方音素列と述部音素列とを比較する構成であってもよい。
また、第2部分音素列に含まれる単語のカテゴリの順序が予め決められていてもよい。例えば、述部音素列が「oboete」である場合、第2部分音素列は、「時制」、「場所」、「助詞」、「動作」、「助詞」の順である(例えば「明日」、「アベノハルカス」、「に」、「行く」、「と」の順)と予め決められていてもよい。これにより、第2部分音素列の各部分と単語音素列との一致率を算出するときに、参照する辞書を1つに特定することができる。
また、本発明の一態様に係る処理実行装置の構成を、既存の音声認識の結果に基づいて処理を実行する装置に組み込んでもよい。なお、既存の音声認識は特に限定されない。例えば、該音声認識は、FST(Finite-State Transducer;有限状態トランスデューサ)を用いて生成された音響モデルおよび言語モデルを使用するものであってもよい。なお以降、生成された音響モデルおよび言語モデルを総称して「モデル」と称する。また、この例の場合、通常の処理の実行は、入力された音声を既存の音声認識の結果に基づいて行う。そして、既存の音声認識において、モデルの修正(例えば、新たな単語の学習など)を行っている期間については、本発明の一態様に係る処理実行装置の構成を用いて、音素列に基づいて処理を実行してもよい。
上述したモデルの修正には、通常、2週間から1か月程度を要する。一方、本発明の一態様に係る処理実行装置において、上述したモデルの修正と同様の結果を得るためには、音素列辞書32に該当する単語に相当する音素列を追加するだけでよく、短時間で終了する。よって、上記装置は、既存の音声認識のモデルの修正中であっても、あたかも修正後のモデルを使用して音声認識を行っているように動作することが可能となる。なお、上記モデルがFSTを用いて生成されている場合、上記モデルの生成に用いたデータ(例えば、単語のデータ)を使用して音素列辞書32の生成を行なうことができる。
また、処理に時間がかかると予測される場合は、述部以外特定部242の処理を、並列コンピューティング技術を用いて並列化することで、処理の高速化を図ってもよい。処理に時間がかかると予測される場合とは、例えば、第2部分音素列の比較対象となる単語音素列の数が多い場合や、第2部分音素列に含まれると考えられる単語の数が多い場合などである。
また、処理実行部26がアプリケーションを起動して、補正音素列を漢字仮名混じりの文字列に変更したとき、該アプリケーションが、特定の文字列でないと処理を実行できないアプリケーションである可能性がある。例えば、スケジュール帳のアプリケーションにおいて、「明日」という文字列の場合、翌日の日付を示す文字列として特定することができるが、「次の日」という文字列の場合、翌日の日付を示す文字列として特定できない場合が考えられる。
そこで、上述した各実施形態に係るロボット1は、音素列辞書32に格納されている音素列のうち、アプリケーションが処理を実行できない文字列を示す音素列には、アプリケーションが処理を実行可能な文字列を示す別の音素列が対応付けられていてもよい。例えば、図3の(b)に示す時制辞書32bにおいて、「tuginohi」という音素列に「asita」という音素列が対応付けられていてもよい。
述部特定部241および述部以外特定部242は、一致率ランキング33を生成するとき、別の音素列が対応付けられている音素列を、特定音素列として特定した場合、該特定音素列を、上記別の音素列に置き換える。例えば、特定音素列として「tuginohi」が特定された場合、該特定音素列を、時制辞書32bにおいて「tuginohi」に対応付けられている「asita」に置き換える。これにより、処理実行部26が補正音素列を漢字仮名混じりの文字列に変更したとき、「明日」という文字列が生成されることとなるので、処理実行部26はユーザの意図通りに、翌日の日付に予定を登録することができる。なお、実施形態3の変形例で説明した、サーバ3にて一致率ランキングを生成する構成に、この変形例を適用してもよい。
〔ソフトウェアによる実現例〕
ロボット1、1a、1bの制御ブロック(特に制御部12、12a、12b)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよい。また、上記制御ブロックは、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
ロボット1、1a、1bの制御ブロック(特に制御部12、12a、12b)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよい。また、上記制御ブロックは、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、ロボット1、1a、1bは、CPU、ROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、RAM(Random Access Memory)などを備えている。CPUは、各機能を実現するソフトウェアであるプログラムの命令を実行する。ROMまたは記憶装置には、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されている。RAMは上記プログラムを展開する。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
〔まとめ〕
本発明の態様1に係る処理実行装置(ロボット1)は、入力された音声が示す指示に応じた処理を実行する処理実行装置であって、上記音声から生成された入力音素列の一部である第1部分音素列と、上記音声の述部候補となる複数の音素列である述部音素列のいずれかとの一致率である第1一致率を特定する第1の特定部(述部特定部241)と、上記入力音素列における、上記第1部分音素列以外の残部である第2部分音素列と、上記第1一致率が特定された述部音素列に応じた、上記音声の単語候補となる複数の音素列である単語音素列のいずれかとの一致率である第2一致率を特定する第2の特定部(述部以外特定部242)と、上記第1一致率と上記第2一致率とを統合した統合一致率が最も高い、上記第1部分音素列および上記第2部分音素列の組み合わせを特定して、上記入力音素列に含まれる上記述部音素列として最も確からしい最尤述部音素列と、上記入力音素列に含まれる上記単語音素列として最も確からしい最尤単語音素列とを特定する音素列特定部(音素列特定部25)と、上記最尤述部音素列および上記最尤単語音素列に応じた処理を実行する処理実行部(処理実行部26)と、を備える。
本発明の態様1に係る処理実行装置(ロボット1)は、入力された音声が示す指示に応じた処理を実行する処理実行装置であって、上記音声から生成された入力音素列の一部である第1部分音素列と、上記音声の述部候補となる複数の音素列である述部音素列のいずれかとの一致率である第1一致率を特定する第1の特定部(述部特定部241)と、上記入力音素列における、上記第1部分音素列以外の残部である第2部分音素列と、上記第1一致率が特定された述部音素列に応じた、上記音声の単語候補となる複数の音素列である単語音素列のいずれかとの一致率である第2一致率を特定する第2の特定部(述部以外特定部242)と、上記第1一致率と上記第2一致率とを統合した統合一致率が最も高い、上記第1部分音素列および上記第2部分音素列の組み合わせを特定して、上記入力音素列に含まれる上記述部音素列として最も確からしい最尤述部音素列と、上記入力音素列に含まれる上記単語音素列として最も確からしい最尤単語音素列とを特定する音素列特定部(音素列特定部25)と、上記最尤述部音素列および上記最尤単語音素列に応じた処理を実行する処理実行部(処理実行部26)と、を備える。
上記の構成によれば、第1部分音素列と述部音素列との第1一致率を特定し、その後に第1一致率が特定された述部音素列に応じた単語音素列と第2部分音素列との第2一致率を特定する。これにより、第2部分音素列と比較する単語音素列を絞り込むことができる。実行する処理が限定される場合(すなわち、特定の処理を実行する場合)、ユーザが発話した音声に含まれる単語のカテゴリはある程度限定される。このため、第1一致率が特定された述部音素列によって第2部分音素列と比較する単語音素列を絞り込むことにより、処理の実行に関係ない単語音素列と第2部分音素列との比較が行われなくなるので、ユーザが発話した音声に合致した単語音素列が最尤単語音素列となる可能性が高くなる。よって、実行する処理をユーザの意図通りのものとすることができる。
また、第2部分音素列と比較する単語音素列を絞り込むので、第2一致率を特定する処理に係る時間を短縮したり、処理実行装置の負担を軽くしたりすることができる。これにより、計算能力の低い装置であっても、該装置内での計算のみで、入力された音声に応じた処理の実行を実現することができる。
また、入力された音声から生成された入力音素列と、述部音素列および単語音素列との比較によって実行する処理を特定するので、既存の音声認識装置のように、音響モデルと言語モデルとを最適なものとするための準備(いわゆる、「学習」やこれらモデルの「修正」)を行う必要が無いため、該学習や修正にかかる時間、コストを削減することができる。
本発明の態様2に係る処理実行装置は、上記態様1において、上記第2の特定部は、上記第1一致率が最も高い第1部分音素列の残部である上記第2部分音素列について、上記第2一致率を特定してもよい。
上記の構成によれば、第1一致率が最も高い第1部分音素列を第2部分音素列とし、該第2部分音素列のみの第2一致率を特定する。これにより、第2一致率の特定にかかる時間をさらに短縮することができる。
本発明の態様3に係る処理実行装置は、上記態様1または2において、上記第2の特定部は、上記第2部分音素列の一部について、上記第2一致率を特定するものであるとともに、上記第2部分音素列のうち、上記第2一致率が特定されていない部分を2つに分割した前方音素列および後方音素列のそれぞれについて、上記単語音素列のいずれかとの一致率を特定して、上記前方音素列の一致率と上記後方音素列の一致率とを統合した前後統合一致率が最も高い、上記前方音素列および上記後方音素列の組み合わせを特定し、上記前後統合一致率が最も高い組み合わせの上記前方音素列の一致率を上記第2一致率として更新するとともに、上記前後統合一致率が最も高い組み合わせの上記後方音素列を上記第2一致率が特定されていない部分として更新してもよい。
上記の構成によれば、第2部分音素列の第2一致率が特定されていない部分の前方音素列と単語音素列との一致率と後方音素列と単語音素列との一致率とを算出して、2つの一致率を統合した前後統合一致率が最も高い前方音素列の一致率を第2一致率として特定し、後方音素列を第2一致率が特定されていない部分とする処理を繰り返す。つまり、第2一致率が特定された部分については、以降の第2一致率の特定には関与しない。これにより、第2部分音素列におけるすべての第2一致率の特定に係る時間を短縮することができる。
本発明の態様4に係る処理実行装置は、上記態様1から3のいずれかにおいて、上記第1の特定部は、上記第1部分音素列と上記述部音素列との音素数の差が所定値以上である場合、上記第1一致率を最低値とし、上記第2の特定部は、上記第2部分音素列と上記単語音素列との音素数の差が所定値以上である場合、上記第2一致率を最低値としてもよい。
上記の構成によれば、第1部分音素列および述部音素列、並びに、第2部分音素列および単語音素列の音素数の差が所定値以上である場合は、比較を行わずとも一致率が最低値に決まるので、処理時間を短縮することができる。
本発明の態様5に係る処理実行装置は、上記態様1から4のいずれかにおいて、上記処理実行部は、上記最尤述部音素列に応じて、処理の実行に用いるアプリケーションを特定してもよい。
上記の構成によれば、処理の実行に用いるアプリケーションは、最尤述部音素列に応じて決まる。つまり、既存の音声認識を行う装置のように、ユーザが発話した音声の意図を特定するなどの煩雑な処理を必要とせず、処理の実行に用いるアプリケーションを特定することができる。
本発明の態様6に係る処理実行装置は、上記態様1から5のいずれかにおいて、上記音素列特定部は、上記統合一致率が最も高く、かつ、該統合一致率が所定値以上の組み合わせを特定し、上記処理実行部は、上記統合一致率が所定値以上の組み合わせが無い場合、上記音声に対する自然言語処理を含む音声認識を行った結果を用いて特定した処理を実行してもよい。
上記の構成によれば、統合一致率が所定値以上の組み合わせが無い場合、自然言語処理を含む音声認識を行った結果を用いて実行する処理を特定する。これにより、ユーザの意図通りの最尤述部音素列および最尤単語音素列が特定されなかった場合でも、ユーザの意図通りの処理を実行することができる。
本発明の態様7に係る処理実行装置は、上記態様1から6のいずれかにおいて、上記音素列特定部は、外部の装置(サーバ3)によって特定された上記第1一致率、および、外部の装置によって特定された上記第2一致率を統合した上記統合一致率が最も高い、上記第1部分音素列および上記第2部分音素列の組み合わせである外部組み合わせをさらに特定し、上記外部組み合わせが、上記統合一致率が最も高い組み合わせである場合、上記外部組み合わせに基づいて、上記最尤述部音素列と上記最尤単語音素列とを特定してもよい。
上記の構成によれば、外部の装置によって特定された第1一致率および第2一致率を統合した統合一致率が最も高い組み合わせである外部組み合わせが、統合一致率が最も高い組み合わせである場合、該外部組み合わせに基づいて最尤述部音素列と最尤単語音素列とを特定する。これにより、ユーザの意図通りの処理が実行できる可能性が高くなる。
本発明の態様8に係る処理実行装置は、上記態様1から7のいずれかにおいて、上記第1の特定部は、上記入力音素列の最後の音素を含む上記第1部分音素列について、上記第1一致率を特定してもよい。
上記の構成によれば、入力音素列の最後の音素を含む第1部分音素列の第1一致率を特定する。音声が日本語などの言語の音声である場合、述部は音声の最後に来る場合が多い。このため、第1部分音素列を入力音素列の最後の音素を含む部分とすることで、入力音素列において述部に相当する可能性が高い部分を述部音素列と比較することができる。
本発明の態様9に係る処理実行装置は、上記態様1から8のいずれかにおいて、複数の上記述部音素列を、上記単語音素列のカテゴリを示すカテゴリ情報に対応付けて格納する述部音素列辞書(述部辞書32a)と、上記カテゴリごとに上記単語音素列を格納する複数の単語音素列辞書(時制辞書32b、場所辞書32c、動作辞書32d)とを記憶する記憶部(記憶部13)をさらに備え、上記第2の特定部は、上記第1一致率が特定された述部音素列に、上記述部音素列辞書にて対応付けられているカテゴリ情報を特定し、該カテゴリ情報が示す単語音素列辞書に格納されている上記単語音素列と上記第2部分音素列との上記第2一致率を特定してもよい。
上記の構成によれば、第1一致率が特定された述部音素列に対応付けられているカテゴリ情報を特定し、該カテゴリ情報が示す単語音素列辞書に格納されている単語音素列と第2部分音素列との第2一致率を比較する。これにより、第1一致率が特定された述部音素列に応じた単語音素列と第2部分音素列とを比較することができる。また、述部音素列および単語音素列は辞書データとして格納されているので、音素列を追加する場合は、適切な述部音素列辞書または単語音素列辞書に新しい音素列を追加するだけでよい。よって、新たな音素列の追加(いわゆる新たな言葉の学習)を簡単に行うことができる。
本発明の態様10に係る処理実行装置は、上記態様1から9のいずれかにおいて、上記第1の特定部は、編集距離を用いて上記第1一致率を算出し、上記第2の特定部は、編集距離を用いて上記第2一致率を算出してもよい。
上記の構成によれば、編集距離を用いて第1一致率および第2一致率を算出するので、最尤述部音素列および最尤単語音素列を正しく特定することができる。
本発明の態様11に係る処理実行装置の制御方法は、入力された音声が示す指示に応じた処理を実行する処理実行装置の制御方法であって、上記音声から生成された入力音素列の一部である第1部分音素列と、上記音声の述部候補となる複数の音素列である述部音素列のいずれかとの一致率である第1一致率を特定する第1の特定ステップ(ステップS5)と、上記入力音素列における、上記第1部分音素列以外の残部である第2部分音素列と、上記第1一致率が特定された述部音素列に応じた、上記音声の単語候補となる複数の音素列である単語音素列のいずれかとの一致率である第2一致率を特定する第2の特定ステップ(ステップS6)と、上記第1一致率と上記第2一致率とを統合した統合一致率が最も高い、上記第1部分音素列および上記第2部分音素列の組み合わせを特定して、上記入力音素列に含まれる上記述部音素列として最も確からしい最尤述部音素列と、上記入力音素列に含まれる上記単語音素列として最も確からしい最尤単語音素列とを特定する音素列特定ステップ(ステップS7)と、上記最尤述部音素列および上記最尤単語音素列に応じた処理を実行する処理実行ステップ(ステップS8)と、を含む。本態様に係る処理実行装置の制御方法は、態様1に係る処理実行装置と同様の作用効果を奏する。
本発明の各態様に係る処理実行装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記処理実行装置が備える各部(ソフトウェア要素)として動作させることにより上記処理実行装置をコンピュータにて実現させる処理実行装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
1 ロボット(処理実行装置)
13 記憶部
25 音素列特定部
26 処理実行部
32a 述部辞書(述部音素列辞書)
32b 時制辞書(単語音素列辞書)
32c 場所辞書(単語音素列辞書)
32d 動作辞書(単語音素列辞書)
241 述部特定部(第1の特定部)
242 述部以外特定部(第2の特定部)
S5 第1の特定ステップ
S6 第2の特定ステップ
S7 音素列特定ステップ
S8 処理実行ステップ
13 記憶部
25 音素列特定部
26 処理実行部
32a 述部辞書(述部音素列辞書)
32b 時制辞書(単語音素列辞書)
32c 場所辞書(単語音素列辞書)
32d 動作辞書(単語音素列辞書)
241 述部特定部(第1の特定部)
242 述部以外特定部(第2の特定部)
S5 第1の特定ステップ
S6 第2の特定ステップ
S7 音素列特定ステップ
S8 処理実行ステップ
Claims (12)
- 入力された音声が示す指示に応じた処理を実行する処理実行装置であって、
上記音声から生成された入力音素列の一部である第1部分音素列と、上記音声の述部候補となる複数の音素列である述部音素列のいずれかとの一致率である第1一致率を特定する第1の特定部と、
上記入力音素列における、上記第1部分音素列以外の残部である第2部分音素列と、上記第1一致率が特定された述部音素列に応じた、上記音声の単語候補となる複数の音素列である単語音素列のいずれかとの一致率である第2一致率を特定する第2の特定部と、
上記第1一致率と上記第2一致率とを統合した統合一致率が最も高い、上記第1部分音素列および上記第2部分音素列の組み合わせを特定して、上記入力音素列に含まれる上記述部音素列として最も確からしい最尤述部音素列と、上記入力音素列に含まれる上記単語音素列として最も確からしい最尤単語音素列とを特定する音素列特定部と、
上記最尤述部音素列および上記最尤単語音素列に応じた処理を実行する処理実行部と、を備える処理実行装置。 - 上記第2の特定部は、上記第1一致率が最も高い第1部分音素列の残部である上記第2部分音素列について、上記第2一致率を特定することを特徴とする請求項1に記載の処理実行装置。
- 上記第2の特定部は、上記第2部分音素列の一部について、上記第2一致率を特定するものであるとともに、
上記第2部分音素列のうち、上記第2一致率が特定されていない部分を2つに分割した前方音素列および後方音素列のそれぞれについて、上記単語音素列のいずれかとの一致率を特定して、上記前方音素列の一致率と上記後方音素列の一致率とを統合した前後統合一致率が最も高い、上記前方音素列および上記後方音素列の組み合わせを特定し、
上記前後統合一致率が最も高い組み合わせの上記前方音素列の一致率を上記第2一致率として更新するとともに、上記前後統合一致率が最も高い組み合わせの上記後方音素列を上記第2一致率が特定されていない部分として更新することを特徴とする請求項1または2に記載の処理実行装置。 - 上記第1の特定部は、上記第1部分音素列と上記述部音素列との音素数の差が所定値以上である場合、上記第1一致率を最低値とし、
上記第2の特定部は、上記第2部分音素列と上記単語音素列との音素数の差が所定値以上である場合、上記第2一致率を最低値とすることを特徴とする請求項1から3のいずれか1項に記載の処理実行装置。 - 上記処理実行部は、上記最尤述部音素列に応じて、処理の実行に用いるアプリケーションを特定することを特徴とする請求項1から4のいずれか1項に記載の処理実行装置。
- 上記音素列特定部は、上記統合一致率が最も高く、かつ、該統合一致率が所定値以上の組み合わせを特定し、
上記処理実行部は、上記統合一致率が所定値以上の組み合わせが無い場合、上記音声に対する自然言語処理を含む音声認識を行った結果を用いて特定した処理を実行することを特徴とする請求項1から5のいずれか1項に記載の処理実行装置。 - 上記音素列特定部は、
外部の装置によって特定された上記第1一致率、および、外部の装置によって特定された上記第2一致率を統合した上記統合一致率が最も高い、上記第1部分音素列および上記第2部分音素列の組み合わせである外部組み合わせをさらに特定し、
上記外部組み合わせが、上記統合一致率が最も高い組み合わせである場合、上記外部組み合わせに基づいて、上記最尤述部音素列と上記最尤単語音素列とを特定することを特徴とする請求項1から6のいずれか1項に記載の処理実行装置。 - 上記第1の特定部は、上記入力音素列の最後の音素を含む上記第1部分音素列について、上記第1一致率を特定することを特徴とする請求項1から7のいずれか1項に記載の処理実行装置。
- 複数の上記述部音素列を、上記単語音素列のカテゴリを示すカテゴリ情報に対応付けて格納する述部音素列辞書と、上記カテゴリごとに上記単語音素列を格納する複数の単語音素列辞書とを記憶する記憶部をさらに備え、
上記第2の特定部は、上記第1一致率が特定された述部音素列に、上記述部音素列辞書にて対応付けられているカテゴリ情報を特定し、該カテゴリ情報が示す単語音素列辞書に格納されている上記単語音素列と上記第2部分音素列との上記第2一致率を特定することを特徴とする請求項1から8のいずれか1項に記載の処理実行装置。 - 上記第1の特定部は、編集距離を用いて上記第1一致率を算出し、
上記第2の特定部は、編集距離を用いて上記第2一致率を算出することを特徴とする請求項1から9のいずれか1項に記載の処理実行装置。 - 入力された音声が示す指示に応じた処理を実行する処理実行装置の制御方法であって、
上記音声から生成された入力音素列の一部である第1部分音素列と、上記音声の述部候補となる複数の音素列である述部音素列のいずれかとの一致率である第1一致率を特定する第1の特定ステップと、
上記入力音素列における、上記第1部分音素列以外の残部である第2部分音素列と、上記第1一致率が特定された述部音素列に応じた、上記音声の単語候補となる複数の音素列である単語音素列のいずれかとの一致率である第2一致率を特定する第2の特定ステップと、
上記第1一致率と上記第2一致率とを統合した統合一致率が最も高い、上記第1部分音素列および上記第2部分音素列の組み合わせを特定して、上記入力音素列に含まれる上記述部音素列として最も確からしい最尤述部音素列と、上記入力音素列に含まれる上記単語音素列として最も確からしい最尤単語音素列とを特定する音素列特定ステップと、
上記最尤述部音素列および上記最尤単語音素列に応じた処理を実行する処理実行ステップと、を含む処理実行装置の制御方法。 - 請求項1に記載の処理実行装置としてコンピュータを機能させるための制御プログラムであって、上記第1の特定部、上記第2の特定部、上記音素列特定部、および上記処理実行部としてコンピュータを機能させるための制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018505367A JP6664466B2 (ja) | 2016-03-14 | 2017-02-17 | 処理実行装置、処理実行装置の制御方法、および制御プログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016050284 | 2016-03-14 | ||
JP2016-050284 | 2016-03-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017159207A1 true WO2017159207A1 (ja) | 2017-09-21 |
Family
ID=59852070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/005855 WO2017159207A1 (ja) | 2016-03-14 | 2017-02-17 | 処理実行装置、処理実行装置の制御方法、および制御プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6664466B2 (ja) |
WO (1) | WO2017159207A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019191903A (ja) * | 2018-04-25 | 2019-10-31 | 株式会社サテライトオフィス | ボットシステム、ボットシステムのプログラム |
JPWO2020250279A1 (ja) * | 2019-06-10 | 2020-12-17 | ||
JP7497384B2 (ja) | 2022-03-29 | 2024-06-10 | 株式会社日立製作所 | テキスト化支援装置及びテキスト化支援方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004334228A (ja) * | 2004-06-07 | 2004-11-25 | Denso Corp | 単語列認識装置 |
JP2016024378A (ja) * | 2014-07-22 | 2016-02-08 | Necパーソナルコンピュータ株式会社 | 情報処理装置、その制御方法及びプログラム |
-
2017
- 2017-02-17 JP JP2018505367A patent/JP6664466B2/ja not_active Expired - Fee Related
- 2017-02-17 WO PCT/JP2017/005855 patent/WO2017159207A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004334228A (ja) * | 2004-06-07 | 2004-11-25 | Denso Corp | 単語列認識装置 |
JP2016024378A (ja) * | 2014-07-22 | 2016-02-08 | Necパーソナルコンピュータ株式会社 | 情報処理装置、その制御方法及びプログラム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019191903A (ja) * | 2018-04-25 | 2019-10-31 | 株式会社サテライトオフィス | ボットシステム、ボットシステムのプログラム |
JP7128463B2 (ja) | 2018-04-25 | 2022-08-31 | 株式会社サテライトオフィス | ボットシステム、ボットシステムのプログラム |
JPWO2020250279A1 (ja) * | 2019-06-10 | 2020-12-17 | ||
WO2020250279A1 (ja) * | 2019-06-10 | 2020-12-17 | 日本電信電話株式会社 | モデル学習装置、方法及びプログラム |
JP7218803B2 (ja) | 2019-06-10 | 2023-02-07 | 日本電信電話株式会社 | モデル学習装置、方法及びプログラム |
JP7497384B2 (ja) | 2022-03-29 | 2024-06-10 | 株式会社日立製作所 | テキスト化支援装置及びテキスト化支援方法 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2017159207A1 (ja) | 2018-10-11 |
JP6664466B2 (ja) | 2020-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11615785B2 (en) | Speech recognition using natural language understanding related knowledge via deep feedforward neural networks | |
JP6743300B2 (ja) | ニューラルネットワークを用いてハイブリッド音声認識結果をランク付けするためのシステム及び方法 | |
JP6493866B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US9558741B2 (en) | Systems and methods for speech recognition | |
US8170866B2 (en) | System and method for increasing accuracy of searches based on communication network | |
US8738375B2 (en) | System and method for optimizing speech recognition and natural language parameters with user feedback | |
KR102191425B1 (ko) | 인터랙티브 캐릭터 기반 외국어 학습 장치 및 방법 | |
JP2022531414A (ja) | 数字列のエンドツーエンド自動音声認識 | |
US11790891B2 (en) | Wake word selection assistance architectures and methods | |
JP6726354B2 (ja) | 訂正済みタームを使用する音響モデルトレーニング | |
JP2015206906A (ja) | 音声検索方法、音声検索装置、並びに、音声検索装置用のプログラム | |
CN107451119A (zh) | 基于语音交互的语义识别方法及装置、存储介质、计算机设备 | |
JP7400112B2 (ja) | 自動音声認識のための英数字列のバイアス付加 | |
US11468892B2 (en) | Electronic apparatus and method for controlling electronic apparatus | |
KR20220158573A (ko) | 페르소나 챗봇 제어 방법 및 시스템 | |
WO2017159207A1 (ja) | 処理実行装置、処理実行装置の制御方法、および制御プログラム | |
JP5326549B2 (ja) | 音声認識装置及び方法 | |
KR20120052591A (ko) | 연속어 음성인식 시스템에서 오류수정 장치 및 방법 | |
JP2020197592A (ja) | テキスト補正装置およびテキスト補正方法 | |
US12062370B2 (en) | Electronic device and method for controlling the electronic device thereof | |
JP2007026347A (ja) | テキストマイニング装置、テキストマイニング方法およびテキストマイニングプログラム | |
JP2021089300A (ja) | 多言語音声認識およびテーマ−意義素解析方法および装置 | |
CN115116442B (zh) | 语音交互方法和电子设备 | |
EP4428854A1 (en) | Method for providing voice synthesis service and system therefor | |
JP2018066788A (ja) | 音素列処理装置、音素列処理装置の制御方法、制御プログラム、処理実行装置、処理実行装置の制御方法、制御プログラム、および処理実行システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2018505367 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17766214 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17766214 Country of ref document: EP Kind code of ref document: A1 |