WO2004029931A1 - Spracherkennungseinrichtung, steuereinrichtung und verfahren zum rechnergestützten ergänzen eines elektronischen wörterbuches für eine spracherkennungseinrichtung - Google Patents
Spracherkennungseinrichtung, steuereinrichtung und verfahren zum rechnergestützten ergänzen eines elektronischen wörterbuches für eine spracherkennungseinrichtung Download PDFInfo
- Publication number
- WO2004029931A1 WO2004029931A1 PCT/DE2003/003160 DE0303160W WO2004029931A1 WO 2004029931 A1 WO2004029931 A1 WO 2004029931A1 DE 0303160 W DE0303160 W DE 0303160W WO 2004029931 A1 WO2004029931 A1 WO 2004029931A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- speech recognition
- speech
- spoken
- sequence
- dictionary
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000001419 dependent effect Effects 0.000 claims description 44
- 239000013589 supplement Substances 0.000 claims description 8
- 230000001502 supplementing effect Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 5
- 238000013528 artificial neural network Methods 0.000 claims description 2
- 238000003384 imaging method Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 9
- 230000005236 sound signal Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 75
- 239000011159 matrix material Substances 0.000 description 36
- 239000013598 vector Substances 0.000 description 33
- 230000009471 action Effects 0.000 description 27
- 238000012790 confirmation Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 22
- 230000007704 transition Effects 0.000 description 22
- 238000012549 training Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 11
- 230000000875 corresponding effect Effects 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 230000009466 transformation Effects 0.000 description 10
- 238000007792 addition Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000001276 controlling effect Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000011511 automated evaluation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000002087 whitening effect Effects 0.000 description 1
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/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/065—Adaptation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/187—Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams
-
- 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/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
- G10L2015/0631—Creating reference templates; Clustering
Definitions
- Speech recognition device control device and method for computer-aided supplementing of an electronic dictionary for a speech recognition device
- the invention relates to a speech recognition device, a control device and a method for computer-aided addition of an electronic dictionary for a speech recognition unit.
- Speech recognition device in the form of an embedded system is embedded in a low-computing environment, usually a unit for speaker-independent speech recognition and a separate unit for speaker-dependent speech recognition are provided.
- Hidden Markov models are usually used as part of speaker-independent speech recognition, and a speech recognition device based on the principle of DTW (Dynamic Time Warping) is usually used for the detection of speaker-dependent utterances.
- DTW Dynamic Time Warping
- speaker-dependent and speaker-independent utterances can thus only be taken into account and processed in speech recognition states that are logically completely separate from one another, each of which is different
- Speech recognition units can be used.
- An example of this is in the automatic speech recognition in the frame to be seen in a telephone application in which, for example, a predefined speaker-independent command “call” is stored in the context of speech recognition using hidden Markov models, that is to say, a method for speaker-independent speech recognition is used to recognize this command.
- a DTW speech recognition unit is usually used to recognize dynamically expandable entries of a user-definable telephone book, in which, for example, a name of a subscriber spoken by a user can be stored.
- [2] describes a method and a device for speech recognition, in which a vocabulary is added a new word spoken by a user as a phoneme sequence, the phoneme sequence being formed from speaker-independent phonemes.
- [3] describes a method for generating a speech model and a speech recognition device. If a spoken voice signal is not recognized as having a sufficient match with one of the entries in the electronic dictionary, an additional entry is generated for the electronic dictionary. According to [3], this is done by changing the statistical expected value of the stored Hidden Markov models using the formed spoken sequences of the spoken-in speech signal, and the Hidden Markov models modified in this way are stored as a new entry in the electronic dictionary.
- the invention is based on the problem of ensuring speaker-independent and speaker-dependent speech recognition in a simple manner.
- a speech recognition device has a speech recognition unit for speaker-independent speech recognition.
- the speech recognition unit can be set up in such a way that the speaker-independent speech recognition is based on Hidden Markov models, each of which is trained on a given utterance, for example a word or a sequence of words, stored in an electronic dictionary.
- the speech recognition unit for speaker-independent speech recognition can alternatively be configured by means of statistical classifiers which are trained in a corresponding manner for speaker-independent speech recognition using an electronic dictionary with the utterances intended for speech recognition.
- statistical classifiers For example, methods using artificial neural networks can be used as statistical classifiers.
- an electronic dictionary is provided in the speech recognition device, in which the words taken into account in the context of the speaker-independent speech recognition are stored.
- the electronic dictionary is electrically coupled to the speech recognition unit.
- a speech signal mapping unit coupled to the electronic dictionary is provided for mapping a speech signal spoken by a user onto a sequence of spoken units which represents the spoken speech signal.
- the sequence of spoken-language units is set up in such a way that it can be processed by the speech recognition unit for speaker-independent speech recognition as part of the speaker-independent speech recognition.
- dictionary supplement unit for supplementing the electronic dictionary with the sequence of spoken language units formed by the speech signal mapping unit intended.
- sequence of spoken-language units is fed to the electronic dictionary, so that the electronic dictionary expanded by the sequence of spoken-language units can in turn be used for speaker-independent speech recognition.
- a sound sequence selection unit for selecting a sequence of spoken units from a plurality of sequences of spoken units is the same
- Speech is provided according to a predetermined selection criterion.
- the sound sequence selection unit is set up in such a way that only the selected sequence or sequences of spoken units is supplied to the dictionary supplement unit or are used to supplement the electronic dictionary with the selected sequences or sequences of spoken units which meet or satisfy the selection criterion.
- Account is taken of the fact that, in particular when determining a sequence of phonetic units at the phoneme level, the accuracy for speech recognition can be significantly improved if the same utterance is spoken several times by one user or also by several users and one or more of these utterances with regard to a predetermined selection criterion high-quality representatives are or are determined and these are then supplied to the electronic dictionary for supplementation by means of the dictionary supplement unit.
- a control device for controlling a technical system has a speech recognition device as described above, the control commands provided for controlling the technical system for speaker-independent speech recognition being stored in the electronic dictionary.
- the following method steps are carried out by a computer:
- a sequence of spoken units is formed, which represents the voice signal.
- the sequence of spoken-language units is set up in such a way that it can be processed by the speech recognition unit as part of the speaker-independent speech recognition.
- the electronic dictionary is supplemented by the formed sequence of spoken units.
- a sequence of spoken units is formed. For each of the sequences of spoken units it is checked whether it fulfills a predetermined selection criterion and the sequence or sequences of spoken units becomes or are only stored in the electronic dictionary if they satisfy the selection criterion.
- the speech signal can be spoken into the speech recognition device by a user at the beginning of the method, but can alternatively already be stored in a purely analog or in analog-digitized form as a speech signal and can be fed to the computer, for example, via a telecommunications network.
- the voice signals can also alternatively already in the memory of the
- Speech recognition device may be stored, in which case the formation of the sequence of spoken units is based on the signals already stored in the memory.
- the electronic dictionary formed and expanded in the manner described above is particularly suitable for use in speaker-independent speech recognition.
- the possibility is created for the first time of using user-defined entries or utterances spoken by a user, which can thus actually be regarded as speaker-dependent utterances, also in the context of a method for speaker-independent speech recognition, whereby a sufficient quality of the new utterances with regard to the recognition performance is guaranteed ,
- the embodiments of the invention explained below relate both to the speech recognition device and to the method for supplementing the electronic dictionary for a speech recognition unit for speaker-independent speech recognition and the control device for controlling a technical system.
- the sequence of spoken units can be a phoneme chain, alternatively a sequence of syllables, letters or a sequence of other spoken units, which is suitable for speech recognition.
- phonemes as spoken-language units enables the use of units known per se in the context of speech recognition for forming phonemes from speech signals, which means that the speech recognition device can be implemented at low cost.
- the sound sequence selection unit is set up in such a way that a distance value is determined for each sequence of spoken units, with which the distance of the sequence of spoken units to at least one word stored in the electronic dictionary is described in a comparison space and that The specified selection criterion depends on the distance between the sequence of spoken units and at least one in the electronic one
- the knowledge is taken into account that a new entry in the electronic dictionary is only useful if the distance between the
- Feature vectors of the new entry in a comparison space is sufficiently large from the feature vectors of the already existing entries in the electronic dictionary.
- the invention is particularly suitable in a scenario in which the speech recognition device is set up as an embedded system, since in such a case the available computing power is relatively low and thus switching between different speech recognition units, for example a speech recognition unit for speaker-dependent speech recognition and one Speech recognition unit for speaker-independent speech recognition, is not feasible.
- a control device for controlling a technical system is, for example, a control device for controlling a telecommunications device, for example a telephone device, a fax machine, a PDA, a notebook, etc., or for controlling a terminal device in which at least two of the device functionalities described above are used are integrated into a common device.
- these devices which can be controlled with a clearly defined and limited vocabulary, can be controlled by means of a voice dialog, which is relatively clear and thus can be implemented inexpensively even by means of an embedded system.
- the electronic dictionary can be used very advantageously for speaker-independent speech recognition.
- Figure 1 is a block diagram of a speech recognition device according to an embodiment of the invention.
- FIG. 2 shows a block diagram in which the merging of an electronic dictionary with words previously entered and trained exclusively for speaker-independent speech recognition and a dictionary in which statements relating to speaker-dependent speech recognition are stored, which are merged according to the invention into a common dictionary for speaker-independent speech recognition;
- Figure 3 is a table in which the intended
- Speech recognition states and the state transitions between different speech recognition states are shown;
- FIG. 4 shows a dialog state diagram according to an embodiment of the invention
- FIG. 5 is a flow chart in which the individual method steps for speech recognition and
- FIG. 6 shows a detailed illustration of the individual method steps for initializing the speech recognition device according to an exemplary embodiment of the invention
- FIG. 7 shows a message flow diagram in which the individual method steps for carrying out a voice dialog are shown in accordance with an exemplary embodiment of the invention
- FIG. 8 shows a message flow diagram in which the individual steps for supplementing an electronic dictionary in the speech recognition device according to an embodiment of the invention are shown;
- Figure 9 shows a first functional diagram according to an embodiment of the invention.
- FIGS. 11A and 11B are tables in which speech prompts presented to the user in the context of the speech dialogue according to a first exemplary embodiment of the invention (FIG. 9A) and additional actions of the speech recognition device (FIG. 9B) according to a first exemplary embodiment of the invention are shown;
- FIG. 12 shows a speech dialog state diagram of a first state according to a first exemplary embodiment of the
- FIGS. 13A and 13B show a speech dialog state diagram of a second state of a speech recognition device according to the first exemplary embodiment of the invention
- FIGS. 14A and 14B show a speech dialog state diagram of a third state of a speech recognition device according to the first exemplary embodiment of the invention (FIG. 14A) and the associated flow diagram (FIG. 14B);
- FIGS. 15A and 15B show a speech dialog state diagram of a fourth state of a speech recognition device according to the first exemplary embodiment of the invention (FIG. 15A) and the associated flow diagram (FIG. 15B);
- FIGS. 16A and 16B show a speech dialog state diagram of a fifth state of a speech recognition device according to the first exemplary embodiment of the invention (FIG. 16A) and the associated flow diagram (FIG. 16B);
- FIGS. 17A and 17B show a speech dialog state diagram of a sixth state of a speech recognition device according to the first exemplary embodiment of the invention (FIG. 17A) and the associated flow diagram (FIG. 17B);
- FIGS. 18A and 18B show a speech dialog state diagram of a seventh state of a speech recognition device according to the first exemplary embodiment of the invention (FIG. 18A) and the associated flow diagram
- FIG. 19 shows a speech dialog state diagram of a first state of a speech recognition device according to a second exemplary embodiment of the invention.
- Figure 20 is a speech dialog state diagram of a second
- Figure 21 is a speech dialog state diagram of a third
- FIG. 22 shows a telecommunication device with a speech recognition device according to an embodiment of the invention
- Figure 23 shows a car radio with a speech recognition device according to an embodiment of the invention.
- FIG. 1 shows a speech recognition device 100 according to an embodiment of the invention.
- the speech recognition device 100 operates in a first operating mode as a speech recognition device, in which Speech recognition mode, the speech recognition device a spoken utterance 101, spoken by a user (not shown) of the speech recognition device 100, is recognized using a method for speaker-independent speech recognition.
- Speech recognition mode the speech recognition device a spoken utterance 101, spoken by a user (not shown) of the speech recognition device 100, is recognized using a method for speaker-independent speech recognition.
- Operating mode hereinafter also referred to as dictionary supplement mode, a spoken utterance is converted into a sequence of spoken units, subsequently into a sequence of phonemes, and, as will be explained in more detail below, possibly added to the electronic dictionary as a supplementary entry and therein saved.
- the speech signal 101 spoken by the user is fed to a microphone 102 and, as the recorded electrical analog signal 103, is subjected to preprocessing, in particular preamplification by means of a preprocessing unit 104, in particular by means of a preamplifier, and as preprocessed and amplified analog signal 105 to an analog / digital converter 106 supplied, converted there into a digital signal 107 and supplied as a digital signal 107 to a computer 108.
- preprocessing in particular preamplification by means of a preprocessing unit 104, in particular by means of a preamplifier, and as preprocessed and amplified analog signal 105 to an analog / digital converter 106 supplied, converted there into a digital signal 107 and supplied as a digital signal 107 to a computer 108.
- the microphone 102, the preprocessing unit 104, in particular the amplification unit, and the analog / digital converter 106 can be implemented as separate units or else as units integrated in the computer 108.
- the digitized signal 107 is fed to the computer 108 via its input interface 109.
- the computer 108 also has a microprocessor 110, a memory 111 and an output interface 112, all of which are coupled to one another by means of a computer bus 113.
- the method steps described below, in particular the methods for supplementing the electronic dictionary and the respectively provided speech dialogue, are carried out by means of the microprocessor 110.
- An electronic dictionary 114 which contains the entries which contain speech words as reference words, is stored in the memory 111.
- DSP digital signal processor
- Computer program stored which is set up for speaker-independent speech recognition.
- the algorithms used can be implemented in hard-wired logic, that is, directly in hardware.
- the computer 108 is coupled by means of the input interface 109 to a keyboard 115 and a computer mouse 116 via electrical lines 117, 118 or a radio connection, for example an infrared connection or a Bluetooth connection.
- a radio connection for example an infrared connection or a Bluetooth connection.
- the computer 108 is coupled to a loudspeaker 121 and an actuator 122 by means of the output interface 114.
- Actuator 122 generally represents every possible actuator in the context of the control of a technical system in FIG. 1, for example implemented in the form of a hardware switch or in the form of a computer program in the event that, for example, a telecommunications device or another technical system, for example a Car radio, a stereo, a VCR, a television, the computer itself or any other technical system to be controlled.
- a telecommunications device or another technical system for example a Car radio, a stereo, a VCR, a television, the computer itself or any other technical system to be controlled.
- the preprocessing unit 104 has a filter bank with a plurality of bandpasses, which measure the energy of the input speech signal 103 in individual frequency bands. So-called short-term spectra are formed by means of the filter bank, in that the output signals of the
- Band passes are rectified, smoothed and sampled at short intervals, according to the exemplary embodiment every 10 msec.
- the so-called cepstrum coefficients of two successive time windows as well as their temporal first derivation and their temporal second derivative are determined and combined to form a super feature vector and fed to the computer 108.
- Speech recognition based on the principle of the hidden Markov models, implemented for speaker-independent speech recognition, according to the exemplary embodiment in the DSP 123.
- a hidden Markov model is stored for each basic entry, each in the following manner using a training data record, that is to say a set of training courses Voice signals, spoken by one or more training users, is determined.
- the training of the Hidden Markov models takes place in three phases:
- a third phase in which the code book, that is, the HMM prototype feature vectors, for a number of each selected in a selection step
- Feature vector components are calculated.
- HMM training The entirety of these three phases is referred to below as the training of the Hidden Markov models (HMM training).
- the HMM training is carried out using the DSP 123 as well as using predefined training scripts, clearly illustrated by suitably designed computer programs.
- each phonetic unit formed that is to say each phoneme, is divided into three successive phoneme segments, corresponding to an initial phase (first phoneme segment), a central phase (second phoneme segment) and an end phase (third phoneme segment).
- Phoneme segment of a sound, i.e. a phoneme.
- each sound is modeled in a three-state sound model, that is, with a three-state HMM.
- the three phoneme segments are lined up in a Bakis topology or, generally, a left-right topology, and the concatenation of these three lined up segments is calculated in the
- a Viterbi algorithm for decoding the feature vectors which are formed from the input speech signal 101 is carried out in the speech recognition mode. After segmentation, the LDA matrix is determined using an LDA matrix calculation unit.
- the LDA matrix is used to transform a respective super feature vector y to a feature vector x according to the following rule:
- the LDA matrix A is determined in such a way that • the components of the feature vector x in the statistical
- the statistical variances within a segment class are normalized on a statistical average
- Nj is the number of super feature vectors yj in class j.
- each super feature vector y has a dimension Dy of
- any number of vector components adapted to the respective application can be contained in the super feature vector yv, for example up to 20 cepstrums coefficients and their associated temporal first derivatives and second derivatives.
- the average intra-scatter matrix Sw w is defined as:
- the average inter-scattering matrix Sfc > is defined as:
- the LDA matrix A is broken down according to the following rule:
- the first transformation matrix U is used to diagonalize the average intra-scattering matrix S and is determined by transforming the positively definite and symmetrical average intra-scattering matrix S w into its eigenvector space.
- the average intra-scatter matrix S w is a diagonal matrix, whose components are positive and greater than or equal to zero. The components whose values are greater than zero correspond to the average variance in the respective dimension defined by the corresponding vector component.
- the second transformation matrix W is used to normalize the average variances and is determined according to the following rule:
- the transformation U-W is also called whitening.
- the unit matrix results for the matrix BT • S_ w • B, which remains unchanged with any orthonormal linear transformation.
- V B J ⁇ b B (13)
- the values ⁇ ⁇ j are the eigenvalues of the average inter
- Scattering matrix S_b and represent a measure for the so-called pseudo-entropy of the feature vector components, which is also referred to below as the information content of the feature vector components. Note that the trace of each matrix is invariant with respect to any one
- Feature vector components According to this exemplary embodiment, a
- the mm Dimensional reduction made by the mm are sorted in order of decreasing size and the ⁇ ⁇ values are omitted, that is to say disregarded, which are smaller than a predetermined threshold value.
- the predetermined threshold value can also be defined cumulatively.
- the LDA matrix A can then be adapted by sorting the lines according to the eigenvalues ⁇ ⁇ and omitting the lines which belong to the sufficiently "small” variances and thus have only a low information content (low pseudo-entropy).
- the last method for the partial method in the course of training the Hidden Markov models is the clustering of the feature vectors, which is carried out by means of a cluster unit and which results as a result
- Codebook has, in each case specifically for a training data record with a predetermined number of feature vector components.
- the entirety of the representatives of the segment classes is referred to as a code book and the representatives themselves are also referred to as prototypes of the phoneme segment class.
- prototype feature vectors are determined in accordance with the Baum-Welch training described in [1].
- the basic entries of the electronic dictionary that is to say the basic entries for speaker-independent speech recognition, were created and stored in the manner described above and the corresponding hidden Markov models were trained.
- the electronic dictionary with the basic entries 201 is designated by the reference symbol 200 in FIG.
- a sequence 203 of phonemes is determined in each case for one or more utterances which are spoken by a user and which are clearly referred to in their entirety as a speaker-dependent dictionary 202 in FIG. 2 and as one such a sequence 203 of phonemes is stored as a new entry in the common electronic dictionary 204, which now contains the basic entries 201 and the new entries 203 in the form of phoneme chains.
- the new electronic dictionary 204 thus clearly contains the basic entries 201 as well as the linguistic utterances converted into phoneme chains, that is to say the originally speaker-dependent entries, which can be regarded as speaker-independent representatives of new entries due to the conversion into phoneme chains.
- the common electronic dictionary 204 thus forms the search space for the Viterbi search in the context of speaker-independent speech recognition.
- the expressions of a user are clearly mapped to a sequence of phonemes and a phoneme dictionary 202 is formed which contains the sequences of phonemes (phoneme chains).
- the addition of the user-defined entries, that is to say the phoneme chains, to the electronic dictionary 200 is made possible, as will be explained in more detail below, in particular by means of a file management in the computer 108, by means of which the speaker-dependent list entries and the basic entries are stored in the speaker-independent Dictionary 200 and the communication with the speech recognition application is realized and managed.
- the microprocessor 110 is the SDA 80D51U-A controller from Infineon
- DSP digital signal processor
- Electronic messages are used for communication between the microprocessor 110 and the DSP 123 from Oak in order to trigger predetermined events and actions in the microprocessor 110 or the DSP 123.
- HMM states Messages for different speech recognition states, also referred to below as HMM states, are provided:
- the speech recognizer has the following four HMM speech recognition states:
- An operating mode state RUN 304 As can be seen from the state transition diagram 300 in FIG. 3, the following state transitions are provided.
- the initialization state INIT 301 can be changed to the stop state STOP 302, which happens automatically when all databases are loaded (step 305).
- Initialization state INIT 301 are passed if the loaded databases are inconsistent (step 306), in which case the InitHMMSRDefault message is transmitted from the DSP 123 to the microprocessor 110.
- the DSP 123 goes into the PAUSE state 303 (step 307).
- the DSP 123 After receiving the "RUN" command in the form of the StartHMMSR message from the microprocessor 110, the DSP 123 goes into the
- the pause state PAUSE 303 can be changed to the initialization state INIT 301 (step 309) if the databases are inconsistent. This occurs in the case when the DSP 123 receives the InitHMMSRDefault message from the microprocessor 110.
- the DSP 123 After receiving the "STOP" command in the form of the StopHMMSR message from the microprocessor 110, the DSP 123 changes to the STOP state STOP 302 (step 310). After receiving the "RUN" command in the form of the StartHMMSR message from the microprocessor 110, the DSP 123 changes from the pause state PAUSE 303 to the operating mode state 304 (step 311).
- the speech recognition unit can return from the RUN 304 operating mode state to the INIT 301 initialization state if the databases are inconsistent (step 312). This happens when the DSP 123 receives the InitHMMSRDefault message from the microprocessor 110.
- the speech recognition unit After receiving the "STOP" command in the form of the StopHMMSR message from the microprocessor 110, the speech recognition unit, in other words the DSP 123, returns from the RUN 304 operating mode state to the STOP 302 stop state (step 313).
- the speech recognition unit changes from the operating mode state RUN 304 to the pause state PAUSE 303 after receiving the command "PAUSE"
- Step 314 This happens when the DSP 123 receives the PauseHMMSR message from the microprocessor 110.
- InitHMMSRParams This message initiates the loading of the speech recognition parameters into the Oak DSP 123,
- This message starts loading the program to determine the LDA matrix
- the Oak Software is informed in the DSP 123 that the Switched Memory Block (SMB), according to this embodiment of 16 KByte size, is accessible to the Oak Software, since the total number of blocks and segments contained in the Application to be taken into account by the speech recognizer in which microprocessor 110 is known.
- SMB Switched Memory Block
- This message informs the Oak DSP 123 that the speech recognizer should go into the deactivated state
- This message tells the Oak DSP 123 that the speech recognizer should be stopped and in the
- Stop state 302 should pass, • CodebookBlockLoadedAndSwitched.
- InitHMMSRDefault • InitHMMSRParams, StartLoadHMMLDA, StartLoadHMMDictionary, PauseHMMSR, StopHMMSR, • CodebookBlockLoadedAndSwitched.
- SetHMMSearchParams (minSt bleTi e, wordStartupPenalty, transitionPenalty) are provided, with which the search parameters minStableTime, wordStartupPenalty and transitionPenalty can be set for the speaker-dependent dictionary.
- the search parameter minStableTime specifies the time - in units of the number of frames - within which the hypothesis must not change in order to output the message HypothesisStable.
- the search parameters wordStartupPenalty and transitionPenalty are used within the search to calculate the optimal pf.
- the search parameter transitionPenalty specifies a penalty value that evaluates a transition from a state i to a state j.
- the search parameter wordStartupPenalty specifies an initial penalty value that is used to enter a new word model.
- This message can be sent to the speech recognizer in the Oak DSP 123 in any state of the firmware of the DSP 123
- Microprocessor 110 are transmitted. With the message SetHMMSearchParams (minStableTime, wordStartupPenalty, transitionPenalty) the search is reset and the parameters for the search space are defined.
- SetHMMSearchParams minStableTime, wordStartupPenalty, transitionPenalty
- a speech dialog is used for the interactive communication of the speech recognizer with a human user in order to allow the user predefined control options and thus an interactive intervention in the system to be controlled, that is to say in the computer 108 using the speech recognizer.
- Every speech dialog i.e. every speech application, starts from a basic state after its activation.
- Voice application defines a number of commands, which are also referred to below as keywords. Each command can have a single word or multiple words. Each command is linked to an action that is uniquely assigned to the respective command (see voice dialog state diagram 400 in FIG. 4).
- Actions 408, each associated with a command 406 in the form of a command-action tuple (407, 409) can be a device, such as a CD player or a communication device, or another element of one
- Control a stereo or general technical system and terminate the speech recognition application, or perform additional actions in the same step, triggered with the same command, or for example output a sound by means of the loudspeaker 121, and then in the same speech dialog state or in one change to another speech dialog state.
- a temporally preceding speech dialog state X1 401 is shown, as well as its transition to the current speech dialog state X 402, the speech dialog state diagram 400 also taking into account those to be taken into account in the current speech dialog state X 402
- commands 406 and the actions are also 408 each contained in a command-action tuple (407, 409).
- the maximum length of a phoneme sequence is application-dependent with regard to its temporal length or with regard to the number of permissible phonemes.
- 255 states are permissible per list entry 405, so that the largest number of permissible phonemes per list entry 405 is less than or equal to 85.
- the commands are generated from the available vocabulary, that is to say from the words 404 or list entries 405 contained in the dictionary 403.
- Each command 406, 407 is necessarily linked to an action 408, 409.
- the command structure is as follows:
- an action 407, 409 represents a synonym for a reaction of the respective technical system that is fundamentally complex, in abstract terms the reaction of the speech recognizer for actuating the actuator 122 in FIG. 1.
- action 407, 409 for example, a feedback of the speech recognizer and, to indicate to the user that something was recognized, are provided according to the invention Switching to another speech dialog state, loading a new electronic dictionary, or performing an action associated with the command, for example dialing an entered telephone number.
- microprocessor 110 that is to say the 80D51 controller and the digital signal processor 123 from Oak Technologies, is described below in the form of message flow diagrams.
- an acoustic signal is issued to the user by means of the loudspeaker 121 from a start state 501 after the DSP 123 has been activated, that is to say in other words after the speech recognizer has started, in order to signal the user, that the speech recognition process has been activated.
- a transition is made to a first cycle (Cycle_0) 502, in which the HMMs are initialized.
- End state 505 passed, in which the speech recognizer is deactivated.
- test step .506 is used to check whether a change should be made to a new speech dialog state. If this is the case, then the second cycle 503 is carried out for the new speech dialog state.
- a third check step checks whether a change should be made in the electronic dictionary, for example whether a new entry should be added to the electronic dictionary or whether an entry from the electronic
- test step 509 again checks whether the speech recognition is to be ended.
- the end state 505 is passed over and the speech recognizer is deactivated, otherwise a branch is made to the second test step 506, in which it is checked whether a new speech dialog state is to be assumed.
- FIG. 6 shows the implementation of the first cycle 502 in detail in a message flow diagram 600.
- StartHMMSRFlowgraph 601 is transmitted from the microprocessor 110 to the DSP 123, whereby the respective HMM in the DSP 123 is started.
- the DSP 123 In response to the StartHMMSRFlowgraph 601 message, the DSP 123 sends a confirmation message 602 to the microprocessor 110.
- a message InitHMMSRParams 603 is then sent by the microprocessor 110 to the DSP 123, which activates the loading of the speech recognition parameters into the DSP 123.
- a confirmation message 604 is transmitted from the DSP 123 to the microprocessor 110.
- a StartLoadHMMLDA 605 message is sent from the microprocessor 110 to the DSP 123; to load the computer program, which causes the determination of an LDA matrix, as described above, for the respective
- the DSP 123 sends a message SMBRequestLoadHMMLDA 606 to the microprocessor 110, which responds to this message with a confirmation message 607, with which the microprocessor 110 indicates that the program codes necessary for performing a linear discriminant analysis are available in a switched memory block.
- StartLoadHMMDictionary 608 which is sent from the microprocessor 110 to the DSP 123, the microprocessor 110 transmits to the DSP 123 the electronic dictionary for the basic dialog state of the respective speech dialog in the respective application in the
- the DSP 123 responds to the receipt of the StartLoadHMMDictionary 608 message with a message
- SMBRequestLoadHMMDictionary 609 with which the active vocabulary of the respective electronic dictionary is requested by the microprocessor 110.
- This request SMBRequestLoadHMMDictionary 609 is acknowledged with a confirmation message 610 from the microprocessor 110 after it has been received.
- the DSP 123 then sends a message
- SMBRequestCodebookBlock 611 transmitted to the microprocessor 110 and the microprocessor 110 responds to it with a message CodebookBlockLoadedAndSwitched 612, with which the microprocessor 110 transmits the switched memory blocks (SMBs) with the requested codebook data to the DSP 123.
- SMBs switched memory blocks
- the DSP requests additional blocks in which the required code book, in other words the required code book data, is contained.
- the microprocessor 110 in turn reacts to the message SMBRequestCodebookBlock 613 with a message CodebookBlockLoadedAndSwitched 614, with which it transmits one or more further SMBs with the required code book data to the DSP 123, the total number of blocks and required segments now being known in the speech recognizer ,
- the speech recognizer then goes into the stop state
- STOP 302 over and leaves this state only after receipt of the "Start" command, which is transmitted by the microprocessor 110 of the DSP 123 using the StartHMMSR 615 message, and the DSP 123 confirms receipt of the StartHMMSR 615 message with a confirmation message 616.
- the DSP 123 transmits a message SMBRequestCodebookBlock 617 to the microprocessor 110 at periodic intervals, which is descriptively hot for each frame, which then periodically sends a response message, likewise for each frame in the form of a message CodebookBlockLoadedAndSwitched 618 to the DSP 123 with which the SMB was switched and a new codebook block was transmitted by the microprocessor 110 to the DSP 123.
- the messages SMBRequestCodebookBlock 617 and CodebookBlockLoadedAndSwitched 618 are exchanged for each frame between the microprocessor 110 and the DSP 123 until the DSP 123 transmits the speech recognition result in a message HMMHypothesisStable 619 to the microprocessor 110, which receives an acknowledgment message 620 upon receipt responding.
- the DSP 123 Despite transmitting the speech recognition result, the DSP 123 remains in the RUN mode
- a speech recognition result is thus available in the microprocessor 110 and the microprocessor 110 now decides what should happen next in the speech dialog, depending on the application.
- a telecommunication device in particular a telephone
- a method for speaker-independent speech recognition is used to determine which device is actually to be controlled, for example whether a CD player, a tape recorder, a cassette recorder, a radio or a telecommunications terminal (such as a telephone, for example) Fax machine, a teletext device, a mobile device, a PDA, etc.) to be controlled.
- the second cycle 503 is performed, with the exchanged messages between the microprocessor
- DSP 123 sends a SetHMMSearchParams 701 message to DSP 123 to indicate to DSP 123 that it should load new parameters for the search.
- the receipt of this message is confirmed with a confirmation message 702 from the DSP 123 to the microprocessor 110.
- a message StartLoadHMMDictionary 703 is then transmitted from the microprocessor 110 to the DSP 123, by means of which message the loading of the electronic dictionary for the respective new speech dialog state into the DSP 123 is started.
- the signal processor 123 requests the respective electronic dictionary from the microprocessor 110, divided into blocks (SMB) of 16 KB each.
- Confirmation message 806 indicates microprocessor 110 that the requested electronic dictionary is available in SMBs and can be copied from DSP 123 to another location.
- StartHMMSR 706 message which is sent by the microprocessor 110 to the DSP 123 and received by the latter and is confirmed by the DSP 123 by means of a confirmation message 707, the speech recognizer in the DSP 123 goes into the operating mode state
- the DSP 123 transmits a message SMBRequestCodebookBlock 708 for each frame to the microprocessor 110, which responds to this message with a message CodebookBlockLoadedAndSwitched 709, also for each frame.
- the DSP 123 is informed by the microprocessor 110 that the SMB has been switched and that a new code book block with code book data has been loaded on the part of the microprocessor 110 and is therefore available for the DSP 123.
- SMBRequestCodebookBlock 708 and CodebookBlockLoadedAndSwitched 709 are exchanged for each frame, as described above, until the speech recognizer has determined a speech recognition result, whereupon the DSP 123 sends a message HMMHypothesisStable 710 to the microprocessor 110, with which it is simultaneously indicated that and which speech recognition result. determined by the DSP 123.
- the microprocessor 110 responds to the HMMHypothesisStable 710 message with a confirmation message 711 and only transmits it after receiving a “pause” command
- Microprocessor 110 sends DSP 123 a PauseHMMSR 712 message, which responds to receipt of this message with a confirmation message 713, whereupon the speech recognizer goes into the PAUSE 303 pause state.
- the new dictionary is a dynamic dictionary.
- it contains speaker-independent commands and speaker-dependent, user-defined list entries, for example in a telephone book list.
- Flash memory which is provided as memory 111 in the computer 108, is stored.
- new list entries can be added to the electronic dictionary and old, no longer required list entries can be removed from the electronic dictionary, so that a dynamic, that is, a changeable number of words is contained in the electronic dictionary, which can be recognized by the speech recognition unit using a method for speaker-independent speech recognition.
- search space also depends on the current number and size of the basic entries and list entries contained in the dictionary. For this reason, the most efficient file management, in particular efficient management of the electronic dictionaries, makes sense.
- the third cycle 507 is provided in particular for adding new list entries, as is shown in detail below in a message flow diagram 800 (cf. FIG. 8).
- the third cycle 507 is executed when a state transition from one speech dialog state to another speech dialog state does not require a change in the dictionary.
- An example of such a state transition is an intrinsic loop, that is, a transition from a speech dialog state to itself.
- a message StartHMMSR 801 is transmitted from microprocessor 110 to DSP 123, which then acknowledges receipt of the message StartHMMSR 801 with a confirmation message 802, which puts the speech recognizer in the operating mode state RUN 304 is located.
- the DSP 123 transmits a message SMBRequestCodebookBlock 803 in the corresponding manner described above in connection with the second cycle 603 for each frame periodically to the microprocessor 110, which in turn, as described above, responds with a message CodebookBlockLoadedAndSwitched 804 for each frame and thus provides the requested data to the DSP 123.
- HMMHypothesisStable 805 with one.
- Acknowledgment message 806 acknowledged.
- the speech recognizer remains in the RUN 404 operating mode state and only after receiving a "pause" command does the microprocessor 110 send a PauseHMMSR 807 message to the DSP 123, which acknowledges receipt with an acknowledgment message 808, whereupon the speech recognizer goes into the pause state PAUSE 403 transforms.
- the respective HMM is thus initialized in the first cycle 502, which is always carried out after an HMM speech dialog is started.
- the second cycle 503 is performed. In the event that the current dictionary is changed and does not change to another dialog state, the second cycle 503 is also used. If the current speech dialog state remains without changing the dictionary, the third cycle 507 is carried out.
- the first operating level is formed by the communication between the DSP 123 and the microprocessor 110 and the speech recognition carried out by the DSP 123 of a speech signal spoken by a user.
- the second level of operation is the level of software that runs on the microprocessor 110, in other words, the speech dialog.
- the tasks in a speech recognition application are shared between the microprocessor 110 and the DSP 123 such that they are typically less computationally intensive
- the file management in particular the management of the electronic dictionaries, is carried out by the microprocessor 110.
- the microprocessor 110 performs the following tasks in particular:
- the voice dialog starts with the first cycle 502. Each state transition from one voice dialog state to the next causes the second cycle 503 to be executed.
- the speech recognition process is either ended (step 505) or continued in the third cycle 507 or the second cycle 503.
- the speech dialog is started in the first cycle 502, and possibly one or more state transitions were previously made using the second cycle 503 to other speech dialog states.
- the Phoneme chain [entry] represents the recognized speaker-dependent list entry in the dictionary.
- This entry is removed from the list in the respective dictionary.
- the memory management reorganizes the memory which is occupied by the list entry and thus releases it again to be occupied by other list entries. In this way, economical memory management can be implemented.
- a security loop can be provided according to the invention, in which the user is asked again whether he really wants to delete the entered list entry. This possibly means a self-loop in the current speech dialog state without changing the dictionary, that is to say in this case the third cycle 507 is carried out.
- the phoneme chain [entry] and the “delete” command are buffered.
- the speech dialog and thus also the speech recognition process can be ended (step 505) or that
- Speech recognition method can be continued by means of a transition to another dialog state (second cycle 503) or a self-loop in the current dialog state (third cycle 507).
- the system After receiving the command "Add [entry]", which was recognized by the speech recognizer, the system goes into a speech dialog state, in which the phoneme dictionary is loaded, in which phoneme dictionary the available phonemes, each one depend on the language used, are included.
- the speech recognizer asks the user to speak the respective utterance, which is to be added to the dictionary as a list entry, one or more times into the speech recognition system.
- the utterance must be spoken into the speech recognition system at least once.
- the recognition rate for the list entry is the better, the more representational utterances of the same speech utterance are received by the speech recognition unit, in other words, the more often the user speaks the same speech utterance into the speech recognition system.
- a computer variable which determines the number of inputs of a speech utterance into the speech recognition system, in other words, the number of
- Representative utterances indicate which variable is incremented for each new representative utterance.
- the third cycle 507 is carried out, the first utterance is temporarily stored in a buffer as a representative utterance, and the value of the computer variable described above is increased by the value “1”.
- an utterance it is clearly checked for an utterance to be entered as a list entry whether several spoken-in speech signals for the same utterance are sufficiently similar in a comparison room and at least one of the representational utterances of the spoken-in speech signals is sufficiently large apart from the same utterance of the words or list entries already stored in the dictionary and only if these two conditions are met, the electronic dictionary is supplemented by the new spoken utterance.
- Dictionary contained words or list entries can be determined.
- MIN_F0R_WORD This parameter, also referred to below as the intra-similarity value, is used to determine the similarity between the entry candidates
- the inter-threshold is used to determine the similarity between an entry candidate and an entry of the existing vocabulary.
- the optimal threshold values for the respective application are determined independently of one another, the threshold values being determined in a training phase.
- the threshold values determined in the training phase are accordingly used as constant values in operation.
- the training procedure for determining the threshold values is explained below for the specific case of two entry candidates. However, it should be pointed out that the method can be applied to any number of entry candidates for a speech utterance. In addition, the number of speaker-dependent entries is set to N.
- the distance d (si, sj) is used as a measure of similarity.
- the distance d (si, sj) is a measure of the distance between the phoneme sequences SJ_ and Sj. According to this exemplary embodiment, a standardized distance is used, since the phoneme chains can also have unequal lengths.
- both the acceptance rate (AR) and the false acceptance rate (FAR) are determined to determine the intra-threshold value.
- a threshold value variable T takes numbers from the range of values of the intra-threshold value MIN_FOR_WORD.
- the function values AR (T) and FAR (T) are determined using a loop that includes all N entries.
- the function curve is then plotted for both functions using the threshold value variable T.
- the relative distances d (si, sj) between the entry candidates should only assume small values, that is to say the distance should go against the value “0”. For a small one
- Threshold value variable value T the values of the distance d (si, sj) can exceed the threshold value variable value T, so that the acceptance rate would be low. For a large threshold variable value T, however, the acceptance rate increases relatively quickly.
- N ⁇ R (T) is the number of acceptances for a threshold variable value T.
- the false acceptance rate (FAR) is then calculated for unequal acoustic utterances, that is to say if s »SJ applies.
- the values of the relative distance d (si, sj) between the entry candidates should assume larger values.
- the distance d (si, Sj) would often exceed the intra-threshold value and the false acceptance rate is therefore low.
- the false acceptance rate increases relatively slowly.
- Np ⁇ R (T) denotes the number of false acceptances for a threshold variable value T.
- the function FAR (T) will also assume a small value for a small threshold value variable T and in this case there is also a monotonically increasing function curve.
- the optimal intra-threshold value MIN FOR WORD * results at the point the two curves of the functions AR (T) and FAR (T) have the greatest distance from one another, as is outlined in the function diagram 900 in FIG. 9, that is to say:
- the optimal inter-threshold value is then calculated. In this calculation, it should be noted that after each rejection of an utterance to be entered, after a comparison with the content of the electronic dictionary, an acoustic addition, that is to say that the same utterance has to be repeated by the user, should be requested.
- An acoustic addition is to be understood as speaking an additional parameter to the utterance to be spoken in, for example in the event that the utterance is a surname of a person, in addition the first name of that person.
- an acoustic addition is not absolutely necessary according to the invention; alternatively, the application for entry of the new utterance in the electronic dictionary can simply be rejected or the rejection can be made after a predetermined number of spoken
- the threshold value variable T takes numbers from the range of values of the inter-threshold value MAX_TO_DICT.
- the previously determined intra-threshold value MIN_FOR_WORD * can be used to carry out the second optimization task.
- the acceptance rate (ERA) is measured on the inter-threshold value MIN_FOR_WORD *.
- EAR (T) The relative number of speaker-dependent entries EAR (T) is measured for each threshold value variable value T from the value range of the inter-threshold value MAX_TO_DICT, that is, EAR (T) results according to the following rule:
- NEAR (T) denotes the number of accepted candidates for a threshold variable value T.
- the recognition rate for the current threshold value variable T is then determined using the current total vocabulary M (T).
- the total number of entries in the dictionary depends on the current threshold variable value T. If there are speaker-dependent and speaker-independent entries in the respective common dictionary, the overall word estimate M (T) is the sum of the number of speaker-dependent entries and the speaker-independent entries.
- the detection rate ER (T) thus results from the following rule:
- ⁇ RW (T) denotes the number of correctly recognized words for a threshold variable value T.
- a small threshold variable value T For a small threshold variable value T, a relatively large number of entries are recorded in the common electronic dictionary, the risk of confusion is accordingly high, but the word recognition rate is relatively low. For a large threshold variable value T, fewer entries are accepted for storage in the common dictionary, however, due to the increasing distance between the entries in the vocabulary, the Detection rate ER (T) increases.
- the function ER (T) thus has a monotonically increasing profile.
- the corresponding recognition rate ER ( T) can be determined as a function of the threshold value variable T by means of simple reading or by means of an appropriate automated evaluation.
- Threshold value MAX_TO_DICT which is limited to low values of the threshold value variable value T by the minimum recognition rate ER -MIN
- the inter-threshold MAX_TO_DICT is limited upwards by the maximum recognition rate ER] ⁇ [A ⁇ l] ⁇ r with a fixed number of speaker-dependent entries in the dictionary.
- This two-stage statistical method according to the invention has the advantage that, given the number of speaker-dependent entries N, a work area is found in which the recognition rate can move.
- the microprocessor 110 manages the file that represents the dictionary. After the file has been changed, the speech recognition unit can be activated again for speech recognition.
- the second cycle 503 is repeated, in which cycle the message StartLoadHMMDictionary is provided with the respective identifier, that is to say the ID of the respective defined dictionary, it should be noted that the ID remains unchanged for the respective application and cannot be changed at runtime.
- a special dictionary is loaded, namely the phoneme dictionary.
- the utterance is analyzed using the phonemes stored in the phoneme dictionary.
- the file management of the dictionary file which has saved speaker-dependent list entries, is a task of the microprocessor 110, as stated above.
- the speech recognizer After recognizing a command which triggers the application to delete an entry in the dictionary or to add an entry to the dictionary, the speech recognizer can be put into the pause state PAUSE 303 or it can be ended (step 505).
- the process of file management in which the dictionary is accessed starts by comparing the speaker-dependent spoken utterance with all entries stored in the dictionary, both with the speaker-dependent entries and with the speaker-independent entries.
- the file manager is responsible for deleting the entries or changing any entries only in the speaker-dependent list of entries in the dictionary.
- the microprocessor 110 knows the memory size available for the dictionary, that is to say in particular the microprocessor 110 knows at which point in the memory 111 the speaker-dependent list begins and at which it ends.
- the request for a new utterance is rejected.
- the rejection can be done using special voice prompts, for example predefined and recorded voice prompts for the different cases:
- a possible language prompt to be output to the user in the event that an input which was actually intended as a command was not recognized as a word which is contained in the dictionary is: "What?"
- the voice dialogue according to this exemplary embodiment of the invention is a simplified schematic telephone voice dialogue.
- FIGS. 11A and 11B the speech prompts (FIG. 11A) defined according to this exemplary embodiment are listed in a first table 1100 and additional system reactions in table 1101 shown in FIG. 12B.
- a voice prompt is to be understood as a predefined utterance of the system, which either represents a voice utterance of a system administrator that has previously been recorded and is simply reproduced by the computer 108, or it can be a synthesized voice signal that is generated from textual information about a voice signal by the computer 108 was converted.
- FIG. 12 shows an HMM state diagram 1200 for a first state 0 in which the HMMs have not yet started.
- the state diagram 1200 is to be understood in such a way that after receipt of the command 1201 StartHMMSRFlowgraph 1202, the action 1203 of the state transition 1204 into the second state and the output 1205 of the voice prompt ⁇ a>, that is to say the output of the beep by means of the loudspeaker 121.
- FIG. 13A shows an HMM state diagram 1300 for the second state 1 and FIG. 13B shows the associated flow diagram.
- the dictionary in this second HMM state 1 has the following entries: "CD player, cassette recorder, radio, telephone, cancel", in other words, the speech recognizer loads in the second speech dialogue state 1 this dictionary and can only recognize the words contained in this electronic dictionary.
- the speech recognizer recognizes the received words as a command as they are contained in the command list in the speech dialog state diagram 1300, a corresponding state transition is initiated in a next subsequent state, the speech dialogue states 2, 3 and 4 being further explained for reasons of Clarity can not be explained in more detail.
- FIG. 14A and the associated flow diagram 1410 is shown in Fig. 14B.
- the dictionary of the sixth speech dialog state 5 has the following terms: "number, dial, name, save, delete, cancel" as basic entries, that is to say as speaker-independent entries and a list of speaker-dependent entries, designated in FIG. 14A with ⁇ name> ,
- the speech dialogue state diagram 1500 for the seventh speech dialogue state 6 is shown in FIG. 15A and the associated flow diagram 1510 in FIG. 15B.
- the dictionary in the seventh speech dialog state 6 has the following entries: "zero, one, two, three, four, five, six, seven, eight, nine, dial, cancel", which words in the seventh speech dialog state 6 of the speaker-independent speech recognizer can be recognized.
- either the seventh speech dialog state 6 remains, for example in the case when digits are recognized, which are temporarily stored or the first state 0 is entered in the event that the "Select" command or "Cancel" command is detected.
- the system branches to the eighth speech dialog state 7, which is shown in the speech dialog state diagram 1600 in FIG. 16A and the associated sequence diagram 1610 in FIG. 16 is shown.
- an electronic dictionary is provided with the following entries: "zero, one, two, three, four, five, six, seven, eight, nine, dial, cancel".
- this state essentially three commands can be recognized and processed, namely the input of individual digits, whereupon the eighth speech dialog state 7 remains and the respectively recognized digit is temporarily stored; the command to save, whereupon in a further explained the ninth voice dialog state 8 is changed over with the output of the voice prompt ⁇ p> and the beep ⁇ a> and the command "cancel", whereupon the first voice dialog state 0 is passed with the output of the voice prompt ⁇ f> (cf. Fig.llA).
- the voice dialog state diagram 1700 of the ninth voice dialog state 8 is shown in Fig. 17A and the associated flow diagram 1710 is shown in Fig. 17B.
- an input name is converted into a sequence of phonemes using the phoneme dictionary, which is the dictionary of the ninth speech dialogue state.
- the tenth speech dialog state 9 is entered, in which the respective list entry is stored in the electronic dictionary.
- the speech dialogue state diagram 1800 for the tenth speech dialogue state 9 and the associated flow diagram 1810 are shown in FIGS. 1A and 1B.
- FIG. 19 shows a speech dialog state diagram 1900 of a first speech dialog state 1 according to the second exemplary embodiment of the invention.
- the dictionary of the first speech dialog state 1 has the following entries: "Name, Save, Delete, Dial, Phonebook, Help, Yes, No, List of Names".
- the following commands 1902 are defined in the first speech dialog state 1 and can be recognized by the speech recognizer: "Save name, delete ⁇ name>, select ⁇ name>, delete phone book, yes, no, help".
- the first voice dialog state 1 After recognizing the command “delete phone book", the first voice dialog state 1 also remains and the voice prompt is output: "Do you really want to delete the phone book?" and the command "delete phone book” is cached. In the event that the "yes" command is recognized, the first speech dialog state 1 also remains and the command temporarily stored in the buffer with the associated information is executed and, depending on the respective temporarily stored command, file management is started.
- the cached " ⁇ name>” is deleted from the dictionary, that is, the list of names.
- the basic dictionary is also reloaded.
- the actuator controls the telephone in such a way that a communication connection to the subscriber with the associated telephone number is established ,
- the speech recognizer recognizes the command “No”
- the first speech dialog state is lingered on and the memory is initialized as actions and the basic dictionary 1901 is reloaded.
- FIG. 20 shows a speech dialogue state diagram 2000 for a second speech dialogue state 2 according to the second exemplary embodiment of the invention.
- the available phonemes are stored in the phoneme dictionary 2001, the user-defined entries ⁇ name> can be recognized as possible commands 2002 and the action 2003 of a recognized command is intended to remain in the second speech dialog state and to change the number of allowed attempts to increase the value 1, and in the event that the number of permitted attempts has been exceeded, to change to the first speech dialog state 1.
- the first phoneme sequence that is to say the first utterance
- the first phoneme sequence is buffered.
- the utterance is buffered as a second utterance in the form of a second phoneme chain.
- the uttered utterance is cached as a third utterance in the form of a third phoneme chain and file management is then started, which carries out the following method steps:
- the three cached statements are matched.
- the request is rejected, the buffer is emptied and the actions of the second speech dialog state 2003 are carried out again.
- the two best utterances are then compared with the entries contained in the dictionary. If the similarity in the sense of the above description using the inter-threshold is too great, the request for an additional name in the dictionary is rejected and the buffer is emptied. In In this case, the action 2003 of the second speech dialog state is carried out again.
- the desired user-defined entry is added to the dictionary as a list entry.
- the best acoustic representation of the entered linguistic utterance is saved as a voice prompt.
- a speech dialog state diagram 2100 of the third speech dialog state is shown in Fig. 21.
- the electronic dictionary 2101 of the third speech dialog state 3 has the following entries: "zero, one, two, two, three, four, five, six, seven, eight, nine, save, correction, back, cancel, help".
- command chains can be recognized and interpreted by the speech recognizer as commands 2102: " ⁇ numeric keypad>, save, correction, back, cancel, help". If the command " ⁇ number block>" is recognized, the respectively recognized numbers are temporarily stored in the buffer and the speech recognizer remains in the third speech dialog state 3.
- the content of the buffer memory is saved in the list of telephone numbers and a speech dialog state transition takes place to the first speech dialog state 1 with simultaneous loading of the basic dictionary.
- the third speech dialog state 3 also remains and the last digit buffered in the buffer is deleted.
- FIG. 22 shows a mobile radio telephone device 2200, in which the speech recognition device 100 shown in FIG. 1 is integrated. Furthermore, a PDA (Personal Digital Assistant) can be integrated into the mobile radio telephone device 2200 as well as further telecommunication functions, such as for example the sending and / or receiving of
- PDA Personal Digital Assistant
- the mobile radio telephone device 2200 can be expanded by additional multimedia functionalities, for example a camera can be integrated in the mobile radio telephone device 2200.
- Fig. 23 shows a car radio 2300 in which (symbolically shown in Fig. 23) a large number of different components are integrated, for example a navigation system 2301, a CD player 2302, a cassette recorder 2303, a radio 2304, a telephone device with hands-free system 2305 and the speech recognition device 100, as shown in Fig.l.
- the information can be exchanged between the user and the car radio 2300 both by means of the speech recognition device 100 and via a screen 2306.
- the invention is particularly suitable for controlling a system providing a multitude of different functionalities, such as a car radio 2300 provided with a multitude of different functions, since an arbitrarily complicated voice dialog structure can be set up and implemented very flexibly and independently of the speaker.
- Voice dialog state diagram 1710 Flow diagram 1800 voice dialog state diagram 1810 sequence diagram
Landscapes
- Engineering & Computer Science (AREA)
- Artificial Intelligence (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)
- Machine Translation (AREA)
Abstract
Zumindest einem von einem Benutzer eingesprochenen Sprachsignal wird eine Folge lautsprachlicher Einheiten gebildet, welche das Sprachsignal repräsentiert. Die Folge lautsprachlicher Einheiten ist derart eingerichtet, dass die von einer Spracherkennungseinheit im Rahmen einer sprecherunabhängigen Spracherkennung verarbeitet werden kann. Ein elektronisches Wörterbuch, welches an sich Einträge zur sprecherunabhängigen Spracherkennung enthält, wird um die gebildete Folge lautsprachlicher Einheiten ergänzt.
Description
Beschreibung
Spracherkennungseinrichtung, Steuereinrichtung und Verfahren zum rechnergestützten Ergänzen eines elektronischen Wörterbuches für eine Spracherkennungseinrichtung
Die Erfindung betrifft eine Spracherkennungseinrichtung, eine Steuereinrichtung sowie ein Verfahren zum rechnergestützten Ergänzen eines elektronischen Wörterbuches für eine Spracherkennungseinheit .
Im Rahmen der Spracherkennung werden üblicherweise zwei unterschiedliche Verfahren unterschieden, die so genannte sprecherabhängige Spracherkennung und die sprecherunabhängige Spracherkennung.
Insbesondere in Spracherkennungsapplikationen, das heißt Spracherkennungsanwendungen, in denen die
Spracherkennungseinrichtung in Form eines Embedded Systems in einer rechnerleistungs-schwachen Umgebung eingebettet ist, sind üblicherweise eine Einheit für die sprecherunabhängige Spracherkennung und eine davon separate Einheit für die sprecherabhängige Spracherkennung vorgesehen.
Im Rahmen der sprecherunabhängigen Spracherkennung werden üblicherweise Hidden Markov Modelle eingesetzt, für die Erkennung sprecherabhängiger Äußerungen üblicherweise eine Spracherkennungseinrichtung basierend auf dem Prinzip des DTW (Dynamic Time Warping) .
Bei den bisher bekannten Spracherkennungseinrichtungen können somit sprecherabhängige und sprecherunabhängige Äußerungen nur in voneinander logisch vollständig getrennten Spracherkennungs-Zuständen berücksichtigt und verarbeitet werden, die jeweils von unterschiedlichen
Spracherkennungseinheiten verwertet werden. Ein Beispiel hierfür ist in der automatischen Spracherkennung im Rahmen
einer Telefonanwendung zu sehen, bei dem beispielsweise ein vorgegebenes sprecherunabhängiges Kommando „Anrufen" gespeichert ist im Rahmen der Spracherkennung mittels Hidden Markov Modellen, das heißt zum Erkennen dieses Kommandos wird ein Verfahren zur sprecherunabhängige Spracherkennung eingesetzt. Eine DTW-Spracherkennungseinheit wird üblicherweise zum Erkennen von dynamisch erweiterbaren Einträgen eines benutzerdefinierbaren Telefonbuches, in dem beispielsweise ein von einem Benutzer eingesprochener Name eines Teilnehmers gespeichert werden kann, verwendet.
In diesem Zusammenhang ist darauf hinzuweisen, dass aufgrund der Tatsache, dass die Spracherkennungseinheiten auf unterschiedlichen Spracherkennungs-Prinzipien und - Algorithmen basieren, auch unterschiedliche Dateien für die Speicherung der jeweiligen für die Spracherkennung verwendeten Wörterbücher vorgesehen sind.
Grundlagen über Hidden Markov Modelle und somit über die sprecherunabhängige Spracherkennung sind in [1] zu finden.
Ferner sind in [1] Grundlagen über das Dynamic Time Warping, anders ausgedrückt über die so genannte dynamische Zeitverzerrung, beschrieben. In [1] sind weiterhin Grundlagen über den Viterbi-Algorithmus und das Training von Hidden Markov Modellen unter Verwendung eines Viterbi-Algorithmus beschrieben.
Das Umschalten zwischen unterschiedlichen Spracherkennungseinrichtungen, insbesondere das Laden eines neuen, für das jeweilige Spracherkennungsverfahren verwendete
Wörterbuch, und das Initialisieren des jeweiligen Spracherkenners sind sehr zeitaufwendig und somit ist eine Spracherkennung für eine Äußerung eines Benutzers, die sowohl sprecherabhängige als auch sprecherunabhängige Teiläußerungen enthält, sehr bedienungsunfreundlich.
Ferner sind die zusätzlichen Kosten für sowohl die Entwicklung als auch die Speicherung und den Erwerb zweier, voneinander unterschiedlichen, Spracherkennungseinrichtungen erheblich.
In [2] sind ein Verfahren und eine Vorrichtung zur Spracherkennung beschrieben, bei denen einem Wortschatz ein neu von einem Benutzer eingesprochenes Wort als Phonemfolge hinzugefügt wird, wobei die Phonemfolge aus sprecherunabhängigen Phonemen gebildet werden.
[3] beschreibt ein Verfahren zum Erzeugen eines Sprachmodells sowie eine Spracherkennungsvorrichtung. Wird ein eingesprochenes Sprachsignal nicht als mit ausreichender Übereinstimmung mit einem der Einträge in dem elektronischen Wörterbuch erkannt, so wird ein zusätzlicher Eintrag für das elektronische Wörterbuch generiert. Gemäß [3] erfolgt dies, indem unter Verwendung der gebildeten lautsprachlichen Folgen des eingesprochenen Sprachsignals der statistische Erwartungswert der gespeicherten Hidden Markov Modelle verändert wird und die auf diese Weise veränderten Hidden Markov Modelle werden als ein neuer Eintrag in dem elektronischen Wörterbuch gespeichert.
Der Erfindung liegt das Problem zugrunde, auf einfache Weise eine sprecherunabhängige und sprecherabhängige Spracherkennung zu gewährleisten.
Das Problem wird durch die Spracherkennungseinrichtung, die Steuereinrichtung zum Steuern eines technischen Systems mit einer Spracherkennungseinrichtung sowie durch ein Verfahren zum rechnergestützten Ergänzen eines elektronischen Wörterbuches für eine Spracherkennungseinheit zur sprecherunabhängigen Spracherkennung mit den Merkmalen gemäß den unabhängigen Patentansprüchen gelöst.
Eine Spracherkennungseinrichtung weist eine Spracherkennungseinheit zur sprecherunabhängigen Spracherkennung auf . Die Spracherkennungseinheit kann derart eingerichtet sein, dass die sprecherunabhängige Spracherkennung basierend auf Hidden Markov Modellen, die jeweils trainiert sind auf eine vorgegebene, in einem elektronischen Wörterbuch gespeicherte Äußerung, beispielsweise ein Wort oder eine Folge von Worten, erfolgt. Die Spracherkennungseinheit zur sprecherunabhängigen Spracherkennung kann alternativ mittels statistischer Klassifikatoren, die in entsprechender Weise zur sprecherunabhängigen Spracherkennung unter Verwendung eines elektronischen Wörterbuches mit den zur Spracherkennung vorgesehenen Äußerungen trainiert sind, ausgestaltet sein. Als statistische Klassifikatoren können beispielsweise Verfahren unter Verwendung künstlicher neuronaler Netze eingesetzt werden.
Ferner ist in der Spracherkennungseinrichtung ein elektronisches Wörterbuch vorgesehen, in dem die im Rahmen der sprecherunabhängigen Spracherkennung berücksichtigen Wörter gespeichert sind. Das elektronische Wörterbuch ist mit der Spracherkennungseinheit elektrisch gekoppelt.
Ferner ist eine mit dem elektronischen Wörterbuch gekoppelte Sprachsignal-Abbildungseinheit zum Abbilden eines von einem Benutzer eingesprochenen Sprachsignals auf eine Folge lautsprachlicher Einheiten, welche das eingesprochene Sprachsignal repräsentiert, vorgesehen. Die Folge lautsprachlicher Einheiten ist derart eingerichtet, dass sie von der Spracherkennungseinheit zur sprecherunabhängigen Spracherkennung im Rahmen der sprecherunabhängigen Spracherkennung verarbeitet werden kann.
Ferner ist eine Wδrterbuch-Ergänzungseinheit zum Ergänzen des elektronischen Wörterbuches um die von der Sprachsignal- Abbildungseinheit gebildeten Folge lautsprachlicher Einheiten
vorgesehen. Unter Verwendung der Wörterbuch-Ergänzungseinheit wird die Folge lautsprachlicher Einheiten dem elektronischen Wörterbuch zugeführt, so dass das um die Folge lautsprachlicher Einheiten erweiterte elektronische Wörterbuch wiederum zur sprecherunabhängigen Spracherkennung eingesetzt werden kann.
Ferner ist eine Lautfolgen-Auswahleinheit zum Auswählen einer Folge lautsprachlicher Einheiten aus einer Mehrzahl von Folgen lautsprachlicher Einheiten zu einer gleichen
Sprachäußerung gemäß einem vorgegebenen Auswahlkriterium vorgesehen. Die Lautfolgen-Auswahleinheit ist derart eingerichtet, dass nur die ausgewählte Folge oder Folgen lautsprachlicher Einheiten der Wörterbuch-Ergänzungseinheit zugeführt wird oder werden zum Ergänzen des elektronischen Wörterbuches um die ausgewählte Folgen oder Folgen lautsprachlicher Einheiten, welche dem Auswahlkriterium genügt oder genügen.
Gemäß dieser Ausgestaltung der Erfindung wird der Erkenntnis
Rechnung getragen, dass insbesondere bei der Ermittlung einer Folge lautsprachlicher Einheiten auf Phonemebene die Genauigkeit für die Spracherkennung erheblich verbessert werden kann, wenn die gleiche Äußerung von einem Benutzer oder auch von mehreren Benutzern mehrmals eingesprochen wird und aus diesen Äußerungen ein oder mehrere hinsichtlich eines vorgegebenen Auswahlkriterium qualitativ hochwertige Repräsentanten ermittelt wird oder werden und diese dann dem elektronischen Wörterbuch zur Ergänzung mittels der Wörterbuch-Ergänzungseinheit zugeführt wird oder werden.
Eine Steuereinrichtung zum Steuern eines technischen Systems weist eine oben beschriebene Spracherkennungseinrichtung auf, wobei in dem elektronischen Wörterbuch die zum Steuern des technischen Systems vorgesehenen Steuerbefehle zur sprecherunabhängigen Spracherkennung gespeichert sind.
Bei einem Verfahren zum Ergänzen eines elektronischen Wörterbuches für eine Spracherkennungseinheit zur sprecherunabhängigen Spracherkennung, in dem die im Rahmen der sprecherunabhängigen Spracherkennung berücksichtigten Worte gespeichert sind, werden von einem Rechner folgende Verfahrensschritte durchgeführt :
• Zu mindestens einem Sprachsignal, welches von einem Nutzer eingesprochen worden ist, wird eine Folge lautsprachlicher Einheiten gebildet, welche das Sprachsignal repräsentiert. Die Folge lautsprachlicher Einheiten ist derart eingerichtet, dass sie von der Spracherkennungseinheit im Rahmen der sprecherunabhängigen Spracherkennung verarbeitet werden kann. • Das elektronische Wörterbuch wird um die gebildete Folge lautsprachlicher Einheiten ergänzt.
Für mehrere Sprachsignale für eine gleiche Sprachäußerung wird jeweils eine Folge lautsprachlicher Einheiten gebildet. Für jede der Folgen lautsprachlicher Einheiten wird überprüft, ob sie einem vorgegebenen Auswahlkriterium genügt und die Folge oder Folgen lautsprachlicher Einheiten wird oder werden nur dann in dem elektronischen Wörterbuch gespeichert, wenn sie dem Auswahlkriterium genügt oder genügen.
Das Sprachsignal kann zu Beginn des Verfahrens von einem Benutzer in die Spracherkennungseinrichtung eingesprochen werden, kann jedoch alternativ schon in rein analoger oder in analog-digitalisierter Form als Sprachsignal gespeichert sein und beispielsweise über ein Telekommunikationsnetz dem Rechner zugeführt werden. Die Sprachsignale können ferner alternativ auch schon in dem Speicher der
Spracherkennungseinrichtung gespeichert sein, in welchem Fall die Bildung der Folge lautsprachlicher Einheiten auf der Grundlage der schon in dem Speicher gespeicherten Signale erfolgt .
Das auf die oben beschriebene Weise gebildete und erweiterte elektronische Wörterbuch eignet sich insbesondere zum Einsatz zur sprecherunabhängigen Spracherkennung.
Anschaulich wird erfindungsgemäß erstmals die Möglichkeit geschaffen, benutzerdefinierte Einträge bzw. von einem Benutzer eingesprochene Äußerungen, die somit eigentlich als sprecherabhängige Äußerungen angesehen werden können, ebenfalls im Rahmen eines Verfahrens zur sprecherunabhängigen Spracherkennung einzusetzen, wobei eine ausreichende Qualität der neuen Äußerungen hinsichtlich der Erkennungsleistung gewährleistet wird.
Anschaulich wird dies dadurch ermöglicht, dass die sprecherabhängige Äußerung in eine Folge lautsprachlicher Einheiten, beispielsweise auf Phonemketten, abgebildet wird. Ein Sprachdialog, insbesondere bei einem Embedded System, wird auf diese Weise sehr einfach und für den Benutzer wesentlich komfortabler realisiert. Ferner sind intuitivere und hierarchisch flachere Dialoge ermöglicht, da im Rahmen der Erstellung eines Sprachdialogs nicht mehr darauf Rücksicht genommen werden muss, ob eine Äußerung oder eine Teiläußerung eine sprecherabhängige oder sprecherunabhängige Spracherkennung erfordert.
Bevorzugte Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
Die im Folgenden erläuterten Ausgestaltungen der Erfindung betreffen sowohl die Spracherkennungseinrichtung als auch das Verfahren zum Ergänzen des elektronischen Wörterbuches für eine Spracherkennungseinheit zur sprecherunabhängigen Spracherkennung und die Steuereinrichtung zum Steuern eines technischen Systems.
Die Folge lautsprachlicher Einheiten kann eine Phonemkette sein, alternativ eine Folge von Silben, Buchstaben oder eine Folge anderer lautsprachlicher Einheiten, welche zur Spracherkennung geeignet ist.
Durch den Einsatz von Phonemen als lautsprachliche Einheiten wird die Verwendung von im Rahmen der Spracherkennung an sich bekannter Einheiten zum Bilden von Phonemen aus Sprachsignalen ermöglicht, womit die Spracherkennungseinrichtung kostengünstig realisierbar ist.
Gemäß einer anderen Ausgestaltung der Erfindung ist die Lautfolgen-Auswahleinheit derart eingerichtet, dass für jede Folge lautsprachlicher Einheiten ein Abstandswert ermittelt wird, mit dem der Abstand der Folge lautsprachlicher Einheiten zu mindestens einem in dem elektronischen Wörterbuch gespeicherten Wort in einem Vergleichsraum beschrieben wird und dass das vorgegebene Auswahlkriterium abhängig ist von dem Abstand der Folge lautsprachlicher Einheiten zu mindestens einem in dem elektronischen
Wörterbuch gespeicherten Wort.
Bei dieser Ausgestaltung der Erfindung wird die Erkenntnis berücksichtigt, dass ein neuer Eintrag in dem elektronischen Wörterbuch nur dann sinnvoll ist, wenn der Abstand der
Merkmalsvektoren des neuen Eintrags in einem Vergleichsraum von den Merkmalsvektoren der schon vorhandenen Einträge in dem elektronischen Wörterbuch ausreichend groß ist.
Die Erfindung eignet sich insbesondere in einem Szenario, in dem die Spracherkennungseinrichtung als ein Embedded System eingerichtet ist, da in einem solchen Fall die verfügbare Rechenleistung relativ gering ist und somit ein Umschalten zwischen unterschiedlichen Spracherkennungseinheiten, beispielsweise einer Spracherkennungseinheit zur sprecherabhängigen Spracherkennung sowie einer
Spracherkennungseinheit zur sprecherunabhängigen Spracherkennung, nicht realisierbar ist.
Als Steuereinrichtung zum Steuern eines technischen Systems eignen sich beispielsweise eine Steuereinrichtung zum Steuern eines Telekommunikationsgeräts, beispielsweise eines Telefongeräts, eines Telefaxgeräts, eines PDAs, eines Notebooks, etc., oder zum Steuern eines Endgeräts, in dem zumindest zwei der oben beschriebenen Geräte-Funktionalitäten in einem gemeinsamen Gerät integriert sind. Insbesondere diese mit einem klar definierten und begrenzten Wortschatz zu steuernden Geräte können mittels eines Sprachdialogs gesteuert werden, der relativ übersichtlich und somit selbst mittels eines Embedded Systems kostengünstig realisierbar ist.
Das elektronische Wörterbuch kann sehr vorteilhaft zur sprecherunabhängigen Spracherkennung eingesetzt werden.
Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Folgenden näher erläutert.
Es zeigen
Figur 1 ein Blockdiagramm einer Spracherkennungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung;
Figur 2 ein Blockdiagramm, in dem das Zusammenführen eines elektronischen Wörterbuches mit ausschließlich zur sprecherunabhängigen Spracherkennung zuvor eingegebenen und trainierten Worten enthalten sind und einem Wörterbuch, in dem Äußerungen zur sprecherabhängigen Spracherkennung gespeichert sind, welche erfindungsgemäß zusammengeführt werden zu einem gemeinsamen Wörterbuch für die sprecherunabhängige Spracherkennung ;
Figur 3 eine Tabelle, in der die vorgesehenen
Spracherkennungs-Zustände und die Zustandsübergänge zwischen unterschiedlichen Spracherkennungszuständen dargestellt sind;
Figur 4 eine Darstellung eines Dialog-Zustandsdiagrarams gemäß einem Ausführungsbeispiel der Erfindung;
Figur 5 ein Ablaufdiagramm, in dem die einzelnen Verfahrensschritte zur Spracherkennung sowie zum
Ergänzen des elektronischen Wörterbuches der Spracherkennungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung dargestellt sind;
Figur 6 eine detaillierte Darstellung der einzelnen Verfahrensschritte zur Initialisierung der Spracherkennungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung;
Figur 7 ein Nachrichtenflussdiagramm, in dem die einzelnen Verfahrensschritte zum Durchführen eines Sprachdialogs gemäß einem Ausführungsbeispiel der Erfindung dargestellt sind;
Figur 8 ein Nachrichtenflussdiagramra, in dem die einzelnen Schritte zum Ergänzen eines elektronischen Wörterbuches in der Spracherkennungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung dargestellt sind;
Figur 9 ein erstes Funktionsdiagramm gemäß einem Ausführungsbeispiel der Erfindung;
Figur 10 ein zweites Funktionsdiagramm gemäß einem Ausführungsbeispiel der Erfindung;
Figuren 11A und 11B Tabellen, in denen dem Benutzer dargestellten Sprach-Prompts im Rahmen des Sprachdialogs gemäß einem ersten Ausführungsbeispiel der Erfindung (Figur 9A) sowie zusätzliche Aktionen der Spracherkennungseinrichtung (Figur 9B) gemäß einem ersten Ausführungsbeispiel der Erfindung dargestellt sind;
Figur 12 ein Sprachdialog-Zustandsdiagramm eines ersten Zustands gemäß einem ersten Ausführungsbeispiel der
Erfindung;
Figuren 13A und 13B ein Sprachdialog-Zustandsdiagramm eines zweiten Zustands einer Spracherkennungseinrichtung gemäß dem ersten Ausführungsbeispiels der Erfindung
(Figur 13A) und das zugehörige Ablaufdiagramm (Figur 13B) ;
Figuren 14A und 14B ein Sprachdialog-Zustandsdiagramm eines dritten Zustands einer Spracherkennungseinrichtung gemäß dem ersten Ausführungsbeispiel der Erfindung (Figur 14A) und das zugehörige Ablaufdiagramm (Figur 14B) ;
Figuren 15A und 15B ein Sprachdialog-Zustandsdiagramm eines vierten Zustands einer Spracherkennungseinrichtung gemäß dem ersten Ausführungsbeispiel der Erfindung (Figur 15A) und das zugehörige Ablaufdiagramm (Figur 15B) ;
Figuren 16A und 16B ein Sprachdialog-Zustandsdiagramm eines fünften Zustands einer Spracherkennungseinrichtung gemäß dem ersten Ausführungsbeispiel der Erfindung (Figur 16A) und das zugehörige Ablaufdiagramm (Figur 16B) ;
Figuren 17A und 17B ein Sprachdialog-Zustandsdiagramm eines sechsten Zustands einer Spracherkennungseinrichtung gemäß dem ersten Ausführungsbeispiel der Erfindung (Figur 17A) und das zugehörige Ablaufdiagramm (Figur 17B) ;
Figuren 18A und 18B ein Sprachdialog-Zustandsdiagramm eines siebenten Zustands einer Spracherkennungseinrichtung gemäß dem ersten Ausführungsbeispiel der Erfindung (Figur 18A) und das zugehörige Ablaufdiagramm
(Figur 18B) ;
Figur 19 ein Sprachdialog-Zustandsdiagramm eines ersten Zustands einer Spracherkennungseinrichtung gemäß einem zweiten Ausführungsbeispiel der Erfindung;
Figur 20 ein Sprachdialog-Zustandsdiagramm eines zweiten
Zustands einer Spracherkennungseinrichtung gemäß dem zweiten Ausführungsbeispiel der Erfindung;
Figur 21 ein Sprachdialog-Zustandsdiagramm eines dritten
Zustands einer Spracherkennungseinrichtung gemäß dem zweiten Ausführungsbeispiel der Erfindung;
Figur 22 ein Telekommunikationsgerät mit einer Spracherkennungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung;
Figur 23 ein Autoradio mit einer Spracherkennungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung.
Fig.l zeigt eine Spracherkennungseinrichtung 100 gemäß einem Ausführungsbeispiel der Erfindung.
Die Spracherkennungseinrichtung 100 arbeitet je nach Betriebsmodus in einem ersten Betriebsmodus als Spracherkennungseinrichtung, wobei in dem
Spracherkennungsmodus die Spracherkennungseinrichtung eine eingesprochene Äußerung 101, eingesprochen von einem Benutzer (nicht dargestellt) der Spracherkennungseinrichtung 100, erkannt wird unter Verwendung eines Verfahrens zur sprecherunabhängigen Spracherkennung. In einem zweiten
Betriebsmodus, im Weiteren auch bezeichnet als Wörterbuch- Ergänzungsmodus, wird eine eingesprochene Äußerung in eine Folge von lautsprachlichen Einheiten umgewandelt, im Weiteren in eine Folge von Phonemen, und, wie im Folgenden noch näher erläutert wird, möglicherweise dem elektronischen Wörterbuch als Ergänzungseintrag zugeführt und darin gespeichert.
In beiden Betriebsmodi wird das von dem Benutzer eingesprochene Sprachsignal 101 einem Mikrofon 102 zugeführt, und als aufgenommenes elektrisches Analogsignal 103 einer Vorverarbeitung, insbesondere einer Vorverstärkung mittels einer Vorverarbeitungseinheit 104, insbesondere mittels eines Vorverstärkers unterzogen und als vorverarbeitetes und verstärktes Analogsignal 105 einem Analog-/Digitalwandler 106 zugeführt, dort in ein digitales Signal 107 umgewandelt und als digitales Signal 107 einem Rechner 108 zugeführt.
Es ist in diesem Zusammenhang anzumerken, dass das Mikrofon 102, die Vorverarbeitungseinheit 104, insbesondere die Verstärkungseinheit, und der Analog-/Digitalwandler 106 als separate Einheiten oder auch als in dem Rechner 108 integrierte Einheiten realisiert sein können.
Gemäß diesem Ausführungsbeispiel ist es vorgesehen, dass das digitalisierte Signal 107 dem Rechner 108 über dessen Eingangsschnittstelle 109 zugeführt wird.
Der Rechner 108 weist ferner einen Mikroprozessor 110, einen Speicher 111 sowie eine Ausgangsschnittstelle 112 auf, welche alle miteinander mittels eines Computerbus 113 gekoppelt sind.
Mittels des Mikroprozessors 110 werden die im Weiteren beschriebenen Verfahrensschritte, insbesondere die Verfahren zur Ergänzung des elektronischen Wörterbuches und der jeweils bereitgestellte Sprachdialog durchgeführt. Ein elektronisches Wörterbuch 114, welches die Einträge enthält, die im Rahmen der Spracherkennung als Referenzworte enthalten, ist in dem Speicher 111 gespeichert.
Ferner ist ein ebenfalls mit dem Computerbus 113 gekoppelter digitaler Signalprozessor (DSP) 123 vorgesehen, der einen speziell auf die verwendeten sprecherunabhängigen Spracherkennungsalgorithmen hin spezialisierter MikroController aufweist.
In dem digitalen Signalprozessor 123 ist ferner ein
Computerprogramm gespeichert, welches eingerichtet ist zur sprecherunabhängigen Spracherkennung. Alternativ können die verwendeten Algorithmen in hartverdrahteter Logik, das heißt unmittelbar selbst in Hardware, realisiert sein.
Ferner ist der Rechner 108 mittels der Eingangsschnittstelle 109 mit einer Tastatur 115 sowie einer Computermaus 116 über elektrische Leitungen 117, 118 oder eine Funkverbindung, beispielsweise eine Infrarot-Verbindung oder eine Bluetooth- Verbindung gekoppelt.
Über zusätzliche Kabel oder Funkverbindungen, beispielsweise eine Infrarot-Verbindung oder eine Bluetooth-Verbindung 119, 120 ist der Rechner 108 mittels der Ausgangsschnittstelle 114 mit einem Lautsprecher 121 sowie einem Aktor 122 gekoppelt.
Der Aktor 122 repräsentiert in Fig.l allgemein jeden möglichen Aktor im Rahmen der Steuerung eines technischen Systems, beispielsweise realisiert in Form eines Hardwareschalters oder in Form eines Computerprogramms für den Fall, dass beispielsweise ein Telekommunikationsgerät oder ein anderes technisches System, beispielsweise ein
Autoradio, eine Stereoanlage, ein Videorecorder, ein Fernseher, der Computer selbst oder irgendeine andere technische Anlage gesteuert werden soll .
Gemäß dem Ausführungsbeispiel der Erfindung weist die Vorverarbeitungseinheit 104 eine Filterbank mit einer Mehrzahl von Bandpässen auf, welche die Energie des eingegebenen Sprachsignals 103 in einzelnen Frequenzbändern messen. Mittels der Filterbank werden so genannte Kurzzeitspektren gebildet, indem die Ausgangssignale der
Bandpässe gleichgerichtet, geglättet und in kurzen Abständen abgetastet werden, gemäß dem Ausführungsbeispiel alle 10 msec. Die so genannten Cepstrum-Koeffizienten von zwei aufeinander folgenden Zeitfenstern sowie deren zeitliche erste Ableitung sowie deren zeitliche zweite Ableitung werden ermittelt und zu jeweils einem Super-Merkmalsvektor zusammengefasst und dem Rechner 108 zugeführt.
In dem Rechner 108 ist, wie oben beschrieben, in Form eines Computerprogramms eine Spracherkennungseinheit, wobei die
Spracherkennung auf dem Prinzip der Hidden Markov Modelle basiert, zur sprecherunabhängigen Spracherkennung realisiert, gemäß dem Ausführungsbeispiel in dem DSP 123.
In einem Basis-Wortschatz, der zu Beginn des Verfahrens in einem elektronischen Wörterbuch 114 gespeichert ist, ist zu jeweils einem Basis-Eintrag ein Hidden Markov Modell gespeichert, das jeweils auf folgende Weise unter Verwendung eines Trainings-Datensatzes, das heißt einer Menge von Trainings-Sprachsignalen, eingesprochen von einem oder mehreren Trainings-Nutzern, ermittelt wird.
Das Training der Hidden Markov Modelle erfolgt gemäß diesem Ausführungsbeispiel in drei Phasen:
• einer erste Phase, in der die in der Trainings-Datenbank enthaltenen Sprachsignale segmentiert werden,
• einer zweiten Phase, in der die LDA-Matrix (lineare Diskriminanzanalyse-Matrix) berechnet wird sowie
• einer dritten Phase, in der das Codebuch, das heißt die HMM-Prototypen-Merkmalsvektoren für jeweils eine in einem Auswahlschritt ausgewählte Anzahl von
Merkmalsvektor-Komponenten berechnet werden.
Die Gesamtheit dieser drei Phasen wird im Weiteren als das Training der Hidden Markov Modelle bezeichnet (HMM-Training) .
Das HMM-Training wird unter Verwendung des DSPs 123 sowie unter Verwendung von vorgegebenen Trainingskripts, anschaulich von geeignet eingerichteten Computerprogrammen, durchgeführ .
Gemäß diesem Ausführungsbeispiel wird jede gebildete lautsprachliche Einheit, das heißt jedes Phonem, in drei aufeinander folgende Phonemsegmente aufgeteilt, entsprechend einer Initial-Phase (erstes Phonemsegment) , einer zentralen Phase (zweites Phonemsegment) und einer Endphase (drittes
Phonemsegment) eines Lauts, das heißt eines Phonems.
Anders ausgedrückt wird jeder Laut in einem Lautmodell mit drei Zuständen, das heißt mit einem Drei-Zustands-HMM modelliert.
Während der Spracherkennung werden die drei Phonemsegmente in einer Bakis-Topologie oder allgemein einer Links-Rechts- Topologie aneinander gereiht und auf die Konkatenation dieser drei aneinander gereihten Segmente wird die Berechnung im
Rahmen der sprecherunabhängigen Spracherkennung durchgeführ .
Wie im Weiteren noch näher erläutert wird, wird in dem Spracherkennungsmodus ein Viterbi-Algorithmus zum Dekodieren der Merkmalsvektoren, welche aus dem eingegebenen Sprachsignal 101 gebildet werden, durchgeführt.
Nach erfolgter Segmentierung wird die LDA-Matrix mittels einer LDA-Matrix-Berechnungseinheit ermittelt.
Die LDA-Matrix dient zur Transformation eines jeweiligen Super-Merkmalsvektors y auf einen Merkmalsvektor x gemäß folgender Vorschrift:
x = AT • (y_ -y), (1)
wobei mit
• x ein Merkmalsvektor,
• A eine LDA-Matrix,
• y ein Super-Merkmalsvektor, • y ein globaler Verschiebungsvektor
bezeichnet wird.
Die LDA-Matrix A wird derart bestimmt, dass • die Komponenten des Merkmalsvektors x im statistischen
Durchschnitt voneinander im Wesentlichen unkorreliert sind,
• die statistischen Varianzen innerhalb einer Segmentklasse im statistischen Durchschnitt normalisiert sind,
• die Zentren der Segmentklassen im statistischen Durchschnitt einen maximalen Abstand voneinander aufweisen und
• die Dimension der Merkmalsvektoren x möglichst, vorzugsweise Spracherkennungsanwendungs-abhängig, reduziert wird.
Im Folgenden wird das Verfahren zum Bestimmen der LDA-Matrix A gemäß diesen Ausführungsbeispielen erläutert.
Es ist jedoch anzumerken, dass alternativ alle bekannten Verfahren zum Bestimmen einer LDA-Matrix A ohne Einschränkung eingesetzt werden kann.
Es wird angenommen, dass J Segmentklassen existieren, wobei jede Segmentklasse j einen Satz Dy-dimensionaler Super- Merkmalsvektoren y enthält, das heißt, dass gilt:
wobei mit Nj die Anzahl der in der Klasse j sich befindenden Super-Merkmalsvektoren yj bezeichnet wird.
Mit
J
N = ∑Nj (3) j=l
wird die Gesamtzahl der Super-Merkmalsvektoren y bezeichnet
Es ist anzumerken, dass die Super-Merkmalsvektoren yv unter
Verwendung der oben beschriebenen Segmentierung der Sprachsignal-Datenbank ermittelt worden sind.
Gemäß diesem Ausführungsbeispiel weist jeder Super- Merkmalsvektor y eine Dimension Dy von
Dγ = 78 (= 2 • 3 • 13)
auf, wobei 13 MFCC-Koeffizienten (Cepstrums-Koeffizienten) in dem Super-Merkmalsvektor yf enthalten sind, sowie deren jeweilige zeitliche erste Ableitung und deren jeweilige zeitliche zweite Ableitung (dies begründet obigen Faktor 3) .
Ferner sind in jedem Super-Merkmalsvektor yv jeweils die
Komponenten zweier zeitlich unmittelbar aufeinanderfolgender Zeitfenster im Rahmen der Kurzzeitanalyse enthalten (dies begründet obigen Faktor 2) .
Es ist in diesem Zusammenhang anzumerken, dass grundsätzlich eine beliebige, an die jeweilige Anwendung angepasste Zahl von Vektorkomponenten in dem Super-Merkmalsvektor yv enthalten sein kann, beispielsweise bis zu 20 Cepstrums- Koeffizienten und deren zugehörigen zeitlichen erste Ableitungen und zweite Ableitungen.
Der statistische Mittelwert oder anders ausgedrückt das Zentrum der Klasse j ergibt sich gemäß folgender Vorschrift :
Die Kovarianzmatrix Σ-j der Klasse j ergibt sich gemäß folgender Vorschrift:
Die Durchschnitts-Intra-Streumatrix Sww ist definiert als:
mit
In analoger Weise ist die Durchschnitts-Inter-Streumatrix Sfc> definiert als :
mit
als dem Durchschnitts-Super-Merkmalsvektor über alle Klassen.
Die LDA-Matrix A wird zerlegt gemäß folgender Vorschrift:
A = U • W • V, (10)
wobei mit
• U eine erste Transformationsmatrix,
• W eine zweite Transformationsmatrix und
• V eine dritte Transformationsmatrix
bezeichnet wird.
Die erste Transformationsmatrix U wird verwendet, um die Durchschnitts-Intra-Streumatrix S zu diagonalisieren und wird ermittelt, indem die positiv definite und symmetrische Durchschnitts-Intra-Streumatrix Sw in ihren Eigenvektorraum transformiert wird. In ihrem Eigenvektorraum ist die Durchschnitts-Intra-Streumatrix Sw eine Diagonal-Matrix,
deren Komponenten positiv und größer oder gleich null sind . Die Komponenten, deren Werte größer null sind, entsprechen der Durchschnitts-Varianz in der j eweiligen durch die entsprechende Vektorkomponente definierten Dimension .
Die zweite Transformationsmatrix W wird zum Normalisieren der Durchschnitts-Varianzen verwendet und wird ermittelt gemäß folgender Vorschrift :
W = (üT • Sw • υj~ 2 . ( 11)
Die Transformation U- W wird auch als Weißung bezeichnet.
Mit
B = U • W (12)
ergibt sich für die Matrix B T • S_w • B die Einheitsmatrix, welche bei jeder beliebigen orthonormalen Lineartransformation unverändert bleibt.
Um die Durchschnitts-Inter-Streumatrix Sjβ zu diagonalisieren wird die dritte Transformationsmatrix V, die gebildet wird gemäß folgender Vorschrift:
V = BJ §b B (13)
wobei B • Sj-, • B ebenfalls eine positiv definite und symmetrische Matrix darstellt, in ihren Eigenvektorraum transformiert wird.
In dem Transformationsraum
x = T • ^ - y) (14)
ergeben sich somit folgende Matrizen:
Eine diagonalisierte Durchschnitts-Intra-Streumatrix S W, '
Sw = diag(l)d=lιιιD (15)
und eine diagonalisierte Durchschnitts-Inter-Streumatrix &£,:
wobei mit iag^Cζj)^..-, D eine Dy x Dy Diagonalmatrix mit den
Komponenten c^ in der Zeile/Spalte d und sonst mit Komponenten mit dem Wert Null, bezeichnet wird.
Die Werte σ^j sind die Eigenwerte der Durchschnitts-Inter-
Streumatrix S_b und stellen ein Maß für die so genannte Pseudoentropie der Merkmalsvektor-Komponenten dar, welche im Folgenden auch als Informationsgehalt der Merkmalsvektor- Komponenten bezeichnet wird. Es ist anzumerken, dass die Spur jeder Matrix invariant ist bezüglich irgendeiner
Orthogonaltransformation, womit sich ergibt, dass die Summe
Dy σ2 = ∑σ2 (17) d=l
die Gesamt-Durchschnitts-Varianz des Durchschnitts-Vektors XJ der J Klassen darstellt.
Es ergibt sich somit eine ermittelte Anhängigkeit der Pseudoentropie der Merkmalsvektoren von den jeweils in dem Merkmalsvektor enthaltenen bzw. berücksichtigten
Merkmalsvektor-Komponenten.
Gemäß diesem Ausführungsbeispiel wird anschließend eine
Dimensionsreduktion vorgenommen, indem die
m m ihrer Größe abfallender Reihenfolge sortiert werden und die σ^ -Werte weggelassen werden, das heißt unberücksichtigt bleiben, die kleiner sind als ein vorgegebener Schwellwert. Der vorgegebene Schwellwert kann ferner kumulativ definiert sein.
Dann kann die LDA-Matrix A angepasst werden, indem die Zeilen entsprechend den Eigenwerten σ^ sortiert werden und die Zeilen weggelassen werden, die zu den ausreichend „kleinen" Varianzen gehören und damit nur einen geringen Informationsgehalt (geringe Pseudoentropie) aufweisen.
Gemäß diesem Ausführungsbeispiel werden die Komponenten mit den 24 größten Eigenwerten
verwendet, anders ausgedru.ckt Dv = 24.
Die vier oben beschriebenen Teilschritte zum Ermitteln der LDA-Matrix A sind in folgender Tabelle zusammengefasst :
Das letzte Verfahren zum Teil-Verfahren im Rahmen des Trainings der Hidden Markov Modelle ist das Clustern der Merkmalsvektoren, welches mittels einer Clustereinheit durchgeführt wird und welches als Ergebnis ein jeweiliges
Codebuch hat, jeweils spezifisch für einen Trainingsdatensatz mit einer vorgegebenen Anzahl von Merkmalsvektor-Komponenten.
Die Gesamtheit der Repräsentanten der Segmentklassen wird als Codebuch bezeichnet und die Repräsentanten selbst werden auch als Prototypen der Phonemsegmentklasse bezeichnet.
Die Prototypen, im Weiteren auch als Prototyp- Merkmalsvektoren bezeichnet, werden gemäß dem in [1] beschriebenen Baum-Welch-Training ermittelt.
Auf die oben beschriebene Weise wurden die Basiseinträge des elektronischen Wörterbuches, das heißt die Basiseinträge zur sprecherunabhängigen Spracherkennung erstellt und gespeichert und die entsprechenden Hidden Markov Modelle trainiert.
Somit existiert für jeden Basiseintrag jeweils ein Hidden Markov Modell .
Das elektronische Wörterbuch mit den Basiseinträgen 201 ist in Fig.2 mit dem Bezugszeichen 200 bezeichnet.
Wie im Folgenden noch näher erläutert wird, wird für eine oder mehrere Äußerungen, die von einem Benutzer eingesprochen werden, und welche in ihrer Gesamtheit anschaulich als ein sprecherabhängiges Wörterbuch 202 in Fig.2 bezeichnet sind, jeweils eine Folge 203 von Phonemen ermittelt und als eine solche Folge 203 von Phonemen als ein neuer Eintrag in dem gemeinsamen elektronische Wörterbuch 204, welches nunmehr die Basiseinträge 201 sowie die neuen Einträge 203 in Form von Phonemketten enthält, gespeichert.
Anschaulich enthält das neue elektronische Wörterbuch 204 somit die Basiseinträge 201 als auch die in Phonemketten umgewandelten sprachlichen Äußerungen, das heißt die ursprünglich sprecherabhängigen Einträge, welche aufgrund der Umwandlung in Phonemketten als sprecherunabhängige Repräsentanten neuer Einträge angesehen werden können.
Auf diese Weise wird eine sprecherunabhängige Spracherkennung auf der Basis des gemeinsamen elektronischen Wörterbuches 204 ermöglicht .
Das gemeinsame elektronische Wörterbuch 204 bildet somit den Suchraum für die Viterbi-Suche im Rahmen der sprecherunabhängigen Spracherkennung.
Anschaulich werden die Äußerungen eines Benutzers auf eine Folge von Phonemen abgebildet und es wird ein Phonem- Wörterbuch 202 gebildet, welches die Folgen von Phonemen (Phonemketten) enthält.
Somit werden für den an sich sprecherabhängigen Teil im Rahmen der sprecherunabhängigen Spracherkennung keine Kommandos oder Wörter erkannt, sondern Phonemketten.
Diese Phonemketten werden in dem neuen elektronischen Wörterbuch 204 gespeichert.
Die Ergänzung des elektronischen Wörterbuches 200 um die benutzerdefinierten Einträge, das heißt um die Phonemketten wird, wie im Folgenden noch näher erläutert wird, insbesondere ermöglicht durch ein Dateimanagement in dem Rechner 108, mittels dessen die Speicherung der sprecherabhängigen Listeneinträge und der Basiseinträge in dem sprecherunabhängigen • Wörterbuch 200 und die Kommunikation mit der Spracherkennungsanwendung realisiert und verwaltet wird.
Gemäß diesem Ausführungsbeispiel ist der Mikroprozessor 110 der Controller SDA 80D51U-A der Firma Infineon
Technologies AG und das Verfahren zum Bilden von Hidden Markov Modellen basiert auf der Software und einem Digitalen Signalprozessor (DSP) der Firma Oak.
Zur Kommunikation zwischen dem Mikroprozessor 110 und dem DSP 123 der Firma Oak werden elektronische Nachrichten verwendet, um vorgegebene Ereignisse und Aktionen in dem Mikroprozessor 110 bzw. dem DSP 123 auszulösen.
Gemäß diesem Ausführungsbeispiel der Erfindung sind folgende
Nachrichten für unterschiedliche Spracherkenner-Zustände, im Weiteren auch als HMM-Zustände bezeichnet, vorgesehen:
Zunächst werden die im Rahmen des Spracherkenners zulässigen Spracherkenner-Zustände erläutert.
Wie Fig.3 zu entnehmen ist, weist der Spracherkenner folgende vier HMM-Spracherkenner-Zustände auf:
• einen Initialisierungszustand INIT 301, • einen Stopp-Zustand STOP 302,
• einen Pause-Zustand PAUSE 303 und
• einen Betriebsmodus-Zustand RUN 304.
Wie dem Zustandsübergangs-Diagramm 300 in Fig.3 zu entnehmen ist, sind folgende Zustandsübergänge vorgesehen.
Von dem Initialisierungszustand INIT 301 kann in den Stopp- Zustand STOP 302 übergegangen werden, was automatisch passiert, wenn alle Datenbanken geladen sind (Schritt 305) .
Ein anderer Übergang aus dem Initialisierungszustand INIT 301 in einen der anderen Zustände PAUSE, RUN 303, 304 ist nicht vorgesehen.
Aus dem Stopp-Zustand STOP 302 kann in den
Initialisierungszustand INIT 301 übergegangen werden, wenn die geladenen Datenbanken inkonsistent sind (Schritt 306) , in welchem Fall die Nachricht InitHMMSRDefault von dem DSP 123 an den Mikroprozessor 110 übermittelt wird.
Wird von dein Spracherkenner, das heißt dem DSP 123, das Kommando „PAUSE" in Form der Nachricht PauseHMMSR von dem Mikroprozessor 110 erhalten, so geht der DSP 123 in den Pausen-Zustand PAUSE 303 über (Schritt 307) .
Nach Erhalt des Kommandos „RUN" in Form der Nachricht StartHMMSR von dem Mikroprozessor 110 geht der DSP 123 in den
Betriebsmodus-Zustand RUN 304 über (Schritt 308) .
Aus dem Pause-Zustand PAUSE 303 kann in den Initialisierungszustand INIT 301 übergegangen werden (Schritt 309) , wenn die Datenbanken inkonsistent sind. Dies erfolgt in dem Fall, wenn der DSP 123 die Nachricht InitHMMSRDefault von dem Mikroprozessor 110 empfängt.
Nach Erhalt des Kommandos „STOPP" in Form der Nachricht StopHMMSR von dem Mikroprozessor 110 geht der DSP 123 in den Stopp-Zustand STOP 302 über (Schritt 310) .
Nach Erhalt des Kommandos „RUN" in Form der Nachricht StartHMMSR von dem Mikroprozessor 110 geht der DSP 123 aus dem Pausen-Zustand PAUSE 303 in den Betriebsmodus-Zustand 304 über (Schritt 311) .
Schließlich kann die Spracherkennungseinheit aus dem Betriebsmodus-Zustand RUN 304 in den Initialisierungszustand INIT 301 zurückkehren, wenn die Datenbanken inkonsistent sind (Schritt 312) . Dies geschieht, wenn der DSP 123 von dem Mikroprozessor 110 die Nachricht InitHMMSRDefault empfängt.
Nach Erhalt des Kommandos „STOPP" in Form der Nachricht StopHMMSR von dem Mikroprozessor 110 kehrt die Spracherkennungseinheit, anders ausgedrückt der DSP 123, aus dem Betriebsmodus-Zustand RUN 304 in den Stopp-Zustand STOP 302 zurück (Schritt 313) .
Schließlich ist vorgesehen, dass die Spracherkennungseinheit aus dem Betriebsmodus-Zustand RUN 304 in den Pause-Zustand PAUSE 303 übergeht nach Empfangen des Kommandos „PAUSE"
(Schritt 314) . Dies geschieht, wenn der DSP 123 von dem Mikroprozessor 110 die Nachricht PauseHMMSR empf ngt .
Zusammenfassend sind zur Kommunikation zwischen dem Mikroprozessor 110 und dem Oak DSP 123 folgende Nachrichten vorgesehen:
In dem Initialisierungszustand INIT 301, in dem der Spracherkenner mit Default-Werten nach der Aktivierung initialisiert wird, sind folgende Nachrichten, die an den Oak
DSP 123 oder von dem Oak DSP 123 gesendet werden können, definiert :
• InitHMMSRDefault:
Mit dieser Nachricht wird das Setzen von Default-Werten für den Spracherkenner in der Oak Software in dem DSP
123 initialisiert,
InitHMMSRParams :
Mit dieser Nachricht wird das Laden der Spracherkenner- Parameter in den Oak DSP 123 initialisiert,
• StartLoadHMMLDA:
Mit dieser Nachricht wird das Laden des Programms zum Ermitteln der LDA-Matrix gestartet,
• StartLoadHMMDictionary:
Mit dieser Nachricht wird das Laden eines elektronischen Wörterbuches abhängig von dem jeweiligen Zustand bzw. dem jeweiligen Sprachdialog, gestartet, • CodebookBloσkLoadedAndSwitched:
Mit dieser Nachricht wird der Oak Software in dem DSP 123 mitgeteilt, dass der Switched Memory Block (SMB) , gemäß diesem Ausführungsbeispiel der Größe 16 KByte, für die Oak Software zugänglich ist, da nunmehr die gesamte Anzahl von Blöcken und Segmenten, die in der Anwendung von dem Spracherkenner berücksichtigt werden, in dem Mikroprozessor 110 bekannt sind.
In dem Stopp-Zustand STOP 302, in dem der Spracherkenner deaktiviert ist, sind folgende Nachrichten vorgesehen, die an den Oak DSP 123 oder von dem Oak DSP 123 gesendet werden können :
InitHMMSRDefault ,
InitHMMSRParams , • StartLoadHMMLDA,
StartLoadHMMDictionary,
PauseHMMSR:
Mit dieser Nachricht wird dem Oak DSP 123 mitgeteilt, dass der Spracherkenner in den Deaktiviert-Zustand übergehen soll,
• StartHMMSR:
Mit dieser Nachricht wird der Spracherkenner in dem Oak DSP 123 gestartet.
In dem Pausen-Zustand PAUSE 303, in dem die Vorverarbeitung in dem Spracherkenner durchgeführt wird, jedoch noch keine Merkmalsextraktion erfolgt, sind folgende Nachrichten
vorgesehen, die an den Oak DSP 123 oder von dera Oak DSP 123 übermittelt werden können:
InitHMMSRDefault ,
InitHMMSRParams ,
StartLoadHMMLDA,
StartLoadHMMDictionary,
StartHMMSR,
StopHMMSR:
Mit dieser Nachricht wird dem Oak DSP 123 angegeben, dass der Spracherkenner gestoppt werden soll und in den
Stopp-Zustand 302 übergehen soll, • CodebookBlockLoadedAndSwitched.
In dem Betriebsmodus-Zustand RUN 304, in dem der Spracherkenner voll aktiv ist und die Spracherkennung durchführt, sind folgende Nachrichten vorgesehen, die an den Oak DSP 123 oder von dem Oak DSP 123 übermittelt werden können :
InitHMMSRDefault , • InitHMMSRParams, StartLoadHMMLDA, StartLoadHMMDictionary, PauseHMMSR, StopHMMSR, • CodebookBlockLoadedAndSwitched.
Ferner ist eine zusätzliche Nachricht
SetHMMSearchParams (minSt bleTi e, wordStartupPenalty, transitionPenalty) vorgesehen, mit der die Suchparameter minStableTime, wordStartupPenalty und transitionPenalty für das sprecherabhängige Wörterbuch gesetzt werden können.
Der Suchparameter minStableTime gibt die Zeit an - in der Einheit der Anzahl von Frames -, innerhalb der sich die Hypothese nicht ändern darf, um die Nachricht HypothesisStable auszugeben.
Die Suchparameter wordStartupPenalty und transitionPenalty werden innerhalb der Suche zur Berechnung des optimalen Pf des verwendet . Der Suchparameter transitionPenalty gibt einen Strafwert an, der einen Übergang von einem Zustand i zu einem Zustand j bewertet . Der Suchparameter wordStartupPenalty gibt einen Anfangsstrafwert an, der verwendet wird, um in ein neues Wortmodell einzutreten.
Diese Nachricht kann von dem Spracherkenner in dem Oak DSP 123 in jedem Zustand der Firmware des DSP 123 an den
Mikroprozessor 110 übermittelt werden. Mit der Nachricht SetHMMSearchParams (minStableTime, wordStartupPenalty, transitionPenalty) wird die Suche zurückgesetzt und die Parameter für den Suchraum werden definiert .
Im Folgenden wird die Struktur von den im Weiteren erläuterten Sprachdialog-Zuständen in einem Sprachdialog in dessen Rahmen die Spracherkennung durchgeführt wird, dargelegt .
Ein Sprachdialog dient zur interaktiven Kommunikation des Spracherkenners mit einem menschlichen Benutzer, um dem Benutzer vordefinierte Steuerungsmöglichkeiten und somit einen interaktiven Eingriff in das zu steuernde System, das heißt in den Rechner 108 unter Verwendung des Spracherkenners, zu ermöglichen.
In diesem Zusammenhang ist darauf hinzuweisen, dass die Sprachdialog- ustände nicht zu verwechseln sind mit den oben beschriebenen Zuständen des Spracherkenners selbst.
Jeder Sprachdialog, das heißt jede Sprachanwendung startet nach ihrer Aktivierung ausgehend von einem Basiszustand.
Gemäß diesem Ausführungsbeispiel wird für eine
Sprachanwendung eine Anzahl von Befehlen definiert, die im Weiteren auch als Schlüsselwörter bezeichnet werden.
Jeder Befehl kann ein einzelnes oder mehrere einzelne Wörter aufweisen. Mit jedem Befehl ist eine dem jeweiligen Befehl eindeutig zugeordnete Aktion gekoppelt (siehe Sprachdialog- Zustandsdiagramm 400 in Fig.4) .
Aktionen 408, welche jeweils mit einem Befehl 406 in Form eines Befehl-Aktion-Tupels (407, 409) verknüpft sind, können ein Gerät, wie beispielsweise einen CD-Spieler oder ein Kommunikationsgerät oder ein anderes Element einer
Stereoanlage oder allgemein eines technischen Systems steuern und die Spracherkennungsanwendung beenden, oder noch zusätzliche Aktionen in dem gleichen Schritt, ausgelöst mit dem gleichen Befehl, durchführen, oder beispielsweise einen Ton mittels des Lautsprechers 121 ausgeben, und dann in den gleichen Sprachdialog-Zustand oder in einen anderen Sprachdialog-Zustand übergehen.
In dem Sprachdialog-Zustandsdiagramm 400 in Fig.4 ist ein zeitlich vorangegangener Sprachdialog-Zustand X-l 401 dargestellt sowie dessen Übergang in den aktuellen Sprachdialog-Zustand X 402, wobei das Sprachdialog- Zustandsdiagramm 400 ferner die in dem aktuellen Sprachdialog-Zustand X 402 zu berücksichtigenden Wörter in einem elektronischen Wörterbuch 403 gespeichert hat, wobei das elektronische Wörterbuch 403 sowohl die zuvor in Form von sprecherunabhängigen, zuvor trainierten HMMs gespeicherten Wörter 404, allgemein die sprecherunabhängigen Äußerungen mit einer beliebigen Anzahl von Wörtern 404 enthält sowie Listeneinträge 405, welche ursprünglich Sprecherabhängige Äußerungen enthalten, die jedoch, wie im Weiteren noch erläutert wird, auf eine Folge von Phonemen abgebildet werden, welche dann einer sprecherunabhängigen Spracherkennung zugänglich sind.
In einem jeweiligen Sprachdialog-Zustandsdiagramm 400 sind ferner, wie oben erläutert, die Befehle 406 und die Aktionen
408 in jeweils einem Befehls-Aktions-Tupel (407, 409) enthalten.
Gemäß diesem Ausführungsbeispiel ist die maximale Länge einer Phonemfolge hinsichtlich ihrer zeitlichen Länge oder hinsichtlich der Anzahl zulässiger Phoneme anwendungsabhängig .
Gemäß diesem Ausführungsbeispiel sind 255 Zustände pro Listeneintrag 405 zulässig, so dass die größte Zahl zulässiger Phoneme pro Listeneintrag 405 kleiner oder gleich 85 ist.
Die Befehle werden aus dem zur Verfügung stehenden Vokabular, das heißt aus den in dem Wörterbuch 403 enthaltenen Wörtern 404 oder Listeneinträgen 405 erzeugt.
Jeder Befehl 406, 407 ist notwendigerweise mit einer Aktion 408, 409 verknüpft.
Die Befehlsstruktur ist wie folgt:
• Befehl = ein oder mehrere Wörter,
• Befehl = ein oder mehrere Wörter + ein Listeneintrag,
• Befehl = ein Listeneintrag + ein oder mehrere Wörter, • Befehl = ein oder mehrere Wörter + ein Listeneintrag + ein oder mehrere Wörter,
• Befehl = ein Listeneintrag.
Eine Aktion 407, 409 stellt im Rahmen dieser Beschreibung ein Synonym für eine grundsätzlich beliebig komplexe Reaktion des jeweiligen technischen Systems dar, abstrakt betrachtet die Reaktion des Spracherkenners zur Ansteuerung des Aktors 122 in Fig.l.
Als Aktion 407, 409 sind beispielsweise erfindungsgemäß vorgesehen ein Feedback des Spracherkenners und, um dem Benutzer anzuzeigen, dass überhaupt etwas erkannt wurde, ein
Umschalten in einen anderen Sprachdialog-Zustand, ein Laden eines neuen elektronischen Wörterbuches, oder das Ausführen einer dem Befehl zugeordneten Aktion, beispielsweise das Wählen einer eingegeben Telefonnummer.
Es ist in diesem Zusammenhang anzumerken, dass eine gleiche Aktion für unterschiedliche Befehle definiert sein kann.
Im Folgenden werden in Form von Nachrichtenflussdiagrammen die Kommunikation zwischen dem Mikroprozessor 110, das heißt dem 80D51-Controller und dem digitalen Signalprozessor 123 der Firma Oak Technologies beschrieben.
Wie in dem Ablaufdiagramm 500 in Fig.5 dargestellt ist, wird von einem Startzustand 501 nach erfolgter Aktivierung des DSP 123, das heißt anders ausgedrückt nach erfolgtem Starten des Spracherkenners ein akustisches Signal an den Benutzer mittels des Lautsprechers 121 ausgegeben, um diesem zu signalisieren, dass das Spracherkennungsverfahren aktiviert worden ist.
Ausgehend von dem Startzustand 601 wird in einen ersten Zyklus (Cycle_0) 502 übergegangen, in welchem die HMMs initialisiert werden.
Anschließend wird in einen zweiten Zyklus (Cycle_l) 503 übergegangen und nach dessen Durchführung wird überprüft, ob das Spracherkennungsverfahren beendet werden soll (Prüfschritt 504) und für den Fall, dass das Spracherkennungsverfahren beendet werden soll, wird in einen
Ende-Zustand 505 übergegangen, in welchem der Spracherkenner deaktiviert wird.
Soll die Spracherkennung jedoch nicht beendet werden, so wird in einem zusätzlichen Prüfschritt (Prüfschritt .506) überprüft, ob in einen neuen Sprachdialog-Zustand übergegangen werden soll.
Ist das der Fall, so wird der zweite Zyklus 503 für den neuen Sprachdialog-Zustand durchgeführt .
Soll jedoch der Sprachdialog-Zustand nicht verändert werden, so wird in einem dritten Prüfschritt (Prüfschritt 507) überprüft, ob in dem elektronischen Wörterbuch eine Veränderung vorgenommen werden soll, beispielsweise ob ein neuer Eintrag dem elektronischen Wörterbuch hinzugefügt werden soll oder ob ein Eintrag aus dem elektronischen
Wörterbuch entfernt werden soll oder ob lediglich ein Eintrag in dem elektronischen Wörterbuch verändert werden soll.
Ist dies der Fall, so wird wiederum in den zweiten Zyklus 503 verzweigt .
Ist dies jedoch nicht der Fall, so wird ein, im Folgenden noch näher erläuterter, dritter Zyklus (Cycle_2) 508, durchgeführt .
Nach Beendigung des dritten Zyklus 508 wird in einem vierten Prüfschritt (Prüfschritt 509) wiederum überprüft, ob die Spracherkennung beendet werden soll .
Soll die Spracherkennung beendet werden, so wird in den Endezustand 505 übergegangen und der Spracherkenner wird deaktiviert, sonst wird in den zweiten Prüfschritt 506 verzweigt, in dem überprüft wird, ob ein neuer Sprachdialog- Zustand eingenommen werden soll .
Fig.6 zeigt in einem Nachrichtenflussdiagramm 600 die Realisierung des ersten Zyklus 502 im Detail.
In dem ersten Zyklus 502 werden die HMMs initialisiert,
In einer Initialisierungsphase, in welcher sich der Spracherkenner in dem Initialisierungszustand INIT 301
befindet, wird von dem Mikroprozessor 110 eine Nachricht StartHMMSRFlowgraph 601 an den DSP 123 übermittelt, womit das jeweilige HMM in dem DSP 123 gestartet wird.
In Reaktion auf die Nachricht StartHMMSRFlowgraph 601 sendet der DSP 123 eine Bestätigungsnachricht 602 an den Mikroprozessor 110.
Anschließend wird von dem Mikroprozessor 110 eine Nachricht InitHMMSRParams 603 an den DSP 123 gesendet, womit das Laden der Spracherkennungsparameter in den DSP 123 aktiviert wird.
Als Antwort auf die Nachricht InitHMMSRParams 603 wird eine Bestätigungsnachricht 604 von dem DSP 123 an den Mikroprozessor 110 übermittelt.
In einem weiteren Schritt wird eine Nachricht StartLoadHMMLDA 605 von dem Mikroprozessor 110 an den DSP 123 gesendet; um das Laden des Computerprogramms, welches das Ermitteln einer LDA-Matrix bewirkt, wie oben beschrieben, für das jeweilige
HMM startet.
Als Antwort darauf sendet das DSP 123 eine Nachricht SMBRequestLoadHMMLDA 606 an den Mikroprozessor 110, welcher auf diese Nachricht mit einer Bestätigungsnachricht 607 reagiert, mit der der Mikroprozessor 110 anzeigt, dass die notwendigen Programmcodes zur Durchführung einer linearen Diskriminanzanalyse in einem Switched Memory Block verfügbar sind.
In einer weiteren Nachricht StartLoadHMMDictionary 608, welche von dem Mikroprozessor 110 an den DSP 123 gesendet wird, übermittelt der Mikroprozessor 110 dem DSP 123 das elektronische Wörterbuch für den Basis-Dialog-Zustand des jeweiligen Sprachdialogs in der jeweiligen Anwendung in dem
DSP 123.
Auf den Empfang der Nachricht StartLoadHMMDictionary 608 reagiert das DSP 123 mit einer Nachricht
SMBRequestLoadHMMDictionary 609, mit der das aktive Vokabular des jeweiligen elektronischen Wörterbuches von dem Mikroprozessor 110 angefordert wird. Diese Anforderung SMBRequestLoadHMMDictionary 609 wird mit einer Bestätigungsnachricht 610 seitens des Mikroprozessors 110 nach erfolgtem Empfang quittiert .
Anschließend wird von dem DSP 123 eine Nachricht
SMBRequestCodebookBlock 611 an den Mikroprozessor 110 übermittelt und der Mikroprozessor 110 reagiert darauf mit einer Nachricht CodebookBlockLoadedAndSwitched 612, mit der der Mikroprozessor 110 die Switched Memory Blocks (SMBs) mit den angeforderten Codebuch-Daten dem DSP 123 überträgt.
In einer weiteren Nachricht SMBRequestCodebookBlock 613 fordert der DSP zusätzliche Blöcke an, in denen das benötigte Codebuch, anders ausgedrückt die benötigten Codebuch-Daten, enthalten ist.
Auf die Nachricht SMBRequestCodebookBlock 613 reagiert der Mikroprozessor 110 wiederum mit einer Nachricht CodebookBlockLoadedAndSwitched 614, mit der er einen oder mehrere weitere SMBs mit den benötigten Codebuch-Daten dem DSP 123 überträgt, wobei nunmehr die gesamte Anzahl von Blöcken und benötigter Segmente in dem Spracherkenner bekannt sind.
Anschließend geht der Spracherkenner in den Stopp-Zustand
STOP 302 über und verlässt diesen Zustand erst nach Empfang des Kommandos „Start", das von dem Mikroprozessor 110 dera DSP 123 mittels der Nachricht StartHMMSR 615 übermittelt, und der DSP 123 bestätigt den Empfang der Nachricht StartHMMSR 615 mit einer Bestätigungsnachricht 616.
In dem Betriebsmodus-Zustand 404 wird von dem DSP 123 in periodischen Zeitabständen, das heiß anschaulich für jedes Frame eine Nachricht SMBRequestCodebookBlock 617 an den Mikroprozessor 110 übermittelt, welcher daraufhin periodisch eine Antwortnachricht , ebenfalls für jedes Frame in Form einer Nachricht CodebookBlockLoadedAndSwitched 618 dem DSP 123 übermittelt, mit der der SMB umgeschaltet wurde und ein neuer Codebuch-Block seitens des Mikroprozessors 110 dem DSP 123 übermittelt wurde.
Die Nachrichten SMBRequestCodebookBlock 617 und CodebookBlockLoadedAndSwitched 618 werden für jedes Frame zwischen dem Mikroprozessor 110 und dem DSP 123 ausgetauscht so lange, bis von dem DSP 123 das Spracherkennungsergebnis in einer Nachricht HMMHypothesisStable 619 an den Mikroprozessor 110 übermittelt wird, welcher auf den Empfang mit einer Bestätigungsnachricht 620 reagiert.
Der DSP 123 bleibt trotz Übermitteins des Spracherkennungsergebnisses in dem Betriebsmodus-Zustand RUN
304.
Erst nach Erhalt einer Nachricht PauseHMMSR 621, welche von dem Mikroprozessor 110 gesendet wird, geht der DSP 123 in den Pausezustand PAUSE 303 über und sendet zuvor jedoch noch eine Bestätigungsnachricht 622 an den Mikroprozessor 110.
Somit ist ein Spracherkennungsergebnis in dem Mikroprozessor 110 verfügbar und der Mikroprozessor 110 entscheidet nunmehr, was in dem Sprachdialog anwendungsabhängig als nächstes geschehen soll.
Es wird im Folgenden angenommen, dass eine Anwendung mehrere unterschiedliche Geräte steuert, wobei ein Telekommunikationsgerät, insbesondere ein Telefon, nur eines unter vielen ist.
In diesem Fall wird in einem ersten Dialogschritt des Sprachdialogs mittels eines Verfahrens zur sprecherunabhängigen Spracherkennung ermittelt, welches Gerät tatsächlich gesteuert werden soll, beispielsweise ob ein CD- Spieler, ein Tonbandgerät, ein Kassettenrekorder, ein Radio, ein Telekommunikationsendgerät (wie beispielsweise ein Telefon, ein Telefaxgerät, ein Teletextgerät , ein Mobilfunkgerät, ein PDA, etc.) gesteuert werden soll.
Ohne Einschränkung der Allgemeingültigkeit wird nun angenommen, dass als zu steuerndes Gerät in dem ersten Sprachdialogschritt ein Telefon ausgewählt wird, so dass das Ergebnis des ersten Zyklus 502 ist, dass übergegangen werden soll in das Menü, anders ausgedrückt in den Sprachdialog- Zustand zur Steuerung eines Telefons.
In dem Fall, wenn ein Zustandsübergang von einem Sprachdialog-Zustand in einen anderen Sprachdialog-Zustand erfolgen soll, ist üblicherweise eine Veränderung des aktuell im Rahmen der Spracherkennung verwendeten elektronischen
Wörterbuches, welches ja üblicherweise abhängig ist von dem jeweiligen Sprachdialog-Zustand, erforderlich.
In diesem Fall wird der zweite Zyklus 503 durchgeführt, wobei die ausgetauschten Nachrichten zwischen dem Mikroprozessor
110 und dem DSP 123 in einem Nachrichtenflussdiagramm 700 in Fig.7 im Detail dargestellt ist.
In einer ersten Phase, in der sich der Spracherkenner in dem Pausenzustand PAUSE 303 befindet, wird von dem Mikroprozessor
110 eine Nachricht SetHMMSearchParams 701 an den DSP 123 übermittelt, um dem DSP 123 anzugeben, dass er neue Parameter für die Suche laden soll. Der Empfang dieser Nachricht wird mit einer Bestätigungsnachricht 702 von dem DSP 123 an den Mikroprozessor 110 bestätigt.
Anschließend wird von dem Mikroprozessor 110 eine Nachricht StartLoadHMMDictionary 703 an den DSP 123 übermittelt, mittels welcher Nachricht das Laden des elektronischen Wörterbuches für den jeweiligen neuen Sprachdialog-Zustand in den DSP 123 gestartet wird.
Mit einer Nachricht SMBRequestLoadHMMDictionary 704 fordert der Signalprozessor 123 von dem Mikroprozessor 110 das jeweilige elektronische Wörterbuch, aufgeteilt in Blöcken (SMB) zu jeweils 16 KBytes, an. Mit einer
Bestätigungsnachricht 806 zeigt der Mikroprozessor 110 an, dass das angeforderte elektronische Wörterbuch in SMBs verfügbar ist und von dem DSP 123 in einen anderen Speicherort kopiert werden kann.
Mittels einer Nachricht StartHMMSR 706, welche von dem Mikroprozessor 110 an den DSP 123 gesendet und von diesem empfangen wird und seitens des DSP 123 mittels einer Bestätigungsnachricht 707 bestätigt wird, geht der Spracherkenner in dera DSP 123 in den Betriebsmodus-Zustand
RUN 304 über und es erfolgt ein Nachrichtenaustausch in einer zweiten Phase, in welcher der DSP 123 für jeden Rahmen eine Nachricht SMBRequestCodebookBlock 708 an den Mikroprozessor 110 übermittelt, welcher auf diese Nachricht jeweils mit einer Nachricht CodebookBlockLoadedAndSwitched 709, ebenfalls für jeden Rahmen, reagiert. Mit der Nachricht CodebookBlockLoadedAndSwitched 709 wird dem DSP 123 von dem Mikroprozessor 110 jeweils mitgeteilt, dass der SMB umgeschaltet wurde und ein neuer Codebuch-Block mit Codebuch- Daten auf Seiten des Mikroprozessors 110 geladen wurde und somit für den DSP 123 verfügbar ist.
Diese Nachrichten SMBRequestCodebookBlock 708 und CodebookBlockLoadedAndSwitched 709 werden, wie oben beschrieben, für jeden Rahmen ausgetauscht so lange, bis der Spracherkenner ein Spracherkennungsergebnis ermittelt hat, woraufhin der DSP 123 eine Nachricht HMMHypothesisStable 710
an den Mikroprozessor 110 übermittelt, mit dem gleichzeitig angegeben wird, dass und welches Spracherkennungsergebnis. von dem DSP 123 ermittelt worden ist.
Wiederum bleibt der Spracherkenner in dem Betriebsmodus- Zustand RUN 304.
Der Mikroprozessor 110 reagiert auf die Nachricht HMMHypothesisStable 710 mit einer Bestätigungsnachricht 711 und erst nach Erhalt eines Befehls „Pause" übermittelt der
Mikroprozessor 110 dem DSP 123 eine Nachricht PauseHMMSR 712, der auf Empfang dieser Nachricht mit einer Bestätigungsnachricht 713 reagiert, woraufhin der Spracherkenner in den Pausezustand PAUSE 303 übergeht.
Zusammenfassend ist zu dem in Fig.7 dargestellten zweiten Zyklus 503 anzumerken, dass für den Fall, dass sich der Spracherkenner in einem Sprachdialog-Zustand befindet, in dem sowohl Basiseinträge (sprecherunabhängig) als auch Listeneinträge (an sich sprecherabhängig, umgewandelt in
Phonemfolgen, damit ebenfalls sprecherunabhängig) in einem Wörterbuch enthalten sind, das jeweils neue Wörterbuch ein dynamisches Wörterbuch ist .
Es enthält, wie oben beschrieben, sprecherunabhängige Befehle und an sich sprecherabhängige, benutzerdefinierte Listeneinträge beispielsweise in einer Telefonbuchliste.
Die Listeneinträge gemäß diesem Ausführungsbeispiel der Erfindung sind an einer festen Speicherstelle des
Flashspeichers, welcher als Speicher 111 in dem Rechner 108 vorgesehen ist, gespeichert.
Neue Listeneinträge können erfindungsgemäß dem elektronischen Wörterbuch hinzugefügt werden und alte, nicht mehr benötigte Listeneinträge können aus dem elektronischen Wörterbuch entfernt werden, so dass eine dynamische, das heißt eine
veränderbare, Anzahl Wörter in dem elektronischen Wörterbuch enthalten ist, welche von der Spracherkennungseinheit erkannt werden können unter Verwendung eines Verfahrens zur sprecherunabhängigen Spracherkennung. Es ist ferner anzumerken, dass auch der Suchraum von der aktuellen Anzahl und der Größe der in dem Wörterbuch enthaltenen Basiseinträge und Listeneinträge abhängig ist. Aus diesem Grund ist eine möglichst effiziente Dateiverwaltung, insbesondere eine effiziente Verwaltung der elektronischen Wörterbücher sinnvoll.
Zum Hinzufügen oder Entfernen von Listeneinträgen von dem sprecherabhängigen Teil des jeweiligen Wörterbuches, das heißt der Listeneinträge in dem Wörterbuch, ist eine Veränderung des aktuellen Wörterbuches erforderlich.
Insbesondere zum Hinzufügen neuer Listeneinträge ist der dritte Zyklus 507 vorgesehen, wie er im Folgenden in einem Nachrichtenflussdiagramm 800 (vergleiche Fig.8) im Detail dargestellt ist.
Der dritte Zyklus 507 wird ausgeführt, wenn ein Zustandsübergang von einem Sprachdialog-Zustand in einen anderen Sprachdialog-Zustand keine Veränderung des Wörterbuches erfordert.
Ein Beispiel für einen solchen Zustandsübergang ist eine Eigenschleife, das heißt ein Übergang von einem Sprachdialog- Zustand in sich selbst.
Wie Fig.8 zu entnehmen ist, wird in einer ersten Phase von dem Mikroprozessor 110 eine Nachricht StartHMMSR 801 an den DSP 123 übermittelt, welcher daraufhin mit einer Bestätigungsnachricht 802 den Erhalt der Nachricht StartHMMSR 801 quittiert, womit sich der Spracherkenner in dem Betriebsmodus-Zustand RUN 304 befindet, .
Anschließend wird von dem DSP 123 eine Nachricht SMBRequestCodebookBlock 803 in entsprechender, oben im Zusammenhang mit dem zweiten Zyklus 603 beschriebener Weise für jeden Rahmen periodisch an den Mikroprozessor 110 übermittelt, welcher wiederum, wie oben beschrieben für jeden Rahmen mit einer Nachricht CodebookBlockLoadedAndSwitched 804 reagiert und damit die angeforderten Daten dem DSP 123 bereitstellt .
Der Austausch der Nachrichten SMBRequestCodebookBlock 803 und CodebookBlockLoadedAndSwitched 804 erfolgt in entsprechender Weise so lange, bis von dem DSP 123 ein Ergebnis der Spracherkennung ermittelt worden ist und das Ergebnis mittels einer Nachricht HMMHypothesisStable 805 an den Mikroprozessor 110 übermittelt wird, welcher den Empfang der Nachricht
HMMHypothesisStable 805 mit einer. Bestätigungsnachricht 806 quittiert .
Wiederum verbleibt der Spracherkenner in dem Betriebsmodus- Zustand RUN 404 und erst nach Erhalt eines Befehls „Pause" sendet der Mikroprozessor 110 eine Nachricht PauseHMMSR 807 an den DSP 123, welcher den Empfang mit einer Bestätigungsnachricht 808 quittiert, woraufhin der Spracherkenner in den Pausezustand PAUSE 403 übergeht.
Zusammenfassend wird somit in dem ersten Zyklus 502, der immer durchgeführt wird, nachdem ein HMM-Sprachdialog gestartet wird, das jeweilige HMM initialisiert.
Für jeden neuen Sprachdialog-Zustand ist es üblicherweise vorgesehen, ein neues elektronisches Wörterbuch in den DSP 123 zu laden. Um dies zu erreichen wird der zweite Zyklus 503 durchgeführt. In dem Fall, dass das aktuelle Wörterbuch verändert wird und nicht in einen anderen Dialog-Zustand übergegangen wird, wird ebenfalls der zweite Zyklus 503 verwendet .
Bei Verbleiben in dem aktuellen Sprachdialog-Zustand ohne Veränderung des Wörterbuches wird der dritte Zyklus 507 durchgeführt .
Somit sind üblicherweise in einer Spracherkennungsanwendung gemäß der Erfindung zwei voneinander zu unterscheidende Betriebsebenen vorgesehen.
Die erste Betriebsebene wird gebildet von der Kommunikation zwischen dem DSP 123 und dem Mikroprozessor 110 und die von dem DSP 123 ausgeführte Spracherkennung eines von einem Benutzer eingesprochenen Sprachsignals.
Die zweite Betriebsebene ist die Ebene der Software, die auf dem Mikroprozessor 110 abläuft, anders ausgedrückt, der Sprachdialog.
Somit sind die Aufgaben in einer Spracherkennungsanwendung zwischen dera Mikroprozessor 110 und dem DSP 123 derart aufgeteilt, dass üblicherweise die nicht so rechenintensive
Realisierung des Sprachdialogs von dem Mikroprozessor 110 übernommen wird, und die sehr rechenintensive eigentliche Spracherkennung von dem DSP 123.
Die Dateiverwaltung, insbesondere die Verwaltung der elektronischen Wörterbücher erfolgt seitens des Mikroprozessors 110.
Der Mikroprozessor 110 übernimmt insbesondere folgende Aufgaben:
• Hinzufügen eines neuen Listeneintrags zu dem jeweiligen Wörterbuch,
• Entfernen eines Listeneintrags aus dem jeweiligen Wörterbuch, • Entfernen der gesamten Liste aus dem Wörterbuch.
Die oben beschriebenen drei Aufgaben werden im Folgenden näher erläutert:
1. Entfernen der gesamten Liste aus dem jeweiligen elektronischen Wörterbuch
Der Sprachdialog startet mit dem ersten Zyklus 502. Jeder Zustandsübergang von einem Sprachdialog-Zustand in den nächsten bewirkt die Ausführung des zweiten Zyklus 503.
Nach Erkennen des Befehls "Liste löschen" wird die Dateiverwaltung gestartet .
Alle Listeneinträge in der Liste des elektronischen Wörterbuches werden gelöscht.
Anschließend existiert noch immer ein elektronisches Wörterbuch, welches jedoch nunmehr nur noch die sprecherunabhängigen Basiseinträge enthält oder sogar leer ist, wenn das Wörterbuch nur an sich sprecherabhängige und benutzerdefinierte Einträge enthalten hat.
Nachdem die Liste aus dem Wörterbuch gelöscht ist wird das Spracherkennungsverfahren entweder beendet (Schritt 505) oder in dem dritten Zyklus 507 oder dem zweiten Zyklus 503 weitergeführt .
2. Entfernen eines einzelnen Listeneintrags aus dem jeweiligen Wörterbuch
Wiederum wird der Sprachdialog in dem ersten Zyklus 502 gestartet und möglicherweise wurden zuvor ein oder mehrere Zustandsubergange unter Verwendung des zweiten Zyklus 503 zu anderen Sprachdialog-Zuständen durchgeführt.
Wird der Befehl "Lösche [Eintrag] " erkannt, so wird die Dateiverwaltung von dem Mikroprozessor 110 gestartet. Die
Phonemkette [Eintrag] repräsentiert den erkannten an sich sprecherabhängigen Listeneintrag in dem Wörterbuch.
Dieser Eintrag wird aus der Liste in dem jeweiligen Wörterbuch entfernt.
Ferner ist gemäß diesem Ausführungsbeispiel vorgesehen, dass die Speicherverwaltung den Speicher, welcher mit dem Listeneintrag belegt ist, reorganisiert und somit wieder zum Belegen mit anderen Listeneinträgen freigibt. Auf diese Weise kann eine ökonomische Speicherverwaltung realisiert werden.
Um zu gewährleisten, dass tatsächlich der richtige gewünschte Listeneintrag aus dem elektronischen Wörterbuch entfernt wird, kann erfindungsgemäß eine Sicherheitsschleife vorgesehen sein, in welcher der Benutzer noch einmal gefragt wird, ob er tatsächlich den eingegebenen Listeneintrag löschen will. Dies bedeutet möglicherweise eine Selbstschleife in dem aktuellen Sprachdialog-Zustand ohne Verändern des Wörterbuches, das heißt in diesem Fall wird der dritte Zyklus 507 durchgeführt.
In diesem Fall werden die Phonemkette [Eintrag] und der „Lösche"-Befehl zwischengespeichert. Nachdem der gewünschte Eintrag aus dem Wörterbuch entfernt worden ist oder nachdem der Löschbefehl aufgrund einer Benutzereingabe, mit der in der Sicherheitsschleife angegeben ist, dass der angegebene Eintrag nicht gelöscht werden soll, beendet wird, kann der Sprachdialog und damit auch das Spracherkennungsverfahren beendet werden (Schritt 505) oder das
Spracherkennungsverfahren kann mittels Übergangs in einen anderen Dialog-Zustand (zweiter Zyklus 503) oder einer Selbstschleife in dem aktuellen Dialog-Zustand (dritter Zyklus 507) weitergeführt werden.
3. Hinzufügen neuer Listeneinträge zu dem jeweiligen Wörterbuch
Diese Aufgabe stellt die komplexeste Routine dar. Wie in den beiden vorangegangenen Vorgehensweisen wird auch diesmal mit dem ersten Zyklus 502 begonnen und der zweite Zyklus 503 kann einmal oder mehrmals durchgeführt worden sein.
Nach Empfang des Befehls "Ergänze [Eintrag]", welche von dem Spracherkenner erkannt wurde, geht das System in einen Sprachdialog-Zustand über, in dem das Phonem-Wörterbuch geladen wird, in welchem Phonem-Wörterbuch die zur Verfügung stehenden Phoneme, welche jeweils abhängig sind von der verwendeten Sprache, enthalten sind.
Der Spracherkenner fordert den Benutzer auf, die jeweilige Äußerung, welche dem Wörterbuch als Listeneintrag zugefügt werden soll, einmal oder mehrmals in das Spracherkennungssystem einzusprechen.
Es ist ersichtlich, dass die Äußerung zumindest einmal in das Spracherkennungssystem eingesprochen werden muss . Wie im
Weiteren noch näher erläutert wird, ist die Erkennungsrate für den Listeneintrag umso besser, je mehr Repräsentanz- Äußerungen einer gleichen Sprachäußerung von der Spracherkennungseinheit erhalten wird, anders ausgedrückt, je häufiger eine gleiche Sprachäußerung von dem Benutzer in das Spracherkennungssystera eingesprochen wird.
Im Weiteren wird angenommen, dass drei Repräsentanz- Äußerungen verfügbar sind, das heißt dass die Sprachäußerung von dem Benutzer dreimal in das Spracherkennungssystem eingesprochen worden ist.
Erfindungsgemäß ist eine Computer-Variable vorgesehen, die die Anzahl von Eingaben einer Sprachäußerung in das Spracherkennungssystem, anders ausgedrückt, die Anzahl von
Repräsentanz-Äußerungen angibt, welche Variable für jede neue Repräsentanz-Äußerung inkrementiert wird. Nach erfolgtem
Einsprechen der ersten Äußerung werden der dritte Zyklus 507 durchgeführt, die erste Äußerung als Repräsentanz-Äußerung in einem Zwischenspeicher zwischengespeichert und der Wert der oben beschriebenen Computer-Variable um den Wert „1" erhöht.
In dem Fall, in dem der Wert der Computer-Variable gleich „3" ist, wird die im Folgenden näher erläuterte Vorgehensweise gestartet, bei der überprüft wird, ob die Äußerung als neuer Listeneintrag in dem elektronischen Wörterbuch gespeichert wird oder ob die gewünschte Äußerung in dem elektronischen Wörterbuch nicht gespeichert werden kann.
Anschaulich wird gemäß diesem Ausführungsbeispiel der Erfindung für eine als Listeneintrag einzutragende Äußerung überprüft, ob bei mehreren eingesprochenen Sprachsignalen zu einer gleichen Äußerung diese in einem Vergleichsräum ausreichend ähnlich zueinander sind und zumindest eine der Repräsentanz-Äußerungen der eingesprochenen Sprachsignale zu einer gleichen Sprachäußerung einen ausreichend großen Abstand von dem schon in dem Wörterbuch gespeicherten Wörtern oder Listeneinträgen aufweist und nur dann, wenn diese beiden Bedingungen erfüllt sind, wird das elektronische Wörterbuch um die neue eingesprochene Sprachäußerung ergänzt .
Auf diese Weise wird es ermöglicht, benutzerfreundlich und ressourcensparend ein elektronisches Wörterbuch für eine sprecherunabhängige Spracherkennung zu realisieren, wobei folgende Rahmenbedingungen angestrebt werden:
• Es soll eine möglichst geringe Anzahl von Eintrags- Annahmen bei ungleichen akustischen Äußerungen erfolgen;
• Es soll eine möglichst hohe Anzahl von Eintrags-Annahmen bei gleichen akustischen Äußerungen erfolgen;
• Es soll eine möglichst geringe Anzahl von zusätzlichen akustischen Ergänzungen erfolgen, was zu Ressourcenproblemen führen würde;
• Es soll ein Wortschatz gebildet werden, der eine möglichst hohe Erkennungsrate bietet.
Anschaulich werden somit Ähnlichkeitsmaße oder Distanzmaße als Schwellwertparameter eingesetzt, womit unter Verwendung von statistischen Verfahren auch der optimale Bereich des Spracherkenners für eine vorgegebene Anzahl von in dem
Wörterbuch enthaltenen Wörtern oder Listeneinträgen bestimmt werden kann.
Zur Lösung des oben genannten Optimierungsproblems werden im Folgenden zwei Parameter eingeführt:
• MIN_F0R_WORD : Dieser Parameter, im Weiteren auch bezeichnet als Intra-Ähnlichkeitswert, dient zur Bestimmung der Ähnlichkeit zwischen den Eintragskandidaten untereinander,
• MAX_TO_DICT: Dieser Parameter, im Weiteren auch als
Inter-Schwellwert bezeichnet, dient zur Bestimmung der Ähnlichkeit zwischen einem Eintragskandidaten und einem Eintrag des bereits vorhandenen Wortschatzes.
Basierend auf der Annahme, dass die Variablen MIN_FOR_WORD und MAX_TO_DICT voneinander statistisch unabhängig sind werden die für die jeweilige Anwendung optimalen Schwellwerte jeweils unabhängig voneinander bestimmt, wobei die Bestimmung der Schwellwerte in einer Trainingsphase erfolgt. Die in der Trainingsphase ermittelten Schwellwerte werden im Betrieb entsprechend als konstante Werte verwendet.
Das Trainingsverfahren zum Ermitteln der Schwellwerte wird im Folgenden für den konkreten Fall von zwei Eintragskandidaten erklärt. Es ist jedoch darauf hinzuweisen, dass das Verfahren auf eine beliebige Anzahl von Eintragskandidaten für eine Sprachäußerung anwendbar ist.
Darüber hinaus wird die Zahl der sprecherabhängigen Einträge auf N festgesetzt.
Als Ähnlichkeitsmaß wird im Weiteren die Distanz d(si,sj) verwendet. Die Distanz d(si,sj) ist ein Maß für den Abstand zwischen den Phonemfolgen SJ_ und Sj . Gemäß diesem Ausführungsbeispiel wird eine normierte Distanz verwendet, da die Phonemketten auch ungleiche Längen aufweisen können.
Als Distanzmaß kann grundsätzlich ein beliebiges Maß, welches geeignet ist zum Bestimmen eines Abstandes zwischen zwei Symbolketten, das heißt anschaulich zwischen zwei Folgen lautsprachlicher Einheiten, gemäß diesem Ausführungsbeispiel zwischen zwei Phonemfolgen, beispielsweise das so genannte Levenstein-Abstandsmaß oder auch der so genannte Mahalanobis- Abstand, eingesetzt werden.
Ferner kann jede beliebige Vergleichsnorm verwendet werden, die obige Anforderung erfüllt.
Zunächst wird zur Bestimmung des Intra-Schwellwerts sowohl die Akzeptanzrate (AR) also die Falsch-Akzeptanzrate (FAR) ermittelt .
Eine Schwellwertvariable T nimmt in diesem Fall Zahlen aus dem Wertebereich des Intra-Schwellwerts MIN_FOR_WORD an. Für jede Realisierung der Schwellwertvariable T werden somit unter Verwendung einer Schleife, welche alle N Einträge einschließt, die Funktionswerte AR(T) und FAR(T) bestimmt.
Für beide Funktionen wird anschließend der Funktionsverlauf über die Schwellwertvariable T aufgetragen. Der optimale Intra-Schwellwert MIN_FOR_WORD* wird durch Auswertung eines im Weiteren näher erläuterten Optimalitätskriterium bestimmt.
Zunächst wird die Akzeptanzrate AR für gleiche akustische Sprachäußerungen, das heißt für den Fall, dass S = SJ ist, berechnet .
Im statistischen Durchschnitt sollten in diesem Fall die relativen Distanzen d(si,sj) zwischen den Eintragskandidaten nur kleine Werte annehmen, das heißt die Distanz sollte gegen den Wert „0" gehen. Für einen kleinen
Schwel1wertvariablenwert T können die Werte der Distanz d(si,sj) jedoch den Schwellwertvariablenwert T übersteigen, womit die Akzeptanzrate gering wäre. Für einen großen Schwellwertvariablenwert T nimmt die Akzeptanzrate jedoch relativ schnell zu.
Die Akzeptanzrate ergibt sich gemäß folgender Vorschrift:
wobei mit N^R(T) die Anzahl der erfolgten Akzeptanzen für einen Schwellwertvariablenwert T bezeichnet wird.
Als Akzeptanzbedingung wird folgende Vorschrift verwendet, dass ein Eintrittskandidat akzeptiert wird, wenn gilt :
Die Funktion AR(T) wird für einen kleinen Schwellwertvariablenwert T ebenfalls einen kleinen Wert annehmen, anschließend ergibt sich ein monoton wachsender Funktionsverlauf, bis die Sättigung der Funktion AR(T), das heißt AR(T = 1), erreicht wird.
Anschließend wird die Falsch-Akzeptanzrate (FAR) für ungleiche akustische Sprachäußerungen, das heißt für den Fall das gilt s » SJ , berechnet.
Im statistischen Durchschnitt sollten in diesem Fall die Werte der relativen Distanz d(si,sj) zwischen den Eintragskandidaten größere Werte annehmen. Für einen kleinen Schwellwertvariablenwert T würde die Distanz d(si,Sj) den Intra-Schwellwert oftmals übersteigen und somit ist die Falsch-Akzeptanzrate gering. Für einen größeren Schwellwertvariablenwert T nimmt die Falsch-Akzeptanzrate relativ langsam zu.
Die Falsch-Akzeptanzrate wird in diesem Ausführungsbeispiel der Erfindung gemäß folgender Vorschrift ermittelt:
FAR(T)= AR
N
wobei mit Np^R(T) die Anzahl von Falsch-Akzeptanzen für einen Schwellwertvariablenwert T bezeichnet wird.
Die Falsch-Akzeptanzbedingung gemäß diesem Ausführungsbeispiel lautet:
Die Funktion FAR(T) wird ebenfalls für einen kleinen Schwellwertvariablenwert T einen kleinen Wert annehmen und es ergibt sich auch in diesem Fall ein monoton steigender Funktionsverlauf .
Im Vergleich zu der Funktion FAR(T) wird die Sättigung aber, verglichen mit der Funktion AR(T), erst für einen größeren Schwellwertvariablenwert T eintreten. Somit entspricht das Funktionsbild beider Funktionen AR(T) und FAR(T) qualitativ ungefähr dem einer Hysteresis-Kurve .
Trägt man beide Funktionsverläufe gegen die Schwellwertvariable T als Parameter auf, so ergibt sich der optimale Intra-Schwellwert MIN FOR WORD* an der Stelle, an
der beide Kurven der Funktionen AR(T) und FAR(T) den größten Abstand zueinander haben, wie dies in dem Funktionsdiagramm 900 in Fig.9 skizziert ist, das heißt es gilt:
MIN _ FOR _ WORD* = arg max[AR(τ) - FAR(τ)|] . (22)
T
Anschließend wird der optimale Inter-Schwellwert berechnet. Bei dieser Berechnung sollte beachtet werden, dass nach jeder Abweisung einer einzutragenden Äußerung nach erfolgtem Vergleich mit dem Inhalt des elektronischen Wörterbuches eine akustische Ergänzung, das heißt ein erneutes Einsprechen der gleichen Äußerung durch den Benutzer angefordert werden sollte.
Unter einer akustischen Ergänzung ist das Einsprechen eines zusätzlichen Parameters zu der eigentlich einzusprechenden Äußerung, beispielsweise für den Fall, dass die Äußerung ein Nachname einer Person ist, zusätzlich der Vorname derjenigen Person, zu verstehen.
Eine akustische Ergänzung ist erfindungsgemäß jedoch nicht unbedingt erforderlich, alternativ kann auch einfach der Antrag auf Eintragung der neuen Äußerung in das elektronische Wörterbuch zurückgewiesen werden oder die Zurückweisung kann nach einer vorgegebenen Anzahl von eingesprochenen
Äußerungen, nach denen noch immer kein qualitativ ausreichend hochwertiges Signal vorliegt, zurückgewiesen werden.
Für die nachfolgende Erläuterung wird angenommen, dass nur ein Vergleich pro Eintrag zugelassen ist. Anders ausgedrückt bedeutet dies, dass die akustische Erweiterung gemäß dem im Folgenden beschriebenen Ausführungsbeispiel nicht vorgesehen ist .
Findet man einen optimalen Schwellwert für diesen Fall, so wird auch die Anzahl der akustischen Ergänzungen auf ein vernünftiges Maß reduziert.
Der Schwellwertvariablenwert T nimmt in diesem Fall Zahlen aus dem Wertebereich des Inter-Schwellwerts MAX_TO_DICT an.
Unter Verwendung der Unabhängigkeitsannahme, wie sie oben dargelegt wurde, kann zur Durchführung der zweiten Optimierungsaufgabe der zuvor ermittelte Intra-Schwellwert MIN_FOR_WORD* eingesetzt werden.
Zunächst wird auf den Inter-Schwellwert MIN_FOR_WORD* die Akzeptanzrate (ÄRA) gemessen.
Für jeden Schwellwertvariablenwert T aus dem Wertebereich des Inter-Schwellwerts MAX_TO_DICT wird die relative Anzahl der sprecherabhängigen Einträge EAR(T) gemessen, das heißt EAR(T) ergibt sich gemäß folgender Vorschrift :
EAR(T) = NEAR(T) , (23)
N
wobei mit NEAR (T) die Anzahl der aufgenommenen Kandidaten für einen Schwellwertvariablenwert T bezeichnet wird.
Als Akzeptanzbedingung wird folgende Vorschrift verwendet:
d(wk+i, W) > T, (24)
wobei mit
• W der in dem Wörterbuch bereits gespeicherte Wortschatz , das heißt die gespeicherten Wörter oder die gespeicherten Listeneinträge (W = [w _ , W2 W3 , . . . , wk] ) und
• wk+l der neue Eintrag
bezeichnet wird.
Für einen kleinen Schwellwertvariablenwert T werden auch Einträge akzeptiert, welche nur einen geringen Abstand zum vorhandenen Wortschatz W in dem jeweiligen Vergleichsraum aufweisen. Für einen großen Schwellwertvariablenwert T hingegen werden kaum noch Einträge aufgenommen. Die Funktion EAR(T) weist somit einen monoton fallenden Verlauf auf.
Anschließend wird die Erkennungsrate für den jeweils aktuellen Schwellwertvariablenwert T unter Verwendung des aktuellen Gesamtwortschatzes M(T) bestimmt.
In diesem Zusammenhang ist anzumerken, dass die Gesamtzahl von Einträgen im Wörterbuch abhängig ist von dem aktuellen Schwellwertvariablenwert T. Sind sprecherabhängige und sprecherunabhängige Einträge in dem jeweiligen gemeinsamen Wörterbuch vorhanden, so ergibt sich der Gesamtwortschätz M(T) aus der Summe der Anzahl der sprecherabhängigen Einträge und der sprecherunabhängigen Einträge . Die Erkennungsrate ER(T) ergibt sich somit gemäß folgender Vorschrift:
wobei mit ΓRW(T) die Anzahl der korrekt erkannten Wörter für einen Schwellwertvariablenwert T bezeichnet wird.
Für einen kleinen Schwellwertvariablenwert T werden relativ viele Einträge in das gemeinsame elektronische Wörterbuch aufgenommen, die Verwechslungsgefahr ist somit entsprechend hoch, die Worterkennungsrate dagegen relativ niedrig. Für einen großen Schwellwertvariablenwert T werden weniger Einträge zum Speichern in dem gemeinsamen Wörterbuch akzeptiert, womit jedoch aufgrund des zunehmenden Abstands der Einträge in dem Wortschatz untereinander die
Erkennungsrate ER(T) zunimmt. Die Funktion ER(T) weist somit einen monoton steigenden Verlauf auf.
Zur Bestimmung des Optimalitätskriteriums ist anzumerken, dass die Forderung gilt, für ein festes N einen optimalen Bereich des Inter-Schwellwerts MAX_TO_DICT zu finden.
Somit wird ein Kompromiss zwischen der Anzahl der aufzunehmenden Einträge und der zugehörigen Erkennungsrate ER(T) erforderlich.
Beobachtet man die Funktion EAR(T) bis nach Verlassen des Maximums, das heißt solange EAR(T) den Wert „1" aufweist, in welchem Bereich immer N Wörter aufgenommen werden zur Speicherung in dem elektronischen Wörterbuch, so kann die entsprechende Erkennungsrate ER(T) in Abhängigkeit von dem Schwellwertvariablenwert T mittels einfachen Ablesens oder mittels entsprechender automatisierter Auswertung ermittelt werden.
Es ist zu beachten, dass die Normierung der Erkennungsrate bis zum Verlassen des Maximums von EAR(T) auf den Wert M(T) = N erfolgt.
Demnach ergibt sich ein Arbeitsbereich für den Inter-
Schwellwert MAX_TO_DICT, welcher zu niedrigen Werten des Schwellwertvariablenwert T von der minimalen Erkennungsrate ER-MIN|N bei fest vorgegebener Anzahl von sprecherabhängigen Einträgen N in dem Wörterbuch begrenzt ist.
Diese Situation ist in dem Funktionsdiagramm 1000 in Fig.10 dargestellt. Nach oben wird der Inter-Schwellwert MAX_TO_DICT von der maximalen Erkennungsrate ER]γ[Aχl]χr bei einer fest vorgegebenen Anzahl sprecherabhängiger Einträge in dem Wörterbuch begrenzt.
Für den Inter-Schwellwert MAX_TO_DICT muss somit gelten:
TMIN > MAX __ TO _ DICT < T AX . (26)
Dieses erfindungsgemäße zweistufige statistische Verfahren weist den Vorteil auf, dass bei gegebener Anzahl von sprecherabhängigen Einträgen N ein Arbeitsbereich gefunden wird, in dem sich die Erkennungsrate bewegen kann.
Umgekehrt ist es ebenso möglich, eine minimale Erkennungsrate zu fordern und dann die maximale Anzahl von Einträgen, die zum Einspeichern in dem Wörterbuch zugelassen sind, zu ermitteln.
In dem Sprachdialog-Zustand, in dem sprecherabhängige und sprecherunabhängige Einträge in dem Wörterbuch gespeichert sind, ist es möglich, neue benutzerdefiniert Namen, das heißt allgemein benutzerdefinierbare Äußerungen in dem Wörterbuch als Listeneintrag hinzuzufügen oder einen alten Listeneintrag aus dem Wörterbuch zu löschen.
In beiden Fällen verwaltet der Mikroprozessor 110 die Datei, welche das Wörterbuch repräsentiert. Nachdem die Datei verändert worden ist, kann die Spracherkennungseinheit wieder zur Spracherkennung aktiviert werden.
So lange der Sprachdialog fortgesetzt wird, wird der zweite Zyklus 503 wiederholt, in welchem Zyklus die Nachricht StartLoadHMMDictionary mit dem jeweiligen Kennzeichner, das heißt der ID versehen wird des jeweiligen definierten Wörterbuches, wobei anzumerken ist, dass die ID für die jeweilige Anwendung unverändert bleibt und somit zur Laufzeit nicht verändert werden kann.
Um einen neuen Eintrag in das elektronische Wörterbuch einzufügen bedeutet dies, dass für den ersten Schritt das elektronische Wörterbuch nicht geändert wird, weshalb der
dritte Zyklus 507 durchgeführt wird, um in den aktuellen Sprachdialog-Zustand zurückzukehren.
Um eine neue Äußerung zu der sprecherabhängigen Liste in dem Wörterbuch hinzuzufügen, wird zunächst ein spezielles Wörterbuch geladen, nämlich das Phonem-Wörterbuch. Die Äußerung wird unter Verwendung der in dem Phonem-Wörterbuch gespeicherten Phoneme analysiert .
Die Dateiverwaltung der Wörterbuchdatei, welche sprecherabhängige Listeneinträge gespeichert hat, ist wie oben angegeben, eine Aufgabe des Mikroprozessors 110.
Nach Erkennen eines Befehls, welches die Anwendung anstößt, einen Eintrag in dem Wörterbuch zu löschen oder dem Wörterbuch einen Eintrag hinzuzufügen, kann der Spracherkenner in den Pausezustand PAUSE 303 gesetzt werden oder er kann beendet werden (Schritt 505) .
Dann kann die Dateiverwaltung durchgeführt werden.
Der Prozess der Dateiverwaltung, im Rahmen dessen auf das Wörterbuch zugegriffen wird, startet, indem die sprecherabhängige eingesprochene Äußerung mit allen in dera Wörterbuch gespeicherten Einträgen verglichen wird, sowohl mit den sprecherabhängigen Einträgen als auch mit den sprecherunabhängigen Einträgen.
In dem Fall, in dem ein Eintrag aus dem Wörterbuch gelöscht werden soll, wird der entsprechende Eintrag in dem gesamten
Wörterbuch gesucht .
Die Dateiverwaltung ist verantwortlich für das Löschen der Einträge oder das Ändern irgendwelcher Einträge nur in der sprecherabhängigen Liste von Einträgen in dem Wörterbuch.
Im Rahmen der Dateiverwaltung ist dem Mikroprozessor 110 die für das Wörterbuch zur Verfügung stehende Speichergröße bekannt, das heißt insbesondere ist dem Mikroprozessor 110 bekannt, an welcher Stelle des Speichers 111 die sprecherabhängige Liste beginnt und an welcher sie endet.
In dem Fall, in dem der Speicher 111 voll belegt ist oder anders ausgedrückt, in dem Fall, in dem nicht genug Speicherplatz für das Aufnehmen einer neuen Äußerung in dem Speicher 111 enthalten ist, wird der Antrag auf Eintragen einer neuen Äußerung zurückgewiesen.
Die Zurückweisung kann unter Verwendung spezieller Sprach- Prompts, beispielsweise vordefinierter und aufgenommener Sprach-Prompts für die unterschiedlichen Fälle erfolgen:
• Ein dem Benutzer auszugebender möglicher Sprach-Prompt für den Fall, dass eine eigentlich als Befehl gedachte Eingabe nicht als ein Wort erkannt wurde, das in dem Wörterbuch enthalten ist, ist: "Wie bitte?"
• Für den Fall, dass die Äußerung, die dem Wörterbuch hinzugefügt werden soll, schon in dem Wörterbuch vorhanden ist, ist ein dem Benutzer auszugebender möglicher Sprach-Prompt : "[Eintrag] ist schon verfügbar."
• Für den Fall, dass kein Speicherplatz mehr verfügbar ist, ist ein dem Benutzer auszugebender möglicher Sprach-Prompt :
" [Liste] ist voll. "
Im Folgenden ist ein Beispiel für eine solche Verwaltung in einer Metasprache in einem C-Pseudocode angegeben:
StartDlalogueö{
StateJ (Action) { // Dialog ue State 1 , baslc State
gotostate »; da b,a goto statβ_3; da c,a gctestate t; da d,a gotσstatejä; do e,a StopHMMSRFIowgraph; do f
.
} do(Acfloπ)
} do (Action)
Im Folgenden wird ein erstes Ausführungsbeispiel für einen konkreten Sprachdialog näher erläutert.
Es werden unterschiedliche Sprachdialog-Zustände angegeben und es werden die Aktionen des Systems aufgezeigt, die nach Erkennen eines definierten Befehls durchgeführt werden.
Der Sprachdialog gemäß diesem Ausführungsbeispiel der Erfindung ist ein vereinfachter schematischer Telefon- Sprachdialog.
In den Fig.llA und Fig.llB sind in einer ersten Tabelle 1100 die gemäß diesem Ausführungsbeispiel definierten Sprach- Prompts (Fig.llA) aufgeführt und in der in Fig.l2B gezeigten Tabelle 1101 zusätzliche Systemreaktionen.
Unter einem Sprach-Prompt ist eine vordefinierte Äußerung des Systems zu verstehen, die entweder eine zuvor aufgenommene und einfach nur von dem Rechner 108 wiedergegebene Sprachäußerung eines Systemverwalters darstellt oder es kann ein synthetisiertes Sprachsignal sein, welches aus textueller Information zu einem Sprachsignal mittels des Rechners 108 umgewandelt wurde .
Unter der zusätzlichen Systemreaktion sind Aktionen des
Systems zu verstehen, nachdem ein spezieller Befehl von dem Spracherkenner erkannt worden ist.
Fig.12 zeigt ein HMM-Zustandsdiagramm 1200 für einen ersten Zustand 0, in dem die HMMs noch nicht gestartet sind.
Das Zustandsdiagramm 1200 ist derart zu verstehen, dass nach Erhalt des Befehls 1201 StartHMMSRFlowgraph 1202 die Aktion 1203 des Zustandsübergangs 1204 in den zweiten Zustand sowie die Ausgabe 1205 des Sprach-Prompts <a> erfolgt, das heißt die Ausgabe des Pieptons mittels des Lautsprechers 121.
Fig.l3A zeigt ein HMM-Zustandsdiagramm 1300 für den zweiten Zustand 1 sowie Fig.l3B das zugehörige Ablaufdiagramm.
Wie dem Sprachdialog-Zustandsdiagramm 1300 zu entnehmen ist, weist das Wörterbuch in diesem zweiten HMM-Zustand 1 folgende Einträge auf: "CD-Spieler, Kassettenrekorder, Radio, Telefon, Abbrechen", anders ausgedrückt, der Spracherkenner lädt in dem zweiten Sprachdialog-Zustand 1 dieses Wörterbuch und kann auch nur die Wörter erkennen, die in diesem elektronischen Wörterbuch enthalten sind.
Erkennt der Spracherkenner die empfangenen Worte als einen Befehl, wie sie in der Befehlsliste in dem Sprachdialog- Zustandsdiagramm 1300 enthalten sind, so wird ein entsprechender Zustandsübergang initiiert in einen nächsten Folgezustand, wobei die Sprachdialog-Zustände 2, 3 und 4 im Weiteren aus Gründen der Übersichtlichkeit nicht näher erläutert werden.
Es wird somit ohne Einschränkung der Allgemeingültigkeit im Folgenden lediglich der Sprachdialog hinsichtlich der Telefon-Anwendung näher erläutert, das heißt die Verzweigung des Sprachdialogs für den Fall, wenn der Befehl "Telefon" erkannt wurde und somit in den sechsten Sprachdialog-Zustand 5, wie er in dem Sprachdialog-Zustandsdiagramm 1400 in
Fig.l4A und dem zugehörigen Ablaufdiagramm 1410 in Fig.l4B dargestellt ist.
Das Wörterbuch des sechsten Sprachdialog-Zustands 5 weist folgende Begriffe auf: "Nummer, Wählen, Name, Speichern, Löschen, Abbrechen" als Basiseinträge, das heißt als sprecherunabhängige Einträge und eine Liste von sprecherabhängigen Einträgen, in Fig.l4A bezeichnet mit <Name> .
Für den Fall, dass der Befehl "Wähle Nummer" von einem Benutzer eingegeben und von dem Spracherkenner erkannt wurde,
wird in einen siebten Sprachdialog-Zustand 6 verzweigt und es werden die Sprach-Promp s <g> und <a> ausgegeben.
Das Sprachdialog-Zustandsdiagramm 1500 für den siebten Sprachdialog-Zustand 6 ist in Fig.l5A und das dazugehörige Ablaufdiagramm 1510 in Fig.l5B dargestellt.
Das Wörterbuch in dem siebten Sprachdialog-Zustand 6 weist folgende Einträge auf: "Null, Eins, Zwei, Drei, Vier, Fünf, Sechs, Sieben, Acht, Neun, Wählen, Abbrechen", welche Worte in dem siebten Sprachdialog-Zustand 6 von dem sprecherunabhängigen Spracherkenner erkannt werden können.
Je nachdem, welcher Befehl von dem Spracherkenner erkannt wird, wird entweder in dem siebten Sprachdialog-Zustand 6 verharrt, beispielsweise in dem Fall, wenn Ziffern erkannt werden, welche zwischengespeichert werden oder es wird in den ersten Zustand 0 übergegangen für den Fall, dass der Befehl "Wähle" oder der Befehl "Abbrechen" erkannt wird.
Für den Fall, dass in dem sechsten Sprachdialog-Zustand 5 der Befehl "Speicher Name" erkannt wurde, wird in den achten Sprachdialog-Zustand 7 verzweigt, welcher in dem Sprachdialog-Zustandsdiagramm 1600 in Fig.lβA und das zugehörige Abiaufdiagramm 1610 in Fig.16 dargestellt ist.
Für den achten Sprachdialog-Zustand 7 ist ein elektronisches Wörterbuch mit folgenden Einträgen vorgesehen: "Null, Eins, Zwei, Drei, Vier, Fünf, Sechs, Sieben, Acht, Neun, Wählen, Abbrechen".
Ferner ist vorgesehen, dass in diesem Zustand im Wesentlichen drei Befehle erkannt und verarbeitet werden können, nämlich die Eingabe von einzelnen Ziffern, woraufhin in dem achten Sprachdialog-Zustand 7 verblieben wird und die jeweils erkannte Ziffer zwischengespeichert wird; den Befehl des Speicherns, woraufhin in einen im Weiteren näher erläuterten
neunten Sprachdialog-Zustand 8 übergegangen wird unter Ausgabe des Sprach-Prompts <p> und des Pieptons <a> sowie den Befehl "Abbrechen" , woraufhin in den ersten Sprachdialog- Zustand 0 übergegangen wird unter Ausgabe des Sprach-Prompts <f> (vgl. Fig.llA) .
Das Sprachdialog-Zustandsdiagramm 1700 des neunten Sprachdialog-Zustands 8 ist in Fig.l7A und das zugehörige Ablaufdiagramm 1710 ist in Fig.l7B dargestellt.
In dem neunten Sprachdialog-Zustand 8 wird ein eingegebener Name in eine Folge von Phonemen umgewandelt unter Verwendung des Phonem-Wörterbuches, welches das Wörterbuch des neunten Sprachdialog-Zustands darstellt.
Nach Erkennen des Befehls <Name> wird in den zehnten Sprachdialog-Zustand 9 übergegangen, in dem der jeweilige Listeneintrag in dem elektronischen Wörterbuch gespeichert wird.
Das Sprachdialog-Zustandsdiagramm 1800 für den zehnten Sprachdialog-Zustand 9 und das zugehörige Ablaufdiagramm 1810 sind in den Fig.lδA bzw. Fig.lδB dargestellt.
Nach erfolgtem Speichern des Namens in dem elektronischen Wörterbuch wird in den ersten Sprachdialog-Zustand 0 übergegangen .
Im Folgenden wird ein zweites, vereinfachtes Ausführungsbeispiel der Erfindung näher erläutert.
Fig.19 zeigt ein Sprachdialog-Zustandsdiagramm 1900 eines ersten Sprachdialog-Zustands 1 gemäß dem zweiten Ausführungsbeispiel der Erfindung.
Das Wörterbuch des ersten Sprachdialog-Zustands 1 weist folgende Einträge auf: "Name, Speichern, Löschen, Wählen, Telefonbuch, Hilfe, Ja, Nein, Liste von Namen".
Folgende Befehle 1902 sind in dem ersten Sprachdialog-Zustand 1 definiert und können von dem Spracherkenner erkannt werden: "Name speichern, <Name> löschen, <Name> wählen, Telefonbuch löschen, Ja, Nein, Hilfe".
Die Befehle sind mit den entsprechenden, im Folgenden näher erläuterten Aktionen 1903 eindeutig verknüpft.
So wird nach Erkennen des Befehls „Name speichern" in den zweiten Sprachdialog-Zustand 2 übergegangen und es wird das Phonem-Wörterbuch geladen. Ferner wird folgender Sprach-
Prompt an den Benutzer ausgegeben: „Bitte sprechen Sie den Namen. "
Wird der Befehl „<Name> löschen" erkannt, so wird kein Sprachdialog-Zustands-Ubergang durchgeführt, sondern es wird einerseits der Sprach-Prompt : „Wollen Sie wirklich <Name> löschen?" ausgegeben und es werden sowohl die Angabe als auch der Befehl „<Name> löschen" zwischengespeichert.
Wird der Befehl „<Name> wählen" erkannt, so wird wiederum nicht in einen anderen Sprachdialog-Zustand übergegangen und es wird folgender Sprach-Prompt ausgegeben: „Wollen Sie wirklich <Name> wählen?" und die Angaben von „<Name>" und von „<Name> wählen" werden zwischengespeichert.
Nach Erkennen des Befehls „Telefonbuch löschen" wird weiterhin ebenfalls in dem ersten Sprachdialog-Zustand 1 verharrt und es wird der Sprach-Prompt ausgegeben: „Wollen Sie wirklich das Telefonbuch löschen?" und der Befehl „Telefonbuch löschen" wird zwischengespeichert.
Für den Fall, dass der Befehl „Ja" erkannt wird, wird ebenfalls in dem ersten Sprachdialog-Zustand 1 verharrt und es wird der in dem Zwischenspeicher zwischengespeicherte Befehl mit der zugehörigen Information ausgeführt und abhängig von dem jeweiligen zwischengespeicherten Befehl wird die Dateiverwaltung gestartet .
Beispielsweise wird für den Fall, dass der Befehl „<Name> löschen" zwischengespeichert ist der zwischengespeicherte „<Name>" aus dem Wörterbuch, das heißt der Namensliste, gelöscht. Ferner wird das Basiswörterbuch erneut geladen.
Ist der Befehl „<Name> wählen" zwischengespeichert, so wird die dem zwischengespeicherten „<Name>" zugehörige Ziffernfolge von dem Telefon gewählt, anders ausgedrückt, der Aktor steuert das Telefon derart, dass eine KommunikationsVerbindung zu dem Teilnehmer mit der zugehörigen Telefonnummer aufgebaut wird.
Ist der Befehl „Telefonbuch löschen" zwischengespeichert, so wird die gesamte „Liste", wie sie als Information ebenfalls zwischengespeichert ist, aus dem Wörterbuch gelöscht. Ferner wird das Basiswδrterbuch erneut geladen.
Erkennt der Spracherkenner den Befehl „Nein", so wird in dem ersten Sprachdialog-Zustand verweilt und es werden als Aktionen der Speicher initialisiert und das Basiswδrterbuch 1901 erneut geladen.
Für den Fall, dass der Befehl „Hilfe" erkannt wurde, so werden dem Benutzer alle in diesem Sprachdialog-Zustand verfügbaren Befehle grafisch zur Auswahl dargestellt.
Fig.20 zeigt ein Sprachdialog-Zustandsdiagramm 2000 für einen zweiten Sprachdialog-Zustand 2 gemäß dem zweiten Ausführungsbeispiel der Erfindung.
In dem Phonem-Wörterbuch 2001 sind die verfügbaren Phoneme gespeichert, als mögliche Befehle 2002 können die benutzerdefinierten Einträge <Name> erkannt werden und als Aktion 2003 eines erkannten Befehls ist vorgesehen, in dem zweiten Sprachdialog-Zustand zu verbleiben und die Zahl der erlaubten Versuche um den Wert 1 zu erhöhen, und für den Fall, dass die Zahl erlaubter Versuche überschritten wurde, in den ersten Sprachdialog-Zustand 1 überzugehen.
Ist keine Äußerung in dem zweiten Sprachdialog-Zustand in dem Zwischenspeicher zwischengespeichert, so wird die erste Phonemfolge, das heißt die erste Äußerung, zwischengespeichert. Ist jedoch schon eine Äußerung in dem Zwischenspeicher zwischengespeichert, so wird die Äußerung als zweite Äußerung in Form einer zweiten Phonemkette zwischengespeichert .
Für den Fall, dass schon zwei Äußerungen zwischengespeichert worden sind, wird die eingesprochene Äußerung als dritte Äußerung in Form einer dritten Phonemkette zwischengespeichert und anschließend wird die Dateiverwaltung gestartet, welche folgende Verfahrensschritte durchführt:
Zunächst erfolgt ein Matching der drei zwischengespeicherten Äußerungen. Für den Fall, dass kein Match der drei zwischengespeicherten Äußerungen erreicht wird, wird die Anforderung zurückgewiesen, der Zwischenspeicher geleert und die Aktionen des zweiten Sprachdialog-Zustandes 2003 werden erneut durchgeführt .
Anschließend werden die zwei besten Äußerungen mit den in dem Wörterbuch enthaltenen Einträge verglichen. Wenn die Ähnlichkeit im Sinne der obigen Beschreibung unter Verwendung des Inter-Schwellwerts zu groß ist, wird der Antrag auf Eintragen eines zusätzlichen Namens in das Wörterbuch zurückgewiesen und der Zwischenspeicher wird geleert. In
diesem Fall wird die Aktion 2003 des zweiten Sprachdialog- Zustandes erneut durchgeführt .
Für den Fall, dass kein Match erzeugt werden konnte, wird überprüft, ob der Speicher schon voll belegt ist und für den Fall, dass der Speicher voll belegt ist, wird der Antrag auf Eintragen eines neuen benutzerdefinierten Eintrags in das Wörterbuch zurückgewiesen und es erfolgt ein Sprachdialog- Zustandsübergang in den ersten Sprachdialog-Zustand 1 und gleichzeitig wird das Basiswörterbuch geladen.
Für den Fall, dass ausreichend freier Speicherplatz verfügbar ist und die obigen Überprüfungen positiv verlaufen sind, wird der gewünschte benutzerdefinierte Eintrag als Listeneintrag dem Wörterbuch hinzugefügt. Als Sprach-Prompt wird in diesem Fall die beste akustische Repräsentation der eingegeben sprachlichen Äußerung gespeichert.
Anschließend erfolgt ein Sprachdialog-Zustandsübergang in den im Folgenden näher erläuterten dritten Sprachdialog-Zustands 3 unter gleichzeitigem Laden eines Ziffern-Wörterbuches 2101, genauer des Wörterbuches, welches in dem dritten Sprachdialog-Zustand 3 verwendet wird.
Ein Sprachdialog-Zustandsdiagramm 2100 des dritten Sprachdialog-Zustands ist in Fig.21 dargestellt.
Das elektronische Wörterbuch 2101 des dritten Sprachdialog- Zustands 3 weist folgende Einträge auf: „Null, Eins, Zwei, Zwo, Drei, Vier, Fünf, Sechs, Sieben, Acht, Neun, Speichern, Korrektur, Zurück, Abbrechen, Hilfe".
Als Befehle 2102 sind folgende Befehlsketten von dem Spracherkenner erkennbar und interpretierbar: „<Ziffernblock>, Speichern, Korrektur, Zurück, Abbrechen, Hilfe".
Wird der Befehl „<Ziffernblock>" erkannt, so werden die jeweils erkannten Ziffern in dem Zwischenspeicher zwischengespeichert und der Spracherkenner verbleibt in dem dritten Sprachdialog-Zustand 3.
Wird der Befehl „Speichern" erkannt, so wird der Inhalt des Zwischenspeichers in der Liste von Telefonnummern gespeichert und es erfolgt ein Sprachdialog-Zustandsübergang in den ersten Sprachdialog-Zustand 1 unter gleichzeitigem Laden des Basis-Wörterbuches.
Bei Erkennen des Befehls „Korrektur" wird als Aktion 2103 der zeitlich zuletzt erkannte Ziffernblock, welcher im Zwischenspeicher zwischengespeichert ist, gelöscht. Ferner wird in dem dritten Sprachdialog-Zustand 3 verblieben.
Bei Erkennen des Befehls „Zurück" wird ebenfalls in dem dritten Sprachdialog-Zustand 3 verblieben und die in dem Zwischenspeicher zwischengespeicherte letzte Ziffer wird gelöscht.
Bei Erkennen des Befehls „Abbrechen" wird in den ersten Sprachdialog-Zustand 1 übergegangen unter gleichzeitigem Laden des Basis-Wörterbuches .
Bei Erkennen des Befehls „Hilfe" werden dem Benutzer wieder alle in dem dritten Sprachdialog-Zustand 3 verfügbaren Befehle zur Auswahl dargestellt .
Fig.22 zeigt ein Mobilfunk-Telefongerät 2200, in dem die in Fig. 1 dargestellte Spracherkennungseinrichtung 100 integriert ist. Ferner kann in das Mobilfunk-Telefongerät 2200 ein PDA (Personal Digital Assistant) integriert sein sowie weitere Telekommunikations-Funktionen, wie beispielsweise das Senden und/oder Empfangen von
Faxmitteilungen oder von SMS-Mitteilungen (Short Message Service-Mitteilungen) oder von MMS-Mitteilungen (Multimedia
Message Service-Mitteilungen) . Ferner kann das Mobilfunk- Telefongerät 2200 um zusätzliche Multimediafunktionalitäten erweitert sein, beispielsweise kann eine Kamera in das Mobilfunk-Telefongerät 2200 integriert sein.
Fig.23 zeigt ein Autoradio 2300, in dem (symbolisch in Fig.23 dargestellt) eine Vielzahl unterschiedlicher Komponenten integriert sind, so beispielsweise ein NavigationsSystem 2301, ein CD-Spieler 2302, ein Kassettenrekorder 2303, ein Radio 2304, ein Telefongerät mit Freisprechanlage 2305 sowie die Spracherkennungseinrichtung 100, wie sie in Fig.l dargestellt ist. Die Information kann sowohl mittels der Spracherkennungseinrichtung 100 als auch über einen Bildschirm 2306 zwischen dem Benutzer und dem Autoradio 2300 ausgetauscht werden.
Gerade zur Steuerung eines eine Vielzahl von unterschiedlichen Funktionalitäten bereitstellenden Systems, wie eines mit einer Vielzahl unterschiedlicher Funktionen versehenen Autoradios 2300 eignet sich die Erfindung sehr gut, da sehr flexibel und sprecherunabhängig eine beliebig komplizierte Sprachdialog-Struktur aufgebaut und realisiert werden kann.
In diesem Dokument ist folgende Veröffentlichung zitiert:
[1] E.G. Schukat-Talamazzini, Automatischer Spracherkennung, Grundlagen, statistische Modelle und effiziente Algorithmen, Vieweg Verlag, ISBN 3-528-05492-1, Seite 121 - 164, 1995
[2] EP 0 797 185 Bl
[3] DE 696 13 644 T2
Bezugszeichenliste
100 Spracherkennungseinrichtung
101 Sprachsignal
102 Mikrofon
103 Aufgenommenes analoges Sprachsignal
104 Vorverarbeitung
105 Vorverarbeitetes Sprachsignal
106 Analog-/Digital-Wandler
107 Digitales Sprachsignal
108 Rechner
109 Eingangsschnittstelle
110 Mikroprozessor
111 Speicher
112 Ausgangsschnittstelle
113 Computerbus
114 Elektronisches Wörterbuch
115 Tastatur
116 Computermaus
117 Kabel
118 Kabel
119 Funkverbindung 120 Funkverbindung
121 Lautsprecher
122 Aktor
123 DSP
200 Sprecherunabhängiges Wörterbuch
201 Basiseintrag
202 Sprecherabhängiges Wörterbuch
203 Eintrag speicherabhängiges Wörterbuch 204 Gemeinsames Wörterbuch
300 Spracherkenner-Zustandsdiagramm
301 Initialisierungszustand
302 Stopp-Zustand
303 Pausen-Zustand
304 Betriebsmodus-Zustand 305 Verfahrensschritt 306 Verfahrensschritt 307 Verfahrensschritt 308 Verfahrensschritt
309 Verfahrensschritt
310 Verfahrensschritt
311 Verfahrensschritt
312 Verfahrensschritt
313 Verfahrensschritt
314 Verfahrensschritt
400 Sprachdialog-Zustandsdiagramm
401 zeitlich vorangegangener Sprachdialog-Zustand
402 Sprachdialog-Zustand X
403 Wörterbuch
404 Wort
405 sprachabhängiger Listeneintrag
406 Befehl
407 Befehlsantrag
408 Aktion
409 Aktionsantrag
500 Ablaufdiagramm
501 Startzustand
502 Erster Zyklus
503 Zweiter Zyklus
504 Erster Prüfschritt
505 Ende-Zustand
506 Zweiter Prüfschritt
507 Dritter Prüfschritt
508 Dritter Zyklus
509 Vierter Prüfschritt
600 Nachrichtenflussdiagramm
601 Nachricht StartHMMSRFlowgraph
602 Bestätigungsnachricht
603 Nachricht InitHMMSRParams
604 Bestätigungsnachricht
605 Nachricht StartLoadHMMLDA
606 Nachricht SMBRequestLoadHMMLDA
607 Bestätigungsnachricht
608 Nachricht StartLoadHMMDictionary
609 Nachricht SMBRequestLoadHMMDictionary
610 Bestätigungsnachricht
611 Nachricht SMBRequestCodebookBlock
612 Nachricht CodebookBlockLoadedAndSwitched
613 Nachricht SMBRequestCodebookBlock
614 Nachricht CodebookBlockLoadedAndSwitched
615 Nachricht StartHMMSR
616 Bestätigungsnachricht
617 Nachricht SMBRequestCodebookBlock
618 Nachricht CodebookBlockLoadedAndSwitched
619 Nachricht HMMHypothesisStable
620 Bestätigungsnachricht
621 Nachricht PauseHMMSR
622 Bestätigungsnachricht
700 Nachrichtflussdiagramm
701 Nachricht SetHMMSearchParams
702 Bestätigungsnachricht
703 Nachricht StartLoadHMMDictionary
704 Nachricht SMBRequestLoadHMMDictionary
705 Bestätigungsnachricht
706 Nachricht StartHMMSR
707 Bestätigungsnachricht
708 Nachricht SMBRequestCodebookBlock
709 Nachricht CodebookBlockLoadedAndSwitched
710 Nachricht HMMHypothesisStable
711 Bestätigungsnachricht
712 Nachricht PauseHMMSR
713 Bestätigungsnachricht
800 Nachrichtenflussdiagramm
801 Nachricht StartHMMSR
802 Bestätigungsnachricht
803 Nachricht SMBRequestCodebookBlock
804 Nachricht CodebookBlockLoadedAndSwitched
805 Nachricht HMMHypothesisStable
806 Bestätigungsnachricht
807 Nachricht PauseHMMSR
808 Bestätigungsnachricht
900 Funktionsdiagramm
1000 Funktionsdiagramm
1100 Tabelle „Sprach-Prompts"
1101 Tabelle „Zusätzliche Systemreaktionen"
1200 Sprachdialogzustandsdiagramm
1201 Befehl
1202 Befehlsantrag
1203 Aktion
1204 Aktionsantrag
1205 Aktionsantrag
1300 Sprachdialogzustandsdiagramra 1310 Abiaufdiagramm
1400 Sprachdialogzustandsdiagramm 1410 Ablaufdiagramm
1500 Sprachdialogzustandsdiagramm 1510 Abiaufdiagramm
1600 Sprachdialogzustandsdiagramm 1610 Ablaufdiagramm
1700 Sprachdialogzustandsdiagramm 1710 Ablaufdiagramm
1800 Sprachdialogzustandsdiagramm 1810 Abiaufdiagramm
1900 Sprachdialogzustandsdiagramm
1901 Wörterbuch
1902 Befehlsliste
1903 Aktionsliste
2000 Sprachdialogzustandsdiagramm 2001 Vernehmwörterbuch
2002 Befehlsliste
2003 Aktionsliste
2100 Sprachdialogzustandsdiagramm
2101 Ziffernwörterbuch
2102 Befehlsliste
2103 Aktionsliste
2200 Mobilfunktelefon
2300 Autoradio
2301 Navigationssystem
2302 CD-Spieler
2303 Radio
2304 Kassettenrekorder
2305 Telefon
2306 Bildschirm
Claims
1. Spracherkennungseinrichtung mit
• einer Spracherkennungseinheit zur sprecherunabhängigen Spracherkennung,
• einem mit der Spracherkennungseinheit gekoppelten elektronischen Wörterbuch, in dem die im Rahmen der sprecherunabhängigen Spracherkennung berücksichtigten Wörter gespeichert sind, • einer mit dem elektronischen. Wörterbuch gekoppelten
Sprachsignal-Abbildungseinheit zum Abbilden eines von einem Benutzer eingesprochenen Sprachsignals auf eine Folge lautsprachlicher Einheiten, welche das Sprachsignal repräsentiert, wobei die Folge lautsprachlicher Einheiten derart eingerichtet ist, dass sie von der Spracherkennungseinheit im Rahmen der sprecherunabhängigen Spracherkennung verarbeitet werden kann,
• einer Wörterbuch-Ergänzungseinheit zum Ergänzen des elektronischen Wörterbuches um die von der Sprachsignal-
Abbildungseinheit gebildeten Folge lautsprachlicher Einheiten, und
• einer Lautfolgen-Auswahleinheit zum Auswählen einer Folge lautsprachlicher Einheiten aus einer Mehrzahl von Folgen lautsprachlicher Einheiten zu einer gleichen Sprachäußerung gemäß einem vorgegebenen Auswahlkriterium, wobei die Lautfolgen-Auswahleinheit derart eingerichtet ist, dass nur die ausgewählte Folge oder Folgen lautsprachlicher Einheiten der Wδrterbuch- Ergänzungseinheit zugeführt wird oder werden zum
Ergänzen des elektronischen Wörterbuches um die ausgewählte Folge oder Folgen lautsprachlicher Einheiten, die dem Auswahlkriterium genügt.
2. Spracherkennungseinrichtung gemäß Anspruch 1, bei der die Spracherkennungseinheit derart eingerichtet ist, dass die sprecherunabhängige Spracherkennung basierend auf folgenden Prinzipien erfolgt :
• Spracherkennung mittels Hidden Markov Modellen, • Spracherkennung mittels statistischer Klassifikatoren, insbesondere mittels mindestens eines künstlichen Neuronalen Netzes.
3. Spracherkennungseinrichtung gemäß Anspruch 1 oder 2 , bei dem die Folge lautsprachlicher Einheiten von einer
Phonemkette gebildet wird.
4. Spracherkennungseinrichtung gemäß einem der Ansprüche 1 bis 3, bei der die Lautfolgen-Auswahleinheit derart eingerichtet ist,
• dass für jede Folge lautsprachlicher Einheiten ein Abstandswert ermittelt wird, mit dem der Abstand der Folge lautsprachlicher Einheiten zu mindestens einem in dem elektronischen Wörterbuch gespeicherten Wort in einem Vergleichsraum beschrieben wird, und
• dass das vorgegebene Auswahlkriterium abhängig ist von dem Abstand der Folge lautsprachlicher Einheiten zu mindestens einem in dem elektronischen Wörterbuch gespeicherten Wort
5. Spracherkennungseinrichtung gemäß einem der Ansprüche 1 bis 4, eingerichtet als ein Embedded System.
6. Steuereinrichtung zum Steuern eines technischen Systems mit einer Spracherkennungseinrichtung gemäß einem der Ansprüche 1 bis 5, wobei in dem elektronischen Wörterbuch die zum Steuern des technischen Systems vorgesehenen Steuerbefehle gespeichert sind.
7. Telekommunikationsgerät mit einer Steuereinrichtung gemäß Anspruch 6.
8. Verfahren zum rechnergestützten Ergänzen eines elektronischen Wörterbuches für eine Spracherkennungseinheit zur sprecherunabhängigen Spracherkennung, in dem die im Rahmen der sprecherunabhängigen Spracherkennung berücksichtigten Wörter gespeichert sind,
• bei dem zu mindestens einem von einem Benutzer eingesprochenen Sprachsignal eine Folge lautsprachlicher Einheiten, welche das Sprachsignal repräsentiert, gebildet wird, wobei die Folge lautsprachlicher Einheiten derart eingerichtet ist, dass sie von der Spracherkennungseinheit im Rahmen der sprecherunabhängigen Spracherkennung verarbeitet werden kann,
• bei dem für mehrere Sprachsignale für eine gleiche Sprachäußerung jeweils eine Folge lautsprachlicher Einheiten gebildet wird, • bei dem für die Folgen lautsprachlicher Einheiten jeweils überprüft wird, ob sie einem vorgegebenen Auswahlkriterium genügen, und
• bei dem das elektronische Wörterbuch um die gebildete Folge lautsprachlicher Einheiten ergänzt wird, wobei nur die Folge oder Folgen lautsprachlicher Einheiten in dem elektronischen Wörterbuch gespeichert werden, die dem Auswahlkriterium genügen.
9. Verfahren gemäß Anspruch 8 , eingesetzt zur sprecherunabhängigen Spracherkennung.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10244168.5 | 2002-09-23 | ||
DE10244168 | 2002-09-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2004029931A1 true WO2004029931A1 (de) | 2004-04-08 |
Family
ID=32038178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/DE2003/003160 WO2004029931A1 (de) | 2002-09-23 | 2003-09-23 | Spracherkennungseinrichtung, steuereinrichtung und verfahren zum rechnergestützten ergänzen eines elektronischen wörterbuches für eine spracherkennungseinrichtung |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2004029931A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068706A1 (en) * | 2009-12-01 | 2011-06-09 | Honda Motor Co., Ltd. | Vocabulary dictionary recompile for in-vehicle audio system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754977A (en) * | 1996-03-06 | 1998-05-19 | Intervoice Limited Partnership | System and method for preventing enrollment of confusable patterns in a reference database |
US6185530B1 (en) * | 1998-08-14 | 2001-02-06 | International Business Machines Corporation | Apparatus and methods for identifying potential acoustic confusibility among words in a speech recognition system |
US20010003173A1 (en) * | 1999-12-07 | 2001-06-07 | Lg Electronics Inc. | Method for increasing recognition rate in voice recognition system |
EP1205908A2 (de) * | 2000-11-07 | 2002-05-15 | Canon Kabushiki Kaisha | Aussprache von neuen Wörtern zur Sprachverarbeitung |
-
2003
- 2003-09-23 WO PCT/DE2003/003160 patent/WO2004029931A1/de active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754977A (en) * | 1996-03-06 | 1998-05-19 | Intervoice Limited Partnership | System and method for preventing enrollment of confusable patterns in a reference database |
US6185530B1 (en) * | 1998-08-14 | 2001-02-06 | International Business Machines Corporation | Apparatus and methods for identifying potential acoustic confusibility among words in a speech recognition system |
US20010003173A1 (en) * | 1999-12-07 | 2001-06-07 | Lg Electronics Inc. | Method for increasing recognition rate in voice recognition system |
EP1205908A2 (de) * | 2000-11-07 | 2002-05-15 | Canon Kabushiki Kaisha | Aussprache von neuen Wörtern zur Sprachverarbeitung |
Non-Patent Citations (1)
Title |
---|
BURCHARD B ET AL: "A SINGLE CHIP PHONEME BASED HMM SPEECH RECOGNITION SYSTEM FOR CONSUMER APPLICATIONS", IEEE TRANSACTIONS ON CONSUMER ELECTRONICS, IEEE INC. NEW YORK, US, vol. 46, no. 3, August 2000 (2000-08-01), pages 914 - 919, XP001142922, ISSN: 0098-3063 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068706A1 (en) * | 2009-12-01 | 2011-06-09 | Honda Motor Co., Ltd. | Vocabulary dictionary recompile for in-vehicle audio system |
JP2013512477A (ja) * | 2009-12-01 | 2013-04-11 | 本田技研工業株式会社 | 車載オーディオ装置における語彙辞書の再編集 |
US9045098B2 (en) | 2009-12-01 | 2015-06-02 | Honda Motor Co., Ltd. | Vocabulary dictionary recompile for in-vehicle audio system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69827988T2 (de) | Sprachmodelle für die Spracherkennung | |
DE69829235T2 (de) | Registrierung für die Spracherkennung | |
DE60111329T2 (de) | Anpassung des phonetischen Kontextes zur Verbesserung der Spracherkennung | |
EP1256936B1 (de) | Verfahren zum Training oder zur Adaption eines Spracherkenners | |
DE60125542T2 (de) | System und verfahren zur spracherkennung mit einer vielzahl von spracherkennungsvorrichtungen | |
DE69919842T2 (de) | Sprachmodell basierend auf der spracherkennungshistorie | |
DE69910928T2 (de) | Spracherkennungsverfahren mit mehreren anwendungsprogrammen | |
DE69822296T2 (de) | Mustererkennungsregistrierung in einem verteilten system | |
DE102012212185B4 (de) | Pflegen und Bereitstellen von Sprachmodellen | |
DE60302407T2 (de) | Umgebungs- und sprecheradaptierte Spracherkennung | |
DE19533541C1 (de) | Verfahren zur automatischen Steuerung eines oder mehrerer Geräte durch Sprachkommandos oder per Sprachdialog im Echtzeitbetrieb und Vorrichtung zum Ausführen des Verfahrens | |
DE69425818T2 (de) | System und verfahren zur sprachbefehlssteuerung und sprecheridentitätsprüfung | |
DE102019119171A1 (de) | Spracherkennung für fahrzeugsprachbefehle | |
DE102007033472A1 (de) | Verfahren zur Spracherkennung | |
EP1649450A1 (de) | Verfahren zur spracherkennung und kommunikationsger t | |
DE60133537T2 (de) | Automatisches umtrainieren eines spracherkennungssystems | |
DE60214850T2 (de) | Für eine benutzergruppe spezifisches musterverarbeitungssystem | |
DE69333762T2 (de) | Spracherkennungssystem | |
DE69636731T2 (de) | System und Verfahren zur Aufnahme von Namen in einer Spracherkennungsdatenbank | |
EP1456837A1 (de) | Verfahren und vorrichtung zur spracherkennung | |
WO2001086634A1 (de) | Verfahren zum erzeugen einer sprachdatenbank für einen zielwortschatz zum trainieren eines spracherkennungssystems | |
WO2005088607A1 (de) | Benutzer- und vokabularadaptive bestimmung von konfidenz- und rückweisungsschwellen | |
DE102004017486A1 (de) | Verfahren zur Geräuschreduktion bei einem Sprach-Eingangssignal | |
WO2004029931A1 (de) | Spracherkennungseinrichtung, steuereinrichtung und verfahren zum rechnergestützten ergänzen eines elektronischen wörterbuches für eine spracherkennungseinrichtung | |
EP1704561A1 (de) | Verfahren und vorrichtung zur bearbeitung eines sprachsignals für die robuste spracherkennung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): CN US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
122 | Ep: pct application non-entry in european phase |