WO2014125736A1 - 音声認識装置、および音声認識方法、並びにプログラム - Google Patents
音声認識装置、および音声認識方法、並びにプログラム Download PDFInfo
- Publication number
- WO2014125736A1 WO2014125736A1 PCT/JP2013/084202 JP2013084202W WO2014125736A1 WO 2014125736 A1 WO2014125736 A1 WO 2014125736A1 JP 2013084202 W JP2013084202 W JP 2013084202W WO 2014125736 A1 WO2014125736 A1 WO 2014125736A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- section
- sound source
- unit
- speech recognition
- speech
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 746
- 238000000605 extraction Methods 0.000 claims abstract description 533
- 238000012545 processing Methods 0.000 claims abstract description 505
- 238000001514 detection method Methods 0.000 claims abstract description 176
- 230000036961 partial effect Effects 0.000 claims abstract description 30
- 230000008569 process Effects 0.000 claims description 596
- 230000003139 buffering effect Effects 0.000 claims description 57
- 230000000873 masking effect Effects 0.000 claims description 22
- 238000004458 analytical method Methods 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims description 10
- 238000010191 image analysis Methods 0.000 claims description 5
- 238000002156 mixing Methods 0.000 claims description 3
- 230000005236 sound signal Effects 0.000 abstract description 12
- 230000007704 transition Effects 0.000 description 189
- 206010019133 Hangover Diseases 0.000 description 48
- 238000006243 chemical reaction Methods 0.000 description 46
- 239000000872 buffer Substances 0.000 description 31
- 230000008859 change Effects 0.000 description 25
- 238000001228 spectrum Methods 0.000 description 19
- 239000013598 vector Substances 0.000 description 19
- 230000001965 increasing effect Effects 0.000 description 17
- 230000002452 interceptive effect Effects 0.000 description 17
- 230000002829 reductive effect Effects 0.000 description 16
- 239000011159 matrix material Substances 0.000 description 14
- 230000004048 modification Effects 0.000 description 13
- 238000012986 modification Methods 0.000 description 13
- 238000010606 normalization Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 10
- 230000010354 integration Effects 0.000 description 10
- 238000007796 conventional method Methods 0.000 description 8
- 238000012217 deletion Methods 0.000 description 8
- 230000037430 deletion Effects 0.000 description 8
- 238000010923 batch production Methods 0.000 description 7
- 230000007423 decrease Effects 0.000 description 7
- 238000000926 separation method Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 239000006185 dispersion Substances 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000026676 system process Effects 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000008033 biological extinction Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012880 independent component analysis Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000002834 transmittance Methods 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000007562 laser obscuration time method Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000011410 subtraction method Methods 0.000 description 1
- 230000009466 transformation Effects 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/04—Segmentation; Word boundary detection
-
- 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/28—Constructional details of speech recognition systems
-
- 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
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0272—Voice signal separating
Definitions
- the present disclosure relates to a voice recognition device, a voice recognition method, and a program. More specifically, the present invention relates to a voice recognition device, a voice recognition method, and a program that execute voice segment detection and sound source extraction, and perform voice recognition based on these processing results.
- the voice recognition process is performed, for example, as a process of analyzing the content of a person's utterance from the sound acquired by a microphone.
- Voice recognition can be used in various devices.
- a speech recognition unit is provided in an information processing device such as a portable terminal or a television, and a speech (user utterance) uttered by a user with respect to these devices is analyzed to utter an information processing device such as a portable terminal or television It is possible to execute processing based on the above.
- the acquired sound of the microphone includes not only a user's utterance voice (referred to as a target sound) to be a voice recognition target but also various noises (referred to as noise, environmental sound, interference sound, etc.).
- a target sound that is, a specific user utterance from a mixed signal including noise from various sound sources
- speech recognition accuracy decreases in a noisy environment. This problem becomes even more difficult because the greater the distance from the microphone to the user's mouth, the more likely the disturbing sound will be mixed.
- A a voice section detection process that defines a section to be subjected to voice recognition processing
- B a sound source separation process for extracting only a target sound from a sound signal in which various sounds generated from a plurality of sound sources are mixed, or a sound source extraction process
- Patent Document 1 Japanese Patent Laid-Open No. 2012-15023
- Patent Document 2 Japanese Patent No. 4182444
- the sound source separation process and the sound source extraction process are described in Patent Document 3 (Japanese Patent Laid-Open No. 2011-107602).
- Patent Document 4 Japanese Patent Laid-Open No. 2001-242883
- Patent Document 5 Japanese Patent Laid-Open No. 2006-053203
- Patent Document 6 Japanese Patent Laid-Open No. 2011-033680
- JP 2012-150237 A Japanese Patent No. 4182444 JP 2011-107602 A JP 2001-242883 A JP 2006-053203 A JP 2011-033680 A
- the purpose of this case is to provide a speech recognition device, a speech recognition method, and a program that realize high-accuracy analysis of a target sound that is a speech recognition target.
- a speech recognition device that performs high-accuracy analysis of a target sound by executing speech segment detection and sound source extraction and performing speech recognition processing using these processing results, And a speech recognition method and program.
- the first aspect of the present disclosure is: A tracking unit that detects a sound source direction and a voice section and executes a sound source extraction process; A speech recognition unit that inputs a sound source extraction result from the tracking unit and executes speech recognition processing; The tracking unit generates a creating section management unit that performs generation management of a voice section of a sound source unit, Each created section management section generated is While performing sequential detection of the sound source direction and executing a voice segment creation process for sequentially updating the voice segment estimated by connecting the detection results in the time direction, Generates an extraction filter for sound source extraction after a lapse of a predetermined time from the beginning of the speech section, and sequentially generates partial sound source extraction results of the speech section by applying the generated extraction filter to the input speech signal sequentially.
- the tracking unit The process of outputting the partial sound source extraction results generated by the creating section management unit sequentially to the speech recognition unit,
- the voice recognition unit The speech recognition apparatus outputs a speech recognition result by sequentially executing speech recognition processing on partial sound source extraction results input from the tracking unit.
- the tracking unit collectively couples a plurality of sound source direction information detected according to a plurality of different methods in each of the creating section management units. Execute voice segment creation processing.
- the tracking unit detects that the user's cue detected from the input image from the image input unit means the start or end of a speech section.
- the terminal finalization process is executed immediately.
- the section-in-creation management unit of the tracking unit is prior to the beginning of the speech section in generating an extraction filter that preferentially extracts the sound of the specific sound source from the observation signal.
- the extraction filter is generated using the input observation signals from the time point to the filter generation time point.
- the creating section management unit of the tracking unit generates a result of applying an extraction filter that preferentially extracts the sound of the specific sound source from the observation signal, and By estimating the total blind spot spatial filter that attenuates the sound of all sound sources contained in the observation signal used in the estimation of the extraction filter, and subtracting the result of applying the total blind spot spatial filter from the application result of the extraction filter.
- a sound source extraction result is generated by performing removal of interfering sounds not included in the observation signal.
- the creating section management unit of the tracking unit observes the higher the degree of mixing of the sound other than the target sound with respect to the target sound in the observation signal corresponding to the creating section,
- the target sound source extraction is performed by changing the mask for reducing the transmittance of the sound for each frequency and time, and executing the time-frequency masking process for sequentially applying the mask to the observation signal.
- the speech recognition device further includes an extraction result buffering unit that temporarily stores a sound source extraction result generated by the tracking unit, and the extraction result buffering unit.
- a ranking unit that determines the priority of outputting a plurality of sound source extraction results corresponding to each sound source stored in the voice recognition unit, the ranking unit based on an explicit cue of the user, A process for setting the priority of the sound source extraction result corresponding to the speech section whose end is determined to be high is performed.
- the tracking unit may include a “registered attribute” for identifying a speech section set based on an explicit cue of a speaker obtained based on image analysis.
- the ranking unit executes a process of setting a higher priority for the voice section in which the registered attribute is set.
- the ranking unit sets an output priority to the speech recognition unit as follows: (Criteria 1) A voice section having a registered attribute is prioritized, and when there are a plurality of voice sections having a registered attribute, the one with the oldest start is given priority. (Criteria 2) For voice segments that do not have a registered attribute, priority is given to voice segments whose end points have already been determined, and when there are multiple intervals whose end points have already been determined, priority is given to the oldest end point. . (Criteria 3) For voice segments whose end points are not yet determined, the one with the oldest start point is prioritized. Priorities are determined by applying the above criteria.
- the speech recognition unit includes a plurality of decoders that execute speech recognition processing, and the sound source extraction result generated by the tracking unit according to the availability of the decoders. An output request is made, a sound source extraction result is input according to the priority, and speech recognition is performed with priority on a sound source extraction result having a high priority.
- the tracking unit generates a feature amount suitable for a format used for speech recognition in the speech recognition unit in each of the creating section management units, The generated feature amount is output to the voice recognition unit.
- the feature amount is a Mel-Frequency Cepstrum Coefficients.
- the speech recognition device further includes a sound input unit having a microphone array, an image input unit having a camera, and an input sound from the sound input unit.
- a sound source direction estimating unit for estimating a sound source direction; and an image processing unit for analyzing a sound source direction based on an analysis of an input image from the image input unit, wherein the tracking unit is generated by the sound source direction estimating unit.
- the image processing unit detects a movement of a lip region of a speaker based on an analysis of an input image from the image input unit;
- a hand image processing unit for detecting movement of the hand region of the speaker;
- the tracking unit is referred to as “registered attribute” in order to identify a speech section set based on an explicit cue of a speaker input from the image processing unit. Merge that integrates other speech segments into a speech segment with a registered attribute when an attribute is set and a speech segment with the registered attribute is merged with a speech segment without a registered attribute Perform processing.
- the tracking unit automatically generates direction information and outputs a speech section of a speech section in which the registered attribute is set when sound source direction information is not input. Execute extension processing.
- the speech recognition unit includes a plurality of recognition tasks that are pairs of a dictionary and a language model configured from recognition target vocabularies, and a user is selected from a plurality of different tasks.
- This is a configuration for executing a semantic estimation process which is a process for searching for a task most suitable for an utterance.
- the speech recognition device further moves a pointer on the display unit in synchronization with the movement of the hand of the speaker obtained by analyzing an image of the speaker. , The start or end of the utterance interval is determined according to the movement of the pointer.
- the second aspect of the present disclosure is: A speech recognition method executed in a speech recognition device,
- the voice recognition device A tracking unit that detects a sound source direction and a voice section and executes a sound source extraction process;
- a speech recognition unit that inputs a sound source extraction result from the tracking unit and executes speech recognition processing;
- the tracking unit is Create a creating section management unit that performs sound generation unit management of sound source units, Each created section management section generated is While performing sequential detection of the sound source direction and connecting the detection results in the time direction to execute the voice segment creation process for sequentially updating the voice segment, Generate an extraction filter for sound source extraction after a lapse of a predetermined time from the beginning of the speech section, sequentially generate a partial sound source extraction result of the speech section by applying the generated extraction filter to the input speech signal sequentially,
- the tracking unit is A process of sequentially outputting the partial sound source extraction results generated by the creating section management unit to the speech recognition unit,
- the voice recognition unit In the speech recognition method, a speech recognition process is sequentially performed on
- the third aspect of the present disclosure is: A program for executing voice recognition processing in a voice recognition device,
- the voice recognition device A tracking unit that detects a sound source direction and a voice section and executes a sound source extraction process;
- a speech recognition unit that inputs a sound source extraction result from the tracking unit and executes speech recognition processing;
- the program is The tracking unit generates a creating section management unit that performs generation management of a sound section in units of sound sources, In each created section management section created, While performing sequential detection of the sound source direction and connecting the detection results in the time direction to execute the voice segment creation process for sequentially updating the voice segment, Generate an extraction filter for sound source extraction after a lapse of a predetermined time from the beginning of the speech section, sequentially apply the generated extraction filter to the input speech signal to sequentially generate a partial sound source extraction result of the speech section,
- the program of the present disclosure is a program that can be provided by, for example, a storage medium or a communication medium provided in a computer-readable format to an image processing apparatus or a computer system that can execute various program codes.
- a program in a computer-readable format, processing corresponding to the program is realized on the information processing apparatus or the computer system.
- system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.
- an apparatus and a method for quickly extracting a target sound from a sound signal in which a plurality of sounds are mixed are realized. Specifically, it has a tracking unit that detects a sound source direction and a voice section and executes a sound source extraction process, and a voice recognition unit that inputs a sound source extraction result and executes a voice recognition process.
- the tracking section performs the generation management of the sound section for each sound source, each of the creating section management sections sequentially detects the sound source direction, sequentially updates the sound section connecting the detection results in the time direction, and from the beginning of the sound section A sound source extraction filter is generated after a predetermined time has elapsed, and the generation filter is sequentially applied to the input signal to sequentially generate sound source extraction results.
- the speech recognition unit sequentially executes speech recognition processing on partial sound source extraction results and outputs speech recognition results.
- MVBF dispersion minimum beam former
- FIG. 1 It is a figure which shows the example of a setting of the audio
- A_b indicates that the subscript b is added to A.
- a ⁇ b indicates that the superscript b is added to A.
- conj (X) represents a conjugate complex number of the complex number X.
- the conjugate complex number of X is represented by adding an overline to X.
- an operation that does not hold an equal sign on both sides is represented by “ ⁇ ”.
- “Sound (signal)” and “voice (signal)” are used separately. “Sound” is used to mean “sound” and “audio”, including human speech and non-speech sounds, and “speech” is a term that expresses human voice such as “voice” and “speech”.
- voice section detection means not only the voice of a person but also detection of a section in which a sound other than a person's voice is sounding.
- the “voice recognition system” represents a system configured by combining voice recognition in a narrow sense with voice section detection and sound source extraction. “Applying filter” and “performing filtering” have the same meaning. Similarly, “apply a mask” and “perform masking” have the same meaning.
- Modification 1 Configuration example using semantic estimation instead of speech recognition 5-2.
- Modification 2 Regarding a configuration example using a hand pointer as a voice detection method 6. Summary of configuration and processing characteristics and effects of the speech recognition apparatus of the present disclosure Summary of Configuration of Present Disclosure Hereinafter, description will be given according to the above items.
- the speech recognition apparatus executes, for example, speech section detection processing and sound source extraction processing (sound source separation processing), and realizes highly accurate speech recognition by applying these processing results. Furthermore, the delay from the end of the user utterance to the output of the recognition result can be shortened.
- One of the features of the speech recognition apparatus is that, in speech section detection, a tracking process that follows a sound estimated to be a sound from one sound source as time elapses, and a component corresponding to the sound source from the observation signal Is executed as an integrated process with the sound source extraction process for extracting the sound source.
- a filter for sound source extraction is estimated when a certain time has elapsed from the start of utterance, and then the sound source extraction result is sequentially generated by applying the estimation filter to the input signal until the end of the utterance is detected.
- the speech recognition process can be sequentially performed before the end of the utterance, and the recognition result can be generated almost simultaneously with the end of the utterance. That is, the delay can be greatly reduced as compared with the conventional method in which the sound source extraction and the voice recognition processing are performed after the end of the utterance.
- the speech recognition apparatus is assumed to be used in the following environment. That is, the Hands-free speech recognition apparatus (c) enables highly accurate and low-delay speech recognition even in the cases (a), (b), (d), and (e). is there.
- A An environment where there is a distance from the user (speaker) to the microphone (Far-field microphone).
- B A noisy environment. In other words, in addition to the user's utterance (hereinafter “target sound”), there are other sounds (hereinafter “jamming sound”).
- target sound in addition to the user's utterance
- jamming sound there are other sounds.
- C An environment (Hands-free) in which a user (speaker) does not use a switch (button) for inputting a speech start time to the speech recognition apparatus.
- the speech recognition apparatus realizes high-accuracy and quick speech recognition even in, for example, the environments shown in (a) to (e) above.
- the speech recognition apparatus according to the present disclosure can recognize a user's utterance with high accuracy in various environments, and further reduce the waiting time from the end of the utterance to the generation of a recognition result corresponding to the utterance.
- the target sound that is the target of speech recognition is limited to a human utterance sound, that is, speech, whereas the disturbing sound that is not subject to speech recognition is any kind of sound.
- the signal input through the microphone is close to silence or has characteristics that are clearly different from human speech, it can be easily determined that the target sound does not exist at that timing, The reverse is not true.
- the signal input through the microphone has a voice-like feature, it may be a disturbing sound. This is another factor that increases the difficulty of the problem.
- (B) A noisy environment.
- target sound in addition to the user's utterance (hereinafter “target sound”), there are other sounds (hereinafter “jamming sound”).
- speech section detection In hands-free speech recognition systems, it is necessary to automatically detect utterance sections.
- the automatic detection process of the utterance section is called “speech section detection” or “Voice Activity Detection (VAD)”.
- Speech segment detection is a very important technology whose performance directly affects the usability of speech recognition systems. For example, if the user's utterance is missed, his / her utterance appears to be ignored by the user. In addition, if a sound other than the target sound is erroneously detected, the system malfunctions. Furthermore, even if the detected section is longer or shorter than the actual utterance, it causes misrecognition.
- D An environment where the position of the user (speaker) is indefinite. That is, the user can speak from various directions with respect to the microphone.
- the direction is a direction of arrival (DOA) of sound as viewed from the microphone.
- DOA direction of arrival
- the problem can be simplified. For example, if the user speaks only from the front of the microphone, it can be sufficiently dealt with by using a super-directional microphone to cut sounds other than the front.
- the above-described voice segment detection and sound source extraction need to correspond to various directions, and thus processing becomes difficult.
- the vertical axis represents the direction of the utterance (sound source direction), and the horizontal axis represents the time.
- the height of each section is different because each utterance simply comes from a different direction ( Each sound source is in a different direction), and the height difference does not represent the actual direction difference. The same applies to the subsequent drawings.
- the vertical axis represents the utterance direction (sound source direction), and the horizontal axis represents time.
- the utterance section 21 of the user 1 and the utterance section 22 of the user 2 shown in FIG. 2 are temporally overlapping utterances, and the utterances themselves are the same as the two utterances described with reference to FIG. .
- the interfering sound section 23 is an interfering sound generating section that is not a human utterance, and in this example, it is assumed that the sound is sounding from a fixed place.
- a sound source for example, a radio or an air conditioner can be considered.
- each of the environments (a) to (e) described above is an environment that makes speech recognition difficult.
- the following processing is performed: Voice segment detection processing, Sound source extraction processing, It is effective to perform these processes as a pre-process of the voice recognition process, or to perform these processes with higher accuracy.
- FIG. 3 shows an example of a device configuration in which the voice section detection process and the sound source extraction process are performed before the voice recognition process.
- a microphone array 31 and, if necessary, a camera 32 are provided as input devices.
- the microphone array has a configuration in which a plurality of microphones are arranged at predetermined intervals.
- the acquired sound of each microphone has a time lag depending on the sound source direction. That is, each microphone acquires a sound signal having a phase difference corresponding to the sound source direction. By analyzing this phase difference signal, the direction of the sound source can be specified.
- An input signal from an input device including the microphone array 31 and the camera 32 is first input to the voice section detection unit 33.
- the voice segment detection unit 33 performs voice segment detection.
- this voice section detection the start point (start end) and end point (end point) of each of a plurality of sound sources are detected, and the sound source direction is further obtained. For example, as described above with reference to FIG. 1, when utterance sections by a plurality of users are overlapped, not the entire utterance section 13 but the utterance section 11 of the user 1 and the utterance section 12 of the user 2. Find the section as the voice section of each sound source,
- Japanese Patent Application Laid-Open No. 2011-191423 uses a camera-acquired image to analyze an image of a person's mouth area, that is, a lip image, and specify an utterance section, thereby determining the utterance section of each sound source (each user).
- the structure which raises voice recognition accuracy by specifying each individually is disclosed.
- Both the method using the sound source direction estimation and the method using the lip image together can acquire the sound source direction when the utterance period is detected.
- the method using the lip image can acquire the sound source direction from the position of the lip of the person in the image. That is, if the positional relationship between the camera and the microphone array is known, the lip position in the captured image can be specified as the sound source direction.
- the voice section and sound source direction information of each utterance which is detection information of the voice section detection unit 33, are input to the sound source extraction unit 34 together with the acquired sound of the microphone array 31 that is an input device.
- the sound source extraction unit 34 performs sound source extraction. That is, only the target voice that is the target of the voice recognition process is left, and the other sounds are regarded as interference sounds and removed.
- voice section detection a technique for detecting a section of a sound source, not limited to a human voice and not only a target sound / interfering sound, will be referred to as voice section detection.
- Each of the sound source extraction processing methods described in these is the following information, that is, An observation signal corresponding to the utterance interval (a continuous observation signal cut out from the start to the end of the utterance), Sound source direction information of the target sound, Using these pieces of information, a filter for extracting a target sound (removing other sounds) is calculated by a predetermined learning process. By applying the calculated filter to the acquired sound of the microphone, only the target sound can be extracted.
- the learning process for calculating the filter disclosed in the above document is executed as a batch process (a process performed on a signal divided into a certain length).
- a sound source extraction result that is a clean target sound can be obtained.
- the clean target sound (sound) from which the interference sound has been removed by applying the filter is input to the speech recognition unit 35 shown in FIG. 3, and speech recognition processing is performed.
- the sound source extraction process for extracting the target sound that is the target of speech recognition is executed as a batch process. That is, this is a sequence in which the sound source extraction process is started for the first time when the end of the utterance is determined, the extraction result is generated, and then the speech recognition process is started using the extraction result. When processing is performed in such a sequence, a delay occurs between the end of the utterance and the generation of the speech recognition result.
- FIG. 4 shows the time elapsed from left to right, and shows the processing performed along the time elapsed.
- the speech utterance section that is the target of speech recognition is the utterance section 41 from time t0 to t1.
- FIG. 4 shows a processing sequence in the case where the sound source extraction processing is started when the end of the utterance is determined, the extraction result is generated, and the speech recognition processing is performed using the extraction result. ing.
- the end of the utterance section 41 cannot be determined simultaneously with the end of the user's utterance. In order to determine the end point, it is necessary to distinguish from the short silence during the utterance, which requires a certain amount of time. For example, if it is regarded as a continuous utterance if there is no sound within 0.3 seconds, a waiting time of 0.3 seconds is required to determine the end of the utterance.
- the waiting time is represented by the end determination process 42 at times t1 to t2, which is a part of the voice section detection process.
- sound source extraction processing 43 is performed from time t2 to t3.
- the process is executed as a batch process using the utterance section 41, the longer the utterance, the longer the processing time.
- the speech recognition processing 44 for the sound source extraction result is executed at times t3 to t4.
- the speech recognition processing 44 also takes longer processing time as the utterance section 41 is longer.
- some processing using the recognition result that is, the subsequent processing 45 shown in FIG. 4 is performed.
- the subsequent processing 45 For example, when “change channel to 1” is recognized as a user utterance on a television equipped with a voice recognition device, channel change based on the recognition result is executed as a subsequent process 45.
- the latter processing 45 is started after the voice recognition processing 44 is completed, that is, after time t4, and the result is obtained at time t5. Accordingly, a time corresponding to the time t1 to the time t5 is a delay until the system result is returned.
- voice section detection and voice recognition it is possible to perform sequential processing on input signals.
- sequential processing of voice segment detection and voice recognition is described in, for example, Japanese Patent Application Laid-Open No. 2012-150237 and Japanese Patent Application Laid-Open No. 2001-242883.
- voice segment detection is started almost simultaneously with the start of speech (time t0 in FIG. 4), and voice segment detection is sequentially performed.
- Recognition can also be performed sequentially.
- the processing section 46 is a processing section in which the voice section detection process 46a and the voice recognition process 46b are executed alternately and sequentially. In this processing section 46, processing is performed each time a certain amount of signal is input.
- the reason why there is a gap between the voice recognition process 46b and the next voice segment detection process 46a is that these processing times are shorter than the actual time of speech. That is, when the processing time for each utterance is shorter than the utterance time, it is necessary to wait until a certain amount of input signals accumulate, and the gap shown in the figure indicates this waiting time.
- Sound source extraction methods are classified as follows.
- a method that does not adapt or learn to the observed signal (a1) Delay-and-sum array (A2) blind beamformer (null beamformer) (A3) Time-frequency masking (time-frequency masking)
- C A method of adapting and learning to an observation signal and using a target sound section (c1) Geometrically Constrained Source Separation (GSS) (C2) Reference signal based sound source extraction
- a system that does not adapt to or observe observation signals includes the following processes.
- A1) Processing applying a delay-and-sum array (a2) Processing applying a blind beamformer (a3) Processing applying time-frequency masking
- A2) Processing applying a delay-and-sum array (a2) Processing applying a blind beamformer (a3) Processing applying time-frequency masking
- batch processing is not essential, and sequential sound source extraction can be performed.
- the processing using the delay sum array requires a large number of microphones in order to extract the sound in the specified direction with high accuracy.
- the number of microphones is small (for example, about four)
- the processing result still includes interference sound, and the accuracy of voice recognition is still lowered.
- Processing using temporal frequency masking masks the frequency where the disturbing sound is more dominant than the target sound (lowers the signal transmission), and changes the mask sequentially to extract the target sound (emphasis). It is processing to do.
- this method has a trade-off between the degree of extraction and the distortion of the sound of the extraction result. That is, if time-frequency masking is applied strongly in order to eliminate the interference sound, the sound may be distorted and the accuracy of speech recognition may be lowered.
- (B) A method of performing adaptation or learning to an observation signal, but using a section other than the target sound section. Specific examples of this method include the following processes.
- (B1) A method using a minimum variance beamformer (MVBF)
- (b2) A method using a maximum SNR beamformer (SNR beamformer)
- the estimation of the extraction filter is performed as a batch process using the observation signal, but the observation signal used in the batch process is not in the utterance section of the target sound but in the other part. is there.
- the sound source extraction filter is already determined at the start of the target sound utterance, and the filter can be applied to the observation signal during the utterance. Therefore, after the start of the target sound, the sound source can be extracted sequentially.
- This system (b) corresponds to a group of systems called adaptive beamformers.
- the phenomenon will be described in each method.
- the minimum variance beamformer uses the observation signal and the target sound direction to form a filter that forms a blind spot for the direction of the disturbing sound but does not enhance or attenuate the direction of the target sound.
- This is an estimation (learning) method.
- the MVBF when the target sound is included in the observation signal used for learning, there is a problem that the extraction accuracy may be lowered in an attempt to form a blind spot in the direction of the target sound.
- a technique has been devised in which a section in which only the disturbing sound is heard is detected, and a filter is learned using the observation signal in that section.
- the filter generation to which the minimum dispersion beamformer (MVBF) is applied will be described with reference to FIG.
- the horizontal axis indicates time, and the vertical axis indicates direction.
- the acquired sound of the section 56 is obtained by using the minimum variance beamformer (MVBF). Use. This is because the section 57 includes the user's utterance sections 1 and 51, and a blind spot may also be formed in the user utterance.
- the section 23 of the disturbing sound (noise) in order to present the "Hello" previous speech segment 21 of the user 1 interference sound by filter creation of applying this prior section may be removed. Further, if the negligible delay, to perform a filter product in the interval 26 where the presence of speech to the "Hello” in a speech section 22 of the user 2 after the completion of "goodbye” speech period 21 of the user 1 Thus, it is possible to create a filter that removes both “goodbye” of the utterance section 22 of the user 2 and the disturbing sound.
- a filter is obtained that maximizes the power after application for the section 55 and minimizes the power after application for the section 56 (maximization of the SN ratio).
- the filter calculated in this way to the acquired sound in the section 57, the interference sound is reduced from the acquired sound, and the utterance sound of the user's utterance section 51, which is the target sound, is extracted.
- a section in which all the disturbing sounds (all sound sources except one of the target sounds) are sounding and a section in which only the target sound is sounding are required.
- the filter cannot be estimated properly in a situation where such a section does not exist.
- the interfering sound section 23 exists without interruption, and therefore there is no section where only one of the target sounds is singing alone. In such a case, it is difficult to generate an appropriate filter.
- the method (c) includes independent component analysis (ICA) in addition to the above-described GSS and “method using the time envelope of the target sound as a reference signal”.
- the extraction filter can be estimated from the utterance section itself. For example, a filter for extracting a "Hello" speech period 21 of the user 1 in FIG. 2 can be estimated from the observed signal of the section 27. Since this is the section 27 they include a part of the "Good-bye” and disturbing sound of the speech segment 22 of Neyuza 2, high-precision filters to eliminate otherwise leaving "Hello” can be generated.
- ICA independent component analysis
- the extraction filter may be estimated and applied for each utterance.
- the estimation of the filter is a batch process using the entire utterance section, the processes after the sound source extraction cannot be sequentially performed. As a result, as described above with reference to FIG. 4, there is a problem in that a delay corresponding to voice recognition occurs in addition to sound source extraction.
- the first point is that the sound source cannot always be detected. This is particularly noticeable in disturbing sounds.
- a method in which adaptation or learning to an observation signal is performed but a section other than the target sound is used in the sound source extraction method described above, that is, (b1) a minimum variance beamformer (MVBF).
- MVBF minimum variance beamformer
- B2 The sound source extraction method to which the S / N ratio maximizing beamformer is applied is premised on that the section of the interference sound can be accurately detected. However, because of this problem, the filter is estimated appropriately. However, the extraction accuracy may be reduced as a result.
- the target sound source can be limited to humans, so it is easy to associate with the images of the human body parts such as the face, lips, and hands, whereas such limitation is generally difficult for interference sounds. It is.
- the second point is a problem that occurs when using multiple speech interval detection methods.
- a method based on sound source direction estimation for example, described in Japanese Patent Application Laid-Open No. 2012-150237) and a method using a lip image (for example, described in Japanese Patent Application Laid-Open No. 10-51889) are used as methods for detecting a voice section.
- sound source direction estimation for example, described in Japanese Patent Application Laid-Open No. 2012-15023
- a method using a lip image for example, described in Japanese Patent Application Laid-Open No. 10-51889
- each method operates independently, both utterance sections are detected for one utterance. This is called multiple detection. If the subsequent processing is performed for both sections, even if they are correctly recognized, a phenomenon may occur in which the system reacts twice to one utterance.
- FIG. 6 is an example in which three types of voice segment detection methods are used in combination.
- the horizontal axis is the time axis, and the vertical axis indicates the direction.
- the three voice segment detection methods are, for example, the following methods. * Method based on sound source direction estimation, * Method using lip image, * A method using hand shape detection (for example, described in JP2012-203439A), These are the three methods.
- [* Method using detection of hand shape] is a method in which the user who is the speaker changes the shape of the hand during the utterance period (for example, the hand shape is set to goo during utterance).
- the utterance sections 61 to 63 shown in FIG. 6 are sections detected by the above three methods for one utterance. For each method, the beginning, end, and direction of the section are close to each other, but are different from each other. Further, the end determination time (corresponding to the end determination process 42 in FIG. 4) is also different for each method. In the detection method of the utterance section (1) 61, the period from the end of the utterance to the time t3 corresponds to the end determination time.
- the period from the end of the utterance to the time t4 ends. Corresponds to the determination time.
- the method using the hand shape can ignore the end determination time, and the utterance section (2) 62 in FIG. 6 is a section detected by the method. Accordingly, the timings at which the end points of the speech sections 61 to 63 are determined are times t3, t1, and t4, respectively.
- a margin is set for each of the time and the direction, and when the end time and the direction of the section are within the ranges for a certain section, the sections that satisfy the margin are grouped together. For example, in FIG. 6, since the end of the utterance sections (2) and 62 is determined first, the direction margin 68 centering on the direction of the utterance sections (2) and 62 and the end of the utterance sections (2) and 62 are set as the start ends. A time merge 66 is set. In this figure, since the remaining sections, utterance sections (1), 61 and utterance sections (3), 63, are within both margins, these three sections are merged into one.
- the method of merging the results of a plurality of section detection methods later in this way increases the delay compared to the case of using a single section detection method. This is because it takes time to determine whether or not the sections are merged, and the time needs to be longer than the longest end determination time.
- the end of the three utterance sections (1) to (3) are all determined at time t4. That is, it is necessary to determine whether or not to merge after this time t4.
- the time from the determination of the first end to the determination of merge is called the merge determination time. Times t1 to t5 shown in FIG.
- the merge determination time In order to completely prevent multiple detection by merging utterance sections, at least a time obtained by combining the time margin and the longest end determination time is required as the merge determination time. In other words, since the merge determination time depends on the longer end determination time, the method characterized by a short end determination time loses its advantages.
- the third issue is a combination with sequential sound source extraction.
- sound source extraction can be sequentially performed regardless of batch processing.
- a speech recognition decoder (hereinafter referred to as a decoder) will be described before describing speech recognition delay and the like.
- a process for obtaining a phoneme series or a word series corresponding to an input feature quantity series is called decoding, and a module for performing the process is called a decoder.
- decoding a process for obtaining a phoneme series or a word series corresponding to an input feature quantity series
- decoder a module for performing the process.
- one decoder can process only one input sequence, if there is only one decoder, if multiple sections overlap in time, the other decoding will not be performed until one decoding is completed. The phenomenon of waiting will occur. This is called a decoding queue.
- Decoding process queue will be described with reference to FIGS. 7 and 8.
- FIG. In both cases, the horizontal axis shows time, the vertical axis shows the direction, the section of the sound source is the same as in FIG. 2, and two users speak in an environment where the disturbing sound is sounding for a long time so that they overlap in time It is.
- FIG. 7 illustrates the timing at which sound source extraction processing and decoding processing (speech recognition processing) are performed in the case of combining the sound source extraction method of batch processing (not sequential processing) and speech recognition, which is a conventional method. It is.
- the three voice sections 71 to 73 are the same as the voice sections 21 to 23 shown in FIG. For these three sections, sound source extraction is performed by batch processing, and each result is decoded. Note that the section 73 is a disturbing sound and originally does not need to be decoded. However, except for cases where it is possible to properly determine whether the sound is an interference sound based on images, prior knowledge, etc., basically all the detected sections are decoded, and if the score or reliability is low, the method is considered to be an interference sound. I have to take it.
- the sound source extraction process starts first when the end of the utterance section 71 of the user 1 is determined (t1).
- a processing period 74 indicates a sound source extraction process.
- the decoding process starts.
- a processing period 75 indicates a decoding process.
- the timing of the end of the utterance section 72 of the user 2 is almost the same as the timing of the end of the utterance section 71 of the user 1 although it is slightly late. Then, as shown in the processing period 76, the sound source extraction processing of the utterance section 72 can be started immediately when the end of the utterance section 72 of the user 2 is determined (t2). However, at the timing (t3) when the sound source extraction process of the utterance section 72 of the user 2 is completed, there is a high possibility that the decoding process (processing period 75) of the utterance section 71 of the user 1 is continuing. In such a case, the timing at which the decoding of the utterance section 72 of the user 2 can be started is the time when the decoding of the utterance section 71 of the user 1 is completed, that is, the time t4.
- decoding queue As decoding queues occur, the delay of speech recognition systems will increase.
- Decoding if the decoding of the utterance section 72 of the user 2 (processing period 77) is completed before the end of the disturbing sound section 73 is determined, the sound source extraction of the disturbing sound is performed. Decoding (processing period 79) can be started without waiting after the processing (processing period 78) ends.
- voice sections 80 to 82 are the same voice sections as the three voice sections 21 to 23 shown in FIG. 2, and represent overlapping utterances and disturbing sounds.
- Voice segment detection, sound source extraction, and speech recognition (decoding) can all be performed sequentially. If there is one segment, these three processes are started almost simultaneously with the beginning of the segment, and almost simultaneously with the end. Suppose you can.
- the processing period 83 indicates that voice segment detection / sound source extraction / speech recognition (decoding) is sequentially performed on the segment 82 of the disturbing sound. If limited to this section, the speech recognition process is completed almost simultaneously with the termination. However, since the section 82 is a disturbing sound, it is a desirable behavior that the section 82 is rejected by the score or the reliability as a result of the speech recognition (no subsequent processing is performed).
- the decoding can be started as shown in the processing period 85.
- the recognition result is generated at the timing of time t7.
- the voice section detection and the sound source extraction can be performed in advance, but the decoding can be started as shown in the processing period 87 at time t7.
- the recognition result is generated at time t8.
- the recognition result is generated earlier than the processing for the interference sound section 73 shown in FIG. 7 for the interference sound section 82, but this is a section to be rejected. There is no advantage seen.
- the decoding of the disturbing sound section 82 moves before the remaining sections, the start of decoding of the speech section 80 of the user 1 and the speech section 81 of the user 2 is performed in the section 82 of the disturbing sound. Wait until the end of decoding. As a result, it seems to the user that the delay has increased compared to the example shown in FIG.
- a decoding process for the utterance section 80 of the user 1 is shown as a processing period 88
- a decoding process for the utterance section 81 of the user 2 is shown as a processing period 89. If a plurality of decoders are used in this way, the queue of decoders does not occur. Therefore, the recognition result is generated almost simultaneously with the determination of the end point in any of the three sections.
- N decoders can always be prepared just because N sections overlap in time.
- the number is limited (for example, two), and it may be considered that more sections than the number may occur simultaneously. That is, it is assumed that the number of decoders is larger than one but smaller than the number of sections.
- each of speech section detection, sound source extraction, and speech recognition has a new point different from the conventional processing.
- the most important point is the part that enables almost sequential processing while keeping the extraction accuracy high in the sound source extraction. Therefore, new points in sound source extraction will be described first, and then new points will be described for speech segment detection and speech recognition.
- an observation signal in the time-frequency domain is generated.
- a frame number (or time) is represented by a variable t and a frequency bin number (or frequency) is represented by a variable ⁇ , and an observation signal in the time frequency domain acquired by the k-th microphone is represented by Xk ( ⁇ , t).
- the observation signal is acquired at each of a plurality of microphones arranged at a predetermined position. That is, the observation signal has the same number of input channels as the microphone.
- a column vector composed of observation signals for all channels (all microphones) is expressed as X ( ⁇ , t) in the following equation [1.1]. This X ( ⁇ , t) is called an observation signal vector.
- the filter that extracts the target sound to be processed for speech recognition from the observation signal is the row vector W ( ⁇ ) represented by the above equation [1.3]. Applying a filter (filtering) is to multiply the observed signal vector by a filter, as shown in Equation [1.2].
- the target signal can be extracted (emphasized) from the observed signal vector X ( ⁇ , t), and other signals can be removed (attenuated).
- a filter is called an extraction filter
- the filter application result Y ( ⁇ , t) at that time is called a (sound source) extraction result.
- This filter application result Y ( ⁇ , t) is a signal that contains many components of the target sound that is the target of speech recognition and has reduced interfering sounds.
- the process of obtaining an appropriate extraction filter W ( ⁇ ) is called extraction filter estimation, and in particular, the case where such an estimation process is performed using an observation signal is called learning.
- the filter estimation processing is, for example, filter estimation using the above-mentioned GSS (Geometric Source Separation), delay sum array, various beam formers, etc., or Japanese Patent Application No. 2012-234150 (Japanese Patent Application No. 2012-234150) which is a prior patent application of the present applicant. -052548).
- the filter application form (formula [1.2]) is common, but the formula for estimating (learning) the filter is different.
- the extraction filter In order to extract the target sound from the observation signal with high accuracy, it is desirable to estimate (learn) the extraction filter by executing batch processing using the entire utterance interval. However, if batch processing is performed after the end of the utterance is detected, it causes a delay as described above. Therefore, the extraction filter is estimated when a certain time has elapsed since the start of the utterance. From that point until the end of the utterance, the extraction filter is fixed and only the application to the observed signal (formula [1.2]) is performed. Since the application of the filter itself can be processed sequentially, this device also enables sequential processing of sound source extraction while performing batch processing.
- the sequential processing of sound source extraction will be described with reference to FIG. In FIG. 9 as well, the horizontal axis indicates time and the vertical axis indicates the direction, as in the previous drawings.
- the target sound 91 is a voice recognition target.
- the starting point (starting end) is time t2.
- the estimation of the extraction filter is started from a time (t3) when a certain time has elapsed from the beginning of the target sound. That is the “extraction filter estimation 95” shown in the figure.
- the extraction filter estimation process based on the observation signal can be executed by, for example, a conventionally known method.
- the extraction filter can be estimated by a method described in Japanese Patent Application Laid-Open No. 2011-191423. It is.
- the filter obtained during the estimation filter period 95 is applied to the observation signal in the utterance section to generate a sound source extraction result.
- This process is roughly divided into two stages. In the first stage of processing, a filter is applied to the observation signal from the utterance start point (t2) of the target sound 91 to the estimation start point (t3) of the extraction filter. “Application of extraction filter (1), 96” shown in FIG. 9 represents this processing.
- This “application of extraction filter (1), 96” is completed at time t5, the processing of the next stage is started.
- This process is a sequential filter application process for observation signals after time t3. That is, every time a certain amount of observation signal is input, a filter is applied to the input predetermined amount of observation signal to sequentially generate extraction results.
- One box of “application of extraction filter (2)” shown in the figure represents one application of the filter.
- the number of samples of learning data is the number of frames of observation signals used in filter estimation. Therefore, for example, in the example shown in FIG. 9, if only the observation signal from time t2 to time t3 is used instead of using the observation signal from time t2 to time t6, the number of learning samples is simply reduced. In the learning, there is a possibility that the filter cannot be estimated properly.
- the start of the observation signal which is learning data
- a time point (time t1) that goes back a certain time from time t3 is set as a start point.
- Setting the beginning of the learning data before the beginning of the section has advantages other than ensuring the number of learning samples. For example, when the disturbing sound is sounding before the target sound, that is, the disturbing sounds 1,92. If there is, it can be further removed.
- the interference sound generated after the filter estimation is an interference sound that has started to sound after time t3 in the example shown in FIG.
- the disturbing sound 1 and 92 sounding before time t2 or the disturbing sound 2 that has begun sounding during time t2 to t3 , 93 can be removed (possibly).
- the disturbing sounds 3 and 94 are not included in the learning data, they are not removed. Therefore, in order to prevent the extraction accuracy from being lowered by the interference sounds such as the interference sounds 3 and 94, another device is required.
- a Full blind spot spatial filter is a filter in which blind spots are formed in the direction of all sound sources included in the learning data. By subtracting the application result of the entire blind spot spatial filter from the application result of the extraction filter, it is possible to cancel the sound that cannot be removed by either filter. Specifically, for example, in the example shown in FIG. 9, a total blind spot spatial filter is estimated using observation signals from time t1 to time t3 as learning data, and the estimated total blind spot spatial filter is calculated from time t2 to time t6. When applied to the observation signal of the section, the target sound 91, the disturbing sounds 1 and 92, and the disturbing sounds 2 and 93 are removed, but the disturbing sounds 3 and 94 not included in the learning data are not removed.
- an observation filter from the same time t1 to time t3 is used as learning data, and an extraction filter for extracting the target sound from the learning data is estimated, and similarly applied to a section from time t2 to time t6.
- this extraction filter By applying this extraction filter, the disturbing sounds 1 and 92 and the disturbing sounds 2 and 93 are removed, and the target sound 91 and the disturbing sounds 3 and 94 remain.
- temporal frequency masking first, by using the observation signal and the direction information of the target sound, the frequency region that does not contain much interference sound is transmitted almost without being reduced, while it contains many interference sounds. A mask for reducing the frequency region to be generated is generated. In the time-frequency masking, a mask for controlling the transmission signal according to the frequency band is sequentially generated for each fine time unit, and the generated mask is applied to the observation signal to generate a signal with reduced interference sound.
- the speech recognition apparatus is characterized in that sound source extraction is performed in the middle of a speech section of a target sound that is a speech recognition target.
- speech section detection and sound source extraction are integrated. Need to work. This means that even if a plurality of voice segment detection means are used at the same time, these means need to operate integrally. That is, the following two points are necessary.
- Method 1 A method that requires time to determine the end of a speech section.
- Method 2 A method that does not require time for determining the end of a speech section.
- Method 2 A method that uses a change in hand shape based on an image (a method described in JP 2012-203439 A).
- the sound source direction estimated by the sound source direction estimation and the lip image change may occur at a timing or direction unrelated to the voice utterance, or may be temporarily interrupted even during the utterance. There is. Therefore, in order to determine the start and end of the speech section, a time for determination corresponding to the end determination process 42 described above with reference to FIG. 4 is required. That is, delay is inevitable.
- the change in the hand shape can be determined without any time for determination. For example, suppose that the user inputs the utterance section by using the method of changing the hand shape from [Par] to [Goo] at the start of utterance and returning from [Goo] to [Par] at the end of the utterance, The end can be determined without delay time.
- the speech recognition device operates voice segment detection and sound source extraction in an integrated manner.
- a) Integration of voice segment detection and sound source extraction b) Integration of a plurality of voice segment detection means These a) and b) are realized.
- each of the above a) and b) will be described.
- “a) integration of voice segment detection and sound source extraction” will be described with reference to FIG. In FIG. 10 as well, the horizontal axis indicates time, and the vertical axis indicates direction.
- FIG. 10 is a diagram for explaining an example of voice segment detection processing.
- the voice section detection process described in this figure is almost the same as the process described in Japanese Patent Laid-Open No. 2012-150237. That is, sound source direction estimation is performed at regular intervals, and points representing the sound source direction obtained as a result of sound source direction estimation are plotted. This point is called a “direction point”. This is the direction point 101 shown in FIG.
- An utterance section 102 is obtained by connecting adjacent direction points in the time direction. The process of connecting these adjacent direction points is called “tracking”. The section before the end is determined is referred to as “the section being created”.
- the process of the present disclosure is different from the process described in, for example, Japanese Patent Application Laid-Open No. 2012-150237, and the means for acquiring the direction point is not limited to the sound source direction estimation, but the image is analyzed, and the position of the moving lip, A direction point obtained from the position of a hand having a specific shape may be used, or a plurality of means may be used in combination. In any case, the process of connecting adjacent direction points by tracking is the same.
- the start end of the voice section 102 detected by tracking is the start end 103 shown in the figure, and the end is the end 104. However, these points are not obtained instantaneously, but are determined after a certain delay called an identification time. Note that the determination time is as described above with reference to FIG.
- the timing at which the start end 103 at time t3 is determined is time t4, and the timing at which the end 104 at time t6 is determined is time t7.
- the input signals before and after the segment are also input to the speech recognition processing unit and speech It is known that the recognition accuracy is higher when the recognition process is executed.
- the additional part before and after this is called a hangover.
- the hangover on the start side is a region from time t2 to t3
- the hangover on the end side is a region from time t6 to t7
- the speech section including the hangover is the speech section 105 including hangover.
- sound source extraction is performed on the speech segment 105 including the hangover, and speech recognition is performed on the result.
- An important timing for integrating the voice section detection and the sound source extraction is a time t5 shown in FIG. 10, and the extraction filter is estimated when the tracking reaches the time t5.
- the extraction filter is a filter that extracts the target sound from the observation signal.
- a conventionally known method can be applied to the generation of the extraction filter.
- the filter calculation is performed using the method described in Japanese Patent Application Laid-Open No. 2012-234150 (Japanese Patent Application No. 2012-052548) which is the above-mentioned prior patent application of the present applicant, that is, the observation signal for learning and the direction information of the target sound. You may apply the method of performing.
- the observation signal 106 in the section from time t1 to time t5 is used for the observation signal, and the average direction obtained from the observation signal 107 from time t3 to time t5 is used for the direction information.
- the time t1 is the same as the time t1 of FIG. 9 described above, and is a time point that has been traced back by a certain time from the extraction filter generation point (t5).
- the extraction filter generated for the observation signal 108 already input at this time (t5) in the utterance interval is applied to generate a sound source extraction result.
- the filter is applied sequentially according to the input.
- the sequential application continues until time t6, which is the end of the speech interval, reaches time t7, which is the end of the termination hangover.
- the time from the time t7 to the time t8 is a part of the determination time necessary for determining the end point 104 of the utterance section. If a direction point is generated again during this time, and if it can be connected to the utterance section 102 being created, the sequential application is resumed.
- FIG. 11 is a diagram for explaining a state in which direction points acquired by a plurality of speech segment detection methods are tracked in common.
- the horizontal axis is time, and the vertical axis is direction.
- FIG. 11 assumes that three types of speech segment detection methods are used.
- the direction points acquired in each method are shown in different manners.
- Each of the direction points indicated by hatching circles, such as the direction point 111 is a direction point obtained by a sound source direction estimation method according to, for example, analysis of the acquired sound of the microphone array.
- Each of the direction points indicated by white circles such as the direction point 112 is a direction point obtained based on the detection of the hand shape acquired from the camera photographed image.
- Each of the direction points indicated by black circles such as the direction point 113 is a direction point obtained by analysis of the lip image acquired from the camera photographed image.
- a direction point is also acquired from a method based on a change in hand shape, and is added to the tracking target.
- the method based on hand shape change can detect the end of speech with low delay, but the method based on sound source direction estimation and the method based on lip image require time to determine the end, so to determine the end using common tracking Must match the longest of the three methods.
- a method that does not require time for determining the start or end of a speech segment, such as a speech segment detection method based on hand shape identification based on an image, is described below.
- Specific processing is performed. (1) When the start end of the voice section is detected, the start end registration process dedicated to this specific method is performed. In order to distinguish from other sections being created, the section being created generated by this process is given the attribute “registered”. (2) During tracking, even if there is no direction point derived from this specific method, the direction point is automatically generated and the section being created is extended. (3) When merging between sections being created occurs during tracking, the section being created having the attribute “registered” is absorbed in the other section being created. (4) When the end of the speech section is detected, end registration processing dedicated to this specific method is performed.
- the horizontal axis represents time
- the vertical axis represents direction
- the hatched circle direction points such as the direction point 121 shown in FIG. 12 are direction points obtained based on a speech segment detection method that requires time for determining the start or end of a speech segment.
- white circle direction points such as the direction point 123 are direction points obtained in accordance with a speech section detection method that does not require time for determining the start or end of a speech section, for example, a method based on hand shape detection.
- the voice section 122 is a section being created that is obtained by tracking a direction point obtained based on a voice section detection method that requires time for determining the start or end of a voice section.
- the voice section 124 is a section being created obtained by tracking a direction point obtained based on a specific method, that is, a voice section detection method that does not require time for determining the start or end of a voice section.
- Whether or not to merge a plurality of sections being created is determined by whether one direction point can be connected to a plurality of sections being created. For example, in FIG. 12, when tracking has progressed to time t4 and the direction point 125 is sufficiently close to both of the two creation sections 122 and 124 (the difference in direction is smaller than the threshold value), two creations are made. Merge the middle section into one. In the method described in Japanese Patent Application Laid-Open No. 2012-150237, since the other sections are merged with the section started from the earliest, the beginning of the merged section is the same as the voice section 122 being created. t1. In addition, the creating section 124 seems to have disappeared after the merge processing. However, the direction after merging is the average of the direction points of both sections being created.
- the head direction point 121 of the section 122 being created which is being created, is acquired by sound source direction estimation or a lip image, so it is irrelevant to the utterance (but happens to be the utterance direction). It may also have occurred.
- the direction point 123 which is the first direction point of the section 124 being created, is derived from a change in the user's hand shape. If the user moves his hand according to the utterance, the direction point 121 Is also likely to be accurate as a starting point. For this reason, when both are merged, the direction point 123 is expected to be more appropriate as the starting point than the direction point 121.
- the end is determined without any determination time by performing dedicated processing for registration of the end. Must remain until registration. From this point of view as well, it is desirable that the merging process is such that the created section 124 with the “registered” attribute remains, and the other created section 122 has disappeared. However, the direction of the section being created after merging is the average of both direction points.
- processing is performed as follows. -Do not merge sections created with “registered” attribute. -For each section being created having the “registered” attribute, the other sections being created are merged.
- the section being created is generated by the above [special processing (1)], and the above-mentioned [special processing (2)] and [ By performing the special processing (3)] exclusively, it is ensured that the section remains (not interrupted or merged) until the end of the utterance. Therefore, when the end is detected, a dedicated end determination process (the above-mentioned [special process (4)]) for the section can be performed, and the end determination time is unnecessary.
- a buffer having a configuration shown in FIG. 13 is prepared between the sound source extraction unit and the speech recognition unit. This issue is addressed by selectively supplying output data from the sound source extraction unit to the speech recognition unit via this buffer.
- the process described with reference to FIG. 13 is a process at a timing when sounds are simultaneously uttered from three sound sources as shown in FIGS. 8 and 14, for example, a timing at time t3 shown in FIG.
- a timing at time t3 shown in FIG. 14 there are three sections being created.
- the same number of sound source extraction units as the section being created are prepared. That is, as shown in FIG. 13, there are three sound source extraction units 131a to 131c.
- Each sound source extraction unit 131a to 131c sequentially generates sound source extraction results (132a to c), and each extraction result is input to the extraction result buffering unit 135.
- the extraction result buffering unit 135 has buffers 135a to 135c corresponding to the sections being created.
- Each of the buffers 135a to 135c has a First-In-First-Out (FIFO) structure, and the latest extraction result as new input data is added to the end of each buffer (the left end in the figure). When taking out, it takes out from the head (the right end in the figure).
- each buffer 135a-c holds section information 134a-c, respectively, so that it can be seen from which created section the extraction result stored in each buffer 135a-c is derived. It has become.
- FIFO First-In-First-Out
- the speech recognition unit 137 performs speech recognition processing by the decoders 139a and 139b.
- Each decoder performs speech recognition for a speech segment from one sound source. If the number of decoders is large, parallel processing of a large number of speech sections is possible. However, as described above, if a plurality of decoders are prepared, resources such as a memory and a CPU are consumed correspondingly. In other words, it is not realistic to assume that N decoders can always be prepared just because N sections overlap in time.
- the voice recognition unit 137 shown in FIG. 13 has two decoders 139a and 139b. That is, only two sections can be processed simultaneously. On the other hand, there are three voice segments to be processed.
- the two decoders 139 a and 139 b perform speech recognition processing by selecting only two speech segments from the three speech segments stored in the extraction result buffering unit 135. . This selection is executed according to the connection state of the switch 136 and the switch 138 shown in the drawing. Although control of these switches is not shown in the figure, it is executed by control of the control unit.
- the speech recognition apparatus ranks sections in which the extraction result exists in the extraction result buffering unit 135 according to the following criteria.
- (Criteria 1) Priority is given to sections having the “registered” attribute. When there are multiple sections with the “registered” attribute, the one with the oldest start has priority.
- (Criteria 2) For a section having no “registered” attribute, priority is given to a section whose end has already been determined. When there are multiple sections that do not have a “registered” attribute, the one with the oldest end has priority.
- the control unit of the speech recognition apparatus controls the switches 136 and 138 according to these three criteria, and outputs speech segment data having a high priority to the speech recognition unit 137.
- the reason why the older start edge is prioritized is as follows. This is to reflect the difference in the method of detecting the voice section.
- the section having the “registered” attribute is a system that does not require time for determining the start or end of the voice section, such as a voice section detection method based on hand shape identification based on an image. That is, it can be estimated that the section having the “registered” attribute has a high possibility that the user wants to surely input the voice as the user's position.
- the section derived from such a method is set to meet the user's expectation by decoding with the highest priority and reducing the delay. It should be noted that priority is given to the one with the oldest start point in the setting that the one with the earlier utterance start time is processed first.
- (Criteria 3) is a criterion for giving priority to the one with the old start end for the section whose end is not yet determined.
- This criterion is a criterion when there are multiple conflicting utterance sections whose ending points are undetermined, and when such a conflict occurs, priority is given to the one that started utterance first. It is a standard to do. If only the same number of decoders as voice segments can be prepared at all times, if only this criterion is applied, it is possible to process each decoder in order from the earliest start position of the speech segment, and the delay of the decoder can be minimized. Only 3 may be used.
- the number of decoders is equal to or less than the number of speech sections required to be processed. Therefore, in the speech recognition apparatus according to the present disclosure, in addition to (Reference 3), the above (Reference 1) and (Reference 2) are used together to realize priority processing in consideration of the degree of user request and the like. .
- the voice recognition unit 137 shown in FIG. 13 associates the extraction result for each section with the decoders 139a and 139b according to this order. For example, when there is only one decoder, the extraction result of the section that is top in the ranking is acquired and decoded. When the number of decoders is N, the extraction results are associated with the decoders for the top N sections ranked as described above.
- the “section” that is the target of ranking in the extraction result buffering unit 135 is different from the section being created that is the target of tracking in FIGS. 10 to 12, for example. Since tracking is a process of finding the start and end of a section, the section is excluded from the tracking target when the end is determined.
- the buffers 135a to 135c included in the extraction result buffering unit 135 accumulate the extraction results of each section for each section. The extraction results once accumulated in the buffers 135a to 135c remain even if the end of the section is determined, as long as it is not extracted from the extraction result buffering unit 135, so that the section is a ranking target. .
- FIG. 15 illustrates an overall configuration of a speech recognition apparatus according to an embodiment of the present disclosure.
- a voice recognition device 150 shown in FIG. 15 includes, as information input units, a sound input unit 151 configured by a microphone array including a plurality of microphones arranged at different positions, and an image input unit 154 configured by a video camera that performs image capturing. Have.
- a signal acquired by each microphone of the sound input unit 151 is converted into a digital signal by an analog / digital (A / D) conversion unit 152.
- the output of the AD converter 152 is multi-channel sound data (waveform), which is called an observation signal (in the time domain).
- the acquired image of the image input unit 154 composed of a video camera is input to the image processing unit 155.
- the image processing unit 155 performs detection of the lip area, detection of the hand area, and the like included in the captured image, and acquires information that can be used for detection of the speech utterance section, such as a lip image and a hand shape. Details of the image processing unit 155 will be described later.
- the voice recognition device 150 includes the sound source direction information acquired based on the analysis of the sound data acquired by the sound input unit 151 including the microphone array and the lip obtained by analyzing the acquired image of the image input unit 154. Further, sound source direction information acquired based on the direction of the hand and a plurality of sound source direction information are used for tracking. Therefore, it is necessary to fix the positional relationship between the sound input unit 151 composed of a microphone array and the image input unit 154 composed of a video camera. Therefore, it is desirable to use a module having an integrated shape for the microphone array and the video camera.
- a time stamp generation unit 158 is provided.
- the time stamp generation unit 158 generates a time stamp that is time information according to the clock signal, and supplies the time stamp to the AD conversion unit 152 and the image input unit 154.
- the AD conversion unit 152 gives a time stamp as attribute information for the sound signal of each microphone input from the sound input unit 151.
- the image input unit 164 also gives a time stamp as attribute information for each frame of the captured image. In this way, time stamps are assigned to the sound data and the image data, respectively, and in the process of the front end unit 153 described later, it is possible to perform a process in which sounds and images at the same time are associated with each other.
- the front end unit 153 is a module that executes voice section detection and sound source extraction as an integrated process, and sequentially performs both processes. Note that the buffer described above with reference to FIG. 13 and a module for converting a sound source extraction result into a feature amount for speech recognition are also included in the front end unit. Details will be described later.
- each sound source is divided into sections. Note that even if sounds from a plurality of sound sources overlap in time, each section is generated as a section from which one sound source is extracted, that is, a voice section in units of extracted sound sources. Note that the sound source extraction results of each sound source are sequentially generated and output.
- the voice recognition unit 156 obtains a word sequence corresponding to the sound source extraction result for each section output from the front end unit 153. Note that, as described above with reference to FIG. 13, the speech recognition unit 156 includes a plurality of decoders as necessary, so that a delay until a recognition result is generated can be shortened. Details will be described later.
- the extracted sound source includes the target sound and the interference sound.
- the speech recognition unit 156 performs analysis of a signal corresponding to each sound source when performing decoding as speech recognition processing, and calculates a score, reliability, and the like according to a predetermined rule. If these values are lower than a predetermined threshold value, it is determined that the sound is not a voice to be a voice recognition target, and is rejected without being a voice recognition target data. By performing such processing, it is possible to prevent the recognition result derived from the disturbing sound from causing a malfunction.
- the recognition result obtained by the voice recognition unit 156 is sent to the post-processing unit 157.
- processing such as changing a channel or searching for a program desired by a user is performed according to the result of voice recognition.
- the processing of each processing unit of the speech recognition apparatus 150 is controlled by the control unit 159.
- the control unit 159 controls the processing of each processing unit of the speech recognition apparatus 150 according to a data processing program stored in a memory (not shown), for example.
- the input to the front end unit 153 is sound acquired by a plurality of microphones of the sound input unit 151, and multi-channel sound data converted into digital signals by the AD conversion unit 152.
- the number of channels corresponds to the number of microphones.
- the multi-channel sound data is input to a short time Fourier transform (STFT) unit 161 and a voice / non-voice discrimination unit 162.
- STFT short time Fourier transform
- the STFT unit 161 applies short-time Fourier transform to the time domain observation signal to obtain a time frequency domain observation signal (spectrum).
- the short-time Fourier transform will be described later.
- processing is performed every time a signal having a certain length is input.
- the unit of processing is called a frame.
- the processing result is input to the observation signal buffering unit 164 and the sound source direction estimating unit 163.
- the voice / non-voice discrimination unit 162 discriminates by binary whether or not the input sound data is likely to be voice. For this discrimination processing, for example, a method focusing on the periodicity of a signal disclosed in Japanese Patent No. 4182444 can be used. This determination is also performed in units of frames, and the result is output to and stored in the observation signal buffering unit 164.
- the observation signal buffering unit 164 includes the time-frequency domain observation signal generated by the STFT unit 161, the speech / non-speech discrimination result generated by the speech / non-speech discrimination unit 162, and the frame number (index).
- a time stamp is set and accumulated for a certain time (a predetermined number of frames). Details will be described later. This module is also used for mutual conversion between the aforementioned time stamp and frame number.
- the observation signal accumulated in the observation signal buffering unit 164 is supplied to the tracking unit 165.
- the sound source direction estimation unit 163 estimates the direction of the sound source existing at that time using the multi-channel and time-frequency domain observation signal obtained by the STFT unit 161. This process is executed in accordance with, for example, the process described in Japanese Patent Laid-Open No. 2012-150237, which is a speech section detection method based on sound source direction estimation.
- the sound source direction estimation unit 163 executes sound source direction estimation processing every time a certain number of frames are input.
- a set of a plurality of frames, which is an estimation unit of the sound source direction, is called a block.
- the information to be generated is a point representing the direction of the sound source existing in the block, which is called a direction point.
- the direction point is the direction point shown in FIGS. 10 to 12 described above. The direction points thus obtained are sent to the tracking unit 165.
- the tracking unit 165 is one of the most important modules in the present disclosure. Although detailed processing will be described later, the following processing is mainly performed. (1) The section where the sound source is sounding is detected by tracking the direction points obtained by various methods. (2) As the tracking progresses, the result of extracting the sound source from that direction is sequentially generated. (3) The sound source extraction result is sequentially converted into feature values (features) for speech recognition in accordance with the generation of the sound source extraction result.
- the tracking unit 165 performs not only speech segment detection and sound source extraction in this way, but also generates feature amounts (features) for speech recognition.
- the reason for the conversion to the feature amount in the tracking unit 165 is that cepstrum normalization is performed at the time of conversion. This is because it is necessary to maintain the cepstrum average and standard deviation for each section in the case of conversion (described later). Further, since the conversion to the feature amount can be performed independently of the decoding of the speech recognition, there is also an object to reduce the delay generated in the decoding by performing the conversion to the feature amount at the time of tracking.
- the output of the tracking unit 165 is a feature value (for speech recognition) converted from the result of the sound source extraction.
- this feature value is also referred to as an extraction result.
- the extraction result is sent to the extraction result buffering unit 166.
- information from the image processing unit 155 is also input to the tracking unit 165 as shown in the figure. Specifically, these are direction points obtained from the lip image, information on the start and end of the section obtained from the change in the hand shape, and the like.
- the change in the hand shape is information obtained by image analysis acquired by the image input unit 154 as data for the user to clearly indicate the starting point and the ending point. Based on this image analysis information, the image processing unit 155 further generates information about the start and end of the section obtained from the change in the hand shape and inputs the information to the tracking unit 165.
- a deletion request for a specific section is input from the voice recognition unit 156 to the tracking unit 165.
- section update information is output from the tracking unit 165 to the voice recognition unit 156 as a notification of a section that disappears or is rejected during tracking. Details of these will be described later.
- the extraction result buffering unit 166 is almost the same as the extraction result buffering unit 135 described above with reference to FIG. However, since the tracking unit 165 also converts the sound source extraction result into a feature value, the data accumulated in the buffers 135a to 135c corresponding to each section being created is a feature value. Further, the section information 134a to 134c held by each buffer has the same structure as the section information 172 shown in FIG. Details of the section information will be described later.
- the extraction result buffering unit 166 receives “requested section information” indicating which section's feature amount is desired from the speech recognition unit 156 and sends the “feature amount” corresponding to the requested section to the speech recognition unit 156. Output.
- This process is, for example, a process under the control of the control unit 159, and corresponds to a process performed under the control of the switches 136 and 138 shown in FIG.
- the ranking unit 167 ranks sections in which feature amounts are stored in the extraction result buffering unit 166 based on a predetermined criterion.
- the standard is the above-mentioned standard (standard 1) to (standard 3), that is, the following standard.
- (Criteria 1) Priority is given to sections having the “registered” attribute. When there are multiple sections with the “registered” attribute, the one with the oldest start has priority.
- (Criteria 3) For sections where the end is uncertain, the one with the old start is prioritized.
- the priority information generated by the ranking unit 167 based on the above criteria is output to the speech recognition unit 156, and the speech recognition unit 156 extracts the requested section information corresponding to the section with high priority according to the priority information.
- the data is output to the filing unit 166.
- the observation signal buffering unit 164 receives the spectrum from the STFT unit 161 and the speech / non-speech determination flag from the speech / non-speech discrimination unit 162.
- the STFT unit 161 applies short-time Fourier transform to the time domain observation signal to generate a time frequency domain observation signal (spectrum).
- the processing unit is called a frame, and the data of the frame unit is sequentially stored in the observation signal buffering unit 164.
- This buffer is first-in-first-out (FIFO), and since there is an upper limit on the size, when the most recent data is added, if the data for one frame exceeds a predetermined number, Old data is discarded.
- FIFO first-in-first-out
- the details of the data for one frame are configured as data including the following data as shown in the figure. * Spectrum, * Voice / non-voice flag, * Frame number, *Time stamp,
- the spectrum is a result of STFT for one channel, and the data for one frame includes the same number of spectra as the number of microphones of the sound input unit 151.
- the speech / non-speech flag is a determination result of the speech / non-speech discrimination unit 162, and is estimation result information indicating whether the speech / non-speech discrimination unit 162 is estimated to be speech or non-speech.
- the frame number and the time stamp are data given to the output of the STFT unit 161. By storing these values as a set for each frame, the ratio of “sound-like” frames in the utterance interval can be calculated and used to reject non-speech segments, or given to the results of lip image processing. It is possible to convert the current time stamp into a frame number and use it for common tracking.
- the creating section management unit 171 of the tracking unit 165 is a module that manages various types of information for one of the sections being created (tracking).
- the number of sections being created in the tracking section 165 is the same as the number of sections being created (171a to 171n) and disappears when the section is determined. Further, the section being created needs to go through several steps as described above with reference to FIG. 10, for example, as its length increases.
- the creating section management unit 171 uses a state transition machine as shown in FIG. 19, for example.
- the section information 172 is held as information that allows confirmation of the current state of the sections that are sequentially changed.
- Each created section management unit 171 is composed of three modules.
- the section information 172 is a part that handles information used in the tracking processing itself for one section (processing excluding sound source extraction and feature amount conversion), and the frame number of the start end and the direction point are continuous or interrupted. It keeps the length when it is. Details will be described later.
- the sound source extraction unit 173 performs processing for estimating the extraction filter from the observation signal by learning, processing for generating the extraction result by applying the filter to the observation signal, and the like. Details of this will also be described later.
- the feature amount extraction unit 174 converts the generated extraction result into a feature amount that is further used in speech recognition decoding. In addition, the extraction result is converted into a waveform as necessary. Details of this will also be described later.
- the tracking unit 165 also holds the number of the currently processed frame (current frame number 175) and the block number (current block number 176).
- the value of the current frame number 175 is the same value as the frame number of the latest one frame of data stored in the observation signal buffering unit 164 shown in FIG.
- a block is a unit in which a certain number of frames are grouped together.
- direction estimation and tracking are performed in units of this block.
- the direction estimation and tracking method is a process according to the process described in Japanese Patent Application Laid-Open No. 2012-150237, and the tracking unit also retains block numbers and is being created as necessary.
- the section management units 171-1 to 171-1 refer to the values.
- the direction point buffer 177 is a module for temporarily storing the direction point used in the next tracking.
- the speech recognition device uses a plurality of speech section detection methods, each of which generates a direction point, which are stored together in this module. This mechanism prevents multiple utterances from being detected even when a plurality of speech segment detection methods are used.
- the direction point derived from the method using the image may be given a future time stamp for the tracking unit.
- audio processing and image processing are performed in parallel and asynchronously, and for sounds, images and images input at the same time, the sound is processed later than the image. The case corresponds to that.
- Such a direction point is regarded as a “reserved direction point” and stored in a dedicated buffer, that is, a reserved direction point buffer 178 shown in the figure. Then, when the tracking process proceeds and the time stamp given to the direction point is reached, the direction point is moved from the reserved direction point buffer 178 to the direction point buffer 177.
- the direction point connection table 179 is a table that describes which section being created can be connected to each of the direction points detected in a certain block. Since a plurality of sections may be connected to one direction point as described above with reference to FIG. 12, the connectable sections are represented in the form of a list. This list is called a “connectable section list”. If no section is connected, an empty list is described. When a plurality of sections can be connected to one direction point, the tracking unit merges the sections into one, and generates a new section when no section is connected.
- section information 172 held in the section being created section 171 will be described.
- a to M are internal states indicating the state of the section.
- the starting state is A.
- Each state indicates the following state.
- E The section is too short (below the specified length)
- K Termination confirmed (before extraction filter estimation)
- the arrows connecting the states A to L are end state transition lines representing state transitions, and these are classified into the following four types.
- Line a thin solid line
- Line b thick dotted line
- Line c thin solid line
- Line d thin alternate long and short dash line
- Line a represents a transition that occurs only once in one block, and a state transition when a connection of a direction point to the section being created occurs.
- Line b represents a transition that occurs only once in a block, and a state transition when a connection of a direction point to the section being created does not occur
- Line c represents a transition that occurs when the length of the section being created reaches a predetermined value, and this transition can occur multiple times within one block. This transition is called “transition that does not consume a block”.
- Line d (thin alternate long and short dash line): A transition that occurs in a dedicated end registration process for a section having the “registered” attribute. This transition will be described in detail later.
- the transition line is omitted, but the state L can be transitioned from any state.
- the transition is also a “transition that does not consume a block”.
- the state transition model shown in FIG. 19 corresponds to each timing described above with reference to FIG. Hereinafter, the correspondence will be described.
- time t3 is the beginning of the utterance. This represents the timing at which a single direction point that does not connect to any section being created is generated, or the timing at which the start end registration process dedicated to the speech section detection method that does not require a determination time is called.
- the state transition model of FIG. 19 is generated, and the internal state becomes A. State A is referred to as “section generated”.
- State A corresponds to the period of time t3 to t4 in FIG. In other words, as long as the direction point is connected to the newly created section, the self-loop of the state A is continued and the created section is extended accordingly.
- the length of the section becomes a predetermined value (length from time t3 to t4) or more, the state transitions to state C. Since this is a state in which the starting end of the section being created is fixed, state C is referred to as “starting end determined”.
- state A when there is no direction point to be connected, the state transitions to state B.
- state B also corresponds to the period of time t3 to t4 in FIG.
- This state B indicates that the section is interrupted.
- the state B is distinguished by being called “interrupted (before the start end is determined)”.
- the self-loop is continued in state B, and when it reaches a predetermined number of times, transition to state E is made.
- the predetermined number of times in the state B is the number of blocks corresponding to the time necessary for determining the end (time t6 to t8 in FIG. 10).
- the state E represents the case where the end is determined before the start is determined, in other words, the section is “too short”. In this case, transition is made to state L, which is a state representing “rejection”.
- state B if there is a direction point connected to the section, return to state A. If the length of the section exceeds the start end determination time at the time of returning to the state A (if it is longer than the time t3 to t4 in FIG. 10), the state subsequently transitions to the state C.
- State C corresponds to the period from time t4 to t5 in FIG.
- the state when there is a direction point connected to the section, it self-loops, and when the length of the section exceeds a predetermined value (the length from time t3 to t5 in FIG. 10), the state transitions to the state G. To do.
- the extraction filter is estimated, the filter is applied for the first time (application to the observation signal 108 shown in FIG. 10), and the like. Therefore, state G is referred to as “extraction filter estimated”.
- state C when there is no direction point to be connected, the state transitions to state D.
- This state D also corresponds to the period of time t4 to t5 in FIG.
- This state D represents that the section is interrupted as in the state B, but since the start end has already been determined, it is referred to as “interrupted (after start end determination)”.
- the self-loop is continued in the state D, and when it reaches a predetermined number of times, the state transitions to the state F.
- the predetermined number of times in the state D is the same as that in the state B, and is the number of blocks corresponding to the time required for determining the end point.
- state D if there is a direction point connected to the section, return to state C. If the length of the section is equal to or longer than a predetermined value (returned to time t3 to t5 in FIG. 10) at the time of returning to the state C, the state G is subsequently transitioned to.
- state F is a state in which the end is determined before the extraction filter is estimated, it is referred to as “end has been determined (before extraction filter is determined)”.
- This state is a state in which the termination is determined, and the ratio of direction points and the ratio of “sound-like” frames based on the voice / non-voice flag stored in the observation signal buffering unit 164 described in FIG.
- the section is selected according to the determination result. For example, when it is determined that the voice does not appear, the section is rejected, that is, transitions to the state L. On the other hand, when it is determined that it is likely to be speech and is accepted as a speech recognition target, an extraction filter is estimated and applied to the utterance section to generate a sound source extraction result.
- the processes after the state G are characteristic processes executed in the speech recognition apparatus according to the present disclosure.
- the state G corresponds to the period of time t5 to t6 shown in FIG. Similar to states A and C, if there is a direction point connected to that section, it performs a self-loop. At that time, an extraction filter is applied to the observation signal corresponding to one transition, and the extraction results are sequentially generated. To do. When the length of the section is equal to or greater than a predetermined upper limit value, the state transitions to state I.
- state H is a state that can occur during the period of time t5 to t7 shown in FIG.
- the extraction result is generated by applying the extraction filter to the observation signal.
- This state represents a break in the section (after time t6 in FIG. 10), but even if the break is the same, the behavior differs before and after the termination hangover (time t7 in FIG. 10) (although an extraction result is generated before the termination hangover). , After that, do not generate). Therefore, the state is divided into two at the end hangover. That is, The period from time t6 to t7 in FIG. The period of time t7 to t8 in FIG. In this way, two different states are prepared.
- the state H is “interrupted (before termination hangover)”
- the state J is “interrupted (after termination hangover)”, It is set as the state distinguished in this way.
- one of the features of the processing of the present disclosure is that the discontinuous portion after the end of the utterance is divided into two states. Note that state J is a state that can occur at times t5 to t6 and t7 to t8 in FIG.
- state H the self-loop continues in state H as long as there is no direction point to connect. Even in the self-loop, the extraction result is generated by applying the extraction filter to the observation signal.
- the self-loop reaches or exceeds a predetermined number of times (the number of blocks corresponding to the length of time t6 to t7 shown in FIG. 10)
- the state transitions to state J. This transition does not generate an extraction result.
- state H when a direction point connected to the section appears again, the state returns to state G. If the length of the section is longer than the upper limit at the time of returning to the state G, then the state transitions to the state I. At the transition from the state H to the state J, a feature amount to be applied to speech recognition is generated.
- state J the self-loop is continued in state J as long as there is no direction point to be connected. In this self-loop, no extraction result is generated.
- the self-loop reaches a predetermined number of times (the number of blocks corresponding to the length of time t7 to t8 shown in FIG. 10), the state transitions to state K.
- state J return to state G when a direction point connected to the section appears again. If the length of the section is longer than the upper limit at the time of returning to the state G, then the state transitions to the state I. In the transition from the state J to the state G, a feature amount is generated.
- State I indicates that the section being created is “too long” than the pre-defined length.
- There are two types of processing when transitioning to this state depending on the setting for a section that is too long. If it is set to reject a section that is too long, the state transitions to state L as it is. On the other hand, when the setting is such that the utterance end is determined when the upper limit of the length is exceeded, the state transitions to state K. However, even when transitioning to the state K, determination is made based on the direction of the section, the density of the direction points, the ratio of “voice-like” frames, and the state transitions to the state L if the condition is not satisfied. If the condition is satisfied, instead of the extraction result, special data indicating that the section is fixed is sent to the speech recognition decoder, thereby prompting confirmation of the speech recognition result.
- the transition from the state A to the state E is performed when the end registration process is called at the time t3 to t4 shown in FIG. 10, that is, for example, when the change of the hand shape of the user (speaker) is confirmed. It represents. In this case, since the section is “too short”, a transition is made to state L indicating rejection.
- the transition according to the line d (one-dot chain line) from the state C to the state F represents a transition when the termination registration process is called from time t4 to t5 in FIG.
- the extraction filter is estimated and then applied to the utterance section to generate a sound source extraction result.
- the transition according to the line d (one-dot chain line) from the state G to the state K represents a transition when the termination registration process is called from time t5 to t6 in FIG.
- special data indicating that the section has been confirmed is sent to the speech recognition decoder to prompt confirmation of the speech recognition result.
- the section information includes the following information.
- (1) Internal state (2) Section ID (3) Start frame number (4) Start frame number with hangover (5) End frame number (6) End frame number with hangover (7) “Registered” flag (8)
- Direction point counter (9) Average direction (10) Interruption counter (11) Scheduled frame number (12) Connectable direction point list
- the internal state represents the current state of the state transition model (A to L in FIG. 19).
- the section ID is an identification number uniquely assigned to the section being created.
- the start frame number and (4) the start frame number with hangover represent the frame number at the start of the section at time t3 in FIG. 10 and the frame number at time t2, respectively.
- the value is determined at the time when the creating section management unit shown in 18 is generated.
- (4) the start frame number with hangover is (3) a value obtained by subtracting a fixed value from the start frame number. However, when a section occurs immediately after the system is started, (3) the start frame number is fixed. If a negative value is obtained when the value is subtracted, the minimum value (for example, 0) of the frame number is substituted for the start frame number with hangover.
- End frame number and (6) End frame number with hangover are respectively the frame number at the end of the section at time t6 and the frame number at time t7 in FIG.
- a value at an intermediate stage is stored during the tracking process.
- the end frame number is substituted with the current frame number 176 held by the tracking unit 165 in FIG. 18 in the states A, C, and G shown in FIG.
- the current frame number 176 is similarly substituted in the states A, C, G, and H, so that both ends are automatically determined when the state transitions to the state H.
- the “registered” flag is a flag prepared for distinguishing the section generated by the start end registration process dedicated to the voice section detection method that does not require the determination time, and the above-described “registered attribute” is set. Whether or not it is present is represented by this flag. For the section where this flag is set, special processing is performed at the time of tracking.
- the direction point counter is the number of direction points included in the section being created.
- the section shown in FIG. 10 described above includes 13 direction points.
- the value of the counter at this direction point is “13”. Using this value, the density of direction points in the section is calculated, or the average of directions is calculated with weight.
- the average direction is the average value of the direction of each direction point. During tracking, a difference is calculated between this value and the direction of a new direction point. If the absolute value is equal to or smaller than a predetermined value, it is determined that the direction point can be connected to the section.
- the interruption counter is a counter for counting the number of self-loops in the states B, D, H, and J in FIG. 19 described above. This value may hold the number of self-loops (that is, the number of interrupted blocks) itself, but may also hold a value converted into the number of frames or time (seconds or milliseconds).
- the scheduled end frame number is a member used only in the end registration process for the “registered” section.
- the end registration process is performed only when the current frame number 176 exceeds the (11) scheduled end frame number.
- the reason for making the reservation for the end registration process in this way is as follows. (Reason 1) In order to realize termination hangover even in termination registration processing for the “registered” section. (Reason 2) To deal with a case where the sound processing and the image processing are performed in parallel, but the sound processing is delayed. (The time stamp given to the image looks like a future time from the sound processing.)
- the connectable direction point list is a list of the direction points connectable to the section, and the keys and values of the direction point connection table 179 held by the tracking unit 165 shown in FIG. invert). If this list is empty, the section is considered broken. When there are a plurality of elements in the list, it is considered that one direction point consisting of the average value of these values is connected.
- FIG. 21 shows each processing unit of the sound source extraction unit 173 and data generated or held in the sound source extraction unit 173 (generated / held data in the drawing).
- the data may be stored in the sound source extraction unit 173 or may be stored in a memory accessible by the sound source extraction unit 173.
- the filter estimation unit 191 generates (1) an extraction filter and (2) a total blind spot spatial filter shown in “generation / retention data” in the figure.
- the extraction filter is a filter for extracting the target sound from the observation signal.
- the total blind spot spatial filter is a filter in which blind spots are formed in all sound sources included in the observation signal used in learning, that is, a filter that attenuates the sound of all sound sources included in the observation signal. Note that this all blind spot spatial filter is a filter having the same characteristics as the filter described in Japanese Patent Application Laid-Open No. 2011-107602.
- the filter application unit 192 executes the sound source extraction process by applying an extraction filter to the observation signal.
- (3) filter application start frame number and (4) filter application end frame number shown in “generation / holding data” in FIG. 21 are the numbers of observation signals when the extraction filter or the like is applied next time. Is a frame identifier that represents the number of frames from the first to the second, and plays an important role in realizing sequential sound source extraction.
- Both the unerased removal unit 193 and the time frequency masking unit 194 in FIG. 21 are used to further remove the interference sound that is not completely removed by the extraction filter.
- the non-erasure removal unit 193 applies a total blind spot spatial filter to the observation signal, and “subtracts” the application result from the extraction result (the result of applying the extraction filter to the observation signal).
- the time frequency masking unit 194 applies a time frequency mask based on the phase difference between microphones to the extraction result. In both cases, detailed processing will be described later.
- the feature amount conversion unit 174 performs processing for converting the output of the sound source extraction unit 173 into a feature amount used in speech recognition.
- the data applied to the speech recognition by the decoder in the speech recognition unit 156 that is, the feature amount
- the MFCC generation unit 201 illustrated in FIG. 22 performs a process of converting the spectrum that is the output of the sound source extraction unit 173 into a mel frequency cepstrum coefficient (MFCC) that is a feature amount applied to speech recognition.
- MFCC Mel frequency cepstrum coefficient
- MFCC mel frequency cepstrum coefficient
- sound source extraction is performed after the end of the utterance section is determined, and therefore the average and variance (or standard deviation) used in these normalizations are also shown in the entire utterance section (for example, shown in FIG. 10). In the example, it is calculated from the data of the section 105).
- the mean and variance (or standard deviation) required for normalization are calculated at an early stage in accordance with the sequential extraction of sound source extraction. Specifically, in the example shown in FIG. 10, the timing is time t5.
- the sound source extraction unit 173 estimates an extraction filter at time t5, and applies the filter to the observation signal 108 at times t2 to t5 to generate an extraction result. Further, immediately after that, the feature amount conversion unit 174 converts the extraction result into a mel frequency cepstrum coefficient (MFCC), and further calculates an average and a standard deviation from the MFCC. As described above, the feature amount conversion unit 174 sequentially converts the mel frequency cepstrum coefficient (MFCC) into the mel frequency cepstrum coefficient as the sound source extraction result is sequentially generated in the sound source extraction unit 173, and further, Normalized feature values are also generated sequentially by subtracting the average from the frequency cepstrum coefficient (MFCC) or performing division by standard deviation.
- MFCC mel frequency cepstrum coefficient
- the feature amount conversion unit 174 has the configuration shown in FIG.
- the MFCC generation unit 201 converts a spectrum that is a sound source extraction result generated by applying the filter in the sound source extraction unit 173 into a mel frequency cepstrum coefficient (MFCC).
- MFCC mel frequency cepstrum coefficient
- the feature amount conversion unit 174 of the speech recognition device is in the middle of tracking a speech section, for example, in the example illustrated in FIG. 10, when the time t5 when the filter estimation process starts is reached, the mel frequency cepstrum. Calculate the mean and standard deviation of the coefficient (MFCC). These are stored in the memory as generated / held data shown in FIG.
- the memory is a memory accessible by the feature amount conversion unit 174.
- the (3) initial flag shown in the generation / holding data in FIG. 22 is a flag for distinguishing whether or not the generation of the mel frequency cepstrum coefficient (MFCC) is the first in the section.
- MFCC mel frequency cepstrum coefficient
- the mel frequency cepstrum coefficient (MFCC) itself must be generated for the previous frame in order to generate a vector including the delta feature quantity at the start frame of the section. Means the same.
- MFCC mel frequency cepstrum coefficient
- the MFCC generation unit 201 stores the necessary mel frequency cepstrum coefficients (MFCC) of the past frames, and uses them as a delta. It is assumed that the feature amount can be calculated appropriately.
- the feature quantity conversion unit 174 may include an inverse STTR (Inverse Shotr-Time Fourier Transform) unit 202 as necessary to perform conversion from a spectrum to a waveform.
- inverse STTR Inverse Shotr-Time Fourier Transform
- Most speech recognition engines are expected to have a mechanism for converting a waveform into a feature value, so that the extracted result is converted into a waveform so that it can be used in a wide range of speech recognition engines.
- the decoder management unit 211 issues output requests as feature amount requests for the sections to the extraction result buffering unit 166 in order from the section with the highest priority based on the priority information of the speech sections input from the ranking unit 165.
- the feature amount of the section corresponding to this request is received and sent to the decoders 212-1 to 212-n.
- the tracking unit 165 is inquired whether the section currently being decoded is invalid (whether it has disappeared or has been rejected), and if it is invalid, the corresponding decoding is canceled.
- the decoders 212-1 to 212-n apply the feature values obtained from the front end unit, and refer to databases such as the acoustic model 216, dictionary 217, language model 218, etc. as necessary, and target sounds corresponding to the sections.
- a speech recognition process for obtaining a word string closest to is executed.
- the device of the present disclosure includes a plurality of decoders as necessary.
- Each decoder holds the section IDs 213-1 to 21-n so that it can know which section is being decoded.
- an undefined value is substituted as the section ID.
- the decoders 212-2 to 212-n other than the decoder 212-1 execute the speech recognition processing with reference to the same language model 216, dictionary 217, and language model 218 as the decoder 212-1. To do.
- the acoustic model 216 stores a model representing acoustic features such as individual phonemes and syllables of speech that is recognized.
- acoustic model for example, HMM (Hidden Markov Model) can be used.
- the dictionary 217 stores a word dictionary in which information about pronunciation (phoneme series) is described for each word (phrase) to be recognized, a model in which phonological and syllable chain relationships are described, and the like.
- the language model 218 describes information about how words registered in the word dictionary of the dictionary 217 are linked (connected). As a description method, a statistical word chain probability (n-gram), a finite state automaton-based grammar, or the like can be used. Each decoder 212-1 to 212-n generates a recognition result 219. This is used in the post-processing unit 157.
- the input to the image processing unit 155 is an image acquired by the image input unit (camera) 154, and this image is the lip image processing unit 221, the hand image processing unit 223, and, if necessary, the face image processing unit 222. Sent to each.
- the lip image processing unit 221 detects a region corresponding to the lip from the input image, and if the degree of change of the lip region exceeds a predetermined value compared to the previous time, “the mouth is moving. Is determined. Then, the position of the lips on the image is converted into the direction of the sound source, and the value obtained by adding a time stamp is sent to the front end unit 153 as a direction point.
- the hand image processing unit 223 detects an area corresponding to the hand from the input image and determines whether or not the shape has changed compared to the previous time. For identification of the hand shape, for example, a method described in JP 2012-203439 A is used.
- the hand shape obtained from the previous time image is “par” and the hand shape obtained from the current image is “goo”, it is determined that the utterance is started, Conversely, if the previous time was “Goo” and the current time was “Par”, it is determined that the utterance has ended.
- the direction of the sound source is calculated by correcting the position of the hand on the image as described later, and a time stamp is given thereto. Then, the sound source direction and the time stamp are notified to the front end unit 153 as utterance start point information.
- a time stamp is assigned to the sound source direction calculated in the same manner, and then the same is notified to the front end unit 153 as utterance end information.
- the image processing unit 155 includes a face image processing unit 222 as necessary, and performs processing for detecting a face region from the input image.
- the purpose of detecting the face area is mainly the following two points.
- (Purpose 1) By detecting the lip image after detecting the face area, the search range can be limited and the amount of calculation can be reduced.
- (Purpose 2) When calculating the sound source direction from the coordinates of the hand region, the sound source direction is calculated from the coordinates of the face region closest to the hand region. This is the end of the description of the configuration of each module.
- Speech processing This is the main process of the speech recognition process, the main process for generating the speech recognition result, (Image system processing) Processing for generating information based on an image to be applied to the above speech recognition processing,
- the image processing is processing performed by the image processing unit 155 in the configuration of FIG. 15, and for example, a lip image or a change in hand shape is determined based on an image input from the image input unit 154 to determine a voice section. This is a process for generating information to be applied.
- the voice processing is mainly processing executed by the front end unit 155 and the voice recognition unit 156 in FIG.
- the sound system process executes a process to which the processing result of the image system process is applied.
- processing described with reference to the following flowcharts is processing that can be executed by each processing unit of the speech recognition device, for example, according to a program stored in a memory in the speech recognition device.
- Each processing unit executes processing in accordance with a processing sequence defined in the program.
- the processing sequence of the voice processing is shown in the flowchart of FIG.
- the processing sequence of the image processing is shown in the flowchart of FIG.
- the reason why the two processing systems are divided for explanation is the difference in time granularity of each data.
- the processing according to the flow shown in FIG. 25 is performed every time a sample for one shift of a short-time Fourier transform (STFT) signal that is an observation signal in the time-frequency domain is acquired (shift width is 160 samples). And every 1/100 second if the sampling frequency is 16 kHz).
- STFT short-time Fourier transform
- FIG. 26 processing according to the flow shown in FIG. 26 is executed every time one image is acquired (if it is 30 fps, every 1/30 seconds).
- STFT short-time Fourier transform
- step S101 modules related to speech processing, such as modules such as the front end unit 153 and speech recognition unit 156, are initialized.
- Each of these modules holds, for example, a frame number, a block number, and a section ID as parameters for identifying processing target data and the like.
- the section ID is set as undefined.
- Step S102 is a process in which the front end unit 153 acquires the sound signal converted into the digital signal by the AD conversion unit 152 by the required number of channels and the number of samples.
- the section registration process in step S103 is a process of registering the start or end of a voice section using information given from the outside, such as an output from the image processing unit 155. This method is used when the start and end points are detected by a method that does not require time to determine the start and end of a voice segment, such as processing using hand shape change information that is user's speech segment instruction information. The process is called, and details will be described later.
- the front-end process in step S104 is a process for performing voice segment detection, sound source extraction, and further conversion to a feature amount using the sound data acquired in step S102. Details will be described later.
- the speech recognition process in step S105 is a process for obtaining a recognition result such as a word sequence corresponding to the extracted result (feature amount) for each section obtained in the front-end process in step S104.
- a recognition result such as a word sequence corresponding to the extracted result (feature amount) for each section obtained in the front-end process in step S104.
- whether or not the input sound is a sound for operating the system is also determined based on the recognition reliability and the score. Detailed processing will be described later.
- processing corresponding to the recognition result is performed in the subsequent process of step S106. For example, if the user's utterance requests a change in the TV channel, the channel is changed accordingly.
- some expression may be performed using the processing result of the front-end processing in step S104. For example, information indicating that “I'm listening to the voice from this direction right now” may be displayed in accordance with the progress of tracking that is performed sequentially.
- step S107 for example, the end of the voice processing is determined based on the presence or absence of the voice section to be processed. If the process is continued, the process returns to step S102. If it is to be terminated, the process is terminated.
- step S201 the image processing unit 155 is initialized. Thereafter, the processing in steps S202 to S206 is repeated until the end.
- step S202 one image is acquired from the image input unit (camera) 154.
- step S203 face detection processing is performed on the acquired image as necessary, and a face area is detected from the image. Note that this process is executed as an auxiliary process of each process of step S204 and step S205, and may be omitted.
- the lip image processing in step S204 determines whether or not a lip is present in the image acquired in step S202, and determines whether or not it is moving when it exists. Details will be described later.
- the hand image processing in step S205 determines whether or not a hand exists in the image, and determines whether or not the shape of the hand changes a predetermined amount corresponding to the start or end of the utterance when it exists. To do. Details will be described later.
- step S206 it is determined whether or not to continue the image processing based on whether or not an unprocessed image is input. If so, the process returns to step S202. If it ends, it ends.
- step S104 the front-end process in step S104 will be described first, then the section registration process in step S103, and finally the speech recognition process in step S105 will be described in order.
- step S104 the front end processing in step S104 will be described with reference to the flowchart shown in FIG.
- the process according to the flow shown in FIG. 27 is a process executed in the front end unit 153 described with reference to FIG.
- the sound acquired in step S102 of the flow in FIG. 25 is input to the front end unit 153 via the AD conversion unit 152.
- step S271 the STFT unit 161 of the front end unit 153 shown in FIG. 16 applies short-time Fourier transform (STFT) to the acquired sound data.
- STFT short-time Fourier transform
- STFT short-time Fourier transform
- a processing unit of one short-time Fourier transform (STFT) process is called a frame, and a signal in a time-frequency region for one frame is called a spectrum.
- n spectra are generated by this STFT.
- step S272 voice / non-voice discrimination processing is executed.
- This process is a process executed by the voice / non-voice discrimination unit 162 of the front end unit 153 shown in FIG. 16, and determines by binary whether or not the acquired sound signal is “sound-like”.
- a determination method for example, a method focusing on the periodicity of speech as disclosed in Japanese Patent No. 4182444 is used.
- observation signal buffering processing is executed in step S273.
- the observation signal buffering process includes the frame number t to be processed this time, the spectrum for a plurality of channels generated in step S271, the determination result in step S272, the time stamp given to the input signal, and the like.
- This is a process of storing in the observed signal buffering unit 164 as “one frame data” described above with reference to FIG. 17 as a set. When the number of data stored in the observation signal buffering unit 164 exceeds a predetermined value, the data of the oldest frame is discarded.
- mod in step S274 is an operator that calculates the remainder of division. For example, the process proceeds to step S275 only when the frame number t is B-1, 2B-1, 3B-1,... Otherwise, the process proceeds to step S279. That is, the processing in steps S275 to S278 is performed in units of B frames set in advance. This processing unit is called a block.
- the sound source direction estimation in step S275 is a process of acquiring zero or more sound sources and their directions in one block. The result is expressed as a direction point, for example, the direction point 101 shown in FIG.
- the sound source direction estimation process is described in, for example, Japanese Patent Application Laid-Open No. 2012-150237, and this existing method can be applied in step S275.
- the integration of the direction points in step S276 is a process of merging the direction points obtained in step S275 (direction points obtained from the sound signal) and the direction points obtained by, for example, lip image processing in the image processing unit 155. . Basically, a union of sets of direction points is calculated, and the result is stored in the direction point buffer 177 of the tracking unit 165 described with reference to FIG.
- step S277 direction points having similar directions are connected in the time direction to obtain a section of a sound source. Further, in conjunction with this processing, the generation of the sound source extraction result and the conversion into the feature amount are sequentially performed. Details will be described later.
- the block number b is incremented by 1 in step S278. Further, in step S279, the frame number t is increased by 1. This process is executed every time.
- step S271 A fixed length (for example, 512 samples) is cut out from the waveform x k (*) of the observation signal in the time domain shown in FIG.
- k is a microphone number.
- a window function such as a Hanning window or a Hamming window is applied to each of the cutout signals 301 to 303. This cut out unit is called a frame.
- X k ( ⁇ , t) that is a signal in the time-frequency domain is obtained.
- ⁇ is a frequency bin number
- t is a frame number.
- Equation [1.4] a vector X k (t) composed of all frequency bins as in the above-described equation [1.4] is referred to as a spectrum.
- tracking itself is a process of checking whether the direction point of a new block can be connected for each section being created, and extending the section if connection is possible.
- the processing of the present disclosure has a feature that estimation filter extraction and application, and conversion to a feature amount are performed as the section is extended.
- the direction point connection check in step S291 is a process of determining whether or not each section being created and each direction point in the new block can be connected. Details will be described later. At this stage, only checking is performed, and the update of the section is performed later.
- the section merging process in step S292 is a process of combining the sections into one when a plurality of sections being created can be connected to one direction point. Details of this process will be described later.
- the update process of the section in step S293 is performed by extending the section by connecting the connectable section being created and the direction point, or conversely, when a state where there is no connected direction point continues for a predetermined time or longer. This is a process for determining the end point. As the section becomes longer, the processes described with reference to FIG. 10 are also performed. Details of this will also be described later.
- the creation of a new section in step S294 is a process of generating a new section starting from the direction point when a certain direction point is not connected to any section being created. This will also be described later.
- the last of the tracking process is an unnecessary section deletion process in step S295. This is a process of deleting a section that has been rejected in the middle of a section being created or a section merged (absorbed) with another section being created and removing it from the tracking target. Details will be described later.
- the direction point connection check process in step S291 in the tracking process shown in FIG. 29 checks whether connection is possible for all combinations of the section being created and the direction point, and the following two types of data are obtained as a result of the check. Is generated and stored in the memory. a) Data indicating to which direction point each section being created can be connected. b) Data indicating to which creating section each direction point can be connected.
- the “data indicating to which direction point each created section can be connected” in a) is data held in each created section management unit 171 of the tracking unit 165 described with reference to FIG. , Data corresponding to “(12) Connectable direction point list” shown in the section information 172 described with reference to FIG.
- “data indicating which section in which each direction point can be connected” in b) is data corresponding to the “direction point connection table 179” of the tracking unit 165 described with reference to FIG. .
- step S301 the contents of the “direction point connection table” are initialized. Specifically, this is an initialization process for the direction point connection table 179 managed by the tracking unit 165 shown in FIG. 18, and an entry corresponding to the direction point is prepared, but an empty list is provided for the list of section IDs. Execute as a process to assign.
- Steps S302 to S309 are a loop for the section being created.
- the section creation units 171-1 to 171-1 generate the number of sections being created. These are the created section management units 171-1 to 171-n, each corresponding to one loop.
- step S303 the “list of connectable direction points” ((12) in FIG. 20) included in the section information 172 in the creating section management unit 171-1 shown in FIG. 18 is cleared. Specifically, an empty list is substituted.
- Steps S304 to S308 are loops for direction points. Specifically, it is a loop for each element (direction point) in the direction point buffer 177 of the tracking unit 165 shown in FIG. In this loop, the possibility of connection is checked for all combinations of the section being created and the direction points.
- step S305 it is checked whether a section being created and a direction point can be connected. Specifically, the difference between the average direction of the section being created (section information 172 (9) in FIG. 20) and the direction of the direction point is calculated, and the difference is within a predetermined range (for example, ⁇ 10 ° to + 10 °), it is determined that connection is possible. If it is determined that the connection is possible, steps S306 and S307 are executed. If it is determined that the connection is impossible, steps S306 and S307 are skipped. However, even if the difference in direction is within a predetermined range, the value of the start frame number (section information 172 (3) in FIG. 20) is larger than the current frame number (current frame number 175 in FIG. 18). Is considered unreachable. This is to cope with a case where a future time stamp is designated in the start edge registration process described later.
- a predetermined range for example, ⁇ 10 ° to + 10 °
- Steps S306 and S307 are processes for generating information corresponding to the above-described a) and b), respectively. That is, the following data is generated and held. a) Data indicating to which direction point each section being created can be connected. b) Data indicating to which creating section each direction point can be connected.
- step S308 When the direction point loop is closed in step S308 and the section loop being created is closed in step S309, data corresponding to the above a) and b) is acquired and held as management data of the tracking unit 165.
- the section merging process is basically an operation to combine a plurality of sections being created in one direction point when they can be connected. The behavior differs depending on whether the section being created has the “registered” attribute.
- Steps S311 to S320 are a loop for each entry in the direction point connection table 179 managed by the tracking unit shown in FIG.
- One entry of the direction point connection table 179 holds a connectable section list indicating which section being created can be connected to one of the direction points.
- step S312 the process branches depending on the number of elements in the connectable section list of the direction point connection table 179. If the number of elements is 0 (there is no section connected to the direction point) or 1 (only one section is connected to the direction point), merging is not necessary, and the process proceeds to step S320. If there are two or more, the process proceeds to step S313.
- step S313 the process branches depending on the number of sections being created having a “registered” attribute among the elements of the connectable section list. This is because the section having the “registered” attribute is not deleted in the merge. If no section being created having the “registered” attribute exists in the list, the process proceeds to step S314.
- step S314 the sections being created included in the connectable section list are sorted according to the following criteria.
- Standard 1 Priority is given to long sections.
- Ciiteria 2 When there are a plurality of sections having the same length, priority is given to the one with a smaller section ID for convenience.
- the second created section and the second created section are merged (absorbed) with the created section that has been ranked first in the sort process applying each of these criteria.
- step S313 if there is only one section having the “registered” attribute in the determination process in step S313, the process proceeds to step S315.
- step S315 the other sections are merged with the section having the “registered” attribute.
- step S316 the sections having no “registered” attribute are merged with the sections having the “registered” attribute. For example, it is assumed that there are four sections A, B, C, and D in the connectable section list, and A and B of them have the “registered” attribute. In that case, C and D are merged with A, and C and D are merged with B as well. As a result, two sections A and B remain.
- Steps S317 and after are processes that are executed in common in the three cases after any of the processes in steps S314 to S316 is completed.
- the average direction ((9) of the section information 172 in FIG. 20) is updated. Specifically, a weighted average with the direction point counter ((8) of the section information 172 in FIG. 20) as a weight is calculated with respect to (9) the average direction between the sections that are being merged. And record the value obtained as the updated average direction of the section being created that remains after merging.
- step S318 the direction point counter ((8) in the section information 172 in FIG. 20) is updated. More specifically, the direction point counters are summed between the sections being created that have been merged, and the obtained values are recorded as updated direction point counters of the sections being created that remain after the merge.
- step S319 the internal state of the section being created on the side absorbed by the merge is changed to “L: reject”. This is because the section being created that has been absorbed by merging is deleted in the “deletion of unnecessary section” executed in step S295 of the tracking process shown in FIG. Finally, by closing the loop in step S320, the “section merging” process is terminated.
- This “update of section” is a process for causing the state transition described above with reference to FIG. 19 to be generated in the in-progress section management unit 171 that performs section management according to the state transition model.
- Transitions that consume a block Transitions that occur only once within a block
- Transitions that do not consume a block Transitions that can occur any number of times within a block
- step S322 of the flow shown in FIG. This process corresponds to the state transition process of the thick solid and dotted lines a and b shown in the state transition model shown in FIG.
- Transition without consuming blocks executes processing in step S323 of the flow shown in FIG. Note that this processing corresponds to the state transition processing of the thin solid line and alternate long and short dash lines c and d shown in the state transition model shown in FIG. 19 and the transition from each state to state L.
- a transition that consumes the block in step S322 is generated only once.
- the section is extended or the number of self-loops is increased.
- steps S323 to S324 a transition that does not consume a block is repeated as much as possible.
- step S324 If it is determined in step S324 that no more transitions can be made, finally the loop in the section being created is closed in step S325.
- step S322 branching is performed in accordance with “(2) internal state” shown in FIG. 20 included in the section information 172 of the section-in-creation section 171 shown in FIG.
- step S331 performs the following processing. If the current state is states A, B, C, D, G, H, J, the process proceeds to step S332, and if it is any other state E, F, I, K, L, the process does not proceed to step S332. This means that the “transition that consumes the block” ends.
- step S332 meaning that “transition consuming blocks” is executed in each state. That is, If it is determined in step S331 that the current internal state is state A, the process proceeds to step S332, and “transition A that consumes a block” corresponding to state A is executed. If it is determined that the current state in step S331 is state B, the process proceeds to step S332, and “transition B that consumes a block” corresponding to state B is executed. Similarly, for the other states C, D, G, H, and J, the process proceeds to step S332, which means that “transition consuming blocks” corresponding to each state is executed.
- step S331 when the internal state is E, F, I, K, or L, as understood from the state transition model shown in FIG. 19, “transition consuming blocks” shown by lines a and b. Is not defined, the process is terminated without proceeding to step S332.
- step S331 of the flow shown in FIG. 33 it is determined that any of the internal states A, B, C, D, G, H, and J is performed, and the following transitions executed in step S332 are shown in FIGS. These will be described in order according to each flow.
- Transition A that consumes a block FIG.
- Transition B that consumes a block FIG.
- Transition C consuming blocks FIG.
- Transition D that consumes a block: FIG.
- Transition G consuming blocks: FIG. (6)
- Transition H that consumes a block: FIG. (7)
- Transition J consuming blocks: FIG.
- step S341 “(3) start frame number” registered in the section information 172 in FIG. 20 is compared with the current frame number 175 that is registration data of the tracking unit 1645 in FIG. Start frame number ⁇ current frame number It is determined whether or not the above equation holds. This determination process is to postpone the start of tracking in the section when a future time stamp is specified in the registration process at the beginning. Only when the current frame number is greater than or equal to the starting frame number, the process proceeds to step S342. Otherwise, all processing is skipped and the processing is terminated.
- Step S342 determines whether there is a connectable direction point or a section having the “registered” attribute. Specifically, “(12) connectable direction point list” shown in FIG. 20 in the section information 172 of the section 171 being created by the tracking unit 165 shown in FIG. 18 is not empty or “(7) registered ”Flag is true (the same applies to the subsequent state transitions).
- step S342 If it is determined in step S342 that either condition is satisfied, the process branches to the section extension process in step S343. This corresponds to executing a self-loop of state A in the state transition model shown in FIG. In the section extension processing in step S343, processing such as connecting a direction point to the section being created is performed, and details will be described later.
- step S342 if it is determined in step S342 that the “(12) connectable direction point list” is empty and the “(7) registered” flag is false, the process branches to step S344. This corresponds to performing a transition process from state A to state B in FIG.
- step S344 the value of “(10) interruption counter” in the section information 172 shown in FIG. 20 is increased.
- the value to be increased depends on what the interruption counter represents, and is 1 if it represents the number of blocks, and B if it represents the number of frames (B is the number of frames per block).
- step S345 “(1) internal state” of the section information 172 shown in FIG.
- the internal state B is an internal state indicating “interrupted (before starting end is determined)”.
- step S351 it is determined whether there is a connectable direction point. If it exists, the process branches to the section extension process in step S352, and then the state transitions to state A in step S353. This transition corresponds to the transition from state B to state A in FIG.
- the section extension process in step S352 will be described later.
- step S351 determines whether there is no connectable direction point. If it is determined in step S351 that there is no connectable direction point, the process branches to step S354. This corresponds to the self-loop of state B in the state transition model shown in FIG. Note that the processing in step S354 is the same as the processing in step S344 in FIG.
- the internal state C is an internal state indicating [start end confirmed] as described with reference to FIG.
- the process shown in FIG. 36 is similar to “transition A that consumes a block” shown in FIG. 34, but is not performed because a branch corresponding to step S341 is unnecessary. Also, the determination process corresponding to step S342 is the process of step S361 in FIG.
- step S361 the “(12) connectable direction point list” shown in FIG. 20 in the section information 172 of the section 171 being created by the tracking unit 165 shown in FIG. 18 is not empty or “(7) registered”. Determine if the flag is true. If either condition is satisfied, the process proceeds to step S362. This process corresponds to the self-loop of state C in FIG.
- step S361 if it is determined in step S361 that the “(12) connectable direction point list” is empty and the “(7) registered” flag is false, the process branches to step S363. This corresponds to performing a transition process from state C to state D in FIG.
- step S363 the value of “10” interruption counter ”in the section information 172 shown in FIG. 20 is increased.
- the value to be increased depends on what the interruption counter represents, and is 1 if it represents the number of blocks, and B if it represents the number of frames (B is the number of frames per block).
- step S364 “(1) internal state” of the section information 172 shown in FIG.
- the sequence of “transition D that consumes a block” will be described with reference to the flowchart shown in FIG. As described with reference to FIG. 19, the internal state D is an internal state indicating “interrupted (before extraction filter estimation)”.
- the process shown in FIG. 37 is similar to the “transition B that consumes a block” shown in FIG.
- step S371 it is determined whether there is a connectable direction point. If it exists, the process branches to the section extension process in step S372, and then transitions to the state C in step S373. This transition corresponds to the transition from state D to state C in FIG.
- the section extension process in step S372 will be described later.
- step S371 determines whether there is no connectable direction point. If it is determined in step S371 that there is no connectable direction point, the process branches to step S374, and the count value of the interruption counter is increased. This corresponds to the self-loop of state D in the state transition model shown in FIG. Note that the process of step S374 is the same as the process of step S344 of FIG.
- the internal state G is an internal state indicating [extracted extraction filter] as described with reference to FIG.
- step S381 it is determined whether there is a connectable direction point or a section having a “registered” attribute. If either condition is satisfied, the process branches to the section extension process in step S382. This corresponds to a self-loop of state G in FIG. After the section extension process in step S382, an extraction result is generated in step S383. Details of this processing will be described later.
- step S381 determines whether there is no connectable direction point and the section does not have the “registered” attribute. If it is determined in step S381 that there is no connectable direction point and the section does not have the “registered” attribute, the process branches to step S384, and the count value of the interruption counter is increased. This corresponds to the transition from the state G to the state H in FIG.
- step S385 the current frame number 176 shown in FIG. 18 is substituted into “(6) terminal frame number with hangover” of the section information 172 shown in FIG.
- step S386 an extraction result is generated. This process will be described later.
- step S387 “(1) internal state” of the section information 172 shown in FIG.
- the internal state H is an internal state indicating “interrupted (before termination hangover)”. This process is an interrupted process, but differs from the state B indicating [interrupted (starting end confirmed)] and the state D indicating [interrupted (before extraction filter estimation)], and generates an extraction result. It is a feature.
- step S391 it is determined whether there is a connectable direction point, and if the condition is satisfied, the process branches to a section extension process in step S392. This corresponds to the transition from the state H to the state G in FIG. After the section extension process in step S392, an extraction result is generated in step S393. Details of this processing will be described later. After that, in step S394, “(1) internal state” of the section information 172 shown in FIG.
- step S391 determines whether there is no connectable direction point. If it is determined in step S391 that there is no connectable direction point, the process branches to step S395, and the count value of the interruption counter is increased. This corresponds to a self-loop of state H in FIG.
- step S396 the current frame number 176 shown in FIG. 18 is substituted into “(6) Termination frame number with hangover” of the section information 172 shown in FIG.
- step S397 an extraction result is generated. This process will be described later.
- step S381 of "transition G that consumes a block” in FIG. 38 and step S391 of "transition H that consumes a block” in FIG. 38 steps S384 to S387 and steps S395 to S397 in FIG. 39 will be supplemented.
- the internal state J is an internal state indicating [interrupted (after termination hangover)] as described with reference to FIG.
- step S401 it is determined whether there is a connectable direction point, and if it exists, the process branches to the section extension process in step S402. This corresponds to the transition process from state J to state G in FIG.
- step S402. This corresponds to the transition process from state J to state G in FIG.
- an extraction result is generated in step S403. Details of this processing will be described later.
- the extraction result generated here is not limited to one block, but a part that is self-looped in the state J is also generated. For example, if the self-loop is performed twice in state J and then the state transitions to state G, an extraction result for three blocks (that is, for 3B frames) is generated in step S403. After that, in step S404, “(1) internal state” of the section information 172 shown in FIG.
- step S401 determines whether there is no connectable direction point. If it is determined in step S401 that there is no connectable direction point, the process proceeds to step S405, and the interruption counter is increased. This corresponds to a self-loop of state J in FIG.
- the “section extension process” is a process of connecting a new direction point to the section being created. For that purpose, it is necessary to combine the connectable direction points into one.
- branching is performed according to the number of connectable direction points. Specifically, the process branches depending on the number of elements registered in “(12) Connectable point direction point list” in the section information 172 shown in FIG. When the number of elements is 1, the process proceeds to step S414 as it is, but when the number is 0 and when the number is 2 or more, the process branches to step S412 and step S413, respectively.
- Branching to step S412 is limited to the case where the section being created has the “registered” attribute.
- a dummy direction point having the same direction as “(9) Average direction” registered in the section information 172 in FIG. 20 is created.
- the section is extended by itself even if there is no connectable direction point. This prevents the section from being interrupted before the end registration process.
- step S413 the direction is averaged between connectable direction points, and a dummy direction point having the value as the direction is created.
- step S414 When the connectable direction points are grouped into one by the processing of steps S411 to S413, “(9) average direction” registered in the section information 172 of FIG. 20 is used in step S414 using the direction points.
- Update Assuming that the value of the average direction so far is m, the direction of one new direction point is d, and the value of the direction point counter is c, the new average direction m ′ can be expressed by the following equation. It should be noted that the expression differs as follows between the case where the direction point counter represents the number of blocks and the case where the direction point counter represents the number of frames.
- m ′ (cm + d) / (c + 1)
- m ′ (cm + Bd) / (c + B)
- B is the number of frames per block.
- step S415 the “(8) direction point counter” registered in the section information 172 in FIG. 20 is increased.
- the amount to be increased is 1 when the direction point counter indicates the number of blocks, and B when the direction point counter indicates the number of frames.
- the next step S416 is resetting “(10) interruption counter” registered in the section information 172 of FIG. That is, as long as the transition including the section extension process is performed, the interruption counter is maintained at [0].
- step S417 “(5) end frame number” and “(6) end frame number with hangover” registered in the section information 172 in FIG. 20 are updated. Specifically, the current frame number 175 held by the tracking unit 165 in FIG. 18 is substituted for both.
- step S4108 “(4) filter application end frame number” held by the sound source extraction unit 173 shown in FIG. 21 is updated. Specifically, the current frame number 175 held by the tracking unit 165 in FIG.
- step S421 basically, the observation signals from “(3) filter application start frame number” to “(4) filter application end frame number” registered as management information of the sound source extraction unit 173 shown in FIG. This is a process of applying an extraction filter or the like to the process. Details will be described later.
- Step S422 is processing for further converting the filter application result in step S421 into a feature amount. Details of this will also be described later.
- the range to which the filter is applied is basically from “(3) filter application start frame number” to “(4) filter application end” registered as management information of the sound source extraction unit 173 shown in FIG.
- it is an observation signal up to “frame number” it is necessary to generate a large number of extraction results for several frames in order to generate a delta feature amount only when it is applied for the first time in the section being created. Therefore, the processing is changed according to “(3) initial flag” managed by the feature amount conversion unit 174 shown in FIG. In step S431, therefore, the process branches with reference to the value of the initial flag. If “(3) initial flag” managed by the feature amount conversion unit 174 shown in FIG.
- step S432 a predetermined offset is subtracted from “(3) filter application start frame number” registered as management information of the sound source extraction unit 173 shown in FIG. 21 as the value of “begin_frame” that is the current application start frame number. Value is used. However, if “begin_frame” becomes a negative value when the offset is subtracted, such as immediately after system startup, “0” is substituted.
- the offset value differs depending on what is used as the delta feature value, but an extra value (for example, 10) is used, and unnecessary frames are converted in the feature value conversion in step S422, which is the subsequent step in the flow of FIG. It may be deleted.
- step S431 (3) if the initial flag managed by the feature amount conversion unit 174 shown in FIG. 22 is “false”, that is, if the filter application is not the first time, the process branches to step S433. In that case, “(3) filter application start frame number” registered as management information of the sound source extraction unit 173 shown in FIG. 21 is substituted into “begin_frame”.
- step S433 “(4) filter application end frame number” registered as management information of the sound source extraction unit 173 shown in FIG. 21 is substituted into “end_frame” that is the current application end frame number.
- end_frame that is the current application end frame number.
- Step S435 is processing for applying an extraction filter to the observation signal.
- begin_frame ⁇ t ⁇ end_frame Frame t satisfying and all frequency bins ⁇
- the process according to the equation [1.2] described above is performed.
- W ( ⁇ ) is an extraction filter, and an estimation method of this filter will be described later.
- X ( ⁇ , t) and Y ( ⁇ , t) are the observation signal and the extraction filter application result, respectively.
- the extraction filter application result Y ( ⁇ , t) obtained in this way is the one in which the target sound in that section is emphasized, but the remaining sound of the interfering sound is also included as other components. For example, in an environment with reverberation, it is difficult to remove the reverberation component of the disturbing sound. Further, in the process of the present disclosure, since the extraction filter is estimated in the middle of the utterance period, the interference sound that has started to sound after that point is not removed even if the extraction filter W ( ⁇ ) is applied.
- steps S436 to S437 are performed as necessary. Note that since step S436 and step S437 are independent processes, only one of them may be executed.
- step S436 The removal of unerased residue in step S436 is as follows. 1) Estimating the remaining unerased, 2) Subtraction of remaining unerased, It consists of these two processes.
- N ( ⁇ , t) All-dead-space filter
- V ( ⁇ , t) Application result of the all blind spot spatial filter
- X ( ⁇ , t) includes a component derived from a sound source included and a component that is difficult to remove such as reverberation.
- the subtraction of the unerased is to subtract the unerased V ( ⁇ , t) from the extraction filter application result Y ( ⁇ , t).
- processing corresponding to equations [2.2] to [2.3] is performed. That is, assuming that the subtraction result is Z ( ⁇ , t), the magnitude (square) of Z ( ⁇ , t) is calculated by the equation [2.2], and thus obtained
- Equation [2.2] ⁇ and ⁇ are both positive real numbers, ⁇ is a value near 1 and ⁇ is a value near 0.
- Max (a, b) is a function indicating that the larger one of the two arguments is adopted, and the first argument is too small (particularly a negative value) in the equation [2.2]. It is used to prevent this.
- the time-frequency masking in step S437 is to estimate how many signals other than the target sound remain in the extraction filter application result Y ( ⁇ , t) in each frame and each frequency bin, and according to the degree. As a result, only the target sound is left by multiplying the coefficient. That is, a coefficient close to 0 is multiplied for a frame / frequency bin where a signal other than the target sound remains strong, and conversely, a coefficient close to 1 is multiplied for a frame / frequency bin where a signal other than the target sound hardly remains.
- the coefficient is called a mask, and applying a mask is called masking.
- a mask estimation method will be described later. If the mask value is M ( ⁇ , t), the masking is a process corresponding to Equation [2.4].
- step S436 is skipped, equation [2.4] is applied after substituting Y ( ⁇ , t) for Z ( ⁇ , t). This is the end of the description of the filter application process.
- step S441 a process of converting the output of the sound source extraction unit 173 into a feature value used in speech recognition is performed. That is, the spectrum that is the output of the sound source extraction unit 173 is converted into a mel frequency cepstrum coefficient (MFCC) that is a feature amount that the decoder in the speech recognition unit 156 applies to speech recognition.
- MFCC mel frequency cepstrum coefficient
- Cep (1, t) to Cep (K, t), which are MFCCs for one frame, are obtained from the filter application results Z (1, t) to Z (M, t) in frame t.
- M and K are the number of frequency bins and the number of cepstrum dimensions, respectively.
- step S442 a delta feature amount is calculated using the MFCC between adjacent frames. For the frame near the head of the section, since the delta feature value cannot be calculated, the frame itself is deleted.
- Steps S444 to S446 are processes executed only in the case of the first feature amount conversion in the section being created. Therefore, in step S443, the value of the initial flag ("(3) initial flag” which is management data of the feature amount conversion unit 174 shown in FIG. 22) is checked, and only when the value is "true” indicating that the value is the first time. The process proceeds to S444, and if not, the process proceeds to step S447.
- the “adjustment of the number of frames” in step S444 is a process of removing frames added at the first execution of the filter application process described above with reference to FIG. For example, it is assumed that the number of frames from the filter application start frame number (see FIG. 21) to the filter application end frame number (see FIG. 21) is T at the time of step S431. Since the first time branches to step S432, the number of frames is T + offset To increase. Thereafter, in step S442, frames for which the delta feature value cannot be calculated are removed. If the number of frames still exceeds T in step S444, the number of frames is adjusted to T by removing the leading frame.
- step S445 the MFCC average and standard deviation are calculated, and the calculation results are stored as “(1) MFCC average value” and “(2) MFCC standard deviation” in the feature amount conversion unit 174 shown in FIG. Record as.
- both the average and the standard deviation obtained as a calculation result are vectors, and the number of dimensions is K as in MFCC.
- the range for calculating the average and the standard deviation is the range of the observation signal 108 in the example shown in FIG.
- step S447 “feature normalization” is performed by subtracting (1) the MFCC average value held as management data of the feature amount converter 174 shown in FIG. 22 from the MFCC calculated in step S441 (cepstrum average). (Normalization) is divided by the MFCC standard deviation ((2) in FIG. 22) (cepstrum dispersion normalization). Only one may be executed as necessary.
- the mel frequency cepstrum coefficient (MFCC) and the delta feature quantity, which are feature quantities applied to the speech recognition generated in this way, are expressed as one vector for each frame.
- MFCC mel frequency cepstrum coefficient
- delta feature quantity which are feature quantities applied to the speech recognition generated in this way, are expressed as one vector for each frame.
- these data are stored in the extraction result buffering unit 166 of the front end unit 153 shown in FIG.
- the configuration of the extraction result buffering unit 166 is as shown in the extraction result buffering unit 135 of FIG. 13, and has different buffers 135a to 135c for each section.
- step S ⁇ b> 448 ((2) section ID) of the created section held in the section information 172 (FIG. 20) managed by the creating section management section 171 of the tracking section 165, and each buffer of the extraction result buffering section 166.
- the section IDs in the section information 134a to 134c (buffers 135a to 135c in FIG. 13) are compared, and if there is a match, the feature amount generated this time is added to the end of the buffer.
- the section information on the extraction result buffering unit 166 side is updated. If there is no match, a new buffer is generated in the extraction result buffering unit, and the feature value and section information are stored therein. This completes the description of “transitions that consume blocks”.
- step S451 branching is performed according to (2) internal state shown in FIG. 20 included in the section information 172 of the section management section 171 being created shown in FIG.
- step S451 performs the following processing. If the current state is states A, B, C, D, G, H, I, J, the process proceeds to step S452, and if the current state is any other state E, F, K, L, the process proceeds to step S452. This means that the “transition without consuming blocks” is terminated.
- step S452 means that a “transition that does not consume a block” is executed in each state. That is, If it is determined in step S451 that the current internal state is state A, the process proceeds to step S452, and “transition A that does not consume a block” corresponding to state A is executed. If it is determined that the current state in step S451 is the state B, the process proceeds to step S452, and the “transition B that does not consume a block” corresponding to the state B is executed. Similarly, for the other states C, D, G, H, I, and J, the process proceeds to step S452, which means that “transition without consuming blocks” corresponding to each state is executed.
- step S451 when the internal state is E, F, K, or L, “transition that does not consume a block” indicated by lines c and d is defined as understood from the state transition model shown in FIG. Since the process has not been performed, the process does not proceed to step S452 and the process ends.
- step S451 of the flow shown in FIG. 45 any of the internal states A, B, C, D, G, H, I, and J is determined, and the following transitions executed in step S452 are as shown in FIG. Description will be made sequentially according to each flow of FIG. (1) Transition A that does not consume blocks: FIG. (2) Transition B that does not consume blocks: FIG. (3) Transition C that does not consume blocks: FIG. (4) Transition D not consuming a block: FIG. (5) Transition G not consuming blocks: FIG. (6) Transition H that does not consume blocks: FIG. (7) Transition I not consuming a block: FIG. (8) Transition J that does not consume blocks: FIG.
- the internal state A is an internal state indicating [interval generated] as described with reference to FIG.
- step S461 “(3) start frame number” registered in the section information 172 in FIG. 20 is compared with the current frame number 175 that is the registration data of the tracking unit 165 in FIG. Start frame number ⁇ current frame number It is determined whether or not the above equation holds. This determination process is to postpone the start of tracking in the section when a future time stamp is specified in the registration process at the beginning. Only when the current frame number is greater than or equal to the starting frame number, the process proceeds to step S462. Otherwise, all processing is skipped and the processing is terminated.
- Step S462 is a check of whether the end is reserved by end registration processing (described later).
- “(11) scheduled end frame number” which is the registration information of the section information 172 in FIG. 20 is an undefined value
- the end is not reserved in the first place, and the process proceeds to step S463.
- “(11) scheduled end frame number” includes a value other than an undefined value, if it is larger than the current frame number 175 that is the registration data of the tracking unit 165 in FIG. Since it has not reached, it progresses to step S463 similarly.
- step S465. This represents a transition from the state A to the state E in FIG. 19, and “(1) internal state” in the section information of FIG. 20 is changed to the state E before proceeding to step S466.
- step S463 the length of the section being created is compared with the “minimum length of utterances to be accepted: L1” defined in advance.
- the “minimum length of utterances to be accepted: L1” corresponds to the length L1 of the times t3 to t4 shown in FIG. This L1 is the same as the length necessary for determining the starting end.
- the process proceeds to step S464, and the state C is changed. If the length of the section being created is not greater than or equal to L1, the process does not proceed to step S464, and “transition A that does not consume a block” is terminated.
- the unit of L1 may be any of seconds, the number of frames, and the number of blocks, but in the comparison process executed in step S463, the length of the creation section is expressed in the same unit as L1. The same applies to the units L2 to L5 shown in FIG.
- the internal state B is an internal state indicating “interrupted (before starting end is determined)”.
- step S471 “(10) interruption counter” in the section information 172 shown in FIG. 20 is compared with the length L4 necessary for determining the end.
- the length L4 required for determining the end point is L4 (seconds, the number of frames, or the number of blocks) at times t6 to t8. Only when the interruption counter is equal to or greater than L4, the process proceeds to step S472, and otherwise, “transition B not consuming a block” is terminated.
- Step S472 corresponds to the transition from the state B to the state E in FIG. In this process, “(1) internal state” of the section information 172 shown in FIG.
- the internal state C is an internal state indicating [start end confirmed] as described with reference to FIG.
- step S481 the process is the same as the process of step S462 of FIG. 46 described above, and is a check of whether the end is reserved by the end registration process (described later).
- “(11) scheduled end frame number” that is the registration information of the section information 172 in FIG. 20 is an undefined value
- the process proceeds to step S482.
- “(11) scheduled end frame number” includes a value other than an undefined value, if it is larger than the current frame number 175 that is the registration data of the tracking unit 165 in FIG. Since it has not reached, the process similarly proceeds to step S482. Only when the current frame number is equal to or greater than the scheduled end frame number, the process proceeds to step S489.
- step S482 the length of the section being created is compared with the length L2 from the beginning of the speech section to the filter estimation start position (L2 from time t3 to t5 in FIG. 10). If the length being created is greater than or equal to L2, the process proceeds to step S483. Otherwise, the “transition C not consuming block” is terminated.
- Steps S483 to S487 are processes corresponding to the transition from the state C to the state G in FIG.
- a check is made as to whether the section being created can be rejected (step S484), filter estimation (step S485), and an input observation signal (FIG. 10).
- the process of generating an extraction result for the observation signal 108) is performed (step S486).
- it demonstrates in order.
- step S484 the reason for checking whether the section being created can be rejected in step S484 will be described.
- a rejection check is performed after the termination is determined.
- generation of feature values applied to speech recognition and decoding have been omitted.
- a feature amount is generated before the end is determined and further decoded. For this reason, if the rejection is performed only when the terminal is determined, useless decoding or the like is performed even for the section to be rejected. Therefore, when the filter estimation start position, that is, when the length of the section reaches L2, the section that has already become unnecessary is rejected. This process prevents unnecessary decoding and the like.
- Condition a) Is the average direction ((9) average direction registered in the section information 172 of FIG. 20) at the rejection determination time (filter estimation start position) within a predetermined range?
- Condition b) In the section of the observation signal (observation signal 108 in FIG. 10) that is a filter application target, does the ratio of “sound-like” frames exceed a predetermined threshold?
- Condition c) In the section from the start point of the speech section to the filter estimation start position (time t3 to t5 in FIG. 10), does the density of direction points exceed a predetermined threshold value?
- Step S488 is a rejection process for the section being created. In the execution of this rejection process, “(1) internal state” of the section information 172 shown in FIG.
- step S484 This process represents the process in which the determination in step S483 is Yes and the process proceeds to step S485.
- step S485 filter estimation processing is executed, and in step S486, extraction result generation processing by filter application is performed. Details of these processes will be described later. Further, in step S487, “(1) internal state” in the section information shown in FIG.
- step S489 the case where the process returns to step S481 and branches to step S489 will be described. This indicates that the termination is determined by the termination registration process before the extraction filter or the like is estimated. In that case, in step SS489, the entire section is extracted. In this process, the same filter estimation and extraction result generation as in steps S485 to S486 are performed. Details of this processing will be described later. Finally, the flow goes to the state F in step S490. This state indicates that the end point is determined before the extraction filter is estimated.
- the internal state D is an internal state indicating “interrupted (before extraction filter estimation)”.
- Step S491 is the same processing as step S471 described with reference to FIG. 47, and “(10) interruption counter” in the section information 172 shown in FIG. 20 and the length L4 necessary for determining the end point are obtained. Make a comparison.
- the length L4 required for determining the end point is L4 (seconds, the number of frames, or the number of blocks) at times t6 to t8. Only when the interruption counter is greater than or equal to L4, the process proceeds to step S492, and otherwise, “transition D not consuming a block” is terminated.
- step S492 indicates that the termination is determined before the extraction filter or the like is estimated, and corresponds to the transition from state C to state F in FIG.
- step S492 it is checked whether or not rejection is possible.
- the rejection determination for example, the following conditions are used.
- Condition a) Is the average direction at the time of rejection determination ((9) average direction registered in the section information 172 in FIG. 20) within a predetermined range defined in advance?
- Condition b) In the section of the observation signal (time t2 to t8 in FIG. 10) of the entire section to be applied with the filter, does the ratio of “sound-like” frames exceed a predetermined threshold?
- Condition c) Does the density of direction points exceed a predetermined threshold in the entire speech section (time t3 to t8 in FIG. 10)?
- Step S495 represents rejection, and in this process, “(1) internal state” of the section information 172 shown in FIG.
- step S492 if all of the above conditions a to c are satisfied, it is determined not to be rejected, the process proceeds to step S493, and the entire section is extracted. Details will be described later. Finally, the flow goes to the state F in step S494.
- the internal state G is an internal state indicating [extracted extraction filter] as described with reference to FIG.
- Step S501 is a check of whether or not the end is reserved by end registration processing (described later), as in step S481 in FIG. 48 and step S462 in FIG.
- “(11) scheduled end frame number” which is the registration information of the section information 172 in FIG. 20, is an undefined value
- the end is not reserved in the first place, and the process proceeds to step S502.
- “(11) scheduled end frame number” includes a value other than an undefined value, if it is larger than the current frame number 175 that is the registration data of the tracking unit 165 in FIG. Since it has not reached, the process similarly proceeds to step S502. Only when the current frame number is greater than or equal to the scheduled frame number, the process proceeds to step S504.
- step S502 it is checked whether the length of the section being created exceeds the maximum length of utterances that can be accepted. If not exceeded, “transition G not consuming block” is terminated. When exceeding, it progresses to step S503 and changes to the state I there.
- step S504 the case of branching to step S504 will be described.
- it means that the current time has arrived at the scheduled end time specified in the end registration process (described later) while the extraction results are being generated sequentially.
- section determination processing is performed in step S504. Details will be described later.
- the flow goes to the state K in step S505. This state represents that the end point is determined after the extraction filter is estimated.
- the internal state H is an internal state indicating “interrupted (before termination hangover)”.
- step S511 it is checked whether “(10) interruption counter” in the section information 172 shown in FIG. 20 exceeds the termination hangover length L3. Note that L3 corresponds to L3 indicated at times t6 to t7 in FIG. If not exceeded, “transition H not consuming block” is terminated. When it exceeds, it progresses to step S512 and changes to the state J.
- the internal state I is an internal state indicating [section length too long] as described with reference to FIG. This state indicates that the length of the section being created has exceeded the maximum length of an acceptable utterance. There are two possible behaviors in this state. a) Reject the section being created. b) At that time, the end point is determined even if it is not interrupted.
- a) means that an utterance longer than 3 seconds is rejected, and b) generates a recognition result from the first 3 seconds of speech.
- Means. Which behavior is to be set is set according to the purpose of use.
- Step S521 is a branch based on the setting when the section being created has reached the maximum length of an acceptable utterance. If the setting is a), the determination in step S521 is Yes, and the process proceeds to step S522. If the setting is b), the determination in step S521 is No, and the process proceeds to step S504.
- step S522 If the setting is a), the process proceeds to step S522, where the state transitions to a state L representing rejection. On the other hand, if the setting is b), the process proceeds to step S523, where it is checked whether or not to reject.
- the rejection check in step SS523 is the same as the processing in step S492 of FIG. 49 described above.
- the rejection determination for example, the following conditions are used.
- Condition a) Is the average direction at the time of rejection determination ((9) average direction registered in the section information 172 in FIG. 20) within a predetermined range defined in advance?
- Step S522 is a rejection process. In this process, “(1) internal state” of the section information 172 shown in FIG.
- step S524 the process proceeds to step S524 to perform section determination processing. This process will be described later. Finally, the flow goes to the state K in step S525.
- the internal state J is an internal state indicating [interrupted (after termination hangover)] as described with reference to FIG.
- Step S531 is the same processing as step S491 in FIG. 49 and step S471 in FIG. 47, and “(10) interruption counter” in the section information 172 shown in FIG. 20 and the length L4 necessary for determining the end point. Compare with. In the example shown in FIG. 10, the length L4 required for determining the end point is L4 (seconds, the number of frames, or the number of blocks) at times t6 to t8. Only when the interruption counter is greater than or equal to L4, the process proceeds to step S532, and otherwise, “transition J not consuming blocks” is ended.
- step S532 indicates that the length at which the direction point is interrupted has reached the determination time L4 and the end point has been determined.
- a rejection check similar to step S492 in FIG. 49 or step S523 in FIG. 52 is performed. That is, the following conditions are used for rejection determination, for example.
- Condition a) Is the average direction at the time of rejection determination (“(9) average direction” registered in the section information 172 in FIG. 20) within a predetermined range defined in advance?
- Condition b) In the section of the observation signal (time t2 to t8 in FIG. 10) of the entire section to be applied with the filter, does the ratio of “sound-like” frames exceed a predetermined threshold?
- Condition c) Does the density of direction points exceed a predetermined threshold in the entire speech section (time t3 to t8 in FIG. 10)?
- Step S533 is a rejection process. In this process, “(1) internal state” of the section information 172 shown in FIG. If not rejected, section determination processing is performed in step S533. This process will be described later. Finally, in step S534, the state transitions to state K.
- the filter estimation process uses, for example, the observation signal 106 at time t1 to t5 (from a point retroactive to time t5) in the example illustrated in FIG. Processing in each step of the flow shown in FIG. 54 will be described.
- a reference signal (reference) is generated using the following equation.
- Equation [3.1] is a three-dimensional vector corresponding to the sound source direction (speech direction), and ⁇ is the average direction (“(9) Average direction in the section information 172 shown in FIG. 20). )).
- a steering vector S ( ⁇ ) corresponding to the direction ⁇ is calculated using this vector and the equations [3.2] and [3.3].
- m_k is the position vector of the kth microphone
- m is the average position of all microphone positions
- F is the sampling frequency
- C is the speed of sound
- j is an imaginary unit
- the steering vector is a vector that represents a phase difference of signals observed by each microphone with respect to a sound arriving from the direction ⁇ in the time-frequency domain.
- U ( ⁇ , t) represents the phase difference between the microphones for the observed signal vector X ( ⁇ , t).
- a time frequency mask M ( ⁇ , t) is calculated from S ( ⁇ ) and U ( ⁇ , t).
- the superscript H represents Hermitian transposition (conjugate transposition).
- the time frequency mask M ( ⁇ , t) is maximum, and conversely, no sound coming from the ⁇ direction is included at all. In this case, the time frequency mask M ( ⁇ , t) is minimized.
- J is a positive real number for adjusting the masking effect. The larger J is, the greater the masking effect is.
- the time signal frequency mask M ( ⁇ , t) is averaged in the frequency bin direction to obtain the reference signal r (t) corresponding to the t-th frame.
- ⁇ > _ ⁇ represents that the set ⁇ is a set composed of a plurality of frequency bin numbers, and an average is calculated among the frequency bins belonging to the ⁇ .
- the set ⁇ is expressed by, for example, the formula [3.6]. This set means calculating an average among frequency bins from ⁇ _ ⁇ min ⁇ to ⁇ _ ⁇ max ⁇ .
- the calculation shown in the above equations [3.1] to [3.7] is performed for the frame number t corresponding to the observation signal 106 shown in FIG. 10, for example, so that the reference signal r (t ) In FIG. 10, when the end 104 is determined before the length of the section reaches L2, that is, the end 104 is on the time axis before the time t5 that is the filter estimation start position in the present processing example.
- the reference signal is calculated for a time point that is a predetermined time after the end. Thereafter, the operation for calculating the average between frames is the same.
- Steps S542 to S547 are a loop for frequency bins, and the processing of steps S543 to S546 is performed for each frequency bin.
- the decorrelation in step S543 means that the observed signal vector X ( ⁇ , t) is subjected to a transformation such as the following equation [4.1] to obtain the equation [4.2]. This is a process for obtaining X ′ ( ⁇ , t) that satisfies the above.
- the matrix P ( ⁇ ) of the above equation [4.1] is called a decorrelation matrix.
- R ( ⁇ ) in Equation [4.3] is the covariance matrix of the observation signal.
- ⁇ •> _t means that an average is calculated for the section of the observation signal 106 shown in FIG. 10 applied to the filter estimation.
- eigenvalue decomposition is applied to the covariance matrix R ( ⁇ ) of the observation signal to decompose it into a product like the right side of Equation [4.4].
- V ( ⁇ ) is a matrix (equation [4.5]) composed of eigenvectors of the covariance matrix R ( ⁇ ) of the observation signal
- D ( ⁇ ) is a diagonal matrix composed of eigenvalues of the covariance matrix R ( ⁇ ) of the observation signal (formula [4.6]).
- the maximum eigenvalue is d1 ( ⁇ )
- the minimum eigenvalue is dn ( ⁇ ).
- a decorrelation matrix P ( ⁇ ) is obtained according to the equation [4.7].
- step S544 the total blind spot spatial filter N ( ⁇ ) is estimated.
- the calculation method is, for example, as described in JP 2011-107602 A.
- eigenvalue decomposition is applied to the covariance matrix of the observation signal, it can be easily obtained by the above equation [4.8].
- rescaling is performed in step S546.
- step S545 the extraction filter W ( ⁇ ) is estimated.
- the calculation method is shown below.
- G ( ⁇ ) in Equation [5.1] is a weighted covariance matrix of the uncorrelated observation signal with the inverse of the reference signal r (t) as a weight. Also in this equation, the average calculation is performed for the section of the observation signal 106 shown in FIG. 10 applied to the filter estimation.
- the extraction filter W ( ⁇ ) is a solution to the minimization problem of Equation [5.2], and this problem can be solved by applying eigenvalue decomposition to G ( ⁇ ).
- Equation [5.3] The eigenvalue decomposition of G ( ⁇ ) is expressed as in Equation [5.3].
- a ( ⁇ ) is a matrix composed of eigenvectors of G ( ⁇ )
- B ( ⁇ ) is a diagonal matrix composed of eigenvalues of G ( ⁇ ). If the eigenvector corresponding to the minimum eigenvalue bn ( ⁇ ) is An ( ⁇ ), the extraction filter W ( ⁇ ) is expressed by the equation [5.6]. However, since rescaling has not been applied to the extraction filter W ( ⁇ ) in this equation, rescaling is performed in step S546.
- step S546 rescaling is performed on the extraction filter W ( ⁇ ) and the total blind spot spatial filter N ( ⁇ ).
- Rescaling is an operation that appropriately adjusts the scale for each frequency bin with respect to the extraction result.
- the rescaling is estimated based on the unerased residue included in the extraction filter application result and the application of the total blind spot spatial filter. It is also used for the purpose of adjusting the scale before subtraction with the rest of the erasure.
- the rescaling equation is as follows.
- This formula is for adjusting the scale of the target sound included in the application result of the extraction filter to the scale of the target sound included in the application result of the delay sum array.
- the rescaling coefficient g ( ⁇ ) is calculated by the equation [6.1], and is expressed by the extraction filter W ( ⁇ ) and the total blind spot spatial filter N as shown in the equations [6.2] and [6.3]. Reflected in each of ( ⁇ ).
- step S486 of “transition C that does not consume blocks” described with reference to FIG. 48 and step S493 of “transition D that does not consume blocks” described with reference to FIG. Will be described with reference to the flowchart shown in FIG. This process is executed in the transition from the states C and D to the state F in FIG.
- the filter is estimated and the extraction result is generated after the end is determined.
- step S551 the start and end of the section being created are determined. At this time, only the end frame number with hangover ((6) in the section information 172 in FIG. 20) is undetermined in the generated / stored data in FIG.
- the end frame number with hangover ((6) in the section information 172 in FIG. 20), the end frame number ((5) in the section information 172) in L3 (in FIG. 10, the section end times t6 to t7 Substitute the value with (length) added.
- step S552 the range to which the extraction filter is applied is determined. At this time, only the filter application end frame number (“(4) filter application end frame number” which is management data of the sound source extraction unit 173 shown in FIG. 21) is undecided in the generated / stored data of FIG. Similarly to the end frame number with hangover, the value obtained by adding L3 (the length from the end time of the section t5 to t6 in FIG. 10) to the end frame number ((5) in the section information 172 of FIG. 20). Is assigned.
- L3 the length from the end time of the section t5 to t6 in FIG.
- step S553 filter estimation is performed.
- This filter estimation process is the same process as described above with reference to the flowchart of FIG.
- step S554 an extraction result is generated.
- This extraction result generation process is the same process as described above with reference to the flows of FIGS.
- step S555 a special feature amount indicating “utterance end” is added to the part extraction result buffering unit 166 of the front end unit 153 shown in FIG.
- This process is the same as the process in step S562 described with reference to FIG. 56, and the meaning of this process will be described later.
- step S504 of “transition G that does not consume blocks” in FIG. 50 step S524 of “transition I that does not consume blocks” in FIG. 52, and step S533 of “transition J that does not consume blocks” in FIG.
- step S504 of “transition G that does not consume blocks” in FIG. 50 step S524 of “transition I that does not consume blocks” in FIG. 52, and step S533 of “transition J that does not consume blocks” in FIG.
- step S561 the start / end of the section being created is determined.
- the hangover termination frame number ((6) in the section information 172 in FIG. 20) is undetermined in the generated / held data in FIG. 20 (except for the transition from the state J to the state K).
- the end frame number with hangover ((6) in the section information 172 in FIG. 20)
- the end frame number ((5) in the section information 172) in L3 (in FIG. 10, the section end times t6 to t7 Substitute the value with (length) added.
- step S562 a special feature amount indicating “utterance end” is added to the part extraction result buffering unit 166 of the front end unit 153 shown in FIG.
- the meaning of this process will be described.
- the feature amount that is the extraction result is sequentially generated, and the decoding as the speech recognition processing is sequentially performed by applying the feature amount. Therefore, for the decoder, it is not known from the feature amount alone whether it is in the middle or the end of the section. Therefore, when the end of the section being created is determined, it is necessary to notify the decoder that “a feature quantity for the section is no longer generated”.
- a special feature amount indicating “utterance end” is prepared as a notification means, and is added to the part extraction result buffering unit 166 of the front end unit 153 shown in FIG. For the same reason, in the entire section extraction (FIG. 55), a feature amount indicating “utterance end” is added in the last step S555. This is the end of the description of the section determination process and the description of the section update (step S293 in FIG. 29).
- step S294 in the tracking process flow shown in FIG. 29 will be described with reference to the flowchart shown in FIG. In this process, when there is a direction point that does not connect to any section being created, a new section is generated starting from that direction point.
- Steps S571 to S577 are a loop for each entry in the direction point connection table 179, which is management data of the tracking unit 165 shown in FIG.
- One entry of the direction point connection table 179 holds a connectable section list indicating which section being created can be connected to one of the direction points.
- step S572 it is determined whether there is a section being created that can be connected to the direction point. If the number of elements in the connectable section list is 1 or more, there is a section being created that can be connected, so steps S573 to S576 are skipped. Only when the number of elements in the connectable section list is 0, the process proceeds to step S573.
- Step S ⁇ b> 573 is a process of generating a creating section management unit (a creating section management unit 171 of the tracking unit 165 shown in FIG. 18) corresponding to one creating section.
- this module has three modules: section information 172, a sound source extraction unit 173, and a feature amount conversion unit 174. Each of them is initialized in steps S574 to S576. Details of each initialization will be described later. Finally, the loop is closed in step S577.
- step S574 the section information initialization in step S574 will be described with reference to the flowchart shown in FIG. In this process, an initial value is assigned to each member of the section information (see FIG. 20).
- step S581 state A is set to the internal state ((1) in FIG. 20).
- step S582 a predetermined identification value is set for the section ID ((2) in FIG. 20). For example, a value obtained by adding 1 to the previously issued section ID may be used.
- step S583 the start frame number ((3) in FIG. 20) and the start frame number with hangover ((4) in FIG. 20) are set.
- the start frame number For the start frame number, if the number of frames per block is B, A value obtained by subtracting (B-1) from the current frame number 175 (see FIG. 18) is substituted. A value obtained by subtracting the hangover section length L5 (the section L5 from time t2 to t3 in FIG. 10) from the current frame number is substituted for the start frame number with hangover. However, if a negative value is obtained when a certain value is subtracted from the start frame number, such as when a section occurs immediately after system activation, the minimum frame number (for example, 0) is set as the start frame number with hangover.
- step S584 a termination frame number ((5) in FIG. 20) and a termination frame number with hangover ((6) in FIG. 20) are set. Specifically, the current frame number 175 (see FIG. 18) is substituted for both.
- step S585 Since the section information generated by this “initialization of section information” does not have the “registered” attribute, in step S585, a value (false) is shown in the registered flag ((7) in FIG. 20). ).
- step S586 the direction point counter ((8) in FIG. 20) is set. At this point, since one direction point is already included in the creation, a value corresponding to it is substituted. Specifically, 1 is substituted if the direction point counter represents the number of blocks, and B is substituted if it represents the number of frames.
- step S587 the direction of the direction point is substituted for the average direction ((9) in FIG. 20). At this time, since the section is not interrupted, 0 is assigned to the interrupt counter ((10) in FIG. 20).
- Section information generated by "Initialization of section information” does not have a "Registered” attribute, so it is not subject to end registration processing. Therefore, in step S589, an undefined value is substituted for the scheduled end frame number ((11) in FIG. 20).
- step S590 an empty list is substituted into the “list of connectable direction points” ((12) in FIG. 20). This indicates that the direction point is not yet connected to the section being created immediately after generation.
- Step S591 is initialization of the filter application start frame number (management data (3) of the sound source extraction unit 173 shown in FIG. 21), and the same value as the start frame number with hangover ((4) of FIG. 20) is substituted. .
- Step S592 is initialization of the filter application end frame number ((4) in FIG. 21), and the same value as the current frame number 175 (see FIG. 18) is substituted.
- step S576 of the flow shown in FIG. 57 will be described with reference to the flowchart shown in FIG.
- step S601 the MFCC generation unit 201 in the feature amount conversion unit 174 shown in FIG. 22, that is, the MFCC generation unit 201 that generates a mel frequency cepstrum coefficient (MFCC) that is a feature amount applied to speech recognition is initialized. .
- MFCC mel frequency cepstrum coefficient
- step S602 the MFCC average value ((1) in FIG. 22) and the MFCC standard deviation, which are members recorded by the feature value conversion unit 174 shown in FIG. 22 as data for normalizing the feature values. ((2) in FIG. 22) is cleared.
- step S603 a value (true) indicating the first time is substituted for the first time flag ((3) in FIG. 22).
- special processing can be performed when extraction result generation (processing shown in FIGS. 42 to 44) is performed for the first time in the section being created.
- step S604 the inverse STFT unit 202 of the feature amount conversion unit 174 shown in FIG. 22 is initialized as necessary. This process is performed only when the inverse STFT unit 202 is provided.
- step S295 the deletion of unnecessary sections shown in step S295 in the flow of FIG. 29 will be described.
- steps S291 to S294 the end of a section being created is fixed and another section being created is rejected.
- Deletion of unnecessary sections is a process of deleting those sections and removing them from the subsequent tracking targets. Details of the unnecessary section deletion will be described with reference to the flowchart shown in FIG.
- Steps S611 to S614 are loops for the section being created, that is, loops for each of the creating section management units 171 of the tracking unit 165 shown in FIG.
- step S612 it is determined whether or not the internal state of the section being created is an end state.
- the end state is one of three states: state F (the end is determined before filter estimation), state K (the end is determined after filter estimation), or state L. If the internal state is one of the three states, the process proceeds to step S613, and the section being created is deleted. If the internal state is other than the end state, step S613 is skipped. Finally, the loop is closed in step S614.
- step S253 whose description was skipped in the description of FIG. 25, will be described.
- This is a process of registering the start or end of a section using information given from the outside. This process is executed when the start and end points are detected by a method that does not require a determination time among the speech section detection methods.
- step S621 the presence / absence of a notification of the start edge is determined.
- the “start notification” is a start notification based on a voice interval detection method that does not require a determination time. Specifically, for example, the event occurs when the start end of the section is detected by the voice section detection processing based on the hand image executed in step S265 in the flow of FIG. When this notification exists, the process proceeds to step S622, and when there is no notification, step S622 is skipped.
- the start end registration process in step S622 will be described later.
- step S623 is an event that occurs when a voice end detection method that does not require a determination time, such as a hand image detection method, detects the end, as described above.
- a voice end detection method that does not require a determination time, such as a hand image detection method, detects the end, as described above.
- step S624 is skipped.
- the termination registration process in step S624 will be described later.
- step S622 the start edge registration process in step S622 will be described with reference to the flowchart shown in FIG. This process is similar to the process executed in the “create new section” described above with reference to FIG. 57, but the values to be set are different for some members.
- step S631 The generation of the creating section management unit in step S631 is the same process as step S573 in the flow of FIG.
- This is a process of generating a creating section management unit (a creating section management unit 171 of the tracking unit 165 shown in FIG. 18) corresponding to one creating section.
- this module has three modules: section information 172, a sound source extraction unit 173, and a feature amount conversion unit 174.
- step S632 for example, the time stamp given to the notification transmitted from the hand image processing unit 223 (FIG. 24) configured in the image processing unit 155 in the voice recognition device 150 in FIG. 15 is converted into a frame number.
- the information in the observation signal buffering unit (FIG. 17) is referred to as necessary.
- the frame number obtained here is [frame_idx] which is frame identification information.
- Step S634 is the same as the process of step S581 in the section information initialization process described with reference to FIG. State A is assigned to the internal state ((1) in FIG. 20).
- Step S635 is the same as step S582 in the flow of FIG.
- a predetermined identification value is substituted into the section ID ((2) in FIG. 20). For example, a value obtained by adding 1 to the previously issued section ID may be used.
- the issued section ID is incremented by 1 each time step S582 or step S635 is executed.
- step S635 the start frame number is set. Unlike the processing in step S583 in FIG. 58, both the start frame number ((3) in FIG. 20) and the start frame number with hangover ((4) in FIG. 20) are the frame numbers obtained in step S632 [ frame_idx] is substituted.
- Step S636 is the same as the processing of step S584 in FIG. 58, and the termination frame number ((5) in FIG. 20) and the termination frame number with hangover ((6) in FIG. 20) are respectively set. Specifically, the current frame number 175 (see FIG. 18) is substituted for both.
- Step S637 unlike step S585 in FIG. 58, substitutes a value (true) indicating that it has been registered into the registered flag ((7) in FIG. 20). This is to express that the section being created generated by the start registration process has the “registered” attribute.
- Step S638 to Step S642 is the same processing as Step S586 to Step S590 in the flow of FIG. Note that the section being created that is generated by the start end registration process is the target of the end registration process, but at this point in time immediately after generation, the end registration process has not yet been called. An undefined value is substituted for ((11) in FIG. 20).
- the initialization of the sound source extraction unit in the last step S643 and the initialization of the feature amount conversion unit in step S644, these processes, respectively, are the processes of steps S575 and S576 described with reference to FIG.
- step SS624 in the section registration process of FIG. 62 will be described with reference to the flowchart shown in FIG.
- Step S645 is a process of converting a time stamp given to a notification transmitted from, for example, the hand image processing unit 223 (FIG. 24) into a frame number, similarly to the process of step S632 of the flow shown in FIG.
- the frame number obtained here is [frame_idx].
- step S642 [frame_idx] set in step S641 is compared with the current frame number 175 held by the tracking unit 18 shown in FIG. If [frame_idx] is smaller, it is considered that a past time stamp has been designated as the end, and the process branches to step S644. Otherwise, it is considered that the current or future time stamp is designated, and the process branches to step S643.
- step S643 [frame_idx] is substituted into the scheduled end frame number ((11) in FIG. 20). By doing so, when the tracking process proceeds and a predetermined frame number is reached, the process of ending the tracking of that section is appropriately performed.
- step S644 the current frame number 175 (see FIG. 18) is substituted for the scheduled end frame number ((111) in FIG. 20). This means that if a past time stamp is specified as the end, it is read as “immediately end”. This is the end of the description of the section registration process.
- FIG. 65 operates even with one decoding.
- sequential decoding processing may be executed sequentially for each decoder.
- Steps S651 to S664 are a loop for each decoder. That is, each of the decoders 212-1 to 212-n prepared in the voice recognition unit 156 shown in FIG. 23 performs the processing of steps S652 to 663.
- Each decoder holds section IDs 213-1 to 213-n as shown in FIG. 23 in order to make it possible to know which section's extraction result (feature amount) is being decoded.
- an undefined value is assigned, indicating that “no section is decoded”.
- step S652 it is determined whether or not the section ID held by the decoder is an undefined value. If it is an undefined value, the process branches to step S656. If the section ID is not an undefined value, the process branches to step S653.
- step S653 it is determined whether or not the section ID held by the decoder is valid.
- the section ID is valid means that a feature amount corresponding to the section is generated or may be generated in the future. More specifically, the section identified by the section ID is in the section being created section 171 included in the tracking section 165 shown in FIG. 18, or the extraction result buffering section 166 of the front end section 153 shown in FIG. Check based on whether or not it exists. If the section exists in at least one of the sections, it is determined that the section ID is valid, and the process branches to step 654. If neither exists, it is determined that the section ID is invalid, and the process branches to step S655.
- step S655 The processing in step S655 will be described first. Branching here indicates that the section ID 213 held by the decoder 212 of the speech recognition unit 156 shown in FIG. 23 is no longer valid. Specifically, this is a case where the section that has been decoded so far is rejected on the way. In this case, since the decoding result up to the middle is no longer necessary, the decoding is canceled. After canceling, the process proceeds to step S656.
- step S656 This is a process of associating a new section with the decoder.
- all sections existing in the extraction result buffering unit 166 of the front end unit 153 shown in FIG. 16 are ranked.
- the extraction result buffering unit 166 has the same configuration as that of the extraction result buffering unit 135 shown in FIG. 13, the section data stored in the buffers 135a to 135c shown in FIG. Do.
- the top one is made to correspond to the decoder. That is, the section ID is substituted into the section ID 213 held by the decoder 212 of the speech recognition unit 156 shown in FIG. If all sections existing in the extraction result buffering unit 166 have already been associated with the decoder, an undefined value is substituted. This phenomenon occurs when the number of decoders is larger than the number of sections being created. If it is determined in step S656 that the decoder is associated with the section, the process proceeds to step S654.
- step S654 the feature amount of the section corresponding to the decoder is extracted from the extraction result buffering unit 166.
- the feature amount corresponding to the section ID disappears once. Note that when there is an attempt to acquire a feature amount for a section ID that does not exist in the extraction result buffering unit 166, or when an undefined value is substituted as a section ID in step S656, there is no corresponding feature amount. Feature acquisition fails.
- step S657 it is determined whether or not the feature amount acquisition in step S654 has succeeded. If successful, the process proceeds to step S658, and if unsuccessful, the subsequent process is skipped and the process proceeds to step S664.
- step S658 a decoding process, that is, a voice recognition process is performed on the feature amount acquired in step S654. Thereafter, in step S659, it is determined whether the recognition result is confirmed.
- the recognition result is determined in the following two cases.
- A) A case where a special item representing “determining a section” is included in the feature amount obtained in step S654.
- B The recognition hypothesis held by the decoder no longer changes.
- step S659 If the recognition result is confirmed in step S659, the process proceeds to step S660. If not confirmed, the subsequent processing is skipped, and the process proceeds to step S664.
- step S660 If it is determined in step S659 that the recognition result has been confirmed for the reason (b) above, the section corresponding to the decoder still remains in the tracking unit 165, but it is useless to track the section further. It is. Therefore, the section for which the recognition result is confirmed is deleted from the tracking unit even if the end point is not confirmed.
- the recognition result is confirmed for the above reason (a) since the section has already been deleted from the tracking unit by “deletion of unnecessary section” (processing in step S295 in the flow of FIG. 29), the step None is done in S660.
- step S661 it is determined whether or not to reject the recognition result generated in this way.
- the reason for performing the rejection determination is that the section to be processed in the device of the present disclosure includes not only the case where the target sound is spoken but also the case where the disturbing sound (including voice and non-voice) is sounding. It is. In order to determine whether the section is the target sound or the disturbing sound, the score and reliability obtained at the time of decoding are used. If it is determined that the sound is an interference sound, the current recognition result is rejected. That is, the subsequent processing is skipped and the process proceeds to step S664. If the target sound is determined, the process proceeds to step S662.
- step S662 the recognition result is transmitted to the post-processing unit 157 as shown in FIG. At this time, since this decoder does not correspond to any section, an undefined value is substituted for the section ID (section ID 213 shown in FIG. 23) in step S663. Finally, the decoder loop is closed in step S664. This is the end of the description of the speech recognition processing and the description of the speech processing.
- step S264 the lip image processing in step S264 will be described with reference to the flowchart shown in FIG.
- This processing is utterance section detection using the movement of the lip image, and for this processing, for example, the processing described in JP-A-10-51889 can be applied. Only the outline will be described below.
- This processing is executed by the lip image processing unit 221 of the image processing unit 155 shown in FIG.
- step S665 a region having a lip shape is detected from the input image input from the image input unit 154.
- step S666 the updated area detected from the previous image frame is compared with the lip area detected from the current image frame to determine whether there is any movement. If it is determined that there is movement, the process proceeds to step S667. If it is determined that there is no movement, or if the lip area is not detected in step S665, the lip image processing ends.
- step S667 the coordinates of the lip region are converted into the sound source direction.
- step S668 a direction point composed of the sound source direction is generated and transmitted to the front end unit 153.
- This process is a process executed by the hand image processing unit 223 of the image processing unit 155 shown in FIG. This is a process of determining that the start or end of the utterance when the hand shape changes in a specific manner.
- the processing described in JP 2012-203439 A can be applied to hand shape detection itself.
- step S671 a hand region having a specific shape defined in advance as information indicating the start and end of a speech section is detected from the input image input from the image input unit 154.
- the specific shape is, for example, goo, choki, or par.
- step S672 the hand region detected from the previous image frame is compared with the hand region detected from the current image frame, and it is determined whether the movement corresponds to the start of speech or the end of speech. For example, settings such as a change from par to goo as the former and a change from goo to par as the latter are defined in advance, and these are taught to the user.
- step S673 When the shape change of the hand region detected from the image is a movement corresponding to the start of utterance, the process branches to step S673, and when the movement is equivalent to the end of utterance, the process branches to step S675. If neither movement occurs or if no hand is detected in step S671, the hand image processing is terminated.
- step S673 the sound source direction is calculated. For example, a predetermined offset is added in order to convert the coordinates of the hand region into coordinates near the lips (separate offsets are prepared for the right hand and the left hand), and the value is obtained in step S667 described above with reference to the flow of FIG.
- the sound source direction is converted in the same manner as the above process.
- face detection is performed simultaneously with hand detection, the face coordinates closest to the hand coordinates are obtained, and the value is converted into the sound source direction.
- step S674 using the sound source direction obtained in this way and the time stamp added to the image, the front end unit 153 is notified that “the start of the utterance has been detected”. In response to the notification, the front end unit 153 performs the start end registration process (the process of step S622 shown in the flow of FIG. 62).
- step S675 the sound source direction is calculated as in step S673.
- step S676 using the acquired sound source direction and the time stamp added to the image, the front end unit 153 is notified that “the end of the utterance has been detected”. The front end unit 153 receives the notification and performs end registration processing (processing in step S624 in the flow of FIG. 62). This is the end of the description of the image processing and all the processing.
- Semantic estimation is a process of estimating the meaning or intention of an utterance instead of obtaining a word (or word string) corresponding to the uttered voice. Details of the semantic estimation processing are disclosed in, for example, Japanese Patent Application Laid-Open No. 2006-53203 and Japanese Patent Application Laid-Open No. 2011-33680. The meaning estimation will be briefly described below.
- a set consisting of a dictionary, language model, and decoder is called a task.
- the semantic estimator prepares a plurality of such tasks, and calculates a score using each task for one utterance. The task with the highest score is the meaning (intention) of the utterance.
- Task 1 Task for recognizing utterances related to volume increase (Example) “Turn up volume”, “Large sound”, “Volume increased”, etc.
- Task 2 Task for recognizing utterances related to power off (Example) “Power off” "Turn off the switch”, “Turn off the TV”, etc.
- task 1 is more likely to give a higher score. Therefore, it is considered that the utterance represents the meaning of “increase in volume”. Similarly, if the task 2 gives a higher score for the utterance “switch off”, the utterance is considered to represent the meaning of “power off”.
- a task with a very wide coverage such as a phonetic typewriter is prepared, and it is called task 3.
- task 3 is likely to give the highest score. In that case, the utterance is regarded as an “irrelevant utterance”.
- task 3 will give the highest score for non-voice sounds. Therefore, by using a semantic estimator, it is possible to reject sounds that are unrelated to the user.
- the voice recognition unit 156 of the voice recognition device 150 of the present disclosure shown in FIG. 15 can be configured to execute such semantic estimation. However, this requires a new configuration. A configuration example when the speech recognition unit 156 of the speech recognition apparatus 150 of the present disclosure illustrated in FIG. 15 is configured to execute semantic estimation will be described with reference to FIG.
- the voice recognition unit 156 shown in FIG. 68 is a voice recognition unit that performs semantic estimation processing, and can be used in place of the configuration of the voice recognition unit 156 of FIG. 23 described above.
- a set of a dictionary 684, a language model 685, and a decoder 686 is called a task 683.
- a set of different tasks 683-1 to 683-1 to N is called a task set 682.
- a section ID 687 is held to indicate which section is being decoded.
- a task set management unit 681 is prepared in order to supply extraction results (features) sequentially generated from the section being created to each task set.
- a front end unit 153 is connected to the task set management unit 681.
- the task set management unit 681 receives the following information as in the decode management unit 211 shown in FIG. Feature amount output from the extraction result buffering unit 166 (sound source extraction result generated by the tracking unit 165), Priority information that is a ranking result of sections output from the ranking unit 167, Section update information such as the extinction section (or rejected section) output from the tracking unit 165, Enter each of these pieces of information.
- the task set management unit 681 issues output requests as feature amount requests for the sections to the extraction result buffering section 166 in order from the section with the highest priority based on the priority information of the voice sections input from the ranking section 165.
- the feature amount of the section corresponding to this request is received and sent to each task set 682-1 to n.
- the tracking unit 165 is inquired whether the section currently being decoded is invalid (whether it has disappeared or has been rejected), and if it is invalid, the corresponding decoding is canceled.
- each task set 682-1 to n is a semantic estimation result 688, and this semantic estimation result 688 is sent to the post-processing unit 157. Since each decoder 686 in each task set 682 can also generate a word string as a recognition result, the word string may be sent to subsequent processing as necessary. Note that only one acoustic model 689 is held in the speech recognition unit 156.
- the dictionary 684 and the language model 685 may be shared among a plurality of task sets as necessary. For example, when task 1 included in task set a and task 1 included in task set b use the same dictionary and language model, the same dictionary and language model are set between both tasks 1. A shared configuration can be used. By using sharing between tasks in this manner, even if a plurality of task sets are prepared, an increase in memory usage can be minimized.
- the advantage of the first modification using the speech recognition unit that executes the semantic estimation is that the semantic estimator can be used even in a noisy environment and that a task with a wide coverage is prepared, so that an irrelevant utterance is provided. And it is easy to reject noises. Above, description of the modification 1 is completed.
- the hand pointer here is a technique for moving the pointer by capturing the movement of the user's hand with a camera, and is a substitute for the mouse pointer.
- a method for determining whether or not the hand pointer points to a specific area on the screen can be used as a speech segment detection method.
- FIG. 69 shows a configuration example of a television apparatus as an example of an information processing apparatus provided with voice recognition transmission using a hand pointer for voice section detection.
- the television device has a display 691.
- the display 691 displays a hand pointer 693, a voice input area 694, and various information.
- a device (camera & microphone array 692) in which a camera and a microphone array are integrated is provided on the display device. Using this, the image and sound of the user in front of the display are acquired.
- the hand pointer 693 acquires the movement of the user's hand with the camera of the camera & microphone array 692, and the position moves in accordance with the movement of the user's hand. That is, it is like a mouse pointer in which a hand can be used instead of a mouse in a PC.
- the hand pointer is moved to the inside of the voice input area 694 and then the utterance is started. After the utterance is finished, the hand pointer is moved to the outside of the voice input area 694.
- the hand pointer 693 and the voice input area 694 will be described with reference to a flowchart shown in FIG.
- the hand pointer can be used, for example, instead of voice segment detection based on the hand image in the above-described embodiment.
- step S701 a hand region is detected from a captured image of the camera.
- step S702 the coordinates are converted into the coordinates of the hand pointer 693 on the screen, and the hand pointer 693 is displayed at the position.
- step S703 it is determined whether or not the position of the hand pointer 693 is inside the audio input area 694 on the screen. If it is inside, it branches to step S704, and if it is outside, it branches to step S707.
- Step S704 is a determination as to whether or not this is the first time that the hand pointer 693 voice input has entered the area 694. If the previous position of the hand pointer 693 is also within the voice input area 694, this is not the first time, and the process is terminated. If the previous time is outside the voice input area 694, this time is the first time, and the process proceeds to step S705.
- step S705 the sound source direction is calculated. For example, similar to the processing in step S673 described above with reference to the flow of FIG. 67, face detection is performed simultaneously with hand detection, the face coordinates closest to the hand coordinates are obtained, and the values are converted into the sound source direction. To do.
- step S706 using the sound source direction obtained in this way and the time stamp added to the image, the front end unit 153 is notified that “the start of the utterance has been detected”.
- the front end unit 153 performs a start end registration process (step S622 in the flow shown in FIG. 62).
- step S707 it is determined whether or not it is the first time as in the process of step S704. If the previous position of the hand pointer 693 is within the voice input area 694, it has been outside the voice input area 6794 for the first time this time, and the process proceeds to step S708. If the previous time was outside the voice input area 694, the hand image processing is ended because it is not the first time.
- step S708 the sound source direction is calculated as in step S705.
- step S709 the front end unit 153 is notified that “the end of the utterance has been detected” by using the sound source direction thus obtained and the time stamp added to the image.
- the front end unit 153 performs end registration processing (step S624 in the flow shown in FIG. 62).
- the processing according to the flow of FIG. 70 that is, the voice section detection method using the hand pointer and the voice input area is used, and the processing according to the flow of FIG. Although it is assumed that this method is used instead of the voice section detection method, both methods may be used in combination.
- the hand image processing unit 223 of the image processing unit 155 of FIG. 24 executes the processing of FIG. 67 and the processing of FIG. Above, description of the modification 2 is completed.
- One of the features of the speech recognition device is that speech segment detection and sound source extraction are integrated. That is, a filter for sound source extraction is estimated when a certain time has elapsed after the start of the utterance is detected, and the extraction result is sequentially generated by applying the filter from that to the end of the utterance.
- the speech recognition process can be moved before the end of the utterance, the delay from the end of the utterance to the generation of the recognition result can be shortened.
- the problem of delay which is a drawback, is solved while maintaining high extraction accuracy, which is a feature of sound source extraction in which a filter is estimated from an observation signal corresponding to an utterance interval.
- One of the features of the speech recognition apparatus is a configuration in which common tracking is performed using a plurality of speech segment detection methods. This configuration solves the problem of multiple detection.
- an end determination time is prevented from increasing by performing registration processing for the start and end points dedicated to the method.
- the detection accuracy is improved by using a plurality of speech section detection methods in combination, while an increase in the terminal determination time, which is a part of the delay from the end of the utterance to the generation of the recognition result, is prevented.
- One of the features of the speech recognition apparatus includes having a plurality of speech recognition decoders, and associating the decoders with speech sections based on a predetermined priority. With this configuration, even when there is a temporal overlap between sections, the waiting time until the decoder becomes empty can be minimized, and as a result, the delay from the end of the utterance to the generation of the recognition result can be shortened. .
- the technology disclosed in this specification can take the following configurations.
- a tracking unit that detects a sound source direction and a voice section and executes a sound source extraction process
- a speech recognition unit that inputs a sound source extraction result from the tracking unit and executes speech recognition processing
- the tracking unit generates a creating section management unit that performs generation management of a voice section of a sound source unit, Each created section management section generated is While performing sequential detection of the sound source direction and executing a voice segment creation process for sequentially updating the voice segment estimated by connecting the detection results in the time direction, Generates an extraction filter for sound source extraction after a lapse of a predetermined time from the beginning of the speech section, and sequentially generates partial sound source extraction results of the speech section by applying the generated extraction filter to the input speech signal sequentially.
- the tracking unit The process of outputting the partial sound source extraction results generated by the creating section management unit sequentially to the speech recognition unit,
- the voice recognition unit A speech recognition apparatus that sequentially executes speech recognition processing on partial sound source extraction results input from the tracking unit and outputs speech recognition results.
- the tracking unit executes, in each of the creating section management units, a voice section creating process for collectively connecting a plurality of sound source direction information detected according to a plurality of different methods in the time direction.
- Voice recognition device executes, in each of the creating section management units, a voice section creating process for collectively connecting a plurality of sound source direction information detected according to a plurality of different methods in the time direction.
- the tracking unit executes the start end or end determination processing immediately.
- the speech recognition apparatus according to (1) or (2).
- the mid-creation section management unit of the tracking unit inputs the input observation signal from the time point before the start of the sound period to the filter generation time point.
- the creating section management unit of the tracking unit applies an extraction filter that preferentially extracts the sound of the specific sound source from the observation signal, and also includes all of the observation signals included in the estimation of the extraction filter. Estimating a total blind spot spatial filter that attenuates the sound of the sound source, and subtracting the result of applying the total blind spot spatial filter from the application result of the extraction filter, thereby removing the interference sound that is not included in the observation signal.
- the speech recognition apparatus according to any one of (1) to (4), which generates a sound source extraction result.
- the creating section management unit of the tracking unit sets a mask for reducing the transmittance of the observation signal for each frequency as the degree of mixing of the sound other than the target sound with respect to the target sound increases in the observation signal corresponding to the creating section.
- the speech recognition apparatus according to any one of (1) to (5), wherein the sound source extraction of the target sound is performed by executing a time-frequency masking process in which the mask is sequentially changed and applied to the observation signal.
- the speech recognition apparatus further includes an extraction result buffering unit that temporarily stores a sound source extraction result generated by the tracking unit, and a plurality of sound sources corresponding to each sound source stored in the extraction result buffering unit.
- a ranking unit that determines a priority for outputting a sound source extraction result to the voice recognition unit, and the ranking unit corresponds to the voice segment corresponding to the voice segment in which the start or end of the speech segment is determined based on an explicit cue of the user.
- the tracking unit sets an attribute “registered attribute” to identify a voice section set based on an explicit cue of a speaker obtained based on image analysis, and the ranking unit includes: The speech recognition apparatus according to (7), wherein a process of setting a priority of a speech section in which the registered attribute is set is set high.
- the ranking unit determines the output priority to the voice recognition unit as follows: (Criteria 1) A voice section having a registered attribute is prioritized, and when there are a plurality of voice sections having a registered attribute, the one with the oldest start is given priority. (Criteria 2) For voice segments that do not have a registered attribute, priority is given to voice segments whose end points have already been determined, and when there are multiple intervals whose end points have already been determined, priority is given to the oldest end point. . (Criteria 3) For voice segments whose end points are not yet determined, the one with the oldest start point is prioritized.
- the speech recognition apparatus according to (8), wherein priority is determined by applying each of the above criteria.
- the speech recognition unit includes a plurality of decoders that perform speech recognition processing, requests output of the sound source extraction result generated by the tracking unit according to the availability of the decoder, and according to the priority
- the speech recognition apparatus according to (7), wherein a sound source extraction result is input, and speech recognition is performed with priority on a sound source extraction result having a high priority.
- the tracking unit generates a feature amount suitable for a format used for speech recognition in the speech recognition unit in each of the creating section management units, and outputs the generated feature amount to the speech recognition unit
- the speech recognition apparatus according to any one of (1) to (10).
- the voice recognition device further includes a sound input unit having a microphone array; An image input unit having a camera, a sound source direction estimation unit that estimates a sound source direction based on input sound from the sound input unit, and an image that performs sound source direction analysis based on analysis of an input image from the image input unit And a tracking unit that applies the sound source direction information generated by the sound source direction estimation unit and the sound source direction information generated by the image processing unit to generate one integrated audio section information ( The speech recognition apparatus according to any one of 1) to (12).
- the image processing unit includes: a lip image processing unit that detects movement of the lip area of the speaker based on analysis of the input image from the image input unit; and a hand that detects movement of the hand area of the speaker.
- the tracking unit sets an attribute “registered attribute” to identify a voice section set based on an explicit cue of a speaker input from the image processing unit, and sets the registered attribute
- the voice process described in (13) is performed in which another voice section is integrated with the voice section in which the registered attribute is set. Recognition device.
- the speech recognition unit includes a plurality of recognition tasks that are pairs of a dictionary and a language model composed of recognition target vocabularies, and searches for a task that best matches the user utterance from a plurality of different tasks.
- the speech recognition device according to any one of (1) to (16), which is configured to execute a certain meaning estimation process.
- the voice recognition device further moves the pointer on the display unit in synchronization with the movement of the hand of the speaker obtained by analyzing the image obtained by photographing the speaker, and according to the movement of the pointer, the speech section
- the voice recognition device according to any one of (1) to (17), wherein the voice recognition device has a configuration for determining a start end or a termination end.
- a speech recognition method executed in a speech recognition device The voice recognition device A tracking unit that detects a sound source direction and a voice section and executes a sound source extraction process; A speech recognition unit that inputs a sound source extraction result from the tracking unit and executes speech recognition processing;
- the tracking unit is Create a creating section management unit that performs sound generation unit management of sound source units, Each created section management section generated is While performing sequential detection of the sound source direction and connecting the detection results in the time direction to execute the voice segment creation process for sequentially updating the voice segment, Generate an extraction filter for sound source extraction after a lapse of a predetermined time from the beginning of the speech section, sequentially generate a partial sound source extraction result of the speech section by applying the generated extraction filter to the input speech signal sequentially,
- the tracking unit is A process of sequentially outputting the partial sound source extraction results generated by the creating section management unit to the speech recognition unit,
- the voice recognition unit A speech recognition method for sequentially executing speech recognition processing on partial sound source extraction results input from the tracking unit and outputting speech recognition results.
- a program for executing voice recognition processing in a voice recognition device The voice recognition device A tracking unit that detects a sound source direction and a voice section and executes a sound source extraction process; A speech recognition unit that inputs a sound source extraction result from the tracking unit and executes speech recognition processing;
- the program is The tracking unit generates a creating section management unit that performs generation management of a sound section in units of sound sources, In each created section management section created, While performing sequential detection of the sound source direction and connecting the detection results in the time direction to execute the voice segment creation process for sequentially updating the voice segment, Generate an extraction filter for sound source extraction after a lapse of a predetermined time from the beginning of the speech section, sequentially apply the generated extraction filter to the input speech signal to sequentially generate a partial sound source extraction result of the speech section, In the tracking unit, A process of sequentially outputting the partial sound source extraction result generated by the creating section management unit to the voice recognition unit; In the voice recognition unit, A program for sequentially executing speech recognition processing on partial sound source extraction results input from the tracking
- the series of processes described in the specification can be executed by hardware, software, or a combined configuration of both.
- the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and run.
- the program can be recorded in advance on a recording medium.
- the program can be received via a network such as a LAN (Local Area Network) or the Internet and installed on a recording medium such as a built-in hard disk.
- the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary.
- the system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
- an apparatus and a method for quickly extracting a target sound from a sound signal in which a plurality of sounds are mixed are realized. Specifically, it has a tracking unit that detects a sound source direction and a voice section and executes a sound source extraction process, and a voice recognition unit that inputs a sound source extraction result and executes a voice recognition process.
- the tracking section performs the generation management of the sound section for each sound source, each of the creating section management sections sequentially detects the sound source direction, sequentially updates the sound section connecting the detection results in the time direction, and from the beginning of the sound section A sound source extraction filter is generated after a predetermined time has elapsed, and the generation filter is sequentially applied to the input signal to sequentially generate sound source extraction results.
- the speech recognition unit sequentially executes speech recognition processing on partial sound source extraction results and outputs speech recognition results.
- Reference Signs List 31 microphone array 32 camera 33 voice section detection unit 34 sound source extraction unit 35 voice recognition unit 135 extraction result buffering unit 135a to c buffer 137 voice recognition unit 139 decoder 150 voice recognition device 151 sound input unit 152 AD conversion unit 153 front end unit 154 Image input unit 155 Image processing unit 156 Audio recognition unit 157 Post-processing unit 158 Time stamp generation unit 159 Control unit 161 STFT unit 162 Audio / non-speech discrimination unit 163 Sound source direction estimation unit 164 Observation signal buffering unit 165 Tracking unit 166 Extraction Result buffering section 167 Ranking section 171 Creating section management section 211 Decoder management section 212-1 to n Decoder 213 Section ID 216 Acoustic model 217 Dictionary 218 Language model 219 Recognition result 221 Lip image processing unit 222 Face image processing unit 223 Hand image processing unit 681 Task set management unit 682-1 to n Task set 683-1 to N Task 684 Dictionary 685 Language model 686 Decoder 688 Meaning estimation result 691 Display 692 Camera & microphone array 6
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)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
- Circuit For Audible Band Transducer (AREA)
Abstract
複数の音が混在した音信号から、迅速に目的音を抽出する装置、方法を提供する。音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、音源抽出結果を入力して音声認識処理を実行する音声認識部を有する。トラッキング部は、音源単位の音声区間の生成管理を行なう作成中区間管理部各々が音源方向の逐次的検出を行い、検出結果を時間方向に接続した音声区間を順次更新するとともに、音声区間始端から所定時間経過後に音源抽出用のフィルタを生成し、生成フィルタを逐次的に入力信号に適用して音源抽出結果を逐次的に生成する。音声認識部は、部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する。
Description
本開示は、音声認識装置、および音声認識方法、並びにプログラムに関する。さらに詳細には、音声区間検出や音源抽出を実行し、これらの処理結果に基づいて音声認識を実行する音声認識装置、および音声認識方法、並びにプログラムに関する。
音声認識処理は、例えばマイクロホンの取得音から人の発話内容を解析する処理として行われる。音声認識は様々な装置において利用可能である。例えば、携帯端末やテレビなどの情報処理装置に音声認識部を設け、これらの装置に対してユーザが発した言葉(ユーザ発話)を解析することで、携帯端末やテレビなどの情報処理装置に発話に基づく処理を実行させることが可能となる。
しかし、マイクロホンの取得音には、音声認識対象となるユーザの発話音声(目的音と呼ばれる)のみならず、様々な雑音(ノイズや環境音、妨害音等と呼ばれる)が含まれる。様々な音源からの雑音が含まれる混合信号から目的音、すなわち特定のユーザ発話を抽出する処理は困難であり、雑音の多い環境では音声認識精度が低下してしまうという問題がある。マイクロホンからユーザの口までの距離が離れるほど妨害音は混入しやすくなるため、この問題は一層困難となる。
また、マイクロホンからユーザまでの距離が離れると、音声入力の開始および終了をユーザが明示的に指示するためのボタン等を設置することが困難となるため、他の手段によって発話の開始および終了を検出する必要がある。
また、マイクロホンからユーザまでの距離が離れると、音声入力の開始および終了をユーザが明示的に指示するためのボタン等を設置することが困難となるため、他の手段によって発話の開始および終了を検出する必要がある。
そのような環境での音声認識精度を向上させるためには、例えば以下の処理を適用することが有効であり、従来から、それらの処理について提案がなされている。
(a)音声認識処理対象とする区間を規定する音声区間検出処理、
(b)複数の音源から発生した様々な音の混在する音信号から、目的音のみを抽出する音源分離処理、あるいは音源抽出処理、
これらの処理を、音声認識処理の前に行なうことで、音声認識対象としての音信号を時間的および空間的に絞り込むことが可能となり、目的音の認識精度を高めることができる。
(a)音声認識処理対象とする区間を規定する音声区間検出処理、
(b)複数の音源から発生した様々な音の混在する音信号から、目的音のみを抽出する音源分離処理、あるいは音源抽出処理、
これらの処理を、音声認識処理の前に行なうことで、音声認識対象としての音信号を時間的および空間的に絞り込むことが可能となり、目的音の認識精度を高めることができる。
音声区間検出処理については、例えば特許文献1(特開2012-150237号公報)や、特許文献2(特許4182444号公報)に記載がある。
また、音源分離処理や、音源抽出処理については、特許文献3(特開2011-107602号公報)等に記載がある。
また、音源分離処理や、音源抽出処理については、特許文献3(特開2011-107602号公報)等に記載がある。
また、音声認識処理を開示した従来技術として、例えば特許文献4(特開2001-242883号公報)、特許文献5(特開2006-053203号公報)、特許文献6(特開2011-033680号公報)などがある。
本件は、音声認識対象とする目的音の高精度な解析を実現する音声認識装置、および音声認識方法、並びにプログラムを提供することを目的とする。
本開示の一実施例においては、例えば音声区間検出や音源抽出を実行し、これらの処理結果を利用して音声認識処理を行なうことで、目的音の高精度な解析を実現する音声認識装置、および音声認識方法、並びにプログラムを提供する。
本開示の第1の側面は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記トラッキング部は、音源単位の音声区間の生成管理を行なう作成中区間管理部を生成し、
生成された作成中区間管理部各々は、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで推定される音声区間を順次更新する音声区間作成処理を実行するとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成する構成であり、
前記トラッキング部は、
前記作成中区間管理部の生成した部分的な音源抽出結果を順次、音声認識部に出力する処理を実行し、
前記音声認識部は、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する音声認識装置にある。
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記トラッキング部は、音源単位の音声区間の生成管理を行なう作成中区間管理部を生成し、
生成された作成中区間管理部各々は、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで推定される音声区間を順次更新する音声区間作成処理を実行するとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成する構成であり、
前記トラッキング部は、
前記作成中区間管理部の生成した部分的な音源抽出結果を順次、音声認識部に出力する処理を実行し、
前記音声認識部は、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する音声認識装置にある。
さらに、本開示の音声認識装置の一実施態様において、前記トラッキング部は、前記作成中区間管理部の各々において、複数の異なる方式に従って検出される複数の音源方向情報を、まとめて時間方向に連結する音声区間作成処理を実行する。
さらに、本開示の音声認識装置の一実施態様において、前記トラッキング部は、画像入力部からの入力画像から検出されたユーザの合図が音声区間の始端または終端を意味することを検出した場合、始端または終端の確定処理を即時に実行する。
さらに、本開示の音声認識装置の一実施態様において、前記トラッキング部の作成中区間管理部は、観測信号から特定音源の音声を優先的に抽出する抽出フィルタの生成において、音声区間の始端より前の時点からフィルタ生成時点までの入力観測信号を利用して抽出フィルタを生成する。
さらに、本開示の音声認識装置の一実施態様において、前記トラッキング部の作成中区間管理部は、観測信号から特定音源の音声を優先的に抽出する抽出フィルタを適用した結果を生成するとともに、前記抽出フィルタの推定で使用される観測信号に含まれる全ての音源の音を減衰させる全死角空間フィルタを推定し、その全死角空間フィルタを適用した結果を前記抽出フィルタの適用結果から減算することで、観測信号に含まれない妨害音の除去を実行して音源抽出結果を生成する請求項1に記載の音声認識装置。
さらに、本開示の音声認識装置の一実施態様において、前記トラッキング部の作成中区間管理部は、作成中区間に対応した観測信号において目的音に対する目的音以外の音の混合度合いが高いほど観測信号の透過度を低減させるマスクを周波数ごとおよび時間ごとに変更し、そのマスクを逐次的に観測信号に適用する時間周波数マスキング処理を実行して目的音の音源抽出を実行する。
さらに、本開示の音声認識装置の一実施態様において、前記音声認識装置は、さらに、前記トラッキング部の生成した音源抽出結果を一時的に格納する抽出結果バッファリング部と、前記抽出結果バッファリング部に格納された各音源に対応する複数の音源抽出結果を音声認識部へ出力する優先度を決定するランキング部を有し、前記ランキング部は、ユーザの明示的合図に基づいて音声区間の始端または終端が決定された音声区間に対応する音源抽出結果の優先度を高く設定する処理を行なう。
さらに、本開示の音声認識装置の一実施態様において、前記トラッキング部は、画像解析に基づいて得られた発話者の明示的合図に基づいて設定した音声区間を識別するために「登録済み属性」という属性を設定し、前記ランキング部は、前記登録済み属性の設定された音声区間の優先度を高く設定する処理を実行する。
さらに、本開示の音声認識装置の一実施態様において、前記ランキング部は、前記音声認識部への出力優先度を以下の基準、すなわち、
(基準1)登録済み属性を持つ音声区間を優先し、登録済み属性を持つ音声区間が複数あるときは、始端が古い方を優先する。
(基準2)登録済み属性を持たない音声区間同士については、終端が既に確定している音声区間を優先し、終端が既に確定している区間が複数あるときは、終端が古い方を優先する。
(基準3)終端が未確定の音声区間同士については、始端が古い方を優先する。
上記各基準を適用して優先度を決定する。
(基準1)登録済み属性を持つ音声区間を優先し、登録済み属性を持つ音声区間が複数あるときは、始端が古い方を優先する。
(基準2)登録済み属性を持たない音声区間同士については、終端が既に確定している音声区間を優先し、終端が既に確定している区間が複数あるときは、終端が古い方を優先する。
(基準3)終端が未確定の音声区間同士については、始端が古い方を優先する。
上記各基準を適用して優先度を決定する。
さらに、本開示の音声認識装置の一実施態様において、前記音声認識部は、音声認識処理を実行する複数のデコーダを有し、デコーダの空き状況に応じて前記トラッキング部の生成した音源抽出結果の出力要求を行い、前記優先度に応じて音源抽出結果を入力し、優先度の高い音源抽出結果に対する音声認識を優先して実行する。
さらに、本開示の音声認識装置の一実施態様において、前記トラッキング部は、前記作成中区間管理部の各々において、前記音声認識部における音声認識で使用される形式に適合した特徴量を生成し、生成した特徴量を前記音声認識部に出力する。
さらに、本開示の音声認識装置の一実施態様において、前記特徴量は、メル周波数ケプストラム係数(Mel-Frequency Cepstral Coefficients)である。
さらに、本開示の音声認識装置の一実施態様において、前記音声認識装置は、さらに、マイクロホンアレイを有する音入力部と、カメラを有する画像入力部と、前記音入力部からの入力音に基づいて音源方向を推定する音源方向推定部と、前記画像入力部からの入力画像の解析に基づいて音源方向の解析を行なう画像処理部を有し、前記トラッキング部は、前記音源方向推定部の生成した音源方向情報と、画像処理部の生成した音源方向情報を適用して、1つの統合した音声区間情報を生成する。
さらに、本開示の音声認識装置の一実施態様において、前記画像処理部は、前記画像入力部からの入力画像の解析に基づいて、発話者の口唇領域の動きを検出する口唇画像処理部と、発話者の手領域の動きを検出する手画像処理部を有する。
さらに、本開示の音声認識装置の一実施態様において、前記トラッキング部は、前記画像処理部から入力する発話者の明示的合図に基づいて設定した音声区間を識別するために「登録済み属性」という属性を設定し、前記登録済み属性の設定された音声区間と、登録済み属性のない音声区間とのマージ処理を行なう場合、登録済み属性の設定された音声区間に他の音声区間を統合するマージ処理を行なう。
さらに、本開示の音声認識装置の一実施態様において、前記トラッキング部は、前記登録済み属性の設定された音声区間については、音源方向情報が入力されない場合、方向情報を自動生成して音声区間の延長処理を実行する。
さらに、本開示の音声認識装置の一実施態様において、前記音声認識部は、認識対象語彙から構成される辞書と言語モデルのペアである認識タスクを複数有し、複数の異なるタスクの中からユーザ発話に最も適合するタスクを探索する処理である意味推定処理を実行する構成である。
さらに、本開示の音声認識装置の一実施態様において、前記音声認識装置は、さらに、発話者を撮影した画像の解析によって得られる発話者の手の動きに同期させて表示部上のポインタを動かし、該ポインタの動きに応じて、発話区間の始端または終端を判定する構成を有する。
さらに、本開示の第2の側面は、
音声認識装置において実行する音声認識方法であり、
前記音声認識装置は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記トラッキング部が、
音源単位の音声区間の生成管理を行なう作成中区間管理部を生成し、
生成された作成中区間管理部各々は、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで音声区間を順次更新する音声区間作成処理を実行するとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成し、
前記トラッキング部が、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行し、
前記音声認識部が、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する音声認識方法にある。
音声認識装置において実行する音声認識方法であり、
前記音声認識装置は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記トラッキング部が、
音源単位の音声区間の生成管理を行なう作成中区間管理部を生成し、
生成された作成中区間管理部各々は、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで音声区間を順次更新する音声区間作成処理を実行するとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成し、
前記トラッキング部が、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行し、
前記音声認識部が、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する音声認識方法にある。
さらに、本開示の第3の側面は、
音声認識装置において音声認識処理を実行させるプログラムであり、
前記音声認識装置は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記プログラムは、
前記トラッキング部に、音源単位の音声区間の生成管理を行なう作成中区間管理部を生成させ、
生成された作成中区間管理部各々に、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで音声区間を順次更新する音声区間作成処理を実行させるとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成させ、
前記トラッキング部に、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行させ、
前記音声認識部に、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力させるプログラムにある。
音声認識装置において音声認識処理を実行させるプログラムであり、
前記音声認識装置は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記プログラムは、
前記トラッキング部に、音源単位の音声区間の生成管理を行なう作成中区間管理部を生成させ、
生成された作成中区間管理部各々に、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで音声区間を順次更新する音声区間作成処理を実行させるとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成させ、
前記トラッキング部に、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行させ、
前記音声認識部に、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力させるプログラムにある。
なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な画像処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
本開示のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本開示の一実施例の構成によれば、複数の音が混在した音信号から、迅速に目的音を抽出する装置、方法が実現される。
具体的には、音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、音源抽出結果を入力して音声認識処理を実行する音声認識部を有する。トラッキング部は、音源単位の音声区間の生成管理を行なう作成中区間管理部各々が音源方向の逐次的検出を行い、検出結果を時間方向に接続した音声区間を順次更新するとともに、音声区間始端から所定時間経過後に音源抽出用のフィルタを生成し、生成フィルタを逐次的に入力信号に適用して音源抽出結果を逐次的に生成する。音声認識部は、部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する。
上記構成により、音声区間の終了が検出されるのを待つことなく、迅速に音声認識結果を生成して出力することが可能となる。
具体的には、音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、音源抽出結果を入力して音声認識処理を実行する音声認識部を有する。トラッキング部は、音源単位の音声区間の生成管理を行なう作成中区間管理部各々が音源方向の逐次的検出を行い、検出結果を時間方向に接続した音声区間を順次更新するとともに、音声区間始端から所定時間経過後に音源抽出用のフィルタを生成し、生成フィルタを逐次的に入力信号に適用して音源抽出結果を逐次的に生成する。音声認識部は、部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する。
上記構成により、音声区間の終了が検出されるのを待つことなく、迅速に音声認識結果を生成して出力することが可能となる。
以下、図面を参照しながら本開示の音声認識装置、および音声認識方法、並びにプログラムの詳細について説明する。
本開示の構成および処理の説明の前に、明細書中に記載の表記について説明する。
本明細書で使用している表記は、以下の意味を持つ。
A_bは、Aに下付きの添え字bが付与されていることを示す。
A^bは、Aに上付きの添え字bが付与されていることを示す。
これらを意味する。
また、
conj(X)は、複素数Xの共役複素数を表わす。式の上では、Xの共役複素数はXに上線を付して表わす。
hat(x)は、xの上に"^"が付与された表記と等価であることを表わす。
値の代入は、"="または"←"で表わす。特に、両辺で等号が成立しないような操作(例えば"x←x+1")については、"←"で表わす。
本明細書で使用している表記は、以下の意味を持つ。
A_bは、Aに下付きの添え字bが付与されていることを示す。
A^bは、Aに上付きの添え字bが付与されていることを示す。
これらを意味する。
また、
conj(X)は、複素数Xの共役複素数を表わす。式の上では、Xの共役複素数はXに上線を付して表わす。
hat(x)は、xの上に"^"が付与された表記と等価であることを表わす。
値の代入は、"="または"←"で表わす。特に、両辺で等号が成立しないような操作(例えば"x←x+1")については、"←"で表わす。
次に、以下の説明において使用している用語について説明する。
・「音(信号)」と「音声(信号)」とは、使い分けて用いている。「音」は「sound」や「audio」など、人の発話および発話以外の音を含む意味で使用しており、「音声」は「voice」や「speech」等、人の発声音を表わす用語として限定的に使用している。
・ただし、「音声区間検出」については、人の音声に限らず、人の音声以外の音が鳴っている区間の検出を意味するものとする。
・「音声認識システム」とは、狭義の音声認識に、音声区間検出や音源抽出などを組み合わせて構成されたシステムを表わす。
・「フィルタを適用する」と「フィルタリングを行なう」とは同じ意味である。同様に、「マスクを適用する」と「マスキングを行なう」とは同じ意味である。
・「音(信号)」と「音声(信号)」とは、使い分けて用いている。「音」は「sound」や「audio」など、人の発話および発話以外の音を含む意味で使用しており、「音声」は「voice」や「speech」等、人の発声音を表わす用語として限定的に使用している。
・ただし、「音声区間検出」については、人の音声に限らず、人の音声以外の音が鳴っている区間の検出を意味するものとする。
・「音声認識システム」とは、狭義の音声認識に、音声区間検出や音源抽出などを組み合わせて構成されたシステムを表わす。
・「フィルタを適用する」と「フィルタリングを行なう」とは同じ意味である。同様に、「マスクを適用する」と「マスキングを行なう」とは同じ意味である。
以下、以下に示す項目に従って本開示の構成と処理について詳細について説明する。
1.本開示の処理の概要、および音声区間検出処理、音源抽出処理、音声認識処理について
1-1.本開示の音声認識装置の実行する処理の概要
1-2.各環境下での音声認識処理の困難性と従来手法における課題について
1-2-1.各環境下での音声認識処理の困難性について
1-2-2.各環境下での音声認識処理を向上させる事前処理について
1-2-3.事前処理を伴う音声認識処理の問題点について
1-2-3.(1)音源抽出の遅延と精度とのトレードオフ
1-2-3.(2)音声区間検出に関する課題
1-2-3.(3)複数の区間が重複した場合における音声認識の遅延とリソースとのトレードオフ
1-2-3.(4)音声認識処理において発生する問題点のまとめ
2.本開示の音声認識装置の特徴について
2-1.音源抽出処理における新規点について
2-2.音声区間検出処理における新規点について
2-3.音声認識処理における新規点について
3.本開示の音声認識装置の具体的構成と処理について
3-1.本開示の音声認識装置の全体構成例について
3-2.本開示の音声認識装置におけるフロントエンド部の構成と処理について
3-3.本開示の音声認識装置における音声認識部の構成と処理について
3-4.本開示の音声認識装置における画像処理部の構成と処理について
4.本開示の音声認識装置の処理の詳細について
4-1.本開示の音声認識装置の実行する全体処理の概要について
4-2.フロントエンドの処理について
4-3.ブロックを消費する遷移について
4-4.ブロックを消費しない遷移について
4-5.音声認識部の処理について
4-6.画像処理部の処理について
5.変形例について
5-1.変形例1:音声認識の代わりに意味推定を使用した構成例について
5-2.変形例2:音声検出方法として、ハンドポインタを使用した構成例について
6.本開示の音声認識装置の構成と処理の特徴と効果についてのまとめ
7.本開示の構成のまとめ
以下、上記項目に従って説明する。
1.本開示の処理の概要、および音声区間検出処理、音源抽出処理、音声認識処理について
1-1.本開示の音声認識装置の実行する処理の概要
1-2.各環境下での音声認識処理の困難性と従来手法における課題について
1-2-1.各環境下での音声認識処理の困難性について
1-2-2.各環境下での音声認識処理を向上させる事前処理について
1-2-3.事前処理を伴う音声認識処理の問題点について
1-2-3.(1)音源抽出の遅延と精度とのトレードオフ
1-2-3.(2)音声区間検出に関する課題
1-2-3.(3)複数の区間が重複した場合における音声認識の遅延とリソースとのトレードオフ
1-2-3.(4)音声認識処理において発生する問題点のまとめ
2.本開示の音声認識装置の特徴について
2-1.音源抽出処理における新規点について
2-2.音声区間検出処理における新規点について
2-3.音声認識処理における新規点について
3.本開示の音声認識装置の具体的構成と処理について
3-1.本開示の音声認識装置の全体構成例について
3-2.本開示の音声認識装置におけるフロントエンド部の構成と処理について
3-3.本開示の音声認識装置における音声認識部の構成と処理について
3-4.本開示の音声認識装置における画像処理部の構成と処理について
4.本開示の音声認識装置の処理の詳細について
4-1.本開示の音声認識装置の実行する全体処理の概要について
4-2.フロントエンドの処理について
4-3.ブロックを消費する遷移について
4-4.ブロックを消費しない遷移について
4-5.音声認識部の処理について
4-6.画像処理部の処理について
5.変形例について
5-1.変形例1:音声認識の代わりに意味推定を使用した構成例について
5-2.変形例2:音声検出方法として、ハンドポインタを使用した構成例について
6.本開示の音声認識装置の構成と処理の特徴と効果についてのまとめ
7.本開示の構成のまとめ
以下、上記項目に従って説明する。
[1.本開示の処理の概要、および音声区間検出処理、音源抽出処理、音声認識処理について]
まず、本開示の処理の概要と、一般的な音声区間検出処理、音源抽出処理、音声認識処理の処理内容について説明する。
まず、本開示の処理の概要と、一般的な音声区間検出処理、音源抽出処理、音声認識処理の処理内容について説明する。
[1-1.本開示の音声認識装置の実行する処理の概要]
本開示の音声認識装置は、例えば音声区間検出処理と音源抽出処理(音源分離処理)を実行し、これらの処理結果を適用して高精度な音声認識を実現する。さらに、ユーザ発話が終了してから認識結果出力までの遅延を短縮可能としたものである。
本開示の音声認識装置は、例えば音声区間検出処理と音源抽出処理(音源分離処理)を実行し、これらの処理結果を適用して高精度な音声認識を実現する。さらに、ユーザ発話が終了してから認識結果出力までの遅延を短縮可能としたものである。
本開示の音声認識装置の特徴の1つは、音声区間検出において、1つの音源からの音と推定される音を時間経過に従って追従するトラッキング処理と、観測信号の中からその音源に相当する成分を抽出する音源抽出処理とを一体化した処理として実行することである。この処理により、発話開始から一定時間が経過した時点で音源抽出用のフィルタを推定し、その後、発話終了が検出されるまで入力信号に推定フィルタを適用して逐次的に音源抽出結果を生成する。
これらの処理によって、発話終了前から音声認識処理を逐次的に行なうことができ、発話終了とほぼ同時に認識結果を生成することができる。すなわち、発話終了後に音源抽出と音声認識処理とを行なっていた従来法と比べて遅延を大幅に短縮することができる。
本開示の音声認識装置は、以下のような環境下で使用されることを想定している。すなわち、Hands-freeの音声認識装置(c)において、(a),(b),(d),(e)のような場合にも、高精度かつ低遅延の音声認識を可能とするものである。
(a)ユーザ(発話者)からマイクロホンまで距離がある環境(Far-field microphone)。
(b)騒がしい環境。すなわち、ユーザの発話(以降「目的音」)の他に、それ以外の音(以降「妨害音」)が存在する環境。
(c)音声認識装置に対してユーザ(発話者)が発話開始時点を入力するスイッチ(ボタン)を用いない環境(Hands-free)。
(d)ユーザ(発話者)の位置が不定である環境。すなわち、ユーザはマイクロホンに対して様々な方向から発話し得る。
(e)複数のユーザによる発話同士が時間的に重複する環境。なお、本開示の処理を適用することで、複数の発話を個別に正しく認識することが可能である。
(a)ユーザ(発話者)からマイクロホンまで距離がある環境(Far-field microphone)。
(b)騒がしい環境。すなわち、ユーザの発話(以降「目的音」)の他に、それ以外の音(以降「妨害音」)が存在する環境。
(c)音声認識装置に対してユーザ(発話者)が発話開始時点を入力するスイッチ(ボタン)を用いない環境(Hands-free)。
(d)ユーザ(発話者)の位置が不定である環境。すなわち、ユーザはマイクロホンに対して様々な方向から発話し得る。
(e)複数のユーザによる発話同士が時間的に重複する環境。なお、本開示の処理を適用することで、複数の発話を個別に正しく認識することが可能である。
本開示の音声認識装置は、例えば、上記(a)~(e)に示す環境においても、高精度かつ迅速な音声認識を実現する。
本開示の音声認識装置は、様々な環境において、ユーザの発話を高い精度で認識し、さらに発話終了からその発話に対応した認識結果が生成されるまでの待ち時間を短縮可能とする。
本開示の音声認識装置は、様々な環境において、ユーザの発話を高い精度で認識し、さらに発話終了からその発話に対応した認識結果が生成されるまでの待ち時間を短縮可能とする。
[1-2.各環境下での音声認識処理の困難性と従来手法における課題について]
以下、上記の(a)~(e)に示す環境の具体例と、各環境下での音声認識処理の困難性についてそれぞれ説明する。次に、このような環境下での従来の音声認識処理の実行例について紹介し、さらに、従来の音声認識処理の課題について説明する。
以下、上記の(a)~(e)に示す環境の具体例と、各環境下での音声認識処理の困難性についてそれぞれ説明する。次に、このような環境下での従来の音声認識処理の実行例について紹介し、さらに、従来の音声認識処理の課題について説明する。
[1-2-1.各環境下での音声認識処理の困難性について]
(a)ユーザ(発話者)からマイクロホンまで距離がある環境(Far-field microphone)
この環境(a)は、例えば、リビングルームにおいて大型テレビを音声で操作する場面(マイクロホンはテレビに装備)や、ロボットを(リモコンではなく)音声で操作するような場面(マイクロホンはロボット本体に装備)などの環境である。
(a)ユーザ(発話者)からマイクロホンまで距離がある環境(Far-field microphone)
この環境(a)は、例えば、リビングルームにおいて大型テレビを音声で操作する場面(マイクロホンはテレビに装備)や、ロボットを(リモコンではなく)音声で操作するような場面(マイクロホンはロボット本体に装備)などの環境である。
このような環境は、ユーザの口元にマイクロホンがある場合と比べると、ユーザの発話時の負担は小さい。しかし、妨害音の混入(環境(b))や、別の話者の発話と重複(環境(c))する可能性が高くなり、認識精度が低下する可能性が高くなる。
また、このような環境においては、音声認識の対象となる目的音は、人の発話音、すなわち音声に限定されるのに対し、音声認識対象外の妨害音は任意の種類の音となる。すなわち、マイクロホンを介して入力された信号が、無音に近い場合や、人間の音声と明らかに異なる特徴を持っていた場合は、そのタイミングでは目的音が存在しないと容易に判定できるのに対し、その逆は成り立たない。また、マイクロホンを介して入力された信号が音声らしい特徴を持っていても、妨害音である可能性もある。この点も、問題の難度を上げる要因である。
(b)騒がしい環境。すなわち、ユーザの発話(以降「目的音」)の他に、それ以外の音(以降「妨害音」)が存在する環境。
一般的に音声認識は、目的音のみが存在する(=妨害音が無視できる)環境では高い精度で認識できても、目的音に妨害音が混入すると認識精度が大きく低下する。そのため、騒がしい環境でも高精度で認識するためには、マイクロホンで収録した信号(以降「観測信号」)から目的音を抽出する処理、言い換えると、妨害音を除去するための処理が必要となる。ここでは、この処理を「音源抽出」と呼ぶ。
一般的に音声認識は、目的音のみが存在する(=妨害音が無視できる)環境では高い精度で認識できても、目的音に妨害音が混入すると認識精度が大きく低下する。そのため、騒がしい環境でも高精度で認識するためには、マイクロホンで収録した信号(以降「観測信号」)から目的音を抽出する処理、言い換えると、妨害音を除去するための処理が必要となる。ここでは、この処理を「音源抽出」と呼ぶ。
(c)音声認識装置に対してユーザ(発話者)が発話開始時点を入力するスイッチ(ボタン)を用いない環境。(Hands-free)
一般に音声認識は、マイクロホンの観測信号の中で実際に発話があった区間に対して処理が行なわれるため、発話開始から終了までの発話区間(speech segment)を特定する必要がある。音声認識装置に対してユーザが操作部(スイッチやボタン)を操作して発話区間情報を入力する方式を「Push-to-talk(PTT)」と呼び、このような操作部を介した入力を用いない方式をハンズフリー(Hands-free)と呼ぶ。なお、発話終了時点の操作入力を用いず、発話開始のみ入力する方式もPTTに含める。
一般に音声認識は、マイクロホンの観測信号の中で実際に発話があった区間に対して処理が行なわれるため、発話開始から終了までの発話区間(speech segment)を特定する必要がある。音声認識装置に対してユーザが操作部(スイッチやボタン)を操作して発話区間情報を入力する方式を「Push-to-talk(PTT)」と呼び、このような操作部を介した入力を用いない方式をハンズフリー(Hands-free)と呼ぶ。なお、発話終了時点の操作入力を用いず、発話開始のみ入力する方式もPTTに含める。
ハンズフリーの音声認識システムでは、発話区間を自動で検出する必要がある。発話区間の自動検出処理は「音声区間検出(speech detection)」、または「Vaoice Activity Detection (VAD)」と呼ばれる。
音声区間検出は、その性能が音声認識システムの使い勝手に直接影響する非常に重要な技術である。たとえば、ユーザの発話を検出し損なうと、ユーザからは自分の発話が無視されたように見える。また、目的音以外の音を誤って検出すると、システムの誤動作につながる。さらに、検出された区間が実際の発話より長くても短くても、誤認識を発生させる原因となる。
(d)ユーザ(発話者)の位置が不定である環境。すなわち、ユーザはマイクロホンに対して様々な方向から発話し得る。
方向とは、マイクロホンから見た音の到来方向(direction of arrival:DOA)である。仮に、ユーザが発話する方向が固定であるなら、問題は単純化できる。例えば、ユーザがマイクロホンの正面からしか発話しないのであれば、超指向性マイクロホンを用いて正面以外の音をカットするといった方式で充分対処できる。しかし、ユーザがマイクロホンに対して様々な方向から発話し得る環境では、前述の音声区間検出も音源抽出も様々な方向に対応する必要があるため、処理が難しくなる。
方向とは、マイクロホンから見た音の到来方向(direction of arrival:DOA)である。仮に、ユーザが発話する方向が固定であるなら、問題は単純化できる。例えば、ユーザがマイクロホンの正面からしか発話しないのであれば、超指向性マイクロホンを用いて正面以外の音をカットするといった方式で充分対処できる。しかし、ユーザがマイクロホンに対して様々な方向から発話し得る環境では、前述の音声区間検出も音源抽出も様々な方向に対応する必要があるため、処理が難しくなる。
(e)複数のユーザによる発話同士が時間的に重複する環境。
この環境について図1を用いて説明する。図1は、マイクロオンを備えた音声認識装置の前にユーザが二人おり、一人が「こんにちは」、もう一人が「さようなら」と発話した場合のそれぞれの発話区間を表わしている。2つの発話は音声認識装置に装着されたマイクロホンから見て別の方向から到来し、また、二つの区間には時間的な重複があるとする。
この2つの発話をどちらも正しく認識するという問題について考える。
この環境について図1を用いて説明する。図1は、マイクロオンを備えた音声認識装置の前にユーザが二人おり、一人が「こんにちは」、もう一人が「さようなら」と発話した場合のそれぞれの発話区間を表わしている。2つの発話は音声認識装置に装着されたマイクロホンから見て別の方向から到来し、また、二つの区間には時間的な重複があるとする。
この2つの発話をどちらも正しく認識するという問題について考える。
なお、この図1において、縦軸は発話の方向(音源方向)、横軸は時間を表わしているが、各区間の高さが異なるのは単に各発話が別の方向から到来している(各音源が別の方向に存在している)ことのみを表わしており、高さの差が実際の方向の差を表わしているわけではない。以降の図でも同様である。
図1において、マイクロホンに入力された信号のみを見ると、両者を合わせた発話の区間は全発話区間13であり、これは、ユーザ1の発話区間11である「こんにちは」の始端から、ユーザ2の発話区間12である「さようなら」の終端までの区間と同じである。
この全発話区間13の一部区間では2つの音声が混合されている。この混合信号を1個の区間のまま音声認識で処理しても、当然ながら2つの正しい認識結果は得られない。正しい認識結果を得るためには、それぞれの発話区間、すなわち、
ユーザ1の発話区間11、
ユーザ2の発話区間12
これら個別の発話区間を正しく検出し、それぞれの区間から妨害音を除去する必要がある。
ユーザ1の発話区間11、
ユーザ2の発話区間12
これら個別の発話区間を正しく検出し、それぞれの区間から妨害音を除去する必要がある。
つまり、ユーザ1の発話区間11では妨害音である「さようなら」を除去して目的音である「こんにちは」を残し、ユーザ2の発話区間12では妨害音である「こんにちは」を除去して目的音である「さようなら」を残す必要がある。さらに、前述の「(d)ユーザ(発話者)の位置が不定である環境」である場合、このような処理を任意の方向からの発話同士について行なう必要がある。
最後に、上記環境(b)と(e)とが同時に発生する場合について、図2を用いて説明する。
(b)騒がしい環境。
(e)複数のユーザによる発話同士が時間的に重複する環境。
これらの2つの環境が併せて発生する場合である。
(b)騒がしい環境。
(e)複数のユーザによる発話同士が時間的に重複する環境。
これらの2つの環境が併せて発生する場合である。
図2は、図1と同様、縦軸は発話の方向(音源方向)、横軸は時間を表わしている。図2に示すユーザ1の発話区間21と、ユーザ2の発話区間22は時間的に重複した発話であり、発話自体は、図1を参照して説明した2つの発話とそれぞれ同じであるとする。
妨害音の区間23は、人の発話ではない妨害音の発生区間であり、この例では、固定された場所からずっと鳴っているとする。なお、このような音源としては、例えばラジオやエアコンなどが考えられる。
この図2に示す例において、ユーザ1の発話区間21における「こんにちは」を正しく認識するためには、ユーザ1の発話区間21から「さようなら」と妨害音とを除去する必要がある。一方、「さようなら」を正しく認識するためには、ユーザ2の発話区間22から「こんにちは」と妨害音とを除去する必要がある。そのため、ユーザ発話によって構成された図1に示す場合よりも処理が難しくなる。
[1-2-2.各環境下での音声認識処理を向上させる事前処理について]
このように、上記の(a)~(e)の各環境は、音声認識を困難化させる環境であるが、このような環境において音声認識の精度を高めるためには、以下の処理、すなわち、
音声区間検出処理、
音源抽出処理、
これらの処理を、音声認識処理の前処理として行なう、あるいは、これらの処理を一層、高精度で行なうことが有効である。
このように、上記の(a)~(e)の各環境は、音声認識を困難化させる環境であるが、このような環境において音声認識の精度を高めるためには、以下の処理、すなわち、
音声区間検出処理、
音源抽出処理、
これらの処理を、音声認識処理の前処理として行なう、あるいは、これらの処理を一層、高精度で行なうことが有効である。
これら、音声区間検出処理と、音源抽出処理を、音声認識処理の前に行なう装置構成例を図3に示す。
入力デバイスとして、マイクロホンアレイ31、そして必要に応じてカメラ32を備える。
マイクロホンアレイは、例えば、複数のマイクロホンを所定間隔で配列した構成を持つ。各マイクロホンの取得音は、音源方向に応じて時間的なずれが発生する。すなわち各マイクロホンは、音源方向に応じた位相差を持った音信号を取得する。この位相差信号を解析することで音源方向を特定することが可能となる。
マイクロホンアレイ31やカメラ32からなる入力デバイスからの入力信号は、まず音声区間検出部33に入力される。
入力デバイスとして、マイクロホンアレイ31、そして必要に応じてカメラ32を備える。
マイクロホンアレイは、例えば、複数のマイクロホンを所定間隔で配列した構成を持つ。各マイクロホンの取得音は、音源方向に応じて時間的なずれが発生する。すなわち各マイクロホンは、音源方向に応じた位相差を持った音信号を取得する。この位相差信号を解析することで音源方向を特定することが可能となる。
マイクロホンアレイ31やカメラ32からなる入力デバイスからの入力信号は、まず音声区間検出部33に入力される。
音声区間検出部33は、音声区間検出を行なう。この音声区間検出では、複数の音源それぞれの開始点(始端)と終了点(終端)を検出し、さらに音源方向を求める。
例えば、先に図1を参照して説明したように、複数のユーザによる発話区間が重複している場合、全発話区間13ではなく、ユーザ1の発話区間11と、ユーザ2の発話区間12の区間を、各音源の音声区間として求める、
例えば、先に図1を参照して説明したように、複数のユーザによる発話区間が重複している場合、全発話区間13ではなく、ユーザ1の発話区間11と、ユーザ2の発話区間12の区間を、各音源の音声区間として求める、
なお、このように、複数の発話が重複する環境において、各音声区間(=発話区間)と音源方向を求める手法は、従来からいくつか提案されている。
例えば、国際公開WO06/059806、特開2012-150237号公報では、マイクロホンアレイを構成する各マイクロホンが取得した音信号の位相差を解析することによって音源方向を推定し、推定した音源方向情報を適用して各音源方向からの音声の個別の音声区間検出を行なう方式を提案している。
例えば、国際公開WO06/059806、特開2012-150237号公報では、マイクロホンアレイを構成する各マイクロホンが取得した音信号の位相差を解析することによって音源方向を推定し、推定した音源方向情報を適用して各音源方向からの音声の個別の音声区間検出を行なう方式を提案している。
また、特開2011-191423号公報は、カメラ取得画像を用い、人の口の領域の画像、すなわち口唇画像を解析して、発話区間を特定することで、各音源(各ユーザ)の発話区間を個別に特定して音声認識精度を上げる構成を開示している。
音源方向推定を用いる方式も、口唇画像を併用する方式も、発話区間が検出された時点で、その音源方向も併せて取得可能な構成である。例えば、口唇画像を用いる方式は、画像内の人の口唇位置から音源方向を取得することができる。すなわち、カメラとマイクロホンアレイとの位置関係が既知であれば、撮影画像中の口唇位置を音源方向として特定できる。
音声区間検出部33の検出情報である各発話の音声区間と音源方向情報は、入力デバイスであるマイクロホンアレイ31の取得音とともに音源抽出部34に入力される。音源抽出部34は音源抽出を行なう。すなわち、音声認識処理の対象となる目的の音声のみを残し、それ以外の音は妨害音と見なして除去する処理を行なう。
なお、本開示が対象としている使用環境では、音声認識対象となる発話以外にも様々な音源が存在し、それぞれが鳴っている(アクティブである)区間としての始端・終端、および音源方向という区間情報を持っている。そのため以降では、人間の音声に限らず、また目的音・妨害音に限らず、それら音源の区間を検出する技術を音声区間検出と呼ぶことにする。
妨害音を排除し、目的音を抽出する音源抽出処理については、これまでにも様々な提案がなされている。例えば、国際公開WO06/059806や、特開2011-191423号公報は、「Geometrical Source Separation(GSS)」という方式を適用した音源抽出処理を開示している。
また、本出願人は、本出願人が先に出願した特開2012-234150(特願2012-052548)において、目的音の時間エンベロープを参照信号として用いる方式を提案した。
また、本出願人は、本出願人が先に出願した特開2012-234150(特願2012-052548)において、目的音の時間エンベロープを参照信号として用いる方式を提案した。
これらに記載の音源抽出処理方式は、いずれも以下の各情報、すなわち、
発話区間に対応した観測信号(連続する観測信号に対して発話始端から終端までを切り出したもの)と、
目的音の音源方向情報、
これらの各情報を用いて、目的音を抽出する(それ以外の音を除去する)フィルタを所定の学習処理によって算出する構成である。算出したフィルタをマイクロホンの取得音に対して適用することで、目的音のみを抽出することができる。
発話区間に対応した観測信号(連続する観測信号に対して発話始端から終端までを切り出したもの)と、
目的音の音源方向情報、
これらの各情報を用いて、目的音を抽出する(それ以外の音を除去する)フィルタを所定の学習処理によって算出する構成である。算出したフィルタをマイクロホンの取得音に対して適用することで、目的音のみを抽出することができる。
なお、上記文献において開示しているフィルタ算出のための学習処理はバッチ処理(ある長さに区切られた信号に対して行なう処理)として実行している。算出したフィルタを、発話区間に対応した観測信号に適用することで、クリーンな目的音である音源抽出結果を得ることができる。
フィルタ適用によって妨害音が除去されたクリーンな目的音(音声)は、図3に示す音声認識部35に入力され、音声認識処理が行われる。
フィルタ適用によって妨害音が除去されたクリーンな目的音(音声)は、図3に示す音声認識部35に入力され、音声認識処理が行われる。
このように、複数音源対応の音声区間検出とその区間に対する音源抽出処理とを音声認識の前段において行なうことで、妨害音が存在する環境や、音声認識対象となる目的音が複数存在し、これらが重複して発生する環境でも、個別の目的音を検出し、高い精度で音声認識を行なうことが可能となる。
[1-2-3.事前処理を伴う音声認識処理の問題点について]
図3を参照して説明したように、音声認識処理の事前処理として、音声区間検出処理や、音源抽出処理を行なうことで音声認識精度を向上させることができる。
しかし、この事前処理を行なう構成には、以下の課題がある。
(1)音源抽出の遅延と精度とのトレードオフ
(2)音声区間検出に関する課題
(3)複数の区間が重複した場合における音声認識の遅延とリソースとのトレードオフ
以下、それぞれについて説明する。
図3を参照して説明したように、音声認識処理の事前処理として、音声区間検出処理や、音源抽出処理を行なうことで音声認識精度を向上させることができる。
しかし、この事前処理を行なう構成には、以下の課題がある。
(1)音源抽出の遅延と精度とのトレードオフ
(2)音声区間検出に関する課題
(3)複数の区間が重複した場合における音声認識の遅延とリソースとのトレードオフ
以下、それぞれについて説明する。
[1-2-3.(1)音源抽出の遅延と精度とのトレードオフ]
前述の音源抽出処理を組み込んだ音声認識装置では、音声認識対象となる目的音を抽出する音源抽出処理をバッチ処理として実行している。すなわち、発話の終端が確定した時点で初めて音源抽出処理を開始し、抽出結果を生成した後、抽出結果を用いて音声認識処理を開始するというシーケンスである。
このようなシーケンスで処理を行なうと、発話が終了してから音声認識結果が生成されるまでの間に遅延が生じる。
前述の音源抽出処理を組み込んだ音声認識装置では、音声認識対象となる目的音を抽出する音源抽出処理をバッチ処理として実行している。すなわち、発話の終端が確定した時点で初めて音源抽出処理を開始し、抽出結果を生成した後、抽出結果を用いて音声認識処理を開始するというシーケンスである。
このようなシーケンスで処理を行なうと、発話が終了してから音声認識結果が生成されるまでの間に遅延が生じる。
この遅延について図4を参照して説明する。
図4は、左から右に時間経過を示し、時間経過に沿って行われる処理を示している。
図4において、音声認識対象となる音声の発話区間は、時間t0~t1の発話区間41である。
図4は、左から右に時間経過を示し、時間経過に沿って行われる処理を示している。
図4において、音声認識対象となる音声の発話区間は、時間t0~t1の発話区間41である。
図4に示す(処理例1)は、発話の終端が確定した時点で音源抽出処理を開始し、その後に抽出結果を生成し、抽出結果を用いて音声認識処理を行なう場合の処理シーケンスを示している。
発話区間41の終端は、ユーザの発話の終了と同時に確定することはできない。終端を確定するためには、発話中の短い無音と区別することが必要であり、このために、ある程度の時間を必要とする。例えば、0.3秒以内の無音であれば一続きの発話と見なす場合、発話終端を確定するためには0.3秒の待ち時間が必要である。この待ち時間を表わしているのが、時間t1~t2の終端見極め処理42であり、これは音声区間検出処理の一部である。
発話区間41の終端は、ユーザの発話の終了と同時に確定することはできない。終端を確定するためには、発話中の短い無音と区別することが必要であり、このために、ある程度の時間を必要とする。例えば、0.3秒以内の無音であれば一続きの発話と見なす場合、発話終端を確定するためには0.3秒の待ち時間が必要である。この待ち時間を表わしているのが、時間t1~t2の終端見極め処理42であり、これは音声区間検出処理の一部である。
時間t2において、発話終端が確定した後、時間t2~t3において音源抽出処理43が行なわれる。ここでは、発話区間41を用いたバッチ処理として実行するので、発話が長くなるほど処理時間が長くなる。時間t3において音源抽出処理43が完了すると、次に、時間t3~t4において、その音源抽出結果に対する音声認識処理44を実行する。音声認識処理44も、発話区間41が長いほど処理時間が長くなる。
音声認識を用いたシステムでは、認識結果を使用した何らかの処理、すなわち図4に示す後段の処理45が行なわれる。例えば音声認識装置を備えたテレビに対するユーザ発話として「チャンネルを1に変更」を認識した場合、その認識結果に基づくチャンネル変更が後段の処理45として実行される。
このような後段の処理45が開始されるのは、音声認識処理44が完了してから、すなわち時間t4以降であり、その結果が出るのは時間t5である。従って、時間t1から時間t5までに相当する時間が、システムの結果が返ってくるまでの遅延となる。
このような後段の処理45が開始されるのは、音声認識処理44が完了してから、すなわち時間t4以降であり、その結果が出るのは時間t5である。従って、時間t1から時間t5までに相当する時間が、システムの結果が返ってくるまでの遅延となる。
ここで比較のため、図4に示すように、(処理例2)として音源抽出を実行しない構成における遅延について説明する。すなわち、図3において音源抽出部34を取り除き、音声区間検出部33と音声認識部35とを直結した構成における処理である。
音声区間検出と音声認識については、それぞれ入力信号に対する逐次的な処理が可能である。なお、音声区間検出と音声認識の逐次的処理については、例えば、特開2012-150237号公報や、特開2001-242883号公報に記載がある。
音源抽出を用いず、音声区間検出部と音声認識部を直結した構成では、発話開始(図4の時間t0)とほぼ同時に音声区間検出を開始し、音声区間検出を逐次的に実行し、音声認識も逐次的に実行することが可能となる。
音源抽出を用いず、音声区間検出部と音声認識部を直結した構成では、発話開始(図4の時間t0)とほぼ同時に音声区間検出を開始し、音声区間検出を逐次的に実行し、音声認識も逐次的に実行することが可能となる。
処理区間46は、音声区間検出処理46aと音声認識処理46bを逐次的に交互に実行する処理区間である。この処理区間46では、信号が一定量入力されるごとに処理を行う。
なお、音声認識処理46bと、次の音声区間検出処理46aとの間に隙間がある理由は、これらの処理時間が、発話の実時間よりも短いことに起因する。すなわち、各発話に対する処理時間が発話時間より短い場合には入力信号が一定量溜まるまで待機する必要があり、図に示す隙間は、この待機時間を示している。
なお、音声認識処理46bと、次の音声区間検出処理46aとの間に隙間がある理由は、これらの処理時間が、発話の実時間よりも短いことに起因する。すなわち、各発話に対する処理時間が発話時間より短い場合には入力信号が一定量溜まるまで待機する必要があり、図に示す隙間は、この待機時間を示している。
この(処理例2)では、発話区間41の期間内に音声認識処理も行なわれるため、終端見極め処理47が終了した直後(時間t2)には音声認識結果が生成されており、すぐに後段の処理48を行なうことができるため、システムが反応するタイミングは時間taとなり、(処理例1)に比較して、システムは発話に基づく処理を迅速に実行することが可能となる。
このように、音源抽出処理がなければ、(処理例1)に示す音源抽出処理43だけでなく、音声認識処理44の処理時間も省略できる。しかし、音源抽出処理を省くと、妨害音や重複発話などが除去されないため、目的音以外の雑音が含まれたままの音信号に基づいて音声認識処理を行なうことになり、認識精度が低下するという問題が発生する。
次に、様々な手法による音源抽出処理を適用した場合の遅延と精度について考察する。
マイクロホンの取得音から妨害音を排除して音声認識対象となる目的音のみを抽出する音源抽出処理については、これまで、様々な方式が提案されている。
以下、様々な音源抽出方式の遅延と精度について、個別に考察する。
マイクロホンの取得音から妨害音を排除して音声認識対象となる目的音のみを抽出する音源抽出処理については、これまで、様々な方式が提案されている。
以下、様々な音源抽出方式の遅延と精度について、個別に考察する。
音源抽出方式を以下のように分類する。
(a)観測信号への適応や学習を行なわない方式
(a1)遅延和アレイ(delay-and-sum array)
(a2)死角ビームフォーマー(null beamformer)
(a3)時間周波数マスキング(time-frequency masking)
(b)観測信号への適応や学習を行なうが、目的音の区間以外を使用する方式
(b1)分散最小ビームフォーマー(minimum variance beamformer)
(b2)SN比最大化ビームフォーマー(maximum SNR beamformer)
(c)観測信号への適応や学習を行ない、目的音の区間を使用する方式
(c1)Geometric constrained Source Separation(GSS)
(c2)参照信号ベース音源抽出
(a)観測信号への適応や学習を行なわない方式
(a1)遅延和アレイ(delay-and-sum array)
(a2)死角ビームフォーマー(null beamformer)
(a3)時間周波数マスキング(time-frequency masking)
(b)観測信号への適応や学習を行なうが、目的音の区間以外を使用する方式
(b1)分散最小ビームフォーマー(minimum variance beamformer)
(b2)SN比最大化ビームフォーマー(maximum SNR beamformer)
(c)観測信号への適応や学習を行ない、目的音の区間を使用する方式
(c1)Geometric constrained Source Separation(GSS)
(c2)参照信号ベース音源抽出
以下、上記の各方式について簡単に考察する
(a)観測信号への適応や学習を行なわない方式
この方式の具体例としては、以下の各処理がある。
(a1)遅延和アレイ(delay-and-sum array)を適用した処理
(a2)死角ビームフォーマー(null beamformer)を適用した処理
(a3)時間周波数マスキング(time-frequency masking)を適用した処理
これらの方式はどれも、バッチ処理が必須ではなく、逐次的な音源抽出を行なうことが可能である。その反面、抽出精度に課題がある。
(a)観測信号への適応や学習を行なわない方式
この方式の具体例としては、以下の各処理がある。
(a1)遅延和アレイ(delay-and-sum array)を適用した処理
(a2)死角ビームフォーマー(null beamformer)を適用した処理
(a3)時間周波数マスキング(time-frequency masking)を適用した処理
これらの方式はどれも、バッチ処理が必須ではなく、逐次的な音源抽出を行なうことが可能である。その反面、抽出精度に課題がある。
遅延和アレイを用いた処理は、指定した方向の音を高精度で抽出するためには多数のマイクロホンを必要とする。一方で、マイクロホンの個数が少ない場合(例えば、4個程度の場合)には、指定された方向の音を若干強調する程度の効果しかない。そのため、処理結果には依然として妨害音が含まれており、音声認識の精度は依然として低下する。
死角ビームフォーマーを用いた処理は、全音源(目的音と全ての妨害音)の方向を用いて、目的音の方向に指向性(感度の高い指向特性)を、妨害音の方向に死角(感度の低い指向特性)を持ったフィルタを生成する。しかし、音源の方向に誤差があると、抽出精度が低下する。また、実環境では妨害音については全てが検出できるとは限らない(後述)が、検出されない(=方向が不明な)妨害音は除去できない。
時間周波数マスキングを用いた処理は、妨害音が目的音よりも優勢な周波数についてマスクし(信号の透過度を下げ)、しかもそのマスクを逐次的に変更することで、目的音を抽出(強調)する処理である。しかし、この方式には、抽出の程度と抽出結果の音の歪みとの間にトレードオフがある。すなわち、妨害音を消すために時間周波数マスキングを強く作用させると、音が歪んで音声認識の精度がかえって低下することがあり得る。
(b)観測信号への適応や学習を行なうが、目的音の区間以外を使用する方式
この方式の具体例としては、以下の各処理がある。
(b1)分散最小ビームフォーマー(MVBF:minimum variance beamformer)を用いた方式
(b2)SN比最大化ビームフォーマー(maximum SNR beamformer)を用いた方式
この方式の具体例としては、以下の各処理がある。
(b1)分散最小ビームフォーマー(MVBF:minimum variance beamformer)を用いた方式
(b2)SN比最大化ビームフォーマー(maximum SNR beamformer)を用いた方式
これらの方式に従った音源抽出処理では、抽出フィルタの推定は観測信号を用いたバッチ処理として行なわれるが、そのバッチ処理で用いる観測信号は、目的音の発話区間ではなく、それ以外の部分である。言い換えると、目的音の発話開始時点では既に音源抽出フィルタは確定しており、発話中はそのフィルタを観測信号へ適用可能となる。従って、目的音の発話開始後は、逐次的な音源抽出が可能となる。
この方式(b)は、適応ビームフォーマーと呼ばれる一群の方式が相当する。しかし実環境においては、発話開始の時点で適切な抽出フィルタを用意するのが困難な場合があり、それが抽出精度の低下につながる。以下では、それぞれの方式でその現象について説明する。
(b1)分散最小ビームフォーマー(MVBF)は、観測信号と目的音方向とを用いて、妨害音の方向については死角を形成する一方で目的音の方向については強調も減衰もしないというフィルタを推定する(学習する)方式である。MVBFにおいては、学習で用いる観測信号に目的音が含まれていると、目的音の方向にも死角を形成しようとして抽出精度が低下し得るという問題がある。その問題を回避するため、妨害音のみが鳴っている区間を検出し、その区間の観測信号を用いてフィルタを学習するといった工夫が行なわれている。
図5を参照して分散最小ビームフォーマー(MVBF)を適用したフィルタ生成について説明する。
図5は横軸が時間、縦軸が方向を示している。図5において、ユーザの発話と妨害音とが同時に鳴っている区間57からユーザの発話区間1,51を抽出するフィルタを分散最小ビームフォーマー(MVBF)で推定したい場合、区間56の取得音を用いる。なぜなら、区間57はユーザの発話区間1,51を含み、このユーザ発話にも死角が形成される可能性があるからである。
図5は横軸が時間、縦軸が方向を示している。図5において、ユーザの発話と妨害音とが同時に鳴っている区間57からユーザの発話区間1,51を抽出するフィルタを分散最小ビームフォーマー(MVBF)で推定したい場合、区間56の取得音を用いる。なぜなら、区間57はユーザの発話区間1,51を含み、このユーザ発話にも死角が形成される可能性があるからである。
この分散最小ビームフォーマー(MVBF)を適用した音源抽出方式では、抽出したい音源以外の全ての音源が鳴っている区間を適切に検出する必要がある。言い換えると、そのような区間が存在しない場合には、抽出が適切には行なわれない。
例えば、先に説明した図2において、ユーザ1の発話区間21の「こんにちは」を抽出するフィルタをMVBFで推定するのは困難である。なぜなら、「こんにちは」の発話開始以前にはユーザ2の発話区間22である「さようなら」の方向からの音源が存在していないため、「さようなら」を除去するフィルタの推定ができないからである。
なお、妨害音(雑音)の区間23は、ユーザ1の発話区間21の「こんにちは」以前に存在するため、この先行区間を適用したフィルタ作成によって妨害音は除去できる。
また、遅延を無視してよいのであれば、ユーザ1の発話区間21の「こんにちは」の終了後のユーザ2の発話区間22である「さようなら」の発話の存在する区間26においてフィルタ生成を行なうことで、ユーザ2の発話区間22の「さようなら」と、妨害音との両方を除去するフィルタを作成することができる。
また、遅延を無視してよいのであれば、ユーザ1の発話区間21の「こんにちは」の終了後のユーザ2の発話区間22である「さようなら」の発話の存在する区間26においてフィルタ生成を行なうことで、ユーザ2の発話区間22の「さようなら」と、妨害音との両方を除去するフィルタを作成することができる。
もう一つの方式であるSN比最大化ビームフォーマーでは、事前に、目的音のみが鳴っている区間と妨害音のみが鳴っている区間とを検出し、両方の区間を用いてフィルタを推定する。
例えば図5において、音声認識対象とする目的音であるユーザの発話区間1,51と妨害音1,52との両方が鳴っている状況で、ユーザの発話を抽出するフィルタをSN比最大化ビームフォーマーで推定することを考える。
そのため、
(1)目的音と同じユーザ発話が、ユーザの発話区間1,51と同じ方向から鳴っているユーザの発話区間2の区間55と、
(2)妨害音のみが、妨害音1,52と同じ方向から鳴っている妨害音2,54の区間56、
これらの各区間55,56をそれぞれ検出する。
そのため、
(1)目的音と同じユーザ発話が、ユーザの発話区間1,51と同じ方向から鳴っているユーザの発話区間2の区間55と、
(2)妨害音のみが、妨害音1,52と同じ方向から鳴っている妨害音2,54の区間56、
これらの各区間55,56をそれぞれ検出する。
その後、音源抽出フィルタとして、区間55に対しては適用後のパワーをできる限り大きく、区間56に対しては適用後のパワーをできる限り小さくするフィルタを求める(SN比最大化)。このようにして算出されるフィルタを、区間57における取得音に対して適用することで、取得音から妨害音を削減して、目的音であるユーザの発話区間51の発話音を抽出する作用を持つ。
なお、妨害音が複数存在する状況では、全ての妨害音(目的音の一つを除いた全
ての音源)が鳴っている区間と、目的音のみが鳴っている区間とが必要になる。
なお、妨害音が複数存在する状況では、全ての妨害音(目的音の一つを除いた全
ての音源)が鳴っている区間と、目的音のみが鳴っている区間とが必要になる。
このように、SN比最大化ビームフォーマーは、目的音・妨害音それぞれについて単独で鳴っている区間が必要であるため、そのような区間が存在しない状況では、フィルタが適切には推定できない。例えば図2に示す状況では、妨害音の区間23が途切れることなく存在するため、目的音の一つのみが単独で鳴っている区間が存在しない。このような場合に適切なフィルタを生成することが困難となる。
また、分散最小ビームフォーマー(MVBF)と、SN比最大化ビームフォーマー、これら両方式に共通する課題として、各音源が鳴っているか鳴っていないかを正確に検出する必要があり、そこで失敗すると、抽出の精度が低下するという課題がある。実環境では、特に妨害音については、鳴っているか否かが正確に検出できるとは限らない。(詳細は、音声区間検出の項で述べる。)
また、目的音と妨害音とが同時に鳴っている区間と、妨害音が単独で鳴っている区間とで、各音源の方向が同じであると仮定しているため、目的音や妨害音の音源が移動したら、それを適切に検出し、フィルタの推定をやり直す必要がある。
これらの課題は、フィルタの推定において、目的音である発話区間そのものは使用できず、代わりに過去の区間を使用している点に由来している。
これらの課題は、フィルタの推定において、目的音である発話区間そのものは使用できず、代わりに過去の区間を使用している点に由来している。
(c)観測信号への適応や学習を行ない、目的音の区間を使用する方式
次に、この方式(c)について説明する。この方式(c)の具体例としては次のものがある。
(c1)Geometric constrained Source Separation(GSS)
(c2)参照信号ベース音源抽出
次に、この方式(c)について説明する。この方式(c)の具体例としては次のものがある。
(c1)Geometric constrained Source Separation(GSS)
(c2)参照信号ベース音源抽出
さらに、この方式(c)は、上記のGSSや「目的音の時間エンベロープを参照信号として用いる方式」の他に、独立成分分析(Independent Component Analysis:ICA)などがある。いずれも、抽出用のフィルタを発話区間そのものから推定することができる。例えば、図2のユーザ1の発話区間21の「こんにちは」を抽出するフィルタは、区間27の観測信号から推定できる。この区間27にはネユーザ2の発話区間22の「さようなら」や妨害音の一部も含まれているため、「こんにちは」を残してそれ以外を除去する高精度のフィルタが生成可能である。
また、先に説明した方式(b)に分類された各方式とは異なり、発話区間そのものを利用できるという特徴があるため、今回認識したい発話の区間が検出できれば、それが以前と同じ位置かどうかといった判別は不要である。つまり、発話の度に抽出フィルタを推定し、かつ適用すればよい。
その一方で、フィルタの推定は発話区間全体を用いたバッチ処理であるため、音源抽出以降の処理は逐次処理ができなくなる。その結果、先に図4を参照して説明したように、音源抽出に加えて音声認識の分の遅延が発生してしまうという問題がある。
その一方で、フィルタの推定は発話区間全体を用いたバッチ処理であるため、音源抽出以降の処理は逐次処理ができなくなる。その結果、先に図4を参照して説明したように、音源抽出に加えて音声認識の分の遅延が発生してしまうという問題がある。
[1-2-3.(2)音声区間検出に関する課題]
次に、音声区間検出に関する課題のうち、音源抽出や音声認識と接続したときに問題となり得る点について述べる。
次に、音声区間検出に関する課題のうち、音源抽出や音声認識と接続したときに問題となり得る点について述べる。
1点目は、音源は常に検出できるとは限らないということである。これは特に妨害音において顕著である。
例えば、先に説明した音源抽出方式中の[(b)観測信号への適応や学習を行なうが、目的音の区間以外を使用する方式]、すなわち、(b1)分散最小ビームフォーマー(MVBF)や、(b2)SN比最大化ビームフォーマーを適用した音源抽出方式は、妨害音の区間を正確に検出できることが前提となるが、この課題があるため、フィルタが適切に推定されるとは限らず、結果として抽出の精度が下がる場合もある。
例えば、先に説明した音源抽出方式中の[(b)観測信号への適応や学習を行なうが、目的音の区間以外を使用する方式]、すなわち、(b1)分散最小ビームフォーマー(MVBF)や、(b2)SN比最大化ビームフォーマーを適用した音源抽出方式は、妨害音の区間を正確に検出できることが前提となるが、この課題があるため、フィルタが適切に推定されるとは限らず、結果として抽出の精度が下がる場合もある。
例えば、不特定多数が出入りするような場所でハンズフリーの音声認識システムを使用する場面を考える。すわちユーザが専用のマイクロホンを持たず、ある固定位置にあるマイクロホンによって様々な方向から、様々なユーザの発話を取得して解析する構成である。
このような使用環境においては、ユーザはマイクロホンの比較的近く(ただし、口元よりは遠く)で発話する一方、その背後で不特定多数による会話が発生しているような状況があり得る。その場合、目的音であるユーザの発話は比較的検出しやすいが、妨害音である背後の会話について、各個人の発話区間を正確に検出することは困難である。
仮に、妨害音が単一であり、しかもそれがずっと鳴っているのであれば、「目的音が検出されていないときは妨害音が鳴っている」という仮定が成り立つが、不特定多数が出入りする環境では、そのような仮定は成立しない。
また、画像を用いた音声区間検出では、別の理由で妨害音の検出が困難な場合がある。例えば、カメラの画角外に位置する音源については、検出が困難である。さらに、音源が画角内に位置する場合でも、画像から音源を検出するのは困難な場合がある。なぜなら、音声認識システムにおいては目的音の音源は人に限定できるため、顔・口唇・手といった人体の部位の画像と対応付けることが容易なのに対し、妨害音についてはそのような限定は一般には困難だからである。
2点目は、複数の音声区間検出方式を用いた場合に発生する問題である。例えば、音声区間検出の方式として、音源方向推定に基づく方式(例えば特開2012-150237号公報に記載がある)と、口唇画像を用いる方式(例えば特開平10-51889号公報に記載がある)とを併用する場合を考える。各方式が独立に動作すると、1回の発話に対して両方とも発話区間を検出する。これを多重検出と呼ぶ。両区間に対して以降の処理が行なわれると、たとえそれらが正しく認識されたとしても、1回の発話に対してシステムが二重に反応するという現象が発生し得る。
多重検出を防ぐためには、それぞれの発話区間の終端が確定した時点で、始端・終端・方向が接近しているもの同士を一つにマージし、音声認識処理はそのマージされた一つの区間に対して行なうという方法が考えられる。しかし、このように区間同士のマージを行なうと、音声区間検出に由来する遅延が増大してしまい、しかも、低遅延を特徴とする音声区間検出方式を用いても、その利点がなくなってしまうという問題が発生する。
このマージ処理における問題について、図6を用いて説明する。図6に示す例は、3種類の音声区間検出方式を併用した例である。横軸が時間軸であり、縦軸は方向を示す。
図6に示す発話区間61~63は、異なる3種類の音声区間検出方式によって検出された音声区間(=発話区間)である。
3つの音声区間検出方式は、例えば、以下の方式である。
*音源方向推定に基づく方式、
*口唇画像を用いる方式、
*手形状の検出を用いる方式(例えば特開2012-203439号公報に記載)、
これらの3つの方式である。
図6に示す発話区間61~63は、異なる3種類の音声区間検出方式によって検出された音声区間(=発話区間)である。
3つの音声区間検出方式は、例えば、以下の方式である。
*音源方向推定に基づく方式、
*口唇画像を用いる方式、
*手形状の検出を用いる方式(例えば特開2012-203439号公報に記載)、
これらの3つの方式である。
[*手形状の検出を用いる方式]とは、発話期間、発話者であるユーザが手の形状を変更する(例えば、発話中は手の形状をグーにする)方式である。
図6に示す発話区間61~63は、1回の発話に対して、上記3つの各方式によって検出された区間である。方式ごとに、区間の始端・終端・方向は、それぞれ近接しているが、お互いに異なる値であるとする。また、終端見極め時間(図4の終端見極め処理42に相当)も、それぞれの方式で異なるものとする。発話区間(1)61の検出方式では、発話終了後、時間t3までの期間が終端見極め時間に相当し、発話区間(3)63の検出方式では、発話終了後、時間t4までの期間が終端見極め時間に相当する。手形状を用いる方式は、終端見極め時間を無視することができ、図6の発話区間(2)62はその方式によって検出された区間とする。従って、各発話区間61~63の終端が確定するタイミングは、それぞれ時間t3、t1、t4である。
図6に示す発話区間61~63は、1回の発話に対して、上記3つの各方式によって検出された区間である。方式ごとに、区間の始端・終端・方向は、それぞれ近接しているが、お互いに異なる値であるとする。また、終端見極め時間(図4の終端見極め処理42に相当)も、それぞれの方式で異なるものとする。発話区間(1)61の検出方式では、発話終了後、時間t3までの期間が終端見極め時間に相当し、発話区間(3)63の検出方式では、発話終了後、時間t4までの期間が終端見極め時間に相当する。手形状を用いる方式は、終端見極め時間を無視することができ、図6の発話区間(2)62はその方式によって検出された区間とする。従って、各発話区間61~63の終端が確定するタイミングは、それぞれ時間t3、t1、t4である。
これら、3つの区間はどれも1つの発話から生成されているが、検出時点では3重に検出されている。そこで、これらを1つにマージする。そのためには、時間と方向とについてそれぞれマージンを設定し、ある区間について終端の時刻と区間の方向とがそれぞれその範囲内に入っていたら、それを満たす区間同士を一まとめにする。例えば図6では、発話区間(2),62の終端が最初に確定するため、発話区間(2),62の方向を中心とする方向マージン68と、発話区間(2),62の終端を始端とする時間マージ66とを設定する。この図では、残りの区間である発話区間(1),61と、発話区間(3),63は両方のマージン以内に収まっているため、これら3つの区間は一つにマージされる。
しかし、このように複数の区間検出方式の結果を後でマージする方法は、単一の区間検出方式を用いる場合と比べて遅延が増大する。なぜなら、区間同士をマージするか否かを判別するためには時間が必要であり、その時間は最も長い終端見極め時間よりもさらに長くする必要があるからである。
例えば、図6では、3つの発話区間(1)~(3)の終端が全て確定するのは、時間t4の時点である。つまり、マージするか否かの判定はこの時間t4以降に行なう必要がある。最初の終端が確定してからマージの判定までの時間を、マージ見極め時間と呼ぶ。図6に示す時間t1~t5がマージ見極め時間67となる。
発話区間のマージによって多重検出を完全に防ぐためには、マージ見極め時間として、時間マージンと最長の終端見極め時間とを合わせた時間が少なくとも必要である。言い換えると、マージ見極め時間は終端見極め時間の長い方に依存してしまうため、短い終端見極め時間を特徴とする方式は、その利点が活きなくなる。
課題の3点目は、逐次的な音源抽出との組み合わせである。本開示では後述の通り、バッチ処理にも関わらず音源抽出を逐次処理可能とする。しかし、このような逐次処理可能な音源抽出と複数の音声区間検出方式とを組み合わせた構成において、システム全体としてどのような処理を行なえば効果的に遅延を短縮できるかについては、今まで開示したものはない。
[1-2-3.(3)複数の区間が重複した場合における音声認識の遅延とリソースとのトレードオフ]
仮に、音声区間検出と音源抽出とが理想的に機能したとしても、音声認識には別の課題が発生する。本開示で想定している環境では、目的音、妨害音の区別なく各音源の音声区間が時間的に重複し得る。これらの複数の音声区間の何れを優先的に選択して音声認識処理を実行するかを決定するかは重要な課題である。優先順位を間違えると、認識結果が生成されるまでの遅延が増大する。一方で、複数の音声認識を並列で走らせることができれば、遅延は短縮できるが、CPUの使用率やメモリ使用量などのリソースは増大する。
仮に、音声区間検出と音源抽出とが理想的に機能したとしても、音声認識には別の課題が発生する。本開示で想定している環境では、目的音、妨害音の区別なく各音源の音声区間が時間的に重複し得る。これらの複数の音声区間の何れを優先的に選択して音声認識処理を実行するかを決定するかは重要な課題である。優先順位を間違えると、認識結果が生成されるまでの遅延が増大する。一方で、複数の音声認識を並列で走らせることができれば、遅延は短縮できるが、CPUの使用率やメモリ使用量などのリソースは増大する。
ここで、音声認識の遅延等について説明する前に、音声認識デコーダ(以降はデコーダと記す)について説明する。
音声認識に関する各処理のうち、入力された特徴量の系列に対応した音素系列や単語系列を求める処理をデコードと呼び、それを行なうモジュールをデコーダと呼ぶ。
基本的に、一つのデコーダは一つの入力系列しか処理できないため、デコーダが一つしかないと、複数の区間が時間的に重複した場合には、一方のデコードが終了するまでもう一方のデコードが待たされるという現象が発生する。これを、デコード処理の待ち行列と呼ぶことにする。
音声認識に関する各処理のうち、入力された特徴量の系列に対応した音素系列や単語系列を求める処理をデコードと呼び、それを行なうモジュールをデコーダと呼ぶ。
基本的に、一つのデコーダは一つの入力系列しか処理できないため、デコーダが一つしかないと、複数の区間が時間的に重複した場合には、一方のデコードが終了するまでもう一方のデコードが待たされるという現象が発生する。これを、デコード処理の待ち行列と呼ぶことにする。
デコード処理の待ち行列について、図7と図8を用いて説明する。どちらも、横軸は時間、縦軸は方向を示し、音源の区間は図2と同じであり、妨害音が長く鳴っている環境で二人のユーザが時間的に重複するように発話した例である。
図7は、従来法であるバッチ処理(逐次処理ではない)の音源抽出方式と音声認識とを組み合わせた場合について、音源抽出処理とデコード処理(音声認識処理)とが行なわれるタイミングを図示したものである。3つの音声区間71~73は、図2に示す音声区間21~23と同一である。これら3つの区間について、それぞれバッチ処理で音源抽出を行ない、それぞれの結果についてデコードするものとする。なお、区間73は妨害音であり、本来はデコードする必要はない。しかし、画像や事前の知識などによって妨害音かどうかが適切に判定できる場合を除けば、検出された区間は基本的に全てデコードし、そのスコアや信頼度が低かったら妨害音と見なすという方式を取らざるを得ない。
先に説明した図4では、遅延時間として、終端見極め処理42~後段の処理45の4種類の遅延時間について説明したが、ここでは簡単のため、終端見極め時間42と後段処理45は無視できるものとし、音源抽出処理43と音声認識処理44についてのみ考え、さらに音声認識処理ではデコード処理が時間のほぼすべてを占めているとする。また、異なる区間同士では、音源抽出処理とデコード処理とは同時に並列で行なえるものとする。
図7において、音源抽出処理はバッチ処理として実行することを前提としているため、最初に音源抽出処理が開始するのはユーザ1の発話区間71の終端が確定したタイミング(t1)である。処理期間74が音源抽出処理を示している。その後、デコード処理が開始する。処理期間75がデコード処理を示す。
ここで、ユーザ2の発話区間72が終了したタイミングは、ユーザ1の発話区間71の終了より若干の遅いもののほぼ同時だったとする。すると、発話区間72の音源抽出処理は、処理期間76に示すように、ユーザ2の発話区間72の終端確定時(t2)において、すぐに開始できる(音源抽出とデコーダとは同時に処理できるとする)が、このユーザ2の発話区間72の音源抽出処理が終了したタイミング(t3)では、ユーザ1の発話区間71ののデコード処理(処理期間75)が継続中である可能性が高い。このような場合、ユーザ2の発話区間72ののデコードを開始できるタイミングは、ユーザ1の発話区間71のデコードが終了した時間、すなよち時間t4である。
つまり、ユーザ2の発話区間72ののデコードは、ユーザ1の発話区間71のデコードが終了するまで待たされている。この現象を「デコードの待ち行列」と呼んでいる。デコードの待ち行列が発生すると、音声認識システムの遅延はますます増大することになる。
なお、妨害音の区間73のデコードについては、妨害音の区間73の終端が確定する前に、ユーザ2の発話区間72のデコード(処理期間77)が終了していれば、妨害音の音源抽出処理(処理期間78)の終了後、待つことなしにデコード(処理期間79)が開始できる。
一方、仮に音源抽出において逐次的な処理が可能になると、本来なら、図4の下段に示した(処理例2)において説明したように、発話終了から音声認識終了までの遅延は短縮できる。しかし、区間に時間的な重複があり、しかもデコーダが1個しかない場合、どの区間を優先的にデコードするかの割り当てが不適切であると、かえって遅延が増大する可能性がある。その現象について図8で説明する。
図8において、音声区間80~82は図2に示す3つの音声区間21~23と同一の音声区間であり、重複のある発話と妨害音とを表わしている。音声区間検出・音源抽出・音声認識(デコード)はどれも逐次的処理が可能であり、区間が一つであれば、区間の始端とほぼ同時にこれら3つの処理が開始され、終端とほぼ同時に終了することができるとする。
この3つの処理を、先に始まった区間に対して優先的に割り当てるとすると、図8では妨害音の区間82に対して最初に割り当てられる。処理期間83は、妨害音の区間82に対して音声区間検出・音源抽出・音声認識(デコード)が逐次的に行われていることを表わしている。
そしてこの区間に限定すれば、終端とほぼ同時に、音声認識処理も完了する。ただし、区間82は妨害音であるため、音声認識の結果としてスコアや信頼度によって棄却される(後段処理は行なわれない)のが望ましい挙動である。
そしてこの区間に限定すれば、終端とほぼ同時に、音声認識処理も完了する。ただし、区間82は妨害音であるため、音声認識の結果としてスコアや信頼度によって棄却される(後段処理は行なわれない)のが望ましい挙動である。
しかし、最初に妨害音の区間82に対してデコードを行なうと、残った区間であるユーザ1の発話区間80とユーザ2の発話区間81については待ち行列が発生し、しかもこの図8に示す例では図7に示す例よりも遅延が増大する。なぜならユーザ1の発話区間80の期間は、デコーダが区間82の処理に占有されている(処理期間83)ため、ユーザ1の発話区間80が終了しても、ユーザ1の発話区間80に対するデコードは開始できないからである。
処理期間84に示すように、ユーザ1の発話区間80に対する音声区間検出と音源抽出とを先回りして実行したとしても、処理期間85に示すように、デコードが開始できるのは、妨害音の区間82に対するデコード処理83の終了後(t6)であり、認識結果が生成されるのは、時間t7のタイミングである。
同様に、ユーザ2の発話区間81についても、処理期間86に示すように、音声区間検出と音源抽出とは先回りして実行できるが、処理期間87に示すようにデコードが開始できるのは時間t7、認識結果が生成されるのは時間t8のタイミングである。
すなわち、図8に示す例では、妨害音の区間82については、認識結果が図7に示す妨害音の区間73に対する処理よりも早く生成されるが、これは棄却されるべき区間なので、ユーザから見た利点がない。一方で、妨害音の区間82のデコードが残りの区間よりも先に動くために、ユーザ1の発話区間80や、ユーザ2の発話区間81については、デコードの開始が、妨害音の区間82のデコードの終了まで待たされてしまう。その結果、ユーザにとっては、図7に示す例よりも遅延が増大したように見える。
なお、図8に示す例でも、重複した区間と同じ数だけデコーダを用意できれば、それぞれに区間に対して音声区間検出・音源抽出・音声認識(デコード)を逐次的に行なうことができるため、遅延時間を短縮することができる。それを表わしたのが、図8の下段に示す処理期間88,89である。
デコーダを3個以上用意した場合、妨害音の区間82のデコード処理(処理期間83)が実行中でも、残りのデコーダにより、他の音声区間のデコードが可能となる。
ユーザ1の発話区間80に対するデコード処理を処理期間88、ユーザ2の発話区間81に対するデコード処理を処理期間89として示している。このように複数のデコーダを用いればデコーダの待ち行列は発生しない。そのため、3つの区間のどれについても終端の確定とほぼ同時に認識結果が生成される。
ユーザ1の発話区間80に対するデコード処理を処理期間88、ユーザ2の発話区間81に対するデコード処理を処理期間89として示している。このように複数のデコーダを用いればデコーダの待ち行列は発生しない。そのため、3つの区間のどれについても終端の確定とほぼ同時に認識結果が生成される。
しかし、デコーダを複数用意すると、その分、メモリやCPUなどのリソースを消費するため、個数には上限がある。つまり、N個の区間が時間的に重複するからといって、N個のデコーダも常に用意できると想定するのは現実的ではない。現実的な想定としては、デコーダは複数用意するものの、個数は限定されており(例えば2個)、その個数より多くの区間が同時発生する可能性があると考えることであろう。すなわち、デコーダの個数は、1個よりは多いが、区間の個数よりは少ないと想定する。
しかし、前述のような複数の区間が時間的に重複し得る環境において、区間よりも少ない個数のデコーダを用いるという前提の下、区間にデコーダをどのように割り当てると遅延が小さくなるかという問題については、従来は有効な解決策がなかった。
[1-2-3.(4)音声認識処理において発生する問題点のまとめ]
ここで、音声認識処理において発生する問題点についてまとめる。本開示が対象とする環境では、複数の音源が同時に鳴る場合があり、しかもそれらの内の一つ以上が目的音である可能性がある。この特徴により、音声区間検出・音源抽出・音声認識それぞれに、以下のような課題が発生する。
ここで、音声認識処理において発生する問題点についてまとめる。本開示が対象とする環境では、複数の音源が同時に鳴る場合があり、しかもそれらの内の一つ以上が目的音である可能性がある。この特徴により、音声区間検出・音源抽出・音声認識それぞれに、以下のような課題が発生する。
(音声区間検出処理における課題)
・時間的に重複する可能性がある区間同士を高精度に検出しようとして複数の方式を併用すると、多重検出が発生するか、遅延が増大するかのどちらかが発生し得る。
・時間的に重複する可能性がある区間同士を高精度に検出しようとして複数の方式を併用すると、多重検出が発生するか、遅延が増大するかのどちらかが発生し得る。
(音源抽出処理における課題)
・時間的に重複した区間に対して高精度な抽出を行なうために、区間全体を用いたバッチ処理を行なうと、発話終了から音声認識結果が生成されるまでの遅延が増大する。
・逐次的に処理可能な音源抽出方式を用いると、音源抽出の精度が低下する。
・時間的に重複した区間に対して高精度な抽出を行なうために、区間全体を用いたバッチ処理を行なうと、発話終了から音声認識結果が生成されるまでの遅延が増大する。
・逐次的に処理可能な音源抽出方式を用いると、音源抽出の精度が低下する。
(音声認識処理(デコード)における課題)
・時間的に重複した区間に対して 1個のデコーダでデコードしようとすると、デコード処理に待ち行列が発生して遅延が増大する。
・重複した区間と同数のデコーダを常に用意するのは、リソースの制限から困難。
・限定された個数のデコーダを用いた場合、すなわち、1個よりは多いが区間の数より少ない個数のデコーダを使用した場合に、どうすれば待ち行列を少なくできるかについては、従来技術では解決策が示されていない。
・時間的に重複した区間に対して 1個のデコーダでデコードしようとすると、デコード処理に待ち行列が発生して遅延が増大する。
・重複した区間と同数のデコーダを常に用意するのは、リソースの制限から困難。
・限定された個数のデコーダを用いた場合、すなわち、1個よりは多いが区間の数より少ない個数のデコーダを使用した場合に、どうすれば待ち行列を少なくできるかについては、従来技術では解決策が示されていない。
[2.本開示の音声認識装置の特徴について]
次に、本開示の音声認識装置の特徴について説明する。
本開示では、前述の問題を解決するために、音声区間検出、音源抽出、音声認識それぞれにおいて、従来の処理と異なる新規な点を有する。一番重要な点は、音源抽出において抽出精度を高く保ちながらもほぼ逐次的な処理を可能にしている部分である。そこで、音源抽出における新規点について最初に説明し、その後で音声区間検出と音声認識についてそれぞれ新規点について説明する。
次に、本開示の音声認識装置の特徴について説明する。
本開示では、前述の問題を解決するために、音声区間検出、音源抽出、音声認識それぞれにおいて、従来の処理と異なる新規な点を有する。一番重要な点は、音源抽出において抽出精度を高く保ちながらもほぼ逐次的な処理を可能にしている部分である。そこで、音源抽出における新規点について最初に説明し、その後で音声区間検出と音声認識についてそれぞれ新規点について説明する。
[2-1.音源抽出処理における新規点について]
以下、本開示の音声認識装置において実行する音源抽出処理の新規点について説明する。
まず、最初に音源抽出に適用する抽出フィルタと、フィルタの推定や適用とは具体的には何を表わしているかについて、数式を参照して説明する。
以下、本開示の音声認識装置において実行する音源抽出処理の新規点について説明する。
まず、最初に音源抽出に適用する抽出フィルタと、フィルタの推定や適用とは具体的には何を表わしているかについて、数式を参照して説明する。
マイクロホンによって取得された観測信号に対して後述の短時間フーリエ変換(Short-Time Fourie Transform:STFT)を適用することで、時間周波数領域の観測信号が生成される。フレーム番号(または時間)をt、周波数ビン番号(または周波数)をωという変数で表わし、k番目のマイクロホンで取得された時間周波数領域の観測信号を、Xk(ω,t)とする。
観測信号は、所定の位置に配置された複数本のマイクロホンの各々において取得する。すなわち観測信号は、マイクロホンと同数の複数の入力チャンネルを持つ。
全チャンネル(全マイクロホン)分の観測信号からなる列ベクトルを、以下に示す式[1.1]のX(ω,t)のように表わす。このX(ω,t)を観測信号ベクトルと呼ぶ。
全チャンネル(全マイクロホン)分の観測信号からなる列ベクトルを、以下に示す式[1.1]のX(ω,t)のように表わす。このX(ω,t)を観測信号ベクトルと呼ぶ。
本開示において、観測信号から音声認識の処理対象とする目的音を抽出するフィルタとは、上記の式[1.3]で表わされるような行ベクトルW(ω)である。フィルタを適用する(フィルタリングする)とは、式[1.2]に示すように、観測信号ベクトルにフィルタを乗じることである。
フィルタW(ω)を適切に選ぶと、観測信号ベクトルX(ω,t)の中から目的信号を抽出(強調)し、それ以外の信号は除去(減衰)することができる。そのようなフィルタを抽出フィルタと呼び、そのときのフィルタ適用結果Y(ω,t)を(音源)抽出結果と呼ぶ。このフィルタ適用結果Y(ω,t)は、音声認識対象とする目的音の成分が多く含まれ、妨害音が削減された信号であり、このフィルタ適用結果Y(ω,t)を適用して音声認識を実行することで、高精度な音声認識結果を得ることが可能となる。
一方、適切な抽出フィルタW(ω)を求める処理を、抽出フィルタの推定と呼び、特に、観測信号を用いてそのような推定処理を行なう場合を学習と呼ぶ。フィルタ推定処理は、例えば前述のGSS(Geometrical Source Separation)、遅延和アレイや、各種ビームフォーマーなどを適用したフィルタ推定、あるいは本出願人の先行特許出願である特開2012-234150(特願2012-052548号)に記載の手法においても利用される。なお、これらの何れの手法においても、フィルタの適用形態(式[1.2])は共通であるが、フィルタを推定(学習)する式は異なる。
観測信号から目的音を高精度に抽出するためには、発話区間全部を用いたバッチ処理を実行して抽出フィルタを推定(学習)するのが望ましい。しかし、発話の終端を検出してからバッチ処理を行なうと、前述のように遅延の原因となる。そこで、発話開始から一定時間が経過した時点で抽出フィルタを推定する。その時点から発話終了までは、抽出フィルタは固定し、観測信号への適用(式[1.2])のみを行なう。フィルタの適用自体は逐次的に処理できるため、この工夫によってバッチ処理でありながら音源抽出の逐次処理も可能となる。
音源抽出の逐次処理について、図9を用いて説明する。図9もこれまでの各図と同様、横軸が時間、縦軸が方向を示している。音声認識対象を目的音91とする。その開始点(始端)は時間t2である。本開示の処理では、目的音の始端から一定時間が経過した時間(t3)から抽出フィルタの推定を開始する。それが、図に示す「抽出フィルタの推定95」である。
抽出フィルタの推定95では、目的音91の開始点(始端)である時間t2から時間t3までの観測信号、あるいは、時間t2より以前のある時点(時間t1)から時間t2までの観測信号と、時間t2から時間t3までの目的音の方向とを用いてフィルタ推定を実行する。観測信号に基づく抽出フィルタの推定処理は、例えば、従来から知られる方法で実行可能であり、具体的には、例えば特開2011-191423号公報に記載の方式で抽出フィルタを推定することが可能である。
抽出フィルタの推定95の期間において求めたフィルタを発話区間内の観測信号に適用し、音源抽出結果を生成していく。この処理は、大きく分けて2つの段階の処理に分けられる。
最初の段階の処理は、目的音91の発話始端(t2)から抽出フィルタの推定開始時点(t3)までの観測信号に対してフィルタを適用する。図9に示す「抽出フィルタの適用(1),96」は、この処理を表わしている。
最初の段階の処理は、目的音91の発話始端(t2)から抽出フィルタの推定開始時点(t3)までの観測信号に対してフィルタを適用する。図9に示す「抽出フィルタの適用(1),96」は、この処理を表わしている。
時間t5において、この「抽出フィルタの適用(1),96」が終了したら、次の段階の処理を開始する。この処理は、時間t3以降の観測信号に対する逐次的なフィルタ適用処理である。すなわち、一定量の観測信号が入力されるたびに、入力した所定量の観測信号にフィルタを適用して抽出結果を逐次的に生成する。
図に示す「抽出フィルタの適用(2)」の1つのボックスがフィルタ適用の1回分を表わしている。
図に示す「抽出フィルタの適用(2)」の1つのボックスがフィルタ適用の1回分を表わしている。
「抽出フィルタの適用(1),96」が終了する時間t5の直後は、フィルタ適用処理が入力観測信号に対して遅れて実行されるため、待機時間なしで連続的なフィルタ適用を行なう。やがて、フィルタ適用処理が、入力観測信号に追いついたら、適度な待機時間98を間に挟みながらフィルタ適用処理を行なう。
このようにすることで、発話の途中からは音源抽出も逐次的に処理されるようになるため、その後段である音声認識処理も、逐次的に処理される。従って、発話が終了するのとほぼ同時(時間t6)に音声認識結果を生成することが可能となる。
このようにすることで、発話の途中からは音源抽出も逐次的に処理されるようになるため、その後段である音声認識処理も、逐次的に処理される。従って、発話が終了するのとほぼ同時(時間t6)に音声認識結果を生成することが可能となる。
なお、発話が時間t6よりも前に終了した場合は、従来と同様に、発話終端の検出時に音源抽出と音声認識とを行なう。その場合は逐次処理にはならないが、本実施例でそのような処理になるのは、時間t2~t3の長さよりも短い発話に限られる。前述の通り、音源抽出も音声認識も短い発話ほど処理時間が短いため、短い発話限定であれば、逐次処理を行なわなくても遅延は大きな問題とならない。
このように目的音の音声区間の途中で抽出フィルタを推定してしまうことで、音源抽出の遅延の問題は解消できるが、一方で、抽出精度が低下する可能性もある。以降では、抽出精度低下の要因について説明するとともに、それを解決する方法について説明する。
音声認識対象とする目的音の音声区間の途中での抽出フィルタ推定で抽出精度が低下する要因は、以下の2点が考えられる。
(1)フィルタの推定で使用される学習サンプルの個数が減少する。
(2)フィルタ推定の後で発生した妨害音は除去できない。
以下では、それぞれの要因についてと、その解決方法について説明する。
(1)フィルタの推定で使用される学習サンプルの個数が減少する。
(2)フィルタ推定の後で発生した妨害音は除去できない。
以下では、それぞれの要因についてと、その解決方法について説明する。
まず、「(1)フィルタの推定で使用される学習サンプルの個数が減少する。」この要因と解決方法について説明する。
例えば、特開2011-191423号公報に記載の手法を適用した抽出フィルタ推定を行なう場合、学習データのサンプル数は、フィルタ推定で使用する観測信号のフレーム数となる。従って、例えば、図9に示す例では、時間t2から時間t6までの観測信号を使用する代わりに、時間t2から時間t3までの観測信号しか使用しないと、単純に学習サンプルの個数が減少するため、学習においてフィルタが適切には推定できなくなる可能性がある。
例えば、特開2011-191423号公報に記載の手法を適用した抽出フィルタ推定を行なう場合、学習データのサンプル数は、フィルタ推定で使用する観測信号のフレーム数となる。従って、例えば、図9に示す例では、時間t2から時間t6までの観測信号を使用する代わりに、時間t2から時間t3までの観測信号しか使用しないと、単純に学習サンプルの個数が減少するため、学習においてフィルタが適切には推定できなくなる可能性がある。
十分な個数の学習サンプルを確保するためには、学習データである観測信号の始端を時間t2より前に設定すればよい。例えば、時間t3から一定時間さかのぼった時点(時間t1)を始端とする。学習データの始端を区間の始端より前に設定することは、学習サンプルの個数を確保する以外の利点もあり、例えば、妨害音が目的音より前から鳴っている場合、すなわち妨害音1,92がある場合、これを一層除去できるようになる。
次に、「(2)フィルタ推定の後で発生した妨害音は除去できない。」この要因と解決方法について説明する。
フィルタ推定の後で発生した妨害音とは、具体的には、例えば図9に示す例において、時間t3より後で鳴り始めた妨害音であり、妨害音3,94が該当する。時間t1から時間t3までの観測信号を学習データとして用いてフィルタの推定を行なう場合、時間t2より前から鳴っている妨害音1,92や、時間t2~t3の間に鳴り始めた妨害音2,93については除去できる(可能性がある)。しかし、妨害音3,94については学習データには含まれないため、除去されない。そのため、妨害音3,94のような妨害音によって抽出精度が低下するのを防ぐためには、別の工夫が必要になる。
フィルタ推定の後で発生した妨害音とは、具体的には、例えば図9に示す例において、時間t3より後で鳴り始めた妨害音であり、妨害音3,94が該当する。時間t1から時間t3までの観測信号を学習データとして用いてフィルタの推定を行なう場合、時間t2より前から鳴っている妨害音1,92や、時間t2~t3の間に鳴り始めた妨害音2,93については除去できる(可能性がある)。しかし、妨害音3,94については学習データには含まれないため、除去されない。そのため、妨害音3,94のような妨害音によって抽出精度が低下するのを防ぐためには、別の工夫が必要になる。
本開示では、以下の2つの技術を導入することで、フィルタ生成後に発生する妨害音3,94のような妨害音による抽出精度の低下を防止する。
a)全死角空間フィルタ(例えば特開2011-107602号公報に記載)
b)時間周波数マスキング(例えば本出願人の先行出願である特開2012-234150(特願2012-052548)に記載)
以下、それぞれについて簡単に説明する。なお、詳細処理については後段で説明する。
a)全死角空間フィルタ(例えば特開2011-107602号公報に記載)
b)時間周波数マスキング(例えば本出願人の先行出願である特開2012-234150(特願2012-052548)に記載)
以下、それぞれについて簡単に説明する。なお、詳細処理については後段で説明する。
「a)全死角空間フィルタ」とは、学習データに含まれる全ての音源の方向に死角を形成したフィルタのことである。抽出フィルタの適用結果から全死角空間フィルタの適用結果を減算すると、どちらのフィルタでも除去できない音を相殺することができる。具体的には、例えば図9に示す例において、時間t1から時間t3までの観測信号を学習データとして用いて全死角空間フィルタを推定し、推定した全死角空間フィルタを時間t2から時間t6までの区間の観測信号に適用すると、目的音91と、妨害音1,92と妨害音2,93が除去されるが、学習データに含まれない妨害音3,94は除去されない。
一方、同じ時間t1から時間t3までの観測信号を学習データとして、この学習データから目的音を抽出するための抽出フィルタを推定し、同じく時間t2から時間t6までの区間に適用する。この抽出フィルタの適用によって、妨害音1,92と、妨害音2,93は除去され、目的音91と、妨害音3,94は残る。
すなわち、時間t1から時間t3までの観測信号を学習データとして、全死角空間フィルタと抽出フィルタとを生成し、これらの2つのフィルタを時間t2から時間t6までの区間の観測信号に個別に適用すると、以下の2つのデータが得られる。
(a)全死角空間フィルタ適用結果:残留音=妨害音3,94(目的音91、妨害音1,92、妨害音2,93は除去)
(b)抽出フィルタ適用結果:残留音=目的音91、妨害音3,94(妨害音1,92、妨害音2,93は除去)
(a)全死角空間フィルタ適用結果:残留音=妨害音3,94(目的音91、妨害音1,92、妨害音2,93は除去)
(b)抽出フィルタ適用結果:残留音=目的音91、妨害音3,94(妨害音1,92、妨害音2,93は除去)
従って、抽出フィルタの適用結果から全死角空間フィルタの適用結果を減算すると、両者のスケールが適切であれば、妨害音3,94は相殺され、結果として目的音91のみを残すことができる。
すなわち、
(抽出フィルタ適用結果)-(全死角空間フィルタ適用結果)
=(目的音91+妨害音3,94)-(妨害音3,94)
=目的音91
となる。
このように2つの異なるフィルタを生成して、各フィルタ適用結果を利用した演算を行なうことで、フィルタ生成時に存在していない妨害音の影響を排除した目的音抽出が可能となる。
すなわち、
(抽出フィルタ適用結果)-(全死角空間フィルタ適用結果)
=(目的音91+妨害音3,94)-(妨害音3,94)
=目的音91
となる。
このように2つの異なるフィルタを生成して、各フィルタ適用結果を利用した演算を行なうことで、フィルタ生成時に存在していない妨害音の影響を排除した目的音抽出が可能となる。
次に、「b)時間周波数マスキング」について説明する。
時間周波数マスキングにおいては、まず、観測信号と目的音の方向情報とを用いることで、妨害音があまり含まれない周波数領域については削減させることなく、ほぼそのまま透過し、一方、妨害音が多く含まれる周波数領域については削減するためのマスクを生成する。
時間周波数マスキングは、このように周波数帯に応じて透過信号を制御するマスクを細かな時間単位ごとに逐次生成し、生成したマスクを観測信号に適用して妨害音を削減した信号を生成する。
時間周波数マスキングにおいては、まず、観測信号と目的音の方向情報とを用いることで、妨害音があまり含まれない周波数領域については削減させることなく、ほぼそのまま透過し、一方、妨害音が多く含まれる周波数領域については削減するためのマスクを生成する。
時間周波数マスキングは、このように周波数帯に応じて透過信号を制御するマスクを細かな時間単位ごとに逐次生成し、生成したマスクを観測信号に適用して妨害音を削減した信号を生成する。
なお、この時間周波数マスキングを適用した処理については、本出願人の先の出願である特開2012-234150(特願2012-052548)において詳細に説明している。まず、観測信号に抽出フィルタを適用し、その結果に対してさらに時間周波数マスキングを行なうことで、目的音とは別の方向から到来した音の除去効果を一層、高めることができる。
このように、例えば、図9に示すように、抽出フィルタ生成処理後に発生する妨害音3,94については、抽出フィルタの推定95において生成した抽出フィルタを適用しても除去できないが、この時間周波数マスクによって低減することが可能となる。
このように、例えば、図9に示すように、抽出フィルタ生成処理後に発生する妨害音3,94については、抽出フィルタの推定95において生成した抽出フィルタを適用しても除去できないが、この時間周波数マスクによって低減することが可能となる。
[2-2.音声区間検出処理における新規点について]
次に、本開示の音声認識装置における音声区間検出における新規点について説明する。
本開示の音声認識装置は、音声認識対象となる目的音の音声区間の途中で音源抽出を行なうことを特徴とするが、それを実現するためには、音声区間検出と音源抽出とが一体的に動作する必要がある。これは同時に、複数の音声区間検出手段を用いていても、それらの手段は一体的に動作する必要があることを意味している。つまり、以下の2点が必要である。
a)音声区間検出と音源抽出との一体化
b)複数の音声区間検出手段の一体化
次に、本開示の音声認識装置における音声区間検出における新規点について説明する。
本開示の音声認識装置は、音声認識対象となる目的音の音声区間の途中で音源抽出を行なうことを特徴とするが、それを実現するためには、音声区間検出と音源抽出とが一体的に動作する必要がある。これは同時に、複数の音声区間検出手段を用いていても、それらの手段は一体的に動作する必要があることを意味している。つまり、以下の2点が必要である。
a)音声区間検出と音源抽出との一体化
b)複数の音声区間検出手段の一体化
上記a),b)それぞれの説明をする前に、音声区間を検出する方式を分類する。複数音源に対応した音声区間検出の方式はいくつか存在するが、それを以下の2種類の方式に分類する。
(方式1)音声区間終端の見極め時間が必要な方式
・音源方向推定を用いた方式(特開2012-150237号公報などに記載の方式)
・口唇画像を用いた方式(特開平10-51889号公報などに記載の方式)
(方式2)音声区間終端の見極め時間が不要の方式
・画像に基づく手形状の変化を用いた方式(特開2012-203439号公報などに記載の方式)
(方式1)音声区間終端の見極め時間が必要な方式
・音源方向推定を用いた方式(特開2012-150237号公報などに記載の方式)
・口唇画像を用いた方式(特開平10-51889号公報などに記載の方式)
(方式2)音声区間終端の見極め時間が不要の方式
・画像に基づく手形状の変化を用いた方式(特開2012-203439号公報などに記載の方式)
音源方向推定によって推定された音源方向や、口唇画像の変化などは、音声発話とは無関係のタイミングや方向においても発生したり、逆に、発話途中であっても一時的に途切れたりする可能性がある。従って、音声区間の始端や終端を確定するためには、先に図4を参照して説明した終端見極め処理42に相当する見極めのための時間を必要とする。すなわち、遅延が不可避となる。
一方、撮影画像に基づく手の形状の変化から音声区間(発話区間)を判別する方式、すなわち、発話者が手で発話の開始や終了を合図する設定の場合は、画像から発話区間の始端や終端を判別することが可能である。このような構成では、手形状の変化は見極め時間なしで判定可能である。例えば「発話開始においてユーザが手形状を[パー]から[グー]に変化させ、発話終了時に[グー]から[パー]に戻す」という使い方で発話区間を入力したとすると、その区間の始端と終端は遅延時間なしで判定することができる。
上述のように、本開示の音声認識装置は、音声区間検出と音源抽出とを一体的に動作させるものであり、このため、
a)音声区間検出と音源抽出との一体化
b)複数の音声区間検出手段の一体化
これらa),b)を実現させる構成としている。
以下、上記のa),b)それぞれについて説明する。
まず、「a)音声区間検出と音源抽出との一体化」について、図10を参照して説明する。この図10も、横軸が時間、縦軸が方向を示している。
a)音声区間検出と音源抽出との一体化
b)複数の音声区間検出手段の一体化
これらa),b)を実現させる構成としている。
以下、上記のa),b)それぞれについて説明する。
まず、「a)音声区間検出と音源抽出との一体化」について、図10を参照して説明する。この図10も、横軸が時間、縦軸が方向を示している。
図10は音声区間検出処理例を説明する図である。この図において説明する音声区間検出処理は、特開2012-150237号に記載された処理とほぼ同一である。すなわち、一定時間ごとに音源方向推定を行ない、音源方向推定の結果、得られた音源方向を表わす点をプロットしていく。この点を「方向点」と呼ぶ。図10に示す方向点101である。近接する方向点同士を時間方向に接続することで、発話区間102を得る。これらの近接する方向点を接続する処理を「トラッキング」と呼ぶ。また、終端が確定する前の区間を「作成中区間」と呼ぶ。
ただし、本開示の処理は、例えば特開2012-150237号公報に記載された処理と異なり、方向点を取得する手段は音源方向推定に限らず、画像を分析し、動いている口唇の位置や特定の形状の手の位置などから求めた方向点を用いてもよく、それら複数の手段を併用してもよい。いずれにしても、近接する方向点同士をトラッキングによって接続するという処理は同一である。
トラッキングによって検出された音声区間102の始端は、図に示す始端103、終端は終端104である。ただしこれらの点は、瞬時に求まるわけではなく、見極め時間と呼ぶ一定の遅延の後で確定する。なお、見極め時間については、先に図4を参照して説明した通りである。時間t3の始端103が確定するタイミングは、時間t4、時間t6の終端104が確定するタイミングは、時間t7とする。
音声区間検出と音声認識との組み合わせにおいては、検出された区間そのものの入力信号を音声認識処理部に入力するよりも、その区間の前後の入力信号も合わせて音声認識処理部に入力して音声認識処理実行する方が、認識精度が高くなることが知られている。この前後の追加分をハングオーバと呼ぶ。図10では、始端側のハングオーバは時間t2~t3の領域、終端側のハングオーバは時間t6~t7の領域であり、そのハングオーバを含んだ発話区間が、ハングオーバを含む発話区間105である。
つまり、本開示の音声認識装置では、ハングオーバを含む発話区間105の区間に対して音源抽出を行ない、さらにその結果に対して音声認識を行なう。
音声区間検出と音源抽出とを一体化する上で重要なタイミングは、図10に示す時間t5であり、トラッキングが、時間t5に到達した時点で、抽出フィルタの推定を行なう。
音声区間検出と音源抽出とを一体化する上で重要なタイミングは、図10に示す時間t5であり、トラッキングが、時間t5に到達した時点で、抽出フィルタの推定を行なう。
抽出フィルタは、前述のように、観測信号から目的音を抽出するフィルタである。この抽出フィルタの生成は従来から知られる方式が適用可能である。例えば、前述した本出願人の先行特許出願である特開2012-234150(特願2012-052548号)に記載した方式、すなわち学習のための観測信号と目的音の方向情報を使用してフィルタ算出を行なう方法を適用してもよい。なお、この手法を適用する場合、観測信号については、時間t1から時間t5までの区間の観測信号106を用い、方向情報については時間t3から時間t5までの観測信号107から得られる平均の方向を用いる。なお、時間t1は、先に説明した図9の時間t1と同じであり、抽出フィルタ生成点(t5)から一定時間ほど遡った時点である。
抽出フィルタを推定したら、発話区間の内、この時点(t5)で既に入力済みの観測信号108に対して生成した抽出フィルタを適用し、音源抽出結果を生成する。それ以降は、入力に合わせて逐次的にフィルタを適用していく。その逐次的な適用は、トラッキングが、発話区間の終端である時間t6を通り越し、終端ハングオーバの終端である時間t7に達するまで続ける。時間t7からt8までの時間は、発話区間の終端104を確定するために必要な見極め時間の一部である。この間で再び方向点が発生し、さらに作成中の発話区間102と接続可能であれば、前述の逐次的な適用を再開する。そのような方向点が存在しなければ、時間t7からt8の間は音源抽出結果の生成は行なわない。そして、見極め時間の完了する所定の時間t8にトラッキングが達した時点で、音声区間の終端104が確定する。これはすなわち、発話区間については、音声認識処理をすべき入力信号がこれ以上は存在しないことを意味するので、必要に応じてその情報を音声認識に通知する。
ここで、比較のため、先に説明した特開2012-150237に記載の音声区間検出処理と、特開2012-234150(特願2012-052548)に記載の音源抽出処理と、特許第4600705号(特開2001-242883号公報)に記載の音声認識処理とを組み合わせた処理を行なった場合についても簡単に説明する。
この組み合わせで処理を実行する場合、図10に示す時間t8の時点で発話区間の終端104が確定し、このタイミング(t8)で観測信号105の区間を切り出し、その区間に対して音源抽出と音声認識とを行なうことになる。
この組み合わせで処理を実行する場合、図10に示す時間t8の時点で発話区間の終端104が確定し、このタイミング(t8)で観測信号105の区間を切り出し、その区間に対して音源抽出と音声認識とを行なうことになる。
すなわち、音源抽出と音声認識は、発話区間の終端確定後、時間t8以降において実行することになる。このような処理を行う場合、音声区間検出のためのトラッキング処理に際して、時間t5の抽出フィルタの推定開始や、時間t7の終端ハングオーバなどを考慮する必要はない。従って、t5やt7のタイミングに相当する記述は特開2012-150237の音声区間検出処理では見られない。言い換えると、t5やt7のタイミングでの処理は、本開示の音声認識装置の実行する新規な処理の1つである。
次に、前述の「b)複数の音声区間検出方式の一体化」について説明する。複数の音声区間検出方式の一体化処理を行なう場合、以下の2つの要素について考慮することが必要である。
一つは、複数の音声区間検出方式各々による多重検出を防ぐために、各方式は方向点の検出までを行ない、方向点のトラッキングは共通の処理として行なうことである。
もう一つは、音声区間の終端見極めに関する遅延が複数方式の併用によって増大するのを避けるため、見極め時間が不要の音声区間検出方式については、区間の始端と終端の確定のために専用の手続きをそれぞれ用意することと、そのような手続きによって生成された区間についてはトラッキング時に優先的に処理することである。
一つは、複数の音声区間検出方式各々による多重検出を防ぐために、各方式は方向点の検出までを行ない、方向点のトラッキングは共通の処理として行なうことである。
もう一つは、音声区間の終端見極めに関する遅延が複数方式の併用によって増大するのを避けるため、見極め時間が不要の音声区間検出方式については、区間の始端と終端の確定のために専用の手続きをそれぞれ用意することと、そのような手続きによって生成された区間についてはトラッキング時に優先的に処理することである。
以下、「b)複数の音声区間検出方式の一体化」において考慮すべき上記2つの要素についてそれぞれ説明する。
図11は、複数の音声区間検出方式によって取得された方向点を共通にトラッキングする様子について説明する図である。横軸が時間、縦軸が方向である。
図11は、複数の音声区間検出方式によって取得された方向点を共通にトラッキングする様子について説明する図である。横軸が時間、縦軸が方向である。
この図11は、3種類の音声区間検出方式を使用した想定である。各方式において取得した方向点を異なる態様で示している。
方向点111等、斜線マルで示す方向点の各々は、例えばマイクロホンアレイの取得音声の解析に従った音源方向推定方式によって得られた方向点である。
方向点112等の白マルで示す方向点の各々は、カメラ撮影画像から取得される手形状の検出に基づいて得られる方向点である。
方向点113等の黒マルで示す方向点の各々は、カメラ撮影画像から取得される口唇画像の解析によって得られる方向点である。
方向点111等、斜線マルで示す方向点の各々は、例えばマイクロホンアレイの取得音声の解析に従った音源方向推定方式によって得られた方向点である。
方向点112等の白マルで示す方向点の各々は、カメラ撮影画像から取得される手形状の検出に基づいて得られる方向点である。
方向点113等の黒マルで示す方向点の各々は、カメラ撮影画像から取得される口唇画像の解析によって得られる方向点である。
これらの3つの異なる音声区間検出方式によって得られた方向点を、各方式単位で個別にトラッキングすると、この例では1回の発話が最大で三重に検出されてしまう可能性がある。しかし、この図のように1つの共通トラッキング処理を行なうことで、単一の音声区間114のみを検出することができる。
このように、複数の異なる音声区間検出方式を併用した場合、共通トラッキングを実行することで、以下のような利点がある。
このように、複数の異なる音声区間検出方式を併用した場合、共通トラッキングを実行することで、以下のような利点がある。
(利点1)終端確定後に近接区間同士をマージする必要がなくなるため、マージ見極め時間(例えば図6に示すマージ見極め時間67)に由来する遅延を防止できる。
(利点2)終端確定後に近接区間同士をマージする方法では、区間同士の長さの違いが大きいと適切にはマージされなかったが、共通のトラッキングではそれが解消する。例えば図11において、黒マルで示す口唇画像の解析によって得られる方向点113は他の手段によって得られる方向点よりも早めに途切れているため、この黒い方向点のみのトラッキングで得られる音声区間は、他の手段で得られる音声区間よりも短い(早く終了する)可能性が高く、区間同士のマージに失敗する可能性がある。
(利点2)終端確定後に近接区間同士をマージする方法では、区間同士の長さの違いが大きいと適切にはマージされなかったが、共通のトラッキングではそれが解消する。例えば図11において、黒マルで示す口唇画像の解析によって得られる方向点113は他の手段によって得られる方向点よりも早めに途切れているため、この黒い方向点のみのトラッキングで得られる音声区間は、他の手段で得られる音声区間よりも短い(早く終了する)可能性が高く、区間同士のマージに失敗する可能性がある。
(利点3)トラッキング自体は単一であるため、音源抽出との一体化が容易にできる。逆にいうと、音声検出手段ごとにトラッキングを行ない、そのトラッキングごとに音源抽出と一体化するのは、実装が大変である。
なお、前述したように、カメラ撮影画像の解析によって得られる手形状の変化による音声区間検出は見極め時間なしで始端と終端とを確定できるため、本来この手段についてはトラッキングは不要である。しかし、本開示では多重検出を防ぐために、手形状の変化による方式からもあえて方向点を取得し、それもトラッキングの対象に加えている。
しかし、単に共通トラッキングを導入するだけでは、多重検出は解消できるが、終端見極め時間は解消できない。例えば、手形状の変化による方式は低遅延で発話終端を検出できるが、音源方向推定による方式や口唇画像による方式では終端見極め時間が必要であるため、共通トラッキングを用いて終端を確定するためには、3つの方式の中で最長のものに合わせる必要がある。
そこで、そのような遅延を解消するため、例えば画像に基づく手形状識別に基づく音声区間検出方式のような、音声区間の始端または終端の見極め時間が不要な方式(特定方式)については、以下に示す[特別処理]を行なう。
(1)音声区間の始端が検出された時点において、この特定方式専用の始端登録処理を行なう。他の作成中区間と区別するため、この処理によって生成された作成中区間は、「登録済み」という属性を付与する。
(2)トラッキング中は、この特定方式に由来する方向点が存在しなくても、方向点を自動で生成して作成中区間を延長する。
(3)トラッキング中に作成中区間同士のマージが発生したときは、「登録済み」という属性を持つ作成中区間の方に他方の作成中区間を吸収させる。
(4)音声区間の終端が検出された時点において、この特定方式専用の終端登録処理を行なう。
(1)音声区間の始端が検出された時点において、この特定方式専用の始端登録処理を行なう。他の作成中区間と区別するため、この処理によって生成された作成中区間は、「登録済み」という属性を付与する。
(2)トラッキング中は、この特定方式に由来する方向点が存在しなくても、方向点を自動で生成して作成中区間を延長する。
(3)トラッキング中に作成中区間同士のマージが発生したときは、「登録済み」という属性を持つ作成中区間の方に他方の作成中区間を吸収させる。
(4)音声区間の終端が検出された時点において、この特定方式専用の終端登録処理を行なう。
これらの[特別処理]について、図12を参照して説明する。図12も横軸が時間、縦軸が方向である。
図12に示す方向点121等の斜線マルの方向点は、音声区間の始端または終端の見極め時間が必要な音声区間検出方式に基づいて得られた方向点である。
また、方向点123等の白マルの方向点は、音声区間の始端または終端の見極め時間が不要な音声区間検出方式、例えば手形状検出に基づく方式に従って得られた方向点である。
図12に示す方向点121等の斜線マルの方向点は、音声区間の始端または終端の見極め時間が必要な音声区間検出方式に基づいて得られた方向点である。
また、方向点123等の白マルの方向点は、音声区間の始端または終端の見極め時間が不要な音声区間検出方式、例えば手形状検出に基づく方式に従って得られた方向点である。
音声区間122は、音声区間の始端または終端の見極め時間が必要な音声区間検出方式に基づいて得られた方向点をトラッキングすることによって得られた作成中区間である。
音声区間124は、特定方式、すなわち音声区間の始端または終端の見極め時間が不要な音声区間検出方式に基づいて得られた方向点をトラッキングすることによって得られた作成中区間である。
音声区間124は、特定方式、すなわち音声区間の始端または終端の見極め時間が不要な音声区間検出方式に基づいて得られた方向点をトラッキングすることによって得られた作成中区間である。
ここで、トラッキングが、時間t2まで進んでいるとし、その時点で、見極め時間が不要の方式に由来する方向点123が検出されたとする。この方向点は発話区間の始まりであることも同時に分かるため、上記の[特別処理(1)]に従って区間の始端を登録する。この登録によって生成された作成中区間が 音声区間124であり、これは「登録済み」という属性を持つ。
次は、[特別処理(2)]について説明する。例えばトラッキングが、図12に示す時間t3まで進んでいるとする。作成中区間である音声区間124は「登録済み」の属性を持っているため、その作成中区間と同じ方向の方向点126を自動的に生成し、それを作成中区間に接続させる。こうすることで、見極め時間を必要としない方式に由来する区間は、作成途中で途切れることなく延長されていく。
次は、[特別処理(3)]について説明する。その前に、特開2012-150237号公報において開示している音声区間のマージ処理について説明する。
特開2012-150237号公報に記載の方式では、トラッキングにおいて複数の作成中区間が近接していたら、それらをマージして一つの区間にまとめるという処理を説明している。
特開2012-150237号公報に記載の方式では、トラッキングにおいて複数の作成中区間が近接していたら、それらをマージして一つの区間にまとめるという処理を説明している。
複数の作成中区間をマージするか否かの判定は、一つの方向点が複数の作成中区間と接続可能かである。例えば図12において、トラッキングが時間t4まで進んでおり、方向点125が二つの作成中区間122,124のどちらとも十分に近接している(方向の差が閾値より小さい)場合は、2つの作成中区間を1つにマージする。特開2012-150237号公報に記載の方式では、最も早くから開始された区間にそれ以外の区間をマージするようにしているため、マージ後の区間の始端は作成中の音声区間122と同様に時間t1となる。
また、作成中区間124は、このマージ処理の後は消滅したように見える。ただし、マージ後の方向は、両方の作成中区間の方向点の平均とする。
また、作成中区間124は、このマージ処理の後は消滅したように見える。ただし、マージ後の方向は、両方の作成中区間の方向点の平均とする。
この手法に対し、本開示の処理では、一つの方向点に複数の作成中区間が接続可能で、さらにその中に「登録済み」属性を持った作成中区間が存在している場合は、その「登録済み」属性を持った区間に対して他の区間をマージする。このようにする根拠は、以下の2点である。
・「登録済み」属性を持つ区間の始端と終端は、見極め時間なしで決定できるため、そうでない区間よりも正確である可能性が高い。
・「登録済み」属性を持つ区間が、作成途中で消失しないようにするため。
・「登録済み」属性を持つ区間の始端と終端は、見極め時間なしで決定できるため、そうでない区間よりも正確である可能性が高い。
・「登録済み」属性を持つ区間が、作成途中で消失しないようにするため。
例えば図12において、音声区間の作成中である作成中区間122の先頭の方向点121は、音源方向推定や口唇画像によって取得されたものであるため、発話とは無関係に(しかし、たまたま発話方向の近くに)発生したものである可能性もある。それに対し、作成中区間124の先頭の方向点である方向点123は、ユーザの手形状の変化に由来するものであり、ユーザが発話に合わせて手を動かしたのであれば、方向点121よりも始端として正確である可能性が高い。そのため、両者がマージされる際には、方向点121よりも方向点123の方が始端として適切であると期待される。
また、「登録済み」属性を持つ作成中区間については、終端の登録についての専用の処理を行なうことで見極め時間なしで終端を確定するが、その前提として、始端を登録した作成中区間が終端登録時まで残っている必要がある。その点からも、マージの処理は、「登録済み」属性のついた作成中区間124を残し、そうでない方の作成中区間122は消滅したという扱いにするのが望ましい。ただし、マージ後の作成中区間の方向は、両者の方向点の平均とする。
なお、近接した作成中区間の中に、「登録済み」属性を持つものが複数ある場合は、以下のように処理する。
・「登録済み」属性を持つ作成中区間同士はマージしない。
・「登録済み」属性を持つ作成中区間それぞれに対して、それ以外の作成中区間をマージさせる。
・「登録済み」属性を持つ作成中区間同士はマージしない。
・「登録済み」属性を持つ作成中区間それぞれに対して、それ以外の作成中区間をマージさせる。
例えば、トラッキングのあるタイミングにおいて、A,B,C,Dの4つの作成中区間が近接していた(4つの作成中区間はどれも一つの方向点に接続可能だった)とする。それらのうち、AとBは「登録済み」属性を持っているとする。その場合、A,C,DとB,C,Dという2つのマージが発生し、その結果としてAとBの2つの作成中区間が残る。
このように、見極め時間不要の音声区間検出方式については、上記の[特別処理(1)]によって作成中区間の生成を行ない、途中のトラッキングでは、上記の[特別処理(2)]と、[特別処理(3)]の処理を専用に行なうことで、発話終了時までその区間が残っている(途切れたりマージされたりしない)ことが保障される。そのため、終端が検出された時点で、その区間に対する専用の終端確定処理(前述の[特別処理(4)])を行なうことができ、終端見極め時間が不要となる。
このように、上記の(1)~(4)の特別処理を行なうと、共通トラッキングを行なっているために多重検出を防ぐことができる上に、見極め時間不要の音声区間検出方式に由来する区間については、終端見極め時間に基づく遅延を回避することもできる。
[2-3.音声認識処理における新規点について]
次に、本開示の音声認識装置における音声認識処理の新規点について説明する。
なお、以下において説明する新規点は、正しくは音声認識そのものではなく、音源抽出と音声認識との間のインターフェースについてである。
次に、本開示の音声認識装置における音声認識処理の新規点について説明する。
なお、以下において説明する新規点は、正しくは音声認識そのものではなく、音源抽出と音声認識との間のインターフェースについてである。
音声区間検出と音源抽出とを一体的に処理することで、区間同士が時間的に重複していても、それぞれの抽出結果を逐次的に生成することが可能となる。しかし、デコーダの個数が限られている場合は、どの区間の抽出結果を優先的にデコードすれば遅延が小さくなるかという課題が残る。
そこで本開示の音声認識装置では、音源抽出部と音声認識部との間に、例えば図13に示す構成を有するバッファを用意する。このバッファを介して、音源抽出部から音声認識部に対する出力データを選択供給することで、この課題に対処する。
以下では、このバッファについて説明する。なお、図13を参照して説明する処理は、図8や図14に示すように3つの音源から音が同時に発声しているタイミング、例えば図14に示す時間t3のタイミングにおける処理である。
図14に示す時間t3の時点では、3つの作成中区間が存在する。なお、詳細については後述するが、本開示では作成中区間と同数の音源抽出部を用意する。すなわち、図13に示すように、3個の音源抽出部131a~cが存在する。各音源抽出部131a~cは、逐次的に音源抽出結果を生成しており(132a~c)、各抽出結果は抽出結果バッファリング部135に入力される。
図14に示す時間t3の時点では、3つの作成中区間が存在する。なお、詳細については後述するが、本開示では作成中区間と同数の音源抽出部を用意する。すなわち、図13に示すように、3個の音源抽出部131a~cが存在する。各音源抽出部131a~cは、逐次的に音源抽出結果を生成しており(132a~c)、各抽出結果は抽出結果バッファリング部135に入力される。
抽出結果バッファリング部135は、作成中区間それぞれに対応したバッファ135a~cを有する。各バッファ135a~cは、First-In-First-Out(FIFO)構造を有しており、新たな入力データである最新の抽出結果は各バッファの末尾(図では左端)に追加される。取り出すときは、先頭(図では右端)から取り出される。また、各バッファ135a~cは、それぞれ区間情報134a~cを保持しており、各バッファ135a~cに蓄積されている抽出結果がどの作成中区間に由来しているものなのかが分かるようになっている。
音声認識部137ではデコーダ139a,bによる音声認識処理が行われる。各デコーダが各々1つの音源からの音声区間に対する音声認識を行なう。デコーダの数が多ければ多くの音声区間の並列処理が可能であるが、前述したようにデコーダを複数用意すると、その分、メモリやCPUなどのリソースを消費するため、個数には上限がある。つまり、N個の区間が時間的に重複するからといって、N個のデコーダも常に用意できると想定するのは現実的ではない。
図13に示す音声認識部137は2つのデコーダ139a,bを持つ。すなわち同時に処理可能な音声区間は2つの区間のみである。一方、処理対象となる音声区間は3つである。
図13に示す音声認識部137は2つのデコーダ139a,bは、抽出結果バッファリング部135に格納された3つの音声区間から、2つの音声区間のみを選択して音声認識処理を行なうことになる。
図に示すスイッチ136とスイッチ138の接続状態によってこの選択が実行される。なお、これらのスイッチの制御は図には示していないが、制御部の制御によって実行される。
図13に示す音声認識部137は2つのデコーダ139a,bは、抽出結果バッファリング部135に格納された3つの音声区間から、2つの音声区間のみを選択して音声認識処理を行なうことになる。
図に示すスイッチ136とスイッチ138の接続状態によってこの選択が実行される。なお、これらのスイッチの制御は図には示していないが、制御部の制御によって実行される。
この2つのスイッチ136,137をどのように切り替えればよいかという問題が重要となる。
本開示の音声認識装置は、この問題に対処するため、抽出結果バッファリング部135内に抽出結果が存在する区間について、以下の基準で順位づけを行なう。
(基準1)「登録済み」属性を持つ区間を優先。「登録済み」属性を持つ区間が複数あるときは、始端が古い方を優先。
(基準2)「登録済み」属性を持たない区間については、終端が既に確定しているものを優先。「登録済み」属性を持たない区間が複数あるときは、終端が古い方を優先。
(基準3)終端が未確定の区間については、始端が古い方を優先。
本開示の音声認識装置の制御部は、これらの3つの基準に従ってスイッチ136,138を制御して、優先度の高い音声区間データを音声認識部137に出力する。
本開示の音声認識装置は、この問題に対処するため、抽出結果バッファリング部135内に抽出結果が存在する区間について、以下の基準で順位づけを行なう。
(基準1)「登録済み」属性を持つ区間を優先。「登録済み」属性を持つ区間が複数あるときは、始端が古い方を優先。
(基準2)「登録済み」属性を持たない区間については、終端が既に確定しているものを優先。「登録済み」属性を持たない区間が複数あるときは、終端が古い方を優先。
(基準3)終端が未確定の区間については、始端が古い方を優先。
本開示の音声認識装置の制御部は、これらの3つの基準に従ってスイッチ136,138を制御して、優先度の高い音声区間データを音声認識部137に出力する。
上記の(基準1)~(基準3)について説明する。
(基準1)において「登録済み」属性を持つ区間を優先し、「登録済み」属性を持つ区間が複数あるときは、始端が古い方を優先する理由は以下の通りである。
これは、音声区間検出の方式の違いを反映させるためである。「登録済み」属性を持つ区間は、前述したように、例えば画像に基づく手形状識別に基づく音声区間検出方式のように、音声区間の始端または終端の見極め時間が不要な方式である。
すなわち、この「登録済み」属性を持つ区間は、ユーザの立場として確実に音声を入力したい可能性が高いと推定できる。そのため、このような方式に由来する区間については最優先でデコードして遅延を小さくすることで、ユーザの期待に応える設定とする。なお、始端が古い方を優先するのは、発話開始時間の早いものを先に処理するという設定としたものである。
(基準1)において「登録済み」属性を持つ区間を優先し、「登録済み」属性を持つ区間が複数あるときは、始端が古い方を優先する理由は以下の通りである。
これは、音声区間検出の方式の違いを反映させるためである。「登録済み」属性を持つ区間は、前述したように、例えば画像に基づく手形状識別に基づく音声区間検出方式のように、音声区間の始端または終端の見極め時間が不要な方式である。
すなわち、この「登録済み」属性を持つ区間は、ユーザの立場として確実に音声を入力したい可能性が高いと推定できる。そのため、このような方式に由来する区間については最優先でデコードして遅延を小さくすることで、ユーザの期待に応える設定とする。なお、始端が古い方を優先するのは、発話開始時間の早いものを先に処理するという設定としたものである。
(基準2)は、「登録済み」属性を持たない区間については、終端が既に確定しているものを優先。終端が既に確定している区間が複数あるときは、終端が古い方を優先する基準である。
この基準は、音声区間の始端または終端の見極め時間が必用な方式に対応した基準であり、これらの方式が競合した場合は、発話終了から認識結果生成までの時間を最短にするため、終端が確定した順で処理を優先する。
この基準は、音声区間の始端または終端の見極め時間が必用な方式に対応した基準であり、これらの方式が競合した場合は、発話終了から認識結果生成までの時間を最短にするため、終端が確定した順で処理を優先する。
(基準3)は、終端が未確定の区間については、始端が古い方を優先する基準である。
この基準は、発話の終了点である終端が未確定の発話区間が複数競合している場合の基準であり、このような競合が発生する場合は、先に発話開始があったものを優先するとする基準である。
音声区間と同数のデコーダを常に用意できるのであれば、この基準のみを適用すれば、音声区間の開始位置の早い順に各デコーダを適用した処理が可能となり、デコーダの遅延を最小にでき、この基準3のみを利用すればよい。
しかし、現実的には、デコーダの数は処理が要求される音声区間数以下である場合が想定される。従って、本開示の音声に認識装置では、この(基準3)の他に、上記の(基準1)や、(基準2)を併用し、ユーザ要求度等を考慮した優先処理を実現している。
この基準は、発話の終了点である終端が未確定の発話区間が複数競合している場合の基準であり、このような競合が発生する場合は、先に発話開始があったものを優先するとする基準である。
音声区間と同数のデコーダを常に用意できるのであれば、この基準のみを適用すれば、音声区間の開始位置の早い順に各デコーダを適用した処理が可能となり、デコーダの遅延を最小にでき、この基準3のみを利用すればよい。
しかし、現実的には、デコーダの数は処理が要求される音声区間数以下である場合が想定される。従って、本開示の音声に認識装置では、この(基準3)の他に、上記の(基準1)や、(基準2)を併用し、ユーザ要求度等を考慮した優先処理を実現している。
なお、上記の(基準1)において、同じ時刻を始端とする区間が複数存在する場合は、(基準2)と同様の基準を用いてさらに順位づけを行なう。また、(基準1)~(基準3)、それぞれにおいて、同順位の区間が複数存在する場合は、便宜的に、方向の値が小さい方を優先する。
図13に示す音声認識部137は、この順位に従って区間ごとの抽出結果とデコーダ139a,bとの対応付けを行なう。例えば、デコーダが1個のみの場合は、上記順位づけでトップになった区間の抽出結果を取得してデコードする。デコーダがN個の場合は、上記順位づけのなされた上位N個の区間について、抽出結果をデコーダに対応させる。
なお、抽出結果バッファリング部135内の順位づけの対象となる「区間」は、例えば図10~図12におけるトラッキングの対象となる作成中区間とは別物である点に注意されたい。トラッキングは区間の始端と終端とを見つける処理なので、終端が確定した時点でその区間はトラッキングの対象からは外れる。一方、抽出結果バッファリング部135に含まれるバッファ135a~cは、各区間の抽出結果を区間ごとに蓄積する。いったん、バッファ135a~cに蓄積された抽出結果は、区間の終端が確定した後であっても、抽出結果バッファリング部135から取り出さない限りは残り続けるため、その区間は順位づけの対象となる。
[3.本開示の音声認識装置の具体的構成と処理について]
以下、本開示の音声認識装置の具体的構成と処理について説明する。
以下、本開示の音声認識装置の具体的構成と処理について説明する。
[3-1.本開示の音声認識装置の全体構成例について]
本開示の一実施例に係る音声認識装置の全体構成を図15に示す。図15に示す音声認識装置150は、情報入力部として、異なる位置に配置した複数のマイクロホンからなるマイクロホンアレイによって構成される音入力部151と、画像撮影を行なうビデオカメラからなる画像入力部154を有する。
本開示の一実施例に係る音声認識装置の全体構成を図15に示す。図15に示す音声認識装置150は、情報入力部として、異なる位置に配置した複数のマイクロホンからなるマイクロホンアレイによって構成される音入力部151と、画像撮影を行なうビデオカメラからなる画像入力部154を有する。
音入力部151の各マイクロホンで取得された信号は、アナログ・デジタル(A/D)変換部152においてデジタル信号に変換される。AD変換部152の出力は、多チャンネルの音データ(波形)であり、これを(時間領域の)観測信号と呼ぶ。
一方、ビデオカメラからなる画像入力部154の取得画像は画像処理部155に入力される。画像処理部155は、撮影画像に含まれる口唇領域の検出、手領域の検出等を実行し、口唇画像や手形状など、音声発話区間の検出に使用可能な情報を取得する。なお、画像処理部155の詳細については後述する。
本実施例の音声認識装置150は、マイクロホンアレイからなる音入力部151で取得された音データの解析に基づいて取得される音源方向情報と、画像入力部154の取得画像の解析によって得られる口唇や手の方向に基づいて取得する音源方向情報、これら複数の音源方向情報を併用してトラッキングを行なう。
そのため、マイクロホンアレイからなる音入力部151と、ビデオカメラからなる画像入力部154との位置関係は固定する必要がある。そのため、マイクロホンアレイとビデオカメラとは一体化された形状のモジュールを使用するのが望ましい。
そのため、マイクロホンアレイからなる音入力部151と、ビデオカメラからなる画像入力部154との位置関係は固定する必要がある。そのため、マイクロホンアレイとビデオカメラとは一体化された形状のモジュールを使用するのが望ましい。
また、音と画像との間で、同じ時刻に発生したもの同士を対応させる必要がある。
そこでタイムスタンプ生成部158を備える。タイムスタンプ生成部158は、クロック信号に従った時間情報であるタイムスタンプを生成し、AD変換部152と、画像入力部154に供給する。AD変換部152は、音入力部151から入力する各マイクロホンの音信号に対する属性情報としてタイムスタンプを付与する。画像入力部164も、撮影画像の各フレームに対する属性情報としてタイムスタンプを付与する。
このようにして、音データと、画像データにはそれぞれタイムスタンプが付与され、後述のフロントエンド部153の処理において、同時刻の音と画像とを対応付けた処理が可能となる。
そこでタイムスタンプ生成部158を備える。タイムスタンプ生成部158は、クロック信号に従った時間情報であるタイムスタンプを生成し、AD変換部152と、画像入力部154に供給する。AD変換部152は、音入力部151から入力する各マイクロホンの音信号に対する属性情報としてタイムスタンプを付与する。画像入力部164も、撮影画像の各フレームに対する属性情報としてタイムスタンプを付与する。
このようにして、音データと、画像データにはそれぞれタイムスタンプが付与され、後述のフロントエンド部153の処理において、同時刻の音と画像とを対応付けた処理が可能となる。
フロントエンド部153は、音声区間検出と音源抽出とを一体化した処理として実行し、これら両処理を逐次的に行なうモジュールである。なお、先に図13を参照して説明したバッファや、音源抽出結果を音声認識用の特徴量へ変換するモジュールなども、このフロントエンド部に含まれる。詳細は後述する。
フロントエンド部153において、各音源は区間ごとに分割される。なお、複数の音源からの音が時間的に重複していても、各区間は一つの音源の抽出された区間、すなわち抽出音源単位の音声区間として生成される。なお、各音源の音源抽出結果は逐次的に生成されて出力される。
音声認識部156は、フロントエンド部153から出力される区間ごとの音源抽出結果に対応した単語系列などを求める。なお、音声認識部156は、先に図13を参照して説明したように、必要に応じて複数のデコーダを備えることで、認識結果が生成されるまでの遅延を短縮することができる。詳細については、後述する。
なお、フロントエンド部153の出力の段階では、抽出される音源には目的音も妨害音も含まれる。ただし、音声認識部156は、音声認識処理としてのデコードを行なう際にに、各音源に対応する信号の解析を実行し、予め規定したルールに従ったスコアや信頼度などを計算する。これらの値が既定の閾値よりも低かったら、音声認識対象とすべき音声ではない妨害音である等の判断を行い、音声認識対象データとせずに棄却するといった処理を行なう。このような処理を行なうことで、妨害音に由来する認識結果が誤作動を引き起こすのを防ぐ。
音声認識部156で得られた認識結果は、後段処理部157へ送られる。例えば、音声で操作するテレビであれば、音声認識の結果に応じてチャンネルを変えたり、ユーザが所望する番組を検索したりといった処理が行なわれる。
なお、音声認識装置150の各処理部の処理は、制御部159によって制御される。
制御部159は、例えば図示しないメモリに格納されたデータ処理プログラムに従って音声認識装置150の各処理部の処理を制御する。
なお、音声認識装置150の各処理部の処理は、制御部159によって制御される。
制御部159は、例えば図示しないメモリに格納されたデータ処理プログラムに従って音声認識装置150の各処理部の処理を制御する。
[3-2.本開示の音声認識装置におけるフロントエンド部の構成と処理について]
次に、フロントエンド部153の構成と処理の詳細について、図16を参照して説明する。フロントエンド部153に対する入力は、音入力部151の複数のマイクロホンの取得音であり、AD変換部152でデジタル信号化された多チャンネルの音データである。チャンネル数はマイクロホン数に対応する。この多チャンネル音データは、短時間フーリエ変換(Short Time Fourier Transform:STFT)部161と音声・非音声判別部162に入力される。
次に、フロントエンド部153の構成と処理の詳細について、図16を参照して説明する。フロントエンド部153に対する入力は、音入力部151の複数のマイクロホンの取得音であり、AD変換部152でデジタル信号化された多チャンネルの音データである。チャンネル数はマイクロホン数に対応する。この多チャンネル音データは、短時間フーリエ変換(Short Time Fourier Transform:STFT)部161と音声・非音声判別部162に入力される。
STFT部161は、時間領域の観測信号に対して短時間フーリエ変換を適用し、時間周波数領域の観測信号(スペクトル)を得る。短時間フーリエ変換については後述するが、そこでは一定長の信号が入力されるたびに処理が行なわれる。その処理の単位をフレームと呼ぶ。処理結果は、観測信号バッファリング部164と音源方向推定部163に入力される。
音声・非音声判別部162は、入力された音データが音声らしいか否かを二値で判別する。なお、この判別処理は、例えば特許4182444号公報に開示されている信号の周期性に着目した方式などが使用可能である。この判別もフレーム単位で行なわれ、その結果は観測信号バッファリング部164に出力され、格納される。
観測信号バッファリング部164は、STFT部161において生成された時間周波数領域の観測信号と、音声・非音声判別部162の生成した音声・非音声の判別結果と、そのフレームの番号(インデックス)とタイムスタンプとをセットにして、一定時間(所定のフレーム数)だけ蓄積する。詳細は後述する。また、このモジュールは、前述のタイムスタンプとフレーム番号との相互変換のためにも用いられる。
観測信号バッファリング部164に蓄積された観測信号は、トラッキング部165へ供給される。
音源方向推定部163は、STFT部161で得られた多チャンネルかつ時間周波数領域の観測信号を用いて、その時点で存在する音源の方向を推定する。
この処理は、例えば、音源方向推定に基づく音声区間検出方式である特開2012-150237号公報などに記載の処理に従って実行される。
音源方向推定部163は、STFT部161で得られた多チャンネルかつ時間周波数領域の観測信号を用いて、その時点で存在する音源の方向を推定する。
この処理は、例えば、音源方向推定に基づく音声区間検出方式である特開2012-150237号公報などに記載の処理に従って実行される。
音源方向推定部163は、音源方向推定処理を一定数のフレームが入力される毎に実行する。音源方向の推定単位である複数フレームの集合をブロックと呼ぶ。生成する情報は、ブロック内に存在する音源の方向を表わした点であり、それを方向点と呼ぶ。方向点とは、先に説明した図10~図12に示す方向点である。こうして得られた方向点は、トラッキング部165に送られる。
トラッキング部165は、本開示において最も重要なモジュールの1つであり、詳細処理については後述するが、主に以下の処理を行なう。
(1)各種方式によって得られた方向点をトラッキングすることで、音源が鳴っている区間を検出する。
(2)トラッキングの進行に合わせて、その方向からの音源を抽出した結果を逐次的に生成する。
(3)音源抽出結果の生成に合わせて、音源抽出結果を音声認識用の特徴量(features)へ逐次的に変換する。
(1)各種方式によって得られた方向点をトラッキングすることで、音源が鳴っている区間を検出する。
(2)トラッキングの進行に合わせて、その方向からの音源を抽出した結果を逐次的に生成する。
(3)音源抽出結果の生成に合わせて、音源抽出結果を音声認識用の特徴量(features)へ逐次的に変換する。
トラッキング部165は、このように音声区間検出と音源抽出に加え、音声認識用の特徴量(features)の生成も行う、この特徴量への変換をトラッキング部165において行なう理由は、変換時にケプストラム正規化(後述)を行なう場合には区間ごとにケプストラムの平均や標準偏差を保持する必要があるためである。また、特徴量への変換は音声認識のデコードとは独立に処理可能であるため、トラッキング時に特徴量への変換までを行なっておくことで、デコードにおいて発生する遅延を小さくするという目的もある。
トラッキング部165の出力は、音源抽出の結果から変換された(音声認識用の)特徴量であるが、以降ではこの特徴量も抽出結果と呼ぶ。抽出結果は、抽出結果バッファリング部166へ送られる。
なお、トラッキング部165に対しては、図に示すように、画像処理部155からの情報も入力される。
これらは、具体的には、口唇画像から得られた方向点、手形状の変化から得られた区間の始端と終端についての情報等である。
これらは、具体的には、口唇画像から得られた方向点、手形状の変化から得られた区間の始端と終端についての情報等である。
前述したように、手形状の変化は、ユーザが発を開始点や終了点を明示するためのデータとして、画像入力部154の取得した画像解析によって得られる情報である。画像処理部155は、この画像解析情報に基づいて、さらに、手形状の変化から得られた区間の始端と終端についての情報を生成してトラッキング部165に入力する。
また、トラッキング部165へは、音声認識部156から、特定の区間に対する削除依頼が入力される。また、トラッキング部165から音声認識部156に対して、トラッキング中に消滅したり棄却されたりした区間の通知としての区間更新情報が出力される。なお、これらの詳細については、後述する。
抽出結果バッファリング部166は、先に図13を参照して説明した抽出結果バッファリング部135とほぼ同一である。ただし、トラッキング部165において音源抽出結果から特徴量への変換も行なっているため、作成中の各区間に対応したバッファ135a~135cに蓄積されるデータは、特徴量である。また、各バッファが保持している区間情報134a~134cは、トラッキング部165が保持している図18に示す区間情報172と同様の構造を持つ。なお、区間情報の詳細については後述する。
なお、抽出結果バッファリング部166は、音声認識部156から、どの区間の特徴量が欲しいかを示す「要求区間情報」を入力し、要求区間に対応した「特徴量」を音声認識部156に出力する。なお、この処理は、例えば制御部159の制御による処理であり、図13に示すスイッチ136,138の制御によって行われる処理に相当する。
ランキング部167は、抽出結果バッファリング部166に特徴量が保存されている区間について、所定の基準に基づいて順位づけを行なう。その基準は、前述した(基準1)~(基準3)、すなわち、以下の基準である。
(基準1)「登録済み」属性を持つ区間を優先。「登録済み」属性を持つ区間が複数あるときは、始端が古い方を優先。
(基準2)「登録済み」属性を持たない区間については、終端が既に確定しているものを優先。「登録済み」属性を持たない区間が複数あるときは、終端が古い方を優先。
(基準3)終端が未確定の区間については、始端が古い方を優先。
(基準1)「登録済み」属性を持つ区間を優先。「登録済み」属性を持つ区間が複数あるときは、始端が古い方を優先。
(基準2)「登録済み」属性を持たない区間については、終端が既に確定しているものを優先。「登録済み」属性を持たない区間が複数あるときは、終端が古い方を優先。
(基準3)終端が未確定の区間については、始端が古い方を優先。
ランキング部167が上記基準に基づいて生成した優先度情報が音声認識部156に出力され、音声認識部156は、この優先度情報に従って、優先度の高い区間に対応する要求区間情報を抽出結果バッファイリング部166に出力する。
次に、観測信号バッファリング部164の構成について、図17を用いて説明する。観測信号バッファリング部164は、STFT部161からスペクトル、音声・非音声判別部162から音声・非音声判定フラグを入力する。
前述したように、STFT部161は、時間領域の観測信号に対して短時間フーリエ変換を適用し、時間周波数領域の観測信号(スペクトル)を生成する。処理単位をフレームと呼び、このフレーム単位のデータが、観測信号バッファリング部164に順次格納される。このバッファはfirst-in-first-out(FIFO)であり、また大きさに上限があるため、一番新しいデータが追加されたときに1フレーム分データが所定の個数を超えた場合は、最も古いデータが破棄される。
1フレーム分データの詳細は、図に示すように、以下のデータを含むデータとして構成される。
*スペクトル、
*音声・非音声フラグ、
*フレーム番号、
*タイムスタンプ、
*スペクトル、
*音声・非音声フラグ、
*フレーム番号、
*タイムスタンプ、
スペクトルは、1チャンネル分のSTFTの結果であり、1フレーム分データには音入力部151のマイクロホン数と同じ個数のスペクトルが含まれる。音声・非音声フラグは、音声・非音声判別部162の判定結果であり、音声と推定されたか、非音声と推定されたかの推定結果情報である。さらに、フレーム番号とタイムスタンプは、STFT部161の出力に付与されているデータである。これらの値をフレームごとにセットで保管しておくことで、発話区間内の「音声らしい」フレームの割合を計算して音声らしくない区間の棄却に利用したり、口唇画像の処理結果に付与されているタイムスタンプをフレーム番号に変換して共通トラッキングに使用したりといったことが可能になる。
次に、トラッキング部165について、図18を用いて説明する。
トラッキング部165の作成中区間管理部171は、各々が作成中(トラッキング中)の区間の一つについて各種情報を管理するモジュールである。トラッキング部165の作成中区間管理部171は、作成中の区間数と同じ個数だけ生成され(171a~171n)、区間が確定したら消滅する。また、作成中の区間は、その長さが伸びるにつれて、例えば先に図10を参照して説明したようにいくつかのステップを経る必要がある。そしてどのステップまで達したかを管理するため、作成中区間管理部171は、例えば図19に示すような状態遷移マシンを利用する。区間情報172は、逐次変更される区間の現在状態を確認可能な情報として保持している。
トラッキング部165の作成中区間管理部171は、各々が作成中(トラッキング中)の区間の一つについて各種情報を管理するモジュールである。トラッキング部165の作成中区間管理部171は、作成中の区間数と同じ個数だけ生成され(171a~171n)、区間が確定したら消滅する。また、作成中の区間は、その長さが伸びるにつれて、例えば先に図10を参照して説明したようにいくつかのステップを経る必要がある。そしてどのステップまで達したかを管理するため、作成中区間管理部171は、例えば図19に示すような状態遷移マシンを利用する。区間情報172は、逐次変更される区間の現在状態を確認可能な情報として保持している。
作成中区間管理部171の各々は、3つのモジュールから構成される。区間情報172は、区間一つ分のトラッキング処理そのもの(音源抽出や特徴量変換などを除いた処理)で使用される情報を扱う部分であり、始端のフレーム番号や、方向点が連続したり途切れたりしたときの長さなどを保持している。詳細は後述する。
音源抽出部173は、観測信号から抽出フィルタを学習によって推定する処理や、そのフィルタを観測信号へ適用して抽出結果を生成する処理などを行なう。これも詳細は後述する。
特徴量抽出部174は、生成された抽出結果を、さらに音声認識のデコードで使用させる特徴量へと変換する。また、必要に応じて、抽出結果から波形への変換なども行なう。これも詳細は後述する。
特徴量抽出部174は、生成された抽出結果を、さらに音声認識のデコードで使用させる特徴量へと変換する。また、必要に応じて、抽出結果から波形への変換なども行なう。これも詳細は後述する。
さらにトラッキング部165は、現在処理中のフレームの番号(現フレーム番号175)と、ブロックの番号(現ブロック番号176)も保持している。現フレーム番号175の値は、図17に示す観測信号バッファリング部164内に蓄積されている最新の1フレーム分データのフレーム番号と同一の値である。また、ブロックとは一定数のフレームを一まとめにした単位である。なお、特開2012-150237号公報に記載の処理では、このブロックを単位として方向推定やトラッキングを行なっている。本開示の処理でも、方向推定やトラッキングの方式は、この特開2012-150237号公報に記載された処理に準じた処理であり、トラッキング部はブロックの番号も保持し、必要に応じて作成中区間管理部171-1~nがその値を参照する。
方向点バッファ177は、次回のトラッキングにおいて使用される方向点を一時的に格納するモジュールである。本開示の音声認識装置は、複数の音声区間検出方式を用い、それぞれが方向点を生成するが、それらはこのモジュール内にまとめて格納される。この機構により、複数の音声区間検出方式を用いても1回の発話が多重に検出されるのを防ぐ。
なお、画像を用いた方式に由来する方向点は、トラッキング部にとって未来のタイムスタンプが付与されている場合がある。例えば、後述のように音声系処理と画像系処理とが並列かつ非同期に動作しており、同時刻に入力された音と画像と画像について、音の方が画像よりも遅れて処理されている場合がそれに相当する。そのような方向点については、「予約された方向点」と見なし、専用のバッファ、すなわち図に示す予約された方向点用バッファ178に格納する。そしてトラッキング処理が進み、その方向点に付与されたタイムスタンプの時刻に達したときに、その方向点を、予約された方向点用バッファ178から方向点バッファ177へ移動させる。
方向点接続テーブル179は、あるブロック内で検出された方向点それぞれについて、どの作成中区間に接続可能かを記述したテーブルである。先に図12を参照して説明したように一つの方向点に複数の区間が接続することもあり得るため、接続可能な区間はリストの形式で表わす。このリストを「接続可能区間リスト」と呼ぶ。
なお、どの区間も接続しない場合は、空リストを記述しておく。トラッキング部は、一つの方向点に複数の区間が接続可能な場合はそれらの区間を一つにマージし、どの区間も接続しない場合には新たな区間を生成する。
なお、どの区間も接続しない場合は、空リストを記述しておく。トラッキング部は、一つの方向点に複数の区間が接続可能な場合はそれらの区間を一つにマージし、どの区間も接続しない場合には新たな区間を生成する。
次に、作成中区間管理部171内に保持されるの区間情報172について説明する。これは図19に示すような状態遷移モデルを利用している。先にこの状態遷移モデルについて説明し、その後で具体的な構成について説明する。
図19において、A~Mは、区間の状態を示す内部状態である。開始状態はAである。終了状態はF,K,Lの3個であり、それぞれ「終端確定済み(抽出フィルタ推定前)」「終端確定済み(抽出フィルタ推定後)」「棄却」を表わしている。
各状態は、以下の状態を示す。
A:区間生成済み
B:途切れ中(始端確定前)
C:始端確定済み
D:途切れ中(抽出フィルタ推定前)
E:区間短すぎ(規定長以下)
F:終端確定済み(抽出フィルタ推定前)
G:抽出フィルタ推定済み
H:途切れ中(終端ハングオーバ以前)
I:区間長すぎ(規定長以上)
J:途切れ中(終端ハングオーバ以降)
K:終端確定済み(抽出フィルタ推定前)
L:棄却
各状態は、以下の状態を示す。
A:区間生成済み
B:途切れ中(始端確定前)
C:始端確定済み
D:途切れ中(抽出フィルタ推定前)
E:区間短すぎ(規定長以下)
F:終端確定済み(抽出フィルタ推定前)
G:抽出フィルタ推定済み
H:途切れ中(終端ハングオーバ以前)
I:区間長すぎ(規定長以上)
J:途切れ中(終端ハングオーバ以降)
K:終端確定済み(抽出フィルタ推定前)
L:棄却
また、状態A~Lの各状態同士を繋ぐ矢印は状態遷移を表わす端状態遷移ラインであり、これらは、以下の4通りに分類される。
ラインa(太い実線)、
ラインb(太い点線)、
ラインc(細い実線)、
ラインd(細い一点鎖線)、
ラインa(太い実線)、
ラインb(太い点線)、
ラインc(細い実線)、
ラインd(細い一点鎖線)、
これらの各状態遷移ラインは、それぞれ以下の意味を有する。
ラインa(太い実線):1ブロック内で1回のみ発生する遷移を表わしており、作成中区間への方向点の接続が発生する場合の状態遷移、
ラインb(太い点線):1ブロック内で1回のみ発生する遷移を表わしており、作成中区間への方向点の接続が発生しない場合の状態遷移、
ラインc(細い実線):作成中区間の長さ等が所定の値に達したときに発生する遷移を表わしており、この遷移は1ブロック内で複数回発生し得る。この遷移を「ブロックを消費しない遷移」と呼ぶ。
ラインd(細い一点鎖線):「登録済み」属性を持った区間に対する専用の終端登録処理において発生する遷移である。この遷移については、さらに後段において詳細に説明する。
ラインa(太い実線):1ブロック内で1回のみ発生する遷移を表わしており、作成中区間への方向点の接続が発生する場合の状態遷移、
ラインb(太い点線):1ブロック内で1回のみ発生する遷移を表わしており、作成中区間への方向点の接続が発生しない場合の状態遷移、
ラインc(細い実線):作成中区間の長さ等が所定の値に達したときに発生する遷移を表わしており、この遷移は1ブロック内で複数回発生し得る。この遷移を「ブロックを消費しない遷移」と呼ぶ。
ラインd(細い一点鎖線):「登録済み」属性を持った区間に対する専用の終端登録処理において発生する遷移である。この遷移については、さらに後段において詳細に説明する。
なお、図19では遷移ラインを省略しているが、状態Lへは任意の状態から遷移し得る。その遷移も「ブロックを消費しない遷移」である。
この図19に示す状態遷移モデルは、先に図10を参照して説明した各タイミングと対応している。以下、その対応関係を説明する。
この図19に示す状態遷移モデルは、先に図10を参照して説明した各タイミングと対応している。以下、その対応関係を説明する。
図10において、時間t3は発話の始端である。これは、どの作成中区間とも接続しない単独の方向点が発生したタイミングか、見極め時間不要の音声区間検出方式専用の始端登録処理が呼び出されたタイミングを表わしている。この時点で、図19の状態遷移モデルが生成され、内部状態はAとなる。
状態Aを「区間生成済み」と呼ぶ。
状態Aを「区間生成済み」と呼ぶ。
状態Aは、図10の時間t3~t4の期間に対応している。すなわち、新規の作成中区間に方向点が接続する限りは、状態Aの自己ループを回り続け、それに伴って作成中区間を伸ばしていく。区間の長さが所定の値(時間t3~t4までの長さ)以上になると、状態Cに遷移する。これはその作成中区間の始端が確定した状態であるため、状態Cを「始端確定済み」と呼ぶ。
一方、状態Aにおいて、接続する方向点が存在しない場合は、状態Bへ遷移する。なお、この状態Bも、図10の時間t3~t4の期間に対応する。
この状態Bは、区間が途切れていることを表わすが、途切れ中を表わす状態は複数存在するため、「途切れ中(始端確定前)」と呼んで区別する。接続可能な方向点が存在しない限りは状態Bで自己ループを続け、それが所定の回数に達したら、状態Eに遷移する。状態Bでの所定の回数とは、終端の見極めに必要な時間(図10では時間t6~t8)に相当するブロック数である。
状態Eは、始端が確定する前に終端が確定した場合、言い換えると区間が「短すぎ」る場合を表わしている。この場合は、「棄却」を表わす状態である状態Lへ遷移する。
この状態Bは、区間が途切れていることを表わすが、途切れ中を表わす状態は複数存在するため、「途切れ中(始端確定前)」と呼んで区別する。接続可能な方向点が存在しない限りは状態Bで自己ループを続け、それが所定の回数に達したら、状態Eに遷移する。状態Bでの所定の回数とは、終端の見極めに必要な時間(図10では時間t6~t8)に相当するブロック数である。
状態Eは、始端が確定する前に終端が確定した場合、言い換えると区間が「短すぎ」る場合を表わしている。この場合は、「棄却」を表わす状態である状態Lへ遷移する。
状態Bにおいて、その区間に接続する方向点が存在したら、状態Aへ戻る。もし、状態Aに戻った時点で区間の長さが始端見極め時間を超えていたら(図10の時間t3~t4より長かったら)、続いて状態Cへ遷移する。
状態Cは、図10の時間t4~t5の期間に対応する。状態Aと同様に、その区間に接続する方向点が存在したら自己ループし、区間の長さが所定の値(図10の時間t3~t5までの長さ)以上になったら、状態Gへ遷移する。その遷移のタイミングにおいて、抽出フィルタの推定やフィルタのなど1回目の適用(図10に示す観測信号108への適用)などを行なう。そこで、状態Gを「抽出フィルタ推定済み」と呼ぶ。
一方、状態Cにおいて、接続する方向点が存在しない場合は、状態Dへ遷移する。なお、この状態Dも、図10の時間t4~t5の期間に対応する。
この状態Dは、状態Bと同様に区間が途切れていることを表わすが、始端は既に確定しているため、「途切れ中(始端確定後)」と呼ぶ。接続可能な方向点が存在しない限りは状態Dで自己ループを続け、それが所定の回数に達したら、状態Fに遷移する。状態Dでの所定の回数も状態B と同様であり、終端の見極めに必要な時間に相当するブロック数である。
この状態Dは、状態Bと同様に区間が途切れていることを表わすが、始端は既に確定しているため、「途切れ中(始端確定後)」と呼ぶ。接続可能な方向点が存在しない限りは状態Dで自己ループを続け、それが所定の回数に達したら、状態Fに遷移する。状態Dでの所定の回数も状態B と同様であり、終端の見極めに必要な時間に相当するブロック数である。
状態Dにおいて、その区間に接続する方向点が存在したら、状態Cへ戻る。もし、状態Cに戻った時点で区間の長さが所定の値以上(図10における時間t3~t5以上)であれば、続いて状態Gへ遷移する。
状態Fは、抽出フィルタが推定される前に終端が確定した状態であるため、「終端確定済み(抽出フィルタ確定前)」と呼ぶ。この状態は、終端が確定した状態であり、方向点の密度や、図18において説明した観測信号バッファリング部164に格納された音声・非音声フラグに基づいて「音声らしい」フレームの割合などを判定し、判定結果に従った区間の選別を行ない、例えば、音声らしくないとの判定がなされると棄却、すなわち状態Lへ遷移する。一方、音声らしいと判定して音声認識対象として受理する場合は、抽出フィルタを推定し、それを発話区間へ適用して音源抽出結果を生成する。
状態G以降の処理は、本開示の音声認識装置において実行する特徴的な処理である。
状態Gは、図10に示す時間t5~t6の期間に対応する。状態A,Cと同様に、その区間に接続する方向点が存在したら自己ループを行なうが、その際に、遷移1回分に相当する観測信号に抽出フィルタを適用して抽出結果を逐次的に生成する。そして、区間の長さが所定の上限値以上になったら、状態Iへ遷移する。
状態Gは、図10に示す時間t5~t6の期間に対応する。状態A,Cと同様に、その区間に接続する方向点が存在したら自己ループを行なうが、その際に、遷移1回分に相当する観測信号に抽出フィルタを適用して抽出結果を逐次的に生成する。そして、区間の長さが所定の上限値以上になったら、状態Iへ遷移する。
一方、状態Gにおいて、接続する方向点が存在しない場合は、状態Hへ遷移する。
なお、状態Hは、図10示す時間t5~t7の期間に発生し得る状態である。
状態Gから状態Hへの遷移の際も、観測信号に抽出フィルタを適用して抽出結果を生成する。この状態は、区間の途切れ(図10の時間t6以降)を表わすが、同じ途切れでも、終端ハングオーバ(図10の時間t7)の前後では挙動が異なる(終端ハングオーバより前は抽出結果を生成するが、それ以降は生成しない)。そこで、終端ハングオーバを境に状態を2つに分ける。
すなわち、
図10の時間t6~t7の期間を状態H、
図10の時間t7~t8の期間を状態J、
このように2つの異なる状態を用意する。
なお、状態Hは、図10示す時間t5~t7の期間に発生し得る状態である。
状態Gから状態Hへの遷移の際も、観測信号に抽出フィルタを適用して抽出結果を生成する。この状態は、区間の途切れ(図10の時間t6以降)を表わすが、同じ途切れでも、終端ハングオーバ(図10の時間t7)の前後では挙動が異なる(終端ハングオーバより前は抽出結果を生成するが、それ以降は生成しない)。そこで、終端ハングオーバを境に状態を2つに分ける。
すなわち、
図10の時間t6~t7の期間を状態H、
図10の時間t7~t8の期間を状態J、
このように2つの異なる状態を用意する。
図10の時間t6~t7の期間を状態Hは、「途切れ中(終端ハングオーバ以前)」、
図10の時間t7~t8の期間を状態Jは、「途切れ中(終端ハングオーバ以降)」、
このように区別した状態とする。
このように、発話終了後の途切れ部分を2つの状態に分けているのも、本開示の処理の特徴の一つである。
なお、状態Jは、図10において、時間t5~t6,t7~t8に発生し得る状態である。
図10の時間t7~t8の期間を状態Jは、「途切れ中(終端ハングオーバ以降)」、
このように区別した状態とする。
このように、発話終了後の途切れ部分を2つの状態に分けているのも、本開示の処理の特徴の一つである。
なお、状態Jは、図10において、時間t5~t6,t7~t8に発生し得る状態である。
状態Hにおいて、接続する方向点が存在しない限りは、状態Hで自己ループを続ける。自己ループの際も、観測信号に抽出フィルタを適用して抽出結果を生成する。自己ループがが所定の回数(図10に示す時間t6~t7の長さに相当するブロック数)以上になったら、状態Jに遷移する。この遷移では、抽出結果を生成しない。
状態Hにおいて、その区間に接続する方向点が再び現れたら、状態Gへ戻る。もし、状態Gに戻った時点で区間の長さが上限以上だったら、続いて状態Iへ遷移する。状態Hから状態Jへの遷移に際しては、音声認識に適用するための特徴量を生成する。
状態Jにおいても、接続する方向点が存在しない限りは状態Jで自己ループを続ける。この自己ループでは抽出結果は生成しない。自己ループがが所定の回数(図10に示す時間t7~t8の長さに相当するブロック数)以上になったら、状態Kに遷移する。
状態Jにおいて、その区間に接続する方向点が再び現れたら、状態Gへ戻る。もし、状態Gに戻った時点で区間の長さが上限以上だったら、続いて状態Iへ遷移する。状態Jから状態Gへの遷移では、特徴量を生成する。
状態Iは作成中区間が予め規定した長さより「長すぎ」ることを表わしている。この状態に遷移したときの処理は、長すぎる区間に対する設定によって2通りある。長すぎる区間を棄却するという設定にしている場合は、そのまま状態Lへ遷移する。一方、長さの上限値を超えたら発話終端を確定するという設定にしている場合は、状態Kへ遷移する。ただし、この状態Kへの遷移に際しても、区間の方向や方向点の密度や「音声らしい」フレームの割合などによる判定を行ない、条件を満たしていない場合は状態Lへ遷移する。条件を満たしている場合は、抽出結果の代わりに、区間が確定したことを表わす特別なデータを音声認識のデコーダに送ることで、音声認識結果の確定を促す。
次に、図19において細い一点破線で表わされるラインdに従った遷移について説明する。これらはどれも、「登録済み」の区間、具体的には、発話者の手形状の変化など、ユーザの意思に基づいた発話区間の確認によって終端登録処理が行なわれた場合の処理を表わす。
状態Aから状態Eへの遷移は、図10に示す時間t3~t4において終端登録処理が呼ばれたとき、すなわち、例えばユーザ(発話者)の手形状の変化が確認された場合等の遷移を表わしている。この場合は、区間が「短すぎ」るため、棄却を表わす状態Lへ遷移する。
また、状態Cから状態Fへのラインd(一点鎖線)に従った遷移は、図10において時間t4~t5において終端登録処理が呼ばれたときの遷移を表わしている。この場合は、抽出フィルタを推定する前に終端が確定しているため、抽出フィルタを推定してからそれを発話区間へ適用して音源抽出結果を生成する。
さらに、状態Gから状態Kへのラインd(一点鎖線)に従った遷移は、図10において時間t5~t6において終端登録処理が呼ばれたときの遷移を表わしている。この場合は、区間が確定したことを表わす特別なデータを音声認識のデコーダに送ることで、音声認識結果の確定を促す。
次に、図19に示す状態遷移モデルに従った処理を実現するために必要なデータについて、図20を参照して説明する。
図20に区間情報172の詳細を示す。区間情報には、以下の情報が含まれる。
(1)内部状態
(2)区間ID
(3)始端フレーム番号
(4)ハングオーパ付き始端フレーム番号
(5)終端フレーム番号
(6)ハングオーバ付き終端フレーム番号
(7)「登録済み」フラグ
(8)方向点カウンタ
(9)平均方向
(10)途切れカウンタ
(11)終了予定フレーム番号
(12)接続可能方向点リスト
図20に区間情報172の詳細を示す。区間情報には、以下の情報が含まれる。
(1)内部状態
(2)区間ID
(3)始端フレーム番号
(4)ハングオーパ付き始端フレーム番号
(5)終端フレーム番号
(6)ハングオーバ付き終端フレーム番号
(7)「登録済み」フラグ
(8)方向点カウンタ
(9)平均方向
(10)途切れカウンタ
(11)終了予定フレーム番号
(12)接続可能方向点リスト
(1)内部状態は、状態遷移モデルの現在の状態(図19のA~L)を表わす。
(2)区間IDは、作成中区間に一意に付与される識別番号である。
(3)始端フレーム番号と、(4)ハングオーバ付き始端フレーム番号は、それぞれ、図10の時間t3の区間始端におけるフレーム番号と、時間t2のフレーム番号を表わし、両者は、トラッキング部165において、図18に示す作成中区間管理部が生成された時点で値が決定される。基本的に、(4)ハングオーバ付き始端フレーム番号は、(3)始端フレーム番号から一定値を引いた値であるが、システム起動直後に区間が発生した場合など、(3)始端フレーム番号から一定値を引くと負の値となってしまう場合は、フレーム番号の最小値(例えば0)をハングオーバ付き始端フレーム番号に代入する。
(2)区間IDは、作成中区間に一意に付与される識別番号である。
(3)始端フレーム番号と、(4)ハングオーバ付き始端フレーム番号は、それぞれ、図10の時間t3の区間始端におけるフレーム番号と、時間t2のフレーム番号を表わし、両者は、トラッキング部165において、図18に示す作成中区間管理部が生成された時点で値が決定される。基本的に、(4)ハングオーバ付き始端フレーム番号は、(3)始端フレーム番号から一定値を引いた値であるが、システム起動直後に区間が発生した場合など、(3)始端フレーム番号から一定値を引くと負の値となってしまう場合は、フレーム番号の最小値(例えば0)をハングオーバ付き始端フレーム番号に代入する。
(5)終端フレーム番号と、(6)ハングオーバ付き終端フレーム番号は、それぞれ、図10の時間t6の区間終端におけるフレーム番号と、時間t7のフレーム番号である。ただし、トラッキング処理中においては途中段階の値が格納されている。具体的には、(5)終端フレーム番号に対しては、図19に示す状態A,C,Gにおいて図18のトラッキング部165の保持する現フレーム番号176を代入し、(6)ハングオーバ付き終端フレーム番号に対しては、状態A,C,G,Hにおいて同じく現フレーム番号176を代入するようにすることで、状態Hまで遷移したときに両方の終端が自動的に定まる。
(7)「登録済み」フラグは、見極め時間不要な音声区間検出方式専用の始端登録処理によって生成された区間を区別するために用意されたフラグであり、前述の「登録済み属性」が設定されているか否かは、このフラグによって表現する。このフラグが立っている区間については、トラッキング時に特別な処理をする。
(8)方向点カウンタは、作成中区間に含まれる方向点の個数である。例えば、先に説明した図10に示す区間には13個の方向点が含まれる。この場合、この方向点のカウンタの値は「13」である。この値を用いて、区間内の方向点の密度を計算したり、方向の平均を重みつきで計算したりする。
(9)平均方向は、各方向点が持つ方向の平均値である。トラッキング中は、この値と、新たな方向点の方向との間で差分を計算し、その絶対値が所定の値以下であれば、その方向点はその区間に接続可能であると判定する。
(10)途切れカウンタは、先に説明した図19の状態B,D,H,Jにおいて、自己ループの回数を数えるためのカウンタである。この値は、自己ループの回数(すなわち、途切れているブロック数)そのものを保持してもよいが、フレーム数や時間(秒やミリ秒)などに換算した値を保持してもよい。
(11)終了予定フレーム番号は、「登録済み」区間に対する終端登録処理でのみ使用されるメンバーである。ここに、トラッキン具部の保持する現フレーム番号176(図18参照)よりも大きな値をセットすることで、終端登録処理の「予約」を表現することができる。すなわち、トラッキング中に(11)終了予定フレーム番号に値がセットされている場合は、現フレーム番号176が、(11)終了予定フレーム番号を超えたときに初めて終端登録処理を行なうようにする。このように終端登録処理の予約を行なう理由は、以下の2つである。
(理由1)「登録済み」区間に対する終端登録処理でも、終端ハングオーバを実現するため。
(理由2)音についての処理と画像についての処理とが並列に行われているが、音の処理の方が遅れている場合に対処するため。(画像に付与されたタイムスタンプは、音の処理からは未来の時刻に見える。)
(理由1)「登録済み」区間に対する終端登録処理でも、終端ハングオーバを実現するため。
(理由2)音についての処理と画像についての処理とが並列に行われているが、音の処理の方が遅れている場合に対処するため。(画像に付与されたタイムスタンプは、音の処理からは未来の時刻に見える。)
(12)接続可能方向点リストは、その区間に接続可能な方向点をリスト形式で表現したものであり、図18に示すトラッキング部165の保持する方向点接続テーブル179のキーと値を逆転(invert)したデータである。このリストが空の場合は、区間が途切れていると見なす。リストの要素が複数である場合は、それらの値の平均値からなる1個の方向点が接続すると見なす。
次に、音源抽出部173について、図21を参照して説明する。
図21には、音源抽出部173の各処理部と、音源抽出部173において生成または保持するデータ(図中の生成/保持データ)を示している。なお、データは、音源抽出部173内に保持してもよいし、音源抽出部173のアクセス可能なメモリに保持する構成としてもよい。
図21には、音源抽出部173の各処理部と、音源抽出部173において生成または保持するデータ(図中の生成/保持データ)を示している。なお、データは、音源抽出部173内に保持してもよいし、音源抽出部173のアクセス可能なメモリに保持する構成としてもよい。
フィルタ推定部191は、図中の「生成/保持データ」中に示す(1)抽出フィルタと、(2)全死角空間フィルタを生成する。抽出フィルタは、観測信号から目的音を抽出するためのフィルタである。全死角空間フィルタは、学習で用いる観測信号に含まれる全ての音源に死角を形成したフィルタ、すなわち観測信号に含まれる全ての音源の音声を減衰させるフィルタである。なお、この全死角空間フィルタは、特開2011-107602号公報に記載されたフィルタと同様の特性を持つフィルタである。
フィルタ適用部192は、観測信号に対して抽出フィルタを適用して音源抽出処理を実行する。
なお、図21の「生成/保持データ」中に示す(3)フィルタ適用始端フレーム番号と、(4)フィルタ適用終端フレーム番号は、次回に抽出フィルタ等を適用するときに、観測信号の何番目から何番目までのフレームに対して行なうかを表わすフレーム識別子であり、逐次的な音源抽出を実現するために重要な働きをする。
なお、図21の「生成/保持データ」中に示す(3)フィルタ適用始端フレーム番号と、(4)フィルタ適用終端フレーム番号は、次回に抽出フィルタ等を適用するときに、観測信号の何番目から何番目までのフレームに対して行なうかを表わすフレーム識別子であり、逐次的な音源抽出を実現するために重要な働きをする。
例えば、図19において状態J[途切れ中(終端ハングオーバ以降)]で自己ループをした後で状態G[抽出フィルタ推定済み]に遷移する場合を考える。これは、途切れがあったものの、短かったために区間の途中と見なされたことを意味する。しかし、状態Jでは抽出結果を生成しないため、状態Gに戻ったときに、状態Jに相当する短い途切れについても抽出結果を生成する必要がある。こういう場合でも、前回どのフレームに対してまで抽出フィルタを適用したかを保存しておけば、その次のフレームから現在のフレームまでの観測信号に対して抽出フィルタを適用することで、抽出結果が途切れるのを防ぐことができる。
図21の消し残り除去部193と時間周波数マスキング部194は共に、抽出フィルタでは完全には除去されない妨害音を一層除去するために用いる。消し残り除去部193では、観測信号に全死角空間フィルタを適用し、その適用結果を抽出結果(観測信号に抽出フィルタを適用した結果)から「減算」する。一方、時間周波数マスキング部194では、マイクロホン間位相差に基づく時間周波数マスクを抽出結果に適用する。共に、詳細な処理は後述する。
次に、図18のトラッキング部165内の作成中区間管理部171の特徴量変換部174について、図22を参照して説明する。特徴量変換部174は、音源抽出部173の出力を、音声認識で使用される特徴量へと変換する処理を行なう。後述のように、音源抽出部173の出力はスペクトルであるのに対し、音声認識部156におけるデコーダが音声認識に適用するデータ、すなわち特徴量は、一般にはメル周波数ケプストラム係数(Mel-Frequency Cepstral Coefficients:MFCC)である。図22に示すMFCC生成部201は、音源抽出部173の出力であるスペクトルを、音声認識に適用する特徴量であるメル周波数ケプストラム係数(MFCC)に変換する処理を行なう。
また、メル周波数ケプストラム係数(MFCC)については、スペクトルから計算された値をそのまま音声認識に使用する代わりに、フレーム間で何らかの正規化を行なった方が音声認識の精度が向上することが知られている。よく使用される正規化は2種類あり、MFCCの平均を0に調整する操作をケプストラム平均正規化(Cepstral Mean Normalization:CMN)、分散(または標準偏差)を1に調整する操作をケプストラム分散正規化(Cepstral Variance Normalization:CVN)と呼ぶ。
一般的な従来法では、発話区間の終端が確定してから音源抽出を行なっていたため、これらの正規化で使用される平均や分散(または標準偏差)も発話区間全体(例えば、図10に示す例では、区間105のデータ)から計算していた。それに対して本開示では、音源抽出が逐次処理になったのに合わせて、正規化で必要な平均や分散(または標準偏差)も早い段階で計算する。具体的には、図10に示す例では、時間t5のタイミングである。
すなわち、音源抽出部173は、時間t5において抽出フィルタを推定し、そのフィルタを、時間t2~t5の観測信号108に対して適用することで抽出結果を生成する。さらに、特徴量変換部174が、その直後にその抽出結果をメル周波数ケプストラム係数(MFCC)へ変換し、さらに、MFCCから平均と標準偏差とを計算する。このように特徴量変換部174は、音源抽出部173において、音源抽出結果が逐次的に生成されるのに合わせて逐次的にメル周波数ケプストラム係数(MFCC)への変換を実行し、さらにそのメル周波数ケプストラム係数(MFCC)から平均を減算、あるいは標準偏差での除算を実行することで、正規化された特徴量の生成も逐次的に行なう。
特徴量変換部174は、図22に示す構成を持つ。MFCC生成部201は、音源抽出部173におけるフィルタ適用によって生成した音源抽出結果であるスペクトルをメル周波数ケプストラム係数(MFCC)に変換する。
本開示の音声認識装置の特徴量変換部174は、前述の通り、音声区間のトラッキング途中で、例えば図10に示す例では、フィルタ推定処理を開始する時間t5に達した時点で、メル周波数ケプストラム係数(MFCC)の平均と標準偏差とを計算する。これらは、図22に示す生成/保持データとして、メモリに保存する。なお、メモリは、特徴量変換部174のアクセス可能なメモリである。
図22の生成/保持データ中に示す(3)初回フラグは、メル周波数ケプストラム係数(MFCC)の生成がその区間で初めてか否かを区別するためのフラグであり、作成中区間管理部171の生成時に、初回であることを示す値(真)が代入され、MFCCの生成が1回でも行なわれたら、初回でないことを示す値(偽)が代入される。このようなフラグを用意する目的は、以下の2つである。
(目的1)特徴量の正規化で使用される平均と標準偏差を、初回のみ計算するため。
(目的2)先頭のフレームでも特徴量を生成するため。
(目的1)特徴量の正規化で使用される平均と標準偏差を、初回のみ計算するため。
(目的2)先頭のフレームでも特徴量を生成するため。
(目的1)については既に説明したため、ここでは(目的2)についてのみ説明する。音声認識で使用される特徴量としては、MFCCそのものに加えて、近接する複数フレーム間におけるMFCCの変化量を表わす情報も合わせて使用した方が、音声認識の精度が向上することが知られている。そのような情報をデルタ特徴量と呼ぶ。本開示でも、MFCCとデルタ特徴量からなるベクトルを音声認識用の特徴量として用いる。
言い換えると、区間の始端のフレームにおいて、デルタ特徴量を含むベクトルを生成するためには、メル周波数ケプストラム係数(MFCC)自体はそれより前のフレームの分も生成する必要があり、音源抽出結果についても同様であることを意味する。そのために、初回か否かを区別するためのフラグを用意し、このフラグが真のときは、音源抽出部において抽出フィルタを適用する範囲を、時間を遡る方向に所定のフレーム数だけ広げるという操作を行なう。その抽出結果に対してMFCCへの変換およびデルタ特徴量の計算を行ない、さらに、デルタ特徴量が計算できない先頭の数フレームを削除すると、所望の特徴量ベクトルが得られる。
なお、その区間において2回目およびそれ以降に特徴量を生成するときには、MFCC生成部201内に過去のフレームのメル周波数ケプストラム係数(MFCC)が必要な分だけ保存されており、それを用いてデルタ特徴量は適切に計算できるものとする。
さらに特徴量変換部174は、必要に応じて逆STFT(Inverse Shotr-Time Fourier Transform)部202を備え、スペクトルから波形への変換を行なってもよい。逆STFTを行なう目的は、主に以下の2つである。
(目的1)必要に応じて抽出結果を人間が聞くため。
(目的2)ほとんどの音声認識エンジンは波形から特徴量への変換機構を持っていると予想されるため、抽出結果をいったん波形へ変換することで、幅広い音声認識エンジンで使用可能とするため。
(目的1)必要に応じて抽出結果を人間が聞くため。
(目的2)ほとんどの音声認識エンジンは波形から特徴量への変換機構を持っていると予想されるため、抽出結果をいったん波形へ変換することで、幅広い音声認識エンジンで使用可能とするため。
[3-3.本開示の音声認識装置における音声認識部の構成と処理について]
次に、音声認識部156の構成について、図23を参照して説明する。
デコードマネジメント部211には、以下の各情報が入力される。
抽出結果バッファリング部166から出力される特徴量(トラッキング部165の生成した音源抽出結果)、
ランキング部167から出力される区間の順位付け結果である優先度情報、
トラッキング部165から出力される消滅区間(または棄却された区間)等の区間更新情報、
これらの各情報を入力する。
次に、音声認識部156の構成について、図23を参照して説明する。
デコードマネジメント部211には、以下の各情報が入力される。
抽出結果バッファリング部166から出力される特徴量(トラッキング部165の生成した音源抽出結果)、
ランキング部167から出力される区間の順位付け結果である優先度情報、
トラッキング部165から出力される消滅区間(または棄却された区間)等の区間更新情報、
これらの各情報を入力する。
デコーダマネジメント部211は、ランキング部165から入力する音声区間の優先度情報に基づき、優先度の高い区間から順に、その区間の特徴量要求としての出力依頼を抽出結果バッファリング部166に出す。この依頼に対応した区間の特徴量を受け取り、デコーダ212-1~nに送る。また、現在デコード中の区間が無効になっていないか(消滅したり棄却されたりしていないか)、トラッキング部165に問い合わせ、無効になっていた場合は、対応するデコードをキャンセルする。
デコーダ212-1~nは、フロントエンド部から得られた特徴量を適用して、音響モデル216、辞書217、言語モデル218等のデータベースを必要に応じて参照しながら、区間に対応した目的音に最も近い単語列を求める音声認識処理を実行する。
なお、本開示の装置は必要に応じてデコーダを複数有する。そして各デコーダは区間ID213-1~nを保持することで、どの区間をデコード中なのかが分かるようにしてある。なお、どの区間もデコードしていないときは、区間IDとしては未定義値を代入しておく。
この図23では省略されているが、デコーダ212-1以外のデコーダ212-2~nも、デコーダ212-1と同じ言語モデル216、辞書217、言語モデル218を参照して、音声認識処理を実行する。
音響モデル216は、音声認識する音声の個々の音韻や音節などの音響的な特徴を表わすモデルを記憶している。音響モデルとしては、例えばHMM(Hidden Markov Model)などを用いることができる。
辞書217は、認識対象の各単語(語句)について、その発音(音韻系列)に関する情報が記述された単語辞書や、音韻や音節の連鎖関係を記述したモデルなどを記憶している。
辞書217は、認識対象の各単語(語句)について、その発音(音韻系列)に関する情報が記述された単語辞書や、音韻や音節の連鎖関係を記述したモデルなどを記憶している。
言語モデル218は、辞書217の単語辞書に登録されている各単語がどのように連鎖する(接続する)かに関する情報を記述している。記述方法としては、統計的な単語連鎖確率(n-gram)や有限状態オートマトンベースの文法などが使用可能である。
各デコーダ212-1~nは認識結果219を生成する。これは、後段処理部157で使用される。
各デコーダ212-1~nは認識結果219を生成する。これは、後段処理部157で使用される。
[3-4.本開示の音声認識装置における画像処理部の構成と処理について]
次に、画像処理部155について、図24を参照して説明する。
画像処理部155に対する入力は、画像入力部(カメラ)154で取得された画像であり、この画像が、口唇画像処理部221や、手画像処理部223、さらに必要に応じて顔画像処理部222にそれぞれ送られる。
次に、画像処理部155について、図24を参照して説明する。
画像処理部155に対する入力は、画像入力部(カメラ)154で取得された画像であり、この画像が、口唇画像処理部221や、手画像処理部223、さらに必要に応じて顔画像処理部222にそれぞれ送られる。
口唇画像処理部221は、入力画像の中から口唇に相当する領域を検出すると共に、その口唇領域が前の時間と比較して変化の度合いが所定の値を超えていたら、「口が動いている」と判定する。そして画像上の口唇の位置を音源の方向に換算し、その値にタイムスタンプを付与したものを方向点としてフロントエンド部153へ送る。
手画像処理部223は、入力画像の中から手に相当する領域を検出するとともに、前の時間と比較して形状に変化があったかどうかを判定する。なお、手形状の識別については、例えば特開2012-203439号公報に記載された方法を用いる。
このモジュールでは、例えば前の時間の画像から取得した手形状が「パー」であり、今回の画像から得られた手形状が「グー」であった場合は、発話の開始であると判定し、逆に前回が「グー」で今回が「パー」であった場合は、発話の終了であると判定する。発話開始と判定された場合は、画像上の手の位置に後述のような修正をかけることで音源の方向を計算し、それにタイムスタンプを付与する。そしてその音源方向とタイムスタンプとを、発話始端情報としてフロントエンド部153へ通知する。一方、発話終了と判定された場合は、同様に計算された音源方向にタイムスタンプを付与した後、それらを発話終端情報として同様にフロントエンド部153へ通知する。
さらに、画像処理部155は、必要に応じて顔画像処理部222を備え、入力画像の中から顔の領域を検出する処理を行なう。顔領域の検出の目的は、主に以下の2点である。
(目的1)顔領域を検出してから口唇画像を検出することで、探索範囲を制限することができ、計算量が削減できる。
(目的2)手領域の座標から音源方向を計算する際に、その手領域に最も近い顔領域の座標から音源方向を計算する。
以上で、各モジュールの構成についての説明を終える。
(目的1)顔領域を検出してから口唇画像を検出することで、探索範囲を制限することができ、計算量が削減できる。
(目的2)手領域の座標から音源方向を計算する際に、その手領域に最も近い顔領域の座標から音源方向を計算する。
以上で、各モジュールの構成についての説明を終える。
[4.本開示の音声認識装置の処理の詳細について]
以下では、本開示の音声認識装置の実行する処理について説明する。
以下では、本開示の音声認識装置の実行する処理について説明する。
[4-1.本開示の音声認識装置の実行する全体処理の概要について]
音声認識装置の実行する処理は、以下の2系統の処理に大きく分類できる。
(音声系処理)音声認識処理のメインとなる処理であり、音声認識結果を生成するメイン処理、
(画像系処理)上記の音声認識処理に適用するための画像に基づく情報を生成する処理、
音声認識装置の実行する処理は、以下の2系統の処理に大きく分類できる。
(音声系処理)音声認識処理のメインとなる処理であり、音声認識結果を生成するメイン処理、
(画像系処理)上記の音声認識処理に適用するための画像に基づく情報を生成する処理、
画像系処理は、図15の構成における画像処理部155の実行する処理であり、画像入力部154から入力する画像に基づいて、例えば口唇画像や手形状の変化を判別して音声区間の判定に適用する情報を生成する処理である。
音声系処理は、主に図15のフロントエンド部155、音声認識部156の実行する処理である。音声系処理は、画像系処理の処理結果を適用した処理を実行する。
音声系処理は、主に図15のフロントエンド部155、音声認識部156の実行する処理である。音声系処理は、画像系処理の処理結果を適用した処理を実行する。
なお、以下の各フローチャートを参照して説明する処理は、例えば音声認識装置の各処理部が音声認識装置内のメモリに格納されたプログラムに従って実行可能な処理である。各処理部は、プログラムに規定された処理シーケンスに従って処理を実行する。
音声系処理の処理シーケンスを図25のフローチャートに示す。
一方、画像系処理の処理シーケンスを図26のフローチャートに示す。
なお、このような2つの処理系に区分して説明する理由は、各データの時間粒度の違いである。例えば、音声系処理は、図25に示すフローに従った処理を、時間周波数領域の観測信号である短時間フーリエ変換(STFT)信号のシフト1回分のサンプルを取得するごと(シフト幅が160サンプルでサンプリング周波数が16kHzなら1/100秒ごと)に実行する。一方、画像系処理は、図26に示すフローに従った処理を、画像を1枚取得するごとに(30fpsなら1/30秒ごとに)に実行する。このように、各処理系において処理対象とするデータ単位が異なるため、2つの個別のフローとして示してある。
一方、画像系処理の処理シーケンスを図26のフローチャートに示す。
なお、このような2つの処理系に区分して説明する理由は、各データの時間粒度の違いである。例えば、音声系処理は、図25に示すフローに従った処理を、時間周波数領域の観測信号である短時間フーリエ変換(STFT)信号のシフト1回分のサンプルを取得するごと(シフト幅が160サンプルでサンプリング周波数が16kHzなら1/100秒ごと)に実行する。一方、画像系処理は、図26に示すフローに従った処理を、画像を1枚取得するごとに(30fpsなら1/30秒ごとに)に実行する。このように、各処理系において処理対象とするデータ単位が異なるため、2つの個別のフローとして示してある。
まず、図25に示すフローチャートを参照して音声系処理について説明する。
ステップS101において、音声系処理に関係するモジュール、例えばフロントエンド部153、音声認識部156等の各モジュールを初期化する。
これらの各モジュールには、処理対象データ等を識別するパラメータとして、例えば、フレーム番号、ブロック番号、区間IDが保持される。
初期設定として、フレーム番号を表わす変数tをt=0、ブロック番号を表わす変数bをb=0、区間IDは未定義として設定する。
これらの初期化が完了後、ステップS102~S107の処理を終了まで繰り返す。
ステップS101において、音声系処理に関係するモジュール、例えばフロントエンド部153、音声認識部156等の各モジュールを初期化する。
これらの各モジュールには、処理対象データ等を識別するパラメータとして、例えば、フレーム番号、ブロック番号、区間IDが保持される。
初期設定として、フレーム番号を表わす変数tをt=0、ブロック番号を表わす変数bをb=0、区間IDは未定義として設定する。
これらの初期化が完了後、ステップS102~S107の処理を終了まで繰り返す。
ステップS102は、フロントエンド部153が、AD変換部152によってデジタル信号に変換された音信号を、必要なチャンネル数かつサンプル数ほど取得する処理である。
ステップS103の区間登録処理は、音声区間の始端または終端の登録を、例えば画像処理部155からの出力など、外部から与えられた情報によって行なう処理である。音声区間検出方式のうち、例えばユーザの発話区間指示情報である手の形状変化情報を利用した処理など音声区間の始端や終端の見極め時間が不要の方式によって始端・終端が検出された場合にこの処理が呼ばれるが、詳細については後述する。
ステップS104のフロントエンド処理は、ステップS102で取得された音データを用いて、音声区間検出と音源抽出と、さらに特徴量への変換を行なう処理である。詳細については後述する。
ステップS105の音声認識処理は、ステップS104のフロントエンド処理で得られた区間ごとの抽出結果(特徴量)を用いて、それに対応した単語系列などの認識結果を求める処理である。また、認識結果を求める以外にも、入力された音が、システムを操作するための音声か否かを認識信頼度やスコアによって判別することも行なう。詳細な処理については後述する。
ステップS105において得られた認識結果を用いて、その認識結果に対応した処理をステップS106の後段処理において行なう。例えば、ユーザの発話がテレビのチャンネルの変更を依頼するものであれば、それに応じてチャンネルを変更する。また、認識結果そのものを用いる以外にも、ステップS104のフロントエンド処理の処理結果を用いて何らかの表出を行なってもよい。例えば、逐次的に行われているトラッキングの進行に合わせて、「ただいま、こちらの方向からの音声を聞いています」といった意味の情報を表示しても良い。
ステップS107において、例えば処理対象とする音声区間の有無等に基づいて音声系処理の終了判定を行ない、処理を続けるのであれば、ステップS102に戻る。終了するのであれば、処理を終了させる。
音声系処理の処理の詳細について説明する前に、画像系処理の概略について図26に示すフローチャートを参照して説明する。
ステップS201において、画像処理部155の初期化を行なう。その後、ステップS202~S206の処理を終了まで繰り返す。
ステップS201において、画像処理部155の初期化を行なう。その後、ステップS202~S206の処理を終了まで繰り返す。
ステップS202において、画像入力部(カメラ)154から1枚分の画像を取得する。
ステップS203において、取得画像に対して、必要に応じて顔検出処理を行ない、画像中から顔の領域を検出する。なお、この処理は、ステップS204、ステップS205の各処理の補助的な処理として実行するものであり、省略してもよい。
ステップS203において、取得画像に対して、必要に応じて顔検出処理を行ない、画像中から顔の領域を検出する。なお、この処理は、ステップS204、ステップS205の各処理の補助的な処理として実行するものであり、省略してもよい。
ステップS204の口唇画像処理は、ステップS202で取得した画像内に口唇が存在するか否かを判定し、存在するときにそれが動いているか否かを判別する。詳細は後述する。
ステップS205の手画像処理は、画像内に手が存在するか否かを判定し、存在するときに手の形状が、発話の開始または終了に対応した所定の変化をしているか否かを判別する。詳細は後述する。
ステップS205の手画像処理は、画像内に手が存在するか否かを判定し、存在するときに手の形状が、発話の開始または終了に対応した所定の変化をしているか否かを判別する。詳細は後述する。
ステップS206において、未処理画像の入力有無などに基づいて、画像系処理の継続を判定し、続けるのであればステップS202に戻る。終了するのであれば、終了する。
[4-2.フロントエンドの処理について]
次に、図25のフローを参照して説明した音声系処理の各処理について、詳細を説明する。なお、説明の都合上、最初にステップS104のフロントエンド処理について説明し、次にステップS103の区間登録処理、最後にステップS105の音声認識処理について、順に説明する。
次に、図25のフローを参照して説明した音声系処理の各処理について、詳細を説明する。なお、説明の都合上、最初にステップS104のフロントエンド処理について説明し、次にステップS103の区間登録処理、最後にステップS105の音声認識処理について、順に説明する。
まず、ステップS104のフロントエンド処理について、図27に示すフローチャートを参照して説明する。
この図27に示すフローに従った処理は、図16を参照して説明したフロントエンド部153において実行する処理である。
図25のフローのステップS102において取得された音が、AD変換部152を介してフロントエンド部153に入力される。
この図27に示すフローに従った処理は、図16を参照して説明したフロントエンド部153において実行する処理である。
図25のフローのステップS102において取得された音が、AD変換部152を介してフロントエンド部153に入力される。
ステップS271において、図16に示すフロントエンド部153のSTFT部161が、取得した音データに対して短時間フーリエ変換(STFT)を適用する。この短時間フーリエ変換(STFT)処理によって、時間周波数領域の観測信号を生成する。詳細については後述する。
なお、1回の短時間フーリエ変換(STFT)処理の処理単位をフレームと呼び、1フレーム分の時間周波数領域の信号をスペクトルと呼ぶ。チャンネル数(マイクロホンの個数)をnとすると、このSTFTでn本のスペクトルが生成される。
なお、1回の短時間フーリエ変換(STFT)処理の処理単位をフレームと呼び、1フレーム分の時間周波数領域の信号をスペクトルと呼ぶ。チャンネル数(マイクロホンの個数)をnとすると、このSTFTでn本のスペクトルが生成される。
ステップS272において、音声・非音声判別処理を実行する。この処理は、図16に示すフロントエンド部153の音声・非音声判別部162の実行する処理であり、取得された音信号が「音声らしい」か否かを二値で判別する。判別方法としては、例えば、特許4182444号で開示されているような音声の周期性に注目した方式などを使用する。
次に、ステップS273において観測信号バッファリング処理を実行する。観測信号バッファリング処理は、今回の処理対象とするフレーム番号tと、ステップS271で生成された複数チャンネル分のスペクトルと、ステップS272での判別結果と、入力信号に付与されていたタイムスタンプなどをセットにして、先に図17を参照して説明した「1フレーム分データ」として、観測信号バッファリング部164に格納する処理である。なお、観測信号バッファリング部164に格納されたデータの個数が所定の値を超えた場合は、最も古いフレームのデータを廃棄する。
ステップS275~S278の処理は、一定の頻度で実行される処理であり、たとえば、ステップS274において、定数B=5とすると、5フレームに1回の頻度で実行する。なお、ステップS274のmodは割り算の余りを計算する演算子である。例えば、フレーム番号tがB-1,2B-1,3B-1,・・・のときのみ、ステップS275へ進み、それ以外のときはステップS279へ進む。すなわち、ステップS275~S278の処理は、予め設定したB個のフレームを単位として処理が行なわれる。この処理単位をブロックと呼ぶ。
ステップS275の音源方向推定は、一つのブロック内において0個以上の音源とその方向を取得する処理である。その結果は、方向点、例えば図10に示す方向点101などとして表現される。なお、音源方向推定処理については、例えば、特開2012-150237号公報等に記載されており、このステップS275ではこの既存方式を適用可能である。
ステップS276の方向点の統合は、ステップS275において求めた方向点(音信号から求めた方向点)と、例えば、画像処理部155における口唇画像処理等によって求めた方向点とをマージする処理である。基本的には、方向点からなる集合同士の和集合を計算し、その結果を、図18を参照して説明したトラッキング部165の方向点バッファ177に格納する。
ただし、画像処理に由来する方向点のタイムスタンプが音声系処理の保持しているタイムスタンプとずれている場合は、それを考慮した処理も行なう。すなわち、画像処理由来の方向点のうち、音声系処理にとって未来のタイムスタンプが付与されているものは、図18に示す「予約された方向点バッファ178」にタイムスタンプ(またはフレーム番号)と共に保存されている。この中から、今回の音声系処理と同時刻と見なせる方向点を取り出し、方向点バッファ177に追加する。
ステップS277のトラッキング処理は、類似した方向を持つ方向点同士を時間方向に連結して音源の区間を求める。さらに、この処理と連動し、音源抽出結果の生成と、特徴量への変換を逐次的に行なう。詳細については後述する。
以上の処理が完了したら、ステップS278においてブロック番号bを1だけ増加させる。
さらに、ステップS279において、フレーム番号tを1だけ増加させる。この処理は、毎回実行される。
以上の処理が完了したら、ステップS278においてブロック番号bを1だけ増加させる。
さらに、ステップS279において、フレーム番号tを1だけ増加させる。この処理は、毎回実行される。
次に、ステップS271で実行する短時間フーリエ変換(STFT)について、図28を参照して説明する。
図28(a)に示す時間領域の観測信号の波形xk(*)から一定長(例えば512個のサンプル)を切り出す。ただしkはマイクロホン番号である。
切り出し信号301~303の各々に対してハニング窓やハミング窓等の窓関数を適用する。この切り出した単位をフレームと呼ぶ。1フレーム分のデータに短時間フーリエ変換を適用することにより、時間周波数領域の信号であるXk(ω,t)を得る。なお、ωは周波数ビン番号で、tはフレーム番号である。
図28(a)に示す時間領域の観測信号の波形xk(*)から一定長(例えば512個のサンプル)を切り出す。ただしkはマイクロホン番号である。
切り出し信号301~303の各々に対してハニング窓やハミング窓等の窓関数を適用する。この切り出した単位をフレームと呼ぶ。1フレーム分のデータに短時間フーリエ変換を適用することにより、時間周波数領域の信号であるXk(ω,t)を得る。なお、ωは周波数ビン番号で、tはフレーム番号である。
なお、前述した式[1.4]のような、全ての周波数ビンからなるベクトルXk(t)をスペクトルと呼ぶ。式[1.4]において、Mは周波数ビンの個数であり、1フレーム内のサンプル数をcとすると、周波数ビンの個数Mと、サンプル数cとの間には、
M=c/2+1
の関係がある。
例えば、1フレームのサンプル数c=512のとき、周波数ビンの個数M=257となる。
M=c/2+1
の関係がある。
例えば、1フレームのサンプル数c=512のとき、周波数ビンの個数M=257となる。
図28に示すように、切り出すフレーム301~303の間には重複があってもよい。重複領域が存在することで、連続するフレームのスペクトルXk(t-1)~Xk(t+1)を滑らかに変化させることができる。また、スペクトルをフレーム番号に従って並べたものをスペクトログラムと呼ぶ。図28の(b)観測信号スペクトログラムXkである。
本開示の音声認識装置では、音入力部151として、複数のマイクロホンを使用するため、マイクロホンの個数をnとすると、短時間フーリエ変換(STFT)はn回行ない、スペクトルはn個生成される。
本開示の音声認識装置では、音入力部151として、複数のマイクロホンを使用するため、マイクロホンの個数をnとすると、短時間フーリエ変換(STFT)はn回行ない、スペクトルはn個生成される。
次に、図27のフローにおけるステップS277のトラッキング処理について、図29に示すフローチャートを参照して説明する。
先に図12を参照して説明したように、トラッキング自体は、作成中の区間それぞれについて、新規ブロックの方向点が接続可能かチェックし、接続可能なら区間を延長していく処理であるが、本開示の処理では、区間の延長に伴って、抽出フィルタの推定や適用、さらに特徴量への変換なども行なうという特徴がある。
先に図12を参照して説明したように、トラッキング自体は、作成中の区間それぞれについて、新規ブロックの方向点が接続可能かチェックし、接続可能なら区間を延長していく処理であるが、本開示の処理では、区間の延長に伴って、抽出フィルタの推定や適用、さらに特徴量への変換なども行なうという特徴がある。
図27に示すトラッキング処理の詳細フローの各ステップの処理について説明する。
ステップS291の方向点の接続チェックは、作成中の各区間と新規ブロック内の各方向点とについて、接続可能かどうかを判別する処理である。詳細は後述する。この段階では単にチェックするだけであり、区間の更新などは以降で行なわれる。
ステップS291の方向点の接続チェックは、作成中の各区間と新規ブロック内の各方向点とについて、接続可能かどうかを判別する処理である。詳細は後述する。この段階では単にチェックするだけであり、区間の更新などは以降で行なわれる。
ステップS292の区間のマージ処理は、一つの方向点に複数の作成中区間が接続可能な場合に、それらの区間を一つにまとめる処理である。この処理についても、詳細は後述する。
ステップS293の区間の更新処理は、接続可能な作成中区間と方向点とを接続することで区間を延長したり、逆に、接続する方向点が存在しない状態が所定の時間以上続いたときに終端を確定したりする処理である。区間が長くなるにつれて、図10を参照して説明した各処理も行なう。これも詳細は後述する。
ステップS294の新規区間の作成は、ある方向点がどの作成中区間とも接続しないときに、その方向点を始端とする新たな区間を生成する処理である。これについても後述する。
トラッキング処理の最後は、ステップS295の不要区間の削除処理である。これは、作成中区間のうち、途中で棄却された区間や、他の作成中区間にマージされた(吸収された)区間を削除してトラッキング対象から外す処理である。詳細は後述する。
次に、ステップS291の方向点の接続チェック処理の詳細について、図30に示すフローチャートを参照して説明する。
図29に示すトラッキング処理中のステップS291の方向点接続チェック処理は、は、作成中区間と方向点との全組み合わせについて接続可能かどうかをチェックし、そのチェック結果として、以下の2種類のデータを生成してメモリに保存する処理である。
a)各作成中区間が、どの方向点に接続可能かを示すデータ。
b)各方向点が、どの作成中区間に接続可能かを示すデータ。
図29に示すトラッキング処理中のステップS291の方向点接続チェック処理は、は、作成中区間と方向点との全組み合わせについて接続可能かどうかをチェックし、そのチェック結果として、以下の2種類のデータを生成してメモリに保存する処理である。
a)各作成中区間が、どの方向点に接続可能かを示すデータ。
b)各方向点が、どの作成中区間に接続可能かを示すデータ。
a)の「各作成中区間が、どの方向点に接続可能かを示すデータ」は、図18を参照して説明したトラッキング部165の作成中区間管理部171の各々に保持されるデータであり、図20を参照して説明した区間情報172に示す「(12)接続可能方向点リスト」に対応するデータである。
また、b)の「各方向点が、どの作成中区間に接続可能かを示すデータ」は、図18を参照して説明したトラッキング部165の「方向点接続テーブル179」に対応するデータである。
また、b)の「各方向点が、どの作成中区間に接続可能かを示すデータ」は、図18を参照して説明したトラッキング部165の「方向点接続テーブル179」に対応するデータである。
図30に示すフローチャートの各ステップの処理について説明する。
ステップS301において、「方向点接続テーブル」の中身を初期化する。具体的には、各図18に示すトラッキング部165の管理する方向点接続テーブル179のに対する初期化処理であり、方向点に対応したエントリは用意するが、区間IDからなるリストには空リストを代入しておく処理として実行する。
ステップS301において、「方向点接続テーブル」の中身を初期化する。具体的には、各図18に示すトラッキング部165の管理する方向点接続テーブル179のに対する初期化処理であり、方向点に対応したエントリは用意するが、区間IDからなるリストには空リストを代入しておく処理として実行する。
ステップS302~S309は、作成中区間についてのループである。トラッキング中は、トラッキング部(図18)において、作成中区間管理部171-1~nが作成中区間の個数だけ生成される。これら作成中区間管理部171-1~n各々一つずつの処理に対応するループである。
ステップS303において、図18に示す作成中区間管理部171-1内の区間情報172に含まれる「接続可能な方向点のリスト」(図20の(12))をクリアする。具体的には、空リストを代入する。
ステップS304~S308は、方向点についてのループである。具体的には、図18に示すトラッキング部165の方向点バッファ177内の各要素(方向点)についてのループである。このループの中では、作成中区間と方向点との全部の組み合わせについての接続可能性がチェックされる。
ステップS305において、ある作成中区間と方向点とが接続可能かチェックする。具体的には、作成中区間の平均方向(図20の区間情報172の(9))と方向点の方向との間で差を計算し、それが予め規定した所定の範囲内(例えば、-10°~+10°の範囲)であれば接続可能と判定する。接続可能と判定した場合は、ステップS306とS307とを実行し、接続不可能と判定した場合は、ステップS306とS307をスキップする。ただし、方向の差が所定の範囲内であっても、始端フレーム番号(図20に示す区間情報172の(3))の値が現フレーム番号(図18の現レーム番号175)よりも大きい場合は、接続不可能と見なす。これは、後述する始端登録処理において未来のタイムスタンプが指定された場合に対処するためである。
ステップS306と、ステップS307はそれぞれ、前述のa)と、b)に対応する情報を生成する処理である。すなわち、以下のデータを生成し保持する。
a)各作成中区間が、どの方向点に接続可能かを示すデータ。
b)各方向点が、どの作成中区間に接続可能かを示すデータ。
a)各作成中区間が、どの方向点に接続可能かを示すデータ。
b)各方向点が、どの作成中区間に接続可能かを示すデータ。
ステップS308で方向点ループを閉じ、ステップS309で作成中区間ループを閉じると、上記のa),b)に相当するデータが取得され、トラッキング部165の管理データとして保持された状態となる。
次に、図29に示すトラッキング処理のステップS292の区間のマージ処理の詳細について、図31に示すフローチャートを参照して説明する。
先に、図12を参照して説明した通り、区間のマージ処理は基本的には、一つの方向点に複数の作成中区間が接続可能な場合にそれらを一つにまとめる操作であるが、作成中区間が「登録済み」属性を持つか否かで挙動が異なる。
先に、図12を参照して説明した通り、区間のマージ処理は基本的には、一つの方向点に複数の作成中区間が接続可能な場合にそれらを一つにまとめる操作であるが、作成中区間が「登録済み」属性を持つか否かで挙動が異なる。
図31に示すフローの各ステップの処理について説明する。
ステップS311~S320は、図18に示すトラッキング部の管理する方向点接続テーブル179内のエントリ各々についてのループである。方向点接続テーブル179の1エントリは、方向点の一つについてどの作成中区間が接続可能か、接続可能区間リストを保持している。
ステップS311~S320は、図18に示すトラッキング部の管理する方向点接続テーブル179内のエントリ各々についてのループである。方向点接続テーブル179の1エントリは、方向点の一つについてどの作成中区間が接続可能か、接続可能区間リストを保持している。
ステップS312において、方向点接続テーブル179の接続可能区間リストの要素数によって分岐する。要素が0個(その方向点と接続する区間は存在しない)または1個(その方向点と接続する区間は1個のみ)の場合は、マージの必要がないため、ステップS320に進む。2個以上の場合は、ステップS313に進む。
ステップS313では、接続可能区間リストの要素のうち、「登録済み」属性を持つ作成中区間の個数によって分岐する。その理由は、マージにおいて「登録済み」属性を持つ区間を消滅させないためである。
「登録済み」属性を持つ作成中区間がリストの中に存在しない場合は、ステップS314に進む。
「登録済み」属性を持つ作成中区間がリストの中に存在しない場合は、ステップS314に進む。
ステップS314においては、接続可能区間リストに含まれる作成中区間を以下の基準でソートする。
(基準1)長い区間を優先。
(基準2)同じ長さの区間が複数存在する場合は、区間IDが小さい方を便宜的に優先。
これらの各基準を適用したソート処理で1位になった作成中区間に対して、2位以降の作成中区間をマージする(吸収させる)。
(基準1)長い区間を優先。
(基準2)同じ長さの区間が複数存在する場合は、区間IDが小さい方を便宜的に優先。
これらの各基準を適用したソート処理で1位になった作成中区間に対して、2位以降の作成中区間をマージする(吸収させる)。
一方、ステップS313の判定処理において、「登録済み」属性を持つ区間が1個だけ存在する場合は、ステップS315に進む。
ステップS315においては、「登録済み」属性を持つ区間に対して、その他の区間をマージする。
ステップS315においては、「登録済み」属性を持つ区間に対して、その他の区間をマージする。
また、ステップS313の判定処理において、「登録済み」属性を持つ区間が2個以上存在する場合は、ステップS316に進む。
ステップS316においては、「登録済み」属性を持つ区間それぞれに対して、「登録済み」属性を持たない区間をマージする。例えば、接続可能区間リストに、A,B,C,Dの4つの区間が存在し、そのうちのAとBは「登録済み」属性を持っているとする。その場合、Aに対してC,Dをマージし、Bに対しても同じくC,Dをマージする。その結果としてAとBの2つの区間が残る。
ステップS316においては、「登録済み」属性を持つ区間それぞれに対して、「登録済み」属性を持たない区間をマージする。例えば、接続可能区間リストに、A,B,C,Dの4つの区間が存在し、そのうちのAとBは「登録済み」属性を持っているとする。その場合、Aに対してC,Dをマージし、Bに対しても同じくC,Dをマージする。その結果としてAとBの2つの区間が残る。
ステップS317以降は、ステップS314~S316のいずれかの処理が終了した後、3つの場合で共通して実行する処理である。
ステップS317において、平均方向(図20の区間情報172の(9))を更新する。具体的には、マージの対象となった作成中区間の間で、方向点カウンタ(図20の区間情報172の(8))を重みとする重みつき平均を、(9)平均方向に対して行ない、得られた値を、マージ後に残った作成中区間の更新された平均方向として記録する。
ステップS317において、平均方向(図20の区間情報172の(9))を更新する。具体的には、マージの対象となった作成中区間の間で、方向点カウンタ(図20の区間情報172の(8))を重みとする重みつき平均を、(9)平均方向に対して行ない、得られた値を、マージ後に残った作成中区間の更新された平均方向として記録する。
続いてステップS318において、方向点カウンタ(図20の区間情報172の(8))を更新する。具体的には、マージの対象となった作成中区間の間で、方向点カウンタを総和し、得られた値を、マージ後に残った作成中区間の更新された方向点カウンタとして記録する。
ループの最後に、ステップS319において、マージで吸収された側の作成中区間の内部状態を「L:棄却」に遷移させる。これは、マージで吸収された作成中区間を、図29に示すトラッキング処理のステップS295において実行する「不要区間の削除」において削除するためである。
最後に、ステップS320でループを閉じることにより、「区間のマージ」処理を終了する。
最後に、ステップS320でループを閉じることにより、「区間のマージ」処理を終了する。
次に、図29に示すトラッキング処理のステップS293において実行する「区間の更新」処理について、図32に示すフローチャートを参照して説明する。この「区間の更新」は、状態遷移モデルに従った区間管理を行なう作成中区間管理部171において、先に図19を参照して説明した状態遷移を発生させる処理である。
状態遷移は大きく分けて以下の2種類ある。
ブロックを消費する遷移:1個のブロック内で1回だけ発生する遷移
ブロックを消費しない遷移:1個のブロック内で何回でも発生し得る遷移
ブロックを消費する遷移:1個のブロック内で1回だけ発生する遷移
ブロックを消費しない遷移:1個のブロック内で何回でも発生し得る遷移
「ブロックを消費する遷移」は、図32に示すフローのステップS322において処理を実行する。なお、この処理は、図19に示す状態遷移モデルに示す太い実線および点線のラインa,bの状態遷移処理に対応する。
「ブロックを消費しない遷移」は、図32に示すフローのステップS323において処理を実行する。なお、この処理は、図19に示す状態遷移モデルに示す細い実線および一点鎖線のラインc,dの態遷移処理、さらに各状態から状態Lへの遷移に対応する。
「ブロックを消費しない遷移」は、図32に示すフローのステップS323において処理を実行する。なお、この処理は、図19に示す状態遷移モデルに示す細い実線および一点鎖線のラインc,dの態遷移処理、さらに各状態から状態Lへの遷移に対応する。
図32に示すフローチャートの各ステップの処理について説明する。
ステップS321~S325は、作成中の区間についてのループ、すなわち、図18に示すトラッキング部165の作成中区間管理部171=1~n各々についてのループである。このループの中で、ステップS322のブロックを消費する遷移を1回だけ発生させる。その結果、区間が延長されたり自己ループの回数が増加したりする。そして、それらの値を用いて、ステップS323~S324において、ブロックを消費しない遷移を、可能な限り繰り返す。
ステップS321~S325は、作成中の区間についてのループ、すなわち、図18に示すトラッキング部165の作成中区間管理部171=1~n各々についてのループである。このループの中で、ステップS322のブロックを消費する遷移を1回だけ発生させる。その結果、区間が延長されたり自己ループの回数が増加したりする。そして、それらの値を用いて、ステップS323~S324において、ブロックを消費しない遷移を、可能な限り繰り返す。
ステップS324において、これ以上の遷移ができなくなったと判定すると、最後にステップS325において作成中区間のループを閉じる。
[4-3.ブロックを消費する遷移について]
次に、ステップS322の「ブロックを消費する遷移」の詳細シーケンスについて、図33に示すフローチャートを用いて説明する。
ステップS331において、図18に示す作成中区間管理部171の区間情報172に含まれる図20に示す「(2)内部状態」に応じた分岐を行なう。
次に、ステップS322の「ブロックを消費する遷移」の詳細シーケンスについて、図33に示すフローチャートを用いて説明する。
ステップS331において、図18に示す作成中区間管理部171の区間情報172に含まれる図20に示す「(2)内部状態」に応じた分岐を行なう。
ステップS331の分岐は、以下の処理を行なうものである。
現在の状態が状態A,B,C,D,G,H,Jの場合は、ステップS332に進み、その他の状態E,F,I,K,Lの場合は、ステップS332に進まず、「ブロックを消費する遷移」を終了することを意味している。
現在の状態が状態A,B,C,D,G,H,Jの場合は、ステップS332に進み、その他の状態E,F,I,K,Lの場合は、ステップS332に進まず、「ブロックを消費する遷移」を終了することを意味している。
なお、現在の状態が状態A,B,C,D,G,H,Jの場合は、ステップS332に進み、各状態で「ブロックを消費する遷移」を実行することを意味する。
すなわち、
ステップS331において現在の内部状態が状態Aであると判定した場合は、ステップS332に進み、状態Aに対応する「ブロックを消費する遷移A」を実行する。
また、ステップS331による現在の状態が状態Bであると判定した場合は、ステップS332に進み、状態Bに対応する「ブロックを消費する遷移B」を実行する。
その他の状態C,D,G,H,Jについても同様、ステップS332に進み、各状態対応の「ブロックを消費する遷移」を実行することを意味する。
すなわち、
ステップS331において現在の内部状態が状態Aであると判定した場合は、ステップS332に進み、状態Aに対応する「ブロックを消費する遷移A」を実行する。
また、ステップS331による現在の状態が状態Bであると判定した場合は、ステップS332に進み、状態Bに対応する「ブロックを消費する遷移B」を実行する。
その他の状態C,D,G,H,Jについても同様、ステップS332に進み、各状態対応の「ブロックを消費する遷移」を実行することを意味する。
なお、ステップS331において、内部状態がE,F,I,K,Lのときは、図19に示す状態遷移モデルからも理解されるように、ラインa,bで示す「ブロックを消費する遷移」が定義されていないため、ステップS332に進まず、処理を終える。
次に、図33に示すフローのステップS331において、内部状態A,B,C,D,G,H,Jのいずれかと判定され、ステップS332で実行する以下の各遷移について、図34~図40の各フローに従って順次説明する。
(1)ブロックを消費する遷移A:図34、
(2)ブロックを消費する遷移B:図35、
(3)ブロックを消費する遷移C:図36、
(4)ブロックを消費する遷移D:図37、
(5)ブロックを消費する遷移G:図38、
(6)ブロックを消費する遷移H:図39、
(7)ブロックを消費する遷移J:図40、
(1)ブロックを消費する遷移A:図34、
(2)ブロックを消費する遷移B:図35、
(3)ブロックを消費する遷移C:図36、
(4)ブロックを消費する遷移D:図37、
(5)ブロックを消費する遷移G:図38、
(6)ブロックを消費する遷移H:図39、
(7)ブロックを消費する遷移J:図40、
まず、図34に示すフローチャートを参照して「ブロックを消費する遷移A」のシーケンスについて説明する。
内部状態Aは、図19を参照して説明したように[区間生成済み]を示す内部状態である。
まず、ステップS341において、図20の区間情報172に登録された「(3)始端フレーム番号」と、図18のトラッキング部1645の登録データである現フレーム番号175を比較して、
始端フレーム番号≦現フレーム番号
上記式が成立するか否かを判定する。
この判定処理は、始端の登録処理において未来のタイムスタンプが指定されている場合に、その区間のトラッキングの開始を延期するためである。現フレーム番号が始端フレーム番号以上の場合のみ、ステップS342に進む。そうでない場合は、すべての処理をスキップし、処理を終了する。
内部状態Aは、図19を参照して説明したように[区間生成済み]を示す内部状態である。
まず、ステップS341において、図20の区間情報172に登録された「(3)始端フレーム番号」と、図18のトラッキング部1645の登録データである現フレーム番号175を比較して、
始端フレーム番号≦現フレーム番号
上記式が成立するか否かを判定する。
この判定処理は、始端の登録処理において未来のタイムスタンプが指定されている場合に、その区間のトラッキングの開始を延期するためである。現フレーム番号が始端フレーム番号以上の場合のみ、ステップS342に進む。そうでない場合は、すべての処理をスキップし、処理を終了する。
ステップS342は、接続可能な方向点が存在するか、または、「登録済み」属性を持った区間であるかを判定する。具体的には、図18に示すトラッキング部165の作成中区間171の区間情報172中の図20に示す「(12)接続可能方向点リスト」が空でないか、または、「(7)登録済み」フラグが真かどうかを判別する(以降の状態遷移においても同様)。
ステップS342において、どちらかの条件を満たすと判定したときは、ステップS343の区間延長処理へ分岐する。これは、図19に示す状態遷移モデルにおいて、状態Aの自己ループを実行することに相当する。
ステップS343の区間延長処理では、作成中区間に方向点を接続する等の処理を行なうが、詳細は後述する。
ステップS343の区間延長処理では、作成中区間に方向点を接続する等の処理を行なうが、詳細は後述する。
一方、ステップS342において、「(12)接続可能方向点リスト」が空で、かつ、「(7)登録済み」フラグが偽であると判定した場合は、ステップS344へ分岐する。これは、図19において状態Aから状態Bへの遷移処理を行なうことに相当する。
ステップS344では、図20に示す区間情報172の「(10)途切れカウンタ」の値を増加させる。増加する値は途切れカウンタが何を表わしているかによって異なり、ブロック数を表わしているのであれば1、フレーム数を表わしているのであればB(Bは1ブロックあたりのフレーム数)である。
さらに、ステップS345において、図20に示す区間情報172の「(1)内部状態」をBに変化させる。
さらに、ステップS345において、図20に示す区間情報172の「(1)内部状態」をBに変化させる。
次に、図35に示すフローチャートを参照して「ブロックを消費する遷移B」のシーケンスについて説明する。
内部状態Bは、図19を参照して説明したように[途切れ中(始端確定前)]を示す内部状態である。
内部状態Bは、図19を参照して説明したように[途切れ中(始端確定前)]を示す内部状態である。
まず、ステップS351において、接続可能な方向点が存在するかを判定する。存在するなら、ステップS352の区間延長処理に分岐し、その後、ステップS353で、状態Aに遷移する。この遷移は、図19の状態Bから状態Aへの遷移に対応する。なお、ステップS352の区間延長処理については後述する。
一方、ステップS351において、接続可能な方向点が存在しないと判定されると、ステップS354へ分岐する。これは、図19に示す状態遷移モデルにおいて状態Bの自己ループに対応する。なお、ステップS354の処理は、図34のステップS344の処理と同一の処理である。
次に、図36に示すフローチャートを参照して「ブロックを消費する遷移C」のシーケンスについて説明する。
内部状態Cは、図19を参照して説明したように[始端確定済み]を示す内部状態である。この図36に示す処理は、図34に示す「ブロックを消費する遷移A」と類似しているが、ステップS341に相当する分岐は不要であるため行なわない。また、ステップS342に相当する判別処理は、図36におけるステップS361の処理である。
内部状態Cは、図19を参照して説明したように[始端確定済み]を示す内部状態である。この図36に示す処理は、図34に示す「ブロックを消費する遷移A」と類似しているが、ステップS341に相当する分岐は不要であるため行なわない。また、ステップS342に相当する判別処理は、図36におけるステップS361の処理である。
ステップS361では、図18に示すトラッキング部165の作成中区間171の区間情報172中の図20に示す「(12)接続可能方向点リスト」が空でないか、または、「(7)登録済み」フラグが真かどうかを判別する。
いずれかの条件を満たす場合は、ステップS362に進む。この処理は、図19の状態Cの自己ループに対応する。
いずれかの条件を満たす場合は、ステップS362に進む。この処理は、図19の状態Cの自己ループに対応する。
一方、ステップS361において、「(12)接続可能方向点リスト」が空で、かつ、「(7)登録済み」フラグが偽であると判定した場合は、ステップS363に分岐する。これは、図19において状態Cから状態Dへの遷移処理を行なうことに相当する。
ステップS363では、図20に示す区間情報172の「10」途切れカウンタ」の値を増加させる。増加する値は途切れカウンタが何を表わしているかによって異なり、ブロック数を表わしているのであれば1、フレーム数を表わしているのであればB(Bは1ブロックあたりのフレーム数)である。
さらに、ステップS364において、図20に示す区間情報172の「(1)内部状態」をDに変化させる。
さらに、ステップS364において、図20に示す区間情報172の「(1)内部状態」をDに変化させる。
次に、図37に示すフローチャートを参照して「ブロックを消費する遷移D」のシーケンスについて説明する。
内部状態Dは、図19を参照して説明したように[途切れ中(抽出フィルタ推定前)]を示す内部状態である。この図37に示す処理は、図35に示す「ブロックを消費する遷移B」と類似している。
内部状態Dは、図19を参照して説明したように[途切れ中(抽出フィルタ推定前)]を示す内部状態である。この図37に示す処理は、図35に示す「ブロックを消費する遷移B」と類似している。
まず、ステップS371において、接続可能な方向点が存在するかを判定する。存在するなら、ステップS372の区間延長処理に分岐し、その後、ステップS373で、状態Cに遷移する。この遷移は、図19の状態Dから状態Cへの遷移に対応する。なお、ステップS372の区間延長処理については後述する。
一方、ステップS371において、接続可能な方向点が存在しないと判定されると、ステップS374へ分岐し、途切れカウンタのカウント値を増加させる。これは、図19に示す状態遷移モデルにおいて状態Dの自己ループに対応する。なお、ステップS374の処理は、図34のステップS344の処理と同一の処理である。
次に、図38に示すフローチャートを参照して「ブロックを消費する遷移G」のシーケンスについて説明する。
内部状態Gは、図19を参照して説明したように[抽出フィルタ推定済み]を示す内部状態である。
内部状態Gは、図19を参照して説明したように[抽出フィルタ推定済み]を示す内部状態である。
ステップS381において、接続可能な方向点が存在するか、または、「登録済み」属性を持った区間であるかを判定する。どちらかの条件を満たすときは、ステップS382の区間延長処理へ分岐する。これは、図19において、状態Gの自己ループに相当する。
ステップS382の区間延長処理の後、ステップS383において抽出結果の生成を行なう。この処理の詳細は後述する。
ステップS382の区間延長処理の後、ステップS383において抽出結果の生成を行なう。この処理の詳細は後述する。
一方、ステップS381において、接続可能な方向点が存在せず、かつ、「登録済み」属性を持った区間でないと判定した場合は、ステップS384へ分岐し、途切れカウンタのカウント値を増加させる。これは、図19において状態Gから状態Hへの遷移に相当する。
その後、ステップS385において、図20に示す区間情報172の「(6)ハングオーバ付き終端フレーム番号」に、図18に示す現フレーム番号176を代入する。
さらに、ステップS386において、抽出結果の生成を行なう。この処理については後述する。最後に、ステップS387において、図20に示す区間情報172の「(1)内部状態」を状態Hに変化させる。
さらに、ステップS386において、抽出結果の生成を行なう。この処理については後述する。最後に、ステップS387において、図20に示す区間情報172の「(1)内部状態」を状態Hに変化させる。
次に、図39に示すフローチャートを参照して「ブロックを消費する遷移H」のシーケンスについて説明する。
内部状態Hは、図19を参照して説明したように[途切れ中(終端ハングオーバ以前)]を示す内部状態である。
この処理は、途切れ中の処理であるが、[途切れ中(始端確定済み)]を示す状態Bや、[途切れ中(抽出フィルタ推定前)]を示す状態Dと異なり、抽出結果の生成を行なうことが特徴である。
内部状態Hは、図19を参照して説明したように[途切れ中(終端ハングオーバ以前)]を示す内部状態である。
この処理は、途切れ中の処理であるが、[途切れ中(始端確定済み)]を示す状態Bや、[途切れ中(抽出フィルタ推定前)]を示す状態Dと異なり、抽出結果の生成を行なうことが特徴である。
ステップS391において、接続可能な方向点が存在するか判定し、条件を満たすときは、ステップS392の区間延長処理へ分岐する。これは、図19において、状態Hから状態Gへの遷移に対応する。
ステップS392の区間延長処理の後、ステップS393において、抽出結果の生成を行なう。この処理の詳細は後述する。
その後、ステップS394において、図20に示す区間情報172の「(1)内部状態」を状態Gに変化させる。
ステップS392の区間延長処理の後、ステップS393において、抽出結果の生成を行なう。この処理の詳細は後述する。
その後、ステップS394において、図20に示す区間情報172の「(1)内部状態」を状態Gに変化させる。
一方、ステップS391において、接続可能な方向点が存在しないと判定した場合は、ステップS395へ分岐し、途切れカウンタのカウント値を増加させる。これは、図19において状態Hの自己ループに相当する。
その後、ステップS396において、図20に示す区間情報172の「(6)ハングオーバ付き終端フレーム番号」に、図18に示す現フレーム番号176を代入する。
さらに、ステップS397において、抽出結果の生成を行なう。この処理については後述する。
さらに、ステップS397において、抽出結果の生成を行なう。この処理については後述する。
ここで、図38の「ブロックを消費する遷移G」のステップS381と、図39の「ブロックを消費する遷移H」のステップS391において、各ステップの条件を満たさない場合の分岐後の処理(図38のステップS384~S387、図39のステップS395~S397)について補足する。
これらの処理において、図20に示す区間情報172の「(6)ハングオーバ付き終端フレーム番号」は更新されるが、「(5)終端フレーム番号」は更新されない。すなわち、状態Hを通過すると、終端フレーム番号は一定だが、ハングオーバ付き終端フレーム番号は値が増加していく。そして状態Hから状態Jへ遷移したときに、「(6)ハングオーバ付き終端フレーム番号」は、「(5)終端フレーム番号」に対して、ちょうど所定の値だけ進んだ値が格納されている。
次に、図40に示すフローチャートを参照して「ブロックを消費する遷移J」のシーケンスについて説明する。
内部状態Jは、図19を参照して説明したように[途切れ中(終端ハングオーバ以降)]を示す内部状態である。
内部状態Jは、図19を参照して説明したように[途切れ中(終端ハングオーバ以降)]を示す内部状態である。
この処理は図39を参照して説明した「ブロックを消費する遷移H」と類似しているが、終端ハングオーバ(図10の時間t7)を過ぎているため、自己ループでは抽出結果を生成しないという点が異なる。
ステップS401において、接続可能な方向点が存在するか判定し、存在する満たす場合は、ステップS402の区間延長処理へ分岐する。これは、図19において、状態Jから状態Gへの遷移処理に対応する。
ステップSS402の区間延長処理の後、ステップS403において、抽出結果の生成を行なう。この処理の詳細は後述する。ここで生成される抽出結果は、1ブロック分とは限らず、状態Jで自己ループした分も生成される。例えば、状態Jで自己ループが2回行なわれた後で状態Gに遷移した場合は、ステップS403において、3ブロック分(つまり3Bフレーム分の)抽出結果を生成する。その後、ステップS404において、図20に示す区間情報172の「(1)内部状態」を状態Gに変化させる。
ステップSS402の区間延長処理の後、ステップS403において、抽出結果の生成を行なう。この処理の詳細は後述する。ここで生成される抽出結果は、1ブロック分とは限らず、状態Jで自己ループした分も生成される。例えば、状態Jで自己ループが2回行なわれた後で状態Gに遷移した場合は、ステップS403において、3ブロック分(つまり3Bフレーム分の)抽出結果を生成する。その後、ステップS404において、図20に示す区間情報172の「(1)内部状態」を状態Gに変化させる。
一方、ステップS401において、接続可能な方向点が存在しないと判定した場合は、ステップS405へ進み、途切れカウンタを増加させる。これは、図19においては、状態Jの自己ループに相当する。
次に、図34~図40の各処理において実行している「区間延長処理」の詳細シーケンスについて、図41に示すフローチャートを参照して説明する。
「区間延長処理」は、作成中区間に新たな方向点を連結する処理である。そのためには、接続可能な方向点を1個にまとめる必要がある。
ステップS411において、接続可能な方向点の個数に従って分岐を行なう。具体的には、図20に示す区間情報172中の「(12)接続可能点方向点リスト」に登録された要素数によって分岐する。要素数が1個のときは、そのままネステップS414へ進むが、0個の場合と2個以上の場合は、それぞれステップS412、ステップS413に分岐する。
「区間延長処理」は、作成中区間に新たな方向点を連結する処理である。そのためには、接続可能な方向点を1個にまとめる必要がある。
ステップS411において、接続可能な方向点の個数に従って分岐を行なう。具体的には、図20に示す区間情報172中の「(12)接続可能点方向点リスト」に登録された要素数によって分岐する。要素数が1個のときは、そのままネステップS414へ進むが、0個の場合と2個以上の場合は、それぞれステップS412、ステップS413に分岐する。
ステップS412に分岐するのは、その作成中区間が「登録済み」属性を持っている場合に限定される。この場合、図20の区間情報172に登録された「(9)平均方向」と同じ方向を持つダミーの方向点を作成する。言い換えると、「登録済み」属性を持っている区間については、接続可能な方向点が存在しなくても、自分自身で区間を延長する。それによって、終端登録処理の前に区間が途切れてしまうのを防ぐ。
また、ステップS413に分岐した場合は、接続可能な方向点の間で方向を平均し、その値を方向とするダミーの方向点を作成する。
ステップS411~S413の処理によって、接続可能な方向点が1個にまとめられると、ステップS414において、その方向点を用いて、図20の区間情報172に登録された「(9)平均方向」を更新する。今までの平均方向の値をm、新たな1つの方向点の方向をd、方向点カウンタの値をcとすると、新たな平均方向m'は、以下の式で示すことができる。なお、方向点カウンタがブロック数を表している場合と、フレーム数を表している場合とでは、式が以下のように異なる。
(方向点カウンタがブロック数を表わしている場合)
m'=(cm+d)/(c+1)
(方向点カウンタがフレーム数を表わしている場合)
m'=(cm+Bd)/(c + B)
ただし、Bは1ブロックあたりのフレーム数である。
(方向点カウンタがブロック数を表わしている場合)
m'=(cm+d)/(c+1)
(方向点カウンタがフレーム数を表わしている場合)
m'=(cm+Bd)/(c + B)
ただし、Bは1ブロックあたりのフレーム数である。
次に、ステップS415において、図20の区間情報172に登録された「(8)方向点カウンタ」を増加させる。増加させる量は、方向点カウンタがブロック数を表わしている場合は1、フレーム数を表わしている場合はBである。
次のステップS416は、図20の区間情報172に登録された「(10)途切れカウンタ」のリセットである。すなわち、区間延長処理を含む遷移が行なわれている限りは、途切れカウンタは[0]に維持される。
次のステップS417において、図20の区間情報172に登録された「(5)終端フレーム番号」と、「(6)ハングオーバ付き終端フレーム番号」とを更新する。具体的には、両方に、図18のトラッキング部165の保持する現フレーム番号175を代入する。
最後に、ステップS418において、図21に示す音源抽出部173の保持する「(4)フィルタ適用終端フレーム番号」を更新する。具体的には、このメンバーにも図18のトラッキング部165の保持する現フレーム番号175を代入する。
次に、図38~図40に示すフローにおいて実行される「抽出結果生成」処理の詳細シーケンスについて、図42に示すフローチャートを参照して説明する。
ステップS421は、基本的に、図21に示した音源抽出部173の管理情報として登録された「(3)フィルタ適用始端フレーム番号」から「(4)フィルタ適用終端フレーム番号」までの観測信号に対して抽出フィルタ等を適用する処理である。詳細は後述する。
ステップS422は、ステップS421におけるフィルタ適用結果に対して、さらに特徴量への変換を行なう処理である。これも詳細は後述する。
ステップS421は、基本的に、図21に示した音源抽出部173の管理情報として登録された「(3)フィルタ適用始端フレーム番号」から「(4)フィルタ適用終端フレーム番号」までの観測信号に対して抽出フィルタ等を適用する処理である。詳細は後述する。
ステップS422は、ステップS421におけるフィルタ適用結果に対して、さらに特徴量への変換を行なう処理である。これも詳細は後述する。
次に、ステップS421のフィルタ適用処理の詳細シーケンスについて、図43に示すフローチャートを参照して説明する。フィルタを適用する範囲は、上述のように、基本的には図21に示した音源抽出部173の管理情報として登録された「(3)フィルタ適用始端フレーム番号」から「(4)フィルタ適用終端フレーム番号」までの観測信号であるが、その作成中区間において初回に適用されるときだけは、デルタ特徴量の生成のために抽出結果を数フレーム分、多く生成する必要がある。このため、図22に示す特徴量変換部174の管理する「(3)初回フラグ」に応じて処理を変更する。
ステップS431では、このため、初回フラグの値を参照して、処理の分岐を行なう。
図22に示す特徴量変換部174の管理する「(3)初回フラグ」が「真」、すなわちフィルタ適用が初回であるならば、ステップS432へ分岐する。その場合、今回の適用開始フレーム番号である「begin_frame」の値として、図21に示した音源抽出部173の管理情報として登録された「(3)フィルタ適用始端フレーム番号」から所定のオフセットを引いた値を用いる。ただし、システム起動直後など、オフセットを引くと「begin_frame」が負の値となってしまう場合は、「0」を代入する。オフセットの値は、デルタ特徴量として何を用いるかによって異なるが、余分を含んだ値(例えば、10)を用い、図42のフローにおける後段ステップであるステップS422の特徴量変換において不要なフレームを削除してもよい。
ステップS431では、このため、初回フラグの値を参照して、処理の分岐を行なう。
図22に示す特徴量変換部174の管理する「(3)初回フラグ」が「真」、すなわちフィルタ適用が初回であるならば、ステップS432へ分岐する。その場合、今回の適用開始フレーム番号である「begin_frame」の値として、図21に示した音源抽出部173の管理情報として登録された「(3)フィルタ適用始端フレーム番号」から所定のオフセットを引いた値を用いる。ただし、システム起動直後など、オフセットを引くと「begin_frame」が負の値となってしまう場合は、「0」を代入する。オフセットの値は、デルタ特徴量として何を用いるかによって異なるが、余分を含んだ値(例えば、10)を用い、図42のフローにおける後段ステップであるステップS422の特徴量変換において不要なフレームを削除してもよい。
ステップS431において、図22に示す特徴量変換部174の管理する(3)初回フラグが「偽」、すなわちフィルタ適用が初回でないならば、ステップS433へ分岐する。その場合、「begin_frame」には、図21に示した音源抽出部173の管理情報として登録された「(3)フィルタ適用始端フレーム番号」を代入する。
ステップS433では、今回の適用終端フレーム番号である「end_frame」に、図21に示した音源抽出部173の管理情報として登録された「(4)フィルタ適用終端フレーム番号」を代入する。
こうして今回のフィルタ適用範囲が求まったら、その範囲の観測信号に対してフィルタを適用する。
こうして今回のフィルタ適用範囲が求まったら、その範囲の観測信号に対してフィルタを適用する。
ステップS435は、観測信号に対して抽出フィルタを適用する処理である。具体的には、
begin_frame≦t≦end_frame
を満たすフレームt、および全周波数ビンω
に対して、前記した式[1.2]に従った処理を行なう。
begin_frame≦t≦end_frame
を満たすフレームt、および全周波数ビンω
に対して、前記した式[1.2]に従った処理を行なう。
ただし、式[1.2]において、
W(ω)は抽出フィルタであり、このフィルタの推定方法については後述する。X(ω,t)とY(ω,t)はそれぞれ、観測信号と抽出フィルタ適用結果である。
W(ω)は抽出フィルタであり、このフィルタの推定方法については後述する。X(ω,t)とY(ω,t)はそれぞれ、観測信号と抽出フィルタ適用結果である。
こうして求めた抽出フィルタ適用結果Y(ω,t)は、その区間の目的音が強調されたものになっているが、それ以外の成分として妨害音の消し残りも含まれている。例えば、残響のある環境においては、妨害音の残響成分は除去しにくい。また、本開示の処理では抽出フィルタの推定を発話区間の途中で行なうため、その時点より後で鳴り始めた妨害音については、抽出フィルタW(ω)を適用しても除去されない。
そこで、それらの消し残りを一層小さくするため、必要に応じて、ステップS436~S437の処理を行なう。なお、ステップS436と、ステップS437とは互いに独立した処理であるため、一方のみを実行してもよい。
ステップS436の消し残り除去は、
1)消し残りの推定と、
2)消し残りの減算、
これらの2つの処理からなる。
1)消し残りの推定と、
2)消し残りの減算、
これらの2つの処理からなる。
「消し残りの推定」とは、
begin_frame≦t≦end_frame
の範囲の観測信号に対して全死角空間フィルタを適用する処理である。
具体的には、以下に示す式[2.1]に従った処理を行なう。
begin_frame≦t≦end_frame
の範囲の観測信号に対して全死角空間フィルタを適用する処理である。
具体的には、以下に示す式[2.1]に従った処理を行なう。
なお、上記式において、
N(ω,t):全死角空間フィルタ、
V(ω,t):全死角空間フィルタの適用結果、
である。
全死角空間フィルタの推定方法については後述する。このフィルタは、学習で使用した観測信号に含まれる全ての音源の方向に死角を形成したものであるため、その適用結果は、学習で使用した観測信号には含まれなかった、しかし、実際の観測信号:X(ω,t)には含まれる音源に由来する成分と、残響等の除去困難な成分とからなる。
N(ω,t):全死角空間フィルタ、
V(ω,t):全死角空間フィルタの適用結果、
である。
全死角空間フィルタの推定方法については後述する。このフィルタは、学習で使用した観測信号に含まれる全ての音源の方向に死角を形成したものであるため、その適用結果は、学習で使用した観測信号には含まれなかった、しかし、実際の観測信号:X(ω,t)には含まれる音源に由来する成分と、残響等の除去困難な成分とからなる。
一方、消し残りの減算とは、抽出フィルタ適用結果Y(ω,t)から消し残りV(ω,t)を減算(subtract)することである。減算の方式としてスペクトル減算(spectral subtraction)を用いる場合は、式[2.2]~[2.3]に対応する処理を行なう。すなわち、減算結果をZ(ω,t)とすると、Z(ω,t)の大きさ(の二乗)を式[2.2]で計算し、そうして求めた|Z(ω,t)|に対して、抽出フィルタ適用結果Y(ω,t)の位相であるY(ω,t)/|Y(ω,t)|を乗じたものをZ(ω,t)とする。ただし、式[2.2]において、α,βは共に正の実数であり、αは1付近の値、βは0付近の値を用いる。また、max(a,b)は二つの引数の内で大きい方を採用することを表わす関数であり、式[2.2]においては第1引数が小さくなり過ぎる(特に負の値になる)のを防ぐために用いている。
ステップS437の時間周波数マスキングとは、各フレーム・各周波数ビンにおいて、抽出フィルタ適用結果Y(ω,t)の中に目的音以外の信号がどの程度残っているかを推定し、その度合いに応じて係数を乗じることで、結果として目的音のみを残す処理である。すなわち、目的音以外の信号が強く残っているフレーム・周波数ビンには0に近い係数を、逆に、目的音以外の信号がほとんど残っていないフレーム・周波数ビンには1に近い係数を乗じる。その係数をマスクと呼び、マスクを適用することをマスキングという。マスクの推定方法については後述する。マスクの値をM(ω,t)とすると、マスキングは式[2.4]に相当する処理である。
なお、ステップS436をスキップした場合は、Z(ω,t)にY(ω,t)を代入した後で式[2.4]を適用する。
以上で、フィルタ適用処理の説明を終わる。
なお、ステップS436をスキップした場合は、Z(ω,t)にY(ω,t)を代入した後で式[2.4]を適用する。
以上で、フィルタ適用処理の説明を終わる。
図42の抽出結果生成処理のフローチャートに示すステップS422の特徴量変換の詳細シーケンスについて、図44に示すフローチャートを参照して説明する。
ステップS441において、音源抽出部173の出力を、音声認識で使用される特徴量へと変換する処理を行なう。すなわち、音源抽出部173の出力であるスペクトルを音声認識部156におけるデコーダが音声認識に適用する特徴量であるメル周波数ケプストラム係数(Mel-Frequency Cepstral Coefficients:MFCC)に変換する処理を行なう。変換はフレームごとに行なわれ、フレームtにおけるフィルタ適用結果Z(1,t)~Z(M,t)から、1フレーム分のMFCCであるCep(1,t)~Cep(K,t)を生成する。ただし、M,Kはそれぞれ、周波数ビンの個数とケプストラムの次元数である。
ステップS441において、音源抽出部173の出力を、音声認識で使用される特徴量へと変換する処理を行なう。すなわち、音源抽出部173の出力であるスペクトルを音声認識部156におけるデコーダが音声認識に適用する特徴量であるメル周波数ケプストラム係数(Mel-Frequency Cepstral Coefficients:MFCC)に変換する処理を行なう。変換はフレームごとに行なわれ、フレームtにおけるフィルタ適用結果Z(1,t)~Z(M,t)から、1フレーム分のMFCCであるCep(1,t)~Cep(K,t)を生成する。ただし、M,Kはそれぞれ、周波数ビンの個数とケプストラムの次元数である。
次に、ステップS442において、近接するフレーム間のMFCCを用いてデルタ特徴量を計算する。区間の先頭付近のフレームについては、デルタ特徴量が計算できないため、そのフレーム自体を削除する。
ステップS444~S446は、その作成中区間において初回の特徴量変換の場合のみ実行される処理である。そのため、ステップS443において初回フラグ(図22に示す特徴量変換部174の管理データである「(3)初回フラグ」)の値を調べ、値が初回であることを示す[真]の場合のみステップS444へ進み、そうでなければステップS447へ進む。
ステップS444の「フレーム数の調整」とは、先に図43を参照して説明したフィルタ適用処理の初回実行時に追加されたフレームを除去する処理である。例えば、ステップS431の時点で、フィルタ適用始端フレーム番号(図21参照)からフィルタ適用終端フレーム番号(図21参照)までのフレーム数がTであるとする。初回は、ステップS432に分岐するため、フレーム数は、
T+offset
に増加する。その後、ステップS442において、デルタ特徴量が計算できないフレームが除去されるが、ステップS444においてフレーム数が依然としてTを超えていたら、先頭のフレームを除去することでフレーム数をTに合わせる。
T+offset
に増加する。その後、ステップS442において、デルタ特徴量が計算できないフレームが除去されるが、ステップS444においてフレーム数が依然としてTを超えていたら、先頭のフレームを除去することでフレーム数をTに合わせる。
次にステップS445において、MFCCの平均と標準偏差とを計算し、計算結果を、図22に示す特徴量変換部174の保持データ「(1)MFCC平均値」、「(2)MFCC標準偏差」として記録する。なお、計算結果として得られる平均も標準偏差もベクトルであり、その次元数はMFCCと同じくKである。なお、平均や標準偏差を計算する範囲は、例えば図10に示す例では、観測信号108の範囲となる。
初回限定の処理の最後として、ステップS446において初回フラグ(図22参照)に初回でないことを示す[偽]の値を代入する。
ステップS447の「特徴量の正規化」は、ステップS441で計算されたMFCCから、図22に示す特徴量変換部174の管理データとして保持された(1)MFCC平均値を減算して(ケプストラム平均正規化)からMFCC標準偏差(図22(2))で除算する(ケプストラム分散正規化)処理である。必要に応じて一方のみを実行してもよい。
こうして生成された音声認識に適用する特徴量であるメル周波数ケプストラム係数(MFCC)とデルタ特徴量とは、フレームごとに1本のベクトルとして表現される。これらのデータが、ステップS448において、図16に示すフロントエンド部153の抽出結果バッファリング部166に蓄積される。抽出結果バッファリング部166の構成は図13の抽出結果バッファリング部135に示した通りであり、区間ごとに異なるバッファ135a~cを持っている。
ステップS448では、トラッキング部165の作成中区間管理部171の管理する区間情報172(図20)に保持された作成中区間の((2)区間ID)と、抽出結果バッファリング部166の各バッファ(図13のバッファ135a~c)が保持している区間情報134a~c内の区間IDとを比較し、一致するものがあれば、そのバッファの末尾に、今回生成された特徴量を追加すると共に、抽出結果バッファリング部166側の区間情報を更新する。一致するものがない場合は、新たなバッファを抽出結果バッファリング部の中に生成し、そこに特徴量と区間情報とを格納する。
以上で、「ブロックを消費する遷移」に関する説明をすべて終える。
以上で、「ブロックを消費する遷移」に関する説明をすべて終える。
[4-4.ブロックを消費しない遷移について]
次に、図32に示す区間更新処理におけるステップS323の「ブロックを消費しない遷移」について、図45に示すフローチャートを参照して説明する。
次に、図32に示す区間更新処理におけるステップS323の「ブロックを消費しない遷移」について、図45に示すフローチャートを参照して説明する。
ステップS451において、図18に示す作成中区間管理部171の区間情報172に含まれる図20に示す(2)内部状態に応じた分岐を行なう。
ステップS451の分岐は、以下の処理を行なうものである。
現在の状態が状態A,B,C,D,G,H,I,Jの場合は、ステップS452に進み、その他の状態E,F,K,Lの場合は、ステップS452に進まず、「ブロックを消費しない遷移」を終了することを意味している。
現在の状態が状態A,B,C,D,G,H,I,Jの場合は、ステップS452に進み、その他の状態E,F,K,Lの場合は、ステップS452に進まず、「ブロックを消費しない遷移」を終了することを意味している。
なお、現在の状態が状態A,B,C,D,G,H,I,Jの場合は、ステップS452に進み、各状態で「ブロックを消費しない遷移」を実行することを意味する。
すなわち、
ステップS451において現在の内部状態が状態Aであると判定した場合は、ステップS452に進み、状態Aに対応する「ブロックを消費しない遷移A」を実行する。
また、ステップS451による現在の状態が状態Bであると判定した場合は、ステップS452に進み、状態Bに対応する「ブロックを消費しない遷移B」を実行する。
その他の状態C,D,G,H,I,Jについても同様、ステップS452に進み、各状態対応の「ブロックを消費しない遷移」を実行することを意味する。
すなわち、
ステップS451において現在の内部状態が状態Aであると判定した場合は、ステップS452に進み、状態Aに対応する「ブロックを消費しない遷移A」を実行する。
また、ステップS451による現在の状態が状態Bであると判定した場合は、ステップS452に進み、状態Bに対応する「ブロックを消費しない遷移B」を実行する。
その他の状態C,D,G,H,I,Jについても同様、ステップS452に進み、各状態対応の「ブロックを消費しない遷移」を実行することを意味する。
なお、ステップS451において、内部状態がE,F,K,Lのときは、図19に示す状態遷移モデルからも理解されるように、ラインc,dで示す「ブロックを消費しない遷移」が定義されていないため、ステップS452に進まず、処理を終える。
次に、図45に示すフローのステップS451において、内部状態A,B,C,D,G,H,I,Jのいずれかと判定され、ステップS452で実行する以下の各遷移について、図46~図53の各フローに従って順次説明する。
(1)ブロックを消費しない遷移A:図46、
(2)ブロックを消費しない遷移B:図47、
(3)ブロックを消費しない遷移C:図48、
(4)ブロックを消費しない遷移D:図49、
(5)ブロックを消費しない遷移G:図50、
(6)ブロックを消費しない遷移H:図51、
(7)ブロックを消費しない遷移I:図52、
(8)ブロックを消費しない遷移J:図53、
(1)ブロックを消費しない遷移A:図46、
(2)ブロックを消費しない遷移B:図47、
(3)ブロックを消費しない遷移C:図48、
(4)ブロックを消費しない遷移D:図49、
(5)ブロックを消費しない遷移G:図50、
(6)ブロックを消費しない遷移H:図51、
(7)ブロックを消費しない遷移I:図52、
(8)ブロックを消費しない遷移J:図53、
まず、図46に示すフローチャートを参照して「ブロックを消費しない遷移A」のシーケンスについて説明する。
内部状態Aは、図19を参照して説明したように[区間生成済み]を示す内部状態である。
まず、ステップS461において、図20の区間情報172に登録された「(3)始端フレーム番号」と、図18のトラッキング部165の登録データである現フレーム番号175を比較して、
始端フレーム番号≦現フレーム番号
上記式が成立するか否かを判定する。
この判定処理は、始端の登録処理において未来のタイムスタンプが指定されている場合に、その区間のトラッキングの開始を延期するためである。現フレーム番号が始端フレーム番号以上の場合のみ、ステップS462に進む。そうでない場合は、すべての処理をスキップし、処理を終了する。
内部状態Aは、図19を参照して説明したように[区間生成済み]を示す内部状態である。
まず、ステップS461において、図20の区間情報172に登録された「(3)始端フレーム番号」と、図18のトラッキング部165の登録データである現フレーム番号175を比較して、
始端フレーム番号≦現フレーム番号
上記式が成立するか否かを判定する。
この判定処理は、始端の登録処理において未来のタイムスタンプが指定されている場合に、その区間のトラッキングの開始を延期するためである。現フレーム番号が始端フレーム番号以上の場合のみ、ステップS462に進む。そうでない場合は、すべての処理をスキップし、処理を終了する。
ステップS462は、終端の登録処理(後述)によって終端が予約されているかのチェックである。図20の区間情報172の登録情報である「(11)終端予定フレーム番号」が未定義値である場合は、そもそも終端が予約されていないため、ステップS463に進む。また、「(11)終端予定フレーム番号」に未定義値以外が入っていても、それが、図18のトラッキング部165の登録データである現フレーム番号175より大きい場合は、終了予定時刻にまだ達していないため、同様にステップS463に進む。
トラッキング部165の登録データである現フレーム番号175が、図20の区間情報172の登録情報である「(11)終端予定フレーム番号」以上の場合のみ、ステップS465に進む。これは、図19において、状態Aから状態Eへの遷移を表わしており、図20の区間情報中の「(1)内部状態」を状態Eに変化させてからステップS466に進む。
一方、ステップS463に進んだ場合は、作成中区間の長さと、予め規定した「受理する発話の最短長:L1」とを比較する。
なお、「受理する発話の最短長:L1」は、図10に示す時間t3~t4の長さL1に対応する。このL1は始端の見極めに必要な長さと同じである。作成中区間の長さがL1以上の場合のみ、ステップS464へ進み、状態Cへ遷移する。作成中区間の長さがL1以上でなければ、ステップS464に進まず、「ブロックを消費しない遷移A」を終了する。
なお、「受理する発話の最短長:L1」は、図10に示す時間t3~t4の長さL1に対応する。このL1は始端の見極めに必要な長さと同じである。作成中区間の長さがL1以上の場合のみ、ステップS464へ進み、状態Cへ遷移する。作成中区間の長さがL1以上でなければ、ステップS464に進まず、「ブロックを消費しない遷移A」を終了する。
なお、L1の単位は秒・フレーム数・ブロック数のどれでもよいが、ステップS463において実行する比較処理においては、作成区間の長さはL1と同じ単位で表現されるものとする。図10に示すL2~L5の単位についても同様とする。
次に、図47に示すフローチャートを参照して「ブロックを消費しない遷移B」のシーケンスについて説明する。
内部状態Bは、図19を参照して説明したように[途切れ中(始端確定前)]を示す内部状態である。
内部状態Bは、図19を参照して説明したように[途切れ中(始端確定前)]を示す内部状態である。
まず、ステップS471において、図20に示す区間情報172中の「(10)途切れカウンタ」と、終端の見極めに必要な長さL4との比較を行なう。
なお、終端の見極めに必要な長さL4は、図10に示す例では、時間t6~t8のL4(秒、またはフレーム数、またはブロック数)である。
途切れカウンタがL4以上の場合のみ、ステップS472に進み、それ以外の場合は「ブロックを消費しない遷移B」を終了する。
なお、終端の見極めに必要な長さL4は、図10に示す例では、時間t6~t8のL4(秒、またはフレーム数、またはブロック数)である。
途切れカウンタがL4以上の場合のみ、ステップS472に進み、それ以外の場合は「ブロックを消費しない遷移B」を終了する。
ステップS472は、図19において状態Bから状態Eへの遷移に対応する。この処理に際して、図20に示す区間情報172の「(1)内部状態」を状態Eに変化させる。
次に、図48に示すフローチャートを参照して「ブロックを消費しない遷移C」のシーケンスについて説明する。
内部状態Cは、図19を参照して説明したように[始端確定済み]を示す内部状態である。
内部状態Cは、図19を参照して説明したように[始端確定済み]を示す内部状態である。
ステップS481において、先に説明した図46のステップS462の処理と同様の処理であり、終端の登録処理(後述)によって終端が予約されているかのチェックである。図20の区間情報172の登録情報である「(11)終端予定フレーム番号」が未定義値である場合は、そもそも終端が予約されていないため、ステップS482に進む。また、「(11)終端予定フレーム番号」に未定義値以外が入っていても、それが、図18のトラッキング部165の登録データである現フレーム番号175より大きい場合は、終了予定時刻にまだ達していないため、同様にステップS482に進む。現フレーム番号が終了予定フレーム番号以上の場合のみ、ステップS489に進む。
ステップS482に分岐した場合について先に説明する。ステップS482において、作成中区間の長さと、音声区間の始端からフィルタ推定開始位置までの長さL2(図10の時間t3~t5のL2)とを比較する。作成中の長さがL2以上なら、ステップS483へ進む。そうでない場合は、「ブロックを消費しない遷移C」を終了する。
ステップS483~S487は、図19において状態Cから状態Gへの遷移に対応した処理である。本開示の処理では、この状態Cから状態Gへの遷移の際に、作成中区間が棄却可能かのチェック(ステップS484)と、フィルタの推定(ステップS485)と、入力済み観測信号(図10の例では観測信号108)について抽出結果を生成する処理(ステップS486)を行なう。以下、順に説明する。
最初に、ステップS484において、作成中区間が棄却可能かチェックする理由について説明する。特開2012-234150等の従来法では、終端が確定した後で棄却のチェック行なわれていた。棄却された区間については、音声認識に適用する特徴量の生成や、デコードが省略されていた。
一方、本開示の処理では、終端が確定する前から特徴量が生成され、さらにそれがデコードされる。そのため、棄却が終端確定時に行なわれるだけでは、棄却されるべき区間に対しても無駄なデコード等が行なわれてしまう。そこで、フィルタ推定開始位置、すなわち区間の長さがL2に達した時点で、既に不要と判明した区間を棄却する。この処理によって不要なデコード等が行われるのを防止している。
一方、本開示の処理では、終端が確定する前から特徴量が生成され、さらにそれがデコードされる。そのため、棄却が終端確定時に行なわれるだけでは、棄却されるべき区間に対しても無駄なデコード等が行なわれてしまう。そこで、フィルタ推定開始位置、すなわち区間の長さがL2に達した時点で、既に不要と判明した区間を棄却する。この処理によって不要なデコード等が行われるのを防止している。
ステップS484の棄却判定には、例えば以下の条件を用いる。
条件a)棄却判定時点(フィルタ推定開始位置)における平均方向(図20の区間情報172に登録された(9)平均方向)は、予め規定した所定の範囲内にあるか?
条件b)フィルタ適用対象となる観測信号(図10の観測信号108)の区間において、「音声らしい」フレームの割合は、所定の閾値を上回っているか?
条件c)音声区間の始点~フィルタ推定開始位置(図10の時間t3~t5)の区間において、方向点の密度は所定の閾値を上回っているか?
条件a)棄却判定時点(フィルタ推定開始位置)における平均方向(図20の区間情報172に登録された(9)平均方向)は、予め規定した所定の範囲内にあるか?
条件b)フィルタ適用対象となる観測信号(図10の観測信号108)の区間において、「音声らしい」フレームの割合は、所定の閾値を上回っているか?
条件c)音声区間の始点~フィルタ推定開始位置(図10の時間t3~t5)の区間において、方向点の密度は所定の閾値を上回っているか?
上記条件a~cを全て満たす場合は、棄却しないと判定してステップS485へ進み、どれか一つでも満たさない場合は、棄却すると判定してステップS488へ進む。
ステップS488は、作成中区間の棄却処理であり、この棄却処理の実行においては、図20に示す区間情報172の「(1)内部状態」を状態Lへ変化させる。
ステップS488は、作成中区間の棄却処理であり、この棄却処理の実行においては、図20に示す区間情報172の「(1)内部状態」を状態Lへ変化させる。
なお、「登録済み」属性を持つ作成中区間は基本的にトラッキング中は棄却されないため、ステップS484の棄却チェックをスキップする。この処理を表わしているのが、ステップS483の判定がYesとなり、ステップS485に進む処理である。
ステップS485では、フィルタの推定処理を実行し、さらに、ステップS486において、フィルタ適用による抽出結果の生成処理を行なう。これらの処理の詳細は後述する。さらに、ステップS487において、図20に示す区間情報中の「(1)内部状態」を状態Gに変化させる。
ここで、ステップS481に戻り、ステッS489に分岐した場合について説明する。これは、抽出フィルタ等が推定される前に終端登録処理によって終端が確定したことを表わしている。その場合は、ステップSS489において、区間全体抽出を実行する。この処理に際して、ステップS485~S486と同様のフィルタの推定と抽出結果の生成などを行なう。この処理の詳細は後述する。最後に、ステップS490において状態Fに遷移する。この状態は、抽出フィルタを推定する前に終端が確定したことを表わしている。
次に、図49に示すフローチャートを参照して「ブロックを消費しない遷移D」のシーケンスについて説明する。
内部状態Dは、図19を参照して説明したように[途切れ中(抽出フィルタ推定前)]を示す内部状態である。
内部状態Dは、図19を参照して説明したように[途切れ中(抽出フィルタ推定前)]を示す内部状態である。
ステップS491は、図47を参照して説明したステップS471と同様の処理であり、図20に示す区間情報172中の「(10)途切れカウンタ」と、終端の見極めに必要な長さL4との比較を行なう。
なお、終端の見極めに必要な長さL4は、図10に示す例では、時間t6~t8のL4(秒、またはフレーム数、またはブロック数)である。
途切れカウンタがL4以上の場合のみ、ステップS492に進み、それ以外の場合は「ブロックを消費しない遷移D」を終了する。
なお、終端の見極めに必要な長さL4は、図10に示す例では、時間t6~t8のL4(秒、またはフレーム数、またはブロック数)である。
途切れカウンタがL4以上の場合のみ、ステップS492に進み、それ以外の場合は「ブロックを消費しない遷移D」を終了する。
ステップS492に分岐したことは、抽出フィルタ等が推定される前に終端が確定したことを表わしており、図19において状態Cから状態Fへ遷移する途中に相当する。
ステップS492では、棄却可能かどうかのチェックを行なう。棄却判定には、例えば以下の条件を用いる。
条件a)棄却判定時点における平均方向(図20の区間情報172に登録された(9)平均方向)は、予め規定した所定の範囲内にあるか?
条件b)フィルタ適用対象となる区間全体の観測信号(図10の時間t2~t8)の区間において、「音声らしい」フレームの割合は、所定の閾値を上回っているか?
条件c)音声区間の全体(図10の時間t3~t8)の区間において、方向点の密度は所定の閾値を上回っているか?
ステップS492では、棄却可能かどうかのチェックを行なう。棄却判定には、例えば以下の条件を用いる。
条件a)棄却判定時点における平均方向(図20の区間情報172に登録された(9)平均方向)は、予め規定した所定の範囲内にあるか?
条件b)フィルタ適用対象となる区間全体の観測信号(図10の時間t2~t8)の区間において、「音声らしい」フレームの割合は、所定の閾値を上回っているか?
条件c)音声区間の全体(図10の時間t3~t8)の区間において、方向点の密度は所定の閾値を上回っているか?
上記条件a~cを全て満たす場合は、棄却しないと決定してステップS493へ進み、どれか一つでも満たさない場合は、棄却すると決定してステップS495へ進む。ステップS495は棄却を表わしており、この処理では図20に示す区間情報172の「(1)内部状態」を状態Lへ変化させる。
一方、ステップS492の棄却判定処理において、上記条件a~cを全て満たす場合は、棄却しないと決定してステップS493へ進み、区間全体抽出を行なう。詳細は後述する。最後に、ステップS494において状態Fに遷移する。
次に、図50に示すフローチャートを参照して「ブロックを消費しない遷移G」のシーケンスについて説明する。
内部状態Gは、図19を参照して説明したように[抽出フィルタ推定済み]を示す内部状態である。
内部状態Gは、図19を参照して説明したように[抽出フィルタ推定済み]を示す内部状態である。
ステップS501は、図48のステップS481や、図46のステップS462と同様に、終端の登録処理(後述)によって終端が予約されているかのチェックである。
図20の区間情報172の登録情報である「(11)終端予定フレーム番号」が未定義値である場合は、そもそも終端が予約されていないため、ステップS502に進む。また、「(11)終端予定フレーム番号」に未定義値以外が入っていても、それが、図18のトラッキング部165の登録データである現フレーム番号175より大きい場合は、終了予定時刻にまだ達していないため、同様にステップS502に進む。現フレーム番号が終了予定フレーム番号以上の場合のみ、ステップS504に進む。
図20の区間情報172の登録情報である「(11)終端予定フレーム番号」が未定義値である場合は、そもそも終端が予約されていないため、ステップS502に進む。また、「(11)終端予定フレーム番号」に未定義値以外が入っていても、それが、図18のトラッキング部165の登録データである現フレーム番号175より大きい場合は、終了予定時刻にまだ達していないため、同様にステップS502に進む。現フレーム番号が終了予定フレーム番号以上の場合のみ、ステップS504に進む。
ステップS502に進むと、作成中区間の長さが、受理可能な発話の最大長を超えていないかチェックする。超えていない場合は、「ブロックを消費しない遷移G」を終了する。超えている場合は、ステップS503へ進み、そこで状態Iへ遷移する。
ここで、ステップS501に戻り、ステップS504に分岐した場合について説明する。この場合は、抽出結果が逐次的に生成されている途中において、終端の登録処理(後述)で指定された終了予定時刻に現在時刻が到達したことを意味している。
この場合、ステップS504において区間確定処理を行なう。詳細は後述する。その後、ステップS505で状態Kに遷移する。この状態は、抽出フィルタの推定後に終端が確定したことを表わしている。
この場合、ステップS504において区間確定処理を行なう。詳細は後述する。その後、ステップS505で状態Kに遷移する。この状態は、抽出フィルタの推定後に終端が確定したことを表わしている。
次に、図51に示すフローチャートを参照して「ブロックを消費しない遷移H」のシーケンスについて説明する。
内部状態Hは、図19を参照して説明したように[途切れ中(終端ハングオーバ以前)]を示す内部状態である。
内部状態Hは、図19を参照して説明したように[途切れ中(終端ハングオーバ以前)]を示す内部状態である。
ステップS511において、図20に示す区間情報172中の「(10)途切れカウンタ」が終端ハングオーバの長さL3を超えているかチェックする。なお、L3は、図10の時間t6~t7に示すL3に相当する。超えていなければ、「ブロックを消費しない遷移H」を終了する。超えている場合は、ステップS512に進み、状態Jに遷移する。
次に、図52に示すフローチャートを参照して「ブロックを消費しない遷移I」のシーケンスについて説明する。
内部状態Iは、図19を参照して説明したように[区間長すぎ]を示す内部状態である。この状態は、作成中区間の長さが、受理可能な発話の最大長を超えたことを表わしている。その状態における振る舞いは、以下の2通りが考えられる。
a)その作成中区間を棄却する。
b)その時点で、途切れていなくても終端を確定する。
内部状態Iは、図19を参照して説明したように[区間長すぎ]を示す内部状態である。この状態は、作成中区間の長さが、受理可能な発話の最大長を超えたことを表わしている。その状態における振る舞いは、以下の2通りが考えられる。
a)その作成中区間を棄却する。
b)その時点で、途切れていなくても終端を確定する。
例えば、受理可能な発話の最大長を3秒とすると、a)は3秒を越える長さの発話を棄却することを意味し、b)は初めの3秒間の音声から認識結果を生成することを意味する。どちらの振る舞いにするかは、使用目的に合わせて設定する。
ステップS521は、作成中区間が受理可能な発話の最大長に達した場合の設定に基づく分岐であり、上記a)の設定である場合は、ステップS521の判定はYesとなり、ステップS522に進む。また、上記b)の設定である場合は、ステップS521の判定はNoとなり、ステップS504に進む。
設定がa)である場合は、ステップS522に進み、そこで棄却を表わす状態Lに遷移する。
一方、設定がb)である場合は、ステップS523に進み、そこで棄却するかどうかのチェックを行なう。ステップSS523の棄却チェックは、先に説明した図49のステップS492の処理と同じである。棄却判定には、例えば以下の条件を用いる。
条件a)棄却判定時点における平均方向(図20の区間情報172に登録された(9)平均方向)は、予め規定した所定の範囲内にあるか?
条件b)フィルタ適用対象となる区間全体の観測信号(図10の時間t2~t8)の区間において、「音声らしい」フレームの割合は、所定の閾値を上回っているか?
条件c)音声区間の全体(図10の時間t3~t8)の区間において、方向点の密度は所定の閾値を上回っているか?
一方、設定がb)である場合は、ステップS523に進み、そこで棄却するかどうかのチェックを行なう。ステップSS523の棄却チェックは、先に説明した図49のステップS492の処理と同じである。棄却判定には、例えば以下の条件を用いる。
条件a)棄却判定時点における平均方向(図20の区間情報172に登録された(9)平均方向)は、予め規定した所定の範囲内にあるか?
条件b)フィルタ適用対象となる区間全体の観測信号(図10の時間t2~t8)の区間において、「音声らしい」フレームの割合は、所定の閾値を上回っているか?
条件c)音声区間の全体(図10の時間t3~t8)の区間において、方向点の密度は所定の閾値を上回っているか?
上記条件a~cを全て満たす場合は、棄却しないと決定してステップS524へ進み、どれか一つでも満たさない場合は、棄却すると決定してステップS522へ進む。ステップS522は棄却処理であり、この処理では図20に示す区間情報172の「(1)内部状態」を状態Lへ変化させる。
上記条件a~cを全て満たす場合は、棄却しないと決定してステップS524へ進み、区間確定処理を行なう。この処理については後述する。最後に、ステップS525において状態Kに遷移する。
次に、図53に示すフローチャートを参照して「ブロックを消費しない遷移J」のシーケンスについて説明する。
内部状態Jは、図19を参照して説明したように[途切れ中(終端ハングオーバ以降)]を示す内部状態である。
内部状態Jは、図19を参照して説明したように[途切れ中(終端ハングオーバ以降)]を示す内部状態である。
ステップS531は、図49のステップS491や、図47のステップS471と同様の処理であり、図20に示す区間情報172中の「(10)途切れカウンタ」と、終端の見極めに必要な長さL4との比較を行なう。
なお、終端の見極めに必要な長さL4は、図10に示す例では、時間t6~t8のL4(秒、またはフレーム数、またはブロック数)である。
途切れカウンタがL4以上の場合のみ、ステップS532に進み、それ以外の場合は「ブロックを消費しない遷移J」を終了する。
なお、終端の見極めに必要な長さL4は、図10に示す例では、時間t6~t8のL4(秒、またはフレーム数、またはブロック数)である。
途切れカウンタがL4以上の場合のみ、ステップS532に進み、それ以外の場合は「ブロックを消費しない遷移J」を終了する。
ステップS532へ進んだことは、方向点の途切れている長さが見極め時間L4に達し、終端が確定したことを表わしている。
ステップS532では、図49のステップS492や、図52のステップS523と同様の棄却チェックを行なう。すなわち、棄却判定には、例えば以下の条件を用いる。
条件a)棄却判定時点における平均方向(図20の区間情報172に登録された「(9)平均方向」)は、予め規定した所定の範囲内にあるか?
条件b)フィルタ適用対象となる区間全体の観測信号(図10の時間t2~t8)の区間において、「音声らしい」フレームの割合は、所定の閾値を上回っているか?
条件c)音声区間の全体(図10の時間t3~t8)の区間において、方向点の密度は所定の閾値を上回っているか?
ステップS532では、図49のステップS492や、図52のステップS523と同様の棄却チェックを行なう。すなわち、棄却判定には、例えば以下の条件を用いる。
条件a)棄却判定時点における平均方向(図20の区間情報172に登録された「(9)平均方向」)は、予め規定した所定の範囲内にあるか?
条件b)フィルタ適用対象となる区間全体の観測信号(図10の時間t2~t8)の区間において、「音声らしい」フレームの割合は、所定の閾値を上回っているか?
条件c)音声区間の全体(図10の時間t3~t8)の区間において、方向点の密度は所定の閾値を上回っているか?
上記条件a~cを全て満たす場合は、棄却しないと決定してステップS533へ進み、どれか一つでも満たさない場合は、棄却すると決定してステップS535へ進む。ステップS535は棄却処理であり、この処理では図20に示す区間情報172の「(1)内部状態」を状態Lへ変化させる。
棄却しない場合は、ステップS533において区間確定処理を行なう。この処理については後述する。最後に、ステップS534において、状態Kに遷移する。
棄却しない場合は、ステップS533において区間確定処理を行なう。この処理については後述する。最後に、ステップS534において、状態Kに遷移する。
次に、図48を参照して説明した「ブロックを消費しない遷移C」のステップS485において実行するフィルタ推定処理の詳細シーケンスについて、図54に示すフローチャートを参照して説明する。
本開示の処理において、フィルタ推定処理は、例えば図10に示す例において時間t1~t5の観測信号106(時間t5から一定時間遡った地点まで)を使用する。
図54に示すフローの各ステップの処理について説明する。
ステップS541では、以下に示す式を用いて参照信号(リファレンス)を生成する。
図54に示すフローの各ステップの処理について説明する。
ステップS541では、以下に示す式を用いて参照信号(リファレンス)を生成する。
式[3.1]のq(θ)は、音源方向(発話の方向)に対応した3次元のベクトルであり、θは平均方向(図20に示す区間情報172中の「(9)平均方向」)の値である。このベクトルと式[3.2]・式[3.3]を用いて、方向θに対応したステアリングベクトルS(θ)を計算する。
式[3.2]において、
m_kは、k番目のマイクロホンの位置ベクトル、
mは全マイクロホン位置の平均位置、
Fはサンプリング周波数、
Cは音速、
jは虚数単位、
である。ステアリングベクトルとは、方向θから到来する音について、各マイクロホンで観測される信号の位相差を時間周波数領域において表わすベクトルである。
m_kは、k番目のマイクロホンの位置ベクトル、
mは全マイクロホン位置の平均位置、
Fはサンプリング周波数、
Cは音速、
jは虚数単位、
である。ステアリングベクトルとは、方向θから到来する音について、各マイクロホンで観測される信号の位相差を時間周波数領域において表わすベクトルである。
また、式[3.4]において、
U(ω,t)は、観測信号ベクトルX(ω,t)についてのマイクロホン間の位相差を表わしている。
また、式[3.5]において、
S(θ)とU(ω,t)とから時間周波数マスクM(ω,t)を計算する。なお、上付きのHは、エルミート転置(共役転置)を表わす。
観測信号X(ω,t)が方向θから到来する音のみで構成されている場合に、時間周波数マスクM(ω,t)は最大、逆にθ方向から到来する音が全く含まれていない場合に、時間周波数マスクM(ω,t)は最小となる。
Jはマスキングの効果を調整するための正の実数であり、Jが大きいほどマスキングの効果が大きくなる。
U(ω,t)は、観測信号ベクトルX(ω,t)についてのマイクロホン間の位相差を表わしている。
また、式[3.5]において、
S(θ)とU(ω,t)とから時間周波数マスクM(ω,t)を計算する。なお、上付きのHは、エルミート転置(共役転置)を表わす。
観測信号X(ω,t)が方向θから到来する音のみで構成されている場合に、時間周波数マスクM(ω,t)は最大、逆にθ方向から到来する音が全く含まれていない場合に、時間周波数マスクM(ω,t)は最小となる。
Jはマスキングの効果を調整するための正の実数であり、Jが大きいほどマスキングの効果が大きくなる。
最後に、式[3.7]において、時間数周波数マスクM(ω,t)を周波数ビン方向で平均することで、t番目のフレームに対応した参照信号r(t)を得る。この式においてLは正の値であり、たとえばL=2を用いる。また、<・>_{ω∈Ω}は、集合Ωを複数の周波数ビンの番号からなる集合とし、そのΩに属する周波数ビンの間で平均を計算することを表わす。集合Ωは、たとえば式[3.6]で表わす。この集合は、ω_{min}からω_{max}までの周波数ビンの間で平均を計算することを意味する。
上記式[3.1]~[3.7]に示す計算を、例えば図10に示す観測信号106に対応したフレーム番号tについて行なうことで、区間と方向とが反映された参照信号r(t)を得る。
なお、図10において、区間の長さがL2に達する前に終端104が確定した場合、すなわち、終端104が、本処理例におけるフィルタ推定開始位置である時間t5よりも時間軸上で前である場合は、従来法と同様に、終端から一定時間遡った時点までについて、参照信号を計算する。以降、フレーム間で平均を計算する操作については同様である。
なお、図10において、区間の長さがL2に達する前に終端104が確定した場合、すなわち、終端104が、本処理例におけるフィルタ推定開始位置である時間t5よりも時間軸上で前である場合は、従来法と同様に、終端から一定時間遡った時点までについて、参照信号を計算する。以降、フレーム間で平均を計算する操作については同様である。
ステップS542~S547は周波数ビンについてのループであり、各周波数ビンについて、ステップS543~S546の処理を行なう。
ステップS543の無相関化(decorrelation)とは、観測信号ベクトルX(ω,t)に対して、以下に示す式[4.1]のような変換を作用させることで、式[4.2]を満たすX'(ω,t)を得る処理である。
ステップS543の無相関化(decorrelation)とは、観測信号ベクトルX(ω,t)に対して、以下に示す式[4.1]のような変換を作用させることで、式[4.2]を満たすX'(ω,t)を得る処理である。
上記式[4.1]の行列P(ω)を無相関化行列と呼ぶ。以下、無相関化行列の計算方向について説明する。
式[4.3]のR(ω)は、観測信号の共分散行列である。この式において<・>_tは、フィルタ推定に適用する図10に示す観測信号106の区間について平均を計算することを意味する。そして、観測信号の共分散行列R(ω)に対して固有値分解(Eigenvalue decomposition)を適用し、式[4.4]の右辺のような積に分解する。
式[4.3]のR(ω)は、観測信号の共分散行列である。この式において<・>_tは、フィルタ推定に適用する図10に示す観測信号106の区間について平均を計算することを意味する。そして、観測信号の共分散行列R(ω)に対して固有値分解(Eigenvalue decomposition)を適用し、式[4.4]の右辺のような積に分解する。
この式[4.4]において、
V(ω)は、観測信号の共分散行列R(ω)の固有ベクトルからなる行列(式[4.5])、
D(ω)は、観測信号の共分散行列R(ω)の固有値からなる対角行列である(式[4.6])。
また、最大の固有値はd1(ω)、最小の固有値はdn(ω)である。そして式[4.7]に従って無相関化行列P(ω)を得る。
V(ω)は、観測信号の共分散行列R(ω)の固有ベクトルからなる行列(式[4.5])、
D(ω)は、観測信号の共分散行列R(ω)の固有値からなる対角行列である(式[4.6])。
また、最大の固有値はd1(ω)、最小の固有値はdn(ω)である。そして式[4.7]に従って無相関化行列P(ω)を得る。
次に、ステップS544において全死角空間フィルタN(ω)を推定する。その計算方法は、例えば特開2011-107602号公報で説明されている通りである。なお、観測信号の共分散行列に対して固有値分解を適用している場合は、上記の式[4.8]によって簡単に求めることができる。ただし、式[4.8]における全死角空間フィルタN(ω)には、まだリスケーリングが適用されていないため、ステップS546においてリスケーリングする。
次に、ステップS545において、抽出フィルタW(ω)を推定する。その計算方法を以下に示す。
式[5.1]のG(ω)は、参照信号r(t)の逆数を重みとした、無相関化観測信号の重みつき共分散行列である。この式においても、平均の計算は、フィルタ推定に適用する図10に示す観測信号106の区間について行なう。
抽出フィルタW(ω)は、式[5.2]の最小化問題の解であり、この問題はG(ω)に固有値分解を適用することで解くことができる。
抽出フィルタW(ω)は、式[5.2]の最小化問題の解であり、この問題はG(ω)に固有値分解を適用することで解くことができる。
G(ω)の固有値分解は、式[5.3]のように表わされる。この式において、
A(ω)はG(ω)の固有ベクトルからなる行列、
B(ω)はG(ω)の固有値からなる対角行列である。
最小の固有値bn(ω)に対応した固有ベクトルをAn(ω)とすると、抽出フィルタW(ω)は式[5.6]で表わされる。ただし、この式における抽出フィルタW(ω)には、まだリスケーリングが適用されていないため、ステップS546でリスケーリングを行なう。
A(ω)はG(ω)の固有ベクトルからなる行列、
B(ω)はG(ω)の固有値からなる対角行列である。
最小の固有値bn(ω)に対応した固有ベクトルをAn(ω)とすると、抽出フィルタW(ω)は式[5.6]で表わされる。ただし、この式における抽出フィルタW(ω)には、まだリスケーリングが適用されていないため、ステップS546でリスケーリングを行なう。
次に、ステップS546において、抽出フィルタW(ω)と全死角空間フィルタN(ω)とに対してリスケーリングを行なう。リスケーリングとは、抽出結果に対して周波数ビン毎のスケールを適切に調整する操作であるが、本開示では、抽出フィルタの適用結果に含まれる消し残りと、全死角空間フィルタの適用によって推定された消し残りとの間で、減算前にスケールを合わせる目的でも使用する。
リスケーリングの式は、以下に示す式となる。
リスケーリングの式は、以下に示す式となる。
この式は、抽出フィルタの適用結果に含まれる目的音のスケールを、遅延和アレイの適用結果に含まれる目的音のスケールに合わせるための式である。式[6.1]によってリスケーリング係数g(ω)を計算し、それを式[6.2]と式[6.3]に示すように、抽出フィルタW(ω)と全死角空間フィルタN(ω)のそれぞれに反映させる。
ステップS543~S546を全周波数ビンについて行なうことで、抽出フィルタと全死角空間フィルタとが生成される。
以上で、フィルタ推定の説明を終わる。
以上で、フィルタ推定の説明を終わる。
次に、図48を参照して説明した「ブロックを消費しない遷移C」のステップS486や、図49を参照して説明した「ブロックを消費しない遷移D」のステップS493において実行する区間全体抽出処理について、図55に示すフローチャートを参照して説明する。この処理は、図19において状態C,Dから状態Fへの遷移において実行される。区間全体抽出処理においては、終端が確定してからフィルタの推定と抽出結果の生成を行なう。
ステップS551において、作成中区間の始端・終端を確定させる。この時点で、図20の生成/保存データの内で未定なのは、ハングオーバ付き終端フレーム番号(図20の区間情報172中の(6))のみである。このハングオーバ付き終端フレーム番号(図20の区間情報172中の(6))に、終端フレーム番号(区間情報172中の(5))にL3(図10において、区間終端の時間t6からt7までの長さ)を加えた値を代入する。
ステップS552において、抽出フィルタを適用する範囲を確定させる。この時点で、図21の生成/保存データの内で未定なのは、フィルタ適用終端フレーム番号(図21に示す音源抽出部173の管理データである「(4)フィルタ適用終端フレーム番号」のみである。そこにもハングオーバ付き終端フレーム番号と同じく、終端フレーム番号(図20の区間情報172中の(5))にL3(図10において、区間終端の時間t5からt6までの長さ)を加えた値を代入する。
ステップS553において、フィルタの推定を行なう。このフィルタ推定処理は、先に図54のフローチャートを参照して説明したのと同様の処理である。
ステップS554において、抽出結果生成を行なう。この抽出結果生成処理は、先に図42~図44の各フローを参照して説明したのと同様の処理である。
ステップS554において、抽出結果生成を行なう。この抽出結果生成処理は、先に図42~図44の各フローを参照して説明したのと同様の処理である。
最後に、ステップS555において、「発話終了」表わす特別な特徴量を、図16に示すフロントエンド部153の部抽出結果バッファリング部166に追加する。
なお、この処理は、図56を参照して説明するステップS562の処理と同じであり、この処理の意味については後述する。
なお、この処理は、図56を参照して説明するステップS562の処理と同じであり、この処理の意味については後述する。
次に、図50の「ブロックを消費しない遷移G」のステップS504、図52の「ブロックを消費しない遷移I」のステップS524、図53の「ブロックを消費しない遷移J」のステップS533で実行する区間確定処理の詳細シーケンスについて、図56に示すフローチャートを用いて説明する。
この処理は、図19に示す状態G,I,Jから状態Kへの遷移において実行される。
この処理は、図19に示す状態G,I,Jから状態Kへの遷移において実行される。
ステップS561において、作成中区間の始端・終端を確定させる。この時点で、図20の生成/保持データの内で未定なのはハングオーバ終端フレーム番号(図20の区間情報172中の(6))のみである(状態Jから状態Kへの遷移を除く)。このハングオーバ付き終端フレーム番号(図20の区間情報172中の(6))に、終端フレーム番号(区間情報172中の(5))にL3(図10において、区間終端の時間t6からt7までの長さ)を加えた値を代入する。
最後に、ステップS562において、「発話終了」表わす特別な特徴量を、図16に示すフロントエンド部153の部抽出結果バッファリング部166に追加する。以下、この処理の意味について説明する。
本開示の処理では、抽出結果である特徴量の生成が逐次的に行われ、特徴量を適用したや音声認識処理としてのデコードも逐次的に行なわれる。従ってデコーダにとっては、特徴量だけからでは、それが区間の途中なのか終わりなのかが分からない。そこで、作成中区間の終端が確定したら、「その区間についての特徴量はもう生成されない」ことをデコーダに通知する必要がある。その通知の手段として、本開示では「発話終了」を表わす特別な特徴量を用意し、それを図16に示すフロントエンド部153の部抽出結果バッファリング部166に追加するようにしている。同じ理由で、区間全体抽出(図55)においても、最後のステップS555で「発話終了」を表わす特徴量を追加している。
以上で、区間確定処理の説明を終わるとともに、区間の更新(図29のステップS293)の説明も終わる。
以上で、区間確定処理の説明を終わるとともに、区間の更新(図29のステップS293)の説明も終わる。
再び、図29のトラッキング処理の説明に戻る。
図29に示すトラッキング処理のフローにおけるステップS294の新規区間の作成処理について、図57に示すフローチャートを用いて説明する。
この処理では、どの作成中区間にも接続しない方向点が存在したときに、それを始端とする新たな区間を生成する。
図29に示すトラッキング処理のフローにおけるステップS294の新規区間の作成処理について、図57に示すフローチャートを用いて説明する。
この処理では、どの作成中区間にも接続しない方向点が存在したときに、それを始端とする新たな区間を生成する。
ステップS571~S577は、図18に示すトラッキング部165の管理データである方向点接続テーブル179の各エントリについてのループである。方向点接続テーブル179の1エントリは、方向点の一つについてどの作成中区間が接続可能かを示す接続可能区間リストを保持している。
ステップS572において、その方向点と接続可能な作成中区間が存在するか判定する。接続可能区間リストの要素数が1以上の場合は、接続可能な作成中区間が存在するので、ステップS573~S576をスキップする。接続可能区間リストの要素数が0の場合のみ、ステップS573に進む。
ステップS573は、1個の作成中区間に相当する作成中区間管理部(図18に示すトラッキング部165の作成中区間管理部171)を生成する処理である。このモジュールは、図18に示すように区間情報172、音源抽出部173、特徴量変換部174の3個のモジュールを持つ。ステップS574~S576においてそれぞれを初期化する。それぞれの初期化の詳細は後述する。
最後に、ステップS577でループを閉じる。
最後に、ステップS577でループを閉じる。
次に、ステップS574の区間情報の初期化について、図58に示すフローチャートを参照して説明する。この処理では、区間情報(図20参照)の各メンバーに初期値を代入する。
ステップS581では、内部状態(図20の(1))に状態Aを設定する。
ステップS582では、区間ID(図20の(2))に所定の識別値を設定する。例えば、前回発行された区間IDに、1を加えた値を使用すればよい。
ステップS583では、始端フレーム番号(図20の(3))とハングオーバ付き始端フレーム番号(図20の(4))の設定をそれぞれ行なう。
ステップS582では、区間ID(図20の(2))に所定の識別値を設定する。例えば、前回発行された区間IDに、1を加えた値を使用すればよい。
ステップS583では、始端フレーム番号(図20の(3))とハングオーバ付き始端フレーム番号(図20の(4))の設定をそれぞれ行なう。
始端フレーム番号には、1ブロックあたりのフレーム数をBとしたとき、
現フレーム番号175(図18参照)から、(B-1)を減算した値を代入する。
ハングオーバ付き始端フレーム番号には、現フレーム番号からハングオーバ区間長L5(図10において、時間t2~t3の区間L5)を引いた値を代入する。ただし、システム起動直後に区間が発生した場合など、始端フレーム番号から一定値を引くと負の値となってしまう場合は、フレーム番号の最小値(例えば0)をハングオーバ付き始端フレーム番号とする。
現フレーム番号175(図18参照)から、(B-1)を減算した値を代入する。
ハングオーバ付き始端フレーム番号には、現フレーム番号からハングオーバ区間長L5(図10において、時間t2~t3の区間L5)を引いた値を代入する。ただし、システム起動直後に区間が発生した場合など、始端フレーム番号から一定値を引くと負の値となってしまう場合は、フレーム番号の最小値(例えば0)をハングオーバ付き始端フレーム番号とする。
ステップS584では、終端フレーム番号(図20の(5))とハングオーバ付き終端フレーム番号(図20の(6))の設定をそれぞれ行なう。具体的には、両方に現フレーム番号175(図18参照)を代入する。
この「区間情報の初期化」で生成される区間情報は「登録済み」属性を持たないため、ステップS585では、登録済みフラグ(図20の(7))に登録済みでないことを示す値(偽)を代入する。
ステップS586では、方向点カウンタ(図20の(8))の設定を行なう。この時点で既に1個の方向点が作成中に含まれているため、それに対応した値を代入する。具体的には、方向点カウンタがブロック数を表わしている場合は1を代入し、フレーム数を表わしている場合はBを代入する。
ステップS587では、平均方向(図20の(9))に、方向点が持つ方向を代入する。この時点では、区間は途切れていないため、途切れカウンタ(図20の(10))には0を代入する。
「区間情報の初期化」によって生成される区間情報は「登録済み」属性を持たないため、終端の登録処理の対象外である。そこで、ステップS589において、終了予定フレーム番号(図20の(11))には、未定義値を代入しておく。
最後に、ステップS590において、「接続可能な方向点のリスト」(図20の(12))に空リストを代入する。これは、生成直後の作成中区間にはまだ方向点が接続していないことを表わす。
次に、図57に示すフローのステップS575において実行する音源抽出部の初期化の初期化について、図59に示すフローチャートを参照して説明する。
ステップS591は、フィルタ適用始端フレーム番号(図21に示す音源抽出部173の管理データ(3))の初期化であり、ハングオーバ付き始端フレーム番号(図20の(4))と同じ値を代入する。
ステップS591は、フィルタ適用始端フレーム番号(図21に示す音源抽出部173の管理データ(3))の初期化であり、ハングオーバ付き始端フレーム番号(図20の(4))と同じ値を代入する。
ステップS592は、フィルタ適用終端フレーム番号(図21の(4))の初期化であり、現フレーム番号175(図18参照)と同じ値を代入する。
次に、図57に示すフローのステップS576において実行する特徴量変換部の初期化について、図60に示すフローチャートを参照して説明する。
ステップS601において、図22に示す特徴量変換部174内のMFCC生成部201、すなわち、音声認識に適用する特徴量であるメル周波数ケプストラム係数(MFCC)を生成するMFCC生成部201の初期化を行なう。これは、メモリの確保等の処理の他に、デルタ特徴量の生成のためにこのモジュール内に過去のMFCCが保存されている場合に、それを破棄することも意味する。
次に、ステップS602において、特徴量の正規化のためのデータとして図22に示す特徴量変換部174が記録しているメンバーである、MFCC平均値(図22の(1))とMFCC標準偏差(図22の(2))とをそれぞれクリアする。
次に、ステップS603において、初回フラグ(図22の(3))に初回であることを示す値(真)を代入する。この代入により、その作成中区間において抽出結果生成(図42~図44に示す処理)が初めて行なわれたときに特別な処理をすることが可能となる。
最後に、ステップS604において、必要に応じて、図22に示す特徴量変換部174の逆STFT部202の初期化を行なう。この処理は、逆STFT部202を備えている場合のみ行なう。
再び図29に示すトラッキング処理に戻り、図29のフローにおけるステップS295に示す不要区間の削除について説明する。
ステップS291~S294の処理により、ある作成中区間は終端が確定し、別のある作成中区間は棄却されている。不要区間の削除とは、それらの区間を削除し、以降のトラッキングの対象から外す処理のことである。
不要区間の削除の詳細について、図61に示すフローチャートを参照して説明する。
ステップS291~S294の処理により、ある作成中区間は終端が確定し、別のある作成中区間は棄却されている。不要区間の削除とは、それらの区間を削除し、以降のトラッキングの対象から外す処理のことである。
不要区間の削除の詳細について、図61に示すフローチャートを参照して説明する。
ステップS611~S614は、作成中の区間についてのループ、すなわち、図18に示すトラッキング部165の作成中区間管理部171各々についてのループである。
ステップS612において、作成中区間の内部状態が終了状態であるか否かを判別する。終了状態とは、図19において、状態F(フィルタ推定前に終端が確定)、または、状態K(フィルタ推定後に終端が確定)、または状態Lの3つのいずれかである。
内部状態がこの3つのどれかの状態である場合は、ステップS613に進み、その作成中区間を削除する。内部状態が終了状態以外である場合は、ステップS613をスキップする。最後に、ステップS614でループを閉じる。
内部状態がこの3つのどれかの状態である場合は、ステップS613に進み、その作成中区間を削除する。内部状態が終了状態以外である場合は、ステップS613をスキップする。最後に、ステップS614でループを閉じる。
以上で、トラッキング処理(図29)の説明を終わるとともに、フロントエンド処理(図25のフローのステップS254)の説明も終わる。
次に、図25を参照して説明した音声系処理に戻り、図25の説明において説明をスキップしたステップS253の区間登録処理について説明する。これは、区間の始端または終端の登録を、外部から与えられた情報によって行なう処理である。音声区間検出方式のうち、見極め時間不要の方式によって始端・終端が検出された場合にこの処理が実行される。
区間登録処理について、図62に示すフローチャートを参照して説明する。
ステップS621で、始端の通知の有無を判定する。「始端の通知」とは、見極め時間不要の音声区間検方式による始端通知である。具体的には、例えば、図26のフローにおけるステップS265において実行する手画像に基づく音声区間検出処理等によって、区間の始端を検出したときに発生するイベントである。この通知が存在する場合は、ステップS622に進み、通知が存在しない場合は、ステップS622をスキップする。ステップS622の始端登録処理については、後述する。
ステップS621で、始端の通知の有無を判定する。「始端の通知」とは、見極め時間不要の音声区間検方式による始端通知である。具体的には、例えば、図26のフローにおけるステップS265において実行する手画像に基づく音声区間検出処理等によって、区間の始端を検出したときに発生するイベントである。この通知が存在する場合は、ステップS622に進み、通知が存在しない場合は、ステップS622をスキップする。ステップS622の始端登録処理については、後述する。
ステップS623の「終端の通知」とは、上記と同様、手画像の検出方式など見極め時間が不要の音声区間検方式が終端を検出したときに発生するイベントである。この通知が存在する場合は、ステップS624に進み、通知が存在しない場合は、ステップS624をスキップする。ステップS624の終端登録処理については、後述する。
次に、ステップS622の始端登録処理について、図63に示すフローチャートを参照して説明する。この処理は、先に図57を参照して説明した「新規区間の作成」において実行する処理と類似する処理であるが、一部のメンバーについては、設定する値が異なる。
ステップS631の作成中区間管理部の生成は、図57のフローのステップS573と同一の処理である。1個の作成中区間に相当する作成中区間管理部(図18に示すトラッキング部165の作成中区間管理部171)を生成する処理である。このモジュールは、図18に示すように区間情報172、音源抽出部173、特徴量変換部174の3個のモジュールを持つ。
ステップS632は、例えば、図15の音声認識装置150内の画像処理部155に構成される手画像処理部223(図24)から送信された通知などに付与されているタイムスタンプをフレーム番号に変換する処理であり、必要に応じて観測信号バッファリング部(図17)内の情報を参照する。ここで求めたフレーム番号をフレーム識別情報である[frame_idx]とする。
ステップS634は、図58を参照して説明した区間情報初期化処理におけるステップS581の処理と同一である。内部状態(図20の(1))に状態Aを代入する。
ステップS635は、図5ゆのフローのステップS582と同一である。区間ID(図20の(2))に所定の識別値を代入する。例えば、前回発行された区間IDに、1を加えた値を使用すればよい。
なお、発行される区間IDは、ステップS582、または、ステップS635が実行されるたびに1ずつ増加させる。
なお、発行される区間IDは、ステップS582、または、ステップS635が実行されるたびに1ずつ増加させる。
ステップS635において、始端フレーム番号の設定を行なう。ここは、図58のステップS583の処理とは異なり、始端フレーム番号(図20の(3))、ハングオーバ付き始端フレーム番号(図20の(4))共にステップS632で求めたフレーム番号である[frame_idx]を代入する。
ステップS636は、図58のステップS584の処理と同一であり、終端フレーム番号(図20の(5))とハングオーバ付き終端フレーム番号(図20の(6))の設定をそれぞれ行なう。具体的には、両方に現フレーム番号175(図18参照)を代入する。
ステップS637は、図58のステップS585と異なり、登録済みフラグ(図20の(7))に登録済みであることを示す値(真)を代入する。始端登録処理によって生成された作成中区間が「登録済み」属性を持つことを表現するためである。
ステップS638~ステップS642の処理は、それぞれ、図58のフローのステップS586~ステップS590と同一の処理である。なお、始端登録処理によって生成される作成中区間は、終端登録処理の対象であるが、生成直後であるこの時点では、まだ終端登録処理が呼ばれていないため、ステップS641では、終了予定フレーム番号(図20の(11))には未定義値を代入しておく。
最後のステップS643の音源抽出部の初期化、およびステップS644の特徴量変換部の初期化、これらの処理は、それぞれ、図57を参照して説明したステップS575およびステップS576の処理、すなわち図59を参照して説明した音源抽出部の初期化と、図60を参照して説明した特徴量変換部の初期化処理と同一である。
次に、図62の区間登録処理におけるステップSS624の終端登録処理について、図64に示すフローチャートを参照して説明する。
ステップS645は、図63に示すフローのステップS632の処理と同様に、例えば手画像処理部223(図24)から送信された通知に付与されているタイムスタンプをフレーム番号に変換する処理である。ここで求めたフレーム番号を[frame_idx]とする。
ステップS642において、ステップS641で設定した[frame_idx]を、図18に示すトラッキング部18の保持する現フレーム番号175と比較する。
[frame_idx]の方が小さい場合は、終端として過去のタイムスタンプが指定されていると見なし<ステップS644へ分岐する。そうではなければ、現在または未来のタイムスタンプが指定されていると見なし、ステップS643へ分岐する。
[frame_idx]の方が小さい場合は、終端として過去のタイムスタンプが指定されていると見なし<ステップS644へ分岐する。そうではなければ、現在または未来のタイムスタンプが指定されていると見なし、ステップS643へ分岐する。
ステップS643に分岐した場合は、終了予定フレーム番号(図20の(11))に[frame_idx]を代入する。そうすることで、トラッキング処理が進んで所定のフレーム番号に達したときに、その区間のトラッキングを終了させる処理が適切に行なわれる。
一方、ステップS644に分岐した場合は、終了予定フレーム番号(図20の(111))に現フレーム番号175(図18参照)を代入する。これは、終端として過去のタイムスタンプが指定されていた場合は、「直ちに終了」と読み替えることを意味する。
以上で、区間登録処理についての説明を終わる。
以上で、区間登録処理についての説明を終わる。
[4-5.音声認識部の処理について]
再び図25の音声系処理に戻り、ステップS255の音声認識処理の詳細について、図65に示すフローチャートを参照して説明する。この処理は、通常の音声認識とは異なり、重複のある区間に対して複数のデコーダを用いて逐次的かつ並列に行なうことを特徴とする。
再び図25の音声系処理に戻り、ステップS255の音声認識処理の詳細について、図65に示すフローチャートを参照して説明する。この処理は、通常の音声認識とは異なり、重複のある区間に対して複数のデコーダを用いて逐次的かつ並列に行なうことを特徴とする。
ただし、図65のフローチャートは、デコードが1個でも動作する。また、並列処理といっても、マルチスレッド等の仕組みを用いる必要はなく、逐次的なデコード処理をデコーダごとに順に実行すればよい。
ステップS651~S664は、各デコーダについてのループである。すなわち、図23に示す音声認識部156の内部に用意されたデコーダ212-1~nの各々が、ステップS652~663の処理を行なう。
各デコーダは、どの区間の抽出結果(特徴量)をデコードしているのか分かるようにするため、図23に示すように、区間ID213-1~nを保持している。初期状態では、未定義値が代入されており、「どの区間もデコードしていない」ことを表わす。
ステップS652では、デコーダが保持している区間IDが未定義値かどうか判定する。未定義値である場合は、ステップS656へ分岐する。区間IDが未定義値でない場合は、ステップS653へ分岐する。
ステップS653へ分岐した場合、デコーダが保持している区間IDが有効か否か判定する。区間IDが有効であるとは、その区間に対応した特徴量が生成されているか、または将来生成される可能性があることである。具体的には、その区間IDによって特定される区間が、図18に示すトラッキング部165が有する作成中区間管理部171の中か、あるいは図16に示すフロントエンド部153の抽出結果バッファリング部166の中に存在するか否かに基づいてチェックする。その区間が少なくとも一方に存在する場合は、区間IDが有効であると判定し、ステップ654へ分岐する。どちらにも存在しない場合は、区間IDが無効であると判定し、ステップS655へ分岐する。
ステップS655の処理について先に説明する。ここに分岐するのは、図23に示す音声認識部156のデコーダ212が保持していた区間ID213が有効ではなくなったことを表わす。具体的には、それまでデコードされていた区間が途中で棄却された場合である。この場合、途中までのデコード結果はもはや無駄であるため、そのデコードをキャンセルする。キャンセル後、ステップS656に進む。
次に、ステップS656の処理について説明する。これは、デコーダに対して新たな区間を対応させる処理である。そのために、図16に示すフロントエンド部153の抽出結果バッファリング部166内に存在する全区間についての順位付けを行なう。
例えば、抽出結果バッファリング部166が図13に示す抽出結果バッファリング部135と同一の構成を持つ場合、図13に示すバッファ135a~cに格納された区間データについて、以下の基準で順位づけを行なう。
例えば、抽出結果バッファリング部166が図13に示す抽出結果バッファリング部135と同一の構成を持つ場合、図13に示すバッファ135a~cに格納された区間データについて、以下の基準で順位づけを行なう。
(基準1)「登録済み」属性を持つ区間を優先。「登録済み」属性を持つ区間が複数あるときは、始端が古い方を優先。
(基準2)「登録済み」属性を持たない区間については、終端が既に確定しているものを優先。「登録済み」属性を持たない区間が複数あるときは、終端が古い方を優先。
(基準3)終端が未確定の区間については、始端が古い方を優先。
(基準4)既にデコーダと対応付けられている区間は、順位づけから除外。
(基準2)「登録済み」属性を持たない区間については、終端が既に確定しているものを優先。「登録済み」属性を持たない区間が複数あるときは、終端が古い方を優先。
(基準3)終端が未確定の区間については、始端が古い方を優先。
(基準4)既にデコーダと対応付けられている区間は、順位づけから除外。
上記基準に従って順位づけられた区間のうちでトップのものを、デコーダに対応させる。すなわち、その区間のIDを、図23に示す音声認識部156のデコーダ212が保持する区間ID213に代入する。なお、抽出結果バッファリング部166内に存在する区間がすべてデコーダと対応済みである場合は、未定義値を代入する。この現象は、作成中区間の数よりもデコーダの数の方が多い場合に発生する。
ステップS656において、デコーダと区間との対応付けができたら、ステップS654に進む。
ステップS656において、デコーダと区間との対応付けができたら、ステップS654に進む。
ステップS654では、そのデコーダに対応した区間の特徴量を、抽出結果バッファリング部166から取り出す。その結果、抽出結果バッファリング部166では、その区間IDに対応した特徴量はいったん消滅する。
なお、抽出結果バッファリング部166に存在しない区間IDについて特徴量を取得しようとした場合や、ステップS656において区間IDとして未定義値が代入された場合などは、対応する特徴量が存在しないため、特徴量の取得は失敗する。
なお、抽出結果バッファリング部166に存在しない区間IDについて特徴量を取得しようとした場合や、ステップS656において区間IDとして未定義値が代入された場合などは、対応する特徴量が存在しないため、特徴量の取得は失敗する。
次に、ステップS657において、ステップS654での特徴量取得が成功したか否かを判定する。成功していたら、ステップS658へ進み、失敗していたら以降の処理をスキップして、ステップS664へ進む。
ステップS658では、ステップS654で取得された特徴量に対してデコード処理、すなわち音声認識処理を行なう。その後、ステップS659において、認識結果が確定したか否かを判定する。認識結果が確定するのは、以下の2つの場合である。
(a)ステップS654で得られた特徴量の中に、「区間の確定」を表わす特別なものが含まれていた場合。
(b)デコーダが保持している認識仮説が変化しなくなった場合。
(a)ステップS654で得られた特徴量の中に、「区間の確定」を表わす特別なものが含まれていた場合。
(b)デコーダが保持している認識仮説が変化しなくなった場合。
(a)については既に説明した(図56のステップS562の説明を参照)ので、ここでは(b)について説明する。デコーダ内部では、認識結果の候補を複数保持しており、それを仮説(hypotheses)と呼ぶ。なお、複数仮説を用いたデコード処理については、特開2001-242883号公報などに記載があるのと同様の処理である。
特徴量が逐次的に入力されるにつれて仮説が変化していくが、入力される特徴量が所定の量を超えると、もう仮説が変化しなくなることがある。そのような状態になったら、認識結果が確定したと見なす。
特徴量が逐次的に入力されるにつれて仮説が変化していくが、入力される特徴量が所定の量を超えると、もう仮説が変化しなくなることがある。そのような状態になったら、認識結果が確定したと見なす。
ステップS659において、認識結果が確定していたら、ステップS660へ進む。確定していなかったら、以降の処理をスキップして、ステップS664へ進む。
次に、ステップS660の処理について説明する。ステップS659において、上記(b)の理由で認識結果が確定したと見なした場合、そのデコーダに対応した区間はトラッキング部165にはまだ残っているが、その区間についてそれ以上トラッキングするのは無駄である。そこで、認識結果が確定した区間については、終端が未確定であっても、トラッキング部から削除する。なお、上記(a)の理由で認識結果が確定したときは、「不要区間の削除」(図29のフローのステップS295の処理)によって、その区間は既にトラッキング部から削除されているため、ステップS660では何も行なわれない。
ステップS661では、こうして生成された認識結果に対して、それを棄却するか否かの判定を行なう。この棄却判定を行なう理由は、本開示の装置において処理対象とする区間は、目的音が発話された場合に限らず、妨害音(音声も非音声も含む)が鳴っている場合も含まれるからである。その区間が目的音か妨害音かを判別するため、デコード時に得られたスコアや信頼度などを用いる。妨害音と判定されたら、今回の認識結果は棄却する。すなわち、以降の処理をスキップしてステップS664に進む。目的音と判定されたら、ステップS662に進む。
ステップS662では、認識結果を図23に示すように後段処理部157に送信する。
この時点で、このデコーダはどの区間とも対応しなくなったため、ステップS663では区間ID(図23に示す区間ID213)に未定義値を代入する。
最後に、ステップS664でデコーダのループを閉じる。
以上で、音声認識処理の説明を終わるとともに、音声系処理の説明を全て終わる。
この時点で、このデコーダはどの区間とも対応しなくなったため、ステップS663では区間ID(図23に示す区間ID213)に未定義値を代入する。
最後に、ステップS664でデコーダのループを閉じる。
以上で、音声認識処理の説明を終わるとともに、音声系処理の説明を全て終わる。
[4-6.画像処理部の処理について]
次に、図26を参照して説明した画像系処理に戻り、ステップS264の口唇画像処理について、図66に示すフローチャートを用いて説明する。
この処理は、口唇画像の動きを用いた発話区間検出であり、この処理は、例えば、特開平10-51889号公報に記載された処理が適用できる。以下では、概略のみ説明する。
この処理を実行するのは、図24に示す画像処理部155の口唇画像処理部221である。
次に、図26を参照して説明した画像系処理に戻り、ステップS264の口唇画像処理について、図66に示すフローチャートを用いて説明する。
この処理は、口唇画像の動きを用いた発話区間検出であり、この処理は、例えば、特開平10-51889号公報に記載された処理が適用できる。以下では、概略のみ説明する。
この処理を実行するのは、図24に示す画像処理部155の口唇画像処理部221である。
まず、ステップS665において、画像入力部154から入力する入力画像中から口唇の形状を持った領域を検出する。
次にステップS666において、前回の画像フレームから検出された更新領域と、今回の画像フレームから検出された口唇領域とを比較し、動きがあるか否かを判定する。動きがあると判定された場合は、ステップS667に進む。動きがないと判定された場合や、ステップS665において口唇領域が検出されなかった場合は、口唇画像処理を終了する。
次にステップS666において、前回の画像フレームから検出された更新領域と、今回の画像フレームから検出された口唇領域とを比較し、動きがあるか否かを判定する。動きがあると判定された場合は、ステップS667に進む。動きがないと判定された場合や、ステップS665において口唇領域が検出されなかった場合は、口唇画像処理を終了する。
ステップS667において、口唇領域の座標を音源方向に変換する。ステップS668において、その音源方向からなる方向点を生成し、フロントエンド部153へ送信する。
次に、図26のフローにおけるステップS265の手画像処理について、図67に示すフローチャートを用いて説明する。この処理は、図24に示す画像処理部155の手画像処理部223の実行する処理である。これは、手の形状が特定の変化をした場合に、それが発話の開始または終了であると判定する処理である。なお、手形状の検出自体については、例えば、特開2012-203439号公報に記載の処理を適用できる。
ステップS671において、画像入力部154から入力する入力画像中から、予め音声区間の開始や終了を示す情報として規定した特定の形状を持つ手の領域を検出する。特定の形状とは、例えばグー・チョキ・パーなどである。
次に、ステップS672において、前回の画像フレームから検出した手領域と、今回の画像フレームから検出した手領域と比較し、それが発話開始相当または発話終了相当の動きであるか判定する。例えば、パーからグーへの変化を前者とし、逆にグーからパーへの変化を後者とするなどの設定を予め規定し、それらをユーザに教示しておく。
画像から検出された手領域の形状変化が、発話開始相当の動きである場合は、ステップS673に分岐し、発話終了相当の動きである場合は、ステップS675に分岐する。どちらの動きでもない場合や、ステップS671において手が検出されなかった場合などは、手画像処理を終了する。
ステップS673に進んだ場合は、音源方向の計算を行なう。例えば、手領域の座標を口唇付近の座標に変換するために所定のオフセットを加え(右手と左手とで別のオフセットを用意する)、その値を、先に図66のフローで説明したステップS667の処理と同様に音源方向に変換する。あるいは、手検出と同時に顔検出も行ない、手の座標と最も近い顔の座標を求め、その値を音源方向に変換する。
ステップS674では、このようにして得られた音源方向と、画像に付与されていたタイムスタンプとを用いて、「発話の始端が検出された」ことをフロントエンド部153に通知する。
フロントエンド部153では、その通知を受けて、始端登録処理(図62のフローに示すステップS622の処理)を行なう。
ステップS674では、このようにして得られた音源方向と、画像に付与されていたタイムスタンプとを用いて、「発話の始端が検出された」ことをフロントエンド部153に通知する。
フロントエンド部153では、その通知を受けて、始端登録処理(図62のフローに示すステップS622の処理)を行なう。
一方、ステップS675に進んだ場合も、ステップS673と同様に音源方向の計算を行なう。ステップS676では、取得した音源方向と、画像に付与されていたタイムスタンプとを用いて、「発話の終端が検出された」ことをフロントエンド部153に通知する。
フロントエンド部153では、その通知を受けて、終端登録処理(図62のフローのステップS624の処理)を行なう。
以上で、画像系処理の説明を終わると共に、すべての処理の説明を終わる。
フロントエンド部153では、その通知を受けて、終端登録処理(図62のフローのステップS624の処理)を行なう。
以上で、画像系処理の説明を終わると共に、すべての処理の説明を終わる。
[5.変形例について]
次に、帆編開示の音声認識装置の変形例について説明する。
以下の2つの変形例について、順次説明する。
変形例1:音声認識の代わりに意味推定を使用した構成例
変形例2:音声検出方法として、ハンドポインタを使用した構成例
次に、帆編開示の音声認識装置の変形例について説明する。
以下の2つの変形例について、順次説明する。
変形例1:音声認識の代わりに意味推定を使用した構成例
変形例2:音声検出方法として、ハンドポインタを使用した構成例
[5-1.変形例1:音声認識の代わりに意味推定を使用した構成例について]
まず、音声認識の代わりに意味推定を使用した構成例について説明する。
意味推定とは、発話音声に対応した単語(または単語列)を求める代わりに、発話の意味や意図のようなものを推定する処理である。意味推定処理についての詳細は、例えば、特開2006-53203号公報や、特開2011-33680号公報に開示されている。以下、意味推定について簡単に説明する。
まず、音声認識の代わりに意味推定を使用した構成例について説明する。
意味推定とは、発話音声に対応した単語(または単語列)を求める代わりに、発話の意味や意図のようなものを推定する処理である。意味推定処理についての詳細は、例えば、特開2006-53203号公報や、特開2011-33680号公報に開示されている。以下、意味推定について簡単に説明する。
辞書と言語モデルとデコーダとからなるセットをタスクと呼ぶ。意味推定器はそのようなタスクを複数用意し、1回の発話に対してそれぞれのタスクを用いてスコアを計算する。そして最も高いスコアを出したタスクをその発話の意味(意図)とする。
例えば、テレビを音声で操作するという使い方において、以下のようなタスクを用意する。
タスク1:音量の増加に関する発話を認識するタスク
(例)「ボリューム上げて」「音をもっと大きく」「音量を大きく」など
タスク2:電源オフに関する発話を認識するタスク
(例)「電源オフ」「スイッチ消して」「テレビを消して」など
タスク1:音量の増加に関する発話を認識するタスク
(例)「ボリューム上げて」「音をもっと大きく」「音量を大きく」など
タスク2:電源オフに関する発話を認識するタスク
(例)「電源オフ」「スイッチ消して」「テレビを消して」など
ユーザの発話が例えば「ボリュームを大きく」である場合、タスク1 の方が高いスコアを出す可能性が高い。そこで、その発話は「音量の増加」という意味を表わしていると見なす。同様に、「スイッチオフ」という発話に対してタスク2の方が高いスコアを出したら、その発話は「電源オフ」という意味を表わしていると見なす。
さらに別のタスクとして、音韻タイプライター(phonemic typewriter)等の、カバー範囲が非常に広いタスクも用意し、それをタスク3とする。ユーザの発話が上記のタスク1・タスク2のどちらとも異なる場合は、タスク3が最も高いスコアを出す可能性が高い。その場合、その発話は「無関係な発話」であると見なす。同様に、音声ではない音についても、タスク3が最高のスコアを出す可能性が高い。そのため、意味推定器を用いることで、ユーザと無関係な音を棄却することもできる。
図15に示す本開示の音声認識装置150の音声認識部156を、このような意味推定を実行する構成とすることが可能である。ただし、このためには新たな構成が必要となる。図15に示す本開示の音声認識装置150の音声認識部156を、意味推定を実行する構成とした場合の構成例について、図68を参照して説明する。
図68に示す音声認識部156は、意味推定処理を行なう音声認識部であり、先に説明した図23の音声認識部156の構成に置き換えて利用可能な構成である。
図68に示すように、辞書684、言語モデル685、デコーダ686をセットにしたものをタスク683と呼ぶ。そして、複数の異なるタスク683-1~Nをセットにしたものをタスクセット682と呼ぶ。
図68に示すように、辞書684、言語モデル685、デコーダ686をセットにしたものをタスク683と呼ぶ。そして、複数の異なるタスク683-1~Nをセットにしたものをタスクセット682と呼ぶ。
特開2006-53203号公報や、特開2011-33680号公報に記載の構成ではタスクセットを1つのみ使用するの対し、本開示の構成は、タスクセットを複数使用する構成としている。図に示す例では、n個のタスクセット682-1~nを有している。
これは、先に説明した図23においてデコーダを複数使用する構成、すなわち図23に示すデコーダ212-1~nを有する構成に対応するものである。
図68に示すように、タスクセット682-1-n各々ごとに、どの区間をデコード中なのかを表わすために区間ID687を保持する。そして、作成中区間から逐次的に生成される抽出結果(特徴量)を各タスクセットに供給するため、タスクセットマネジメント部681を用意する。これは図23に示す構成におけるデコーダマネジメント部211に対応する。タスクセットマネジメント部681には、フロントエンド部153が接続される。
図68に示すように、タスクセット682-1-n各々ごとに、どの区間をデコード中なのかを表わすために区間ID687を保持する。そして、作成中区間から逐次的に生成される抽出結果(特徴量)を各タスクセットに供給するため、タスクセットマネジメント部681を用意する。これは図23に示す構成におけるデコーダマネジメント部211に対応する。タスクセットマネジメント部681には、フロントエンド部153が接続される。
タスクセットマネジメント部681は、図25に示すデコードマネジメント部211と同様、以下の各情報が入力される。
抽出結果バッファリング部166から出力される特徴量(トラッキング部165の生成した音源抽出結果)、
ランキング部167から出力される区間の順位付け結果である優先度情報、
トラッキング部165から出力される消滅区間(または棄却された区間)等の区間更新情報、
これらの各情報を入力する。
抽出結果バッファリング部166から出力される特徴量(トラッキング部165の生成した音源抽出結果)、
ランキング部167から出力される区間の順位付け結果である優先度情報、
トラッキング部165から出力される消滅区間(または棄却された区間)等の区間更新情報、
これらの各情報を入力する。
タスクセットマネジメント部681は、ランキング部165から入力する音声区間の優先度情報に基づき、優先度の高い区間から順に、その区間の特徴量要求としての出力依頼を抽出結果バッファリング部166に出す。この依頼に対応した区間の特徴量を受け取り、各タスクセット682-1~nに送る。また、現在デコード中の区間が無効になっていないか(消滅したり棄却されたりしていないか)、トラッキング部165に問い合わせ、無効になっていた場合は、対応するデコードをキャンセルする。
各タスクセット682-1~nの出力は意味推定結果688であり、この意味推定結果688が後段処理部157に送られる。なお、各タスクセット682内の各デコーダ686は認識結果として単語列も生成できるため、必要に応じて単語列を後段処理に送ってもよい。なお、音響モデル689については、音声認識部156内で1個だけ保持する。
また、辞書684と言語モデル685については、複数のタスクセットの間で必要に応じて共有してもよい。例えば、タスクセットaに含まれるタスク1と、タスクセットbに含まれるタスク1が、同一の辞書と言語モデルを使用するような場合、両方のタスク1の間で、同一の辞書と言語モデルを共有した構成とすることができる。このようにタスク間の共有を利用することで、タスクセットを複数用意してもメモリ使用量の増加を最小限にとどめることができる。
図68に示すような意味推定処理を行なう音声認識部を利用する場合、音声認識処理のシーケンスも、先の実施例で説明したシーケンス(図65)も一部が変更される。
変更箇所について説明する。
変更点1.ステップS651~S664の「デコーダループ」が、「タスクセットのループ」に変更される。
変更点2.ステップS659,ステップS662の「認識結果」が「意味推定結果」に変更される。
これらの点が変更され、その他のシーケンスは、図65に示すシーケンスに従って処理が実行される。
変更箇所について説明する。
変更点1.ステップS651~S664の「デコーダループ」が、「タスクセットのループ」に変更される。
変更点2.ステップS659,ステップS662の「認識結果」が「意味推定結果」に変更される。
これらの点が変更され、その他のシーケンスは、図65に示すシーケンスに従って処理が実行される。
なお、この意味推定を実行する音声認識部を利用した変形例1の利点は、騒がしい環境でも意味推定器が使用できるようになることと、カバー範囲の広いタスクを用意することで、無関係な発話や妨害音の棄却が容易になることである。
以上で、変形例1の説明を終わる。
以上で、変形例1の説明を終わる。
[5-2.変形例2:音声検出方法として、ハンドポインタを使用した構成例について]
次に、変形例2として、音声検出方法として、ハンドポインタを使用した構成例について説明する。
ここでいうハンドポインタとは、ユーザの手の動きをカメラで捉えることでポインタを動かす技術のことであり、マウスポインタの代わりとなるものである。本開示においては、音声区間検出方法として、そのハンドポインタが画面上の特定の領域を指しているか否かを判定する方法が使用可能である。
次に、変形例2として、音声検出方法として、ハンドポインタを使用した構成例について説明する。
ここでいうハンドポインタとは、ユーザの手の動きをカメラで捉えることでポインタを動かす技術のことであり、マウスポインタの代わりとなるものである。本開示においては、音声区間検出方法として、そのハンドポインタが画面上の特定の領域を指しているか否かを判定する方法が使用可能である。
ハンドポインタを音声区間検出に利用した音声認識沿送致を備えた情報処理装置の一例として、テレビ装置の構成例を図69に示す。
テレビ装置は、ディスプレイ691を有する。ディスプレイ691にはハンドポインタ693と音声入力エリア694および各種情報が表示される。ディスプレイ装置の上にはカメラとマイクロホンアレイとが一体化されたデバイス(カメラ&マイクロホンアレイ692)が備えられている。これを用いて、ディスプレイの前にいるユーザの画像および音声を取得する。
テレビ装置は、ディスプレイ691を有する。ディスプレイ691にはハンドポインタ693と音声入力エリア694および各種情報が表示される。ディスプレイ装置の上にはカメラとマイクロホンアレイとが一体化されたデバイス(カメラ&マイクロホンアレイ692)が備えられている。これを用いて、ディスプレイの前にいるユーザの画像および音声を取得する。
ハンドポインタ693は、ユーザの手の動きをカメラ&マイクロホンアレイ692のカメラで取得し、ユーザの手の動きに併せて位置が移動する。すなわち、PCにおけるマウスの代わりに手を利用可能としたマウスポインタのようなものである。ユーザが音声を確実に入力したいときは、ハンドポインタを音声入力エリア694の内側に移動させてから発話を開始し、発話を終了させてからハンドポインタを音声入力エリア694の外側へ移動させる。
次に、ハンドポインタ693と音声入力エリア694とを用いて音声区間検出を行なうための処理について、図70に示すフローチャートを参照して説明する。なお、ハンドポインタは、例えば前述した実施例における手画像に基づく音声区間検出の代わりに利用可能である。
ステップS701において、カメラの撮影画像から手の領域を検出する。手の領域が検出されたら、ステップS702において、その座標を画面上のハンドポインタ693の座標に変換し、その位置にハンドポインタ693を表示する。
次に、ステップS703において、ハンドポインタ693の位置が画面上の音声入力エリア694の内側か否かを判定する。内側であればステップS704へ分岐し、外側であればステップS707へ分岐する。
ステップS704は、ハンドポインタ693音声入力がエリア694内に入ったのが、今回が初めてか否かの判定である。前回のハンドポインタ693の位置も音声入力エリア694内であったら、今回が初めてではないので処理を終了する。前回が音声入力エリア694外であるなら、今回が初めてなので、ステップS705に進む。
ステップS705に進んだ場合は、音源方向の算出を行なう。例えば、先に図67のフローを参照して説明したステップS673の処理と同様に、手検出と同時に顔検出も行ない、手の座標と最も近い顔の座標を求め、その値を音源方向に変換する。
ステップS706では、このようにして得られた音源方向と、画像に付与されていたタイムスタンプとを用いて、「発話の始端が検出された」ことをフロントエンド部153に通知する。
ステップS706では、このようにして得られた音源方向と、画像に付与されていたタイムスタンプとを用いて、「発話の始端が検出された」ことをフロントエンド部153に通知する。
フロントエンド部153では、この通知を受けて、始端登録処理(図62に示すフローのステップS622)を行なう。
一方、ステップS707に進んだ場合も、ステップS704の処理と同様に初回か否かの判定を行なう。前回のハンドポインタ693の位置が音声入力エリア694内であれば、今回初めて音声入力エリア6794の外に出たので、ステップS708に進む。前回も音声入力エリア694外であった場合は、初回ではないので、手画像処理を終了する。
ステップS708に進んだ場合は、ステップS705と同様に音源方向を算出する。
ステップS709では、そうして得られた音源方向と、画像に付与されていたタイムスタンプとを用いて、「発話の終端が検出された」ことをフロントエンド部153に通知する。
フロントエンド部153では、その通知を受けて、終端登録処理(図62に示すフローのステップS624)を行なう。
ステップS709では、そうして得られた音源方向と、画像に付与されていたタイムスタンプとを用いて、「発話の終端が検出された」ことをフロントエンド部153に通知する。
フロントエンド部153では、その通知を受けて、終端登録処理(図62に示すフローのステップS624)を行なう。
なお、この変形例では、図70のフローに従った処理、すなわち、ハンドポインタと音声入力エリアを用いる音声区間検出方式を、図67のフローに従った処理、すなわち、手形状の変化を用いた音声区間検出方式の代わりに用いることを想定しているが、両方式を併用してもよい。その場合、図24の画像処理部155の手画像処理部223が、図67の処理と図70の処理を併せて実行する。
以上で、変形例2の説明を終わる。
以上で、変形例2の説明を終わる。
[6.本開示の音声認識装置の構成と処理の特徴と効果についてのまとめ]
以下、本開示の音声認識装置の構成と処理の特徴と効果についてまとめる。
以下、本開示の音声認識装置の構成と処理の特徴と効果についてまとめる。
1.本開示の音声認識装置の特徴の1つは、音声区間検出と音源抽出とが一体化されていることである。すなわち、発話の始端が検出されてから一定時間が経過した時点で音源抽出用のフィルタを推定し、そこから発話終端まではそのフィルタを適用することで抽出結果を逐次的に生成する。
その結果、発話終了前から音声認識処理を動かすことができるようになるため、発話の終了から認識結果の生成までの遅延を短くすることができる。
言い換えると、発話の区間に対応した観測信号からフィルタを推定する方式の音源抽出の特徴である高い抽出精度を保ったまま、その欠点であった遅延の問題を解決する。
その結果、発話終了前から音声認識処理を動かすことができるようになるため、発話の終了から認識結果の生成までの遅延を短くすることができる。
言い換えると、発話の区間に対応した観測信号からフィルタを推定する方式の音源抽出の特徴である高い抽出精度を保ったまま、その欠点であった遅延の問題を解決する。
2.本開示の音声認識装置の特徴の1つとして、複数の音声区間検出方式を利用して共通のトラッキングを行なう構成であることが挙げられる。この構成により多重検出の問題を解決する。その一方で、始端・終端に対して見極め時間が不要な方式については、その方式専用の始端および終端の登録処理を行なうことで、終端の見極め時間が増大するのを防ぐ。
言い換えると、複数の音声区間検出方式を併用することで検出精度を向上させる一方で、発話の終了から認識結果の生成までの遅延の一部である終端見極め時間の増大を防ぐ。
言い換えると、複数の音声区間検出方式を併用することで検出精度を向上させる一方で、発話の終了から認識結果の生成までの遅延の一部である終端見極め時間の増大を防ぐ。
3.本開示の音声認識装置の特徴の1つとして、複数の音声認識デコーダを有し、そのデコーダと発話区間との対応付けを所定の優先度に基づいて行なうことが挙げられる。この構成により、区間同士に時間的な重複がある場合でも、デコーダに空きが発生するまでの待ち時間を最短にし、結果として、発話の終了から認識結果の生成までの遅延を短縮することができる。
[7.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1) 音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記トラッキング部は、音源単位の音声区間の生成管理を行なう作成中区間管理部を生成し、
生成された作成中区間管理部各々は、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで推定される音声区間を順次更新する音声区間作成処理を実行するとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成する構成であり、
前記トラッキング部は、
前記作成中区間管理部の生成した部分的な音源抽出結果を順次、音声認識部に出力する処理を実行し、
前記音声認識部は、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する音声認識装置。
(1) 音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記トラッキング部は、音源単位の音声区間の生成管理を行なう作成中区間管理部を生成し、
生成された作成中区間管理部各々は、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで推定される音声区間を順次更新する音声区間作成処理を実行するとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成する構成であり、
前記トラッキング部は、
前記作成中区間管理部の生成した部分的な音源抽出結果を順次、音声認識部に出力する処理を実行し、
前記音声認識部は、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する音声認識装置。
(2)前記トラッキング部は、前記作成中区間管理部の各々において、複数の異なる方式に従って検出される複数の音源方向情報を、まとめて時間方向に連結する音声区間作成処理を実行する前記(1)に記載の音声認識装置。
(3)前記トラッキング部は、画像入力部からの入力画像から検出されたユーザの合図が音声区間の始端または終端を意味することを検出した場合、始端または終端の確定処理を即時に実行する前記(1)または(2)に記載の音声認識装置。
(4)前記トラッキング部の作成中区間管理部は、観測信号から特定音源の音声を優先的に抽出する抽出フィルタの生成において、音声区間の始端より前の時点からフィルタ生成時点までの入力観測信号を利用して抽出フィルタを生成する前記(1)~(3)いずれかに記載の音声認識装置。
(5)前記トラッキング部の作成中区間管理部は、観測信号から特定音源の音声を優先的に抽出する抽出フィルタを適用するとともに、前記抽出フィルタの推定で使用される観測信号に含まれる全ての音源の音を減衰させる全死角空間フィルタを推定し、その全死角空間フィルタを適用した結果を前記抽出フィルタの適用結果から減算することで、観測信号に含まれない妨害音の除去を実行して音源抽出結果を生成する前記(1)~(4)いずれかに記載の音声認識装置。
(6)前記トラッキング部の作成中区間管理部は、作成中区間に対応した観測信号において目的音に対する目的音以外の音の混合度合いが高いほど観測信号の透過度を低減させるマスクを周波数ごとおよび時間ごとに変更し、そのマスクを逐次的に観測信号に適用する時間周波数マスキング処理を実行して目的音の音源抽出を実行する前記(1)~(5)いずれかに記載の音声認識装置。
(7)前記音声認識装置は、さらに、前記トラッキング部の生成した音源抽出結果を一時的に格納する抽出結果バッファリング部と、前記抽出結果バッファリング部に格納された各音源に対応する複数の音源抽出結果を音声認識部へ出力する優先度を決定するランキング部を有し、前記ランキング部は、ユーザの明示的合図に基づいて音声区間の始端または終端が決定された音声区間に対応する音源抽出結果の優先度を高く設定する処理を行なう前記(1)~(6)いずれかに記載の音声認識装置。
(8)前記トラッキング部は、画像解析に基づいて得られた発話者の明示的合図に基づいて設定した音声区間を識別するために「登録済み属性」という属性を設定し、前記ランキング部は、前記登録済み属性の設定された音声区間の優先度を高く設定する処理を実行する前記(7)に記載の音声認識装置。
(9)前記ランキング部は、前記音声認識部への出力優先度を以下の基準、すなわち、
(基準1)登録済み属性を持つ音声区間を優先し、登録済み属性を持つ音声区間が複数あるときは、始端が古い方を優先する。
(基準2)登録済み属性を持たない音声区間同士については、終端が既に確定している音声区間を優先し、終端が既に確定している区間が複数あるときは、終端が古い方を優先する。
(基準3)終端が未確定の音声区間同士については、始端が古い方を優先する。
上記各基準を適用して優先度を決定する前記(8)に記載の音声認識装置。
(基準1)登録済み属性を持つ音声区間を優先し、登録済み属性を持つ音声区間が複数あるときは、始端が古い方を優先する。
(基準2)登録済み属性を持たない音声区間同士については、終端が既に確定している音声区間を優先し、終端が既に確定している区間が複数あるときは、終端が古い方を優先する。
(基準3)終端が未確定の音声区間同士については、始端が古い方を優先する。
上記各基準を適用して優先度を決定する前記(8)に記載の音声認識装置。
(10)前記音声認識部は、音声認識処理を実行する複数のデコーダを有し、デコーダの空き状況に応じて前記トラッキング部の生成した音源抽出結果の出力要求を行い、前記優先度に応じて音源抽出結果を入力し、優先度の高い音源抽出結果に対する音声認識を優先して実行する前記(7)に記載の音声認識装置。
(11)前記トラッキング部は、前記作成中区間管理部の各々において、前記音声認識部における音声認識で使用される形式に適合した特徴量を生成し、生成した特徴量を前記音声認識部に出力する前記(1)~(10)いずれかに記載の音声認識装置。
(12)前記特徴量は、メル周波数ケプストラム係数(Mel-Frequency Cepstral Coefficients)である前記(11)に記載の音声認識装置。
(13)前記音声認識装置は、さらに、マイクロホンアレイを有する音入力部と、
カメラを有する画像入力部と、前記音入力部からの入力音に基づいて音源方向を推定する音源方向推定部と、前記画像入力部からの入力画像の解析に基づいて音源方向の解析を行なう画像処理部を有し、前記トラッキング部は、前記音源方向推定部の生成した音源方向情報と、画像処理部の生成した音源方向情報を適用して、1つの統合した音声区間情報を生成する前記(1)~(12)いずれかに記載の音声認識装置。
カメラを有する画像入力部と、前記音入力部からの入力音に基づいて音源方向を推定する音源方向推定部と、前記画像入力部からの入力画像の解析に基づいて音源方向の解析を行なう画像処理部を有し、前記トラッキング部は、前記音源方向推定部の生成した音源方向情報と、画像処理部の生成した音源方向情報を適用して、1つの統合した音声区間情報を生成する前記(1)~(12)いずれかに記載の音声認識装置。
(14)前記画像処理部は、前記画像入力部からの入力画像の解析に基づいて、発話者の口唇領域の動きを検出する口唇画像処理部と、発話者の手領域の動きを検出する手画像処理部を有する前記(13)に記載の音声認識装置。
(15)前記トラッキング部は、前記画像処理部から入力する発話者の明示的合図に基づいて設定した音声区間を識別するために「登録済み属性」という属性を設定し、前記登録済み属性の設定された音声区間と、登録済み属性のない音声区間とのマージ処理を行なう場合、登録済み属性の設定された音声区間に他の音声区間を統合するマージ処理を行なう前記(13)に記載の音声認識装置。
(16)前記トラッキング部は、前記登録済み属性の設定された音声区間については、音源方向情報が入力されない場合、方向情報を自動生成して音声区間の延長処理を実行する前記(15)に記載の音声認識装置。
(17)前記音声認識部は、認識対象語彙から構成される辞書と言語モデルのペアである認識タスクを複数有し、複数の異なるタスクの中からユーザ発話に最も適合するタスクを探索する処理である意味推定処理を実行する構成である前記(1)~(16)いずれかに記載の音声認識装置。
(18)前記音声認識装置は、さらに、発話者を撮影した画像の解析によって得られる発話者の手の動きに同期させて表示部上のポインタを動かし、該ポインタの動きに応じて、発話区間の始端または終端を判定する構成を有する前記(1)~(17)いずれかに記載の音声認識装置。
音声認識装置において実行する音声認識方法であり、
前記音声認識装置は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記トラッキング部が、
音源単位の音声区間の生成管理を行なう作成中区間管理部を生成し、
生成された作成中区間管理部各々は、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで音声区間を順次更新する音声区間作成処理を実行するとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成し、
前記トラッキング部が、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行し、
前記音声認識部が、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する音声認識方法。
前記音声認識装置は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記トラッキング部が、
音源単位の音声区間の生成管理を行なう作成中区間管理部を生成し、
生成された作成中区間管理部各々は、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで音声区間を順次更新する音声区間作成処理を実行するとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成し、
前記トラッキング部が、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行し、
前記音声認識部が、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する音声認識方法。
音声認識装置において音声認識処理を実行させるプログラムであり、
前記音声認識装置は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記プログラムは、
前記トラッキング部に、音源単位の音声区間の生成管理を行なう作成中区間管理部を生成させ、
生成された作成中区間管理部各々に、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで音声区間を順次更新する音声区間作成処理を実行させるとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成させ、
前記トラッキング部に、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行させ、
前記音声認識部に、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力させるプログラム。
前記音声認識装置は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記プログラムは、
前記トラッキング部に、音源単位の音声区間の生成管理を行なう作成中区間管理部を生成させ、
生成された作成中区間管理部各々に、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで音声区間を順次更新する音声区間作成処理を実行させるとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成させ、
前記トラッキング部に、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行させ、
前記音声認識部に、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力させるプログラム。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本開示の一実施例の構成によれば、複数の音が混在した音信号から、迅速に目的音を抽出する装置、方法が実現される。
具体的には、音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、音源抽出結果を入力して音声認識処理を実行する音声認識部を有する。トラッキング部は、音源単位の音声区間の生成管理を行なう作成中区間管理部各々が音源方向の逐次的検出を行い、検出結果を時間方向に接続した音声区間を順次更新するとともに、音声区間始端から所定時間経過後に音源抽出用のフィルタを生成し、生成フィルタを逐次的に入力信号に適用して音源抽出結果を逐次的に生成する。音声認識部は、部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する。
上記構成により、音声区間の終了が検出されるのを待つことなく、迅速に音声認識結果を生成して出力することが可能となる。
具体的には、音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、音源抽出結果を入力して音声認識処理を実行する音声認識部を有する。トラッキング部は、音源単位の音声区間の生成管理を行なう作成中区間管理部各々が音源方向の逐次的検出を行い、検出結果を時間方向に接続した音声区間を順次更新するとともに、音声区間始端から所定時間経過後に音源抽出用のフィルタを生成し、生成フィルタを逐次的に入力信号に適用して音源抽出結果を逐次的に生成する。音声認識部は、部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する。
上記構成により、音声区間の終了が検出されるのを待つことなく、迅速に音声認識結果を生成して出力することが可能となる。
31 マイクロホンアレイ
32 カメラ
33 音声区間検出部
34 音源抽出部
35 音声認識部
135 抽出結果バッファリング部
135a~c バッファ
137 音声認識部
139 デコーダ
150 音声認識装置
151 音入力部
152 AD変換部
153 フロントエンド部
154 画像入力部
155 画像処理部
156 音声認識部
157 後段処理部
158 タイムスタンプ生成部
159 制御部
161 STFT部
162 音声・非音声判別部
163 音源方向推定部
164 観測信号バッファリング部
165 トラッキング部
166 抽出結果バッファリング部
167 ランキング部
171 作成中区間管理部
211 デコーダマネジメント部
212-1~n デコーダ
213 区間ID
216 音響モデル
217 辞書
218 言語モデル
219 認識結果
221 口唇画像処理部
222 顔画像処理部
223 手画像処理部
681 タスクセットマネジメント部
682-1~n タスクセット
683-1~N タスク
684 辞書
685 言語モデル
686 デコーダ
688 意味推定結果
691 ディスプレイ
692 カメラ&マイクロホンアレイ
693 ハンドポインタ
694 音声入力エリア
32 カメラ
33 音声区間検出部
34 音源抽出部
35 音声認識部
135 抽出結果バッファリング部
135a~c バッファ
137 音声認識部
139 デコーダ
150 音声認識装置
151 音入力部
152 AD変換部
153 フロントエンド部
154 画像入力部
155 画像処理部
156 音声認識部
157 後段処理部
158 タイムスタンプ生成部
159 制御部
161 STFT部
162 音声・非音声判別部
163 音源方向推定部
164 観測信号バッファリング部
165 トラッキング部
166 抽出結果バッファリング部
167 ランキング部
171 作成中区間管理部
211 デコーダマネジメント部
212-1~n デコーダ
213 区間ID
216 音響モデル
217 辞書
218 言語モデル
219 認識結果
221 口唇画像処理部
222 顔画像処理部
223 手画像処理部
681 タスクセットマネジメント部
682-1~n タスクセット
683-1~N タスク
684 辞書
685 言語モデル
686 デコーダ
688 意味推定結果
691 ディスプレイ
692 カメラ&マイクロホンアレイ
693 ハンドポインタ
694 音声入力エリア
Claims (20)
- 音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記トラッキング部は、音源単位の音声区間の生成管理を行なう作成中区間管理部を生成し、
生成された作成中区間管理部各々は、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで推定される音声区間を順次更新する音声区間作成処理を実行するとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成する構成であり、
前記トラッキング部は、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行し、
前記音声認識部は、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する音声認識装置。 - 前記トラッキング部は、前記作成中区間管理部の各々において、
複数の異なる方式に従って検出される複数の音源方向情報を、まとめて時間方向に連結する音声区間作成処理を実行する請求項1に記載の音声認識装置。 - 前記トラッキング部は、
画像入力部からの入力画像から検出されたユーザの合図が音声区間の始端または終端を意味することを検出した場合、始端または終端の確定処理を即時に実行する請求項1に記載の音声認識装置。 - 前記トラッキング部の作成中区間管理部は、
観測信号から特定音源の音声を優先的に抽出する抽出フィルタの生成において、
音声区間の始端より前の時点からフィルタ生成時点までの入力観測信号を利用して抽出フィルタを生成する請求項1に記載の音声認識装置。 - 前記トラッキング部の作成中区間管理部は、
観測信号から特定音源の音声を優先的に抽出する抽出フィルタを適用するとともに、前記抽出フィルタの推定で使用される観測信号に含まれる全ての音源の音を減衰させる全死角空間フィルタを推定し、その全死角空間フィルタを適用した結果を前記抽出フィルタの適用結果から減算することで、観測信号に含まれない妨害音の除去を実行して音源抽出結果を生成する請求項1に記載の音声認識装置。 - 前記トラッキング部の作成中区間管理部は、
作成中区間に対応した観測信号において目的音に対する目的音以外の音の混合度合いが高いほど観測信号の透過度を低減させるマスクを周波数ごとおよび時間ごとに変更し、そのマスクを逐次的に観測信号に適用する時間周波数マスキング処理を実行して目的音の音源抽出を実行する請求項1に記載の音声認識装置。 - 前記音声認識装置は、さらに、
前記トラッキング部の生成した音源抽出結果を一時的に格納する抽出結果バッファリング部と、
前記抽出結果バッファリング部に格納された各音源に対応する複数の音源抽出結果を音声認識部へ出力する優先度を決定するランキング部を有し、
前記ランキング部は、
ユーザの明示的合図に基づいて音声区間の始端または終端が決定された音声区間に対応する音源抽出結果の優先度を高く設定する処理を行なう請求項1に記載の音声認識装置。 - 前記トラッキング部は、
画像解析に基づいて得られた発話者の明示的合図に基づいて設定した音声区間を識別するために「登録済み属性」という属性を設定し、
前記ランキング部は、
前記登録済み属性の設定された音声区間の優先度を高く設定する処理を実行する請求項7に記載の音声認識装置。 - 前記ランキング部は、前記音声認識部への出力優先度を以下の基準、すなわち、
(基準1)登録済み属性を持つ音声区間を優先し、登録済み属性を持つ音声区間が複数あるときは、始端が古い方を優先する。
(基準2)登録済み属性を持たない音声区間同士については、終端が既に確定している音声区間を優先し、終端が既に確定している区間が複数あるときは、終端が古い方を優先する。
(基準3)終端が未確定の音声区間同士については、始端が古い方を優先する。
上記各基準を適用して優先度を決定する請求項8に記載の音声認識装置。 - 前記音声認識部は、
音声認識処理を実行する複数のデコーダを有し、
デコーダの空き状況に応じて前記トラッキング部の生成した音源抽出結果の出力要求を行い、前記優先度に応じて音源抽出結果を入力し、優先度の高い音源抽出結果に対する音声認識を優先して実行する請求項7に記載の音声認識装置。 - 前記トラッキング部は、前記作成中区間管理部の各々において、
前記音声認識部における音声認識で使用される形式に適合した特徴量を生成し、生成した特徴量を前記音声認識部に出力する請求項1に記載の音声認識装置。 - 前記特徴量は、メル周波数ケプストラム係数(Mel-Frequency Cepstral Coefficients)である請求項11に記載の音声認識装置。
- 前記音声認識装置は、さらに、
マイクロホンアレイを有する音入力部と、
カメラを有する画像入力部と、
前記音入力部からの入力音に基づいて、音源方向を推定する音源方向推定部と、
前記画像入力部からの入力画像の解析に基づいて音源方向の解析を行なう画像処理部を有し、
前記トラッキング部は、前記音源方向推定部の生成した音源方向情報と、画像処理部の生成した音源方向情報を適用して、1つの統合した音声区間情報を生成する請求項1に記載の音声認識装置。 - 前記画像処理部は、
前記画像入力部からの入力画像の解析に基づいて、発話者の口唇領域の動きを検出する口唇画像処理部と、
発話者の手領域の動きを検出する手画像処理部を有する請求項13に記載の音声認識装置。 - 前記トラッキング部は、
前記画像処理部から入力する発話者の明示的合図に基づいて設定した音声区間を識別するために「登録済み属性」という属性を設定し、
前記登録済み属性の設定された音声区間と、登録済み属性のない音声区間とのマージ処理を行なう場合、登録済み属性の設定された音声区間に他の音声区間を統合するマージ処理を行なう請求項13に記載の音声認識装置。 - 前記トラッキング部は、
前記登録済み属性の設定された音声区間については、音源方向情報が入力されない場合、方向情報を自動生成して音声区間の延長処理を実行する請求項15に記載の音声認識装置。 - 前記音声認識部は、
認識対象語彙から構成される辞書と言語モデルのペアである認識タスクを複数有し、複数の異なるタスクの中からユーザ発話に最も適合するタスクを探索する処理である意味推定処理を実行する構成である請求項1に記載の音声認識装置。 - 前記音声認識装置は、さらに、
発話者を撮影した画像の解析によって得られる発話者の手の動きに同期させて表示部上のポインタを動かし、該ポインタの動きに応じて、発話区間の始端または終端を判定する構成を有する請求項1に記載の音声認識装置。 - 音声認識装置において実行する音声認識方法であり、
前記音声認識装置は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記トラッキング部が、
音源単位の音声区間の生成管理を行なう作成中区間管理部を生成し、
生成された作成中区間管理部各々は、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで音声区間を順次更新する音声区間作成処理を実行するとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成し、
前記トラッキング部が、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行し、
前記音声認識部が、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力する音声認識方法。 - 音声認識装置において音声認識処理を実行させるプログラムであり、
前記音声認識装置は、
音源方向と音声区間を検出し、音源抽出処理を実行するトラッキング部と、
前記トラッキング部から音源抽出結果を入力して音声認識処理を実行する音声認識部を有し、
前記プログラムは、
前記トラッキング部に、音源単位の音声区間の生成管理を行なう作成中区間管理部を生成させ、
生成された作成中区間管理部各々に、
音源方向の逐次的検出を行い、検出結果を時間方向に接続することで音声区間を順次更新する音声区間作成処理を実行させるとともに、
音声区間始端から所定時間経過後に音源抽出用の抽出フィルタを生成し、生成した抽出フィルタを逐次的に入力音声信号に適用して音声区間の部分的な音源抽出結果を逐次的に生成させ、
前記トラッキング部に、
前記作成中区間管理部の生成した部分的な音源抽出結果を音声認識部に順次出力する処理を実行させ、
前記音声認識部に、
前記トラッキング部から入力する部分的な音源抽出結果に対する音声認識処理を逐次的に実行して、音声認識結果を出力させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/766,246 US10475440B2 (en) | 2013-02-14 | 2013-12-20 | Voice segment detection for extraction of sound source |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013026551 | 2013-02-14 | ||
JP2013-026551 | 2013-02-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014125736A1 true WO2014125736A1 (ja) | 2014-08-21 |
Family
ID=51353755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/084202 WO2014125736A1 (ja) | 2013-02-14 | 2013-12-20 | 音声認識装置、および音声認識方法、並びにプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10475440B2 (ja) |
WO (1) | WO2014125736A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110473517A (zh) * | 2018-05-09 | 2019-11-19 | 和硕联合科技股份有限公司 | 语音检测方法以及语音检测装置 |
US20220115002A1 (en) * | 2020-10-14 | 2022-04-14 | Beijing Horizon Robotics Technology Research And Development Co., Ltd. | Speech recognition method, speech recognition device, and electronic equipment |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014219467A (ja) * | 2013-05-02 | 2014-11-20 | ソニー株式会社 | 音信号処理装置、および音信号処理方法、並びにプログラム |
US10057764B2 (en) | 2014-01-18 | 2018-08-21 | Microsoft Technology Licensing, Llc | Privacy preserving sensor apparatus |
US10134425B1 (en) * | 2015-06-29 | 2018-11-20 | Amazon Technologies, Inc. | Direction-based speech endpointing |
US9818427B2 (en) * | 2015-12-22 | 2017-11-14 | Intel Corporation | Automatic self-utterance removal from multimedia files |
US10878832B2 (en) * | 2016-02-16 | 2020-12-29 | Nippon Telegraph And Telephone Corporation | Mask estimation apparatus, mask estimation method, and mask estimation program |
JP2018159759A (ja) * | 2017-03-22 | 2018-10-11 | 株式会社東芝 | 音声処理装置、音声処理方法およびプログラム |
JP6646001B2 (ja) * | 2017-03-22 | 2020-02-14 | 株式会社東芝 | 音声処理装置、音声処理方法およびプログラム |
US10339929B2 (en) * | 2017-06-27 | 2019-07-02 | Google Llc | Speech recognition using acoustic features in conjunction with distance information |
CN110914899B (zh) * | 2017-07-19 | 2023-10-24 | 日本电信电话株式会社 | 掩模计算装置、簇权重学习装置、掩模计算神经网络学习装置、掩模计算方法、簇权重学习方法和掩模计算神经网络学习方法 |
CN107464567A (zh) * | 2017-07-24 | 2017-12-12 | 深圳云知声信息技术有限公司 | 语音识别方法及装置 |
CN109767774A (zh) | 2017-11-08 | 2019-05-17 | 阿里巴巴集团控股有限公司 | 一种交互方法和设备 |
CN109859749A (zh) * | 2017-11-30 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 一种语音信号识别方法和装置 |
US11150869B2 (en) | 2018-02-14 | 2021-10-19 | International Business Machines Corporation | Voice command filtering |
JP6916130B2 (ja) * | 2018-03-02 | 2021-08-11 | 株式会社日立製作所 | 話者推定方法および話者推定装置 |
US11200890B2 (en) | 2018-05-01 | 2021-12-14 | International Business Machines Corporation | Distinguishing voice commands |
US11238856B2 (en) * | 2018-05-01 | 2022-02-01 | International Business Machines Corporation | Ignoring trigger words in streamed media content |
CN113412516B (zh) * | 2019-02-06 | 2024-04-05 | 谷歌有限责任公司 | 处理自动语音识别asr请求的方法和系统 |
CN111627425B (zh) * | 2019-02-12 | 2023-11-28 | 阿里巴巴集团控股有限公司 | 一种语音识别方法及系统 |
CN110517663B (zh) * | 2019-08-01 | 2021-09-21 | 北京语言大学 | 一种语种识别方法及识别系统 |
US11355108B2 (en) | 2019-08-20 | 2022-06-07 | International Business Machines Corporation | Distinguishing voice commands |
KR20220062621A (ko) * | 2019-09-17 | 2022-05-17 | 노키아 테크놀로지스 오와이 | 공간적 오디오 파라미터 인코딩 및 관련 디코딩 |
KR20210061115A (ko) * | 2019-11-19 | 2021-05-27 | 엘지전자 주식회사 | 인공지능형 로봇 디바이스의 음성 인식 방법 |
US11348253B2 (en) | 2020-01-09 | 2022-05-31 | Alibaba Group Holding Limited | Single-channel and multi-channel source separation enhanced by lip motion |
WO2022076404A1 (en) * | 2020-10-05 | 2022-04-14 | The Trustees Of Columbia University In The City Of New York | Systems and methods for brain-informed speech separation |
TWI761018B (zh) * | 2021-01-05 | 2022-04-11 | 瑞昱半導體股份有限公司 | 語音擷取方法以及語音擷取系統 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09264328A (ja) | 1996-03-26 | 1997-10-07 | Nippon Seiko Kk | 転がり軸受 |
JP2007279517A (ja) * | 2006-04-10 | 2007-10-25 | Kobe Steel Ltd | 音源分離装置、音源分離装置用のプログラム及び音源分離方法 |
JP2009185084A (ja) | 2006-10-26 | 2009-08-20 | Kyodo Yushi Co Ltd | グリース組成物及び軸受 |
JP2010121975A (ja) * | 2008-11-17 | 2010-06-03 | Advanced Telecommunication Research Institute International | 音源定位装置 |
JP2011107603A (ja) * | 2009-11-20 | 2011-06-02 | Sony Corp | 音声認識装置、および音声認識方法、並びにプログラム |
JP2012150237A (ja) * | 2011-01-18 | 2012-08-09 | Sony Corp | 音信号処理装置、および音信号処理方法、並びにプログラム |
WO2012105385A1 (ja) * | 2011-02-01 | 2012-08-09 | 日本電気株式会社 | 有音区間分類装置、有音区間分類方法、及び有音区間分類プログラム |
JP2012226068A (ja) * | 2011-04-19 | 2012-11-15 | Honda Motor Co Ltd | 対話装置 |
JP2012234150A (ja) * | 2011-04-18 | 2012-11-29 | Sony Corp | 音信号処理装置、および音信号処理方法、並びにプログラム |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6393372B1 (en) * | 1999-05-17 | 2002-05-21 | Eugene Rzyski | Automated frequency stepping noise measurement system |
US6732073B1 (en) * | 1999-09-10 | 2004-05-04 | Wisconsin Alumni Research Foundation | Spectral enhancement of acoustic signals to provide improved recognition of speech |
JP4600705B2 (ja) | 2000-02-28 | 2010-12-15 | ソニー株式会社 | 音声認識装置および音声認識方法、並びに記録媒体 |
US7117145B1 (en) * | 2000-10-19 | 2006-10-03 | Lear Corporation | Adaptive filter for speech enhancement in a noisy environment |
JP4581549B2 (ja) | 2004-08-10 | 2010-11-17 | ソニー株式会社 | 音声処理装置および方法、記録媒体、並びにプログラム |
US20060185027A1 (en) * | 2004-12-23 | 2006-08-17 | David Bartel | Systems and methods for identifying miRNA targets and for altering miRNA and target expression |
ATE501591T1 (de) * | 2004-12-24 | 2011-03-15 | Alcatel Lucent | Testverfahren und einrichtung zur identifizierung von internen leitungsproblemen |
JP4182444B2 (ja) | 2006-06-09 | 2008-11-19 | ソニー株式会社 | 信号処理装置、信号処理方法、及びプログラム |
CN103312536A (zh) * | 2006-07-31 | 2013-09-18 | 适应性频谱和信号校正股份有限公司 | 分析和减轻数字用户线路中的噪声的方法和装置 |
JP4868999B2 (ja) * | 2006-09-22 | 2012-02-01 | 富士通株式会社 | 音声認識方法、音声認識装置及びコンピュータプログラム |
US8219406B2 (en) * | 2007-03-15 | 2012-07-10 | Microsoft Corporation | Speech-centric multimodal user interface design in mobile technology |
JP4950733B2 (ja) * | 2007-03-30 | 2012-06-13 | 株式会社メガチップス | 信号処理装置 |
US8001838B2 (en) * | 2007-08-07 | 2011-08-23 | Roberts Jerry B | Electronic pitching trainer and method for determining the true speed of a sports projectile |
US8705506B2 (en) * | 2007-11-16 | 2014-04-22 | Qualcomm Incorporated | Time reservation for a dominant interference scenario in a wireless communication network |
US8280087B1 (en) * | 2008-04-30 | 2012-10-02 | Arizona Board Of Regents For And On Behalf Of Arizona State University | Delivering fundamental frequency and amplitude envelope cues to enhance speech understanding |
JP2011033680A (ja) | 2009-07-30 | 2011-02-17 | Sony Corp | 音声処理装置及び方法、並びにプログラム |
EP2306449B1 (en) * | 2009-08-26 | 2012-12-19 | Oticon A/S | A method of correcting errors in binary masks representing speech |
JP5617083B2 (ja) * | 2009-09-03 | 2014-11-05 | 本田技研工業株式会社 | コマンド認識装置、コマンド認識方法、及びコマンド認識ロボット |
JP5299233B2 (ja) | 2009-11-20 | 2013-09-25 | ソニー株式会社 | 信号処理装置、および信号処理方法、並びにプログラム |
EP2469741A1 (en) * | 2010-12-21 | 2012-06-27 | Thomson Licensing | Method and apparatus for encoding and decoding successive frames of an ambisonics representation of a 2- or 3-dimensional sound field |
US8660847B2 (en) * | 2011-09-02 | 2014-02-25 | Microsoft Corporation | Integrated local and cloud based speech recognition |
US9547647B2 (en) * | 2012-09-19 | 2017-01-17 | Apple Inc. | Voice-based media searching |
JP6253226B2 (ja) * | 2012-10-29 | 2017-12-27 | 三菱電機株式会社 | 音源分離装置 |
US20150046418A1 (en) * | 2013-08-09 | 2015-02-12 | Microsoft Corporation | Personalized content tagging |
-
2013
- 2013-12-20 US US14/766,246 patent/US10475440B2/en not_active Expired - Fee Related
- 2013-12-20 WO PCT/JP2013/084202 patent/WO2014125736A1/ja active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09264328A (ja) | 1996-03-26 | 1997-10-07 | Nippon Seiko Kk | 転がり軸受 |
JP2007279517A (ja) * | 2006-04-10 | 2007-10-25 | Kobe Steel Ltd | 音源分離装置、音源分離装置用のプログラム及び音源分離方法 |
JP2009185084A (ja) | 2006-10-26 | 2009-08-20 | Kyodo Yushi Co Ltd | グリース組成物及び軸受 |
JP2010121975A (ja) * | 2008-11-17 | 2010-06-03 | Advanced Telecommunication Research Institute International | 音源定位装置 |
JP2011107603A (ja) * | 2009-11-20 | 2011-06-02 | Sony Corp | 音声認識装置、および音声認識方法、並びにプログラム |
JP2012150237A (ja) * | 2011-01-18 | 2012-08-09 | Sony Corp | 音信号処理装置、および音信号処理方法、並びにプログラム |
WO2012105385A1 (ja) * | 2011-02-01 | 2012-08-09 | 日本電気株式会社 | 有音区間分類装置、有音区間分類方法、及び有音区間分類プログラム |
JP2012234150A (ja) * | 2011-04-18 | 2012-11-29 | Sony Corp | 音信号処理装置、および音信号処理方法、並びにプログラム |
JP2012226068A (ja) * | 2011-04-19 | 2012-11-15 | Honda Motor Co Ltd | 対話装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110473517A (zh) * | 2018-05-09 | 2019-11-19 | 和硕联合科技股份有限公司 | 语音检测方法以及语音检测装置 |
US20220115002A1 (en) * | 2020-10-14 | 2022-04-14 | Beijing Horizon Robotics Technology Research And Development Co., Ltd. | Speech recognition method, speech recognition device, and electronic equipment |
Also Published As
Publication number | Publication date |
---|---|
US10475440B2 (en) | 2019-11-12 |
US20160005394A1 (en) | 2016-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2014125736A1 (ja) | 音声認識装置、および音声認識方法、並びにプログラム | |
US9812122B2 (en) | Speech recognition model construction method, speech recognition method, computer system, speech recognition apparatus, program, and recording medium | |
US9922640B2 (en) | System and method for multimodal utterance detection | |
CN109964270B (zh) | 用于关键短语识别的系统和方法 | |
US20150325240A1 (en) | Method and system for speech input | |
US20080281593A1 (en) | Apparatus for Reducing Spurious Insertions in Speech Recognition | |
CN109313892B (zh) | 稳健的语言识别方法和系统 | |
JP5024154B2 (ja) | 関連付け装置、関連付け方法及びコンピュータプログラム | |
US11289085B2 (en) | Automatic turn delineation in multi-turn dialogue | |
KR20160010961A (ko) | 컨텍스트 정보를 이용하는 음성 인식 방법 및 장치 | |
JP2012047924A (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
Chowdhury et al. | Bayesian on-line spectral change point detection: a soft computing approach for on-line ASR | |
US20200219487A1 (en) | Information processing apparatus and information processing method | |
JP4236597B2 (ja) | 音声認識装置、音声認識プログラムおよび記録媒体。 | |
JP2007322523A (ja) | 音声翻訳装置及びその方法 | |
KR20040068023A (ko) | 은닉 궤적 은닉 마르코프 모델을 이용한 음성 인식 방법 | |
EP4018439B1 (en) | Systems and methods for adapting human speaker embeddings in speech synthesis | |
WO2018078885A1 (ja) | 対話装置、対話方法及び対話用コンピュータプログラム | |
JP4700522B2 (ja) | 音声認識装置及び音声認識プログラム | |
JP2011107314A (ja) | 音声認識装置、音声認識方法及び音声認識プログラム | |
Lecouteux et al. | Distant speech recognition for home automation: Preliminary experimental results in a smart home | |
US10629197B2 (en) | Voice processing system and voice processing method for predicting and executing an ask-again request corresponding to a received request | |
WO2019079962A1 (en) | VOICE RECOGNIZING SYSTEM AND METHOD HAVING DECOUPLING AWAKENING EXPRESSION | |
CN112216270A (zh) | 语音音素的识别方法及系统、电子设备及存储介质 | |
JP2008145989A (ja) | 音声識別装置および音声識別方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13875313 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14766246 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13875313 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |