WO2004029932A1 - Method and device for the computer-aided comparison of a first sequence of phoneme units with a second sequence of phoneme units, voice recognition device, and speech synthesis device - Google Patents

Method and device for the computer-aided comparison of a first sequence of phoneme units with a second sequence of phoneme units, voice recognition device, and speech synthesis device Download PDF

Info

Publication number
WO2004029932A1
WO2004029932A1 PCT/DE2003/003206 DE0303206W WO2004029932A1 WO 2004029932 A1 WO2004029932 A1 WO 2004029932A1 DE 0303206 W DE0303206 W DE 0303206W WO 2004029932 A1 WO2004029932 A1 WO 2004029932A1
Authority
WO
WIPO (PCT)
Prior art keywords
speech
sequence
state
dictionary
symbol
Prior art date
Application number
PCT/DE2003/003206
Other languages
German (de)
French (fr)
Inventor
Diane Hirschfeld
Michael Küstner
Ronald Römer
Original Assignee
Infineon Technologies Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies Ag filed Critical Infineon Technologies Ag
Publication of WO2004029932A1 publication Critical patent/WO2004029932A1/en

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/10Speech classification or search using distance or distortion measures between unknown speech and reference templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/12Speech classification or search using dynamic programming techniques, e.g. dynamic time warping [DTW]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • G10L2015/025Phonemes, fenemes or fenones being the recognition units

Definitions

  • the invention relates to a method and a device for computer-aided comparison of a first sequence of spoken units with a second sequence of spoken units, a speech recognition device and a speech synthesis device.
  • Such a comparison often takes place, for example, as part of an automatic generation of databases for linguistic processing stages, for example phonetic rules or electronic lexicons, as part of a selection of suitable phoneme-labeled phonetic units (building blocks) on the basis of a sequence of phonemes to be synthesized for the speech signal generating unit Tex-to-speech system (text-to-speech system) or as part of a search for suitable words in an electronic lexicon (hereinafter also referred to as an electronic dictionary) for the generation of phoneme hypotheses of a speech recognition device.
  • Linguistic units are represented by symbols of a phonetic alphabet (phonemes).
  • the Levenshtein distance is well suited for the comparison of two symbol sequences, in particular of phoneme sequences, since it evaluates insertions, omissions and exchanges of individual symbols in fictitious mapping transformations that a first sequence of symbols, e.g. a first phoneme string into another sequence of symbols, e.g. transfer another phoneme chain.
  • a first sequence of symbols e.g. a first phoneme string into another sequence of symbols, e.g. transfer another phoneme chain.
  • the transformation operations "insertion” and “deletion” are assigned flat costs of "1”
  • the exchange operation is assigned costs of "2” because they combine an insertion and an omission, ie two operations.
  • the most cost-effective way is sought in the resulting distance matrix along which the minimum number of insertions, omissions and interchanges, in other words the Levenshtein distance, can be determined.
  • Levenshtein distance describes the optimal mapping between two sequences of symbols, i.e. between two episodes of spoken units.
  • the disadvantage is that it is difficult to assign the spoken units to individual classes, e.g. Vowels have no place of articulation. Furthermore, the evaluation is complicated and inhomogeneous.
  • the known method does not allow an exact quantification of the degree of similarity, both within a similarity class and between different similarity classes.
  • [4] describes a method for speech recognition by means of a dynamic programming algorithm (DP algorithm), in which the search range is restricted depending on the gradient of the search paths, in order to shorten the execution of the standard DP algorithm because there is less mathematical operations are to be performed.
  • DP algorithm dynamic programming algorithm
  • [5] describes a speech recognition system based on a neural network, in which two types of information are taken into account. Dynamically changing acoustic and visual signals are taken into account.
  • TDNN time delay neural network
  • the invention is based on the problem of comparing two sequences of spoken-language units with one another in a simpler and thus computing time-saving manner than with the known methods.
  • the problem is solved by the method and the apparatus for comparing a first sequence of phonetic units with a second sequence of phonetic 'units by the speech recognition means as well as by speech synthesis device with the features according to the independent claims.
  • each spoken unit of the first series of spoken units becomes a corresponding spoken unit of the second series of spoken units
  • the effort involved in converting the first spoken unit into the second spoken unit can be calculated numerically.
  • the costs are calculated as a numerical distance from the individual numerically coded articulatory features of the first and the second phonetic unit. Any metrics, in particular the Euclidean metric, can be used to calculate the distance.
  • K c (i, j) wk x-j_ (k) - yj (k)
  • k l
  • the articulation feature vectors are taken into account in such a way that the comparison cost function is increased differently in spoken units with different articulation feature vectors.
  • each spoken unit of the first series of spoken units is mapped to a corresponding spoken unit of the second series of spoken units, the numerical distance of two unit-dependent articulation feature vectors being calculated for each pairing of spoken units, and this in the form of a matrix, clearly a cost matrix spanned by the two sequences of spoken units to be compared.
  • a device for computer-aided comparison of a first sequence of spoken units with a second sequence spoken units has a processor unit which is set up in such a way that the method steps described above can be carried out.
  • a speech recognition device with a device described above is also provided.
  • the knowledge is exploited for the first time that the articulatory formation of spoken-language units significantly influences their physical characteristics.
  • the individual articulation organs act relatively independently of each other.
  • a numerical similarity measure can thus be calculated in a very simple manner for any phoneme, generally for any spoken units, by calculating the distance between the associated articulation feature vectors.
  • each symbol representation is assigned an articulation feature vector which contains articulatory properties of the symbol representations and / or physical properties of the symbol representations.
  • Each symbol representation of the first sequence of symbol representations is mapped to a corresponding symbol representation of the second sequence of symbol representations, the numerical distance between two units of dependent articulation feature vectors being calculated for each pairing of symbol representations and these being arranged in the form of a cost matrix.
  • a device has a processor unit which is set up in such a way that the method steps described above can be carried out or are carried out. Preferred developments of the invention result from the dependent claims.
  • the configurations described below relate both to the method, the device, the speech recognition device and the speech synthesis device.
  • the optimal (least expensive) route is determined in the cost matrix in accordance with the Levenshtein method.
  • mapping of spoken-language units of the first sequence of spoken-language units onto the second sequence of spoken-language units is clearly carried out in accordance with the Levenshtein method modified according to the invention, i.e. in other words, using the Levenshtein distance, whereby the articulation feature vectors are taken into account within the scope of the Levenshtein distance.
  • phonemes are used as spoken units.
  • the accuracy of the Levenshtein distance is considerably improved by taking the spoken units into account and the meaningfulness of the result achieved is considerably increased.
  • the articulation feature vectors can be dependent on different articulation settings of an organ producing a spoken unit, preferably a phoneme.
  • Particularly suitable articulation features can be:
  • the characteristic of whether a sound is glottalized or not is particularly important for African languages.
  • the pitch has turned out to be a suitable feature within the framework of the articulation feature vector.
  • the respective features in the articulation feature vector are preferably assigned several different articulation feature vector values, each of which describes a different form of the feature.
  • the simulation of the actual physical parameters of the organ producing the spoken-language unit can be further improved by the fact that the respective Articulation feature vector values subject to statistical variance are assumed to be around a given mean.
  • the invention is preferably used in the context of speech synthesis and speech recognition or in the context of the automatic generation of an electronic dictionary.
  • Further areas of application are the automatic creation of databases for linguistic processing stages, for example for phonetic rules or electronic lexicons, the selection of suitable, phoneme-labeled. phonetic units using a ⁇ to be synthesized phoneme for the artificial production of a speech signal of a text-to-speech system or the search for the correct word in an electronic encyclopedia for Phonemhypothesen a speech recognition device.
  • Figure 1 is a block diagram of a speech recognition device according to an embodiment of the invention.
  • Figure 2 is a block diagram in which the merging of an electronic dictionary with only for speaker-independent speech recognition beforehand entered and trained words are included and a dictionary in which statements relating to speaker-dependent speech recognition are stored, which according to the invention are merged 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
  • Figure 5 is a flow chart in which the individual
  • Figure 6 is a detailed view of the individual process steps for initializing the • 'speech recognition device according to an 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 exemplary embodiment of the invention are shown;
  • Figure 9 shows a first functional diagram according to an embodiment of the invention.
  • Figure 10 shows a second 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;
  • Figure 12 is a speech dialog state diagram of a first
  • 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 (FIG. 13A) and the associated flow diagram - (FIG. 13B);
  • 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
  • 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
  • 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. 18B);
  • 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.
  • 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.
  • a spoken utterance is converted into a sequence of spoken units, furthermore into a sequence of phonemes, and, as will be explained in more detail below, possibly the electronic dictionary as a supplementary entry fed and stored therein.
  • 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 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.
  • 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
  • a computer program, which is set up for speaker-independent speech recognition, is also stored in the digital signal processor 123.
  • 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 by means of the output interface 114 to a loudspeaker 121 and an actuator 122.
  • 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 telecommunication device or another technical system, for example a car radio Stereo system, a video recorder, 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 bandpasses are rectified, smoothed and sampled at short intervals, in accordance with 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 derivation are determined and combined into a supercharacteristic svector' and leads the computer 108 train ' e ' .
  • a speech recognition unit for speech-independent speech recognition is implemented in the form of a computer program, the speech recognition based on the principle of the Hidden Markov models, 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, ie the HMM prototype feature vectors, is calculated for a number of feature vector components selected in a selection step.
  • 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 and using predetermined training scripts, clearly illustrated by suitably set up computer programs.
  • each phonetic unit formed i.e. 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) of a sound that is called 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 carried out as part of the speaker-independent speech recognition.
  • 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.
  • the LDA matrix 304 (step 403) is determined by means of an LDA matrix calculation unit 303.
  • the LDA matrix 304 is used for transformation of a respective Super-feature vector y to a characteristic vector x in accordance with the following rule: '
  • Y is a super feature vector
  • the LDA matrix A is determined in such a way that
  • the components of the feature vector x are essentially uncorrelated from one another on a statistical average
  • 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 ykv has a dimension Dy of
  • any number of vector components in the super feature vector y that are adapted to the respective application. can be included, for example up to 20 cepstrums coefficients and their associated temporal first derivatives and second derivatives.
  • the average intra-scattering matrix S 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-scatter matrix S w and is determined by the positively definite and symmetrical Average intra-scatter matrix S w is transformed into its eigenvector space.
  • the average intra-scatter atrix S w is a diagonal matrix, the components of which 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.
  • a diagonalized average intra-scattering matrix S w A diagonalized average intra-scattering matrix S w :
  • the values ⁇ ⁇ are the eigenvalues of the average inter-scattering matrix Sjb 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. It should be noted that the trace of each matrix is invariant with respect to any orthogonal transformation, which results in the sum
  • a dimension reduction is then carried out by sorting the OJ values in order of decreasing size and the
  • 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 components with the 24 largest eigenvalues ⁇ ⁇ are used, in other words
  • 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 as a result has a respective code book, in each case specifically for a training data record with a predetermined number of feature vectors. 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 known per se.
  • 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 as part of the 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 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 controller SDA 80D51U-A from Infineon Technologies AG and the method for forming hidden Markov models is based on the software and a digital signal processor (DSP) from Oak.
  • 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 the following messages are provided for different speech recognition states, hereinafter also referred to as HMM states: First, the speech recognition states permitted within the speech recognizer are explained.
  • the speech recognizer has the following four HMM speech recognition states:
  • An operating mode state RUN 304 An operating mode state RUN 304.
  • 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 changes to the pause state PAUSE 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 changes to the RUN 304 operating mode state (step 308).
  • 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).
  • the DSP 123 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 goes 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 message PauseHMMSR from the microprocessor 110.
  • the following messages are provided for communication between the microprocessor 110 and the Oak DSP 123:
  • the following messages which can be sent to the Oak DSP 123 or from the Oak DSP 123, are defined in the initialization state INIT 301, in which the speech recognizer is initialized with default values after activation:
  • This message initiates the setting of default values for the speech recognizer in the Oak software in the DSP 123,
  • 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 in the DSP 123 is notified that the Switched Memory Block (SMB), according to this embodiment, the size of 16 Kbytes, is open to the Oak software because now the total number of blocks and segments in application are 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 indicates to the Oak DSP 123 that the speech recognizer should be stopped and should go into the stop state 302,
  • SetHMMSearchParams (minStableTime, wordStartupPenalty, transitionPenalty) are provided, with which the search parameters minStableTime, wordStartupPenalty and transitionPenalty can be set for the speaker-dependent dictionary. (Dear Dr. krastner: Can you briefly explain the meaning of these three parameters?)
  • This message can be transmitted to the microprocessor 110 by the speech recognizer in the Oak DSP 123 in any state of the firmware of the DSP 123.
  • SetHMMSearchParams minStableTime, wordStartupPenalty, transitionPenalty
  • the search is reset and the parameters for the search space are defined.
  • 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.
  • a number of commands are defined for a speech application, 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, which of a command-action tuple (407, 409) each associated with a command 406 in the form, can ⁇ a device such as a CD player or a communication device or other element of a stereo system, or in general a technical system control and exit the speech recognition application, or perform additional actions in the same step, triggered with the same command, or, for example, emit a sound by means of the loudspeaker 121, and then change into the same speech dialog state or into a different speech dialog state.
  • a device such as a CD player or a communication device or other element of a stereo system, or in general a technical system control and exit the speech recognition application, or perform additional actions in the same step, triggered with the same command, or, for example, emit a sound by means of the loudspeaker 121, and then change into the same speech dialog state or into a different speech dialog state.
  • a temporally preceding speech dialog state Xl 401 is shown, as well as its transition to the current speech dialog state X 402, the speech dialog.
  • State diagram 400 also showing that in the current speech dialog state X 402 words to be taken into account has been stored in an electronic dictionary 403, the electronic dictionary 403 containing both the words 404 previously stored in the form of speaker-independent, previously trained HMMs, generally the speaker-independent utterances with an arbitrary number of words 404 and list entries 405 which were originally speaker-dependent Contain utterances, which, however, as will be explained below, are mapped to a sequence of phonemes, which are then accessible to speaker-independent speech recognition.
  • the commands 406 and the actions 408 are 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 controlling the actuator 122 in FIG. 1.
  • Action 407, 409 provides, for example, feedback from the speech recognizer according to the invention and, in order to indicate to the user that something was recognized at all, switching to another speech dialog state, loading a new electronic dictionary, or executing an action assigned to the command , such as dialing an entered phone 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.
  • test step 506 is used to check whether a change should be made to a 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 should be made should be removed from the electronic dictionary or whether only an entry in the electronic dictionary should be changed.
  • test step 509 again checks whether the speech recognition is to be ended.
  • the end state 505 is entered 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.
  • the HMMs are initialized.
  • a message StartHMMSRFlowgraph 601 is transmitted by the microprocessor 110 to the DSP 123, with which 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 in order to start the loading of the computer program which causes the determination of an LDA matrix, as described above, for the respective HMM.
  • 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 this to the DSP 123 electronic dictionary for the basic dialog state of the respective speech dialog in the respective application in the DSP 123.
  • 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.
  • a message SMBRequestCodebookBlock 611 is transmitted from the DSP 123 to the microprocessor 110 and the microprocessor 110 responds 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
  • SMBRequestCodebookBlock 613 of the DSP calls for additional blocks to, - where the code book needed, otherwise 'expressed the required codebook data is included.
  • 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 changes to the stop state STOP 302 and only leaves this state after receipt of the command "Start", which the microprocessor HO transmits to the DSP 123 by means of the message StartHMMSR 615, 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 descriptive for each frame, which then periodically sends a response message, also 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 remains in spite of the transmission of the
  • Telecommunication device especially 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 carried out, the exchanged messages between the microprocessor 110 and the DSP 123 being shown in detail in a message flow diagram 700 in FIG.
  • a message SetHMMSearchParams 701 is transmitted from the microprocessor 110 to the DSP 123 in order to indicate to the DSP 123 that it should load new parameters for the search.
  • the receipt of this message will 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 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 changes to the RUN 304 operating mode state and it there is a message exchange in a second phase, in which 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 as above described, exchanged for each frame until the speech recognizer has determined a speech recognition result, whereupon the DSP 123 transmits a message HMMHypothesisStable 710 to the microprocessor 110, which simultaneously indicates that and which speech recognition result has been determined by the DSP 123.
  • the microprocessor 110 responds to the HMMHypothesisStable 710 message with a confirmation message 711 and only after receiving a "pause” command does the microprocessor 110 transmit a PauseHMMSR 712, def " message to the DSP 123 upon receipt of this message, with a confirmation message 713, whereupon the speech recognizer goes into the pause state PAUSE 303.
  • each 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.
  • the list entries according to this exemplary embodiment of the invention are stored in a fixed memory location of the flash memory, which is provided as memory 111 in the computer 108.
  • 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 to say a changeable, number of words is contained in the electronic dictionary which can be recognized by the speech recognition unit using a speaker-independent speech recognition technique.
  • the 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 (see 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.
  • StartHMMSR 801 is transmitted from the microprocessor 110 to the DSP 123, which is then sent with a Confirmation message 802 acknowledges receipt of the StartHMMSR 801 message, with which the speech recognizer is in the RUN 304 operating mode state.
  • 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.
  • the exchange of the messages SMBRequestCodebookBlock 803 and CodebookBlockLoadedAndSwitched 804 takes place in a corresponding manner until a result of the speech recognition has been determined by the DSP 123 and the result is transmitted by means of a message HMMHypothesisStable 805 to the microprocessor 110, which receives the message HMMHypothesisStable 805 acknowledged with a confirmation message 806.
  • 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.
  • each new speech dialog state it is usually provided to load a new electronic dictionary into the DSP 123. To achieve this, the second cycle 503 is performed. In the event that the current dictionary the second cycle 503 is also used and is not changed to another dialog state.
  • 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 divided between the microprocessor 110 and the DSP 123 in such a way that the less computationally intensive implementation of the speech dialog is usually carried out by the microprocessor 110, and the very computation-intensive actual speech recognition by the DSP 123.
  • 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 previously State transitions performed 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 by means of transition to another dialog state (second cycle 503) or one Self-loops can be continued in the current dialog state (third cycle 507).
  • This task is the most complex routine. As in the previous two procedures, the first cycle 502 is started this time and the second cycle 503 may have been performed one or more times.
  • 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 utters the same speech utterance into the speech recognition system.
  • a computer variable which specifies the number of inputs of a speech utterance into the speech recognition system, in other words, the number of representation utterances, which variable is corrected for each new representation utterance.
  • 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 space and at least one of the representational utterances of the spoken-in speech signals for a same utterance is a sufficiently large distance 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.
  • similarity measures or distance measures are thus used as threshold value parameters, whereby the optimum range of the speech recognizer for a predetermined number of words or list entries contained in the dictionary can also be determined using statistical methods.
  • MIN_FOR_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 optimum 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 number of speaker-dependent entries is set to N.
  • the distance d (sj_, sj) is used as a measure of similarity.
  • the distance d (si, sj) is a measure of the distance between the phoneme sequences s ⁇ and S. 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 optimal one Intra-threshold value MIN_FOR_WORD * is determined by evaluating an optimality criterion which is explained in more detail below.
  • the relative distances d (s, 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 (sj_, sj) can exceed the threshold value variable value T, which would make the acceptance rate low. For a large threshold variable value T, however, the acceptance rate increases relatively quickly.
  • N&R (T) denotes the number of acceptances that have been made for a threshold variable value T.
  • the false acceptance rate (FAR) is then calculated for unequal acoustic utterances, that is to say in the event that s «SJ.
  • the values of the relative distance d (s ⁇ , 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 ⁇ (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.
  • Threshold value variable T as a parameter, the optimal intra-threshold value MIN_FOR_WORD * is obtained at the point at which the two curves of the functions AR (T) and FAR (T) have the greatest distance from one another, as is shown in the function diagram 900 in FIG. 9 is outlined, which means:
  • 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 also be rejected or the rejection can be made after a predetermined number of spoken utterances, according to which there is still no sufficiently high-quality signal, be rejected.
  • 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 total vocabulary M (T) results from 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:
  • CRW (T) denotes the number of correctly recognized words for a threshold variable value T.
  • 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.
  • 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, i.e. the ID of the respective defined dictionary, it being noted that the ID remains unchanged for the respective application and cannot be changed at runtime.
  • the third cycle 507 is carried out in order to return to the current speech dialog state.
  • 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 file management process 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:
  • 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 which is generated from textual information on a voice signal by means of the computer 108 was converted.
  • the additional system reaction means actions of the system after a special command has been recognized by the speech recognizer.
  • 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 to the second state and the output 1205 of the speech romp ⁇ 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 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 into a next subsequent state, the speech dialogue states 2, 3 and 4 further for reasons of Clarity can not be explained in more detail.
  • 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 flowchart 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 to output the voice prompt ⁇ p> and the beep ⁇ a> and the command "Cancel", whereupon the first voice dialog state 0 is passed to output the voice prompt ⁇ f> ( see 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 system After recognizing the command “Save name”, the system switches to the second speech dialog state 2 and the phoneme dictionary is loaded. The following voice prompt is also output to the user: “Please speak the name.”
  • 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 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".
  • 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 temporarily stored 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.
  • a PDA Personal Digital Assistant
  • the mobile 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 system providing different functionalities, such as a car radio 2300 provided with a multitude of different functions, is very well suited, since an arbitrarily complicated voice dialog structure can be set up and implemented very flexibly and independently of the speaker.
  • Levenshtein distance is used to determine the distance between two phoneme sequences, supplemented according to the invention by the articulation feature vectors as part of the cost function.
  • two sequences of spoken units are compared with one another in such a way that insertions (q), omissions (r) and exchanges (c) of individual elements result in a first symbol sequence for one second symbol sequence is mapped.
  • the costs arising in the context of the figure are described by means of a cost function and can be viewed as the distance between the two symbol chains to be compared with one another, in this exemplary embodiment the two phoneme sequences.
  • articulation feature vectors are determined, one articulation feature vector each being assigned to a phoneme and stored in the memory.
  • the articulation feature vectors are formed according to the method described in [3] and are summarized in the following table for the phonemes of the German language, with a pause phoneme in the set of phonemes provided for describing the German language.
  • the following are provided as elements (components) of the articulation feature vector to take articulatory settings into account:
  • Each feature vector component is assigned a value that describes the respective category of the articulatory setting.
  • the lip rounding is provided as a further feature vector component, to which the following different categories are assigned: wide lip position ⁇ -1, indifferent lip position ⁇ 0, rounded lip position ⁇ 1 and pre-turned lip position ⁇ 2.
  • Consonants have free settings in which the position of the articulation organs can vary slightly. These enable the transition from a previous, stable articulatory position to a subsequent, stable articulatory position with the least articulatory effort. This process of overlapping articulatory gestures under the influence of neighboring phonemes by preceding or following phonemes is also called coarticulation.
  • articulation feature vectors m (i) which thus have the components “jaw position”, “articulation site”, “lip rounding” and “nasality” as articulation feature vector components, are, as explained in more detail below, as part of the calculation of the Levenshein Distance considered.
  • the articulation feature vector m (U) of the phoneme "U” has the structure:
  • an insertion variable q is first assigned the value 1 and an omission variable r is also assigned the value 1.
  • the procedure according to the invention is different.
  • the modified Levenshtein method for each spoken unit i.e.
  • a local distance is determined for each phoneme of the first series of phonemes and for each phoneme of the second series of phonemes, starting from the first phoneme of the first phoneme series to the corresponding first phoneme of the second phoneme series.
  • the cost value c (i, j) is given here for two phonetic units directly from the amount-related difference in the articulation of the phoneme feature vectors i and j of the phoneme, that is, in other words the costs are "in accordance with the following rule:
  • This modified expression corresponds to the variance normalized length of the difference vector.
  • this type of cost calculation according to the invention allows a differentiated statement about the similarity of phonemes than is possible with the Levenshtein method according to the prior art.
  • len_max corresponds to the number of phonemes that belong to the longer phoneme sequence.
  • both phoneme sequences are processed successively, phoneme for phoneme, generally symbol for symbol, and a cost matrix is determined. Then the route is determined within the cost matrix with the lowest local costs and the costs along this route are added. The result of the sum formation is the Levenshtein distance
  • the intermediate results are stored in the matrix d (I, J), the rows of which are assigned to the symbols of the first symbol sequence, ie the phonemes of the first phoneme sequence, and the columns of which are assigned to the symbols of the second symbol sequence, ie the phonemes of the second phoneme sequence.
  • the start line or start column contains the values of the so called recursion basis.
  • the first phoneme sequence is the sequence of the phonemes (g e: z a :) and the second phoneme sequence is (g e: s a :).
  • the following table shows the distance calculated according to the prior art, ie according to the usual method for calculating the Levenshtein distance. As can be seen in the table, ie the distance matrix, there is a Levenshein distance d norm of 1/2:
  • individual articulation features are weighted differently and different metrics are used to calculate the distance, for example a Euclidean metric or a Mahalanobis distance.
  • the artificially modified Levenshtein distance can be subsequently adapted to the system properties of the respective target application and to the classification target.
  • the invention clearly provides a novel method for determining a quantitative measure of similarity between two given phoneme sequences, which can be used for the first time in a phoneme-based speech recogniser as a measure for the simple calculation and assessment of the similarity between two recognition results, ie two phoneme sequences.
  • the addition of the Levenshtein distance according to the invention for the similarity calculation with the novel evaluation method enables differentiated statements about the similarity of two phoneme sequences for the first time.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Machine Translation (AREA)

Abstract

According to the invention, each phoneme unit of a first sequence of phoneme units is shown on a corresponding phoneme unit of a second sequence of phoneme units, a comparison-cost function being increased if a phoneme unit has to be omitted or exchanged when an insertion is shown. Characteristic articulation vectors are taken into account in the framework of said showing such that the comparison-cost function is increased by different degrees for phoneme units having different characteristic articulation vectors.

Description

Beschreibungdescription
Verfahren und Vorrichtung zum rechnergestützten Vergleich einer ersten Folge lautsprachlicher Einheiten mit einer zweiten Folge lautsprachlicher Einheiten, Spracherkennungseinrichtung und SprachsyntheseeinrichtungMethod and device for the computer-aided comparison of a first sequence of spoken units with a second sequence of spoken units, speech recognition device and speech synthesis device
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum rechnergestützten Vergleich einer ersten Folge lautsprachlicher Einheiten mit einer zweiten Folge lautsprachlicher Einheiten, eine Spracherkennungseinrichtung sowie eine Sprachsyntheseeinrichtung.The invention relates to a method and a device for computer-aided comparison of a first sequence of spoken units with a second sequence of spoken units, a speech recognition device and a speech synthesis device.
In der digitalen Sprachverarbeitung tritt häufig das Problem auf, zwei Symbolfolgen, insbesondere zwei Folgen lautsprachlicher Einheiten, vorzugsweise zwei Phonemketten, d.h. zwei Folgen von Phonemen, miteinander auf ihre Ähnlichkeit hin zu vergleichen.The problem frequently arises in digital speech processing, two symbol sequences, in particular two sequences of spoken units, preferably two phoneme chains, i.e. two sequences of phonemes to compare their similarity.
Ein solcher Vergleich findet häufig beispielsweise statt im Rahmen einer automatischen Erzeugung von Datenbasen für linguistische Verarbeitungsstufen, beispielsweise phonetische Regelwerke oder elektronische Lexika, im Rahmen einer Selektion passender, Phonem-etikettierter lautsprachlicher Einheiten (Bausteine) anhand einer zu synthetisierenden Folge von Phonemen für die Sprachsignalerzeugungseinheit eines Tex -zu-Sprache-Systems (Text-to-Speech-Syste ) oder im Rahmen einer Suche von passenden Wörtern in einem elektronischen Lexikon (im Folgenden auch bezeichnet als elektronisches Wörterbuch) für die Erzeugung von Phonemhypothesen einer Spracherkennungseinrichtung. Lautsprachliche Einheiten werden repräsentiert durch Symbole eines lautsprachlichen Alphabetes (Phoneme) .Such a comparison often takes place, for example, as part of an automatic generation of databases for linguistic processing stages, for example phonetic rules or electronic lexicons, as part of a selection of suitable phoneme-labeled phonetic units (building blocks) on the basis of a sequence of phonemes to be synthesized for the speech signal generating unit Tex-to-speech system (text-to-speech system) or as part of a search for suitable words in an electronic lexicon (hereinafter also referred to as an electronic dictionary) for the generation of phoneme hypotheses of a speech recognition device. Linguistic units are represented by symbols of a phonetic alphabet (phonemes).
Für den Vergleich zweier Folgen lautsprachlicher Einheiten ist es bekannt, ein Vergleichsverfahren unter Berücksichtigung der so genannten Levenshtein-Distanz zu verwenden (vgl. [1], [2]).For the comparison of two sequences of spoken units it is known to use a comparison method Taking into account the so-called Levenshtein distance (cf. [1], [2]).
Die Levenshtein-Distanz ist für den Vergleich zweier Symbolfolgen, insbesondere von Phonemfolgen, gut geeignet, da sie Einfügungen, Auslassungen sowie Vertauschungen einzelner Symbole in fiktiven Abbildungstransformationen bewertet, die eine erste Folge von Symbolen, z.B. eine erste Phonemkette in eine andere Folge von Symbolen, z.B. eine andere Phonemkette, überführen. Hierzu werden den Transformationsoperationen „Einfügung" und „Auslassung" Pauschalkosten im Wert von „1" zugeordnet, die Vertauschungsoperation wird mit Kosten im Wert von „2" belegt, da sie eine Einfügung und eine Auslassung, also zwei Operationen, miteinander kombiniert.The Levenshtein distance is well suited for the comparison of two symbol sequences, in particular of phoneme sequences, since it evaluates insertions, omissions and exchanges of individual symbols in fictitious mapping transformations that a first sequence of symbols, e.g. a first phoneme string into another sequence of symbols, e.g. transfer another phoneme chain. For this purpose, the transformation operations "insertion" and "deletion" are assigned flat costs of "1", the exchange operation is assigned costs of "2" because they combine an insertion and an omission, ie two operations.
Nach erfolgter Berechnung der Transformation eines jeden Symbols, d.h. eines jeden Phonems der einen Folge von Phonemen zu jedem Symbol der anderen Symbolkette, d.h. eines entsprechenden Phonems der anderen Phonemfolge, wird in der entstehenden Distanzmatrix der kostengünstigste Weg gesucht, entlang dessen die minimale Anzahl von Einfügungen, Auslassungen und Vertauschungen, anders ausgedrückt die Levenshtein-Distanz, ermittelt werden kann.After calculating the transformation of each symbol, i.e. of each phoneme of one sequence of phonemes for each symbol of the other symbol chain, i.e. of a corresponding phoneme of the other phoneme sequence, the most cost-effective way is sought in the resulting distance matrix along which the minimum number of insertions, omissions and interchanges, in other words the Levenshtein distance, can be determined.
Somit beschreibt die Levenshtein-Distanz die optimale Abbildung zwischen zwei Folgen von Symbolen, d.h. zwischen zwei Folgen lautsprachlicher Einheiten.Thus, the Levenshtein distance describes the optimal mapping between two sequences of symbols, i.e. between two episodes of spoken units.
Je geringer die Levenshtein-Distanz ist, desto weniger Transformationsoperationen sind nötig, um eine erste Folge lautsprachlicher Einheiten auf eine zweite Folge lautsprachlicher Einheiten abzubilden und desto ähnlicher sind sich die beiden lautsprachlichen Einheiten.The smaller the Levenshtein distance, the fewer transformation operations are necessary to map a first sequence of spoken units to a second sequence of spoken units and the more similar the two spoken units are.
Bei dem in [1] und [2] beschriebenen Verfahren wird im Rahmen der Levenshtein-Distanz nicht berücksichtigt, dass die Ähnlichkeit zwischen einzelnen Phonemen größer ist als zwischen anderen. Bei dem bekannten Levenshtein-Verfahren verursachen alle Vertauschungen dieselben Kosten.In the method described in [1] and [2], the Levenshtein distance does not take into account that the similarity between individual phonemes is greater than between others. In the known Levenshtein method, all exchanges cause the same costs.
Eine Lösung dafür wäre die Gruppierung ähnlicher Phoneme zu Ähnlichkeitsklassen, wobei i.a. als Entscheidungskriterium der Artikulationsort herangezogen wird, da dieses Merkmal wesentliche Transienten der spektralen Merkmale zum Nachbarlaut bewirkt. Ähnlichkeitsmaße für zwei Phoneme derselben Klasse wären dann kleiner, als für zwei Phoneme zweier verschiedener Klassen.One solution would be to group similar phonemes into similarity classes, whereby i.a. The articulation location is used as a decision criterion, since this characteristic causes essential transients of the spectral characteristics to the neighboring sound. Similarity measures for two phonemes of the same class would then be smaller than for two phonemes of two different classes.
Der Nachteil ist, daß die Zuordnung der lautsprachlichen Einheiten zu einzelnen Klassen schwierig ist, da z.B. Vokale keinen Artikulationsort aufweisen. Ferner ist die Bewertung kompliziert und inhomogen.The disadvantage is that it is difficult to assign the spoken units to individual classes, e.g. Vowels have no place of articulation. Furthermore, the evaluation is complicated and inhomogeneous.
Ferner ist das in [1] und in [2] verwendete Merkmal statisch und berücksichtigt somit nicht die zeitlich sich entwickelnden koartikulatorischen Einflüsse, welche über bis zu drei Phoneme reichen können.Furthermore, the feature used in [1] and in [2] is static and therefore does not take into account the temporally developing co-articulatory influences, which can span up to three phonemes.
Ferner ist mit dem bekannten Verfahren keine genaue Quantifizierung des Grades der Ähnlichkeit, sowohl innerhalb einer Ähnlichkeitsklasse als auch zwischen unterschiedlichen Ähnlichkeitsklassen, möglich.Furthermore, the known method does not allow an exact quantification of the degree of similarity, both within a similarity class and between different similarity classes.
Aus [3] ist im Rahmen der Sprachsynthese bekannt, dass mehrere unabhängige Artikulationseinstellungen zur numerischen Quantifizierung phonemischer Ähnlichkeiten verwendet werden könne .From [3] it is known in the context of speech synthesis that several independent articulation settings can be used for the numerical quantification of phonemic similarities.
[4] beschreibt ein Verfahren zur Spracherkennung mittels eines Algorithmus der Dynamischen Programmierung (DP- Algorithmus) , bei dem der Suchbereich abhängig von der Steigung der Suchpfade eingeschränkt wird, um auf diese Weise die Durchführung des Standard-DP-Algorithmus zu verkürzen, da weniger mathematische Operationen durchzuführen sind. [5] beschreibt ein Spracherkennungssystem auf der Basis eines neuronalen Netzwerkes, bei dem zwei Arten von In ormationen berücksichtigt werden. Es werden dynamisch sich verändernde akustische und visuelle Signale berücksichtigt. Unter Verwendung eines visuellen Vektors, in dem als Komponentenmerkmale enthalten sind die Nasen-Kinn-Entfernung, die Mundöffnung, die Horizontal-Mittellippen-Distanz, die vertikale Mittellippen-Distanz sowie die Mundwinkel-Trennung und eines Audiovektors, in dem Merkmale von Kurzzeitenergie- Spektren eines eingesprochenen Sprachsignals enthalten sind, welche gemeinsam einen audiovisuellen Vektor bilden, wird ein Zeitverzögerungs-Neuronales Netzwerk (TDNN) gespeist und die Spracherkennung erfolgt unter Verwendung des TDNN.[4] describes a method for speech recognition by means of a dynamic programming algorithm (DP algorithm), in which the search range is restricted depending on the gradient of the search paths, in order to shorten the execution of the standard DP algorithm because there is less mathematical operations are to be performed. [5] describes a speech recognition system based on a neural network, in which two types of information are taken into account. Dynamically changing acoustic and visual signals are taken into account. Using a visual vector in which the component features include the nose-chin distance, the mouth opening, the horizontal-center lip distance, the vertical center lip distance as well as the corner angle separation and an audio vector in the features of short-term energy spectra of a spoken voice signal, which together form an audiovisual vector, a time delay neural network (TDNN) is fed and the speech recognition takes place using the TDNN.
Der Erfindung liegt das Problem zugrunde, zwei Folgen lautsprachlicher Einheiten miteinander auf einfachere und somit Rechenzeit-einsparendere Weise zu vergleichen, als mit den bekannten Verfahren.The invention is based on the problem of comparing two sequences of spoken-language units with one another in a simpler and thus computing time-saving manner than with the known methods.
Das Problem wird durch das Verfahren und die Vorrichtung zum Vergleich einer ersten Folge lautsprachlicher Einheiten mit einer zweiten Folge lautsprachlicher' Einheiten, durch die Spracherkennungseinrichtung sowie durch die Sprachsyntheseeinrichtung mit den Merkmalen gemäß den unabhängigen Patentansprüchen gelöst .The problem is solved by the method and the apparatus for comparing a first sequence of phonetic units with a second sequence of phonetic 'units by the speech recognition means as well as by speech synthesis device with the features according to the independent claims.
Bei einem Verfahren zum rechnergestützten Vergleich einer ersten Folge lautsprachlicher Einheiten mit einer zweitenIn a method for computer-aided comparison of a first sequence of spoken units with a second
Folge lautsprachlicher Einheiten, wobei jeder lautsprachlichen Einheit ein Artikulations-Merkmalsvektor zugeordnet ist, der artikulatorische Eigenschaften der lautsprachlichen Einheiten und/oder erzeugungs-physikalischeSequence of spoken units, each spoken unit being assigned an articulation feature vector, the articulatory properties of the spoken units and / or generation-physical
Eigenschaften der lautsprachlichen Einheiten enthält, wird jede lautsprachliche Einheit der ersten Folge lautsprachlicher Einheiten auf eine entsprechende lautsprachliche Einheit der zweiten Folge lautsprachlicherContains properties of the spoken units, each spoken unit of the first series of spoken units becomes a corresponding spoken unit of the second series of spoken units
Einheiten abgebildet, wobei vorzugsweise mit Hilfe einer Kostenfunktion der Aufwand der Überführung der ersten lautsprachlichen Einheit in die zweite lautsprachliche Einheit numerisch berechnet werden kann. Die Kosten berechnen sich als numerische Distanz aus den einzelnen numerisch codierten artikulatorischen Merkmalen der ersten, sowie der zweiten lautsprachlichen Einheit. Zur Distanzberechnung können beliebige Metriken, insbesondere die Euklidische Metrik verwendet werden.Units mapped, preferably using a Cost function the effort involved in converting the first spoken unit into the second spoken unit can be calculated numerically. The costs are calculated as a numerical distance from the individual numerically coded articulatory features of the first and the second phonetic unit. Any metrics, in particular the Euclidean metric, can be used to calculate the distance.
K c(i, j)= wk x-j_(k) - yj(k)|| k=lK c (i, j) = wk x-j_ (k) - yj (k) || k = l
Wobei c(i, j) die Distanz zwischen zwei zu vergleichenden Phonemen i und j , w^ der Wichtungsfaktor für die k-te Merkmalskomponente, Xi(k) die k-te Merkmalskomponente des Phonems i und yj (k) die k-te Merkmalskomponente des Phonems j mit jeweils insgesamt K Merkmalen ist.Where c (i, j) the distance between two phonemes i and j to be compared, w ^ the weighting factor for the kth feature component, Xi (k) the kth feature component of the phoneme i and y j (k) the k- te feature component of the phoneme j, each with a total of K features.
Im Rahmen der Abbildung werden die Artikulations- Merk alsvektoren derart berücksichtigt, dass die Vergleichs- Kostenfunktion unterschiedlich erhöht wird bei lautsprachlichen Einheiten mit unterschiedlichen Artikulations-Merkmalsvektoren.In the context of the illustration, the articulation feature vectors are taken into account in such a way that the comparison cost function is increased differently in spoken units with different articulation feature vectors.
Anders ausgedrückt wird jede lautsprachliche- Einheit der ersten Folge lautsprachlicher Einheiten auf eine entsprechende lautsprachliche Einheit der zweiten Folge lautsprachlicher Einheiten abgebildet, wobei für jede Paarung von lautsprachlichen Einheiten die numerische Distanz zweier einheitenabhängiger Artikulations-Merkmalsvektoren berechnet wird, und diese in Form einer Matrix, anschaulich einer Kostenmatrix, die durch die beiden zu vergleichenden Folgen lautsprachlicher Einheiten aufgespannt wird, angeordnet werden.In other words, each spoken unit of the first series of spoken units is mapped to a corresponding spoken unit of the second series of spoken units, the numerical distance of two unit-dependent articulation feature vectors being calculated for each pairing of spoken units, and this in the form of a matrix, clearly a cost matrix spanned by the two sequences of spoken units to be compared.
Eine Vorrichtung zum rechnergestützten Vergleich einer ersten Folge lautsprachlicher Einheiten mit einer zweiten Folge lautsprachlicher Einheiten weist eine Prozessoreinheit auf, die derart eingerichtet ist, dass die oben beschriebenen Verfahrensschritte durchführbar sind.A device for computer-aided comparison of a first sequence of spoken units with a second sequence spoken units has a processor unit which is set up in such a way that the method steps described above can be carried out.
Ferner ist eine Spracherkennungseinrichtung mit einer oben beschriebenen Vorrichtung vorgesehen.A speech recognition device with a device described above is also provided.
Weiterhin ist eine Sprachsyntheseeinrichtung mit einer oben angegebenen Vorrichtung bereitgestellt .Furthermore, a speech synthesis device with a device specified above is provided.
Erfindungsgemäß wird erstmals die Erkenntnis ausgenutzt, dass die artikulatorische Bildung lautsprachlicher Einheiten deren physikalische Merkmalsausprägung wesentlich beeinflusst . Dabei agieren die einzelnen Artikulationsorgane relativ unabhängig voneinander.According to the invention, the knowledge is exploited for the first time that the articulatory formation of spoken-language units significantly influences their physical characteristics. The individual articulation organs act relatively independently of each other.
Aus diesem Grund werden zur Beschreibung der Phoneme mehrere Merkmale, die in dem Artikulations-Merkmalsvektor jeweils zusammengefasst sind und für deren Unterscheidung relevant sind, verwendet.For this reason, several features, which are summarized in the articulation feature vector and are relevant for their differentiation, are used to describe the phonemes.
Nach einer optionalen Untersuchung der für eine phonetische Einteilung relevanten artikulatorischen MerkmaleAfter an optional examination of the articulatory features relevant for a phonetic classification
(artikulatorischer Variationsbereich) sowie der nach physikalischen Merkmalen sinnvollen Einteilung(articulatory range of variation) as well as the appropriate division according to physical characteristics
(physikalischer Variationsbereich) erfolgt eine Einteilung des Merkmalsraums und eine numerische Codierung der artikulatorischen Merkmale sowie eine Zuordnung zu den Phonemen im Phonemsystem (allgemein im System der lautsprachlichen Einheiten) anhand ihrer physikalischen Merkmale .(physical range of variation) there is a division of the feature space and a numerical coding of the articulatory features as well as an assignment to the phonemes in the phoneme system (generally in the system of phonetic units) based on their physical features.
Damit kann für beliebige Phoneme, allgemein für beliebige lautsprachliche Einheiten, ein numerisches Ähnlichkeitsmaß auf sehr einfache Weise berechnet werden, indem die Distanz zwischen den zugehörigen Artikulations-Merkmalsvektoren berechnet wird. Damit wird anschaulich ein Merkmalssystem und ein Berechnungsverfahren bereitgestellt, das eine einfache Ermittlung eines quantitativen Ähnlichkeitsmaßes zwischen zwei beliebigen Folgen lautsprachlicher Einheiten erlaubt, vorzugsweise das Ähnlichkeitsmaß zwischen zwei Folgen beliebiger Phoneme, und das anschaulich auf artikulatorisch- physikalischen Zusammenhängen basiert und die Ähnlichkeit in artikulatorischen Einheiten quantifiziert.A numerical similarity measure can thus be calculated in a very simple manner for any phoneme, generally for any spoken units, by calculating the distance between the associated articulation feature vectors. This clearly provides a system of features and a calculation method that allows a simple determination of a quantitative measure of similarity between any two sequences of phonetic units, preferably the measure of similarity between two sequences of any phoneme, and that is clearly based on articulatory-physical relationships and quantifies the similarity in articulatory units ,
Somit wird erfindungsgemäß berücksichtigt, dass die Ähnlichkeit zwischen einzelnen lautsprachlichen Einheiten, beispielsweise einzelnen Phonemen, größer ist (z.B. verschiedenen /e/-Phonemen im Deutschen oder zwischen /i/ und /j/) als zwischen anderen (eine Vertauschung also geringere Kosten verursacht) .Thus, according to the invention, it is taken into account that the similarity between individual phonetic units, for example individual phonemes, is greater (for example different / e / -phonemen in German or between / i / and / j /) than between others (an exchange therefore causes lower costs) ,
Erfindungsgemäß ist zum rechnergestützten Vergleich einer ersten Folge von Symboldarstellungen einer lautsprachlichen Äußerung mit einer zweiten Folge von Symboldarstellungen einer lautsprachlichen Äußerung jeder Symboldarstellung ein Artikulations-Merkmalsvektor zugeordnet, der artikulatorische Eigenschaften der Symboldarstellungen und/oder Erzeugungsphysikalische Eigenschaften der Symboldarstellungen enthält. Jede Symboldarstellung der ersten Folge von Symboldarstellungen wird auf eine entsprechende Symboldarstellung der zweiten Folge von Symboldarstellungen abgebildet, wobei für jede Paarung von Symboldarstellungen die numerische Distanz zweier Einheiten abhängiger Artikulations-Merkmalsvektoren berechnet wird und diese in Form einer Kostenmatrix angeordnet werden.According to the invention, for the computer-aided comparison of a first sequence of symbol representations of a spoken utterance with a second sequence of symbol representations of a spoken utterance, each symbol representation is assigned an articulation feature vector which contains articulatory properties of the symbol representations and / or physical properties of the symbol representations. Each symbol representation of the first sequence of symbol representations is mapped to a corresponding symbol representation of the second sequence of symbol representations, the numerical distance between two units of dependent articulation feature vectors being calculated for each pairing of symbol representations and these being arranged in the form of a cost matrix.
Eine erfindungsgemäß Vorrichtung weist eine Prozessoreinheit auf, die derart eingerichtet ist, dass die oben beschribenen Verfahrensschritte durchführbar sind oder durchgeführt werden. Bevorzugte Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen .A device according to the invention has a processor unit which is set up in such a way that the method steps described above can be carried out or are carried out. Preferred developments of the invention result from the dependent claims.
Als lautsprachliche Einheit wird im Rahmen der Erfindung eineAs a spoken unit in the context of the invention
Symboldarsteilung einer lautsprachlichen Äußerung verstanden, beispielsweiseUnderstanding the symbolic representation of a spoken utterance, for example
• eine Symboldarstellung von einzelnen Zeichen, die eine lautsprachliche Äußerung repräsentieren,A symbol representation of individual characters that represent a spoken utterance,
Phonemsegmente ,Phoneme segments,
Phoneme ,Phonemes,
Allophone,allophones,
Diphone,diphones
Halbsilben,Half-syllables,
Silben oder ganze Wörter.Syllables or whole words.
Die im Folgenden beschriebenen Ausgestaltungen betreffen sowohl das Verfahren, die Vorrichtung, die Spracherkennungseinrichtung als auch die Sprachsyntheseeinrichtung .The configurations described below relate both to the method, the device, the speech recognition device and the speech synthesis device.
Gemäß einer- Ausgestaltung der Erfindung ist es vorgesehen, dass in der Kostenmatrix gemäß dem Levenshtein-Verfahren der optimale (kostengünstigste) Weg ermittelt wird.According to one embodiment of the invention, the optimal (least expensive) route is determined in the cost matrix in accordance with the Levenshtein method.
Die Abbildung lautsprachlicher Einheiten der ersten Folge lautsprachlicher Einheiten auf die zweite Folge lautsprachlicher Einheiten erfolgt anschaulich gemäß dem erfindungsgemäß veränderten Levenshtein-Verfahren, d.h. anders ausgedrückt, unter Verwendung der Levenshtein-Distanz, wobei im Rahmen der Levenshtein-Distanz die Artikulations- Merkmalsvektoren berücksichtigt werden.The mapping of spoken-language units of the first sequence of spoken-language units onto the second sequence of spoken-language units is clearly carried out in accordance with the Levenshtein method modified according to the invention, i.e. in other words, using the Levenshtein distance, whereby the articulation feature vectors are taken into account within the scope of the Levenshtein distance.
Gemäß einer anderen Ausgestaltung der Erfindung ist es vorgesehen, dass als lautsprachliche Einheiten Phoneme verwendet werden. Durch diese Ausgestaltung der Erfindung wird die Levenshtein- Distanz durch Berücksichtigung der lautsprachlichen Einheiten in ihrer Genauigkeit wesentlich verbessert und die Aussagekraft des erzielten Ergebnisses erheblich erhöht.According to another embodiment of the invention, it is provided that phonemes are used as spoken units. With this embodiment of the invention, the accuracy of the Levenshtein distance is considerably improved by taking the spoken units into account and the meaningfulness of the result achieved is considerably increased.
Die Artikulations-Merkmalsvektoren können abhängig von unterschiedlichen Artikulationseinstellungen eines eine lautsprachliche Einheit, vorzugsweise ein Phonem, erzeugenden Organs sein.The articulation feature vectors can be dependent on different articulation settings of an organ producing a spoken unit, preferably a phoneme.
Besonders geeignete Artikulations-Merkmale können sein:Particularly suitable articulation features can be:
• die Kieferstellung eines Menschen,The jaw position of a person,
• der Artikulationsort der jeweiligen lautsprachlichen Einheit,• the place of articulation of the respective speaking unit,
• die Lippenrundung eines Menschen,• the rounding of a person's lips,
• die Nasalität,• the nasality,
• der Glottalisierungsgrad, oder• the degree of glottalization, or
• die Tonhöhe.• the pitch.
Sprachabhängig können unterschiedliche andere Charakteristika dem Artikulations-Merkmalsvektor hinzugefügt werden.Depending on the language, different other characteristics can be added to the articulation characteristic vector.
Das Merkmal, ob ein Laut glottalisiert ist oder nicht, ist insbesondere für die afrikanischen Sprachen von Bedeutung.The characteristic of whether a sound is glottalized or not is particularly important for African languages.
Für asiatische Sprachen, insbesondere für Chinesisch hat sich die Tonhöhe im Rahmen des Artikulations-Merkmalsvektors als ein geeignetes Merkmal herausgestellt.For Asian languages, especially Chinese, the pitch has turned out to be a suitable feature within the framework of the articulation feature vector.
Den jeweiligen Merkmalen in dem Artikulations-Merkmalsvektor sind vorzugsweise mehrere unterschiedliche Artikulations- Merkmalsvektorwerte zugeordnet, die jeweils eine unterschiedliche Ausprägung des Merkmals beschreiben.The respective features in the articulation feature vector are preferably assigned several different articulation feature vector values, each of which describes a different form of the feature.
Die Nachbildung der tatsächlichen physikalischen Parameter des die lautsprachliche Einheit erzeugenden Organs kann weiter dadurch verbessert werden, dass die jeweiligen Artikulations-Merkmalsvektorwerte einer statistischen Varianz unterliegend angenommen werden um einen jeweils angegebenen Mittelwert .The simulation of the actual physical parameters of the organ producing the spoken-language unit can be further improved by the fact that the respective Articulation feature vector values subject to statistical variance are assumed to be around a given mean.
Werden die Varianzen der einzelnen Merkmalsvektorkomponenten berücksichtigt, so kann mittels einer zusätzlichen Varianznormalisierung die Vergleichbarkeit von Artikulations- Merkmalsvektoren, deren Merkmalsvektorkomponenten unterschiedlich streuen, gewährleistet werden. Anders ausgedrückt bedeutet dies, dass eine Varianz innerhalb eines der Merkmale der Artikulations-Merkmalsvektoren im Rahmen der Abbildung berücksichtigt werden kann.If the variances of the individual feature vector components are taken into account, the comparability of articulation feature vectors whose feature vector components scatter differently can be ensured by means of an additional variance normalization. In other words, this means that a variance within one of the features of the articulation feature vectors can be taken into account in the context of the illustration.
Die Erfindung wird bevorzugt im Rahmen der Sprachsynthese und der Spracherkennung oder im Rahmen der automatischen Erzeugung eines elektronischen Wörterbuchs eingesetzt. Weitere Anwendungsbereiche sind die automatische Erzeugung von Datenbasen für linguistische Verarbeitungsstufen, beispielsweise für phonetische Regelwerke oder elektronische Lexika, die Selektion passender, Phonem-etikettierter . lautsprachlicher Einheiten anhand einer zu synthetisierenden Phonemkette für die künstliche Erzeugung eines Sprachsignals eines Text-to-Speech-Systems oder die Suche von passenden Wörtern in einem elektronischen Lexikon für die Phonemhypothesen einer Spracherkennungseinrichtung.The invention is preferably used in the context of speech synthesis and speech recognition or in the context of the automatic generation of an electronic dictionary. Further areas of application are the automatic creation of databases for linguistic processing stages, for example for phonetic rules or electronic lexicons, the selection of suitable, phoneme-labeled. phonetic units using a to be synthesized phoneme for the artificial production of a speech signal of a text-to-speech system or the search for the correct word in an electronic encyclopedia for Phonemhypothesen a speech recognition device.
Ein Ausführungsbeispiel der Erfindung ist in den Figuren dargestellt und wird im Weiteren näher erläutert.An embodiment of the invention is shown in the figures and is explained in more detail below.
Es zeigenShow it
Figur 1 ein Blockdiagramm einer Spracherkennungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung;Figure 1 is a block diagram of a speech recognition device according to an embodiment of the invention;
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 ;Figure 2 is a block diagram in which the merging of an electronic dictionary with only for speaker-independent speech recognition beforehand entered and trained words are included and a dictionary in which statements relating to speaker-dependent speech recognition are stored, which according to the invention are merged into a common dictionary for speaker-independent speech recognition;
Figur 3 eine Tabelle, in der die vorgesehenenFigure 3 is a table in which the intended
Spracherkennungs-Zustände und die Zustandsübergänge zwischen unterschiedlichen Spracherkennungszuständen dargestellt sind;Speech recognition states and the state transitions between different speech recognition states are shown;
Figur 4 eine Darstellung eines Dialog-Zustandsdiagramms gemäß einem Ausführungsbeispiel der Erfindung;FIG. 4 shows a dialog state diagram according to an embodiment of the invention;
Figur 5 ein Ablaufdiagramm, in dem die einzelnenFigure 5 is a flow chart in which the individual
Verfahrensschritte zur Spracherkennung sowie zum Ergänzen des elektronischen Wörterbuches der Spracherkennungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung dargestellt sind;Method steps for speech recognition and for supplementing the electronic dictionary of the speech recognition device according to an embodiment of the invention are shown;
Figur 6 eine detaillierte Darstellung der einzelnen Verfahrensschritte zur Initialisierung der •' Spracherkennungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung;Figure 6 is a detailed view of the individual process steps for initializing the • 'speech recognition device according to an embodiment of the invention;
Figur 7 ein Nachrichtenflussdiagramm, in dem die einzelnen Verfahrensschritte zum Durchführen eines Sprachdialogs gemäß einem Ausführungsbeispiel der Erfindung dargestellt sind;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;
Figur 8 ein Nachrichtenflussdiagramm, 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;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 exemplary embodiment of the invention are shown; Figure 9 shows a first functional diagram according to an embodiment of the invention;
Figur 10 ein zweites Funktionsdiagramm gemäß einem Ausführungsbeispiel der Erfindung;Figure 10 shows a second functional diagram according to an embodiment of the invention;
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;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;
Figur 12 ein Sprachdialog-Zustandsdiagramm eines erstenFigure 12 is a speech dialog state diagram of a first
Zustands gemäß einem ersten Ausführungsbeispiel der Erfindung;State according to a first embodiment of the invention;
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) ;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 (FIG. 13A) and the associated flow diagram - (FIG. 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) ;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);
Figuren 15A und 15B ein Sprachdialog-Zustandsdiagramm eines vierten Zustands einer Spracherkennungseinrichtung gemäß dem ersten Ausführungsbeispiel der ErfindungFIGS. 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
(Figur 15A) und das zugehörige Ablaufdiagramm(Figure 15A) and the associated flow chart
(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) ;(Figure 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);
Figuren 17A und 17B ein Sprachdialog-Zustandsdiagramm eines sechsten Zustands einer Spracherkennungseinrichtung gemäß dem ersten Ausführungsbeispiel der ErfindungFIGS. 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
(Figur 17A) und das zugehörige Ablaufdiagramm(Figure 17A) and the associated flow chart
(Figur 17B) ;(Figure 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) ;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. 18B);
Figur 19 ein Sprachdialog-Zustandsdiagramm eines ersten Zustands einer Spracherkennungseinrichtung gemäß einem zweiten Ausführungsbeispiel der Erfindung;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;
Figur 20 ein Sprachdialog-Zustandsdiagramm eines zweitenFigure 20 is a speech dialog state diagram of a second
Zustands einer Spracherkennungseinrichtung gemäß dem zweiten Ausführungsbeispiel der Erfindung;State of a speech recognition device according to the second embodiment of the invention;
Figur 21 ein Sprachdialog-Zustandsdiagramm eines drittenFigure 21 is a speech dialog state diagram of a third
Zustands einer Spracherkennungseinrichtung gemäß dem zweiten Ausführungsbeispiel der Erfindung;State of a speech recognition device according to the second embodiment of the invention;
Figur 22 ein Telekommunikationsgerät mit einer Spracherkennungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung;FIG. 22 shows a telecommunication device with a speech recognition device according to an embodiment of the invention;
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.Figure 23 shows a car radio with a speech recognition device according to an embodiment of the invention. 1 shows a speech recognition device 100 according to an embodiment of the invention.
Die Spracherkennungseinrichtung 100 arbeitet je nach Betriebsmodus in einem ersten Betriebsmodus als Spracherkennungseinrichtung, wobei in demDepending on the operating mode, the speech recognition device 100 operates in a first operating mode as a speech recognition device, in which
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.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. In a second operating mode, also referred to below as the dictionary supplement mode, a spoken utterance is converted into a sequence of spoken units, furthermore into a sequence of phonemes, and, as will be explained in more detail below, possibly the electronic dictionary as a supplementary entry fed and stored therein.
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.In both operating modes, 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.
-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.In this context, it should be noted that 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 as units integrated in the computer 108.
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.According to this exemplary embodiment, it is provided that 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.
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.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.
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.Furthermore, a digital signal processor (DSP) 123, which is also coupled to the computer bus 113, is provided, which has a microcontroller that is specially specialized for the speaker-independent speech recognition algorithms used.
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.A computer program, which is set up for speaker-independent speech recognition, is also stored in the digital signal processor 123. Alternatively, the algorithms used can be implemented in hard-wired logic, that is, directly in hardware.
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.Furthermore, 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.
Ü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 .Via additional cables or radio connections, for example one. Infrared connection or a Bluetooth connection 119, 120, the computer 108 is coupled by means of the output interface 114 to a loudspeaker 121 and an actuator 122. 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 telecommunication device or another technical system, for example a car radio Stereo system, a video recorder, a television, the computer itself or any other technical system to be controlled.
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-Merkma svektor zusammengefasst "und dem Rechner 108 zug'e'führt .According to the exemplary embodiment of the invention, 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 bandpasses are rectified, smoothed and sampled at short intervals, in accordance with 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 derivation are determined and combined into a supercharacteristic svector' and leads the computer 108 train ' e ' .
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 the computer 108, as described above, a speech recognition unit for speech-independent speech recognition is implemented in the form of a computer program, the speech recognition based on the principle of the Hidden Markov models, according to the exemplary embodiment in the 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:In a basic vocabulary, which is stored in an electronic dictionary 114 at the beginning of the method, 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. According to this exemplary embodiment, the training of the Hidden Markov models takes place in three phases:
• einer erste Phase, in der die in der Trainings-Datenbank enthaltenen Sprachsignale segmentiert werden,A first phase in which the speech signals contained in the training database are segmented,
• einer zweiten Phase, in der die LDA-Matrix (lineare Diskriminanzanalyse-Matrix) berechnet wird sowie• a second phase in which the LDA matrix (linear discriminant analysis matrix) is calculated and
• 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.A third phase, in which the code book, ie the HMM prototype feature vectors, is calculated for a number of feature vector components selected in a selection step.
Die Gesamtheit dieser drei Phasen wird im Weiteren als das Training der Hidden Markov Modelle bezeichnet (HMM-Training) .The entirety of these three phases is referred to below as the training of the Hidden Markov models (HMM training).
Das HMM-Training wird unter Verwendung des DSPs 123 sowie unter Verwendung von vorgegebenen Trainingskripts, anschaulich von geeignet eingerichteten Computerprogrammen, durchgeführt .The HMM training is carried out using the DSP 123 and using predetermined training scripts, clearly illustrated by suitably set up computer programs.
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.According to this exemplary embodiment, each phonetic unit formed, i.e. 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) of a sound that is called a phoneme.
Anders ausgedrückt wird jeder Laut in einem Lautmodell mit drei Zuständen, das heißt mit einem Drei-Zustands-HMM modelliert .In other words, each sound is modeled in a three-state sound model, that is, with a three-state HMM.
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ührt. 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.During speech recognition, 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 carried out as part of the speaker-independent speech recognition. As will be explained in more detail below, 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.
Nach erfolgter Segmentierung wird die LDA-Matrix 304 (Schritt 403) mittels einer LDA-Matrix-Berechnungseinheit 303 ermittelt .After segmentation has taken place, the LDA matrix 304 (step 403) is determined by means of an LDA matrix calculation unit 303.
Die LDA-Matrix 304 dient zur Transformation eines jeweiligen Super-Merkmalsvektors y auf einen Merkmalsvektor x gemäß folgender Vorschrift: ' The LDA matrix 304 is used for transformation of a respective Super-feature vector y to a characteristic vector x in accordance with the following rule: '
-x = Aτ • ^ - y), (1)-x = A τ • ^ - y), (1)
wobei mitbeing with
• x ein Merkmalsvektor,X a feature vector,
• A eine LDA-Matrix,A an LDA matrix,
• y ein Super-Merkmalsvektor,Y is a super feature vector,
• y ein globaler Verschiebungsvektor• y a global displacement vector
bezeichnet wird.referred to as.
Die LDA-Matrix A wird derart bestimmt, dassThe LDA matrix A is determined in such a way that
• die Komponenten des Merkmalsvektors x im statistischen Durchschnitt voneinander im Wesentlichen unkorreliert sind,The components of the feature vector x are essentially uncorrelated from one another on a statistical average,
• die statistischen Varianzen innerhalb einer Segmentklasse im statistischen Durchschnitt normalisiert sind,The statistical variances within a segment class are normalized on a statistical average,
• die Zentren der Segmentklassen im statistischen Durchschnitt einen maximalen Abstand voneinander aufweisen und• The centers of the segment classes have a maximum distance from each other on a statistical average and
• 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.• The dimension of the feature vectors x is reduced as much as possible, preferably depending on the speech recognition application. The method for determining the LDA matrix A according to these exemplary embodiments is explained below.
Es ist jedoch anzumerken, dass alternativ alle bekannten Verfahren zum Bestimmen einer LDA-Matrix A ohne Einschränkung eingesetzt werden kann.However, it should be noted that, alternatively, all known methods for determining an LDA matrix A can be used without restriction.
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:It is assumed that J segment classes exist, each segment class j containing a set of Dy-dimensional super feature vectors y, that is to say:
NN
Klasse j = γi> Y Y [ 2 )Class j = γ i> Y Y [2)
wobei mit Nj die Anzahl der in der Klasse j sich befindenden Super-Merkmalsvektoren yj bezeichnet wird.where Nj is the number of super feature vectors yj in class j.
J N = Nj (3) j=lJN = N j (3) j = l
wird die Gesamtzahl der Super-Merkmalsvektoren y bezeichnetis the total number of super feature vectors y
Es ist anzumerken, dass die Super-Merkmalsvektoren y. unterIt should be noted that the super feature vectors y. under
Verwendung der oben beschriebenen Segmentierung der Sprachsignal-Datenbank ermittelt worden sind.Using the segmentation of the speech signal database described above have been determined.
Gemäß diesem Ausführungsbeispiel weist jeder Super- Merkmalsvektor ykv e ne Dimension Dy vonAccording to this exemplary embodiment, each super feature vector ykv has a dimension Dy of
-1-1
Dy = 78 (= 2 • 3 • 13) auf, wobei 13 MFCC-Koeffizienten (Cepstrums-Koeffizienten) in dem Super-Merkmalsvektor y. enthalten sind, sowie deren jeweilige zeitliche erste Ableitung und deren jeweilige zeitliche zweite Ableitung (dies begründet obigen Faktor 3) .D y = 78 (= 2 • 3 • 13) with 13 MFCC coefficients (cepstrums coefficients) in the super feature vector y. are included, as well as their respective temporal first derivative and their respective temporal second derivative (this justifies factor 3 above).
Ferner sind in jedem Super-Merkmalsvektor y. jeweils dieFurthermore, in each super feature vector, y. each the
Komponenten zweier zeitlich unmittelbar aufeinanderfolgender Zeitfenster im Rahmen der Kurzzeitanalyse enthalten (dies begründet obigen Faktor 2) .Components of two temporally immediately consecutive time windows included in the short-term analysis (this justifies factor 2 above).
Es ist in diesem Zusammenhang anzumerken, dass grundsätzlich eine beliebige, an die jeweilige Anwendung angepasste Zahl von Vektorkomponenten in dem Super-Merkmalsvektor y. enthalten sein kann, beispielsweise bis zu 20 Cepstrums- Koeffizienten und deren zugehörigen zeitlichen erste Ableitungen und zweite Ableitungen.In this context, it should be noted that any number of vector components in the super feature vector y that are adapted to the respective application. can be included, for example up to 20 cepstrums coefficients and their associated temporal first derivatives and second derivatives.
Der statistische Mittelwert oder anders ausgedrückt das Zentrum der Klasse j ergibt sich gemäß folgender Vorschrift:The statistical mean or, in other words, the center of class j results from the following rule:
Nj y. = — Vy1 (4) N y y. = - Vy 1 (4)
J 1 =1J 1 = 1
Die Kovarianzmatrix Σ . der Klasse j ergibt sich gemäß folgender Vorschrift :The covariance matrix Σ. Class j results according to the following regulation:
Figure imgf000021_0001
Figure imgf000021_0001
Die Durchschnitts- Intra-Streumatrix S ist definiert als:The average intra-scattering matrix S is defined as:
J Sw = ∑PÜ)'∑j, (6) j=ι mitJS w = ∑PÜ) '∑j, (6) j = ι With
/ N Ni/ N N i
s i N ( 7 ) s i N (7)
wobei p(j) als Gewichtungsfaktor der Klasse j bezeichnet wird.where p (j) is called the weighting factor of class j.
In analoger Weise ist die Durchschnitts-Inter-Streu atrix Sj-) definiert als:Analogously, the average inter-scatter atrix Sj-) is defined as:
Figure imgf000022_0001
Figure imgf000022_0001
J y = ∑ P(D) j (9) j=ιJ y = ∑ P (D) j (9) j = ι
als dem Durchschnitts-Super-Merkmalsvektor über alle Klassen.as the average super feature vector across all classes.
Die LDA-Matrix A wird zerlegt gemäß folgender Vorschrift:The LDA matrix A is broken down according to the following rule:
A = y-w-v, (ιo)A = ywv, (ιo)
wobei mitbeing with
• U eine erste Transformationsmatrix,U a first transformation matrix,
• W eine zweite Transformationsmatrix und• W a second transformation matrix and
• V eine dritte Trans ormationsmatrixV a third transformation matrix
bezeichnet wird.referred to as.
Die erste Transformationsmatrix U wird verwendet, um die Durchschnitts-Intra-Streumatrix Sw 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-Streu atrix 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 jeweiligen durch die entsprechende Vektorkomponente definierten Dimension.The first transformation matrix U is used to diagonalize the average intra-scatter matrix S w and is determined by the positively definite and symmetrical Average intra-scatter matrix S w is transformed into its eigenvector space. In its eigenvector space, the average intra-scatter atrix S w is a diagonal matrix, the components of which 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.
Die zweite Transformationsmatrix W wird zum Normalisieren der Durchschnitts-Varianzen verwendet und wird ermittelt gemäß folgender Vorschrift:The second transformation matrix W is used to normalize the average variances and is determined according to the following rule:
= (uτ -sw -y 2. (iι)= (u τ -s w -y 2. (iι)
Die Transformation U • W wird auch als Weißung bezeichnet.The transformation U • W is also called whitening.
MitWith
1 = U • W (12)1 = U • W (12)
ergibt sich für die Matrix BT • S_w • B die Einheitsmatrix, welche bei jeder beliebigen orthonormalen Lineartransformation unverändert bleibt.for the matrix B T • S_ w • B the unit matrix results, which remains unchanged with any orthonormal linear transformation.
Um die Durchschnitts-Inter-Streumatrix Sjβ zu diagonalisieren wird die dritte Transformationsmatrix V, die gebildet wird gemäß folgender Vorschrift:In order to diagonalize the average inter-scattering matrix Sjβ, the third transformation matrix V, which is formed in accordance with the following rule:
Y = BT • _?b ' £' (13)Y = B T • _? B '£' ( 13 )
wobei Bτ • Sj-, B ebenfalls eine positiv definite und symmetrische Matrix darstellt, in ihren Eigenvektorraum transformiert wird.where B τ • S j -, B also represents a positively definite and symmetrical matrix, is transformed into its eigenvector space.
In dem Transformationsraum _ = AT • (y - y) ( 14 )In the transformation space _ = A T • (y - y) (14)
ergeben sich somit folgende Matrizen:the following matrices result:
Eine diagonalisierte Durchschnitts-Intra-Streumatrix Sw:A diagonalized average intra-scattering matrix S w :
Sw = diag(l)d = 1 __Dy (15)S w = diag (l) d = 1 __ Dy (15)
und eine diagonalisierte Durchschnitts- Inter-Streumatrix S_b :and a diagonalized average inter-scattering matrix S_b:
Figure imgf000024_0001
Figure imgf000024_0001
wobei mit diag(ccj)π_1 D eine Dy x Dy Diagonalmatrix mit denwhere with diag (c c j) π_ 1 D a Dy x Dy diagonal matrix with the
Komponenten c^ in der Zeile/Spalte d und sonst mit Komponenten mit dem Wert Null, bezeichnet wird.Components c ^ in the row / column d and otherwise with components with the value zero.
Die Werte σ^ sind die Eigenwerte der Durchschnitts-Inter- Streumatrix Sjb 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 SummeThe values σ ^ are the eigenvalues of the average inter-scattering matrix Sjb 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. It should be noted that the trace of each matrix is invariant with respect to any orthogonal transformation, which results in the sum
Figure imgf000024_0002
d=l
Figure imgf000024_0002
d = l
die Gesamt-Durchschnitts-Varianz des Durchschnitts-Vektors XJ der J Klassen darstellt.represents the total average variance of the average vector XJ of the J classes.
Es ergibt sich somit eine ermittelte Anhängigkeit der Pseudoentropie der Merkmalsvektoren von den jeweils in dem Merkmalsvektor enthaltenen bzw. berücksichtigten Merkmalsvektor-Komponenten.This results in a determined dependency of the pseudo-entropy of the feature vectors on the respective in the Feature vector contained or considered feature vector components.
Gemäß diesem Ausführungsbeispiel wird anschließend eine Dimensionsreduktion vorgenommen, indem die OJ -Werte in in ihrer Größe abfallender Reihenfolge sortiert werden und dieAccording to this exemplary embodiment, a dimension reduction is then carried out by sorting the OJ values in order of decreasing size and the
2 σ-^ -Werte weggelassen werden, das heißt unberücksichtigt bleiben, die kleiner sind als ein vorgegebener Schwellwert. Der vorgegebene Schwellwert kann ferner kumulativ definiert sein.2 σ- ^ values are omitted, i.e. disregarded, which are smaller than a given threshold. The predetermined threshold value can also be defined cumulatively.
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.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).
Gemäß diesem Ausführungsbeispiel werden die Komponenten mit den 24 größten Eigenwerten σ^ verwendet, anders ausgedrücktAccording to this exemplary embodiment, the components with the 24 largest eigenvalues σ ^ are used, in other words
Dx = 24.D x = 24.
Die vier oben beschriebenen Teilschritte zum Ermitteln der LDA-Matrix A sind in folgender Tabelle zusammengefasst :The four steps described above for determining the LDA matrix A are summarized in the following table:
Figure imgf000025_0001
Figure imgf000025_0001
Figure imgf000026_0001
Figure imgf000026_0001
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.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 as a result has a respective code book, in each case specifically for a training data record with a predetermined number of feature vectors. components.
Die Gesamtheit der Repräsentanten der Segmentklassen wird als Codebuch bezeichnet und die Repräsentanten selbst werden auch als Prototypen der Phonemsegmentklasse bezeichnet.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.
Die Prototypen, im Weiteren auch als Prototyp- Merkmalsvektoren bezeichnet, werden gemäß dem an sich bekannten 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.The prototypes, hereinafter also referred to as prototype feature vectors, are determined in accordance with the Baum-Welch training known per se. 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.
Somit existiert für jeden Basiseintrag jeweils ein Hidden Markov Modell.There is therefore a Hidden Markov model for each basic entry.
Das elektronische Wörterbuch mit den Basiseinträgen 201 ist in Fig.2 mit dem Bezugszeichen 200 bezeichnet.The electronic dictionary with the basic entries 201 is designated by the reference symbol 200 in FIG.
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.As will be explained in more detail below, 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.
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.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.
Auf diese Weise wird eine sprecherunabhängige Spracherkennung auf der Basis des gemeinsamen elektronischen Wörterbuches 204 ermöglicht .In this way, speaker-independent speech recognition is made possible on the basis of the common electronic dictionary 204.
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.The common electronic dictionary 204 thus forms the search space for the Viterbi search as part of the 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).
Somit werden für den an sich sprecherabhängigen Teil im Rahmen der sprecherunabhängigen Spracherkennung keine Kommandos oder Wörter erkannt, sondern Phonemketten.Thus, no commands or words are recognized for the speaker-dependent part as part of speaker-independent speech recognition, but rather phoneme chains.
Diese Phonemketten werden in dem neuen elektronischen Wörterbuch 204 gespeichert. This phoneme strings are stored in the new electronic dictionary 204th
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.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 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.
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.According to this exemplary embodiment, the microprocessor 110 is the controller SDA 80D51U-A from Infineon Technologies AG and the method for forming hidden Markov models is based on the software and a digital signal processor (DSP) from 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.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.
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 .According to this exemplary embodiment of the invention, the following messages are provided for different speech recognition states, hereinafter also referred to as HMM states: First, the speech recognition states permitted within the speech recognizer are explained.
Wie Fig.3 zu entnehmen ist, weist der Spracherkenner folgende vier HMM-Spracherkenner-Zustände auf:As can be seen in FIG. 3, the speech recognizer has the following four HMM speech recognition states:
• einen Initialisierungszustand INIT 301,An initialization state INIT 301,
• einen Stopp-Zustand STOP 302,A stop state STOP 302,
• einen Pause-Zustand PAUSE 303 und• a pause state PAUSE 303 and
• einen Betriebsmodus-Zustand RUN 304.An operating mode state RUN 304.
Wie dem Zustandsübergangs-Diagramm 300 in Fig.3 zu entnehmen ist, sind folgende Zustandsübergänge vorgesehen.As can be seen from the state transition diagram 300 in FIG. 3, the following state transitions are provided.
Von dem Initialisierungszustand INIT 301 kann in den Stopp- Zustand STOP 302 übergegangen werden, was automatisch passiert, wenn alle Datenbanken geladen sind (Schritt 305) .The initialization state INIT 301 can be changed to the stop state STOP 302, which happens automatically when all databases are loaded (step 305).
Ein anderer Übergang aus dem Initialisierungszustand INIT 301 in einen der anderen Zustände PAUSE, RUN 303, 304 ist nicht vorgesehen.Another transition from the initialization state INIT 301 to one of the other states PAUSE, RUN 303, 304 is not provided.
Aus dem Stopp-Zustand STOP 302 kann in denFrom the stop state STOP 302 can in the
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.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.
Wird von dem 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) .If the "PAUSE" command in the form of the PauseHMMSR message is received by the microprocessor 110 from the speech recognizer, that is to say the DSP 123, the DSP 123 changes to the pause state PAUSE 303 (step 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.After receiving the "RUN" command in the form of the StartHMMSR message from the microprocessor 110, the DSP 123 changes to the RUN 304 operating mode state (step 308). 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.
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) .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).
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) .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).
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.Finally, 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.
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) .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).
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.Finally, it is provided that the speech recognition unit goes 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 message PauseHMMSR from the microprocessor 110.
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 :In summary, the following messages are provided for communication between the microprocessor 110 and the Oak DSP 123: The following messages, which can be sent to the Oak DSP 123 or from the Oak DSP 123, are defined in the initialization state INIT 301, in which the speech recognizer is initialized with default values after activation:
• InitHMMSRDefault :InitHMMSRDefault:
Mit dieser Nachricht wird das Setzen von Default-Werten für den Spracherkenner in der Oak Software in dem DSP 123 initialisiert,This message initiates the setting of default values for the speech recognizer in the Oak software in the DSP 123,
(Sehr geehrter Herr Dr. Küstner: Ist diese Aussage korrekt?)(Dear Dr. Küstner: Is this statement correct?)
• InitHMMSRPara s :• InitHMMSRPara s:
Mit dieser Nachricht wird das Laden der Spracherkenner- Parameter in den Oak DSP 123 initialisiert,This message initiates the loading of the speech recognition parameters into the Oak DSP 123,
• StartLoadHMMLDA:• StartLoadHMMLDA:
Mit dieser Nachricht wird das Laden des Programms zum Ermitteln der LDA-Matrix gestartet,This message starts loading the program to determine the LDA matrix,
• StartLoadHMMDictionary:• StartLoadHMMDictionary:
Mit dieser Nachricht wird das Laden eines elektronischen Wörterbuches abhängig von dem jeweiligen Zustand bzw. dem jeweiligen Sprachdialog, gestartet,With this message, the loading of an electronic dictionary is started depending on the respective status or the respective speech dialog,
• CodebookBlockLoadedAndSwitched:• CodebookBlockLoadedAndSwitched:
'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. 'With this message, the Oak software in the DSP 123 is notified that the Switched Memory Block (SMB), according to this embodiment, the size of 16 Kbytes, is open to the Oak software because now the total number of blocks and segments in application are taken into account by the speech recognizer in which microprocessor 110 is known.
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önne :In the STOP state STOP 302, in which the speech recognizer is deactivated, the following messages are provided, which can be sent to the Oak DSP 123 or from the Oak DSP 123:
• InitHMMSRDefault,InitHMMSRDefault,
• InitHMMSRParams,InitHMMSRParams,
• StartLoadHMMLDA, • StartLoadHMMDictionary,• StartLoadHMMLDA, StartLoadHMMDictionary,
• PauseHMMSR:• Pause HMMSR:
Mit dieser Nachricht wird dem Oak DSP 123 mitgeteilt, dass der Spracherkenner in den Deaktiviert-Zustand übergehen soll,This message informs the Oak DSP 123 that the speech recognizer should go into the deactivated state,
• StartHMMSR:• StartHMMSR:
Mit dieser Nachricht wird der Spracherkenner in dem Oak DSP 123 gestartet.With this message, the speech recognizer in the Oak DSP 123 is started.
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 dem Oak DSP 123 übermittelt werden können:In the pause state PAUSE 303, in which the preprocessing is carried out in the speech recognizer, but no feature extraction has yet taken place, the following messages are provided, which can be transmitted to the Oak DSP 123 or from the Oak DSP 123:
• InitHMMSRDefault,InitHMMSRDefault,
• InitHMMSRParams,InitHMMSRParams,
• StartLoadHMMLDA,• StartLoadHMMLDA,
• StartLoadHMMDictionary,StartLoadHMMDictionary,
• StartHMMSR,• StartHMMSR,
• StopHMMSR: " StopHMMSR: "
Mit dieser Nachricht wird dem Oak DSP 123 angegeben, dass der Spracherkenner gestoppt werden soll und in den Stopp-Zustand 302 übergehen soll,This message indicates to the Oak DSP 123 that the speech recognizer should be stopped and should go into the stop state 302,
• CodebookBlockLoadedAndSwitched.• 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 :In the operating mode state RUN 304, in which the speech recognizer is fully active and carries out the speech recognition, the following messages are provided, which can be transmitted to the Oak DSP 123 or from the Oak DSP 123:
InitHMMSRDefault ,InitHMMSRDefault,
InitHMMSRParams,InitHMMSRParams,
StartLoadHMMLDA,StartLoadHMMLDA,
StartLoadHMMDictionary,StartLoadHMMDictionary,
PauseHMMSR,PauseHMMSR,
StopHMMSR,StopHMMSR,
CodebookBlockLoadedAndSwitched . Ferner ist eine zusätzliche NachrichtCodebookBlockLoadedAndSwitched. There is also an additional message
SetHMMSearchParams (minStableTime, wordStartupPenalty, transitionPenalty) vorgesehen, mit der die Suchparameter minStableTime, wordStartupPenalty und transitionPenalty für das sprecherabhängige Wörterbuch gesetzt werden können. (Sehr geehrter Herr Dr. Küstner: Könnten Sie bitte die Bedeutung dieser drei Parameter kurz erläutern?)SetHMMSearchParams (minStableTime, wordStartupPenalty, transitionPenalty) are provided, with which the search parameters minStableTime, wordStartupPenalty and transitionPenalty can be set for the speaker-dependent dictionary. (Dear Dr. Küstner: Could you briefly explain the meaning of these three parameters?)
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 .This message can be transmitted to the microprocessor 110 by the speech recognizer in the Oak DSP 123 in any state of the firmware of the DSP 123. With the message SetHMMSearchParams (minStableTime, wordStartupPenalty, transitionPenalty) the search is reset and the parameters for the search space are defined.
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 .The structure of the voice dialog states explained below is set out below in a voice dialog in which the voice recognition is carried out.
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.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.
In diesem Zusammenhang ist darauf hinzuweisen, dass die Sprachdialog-Zustande nicht zu verwechseln sind mit den oben beschriebenen Zuständen des Spracherkenners selbst .In this context, it should be pointed out that the speech dialog states should not be confused with the states of the speech recognizer described above.
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.Every speech dialog, i.e. every speech application, starts from a basic state after its activation. According to this exemplary embodiment, a number of commands are defined for a speech application, which are also referred to below as keywords.
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).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).
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.Actions 408, which of a command-action tuple (407, 409) each associated with a command 406 in the form, can a device such as a CD player or a communication device or other element of a stereo system, or in general a technical system control and exit the speech recognition application, or perform additional actions in the same step, triggered with the same command, or, for example, emit a sound by means of the loudspeaker 121, and then change into the same speech dialog state or into a different speech dialog state.
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.In the speech dialog state diagram 400 - in FIG. 4, a temporally preceding speech dialog state Xl 401 is shown, as well as its transition to the current speech dialog state X 402, the speech dialog. State diagram 400 also showing that in the current speech dialog state X 402 words to be taken into account has been stored in an electronic dictionary 403, the electronic dictionary 403 containing both the words 404 previously stored in the form of speaker-independent, previously trained HMMs, generally the speaker-independent utterances with an arbitrary number of words 404 and list entries 405 which were originally speaker-dependent Contain utterances, which, however, as will be explained below, are mapped to a sequence of phonemes, which are then accessible to speaker-independent speech recognition. In a respective speech dialog state diagram 400, as explained above, the commands 406 and the actions 408 are each contained in a command-action tuple (407, 409).
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 .According to this exemplary embodiment, 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.
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.According to this exemplary embodiment, 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.
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.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.
Jeder Befehl 406, 407 ist notwendigerweise mit einer Aktion 408, 409 verknüpft.Each command 406, 407 is necessarily linked to an action 408, 409.
Die Befehlsstruktur ist wie folgt:The command structure is as follows:
• Befehl = ein oder mehrere Wörter,• command = one or more words,
• Befehl = ein oder mehrere Wörter + ein Listeneintrag,• command = one or more words + a list entry,
• Befehl = ein Listeneintrag + ein oder mehrere Wörter,• command = one list entry + one or more words,
• Befehl = ein oder mehrere Wörter + ein Listeneintrag + ein oder mehrere Wörter,• command = one or more words + one list entry + one or more words,
• Befehl = ein Listeneintrag.• Command = a list entry.
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.In the context of this description, 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 controlling the actuator 122 in FIG. 1. Action 407, 409 provides, for example, feedback from the speech recognizer according to the invention and, in order to indicate to the user that something was recognized at all, switching to another speech dialog state, loading a new electronic dictionary, or executing an action assigned to the command , such as dialing an entered phone number.
Es ist in diesem Zusammenhang anzumerken, dass eine gleiche Aktion für unterschiedliche Befehle definiert sein kann.In this context it should be noted that the same action can be defined for different commands.
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.The communication between the 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.
Wie in dem Abiaufdiagramm 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.As is shown in the sequence diagram 500 in FIG. 5, 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.
Ausgehend von dem Startzustand 601 wird in einen ersten Zyklus (Cycle_0) 502 übergegangen, in welchem die HMMs initialisiert werden.Starting from the start state 601, a transition is made to a first cycle (Cycle_0) 502, in which the HMMs are initialized.
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 dasSubsequently, a transition is made to a second cycle (Cycle_l) 503 and after it has been carried out it is checked whether the speech recognition process is to be ended (test step 504) and in the event that
Spracherkennungsverfahren beendet werden soll, wird in einen Ende-Zustand 505 übergegangen, in welchem der Spracherkenner deaktiviert wird. Soll die Spracherkennung j edoch 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 .If the speech recognition method is to be ended, a transition is made to an end state 505, in which the speech recognizer is deactivated. However, if the speech recognition is not to be ended, an additional test step (test step 506) is used to check whether a change should be made to a new speech dialog state.
Ist das der Fall , so wird der zweite Zyklus 503 für den neuen Sprachdialog-Zustand durchgeführt .If this is the case, then the second cycle 503 is carried out for the new speech dialog state.
Soll j edoch 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 .However, if the speech dialog state is not to be changed, a third check step (check step 507) 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 should be made should be removed from the electronic dictionary or whether only an entry in the electronic dictionary should be changed.
Ist dies der Fall , so wird wiederum in den zweiten Zyklus 503 verzweigt .If this is the case, the system branches again to the second cycle 503.
Ist dies j edoch nicht der Fall , so wird ein, im Folgenden noch näher erläuterter, dritter Zyklus- (Cycle_2) 508 , durchgeführt .However, if this is not the case, a third cycle (Cycle_2) 508, which will be explained in more detail below, is carried out.
Nach Beendigung des dritten Zyklus 508 wird in einem vierten Prüf schritt ( Prüf schritt 509) wiederum überprüft , ob die Spracherkennung beendet werden soll .After the third cycle 508 has ended, a fourth test step (test step 509) again checks whether the speech recognition is to be ended.
Soll die Spracherkennung beendet werden, so wird in den Endezustand 505 übergegangen und der Spracherkenner wird deaktiviert , sonst wird in den zweiten Prüf schritt 506 verzweigt , in dem überprüft wird, ob ein neuer Sprachdialog- Zustand eingenommen werden soll .If the speech recognition is to be ended, the end state 505 is entered 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 zeigt in einem Nachrichtenf lussdiagramm 600 die Realisierung des ersten Zyklus 502 im Detail . In dem ersten Zyklus 502 werden die HMMs initialisiert.Fig. 6 shows the implementation of the first cycle 502 in detail in a message flow diagram 600. In the first cycle 502, the HMMs are initialized.
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 an initialization phase, in which the speech recognizer is in the initialization state INIT 301, a message StartHMMSRFlowgraph 601 is transmitted by the microprocessor 110 to the DSP 123, with which the respective HMM in the DSP 123 is started.
In Reaktion auf die Nachricht StartHMMSRFlowgraph 601 sendet der DSP 123 eine Bestätigungsnachricht 602 an den Mikroprozessor 110.In response to the StartHMMSRFlowgraph 601 message, the DSP 123 sends a confirmation message 602 to the microprocessor 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.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.
Als Antwort auf die Nachricht InitHMMSRParams 603 wird eine Bestätigungsnachricht 604 von dem DSP 123 an den Mikroprozessor 110 übermittelt.In response to the InitHMMSRParams 603 message, a confirmation message 604 is transmitted from the DSP 123 to the microprocessor 110.
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.In a further step, a StartLoadHMMLDA 605 message is sent from the microprocessor 110 to the DSP 123 in order to start the loading of the computer program which causes the determination of an LDA matrix, as described above, for the respective HMM.
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 response, 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.
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.In a further message StartLoadHMMDictionary 608, which is sent from the microprocessor 110 to the DSP 123, the microprocessor 110 transmits this to the DSP 123 electronic dictionary for the basic dialog state of the respective speech dialog in the respective application in the DSP 123.
Auf den Empfang der Nachricht StartLoadHMMDictionary 608 reagiert das DSP 123 mit einer NachrichtThe DSP 123 responds to the receipt of the StartLoadHMMDictionary 608 message with a message
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.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.
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.Subsequently, a message SMBRequestCodebookBlock 611 is transmitted from the DSP 123 to the microprocessor 110 and the microprocessor 110 responds 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.
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.In another message SMBRequestCodebookBlock 613 of the DSP calls for additional blocks to, - where the code book needed, otherwise 'expressed the required codebook data is included.
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.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 ,
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 HO dem 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.The speech recognizer then changes to the stop state STOP 302 and only leaves this state after receipt of the command "Start", which the microprocessor HO transmits to the DSP 123 by means of the message StartHMMSR 615, and the DSP 123 confirms receipt of the StartHMMSR 615 message with a confirmation message 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.In the operating mode state 404, the DSP 123 transmits a message SMBRequestCodebookBlock 617 to the microprocessor 110 at periodic intervals, which is descriptive for each frame, which then periodically sends a response message, also 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.
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.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.
Der DSP 123 bleibt trotz Übermitteins desThe DSP 123 remains in spite of the transmission of the
Spracherkennungsergebnisses in dem Betriebsmodus-Zustand RUN 304.Speech recognition result in the RUN 304 operating mode state.
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.Only after receiving a PauseHMMSR 621 message, which is sent by the microprocessor 110, does the DSP 123 go into the pause state PAUSE 303 and, however, sends a confirmation message 622 to the microprocessor 110 beforehand.
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.Thus, a speech recognition result is available in the microprocessor 110 and the microprocessor 110 now decides what should happen next in the speech dialog depending on the application.
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 .It is assumed below that an application controls several different devices, one of which Telecommunication device, especially a telephone, is just one among many.
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.In this case, in a first dialogue step of the speech dialogue, 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.
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 .Without restricting the generality, it is now assumed that a telephone is selected as the device to be controlled in the first voice dialog step, so that the result of the first cycle 502 is that the menu should be changed, in other words the voice dialog state to control a Phone.
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 the event that a state transition from a speech dialogue state to another speech dialogue state is to take place, it is usually necessary to change the electronic dictionary currently used in the context of speech recognition, which is normally dependent on the respective speech dialogue state.
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 this case, the second cycle 503 is carried out, the exchanged messages between the microprocessor 110 and the DSP 123 being shown in detail in a message flow diagram 700 in FIG.
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.In a first phase, in which the speech recognizer is in the pause state PAUSE 303, a message SetHMMSearchParams 701 is transmitted from the microprocessor 110 to the DSP 123 in order to indicate to the DSP 123 that it should load new parameters for the search. The receipt of this message will with a confirmation message 702 from the DSP 123 to the microprocessor 110.
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.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.
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 einerWith a message SMBRequestLoadHMMDictionary 704, the signal processor 123 requests the respective electronic dictionary from the microprocessor 110, divided into blocks (SMB) of 16 KB each. With a
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.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.
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 dem 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.By means of a message StartHMMSR 706, 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 changes to the RUN 304 operating mode state and it there is a message exchange in a second phase, in which 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. With the message CodebookBlockLoadedAndSwitched 709, 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.
Diese Nachrichten SMBRequestCodebookBlock 708 und CodebookBlockLoadedAndSwitched 709 werden, wie oben beschrieben, für eden 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.These messages SMBRequestCodebookBlock 708 and CodebookBlockLoadedAndSwitched 709 are as above described, exchanged for each frame until the speech recognizer has determined a speech recognition result, whereupon the DSP 123 transmits a message HMMHypothesisStable 710 to the microprocessor 110, which simultaneously indicates that and which speech recognition result has been determined by the DSP 123.
Wiederum bleibt der Spracherkenner in dem Betriebsmodus- Zustand RUN 304.Again, the speech recognizer remains in the RUN 304 operating mode state.
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, def "auf Empfang dieser Nachricht mit einer Bestätigungsnachricht 713 reagiert, woraufhin der Spracherkenner- in den Pausezustand PAUSE 303 übergeht.The microprocessor 110 responds to the HMMHypothesisStable 710 message with a confirmation message 711 and only after receiving a "pause" command does the microprocessor 110 transmit a PauseHMMSR 712, def " message to the DSP 123 upon receipt of this message, with a confirmation message 713, whereupon the speech recognizer goes into the pause state PAUSE 303.
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.In summary, regarding the second cycle 503 shown in FIG. 7, it should be noted that in the event that the speech recognizer is in a speech dialog state in which both basic entries (speaker-independent) and list entries (speaker-dependent per se, converted into phoneme sequences) are used are also independent of the speaker) are contained in a dictionary, each new dictionary is a dynamic dictionary.
Es enthält, wie oben beschrieben, sprecherunabhängige Befehle und an sich sprecherabhängige, benutzerdefinierte Listeneinträge beispielsweise in einer Telefonbuchliste.As described above, it contains speaker-independent commands and speaker-dependent, user-defined list entries, for example in a telephone book list.
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.The list entries according to this exemplary embodiment of the invention are stored in a fixed memory location of the flash memory, which is provided as memory 111 in the computer 108. According to the invention, 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 to say a changeable, number of words is contained in the electronic dictionary which can be recognized by the speech recognition unit using a speaker-independent speech recognition technique. It should also be noted that the 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.
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.To add or remove list entries from the speaker-dependent part of the respective dictionary, that is, the list entries in the dictionary, a change in the current dictionary is required.
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.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 (see FIG. 8).
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 .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.
Ein Beispiel für einen solchen Zustandsübergang ist eine Eigenschleife, das heißt ein Übergang von einem Sprachdialog- Zustand in sich selbst.An example of such a state transition is an intrinsic loop, that is, a transition from a speech dialog state to itself.
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,.As can be seen in FIG. 8, in a first phase a message StartHMMSR 801 is transmitted from the microprocessor 110 to the DSP 123, which is then sent with a Confirmation message 802 acknowledges receipt of the StartHMMSR 801 message, with which the speech recognizer is in the RUN 304 operating mode state.
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 .Subsequently, 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.
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 .The exchange of the messages SMBRequestCodebookBlock 803 and CodebookBlockLoadedAndSwitched 804 takes place in a corresponding manner until a result of the speech recognition has been determined by the DSP 123 and the result is transmitted by means of a message HMMHypothesisStable 805 to the microprocessor 110, which receives the message HMMHypothesisStable 805 acknowledged with a confirmation message 806.
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.Again, 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.
Zusammenfassend wird somit in dem ersten Zyklus 502, der immer durchgeführt wird, nachdem ein HMM-Sprachdialog gestartet wird, das jeweilige HMM initialisiert.In summary, the respective HMM is thus initialized in the first cycle 502, which is always carried out after an HMM speech dialog is started.
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 .For each new speech dialog state, it is usually provided to load a new electronic dictionary into the DSP 123. To achieve this, the second cycle 503 is performed. In the event that the current dictionary the second cycle 503 is also used and is not changed to another dialog state.
Bei Verbleiben in dem aktuellen Sprachdialog-Zustand ohne Veränderung des Wörterbuches wird der dritte Zyklus 507 durchgeführt .If the current speech dialog state remains without changing the dictionary, the third cycle 507 is carried out.
Somit sind üblicherweise in einer Spracherkennungsanwendung gemäß der Erfindung zwei voneinander zu unterscheidende Betriebsebenen vorgesehen.Thus, two operating levels to be distinguished from one another are usually provided in a speech recognition application according to the invention.
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.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.
Die zweite Betriebsebene ist die Ebene der Software, die auf dem Mikroprozessor 110 abläuft, anders ausgedrückt, der Sprachdialog .The second level of operation is the level of software that runs on the microprocessor 110, in other words, the speech dialog.
Somit sind die Aufgaben in einer Spracherkennungsanwendung zwischen dem 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.Thus, the tasks in a speech recognition application are divided between the microprocessor 110 and the DSP 123 in such a way that the less computationally intensive implementation of the speech dialog is usually carried out by the microprocessor 110, and the very computation-intensive actual speech recognition by the DSP 123.
Die Dateiverwaltung, insbesondere die Verwaltung der elektronischen Wörterbücher erfolgt seitens des Mikroprozessors 110.The file management, in particular the management of the electronic dictionaries, is carried out by the microprocessor 110.
Der Mikroprozessor 110 übernimmt insbesondere folgende Aufgaben :The microprocessor 110 performs the following tasks in particular:
• Hinzufügen eines neuen Listeneintrags zu dem jeweiligen Wörterbuch, • Entfernen eines Listeneintrags aus dem jeweiligen Wörterbuch,Adding a new list entry to the respective dictionary, Removing a list entry from the respective dictionary,
• Entfernen der gesamten Liste aus dem Wörterbuch.• Remove the entire list from the dictionary.
Die oben beschriebenen drei Aufgaben werden im Folgenden näher erläutert:The three tasks described above are explained in more detail below:
1. Entfernen der gesamten Liste aus dem jeweiligen elektronischen Wörterbuch1. Remove the entire list from the relevant electronic dictionary
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.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.
Nach Erkennen des Befehls "Liste löschen" wird die Dateiverwaltung gestartet.After recognizing the command "delete list" the file management is started.
Alle Listeneinträge in der Liste des elektronischen Wörterbuches werden gelöscht .All list entries in the list of the electronic dictionary are deleted.
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.Subsequently, an electronic dictionary still exists, which, however, now only contains the speaker-independent basic entries or is even empty if the dictionary only contained speaker-dependent and user-defined entries.
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 .After the list is deleted from the dictionary, the speech recognition process is either ended (step 505) or continued in the third cycle 507 or the second cycle 503.
2. Entfernen eines einzelnen Listeneintrags aus dem jeweiligen Wörterbuch2. Remove a single list entry from the respective dictionary
Wiederum wird der Sprachdialog in dem ersten Zyklus 502 gestartet und möglicherweise wurden zuvor ein oder mehrere Zustandsübergänge unter Verwendung des zweiten Zyklus 503 zu anderen Sprachdialog-Zuständen durchgeführt.Again, the speech dialog is started in the first cycle 502 and possibly one or more previously State transitions performed using the second cycle 503 to other speech dialog states.
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.If the command "delete [entry]" is recognized, the file management is started by the microprocessor 110. The phoneme chain [entry] represents the recognized speaker-dependent list entry in the dictionary.
Dieser Eintrag wird aus der Liste in dem jeweiligen Wörterbuch entfernt.This entry is removed from the list in the respective dictionary.
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.Furthermore, according to this exemplary embodiment it is provided that 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.
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 order to ensure that the correct desired list entry is actually removed from the electronic dictionary, 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.
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 dasIn this case, the phoneme chain [entry] and the “delete” command are buffered. After the desired entry has been removed from the dictionary or after the delete command based on a user input with which it is indicated in the security loop that the specified entry is not deleted is to be ended, the speech dialog and thus also the speech recognition process can be ended (step 505) or that
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.Speech recognition method can be by means of transition to another dialog state (second cycle 503) or one Self-loops can be continued in the current dialog state (third cycle 507).
3. Hinzufügen neuer Listeneinträge zu dem jeweiligen Wörterbuch3. Add new list entries to the respective dictionary
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.This task is the most complex routine. As in the previous two procedures, the first cycle 502 is started this time and the second cycle 503 may have been performed one or more times.
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- ö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.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.
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 .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.
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 Spracherkennungssystem eingesprochen wird.It can be seen that the utterance must be spoken into the speech recognition system at least once. As will be explained in more detail below, 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 utters the same speech utterance into the speech recognition system.
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 inkre entiert 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.Furthermore, it is assumed that three representational utterances are available, that is to say that the speech utterance has been spoken three times by the user into the speech recognition system. According to the invention, a computer variable is provided which specifies the number of inputs of a speech utterance into the speech recognition system, in other words, the number of representation utterances, which variable is corrected for each new representation utterance. After the first utterance has been spoken, 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”.
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.In the case in which the value of the computer variable is "3", the procedure explained in more detail below is started, in which it is checked whether the utterance is stored as a new list entry in the electronic dictionary or whether the desired utterance is shown in cannot be saved in the electronic dictionary.
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 Vergleichsraum 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.In accordance with this exemplary embodiment of the invention, 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 space and at least one of the representational utterances of the spoken-in speech signals for a same utterance is a sufficiently large distance 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.
Auf diese Weise wird es ermöglicht, benutze freundlich und ressourcensparend ein elektronisches Wörterbuch für eine sprecherunabhängige Spracherkennung zu realisieren, wobei folgende Rahmenbedingungen angestrebt werden:In this way it is possible to use an electronic dictionary for speaker-independent speech recognition in a user-friendly and resource-saving manner, the following framework conditions being sought:
• Es soll eine möglichst geringe Anzahl von Eintrags- Annahmen bei ungleichen akustischen Äußerungen erfolgen;• The smallest possible number of entry assumptions should take place in the event of unequal acoustic expressions;
• 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;• The highest possible number of entry assumptions should be made with the same acoustic utterances; • The number of additional acoustic additions should be as small as possible, which would lead to resource problems;
• Es soll ein Wortschatz gebildet werden, der eine möglichst hohe Erkennungsrate bietet.• A vocabulary should be formed which offers the highest possible recognition rate.
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.Clearly, similarity measures or distance measures are thus used as threshold value parameters, whereby the optimum range of the speech recognizer for a predetermined number of words or list entries contained in the dictionary can also be determined using statistical methods.
Zur Lösung des oben genannten Optimierungsproblems werden im "Folgenden zwei Parameter eingeführt :To solve the optimization problem mentioned above, "two parameters are introduced in the following:
• MIN_FOR_WORD : Dieser Parameter, im Weiteren auch bezeichnet als Intra-Ähnlichkeitswert , dient zur Bestimmung der Ähnlichkeit zwischen den Eintragskandidaten untereinander,• MIN_FOR_WORD: This parameter, also referred to below as the intra-similarity value, is used to determine the similarity between the entry candidates,
• MAX__TO_DICT: Dieser Parameter, im Weiteren auch als• MAX__TO_DICT: This parameter, hereinafter also as
Inter-Schwellwert bezeichnet, dient zur Bestimmung der Ähnlichkeit zwischen einem Eintragskandidaten und einem Eintrag des bereits vorhandenen Wortschatzes.The inter-threshold is used to determine the similarity between an entry candidate and an entry of the existing vocabulary.
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.Based on the assumption that the variables MIN__FOR_WORD and MAX_TO_DICT are statistically independent of one another, the optimum 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.
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 .The training procedure for determining the threshold values is described below for the specific case of two entry candidates explained. However, it should be pointed out that the method can be applied to any number of entry candidates for a speech utterance.
Darüber hinaus wird die Zahl der sprecherabhängigen Einträge auf N festgesetzt.In addition, the number of speaker-dependent entries is set to N.
Als Ähnlichkeitsmaß wird im Weiteren die Distanz d(sj_,sj) verwendet. Die Distanz d(si,sj) ist ein Maß für den Abstand zwischen den Phonemfolgen s± und S . Gemäß diesem Ausführungsbeispiel wird eine normierte Distanz verwendet, da die Phonemketten auch ungleiche Längen aufweisen können.The distance d (sj_, sj) is used as a measure of similarity. The distance d (si, sj) is a measure of the distance between the phoneme sequences s ± and S. According to this exemplary embodiment, a standardized distance is used, since the phoneme chains can also have unequal lengths.
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.In principle, any measure that is suitable for determining a distance between two symbol chains, that is to say clearly between two sequences of spoken units, according to this exemplary embodiment, between two phoneme sequences, for example the so-called Levenstein distance measure or the so-called Mahalanobis distance, can be used as a distance measure , are used.
Ferner kann jede beliebige Vergleichsnorm verwendet werden, die obige Anforderung erfüllt.Any comparison standard that meets the above requirement can also be used.
Zunächst wird zur Bestimmung des Intra-Schwellwerts sowohl die Akzeptanzrate (AR) also die Falsch-Akzeptanzrate (FAR) ermittelt .First, both the acceptance rate (AR) and the false acceptance rate (FAR) are determined to determine the intra-threshold value.
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.In this case, a threshold value variable T takes numbers from the range of values of the intra-threshold value MIN_FOR__WORD. For each realization of the threshold value variable T, the function values AR (T) and FAR (T) are determined using a loop that includes all N entries.
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 Optimalitatskriterium bestimmt.The function curve is then plotted for both functions using the threshold value variable T. The optimal one Intra-threshold value MIN_FOR_WORD * is determined by evaluating an optimality criterion which is explained in more detail below.
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 .First, the acceptance rate AR is calculated for the same acoustic utterances, that is, for the case that s = SJ.
Im statistischen Durchschnitt sollten in diesem Fall die relativen Distanzen d(s ,sj) zwischen den Eintragskandidaten nur kleine Werte annehmen, das heißt die Distanz sollte gegen den Wert „0" gehen. Für einen kleinenIn this case, on a statistical average, the relative distances d (s, 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
Schwellwertvariablenwert T können die Werte der Distanz d(sj_,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.Threshold value variable value T, however, the values of the distance d (sj_, sj) can exceed the threshold value variable value T, which would make the acceptance rate low. For a large threshold variable value T, however, the acceptance rate increases relatively quickly.
Die Akzeptanzrate ergibt sich gemäß folgender Vorschrift:The acceptance rate results according to the following regulation:
Figure imgf000053_0001
Figure imgf000053_0001
wobei mit N&R(T) die Anzahl der erfolgten Akzeptanzen für einen Schwellwertvariablenwert T bezeichnet wird.where N&R (T) denotes the number of acceptances that have been made for a threshold variable value T.
Als Akzeptanzbedingung wird folgende Vorschrift verwendet, dass ein Eintrittskandidat akzeptiert wird, wenn gilt:The following rule is used as an acceptance condition that an entry candidate is accepted if:
Figure imgf000053_0002
Figure imgf000053_0002
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 = l), 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.The function AR (T) will also assume a small value for a small threshold value variable T, then a monotonically increasing function curve results until the saturation of the function AR (T), that is to say AR (T = 1), is reached. The false acceptance rate (FAR) is then calculated for unequal acoustic utterances, that is to say in the event that s «SJ.
Im statistischen Durchschnitt sollten in diesem Fall die Werte der relativen Distanz d(sι,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.In this case, on a statistical average, the values of the relative distance d (sι, sj) between the entry candidates should assume larger values. For a small threshold variable value T, the distance d (si, sj) would often exceed the intra-threshold value and the false acceptance rate is therefore low. For a larger threshold variable value T, the false acceptance rate increases relatively slowly.
Die Falsch-Akzeptanzrate wird in diesem Ausführungsbeispiel der Erfindung gemäß folgender Vorschrift ermittelt:The false acceptance rate is determined in this exemplary embodiment of the invention in accordance with the following regulation:
FAR(T). = AR( ) , (20)FAR (T). = AR () , (20)
NN
wobei mit Np^^(T) die Anzahl von Falsch-Akzeptanzen für einen Schwellwertvariablenwert T bezeichnet wird.where Np ^^ (T) denotes the number of false acceptances for a threshold variable value T.
Die Falsch-Akzeptanzbedingung gemäß diesem Ausführungsbeispiel lautet:The false acceptance condition according to this exemplary embodiment is:
d(Si,Sj) < T. (21)d ( Si , Sj) <T. (21)
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 .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.
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 dieIn comparison to the FAR (T) function, however, the saturation will only occur for a larger threshold value value T compared to the AR (T) function. Thus, the functional image of both functions AR (T) and FAR (T) corresponds roughly to that of a hysteresis curve. If you wear both functions against the
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:Threshold value variable T as a parameter, the optimal intra-threshold value MIN_FOR_WORD * is obtained at the point at which the two curves of the functions AR (T) and FAR (T) have the greatest distance from one another, as is shown in the function diagram 900 in FIG. 9 is outlined, which means:
MIN _ FOR _ WORD* = arg max|JAR(τ) - FAR(τ)|] . (22 )MIN _ FOR _ WORD * = arg max | JAR (τ) - FAR (τ) |]. (22)
TT
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 .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.
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.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.
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.However, 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 also be rejected or the rejection can be made after a predetermined number of spoken utterances, according to which there is still no sufficiently high-quality signal, be rejected.
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 .For the following explanation it is assumed that only one comparison per entry is permitted. In other words, the acoustic expansion according to the im The exemplary embodiment described below is not provided.
Findet man einen optimalen Schwellwert für diesen Fall, so wird auch die Anzahl der akustischen Ergänzungen auf ein vernünftiges Maß reduziert.If one finds an optimal threshold value for this case, the number of acoustic additions is reduced to a reasonable level.
Der Schwellwertvariablenwert T nimmt in diesem Fall Zahlen aus dem Wertebereich des Inter-Schwellwerts MAX_TO_DICT an.In this case, the threshold value variable T takes numbers from the range of values of the inter-threshold value MAX_TO_DICT.
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.Using the independence assumption as set out above, the previously determined intra-threshold value MIN_FOR_WORD * can be used to carry out the second optimization task.
Zunächst wird auf den Inter-Schwellwert MIN_FOR_WORD* die Akzeptanzrate (ÄRA) gemessen.First, the acceptance rate (ERA) is measured on the inter-threshold value MIN_FOR_WORD *.
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: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:
EAR(T) = NEAR(T) {23) EAR (T) = N EAR (T) {23)
NN
wobei mit NEAR(T) die Anzahl der aufgenommenen Kandidaten für einen Schwellwertvariablenwert T bezeichnet wird.where NEAR ( T ) denotes the number of accepted candidates for a threshold variable value T.
Als Akzeptanzbedingung wird folgende Vorschrift verwendet:The following rule is used as an acceptance condition:
d(wk+1, W) > T, (24)d (w k + 1 , W)> T, (24)
wobei mitbeing with
• 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 , ..., Wfc] ) und • k+l der neue Eintrag• W is the vocabulary already stored in the dictionary, that is the stored words or saved list entries (W = [w, W 2 , W 3 , ..., Wfc]) and • k + l the new entry
bezeichnet wird.referred to as.
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.For a small threshold variable value T, entries are also accepted which are only a short distance from the existing vocabulary W in the respective comparison space. On the other hand, hardly any entries are made for a large threshold value variable T. The function EAR (T) thus has a monotonically falling course.
Anschließend wird die Erkennungsrate für den jeweils aktuellen Schwellwertvariablenwert T unter Verwendung des aktuellen Gesamtwortschatzes M(T) bestimmt.The recognition rate for the current threshold value variable T is then determined using the current total vocabulary M (T).
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 Gesamtwortschatz 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:In this context, it should be noted that 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 total vocabulary M (T) results from 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:
Figure imgf000057_0001
Figure imgf000057_0001
wobei mit CRW(T) die Anzahl der korrekt erkannten Wörter für einen Schwellwertvariablenwert T bezeichnet wird.where CRW (T) denotes the number of correctly recognized words for a threshold variable value T.
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.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 for storage in the common dictionary are accepted, but due to the increasing spacing of the entries in the vocabulary, the recognition rate ER (T) increases. The function ER (T) thus has a monotonically increasing profile.
Zur Bestimmung des Opti alitätskriteriums ist anzumerken, dass die Forderung gilt, für ein festes N einen optimalen Bereich des Inter-Schwellwerts MAX_TO_DICT zu finden.To determine the optimality criterion, it should be noted that the requirement applies to find an optimal range of the inter-threshold value MAX_TO_DICT for a fixed N.
Somit wird ein Kompromiss zwischen der Anzahl der aufzunehmenden Einträge und der zugehörigen Erkennungsrate ER(T) erforderlich.A compromise between the number of entries to be recorded and the associated recognition rate ER (T) is therefore necessary.
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.If the function EAR (T) is observed until after leaving the maximum, that is to say as long as EAR (T) has the value “1”, in which area N words are always recorded for storage in the electronic dictionary, 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.
Es ist zu beachten, dass die Normierung der Erkennungsrate bis zum Verlassen des Maximums von EAR(T) auf den Wert M(T) = N erfolgt.It should be noted that the detection rate is normalized until the maximum is exceeded from EAR (T) to the value M (T) = N.
Demnach ergibt sich ein Arbeitsbereich für den Inter- Schwellwert MAX_TO_DICT, welcher zu niedrigen Werten des Schwellwertvariablenwert T von der minimalen Erkennungsrate BRMINI bei fest vorgegebener Anzahl von sprecherabhängigen Einträgen N in dem Wörterbuch begrenzt ist .This results in a working range for the inter-threshold value MAX_TO_DICT, which is limited to low values of the threshold value variable value T by the minimum recognition rate BRMINI with a fixed predetermined number of speaker-dependent entries N in the dictionary.
Diese Situation ist in dem Funktionsdiagramm 1000 in Fig.10 dargestellt. Nach oben wird der Inter-Schwellwert MAX_TO_DICT von der maximalen Erkennungsrate ERMAXIN bei einer fest vorgegebenen Anzahl sprecherabhängiger Einträge in dem Wörterbuch begrenzt .This situation is shown in the function diagram 1000 in FIG. 10. The inter-threshold MAX_TO_DICT becomes fixed by the maximum detection rate ERMAXIN limited number of speaker-dependent entries in the dictionary.
Für den Inter-Schwellwert MAX_TO_DICT muss somit gelten:For the inter-threshold MAX_TO_DICT, the following must therefore apply:
TjJIN > MAX_TO_DICT < TJJAX. (26)TjJ IN > MAX_TO_DICT <TJJAX. (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.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.
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.Conversely, it is also possible to request a minimum recognition rate and then to determine the maximum number of entries that are permitted to be stored in the dictionary.
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 the speech dialog state, in which speaker-dependent and speaker-independent entries are stored in the dictionary, it is possible to add new user-defined names, that is to say generally user-definable utterances in the dictionary, as a list entry or to delete an old list entry from the dictionary.
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.In both cases, 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.
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 .As long as the speech dialogue continues, the second cycle 503 is repeated, in which cycle the message StartLoadHMMDictionary is provided with the respective identifier, i.e. the ID of the respective defined dictionary, it being noted that the ID remains unchanged for the respective application and cannot be changed at runtime. In order to insert a new entry in the electronic dictionary, this means that the electronic dictionary is not changed for the first step, which is why the third cycle 507 is carried out in order to return to the current speech dialog state.
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.In order to add a new utterance to the speaker-dependent list in the dictionary, a special dictionary is loaded, namely the phoneme dictionary. The utterance is analyzed using the phonemes stored in the phoneme dictionary.
Die Dateiverwaltung der Wörterbuchdatei, welche sprecherabhängige Listeneinträge gespeichert hat, ist wie oben angegeben, eine Aufgabe des Mikroprozessors 110.The file management of the dictionary file, which has saved speaker-dependent list entries, is a task of the microprocessor 110, as stated above.
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) .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).
Dann kann die Dateiverwaltung durchgeführt werden.Then the file management can be done.
Der Prozess der Dateiverwaltung, im Rahmen dessen auf das Wörterbuch zugegriffen wird, startet, indem die sprecherabhängige eingesprochene Äußerung mit allen in dem Wörterbuch gespeicherten Einträgen verglichen wird, sowohl mit den sprecherabhängigen Einträgen als auch mit den sprecherunabhängigen Einträgen.The file management process 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.
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.In the event that an entry is to be deleted from the dictionary, the corresponding entry is searched in the entire dictionary. The file manager is responsible for deleting the entries or changing any entries only in the speaker-dependent list of entries in the dictionary.
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 the context of file management, 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.
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.In the case where the memory 111 is full, or in other words, in the case where there is not enough space in the memory 111 to record a new utterance, the request for a new utterance is rejected.
Die Zurückweisung kann unter Verwendung spezieller Sprach- Prompts, beispielsweise vordefinierter und aufgenommener Sprach-Prompts für die unterschiedlichen Fälle erfolgen:The rejection can be done using special voice prompts, for example predefined and recorded voice prompts for the different cases:
• 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: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:
"Wie bitte?""I beg your pardon?"
• 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:• In the event that the utterance that is to be added to the dictionary already exists in the dictionary, a possible language prompt to be output to the user is:
"[Eintrag] ist schon verfügbar.""[Entry] is already available."
• Für den Fall, dass kein Speicherplatz mehr verfügbar ist, ist ein dem Benutzer auszugebender möglicher Sprach-Prompt :• In the event that there is no more storage space available, a possible voice prompt to be output to the user is:
" [Liste] ist voll. » "[List] is full. »
Im Folgenden ist ein Beispiel für eine solche Verwaltung in einer Metasprache in einem C-Pseudocode angegeben: SlartDialogue () {The following is an example of such administration in a metalanguage in a C pseudo code: SlartDialogue () {
State 1 (Action) { // Dialogue State 1 , basic State cycle_0 (HMMHypothesisStable(RecResult)} = true) then { case(State 1 (Action) {// Dialogue State 1, basic State cycle_0 (HMMHypothesisStable (RecResult)} = true) then {case (
RecResult = CD-Player : Action = goto state_2; do b,a RecResult » Tape : Action = goto state_3; do c,a RecResult = Radio : Action = goto state_W; do d,a RecResult = Telephone : Action = goto state_5; do e,a RecResult = csncel : Action = StopHMMSRFlowgraph; do fRecResult = CD player: Action = goto state_2; do b, a RecResult »Tape: Action = goto state_3; do c, a RecResult = Radio: Action = goto state_W; do d, a RecResult = Telephone: Action = goto state_5; do e, a RecResult = csncel: Action = StopHMMSRFlowgraph; do f
))
}}
}}
} do (Action;} do (action;
State 5 (Action) { // Dialogue State ith SD-HMM cycle_l (H HypotheslsStable(RecResult)) = true) then { case(State 5 (Action) {// Dialogue State ith SD-HMM cycle_l (H HypotheslsStable (RecResult)) = true) then {case (
RecResult = dial number : Action = goto state_6; do g,a RecResult = dial <name> : Action = StopHMMSRFlowgraph; do h,i,o RecResult = störe πame : Action = goto state_7; do g,a RecResult = delete <name> : Action = StopHMMSRFlowgraph; do hj.k RecResult = cancel : Action = StopHMMSRFlowgraph; do fRecResult = dial number: Action = goto state_6; do g, a RecResult = dial <name>: Action = StopHMMSRFlowgraph; do h, i, o RecResult = disturb πame: Action = goto state_7; do g, a RecResult = delete <name>: Action = StopHMMSRFlowgraph; do hj.k RecResult = cancel: Action = StopHMMSRFlowgraph; do f
))
}}
} ) do (Action) State 6 (Action) I // digits fordialling cycle_1 (HMMHypotheslsStabΙe(RecResult)) * true) then { case(}) do (Action) State 6 (Action) I // digits fordialling cycle_1 (HMMHypotheslsStabΙe (RecResult)) * true) then {case (
RecResult = <digits> ; Action = goto state_6 (cycle_2); do l,m,tRecResult = <digits>; Action = goto state_6 (cycle_2); do l, m, t
RecResult = dial : Aclion = StopHMMSRFlowgraph; do π,oRecResult = dial: Aclion = StopHMMSRFlowgraph; do π, o
RecResult = cancel : Action = StopHMMSRFlowgraph; do tRecResult = cancel: Action = StopHMMSRFlowgraph; do t
) )))
! } do (Action)! } do (action)
State 7 (Action) { / digits for storing cycie_1 (HMMHypothesisStable(RecResult)) = true) then { case(State 7 (Action) {/ digits for storing cycie_1 (HMMHypothesisStable (RecResult)) = true) then {case (
RecResult = <digits> ; Action = goto state_6; do ),m,tRecResult = <digits>; Action = goto state_6; do), m, t
RecResult = störe ; Action = goto state_8; do p,aRecResult = disrupt; Action = goto state_8; do p, a
RecResult = cancel : Action = StopH MSRFlowgraph; do fRecResult = cancel: Action = StopH MSRFlowgraph; do f
))
}}
} > do (Action) State 8 (Action) { // πame iπpuf lor list if { cycle_1 (HMMHypothesisStable(RecResult)) = true) then ( case(}> do (Action) State 8 (Action) {// πame iπpuf lor list if {cycle_1 (HMMHypothesisStable (RecResult)) = true) then (case (
RecResult = <πame> : Action = goto state_9; do q,a,rRecResult = <πame>: Action = goto state_9; do q, a, r
))
}}
))
} do (Action) State 9 (Action) { // name iπpüt for list 'rf ( cycle_1 (HMMHypothεsisStable(RecResult)) = true) then { case(} do (Action) State 9 (Action) {// name iπpüt for list ' rf (cycle_1 (HMMHypothεsisStable (RecResult)) = true) then {case (
RecResult = <na e> ; Aclion = StopHMMSRFlowgraph; do u,sRecResult = <na e>; Aclion = StopHMMSRFlowgraph; do u, s
) })}
) do (Action) Im Folgenden wird ein erstes Ausführungsbeispiel für einen konkreten Sprachdialog näher erläutert .) do (action) A first exemplary embodiment for a concrete speech dialogue is explained in more detail below.
Es werden unterschiedliche Sprachdialog-Zustande angegeben und es werden die Aktionen des Systems aufgezeigt, die nach Erkennen eines definierten Befehls durchgeführt werden.Different speech dialog states are specified and the actions of the system are shown, which are carried out after recognizing a defined command.
Der Sprachdialog gemäß diesem Ausführungsbeispiel der Erfindung ist ein vereinfachter schematischer Telefon- Sprachdialog.The voice dialogue according to this exemplary embodiment of the invention is a simplified schematic telephone voice dialogue.
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.In 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.
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.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 which is generated from textual information on a voice signal by means of the computer 108 was converted.
Unter der zusätzlichen Systemreaktion sind Aktionen des Systems zu verstehen, nachdem ein spezieller Befehl von dem Spracherkenner erkannt worden ist.The additional system reaction means actions of the system after a special command has been recognized by the speech recognizer.
Fig.12 zeigt ein HMM-Zustandsdiagramm 1200 für einen ersten Zustand 0, in dem die HMMs noch nicht gestartet sind.12 shows an HMM state diagram 1200 for a first state 0 in which the HMMs have not yet started.
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- rompts <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.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 to the second state and the output 1205 of the speech romp <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 the associated flow diagram.
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.As can be seen from the speech dialog state diagram 1300, 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.
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-Zustande 2, 3 und 4 im Weiteren aus Gründen der Übersichtlichkeit nicht näher erläutert werden.If 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 into a next subsequent state, the speech dialogue states 2, 3 and 4 further for reasons of Clarity can not be explained in more detail.
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 Abiaufdiagramm 1410 in Fig.l4B dargestellt ist.Thus, without restricting the generality, only the voice dialog with regard to the telephone application is explained in more detail below, that is to say the branching of the voice dialog for the case when the "telephone" command has been recognized and thus into the sixth voice dialog state 5 as it is in the speech dialog state diagram 1400 in Fig. 14A and the associated sequence diagram 1410 in Fig. 14B.
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> .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> ,
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-Prompts <g> und <a> ausgegeben.In the event that the "dial number" command has been entered by a user and recognized by the speech recognizer, is branched into a seventh speech dialog state 6 and the speech prompts <g> and <a> are output.
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.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.
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.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.
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.Depending on which command is recognized by the speech recognizer, 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.
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.l6A und das zugehörige Ablaufdiagramm 1610 in Fig.16 dargestellt ist.In the event that the "memory name" command was recognized in the sixth speech dialog state 5, 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 flowchart 1610 in FIG. 16 is shown.
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" .For the eighth speech dialog state 7, an electronic dictionary is provided with the following entries: "zero, one, two, three, four, five, six, seven, eight, nine, dial, cancel".
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-Promp s <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) .It is further provided that in 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 to output the voice prompt <p> and the beep <a> and the command "Cancel", whereupon the first voice dialog state 0 is passed to output the voice prompt <f> ( see 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.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.
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.In the ninth speech dialog state 8, an input name is converted into a sequence of phonemes using the phoneme dictionary, which is the dictionary of the ninth speech dialogue state.
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.After recognizing the command <name>, the tenth speech dialog state 9 is entered, in which the respective list entry is stored in the electronic dictionary.
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.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.
Nach erfolgtem Speichern des Namens in dem elektronischen Wörterbuch wird in den ersten Sprachdialog-Zustand 0 übergegangen .After the name has been stored in the electronic dictionary, the transition to the first speech dialog state 0 takes place.
Im Folgenden wird ein zweites, vereinfachtes Ausführungsbeispiel der Erfindung näher erläutert.A second, simplified exemplary embodiment of the invention is explained in more detail below.
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".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".
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".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".
Die Befehle sind mit den entsprechenden, im Folgenden näher erläuterten Aktionen 1903 eindeutig verknüpft.The commands are clearly linked to the corresponding actions 1903, which are explained in more detail below.
So wird nach Erkennen des Befehls- „Name speichern" in den zweiten Sprachdialog-Zustand 2 übergegangen und es wird das Phonem- örterbuch geladen. Ferner wird folgender Sprach- Prompt an den Benutzer ausgegeben: „Bitte sprechen Sie den Namen . "After recognizing the command “Save name”, the system switches to the second speech dialog state 2 and the phoneme dictionary is loaded. The following voice prompt is also output to the user: “Please speak the name.”
Wird der Befehl „<Name> löschen" erkannt, so wird kein Sprachdialog-Zustands-Übergang 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.If the command "Delete <name>" is recognized, then no voice dialog state transition is carried out, but instead the voice prompt is: "Do you really want to delete <name> ^ ?" are output and both the specification and the command "Delete <name>" are buffered.
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.If the command "Select <name>" is recognized, the system does not change to another voice dialog state and the following voice prompt is output: "Do you really want to select <name>?" and the information of "<name>" and of "select <name>" are buffered.
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.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.
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.For example, in the event that the "delete <name>" command is cached, the cached "<name>" is deleted from the dictionary, that is, the list of names. The basic dictionary is also reloaded.
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.If the command "select <name>" is temporarily stored, the sequence of digits belonging to the temporarily stored "<name>" is dialed by the telephone, in other words, the actuator controls the telephone in such a way that a communication connection to the subscriber with the associated telephone number is established ,
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.If the command "delete phone book" is cached, the entire "list", as it is also cached as information, is deleted from the dictionary. The basic dictionary is also reloaded.
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.If the speech recognizer recognizes the command "No", the first speech dialog state is lingered and the memory is initialized as actions and the basic dictionary 1901 is reloaded.
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.In the event that the "Help" command has been recognized, all commands available in this speech dialog state are graphically presented to the user for selection.
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.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.
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 .If no utterance is temporarily stored in the buffer in the second speech dialog state, the first phoneme sequence, that is to say the first utterance, is buffered. However, if an utterance has already been buffered in the buffer, the utterance is buffered as a second utterance in the form of a second phoneme chain.
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:In the event that two utterances have already been cached, 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:
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 .First, the three cached statements are matched. In the event that no match of the three buffered utterances is achieved, the request is rejected, the buffer is emptied and the actions of the second speech dialog state 2003 are carried out again.
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 .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.
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.In the event that a match could not be generated, a check is carried out to determine whether the memory is already fully occupied and, in the event that the memory is fully occupied, the request for the entry of a new user-defined entry in the dictionary is rejected and it is carried out Speech dialog state transition to the first speech dialog state 1 and at the same time the basic dictionary is loaded.
Für den Fall, dass ausreichend freier Speicherplatz erfü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.In the event that sufficient free space is available and the above checks have been positive, the desired user-defined entry is added to the dictionary as a list entry. In this case, the best acoustic representation of the entered linguistic utterance is saved as a voice prompt.
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.Subsequently, a speech dialog state transition in more detail explained in the following third speech dialogue state 3 with simultaneous loading of a digit dictionary 2101 in more detail of the dictionary, which is used in the third voice dialogue state. 3
Ein Sprachdialog-Zustandsdiagramm 2100 des dritten- Sprachdialog-Zustands ist in Fig.21 dargestellt.A speech dialog state diagram 2100 of the third speech dialog state is shown in Fig. 21.
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".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".
Als Befehle 2102 sind folgende Befehlsketten von demAs commands 2102 are the following chains of commands from the
Spracherkenner erkennbar und interpretierbar:Speech recognizers recognizable and interpretable:
„<Ziffernblock>, Speichern, Korrektur, Zurück, Abbrechen,„<Numeric keypad>, save, correction, back, cancel,
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.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.
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 .If the "Save" command is recognized, 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.
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.When the command “correction” is recognized, the action “2103” that is the last “numerically recognized block of numbers” that is cached in the buffer memory is deleted. Furthermore, " 3 " remains in the third speech dialog state.
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.When the command "Back" is recognized, the third speech dialog state 3 also remains and the last digit temporarily stored in the buffer " is deleted.
Bei - Erkennen des Befehls „Abbrechen" wird in den ersten Sprachdialog-Zustand 1 übergegangen unter gleichzeitigem Laden des Basis-Wörterbuches.When the "Cancel" command is recognized, the system switches to the first speech dialog state 1 while simultaneously loading the basic dictionary.
Bei Erkennen des Befehls „Hilfe" werden dem Benutzer wieder alle in dem dritten Sprachdialog-Zustand 3 verfügbaren Befehle zur Auswahl dargestellt.When the "Help" command is recognized, the user is again presented with all of the commands available in the third speech dialog state 3.
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. 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 in the mobile telephone device 2200, as well as further telecommunication functions, such as for example the sending and / or receiving of fax messages or SMS messages (Short Message Service messages) or MMS messages (Multimedia Message service messages). Furthermore, 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 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.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.
Gerade zur Steuerung eines eine Vielzahl vonJust to control a variety of
"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. "The system providing different functionalities, such as a car radio 2300 provided with a multitude of different functions, is very well suited, since an arbitrarily complicated voice dialog structure can be set up and implemented very flexibly and independently of the speaker.
Für die oben dargelegten Abstandsberechnungen, insbesondere im Rahmen der Ergänzung des jeweiligen elektronischen Wörterbuchs und dabei im Rahmen der Überprüfung, ob die jeweilige phonetische Transkription, d.h. die jeweilige Folge von Phonemen genügend repräsentativ für den aktuellen Namenseintrag ist, d.h. anders ausgedrückt, ob sich die jeweiligen Folgen lautsprachlicher Einheiten, d.h. die Phonemfolgen einander ausreichend ähnlich sind bzw. für die Überprüfung, ob die jeweils zur Ergänzung eines elektronischen Wörterbuchs vorgesehene Phonemfolge sich genügend stark von den in dem elektronischen Wörterbuch bereits vorhandenen und gespeicherten Phonemfolgen unterscheidet, wird das im Weiteren beschriebene Verfahren unter Verwendung einer Variante der Levenshtein-Distanz verwendet .For the distance calculations set out above, in particular as part of the addition of the respective electronic dictionary and thereby as part of the check whether the respective phonetic transcription, ie the respective sequence of phonemes, is sufficiently representative of the current name entry, that is to say, in other words, whether the respective Sequences of spoken units, ie the phoneme sequences are sufficiently similar to one another or for checking whether the phoneme sequence provided in each case for supplementing an electronic dictionary differs sufficiently from the phoneme sequences already existing and stored in the electronic dictionary is the method described below using a variant of the Levenshtein distance.
Für die Abstandsbestimmung zweier Phonemfolgen wird, wie oben dargelegt, die Levenshtein-Distanz, in erfindungsgemäßer Ergänzung um die Artikulations-Merkmalsvektoren im Rahmen der Kostenfunktion, verwendet.As explained above, the Levenshtein distance is used to determine the distance between two phoneme sequences, supplemented according to the invention by the articulation feature vectors as part of the cost function.
Gemäß dem Levenshtein-Verfahren unter Verwendung der Levenshtein-Distanz werden zwei Folgen lautsprachlicher Einheiten, allgemein Symbolfolgen, miteinander verglichen in der Weise, dass mittels Einfügungen (q) , Auslassungen (r) sowie Vertauschungen (c) einzelner Elemente eine- erste Symbolfolge auf eine zweite Symbolfolge abgebildet wird-.According to the Levenshtein method using the Levenshtein distance, two sequences of spoken units, generally symbol sequences, are compared with one another in such a way that insertions (q), omissions (r) and exchanges (c) of individual elements result in a first symbol sequence for one second symbol sequence is mapped.
Die im Rahmen der Abbildung entstehenden Kosten werden mittels einer Kostenfunktion beschrieben und können als Abstand der zwei miteinander zu vergleichenden Symbolketten, gemäß diesem Ausführungsbeispiel der zwei Phonemfolgen, betrachtet werden.The costs arising in the context of the figure are described by means of a cost function and can be viewed as the distance between the two symbol chains to be compared with one another, in this exemplary embodiment the two phoneme sequences.
Zu Beginn des Verfahrens wird eine Vielzahl von Artikulations-Merkmalsvektoren ermittelt, wobei jeweils ein Artikulations-Merkmalsvektor jeweils einem Phonem zugeordnet wird und in dem Speicher gespeichert wird.At the start of the method, a large number of articulation feature vectors are determined, one articulation feature vector each being assigned to a phoneme and stored in the memory.
Die Artikulations-Merkmalsvektoren werden gemäß dem in [3] beschriebenen Verfahren gebildet und sind in der folgenden Tabelle für die Phoneme der deutschen Sprache zusammengefasst , wobei auch ein Pausen-Phonem in dem Satz vorgesehener Phoneme zur Beschreibung der deutschen Sprache vorgesehen ist .The articulation feature vectors are formed according to the method described in [3] and are summarized in the following table for the phonemes of the German language, with a pause phoneme in the set of phonemes provided for describing the German language.
Figure imgf000073_0001
Figure imgf000073_0001
Figure imgf000074_0001
Figure imgf000074_0001
Erfindungsgemäß wird von der Erkenntnis Gebrauch gemacht, dass die Artikulationseinstellungen zur Sprachproduktion in engem Zusammenhang zur Ausprägung der physikalischen Merkmale eines Phonems stehen.According to the invention, use is made of the knowledge that the articulation settings for speech production are closely related to the expression of the physical characteristics of a phoneme.
Wie in [3] gezeigt, haben experimentelle Untersuchungen an natürlich-sprachlichen Datenbasen für unterschiedliche Sprecher gezeigt, dass den Phonemen einer Sprecherwörterbasis gemäß der Ausprägung ihrer physikalischen Merkmale verschiedene Kategorien der artikulatorischen Einstellungen zugeordnet werden können .As shown in [3], experimental studies on natural language databases for different speakers have shown that the phonemes of a speaker word base according to the expression of their physical characteristics Different categories of articulatory settings can be assigned.
Erfindungsgemäß sind als Elemente (Komponente) des Artikulations-Merkmalsvektors zur Berücksichtigung artikulatorischer Einstellungen vorgesehen:According to the invention, the following are provided as elements (components) of the articulation feature vector to take articulatory settings into account:
• die Kieferstellung eines Menschen,The jaw position of a person,
• der Artikulationsort des jeweiligen Phonems,• the articulation location of the respective phoneme,
• die Lippenrundung eines Menschen,• the rounding of a person's lips,
• die Nasalität .• the nasality.
Jeder Merkmalsvektorkomponente wird ein Wert zugeordnet, der die jeweilige Kategorie der artikulatorischen Einstellung beschreibt .Each feature vector component is assigned a value that describes the respective category of the articulatory setting.
Ausgehend von einer neutralen artikulatorischen Position der das Phonem erzeugenden Organe werden Abweichungen von dieser mittels positiver oder negativer Zahlen dargestellt.Starting from a neutral articulatory position of the organs producing the phoneme, deviations from this are represented by means of positive or negative numbers.
Für die Kieferstellung, anders ausgedrückt für die Kieferöffnung, werden erfindungsgemäß vier Kategorien beobachtet, denen folgende numerische -Werte zugeordnet sind:According to the invention, four categories are observed for the jaw position, in other words for the jaw opening, to which the following numerical values are assigned:
• geschlossene Kieferstellung → 0,• closed jaw position → 0,
• halbgeschlossene Kieferstellung → 1,• semi-closed jaw position → 1,
• halboffene Kieferstellung → 2 sowie• semi-open jaw position → 2 as well
• offene Kieferstellung -» 3.• open jaw position - »3.
In der Merkmalskomponente Artikulationsort sind folgende Kategorien vorgesehen:The following categories are provided in the Articulation Location characteristic component:
• Palatal → 1,• Palatal → 1,
• Velar → 0,• Velar → 0,
• Uvular → -1 sowie• Uvular → -1 as well
• Pharyngeal → -2.• Pharyngeal → -2.
Als weitere Merkmalsvektorkomponente ist die Lippenrundung vorgesehen, welcher folgende unterschiedliche Kategorien zugeordnet sind: breite Lippenstellung → -1, indifferente Lippenstellung → 0, gerundete Lippenstellung → 1 sowie vorgestülpte Lippenstellung → 2.The lip rounding is provided as a further feature vector component, to which the following different categories are assigned: wide lip position → -1, indifferent lip position → 0, rounded lip position → 1 and pre-turned lip position → 2.
Die meisten Vokale zeigen eine stabile Einstellung der artikulatorischen Positionen für alle Beschreibungsmerkmale, da diese während des Produktionsprozesses erreicht werden müssen, damit der korrekte Vokal produziert wird.Most vowels show a stable setting of the articulatory positions for all descriptive features, since these have to be achieved during the production process so that the correct vowel is produced.
Konsonanten hingegen besitzen freie Einstellungen, in denen die- Position der Artikulationsorgane leicht variieren kann. Diese ermöglichen den Übergang von einer vorangegangenen, stabilen artikulatorischen Position zu einer nachfolgenden, stabilen artikulatorischen Position mit dem geringsten artikulatorischen Aufwand. Diesen Prozess des Überlappens artikulatorischer Gesten unter Beeinflussung benachbarter Phoneme durch vorangehende bzw. nachfolgende Phoneme nennt man auch Koartikulation.Consonants, on the other hand, have free settings in which the position of the articulation organs can vary slightly. These enable the transition from a previous, stable articulatory position to a subsequent, stable articulatory position with the least articulatory effort. This process of overlapping articulatory gestures under the influence of neighboring phonemes by preceding or following phonemes is also called coarticulation.
Die angegebenen Merkmalswerte der Konsonanten variieren um den in Klammern angegebenen Mittelwert .The specified characteristic values of the consonants vary by the mean value given in brackets.
Die Artikulations-Merkmalsvektoren m(i), welche als Artikulations-Merkmalsvektorkomponenten somit die Komponenten „Kieferstellung", „Artikulationsort", „Lippenrundung" sowie „Nasalität", aufweisen, werden, wie im Folgenden näher erläutert, im Rahmen der Berechnung der Levenshtein-Distanz berücksichtigt .The articulation feature vectors m (i), which thus have the components “jaw position”, “articulation site”, “lip rounding” and “nasality” as articulation feature vector components, are, as explained in more detail below, as part of the calculation of the Levenshein Distance considered.
Beispielsweise hat der Artikulations-Merkmalsvektor m(U) des Phonems „U" den Aufbau:For example, the articulation feature vector m (U) of the phoneme "U" has the structure:
m(U) = (1, -1, 2, 0) . Im Rahmen der allgemeinen Levenshtein-Distanz wird zunächst einer Einfügungs-Variable q der Wert 1 zugewiesen und einer Auslassungs-Variable r ebenso der Wert 1.m (U) = (1, -1, 2, 0). Within the general Levenshtein distance, an insertion variable q is first assigned the value 1 and an omission variable r is also assigned the value 1.
Anders ist das Vorgehen gemäß der Erfindung. Es wird das modifizierte Levenshtein-Verfahren für jede lautsprachliche Einheit, d.h. gemäß diesem Ausführungsbeispiel für jedes Phonem der ersten Folge von Phonemen und für jedes Phonem der zweiten Folge von Phonemen ein lokaler Abstand ermittelt, ausgehend von dem ersten Phonem der ersten Phonemfolge zu dem entsprechenden ersten Phonem der zweiten Phonemfolge.The procedure according to the invention is different. The modified Levenshtein method for each spoken unit, i.e. According to this exemplary embodiment, a local distance is determined for each phoneme of the first series of phonemes and for each phoneme of the second series of phonemes, starting from the first phoneme of the first phoneme series to the corresponding first phoneme of the second phoneme series.
Das Verfahren der Levenshtein-Distanz gemäß diesem Ausführungsbeispiel ist im Folgendem in Form eines Pseudocodes dargestellt:The method of the Levenshtein distance according to this exemplary embodiment is shown below in the form of a pseudo code:
q = 1, r =1, for i = 1 : I for j = 1 : J d(i, j) = min[d(i-l, j-1) + c(i, j), d(i, j-1) + q, d(i-l, j ) + r] end end dNorm = d(I", J) / len_maxq = 1, r = 1, for i = 1: I for j = 1: J d (i, j) = min [d (il, j-1) + c (i, j), d (i, j -1) + q, d (il, j) + r] end end dNorm = d (I " , J) / len_max
Der Kostenwert c(i, j) ergibt sich dabei für zwei lautsprachliche Einheiten direkt aus der betragsmäßigen Differenz der Artikulations-Merkmalsvektoren des Phonems i und des Phonems j, d.h. anders ausgedrückt ergeben sich die Kosten" gemäß folgender Vorschrift:The cost value c (i, j) is given here for two phonetic units directly from the amount-related difference in the articulation of the phoneme feature vectors i and j of the phoneme, that is, in other words the costs are "in accordance with the following rule:
c(i, j) = | |mi- mj | . Diese Berechnungsvorschrift ersetzt somit anschaulich die Kostenberechnung für die Vertauschung von Phonemen im oben beschriebenen, an sich bekannten Levenshtein-Algorithmus .c (i, j) = | | mi- mj | , This calculation rule thus clearly replaces the cost calculation for the exchange of phonemes in the Levenshtein algorithm known per se described above.
Berücksichtigt man darüber hinaus auch die Varianzen der einzelnen Artikulations-Merkmalsvektorkomponenten, so kann mittels einer zusätzlichen Varianznormalisierung die Vergleichbarkeit von Vektoren, deren Komponenten unterschiedlich streuen, gewährleistet werden.If one also takes into account the variances of the individual articulation feature vector components, the comparability of vectors whose components scatter differently can be ensured by means of an additional normalization of variance.
Dieser modifizierte Ausdruck entspricht dann der Varianznormalisierten Länge des Differenzvektors.This modified expression then corresponds to the variance normalized length of the difference vector.
Im Gegensatz zu den fixen Kosten, die bei der Vertauschung von beliebigen Phonemen entstehen, erlaubt diese erfindungsgemäße Art der Kostenberechnung eine differenzierter Aussage über die Ähnlichkeit von Phonemen, als es mit dem Levenshtein-Verfahren gemäß dem Stand der Technik ermöglicht ist.In contrast to the fixed costs that arise when exchanging any phonemes, this type of cost calculation according to the invention allows a differentiated statement about the similarity of phonemes than is possible with the Levenshtein method according to the prior art.
Der Ausdruck len_max entspricht derjenigen Anzahl von Phonemen, welche zur längeren Phonemfolge gehört.The expression len_max corresponds to the number of phonemes that belong to the longer phoneme sequence.
Zur Berechnung der Levenshtein-Distanz werden sukzessive, Phonem für Phonem, allgemein Symbol für Symbol, beide Phonemfolgen abgearbeitet und es wird eine Kostenmatrix ermittelt. Anschließend wird innerhalb der Kostenmatrix der Weg ermittelt mit den lokal jeweils geringsten Kosten und die Kosten entlang dieses Weges werden addiert. Ergebnis der Summenbildung ist die Levenshtein-DistanzTo calculate the Levenshtein distance, both phoneme sequences are processed successively, phoneme for phoneme, generally symbol for symbol, and a cost matrix is determined. Then the route is determined within the cost matrix with the lowest local costs and the costs along this route are added. The result of the sum formation is the Levenshtein distance
Die Zwischenergebnisse werden in der Matrix d(I, J) gespeichert, deren Zeilen den Symbolen der ersten Symbolfolge, d.h. den Phonemen der ersten Phonemfolge und deren Spalten den Symbolen der zweiten Symbolfolge, d.h. den Phonemen der zweiten Phonemfolge, zugeordnet sind. Die Startzeile bzw. Startspalte enthält die Werte der so genannten Rekursionsbasis. In der rechten unteren Ecke der Distanzmatrix steht nach Ablauf der Berechnungen die Gesamtdistanz d(I, J) .The intermediate results are stored in the matrix d (I, J), the rows of which are assigned to the symbols of the first symbol sequence, ie the phonemes of the first phoneme sequence, and the columns of which are assigned to the symbols of the second symbol sequence, ie the phonemes of the second phoneme sequence. The start line or start column contains the values of the so called recursion basis. After the calculations have been completed, the total distance d (I, J) is shown in the bottom right corner of the distance matrix.
In den folgenden Tabellen ist zur weiteren Veranschaulichung ein Vergleich zur Berechnung der Ähnlichkeit zweier Phonemfolgen, einerseits gemäß dem Stand der Technik, andererseits gemäß dem erfindungsgemäßen Verfahren zur verbesserten Berechnung der Levenshtein-Distanz dargestellt.For further illustration, the following tables show a comparison for calculating the similarity of two phoneme sequences, on the one hand according to the prior art, and on the other hand according to the inventive method for improved calculation of the Levenshtein distance.
Die erste Phonemfolge ist die Folge der Phoneme (g e: z a:) und die zweiten Phonemfolge ist (g e : s a:) .The first phoneme sequence is the sequence of the phonemes (g e: z a :) and the second phoneme sequence is (g e: s a :).
Die folgende Tabelle zeigt die gemäß dem Stand der Technik, d.h. gemäß dem üblichen Verfahren zur Berechnung der Levenshtein-Distanz berechnete Distanz. Wie der Tabelle, d.h. der Abstandsmatrix zu entnehmen ist, ergibt sich eine Levenshein-Distanz dNorm von 1/2 :The following table shows the distance calculated according to the prior art, ie according to the usual method for calculating the Levenshtein distance. As can be seen in the table, ie the distance matrix, there is a Levenshein distance d norm of 1/2:
Figure imgf000079_0001
Figure imgf000079_0001
Gemäß dem neuen Verfahren ergibt sich ein Abstandswert von 0, da nunmehr die Ähnlichkeit in den artikulatorischen Eigenschaften der jeweiligen Phoneme berücksichtigt werden und somit die beiden sehr ähnlich klingenden Phonemfolgen auch als sehr ähnlich klassifiziert werden:According to the new method, there is a distance value of 0, since the similarity in the articulatory properties of the respective phonemes is now taken into account and the two phoneme sequences sounding very similar are also classified as very similar:
Figure imgf000079_0002
Figure imgf000080_0001
Figure imgf000079_0002
Figure imgf000080_0001
In einer alternativen Ausführungsform der Erfindung ist es vorgesehen, einzelne Artikulationsmerkmale unterschiedlich zu gewichten sowie unterschiedliche Metriken zur Distanzberechnung zu verwenden, beispielsweise eine euklidische Metrik oder einen Mahalanobis-Abstand. Auf diese Weise kann die artikulatorisch erfindungsgemäß modifizierte Levenshtein-Distanz nachträglich an die Systemeigenschaften der jeweiligen Zielapplikation sowie an das Klassifikationsziel angepasst werden.In an alternative embodiment of the invention, individual articulation features are weighted differently and different metrics are used to calculate the distance, for example a Euclidean metric or a Mahalanobis distance. In this way, the artificially modified Levenshtein distance can be subsequently adapted to the system properties of the respective target application and to the classification target.
Anschaulich wurde durch die Erfindung ein neuartiges Verfahren zur -Ermittlung eines quantitativen Ähnlichkeitsmaßes zwischen zwei gegebenen Phonemfolgen bereitgestellt, das erstmals in einem Phonem-basierten Spracherkenner als Maß für die einfache Berechnung und Beurteilung der Ähnlichkeit zweier Erkennungsergebnisse, d.h. zweier Phonemfolgen, verwendet werden kann. Die erfindungsgemäße Ergänzung der Levenshtein-Distanz zur Ähnlichkeitsberechnung mit dem neuartigen Bewertungsverfahren ermöglicht erstmals differenzierte Aussagen über die Ähnlichkeit zweier Phonemfolgen. The invention clearly provides a novel method for determining a quantitative measure of similarity between two given phoneme sequences, which can be used for the first time in a phoneme-based speech recogniser as a measure for the simple calculation and assessment of the similarity between two recognition results, ie two phoneme sequences. The addition of the Levenshtein distance according to the invention for the similarity calculation with the novel evaluation method enables differentiated statements about the similarity of two phoneme sequences for the first time.
In diesem Dokument sind folgende Veröffentlichungen zitiert:The following publications are cited in this document:
[1] John Nerbonne and Wilbert Heeringa, Measuring Dialect[1] John Nerbonne and Wilbert Heeringa, Measuring Dialect
Distance Phonetically, in: John Coleman (ed. )' Workshop on Computational Phonology, Special Interest Group of the Association for Computational Linguistics, Madrid, 1997, S. 11 - 18Distance Phonetically, in: John Coleman (ed.) ' Workshop on Computational Phonology, Special Interest Group of the Association for Computational Linguistics, Madrid, 1997, pp. 11 - 18
[2] J. Nerbonne et al , Phonetic Distance between Dutch Dialects, Proceedings of CLIN '95, S. 185 - 202, Antwerpen, 1995[2] J. Nerbonne et al, Phonetic Distance between Dutch Dialects, Proceedings of CLIN '95, pp. 185-202, Antwerp, 1995
[3] D. Hirschfeld, Comparing static and dynamic features for segmental cost function calculation in concatenative speech synthesis, ICSLP, Peking, 2000[3] D. Hirschfeld, Comparing static and dynamic features for segmental cost function calculation in concatenative speech synthesis, ICSLP, Beijing, 2000
[4] DE 44 333 66 AI[4] DE 44 333 66 AI
[5] DE 43 173 72 AI [5] DE 43 173 72 AI
2121
BezugszeichenlisteLIST OF REFERENCE NUMBERS
100 Spracherkennungseinrichtung100 speech recognition device
101 Sprachsignal101 voice signal
102 Mikrofon102 microphone
103 Aufgenommenes analoges Sprachsignal103 Recorded analog voice signal
104 Vorverarbeitung104 preprocessing
105 Vorverarbeitetes Sprachsignal105 Preprocessed voice signal
106 Analog-/Digital-Wandler106 analog / digital converter
107 Digitales Sprachsignal 108 Rechner107 Digital voice signal 108 calculator
109 Eingangsschnittstelle109 input interface
110 Mikroprozessor110 microprocessor
111 Speicher111 memory
112 Ausgangsschnittstelle112 output interface
113 Computerbus113 computer bus
114 Elektronisches Wörterbuch114 Electronic dictionary
115 Tastatur115 keyboard
116 Computermaus116 computer mouse
117 Kabel117 cables
118 Kabel118 cables
119 Funkverbindung 120 Funkverbindung119 radio connection 120 radio connection
121 Lautsprecher121 speakers
122 Aktor122 actuator
123 DSP123 DSP
200 Sprecherunabhängiges Wörterbuch200 speaker-independent dictionary
201 Basiseintrag201 basic entry
202 Sprecherabhängiges Wörterbuch202 Speaker dependent dictionary
203 Eintrag speicherabhängiges Wörterbuch203 Entry memory-dependent dictionary
204 Gemeinsames Wörterbuch204 Common dictionary
300 Spracherkenner-Zustandsdiagramm300 speech recognizer state diagram
301 Initialisierungszustand301 initialization state
302 Stopp-Zustand302 stop state
303 Pausen-Zustand c? 2303 pause state c? 2
304 Betriebsmodus-Zustand304 operating mode state
305 Verfahrensschritt305 step
306 Verfahrensschritt 307 Verfahrensschritt 308 Verfahrensschritt306 method step 307 method step 308 method step
309 Verfahrensschritt309 step
310 Verfahrensschritt310 step
311 Verfahrensschritt311 procedural step
312 Verfahrensschritt312 procedural step
313 Verfahrensschritt313 procedural step
314 Verfahrensschritt314 procedural step
400 Sprachdialog-Zustandsdiagramm400 speech dialog state diagram
401 zeitlich vorangegangener Sprachdialog-Zustand401 temporally preceding speech dialog state
402 Sprachdialog-Zustand X402 Speech dialog state X
403 Wörterbuch403 dictionary
404 Wort404 word
405 sprachabhängiger Listeneintrag405 language-dependent list entry
406 Befehl406 command
407 Befehlsantrag407 command request
408 Aktion408 action
409 Aktionsantrag409 request for action
500 Ablaufdiagramm500 flowchart
501 Startzustand501 start state
502 Erster Zyklus502 First cycle
503 Zweiter Zyklus503 Second cycle
504 Erster Prüfschritt504 First test step
505 Ende-Zustand505 end state
506 Zweiter Prüfschritt506 Second test step
507 Dritter Prüfschritt507 Third test step
508 Dritter Zyklus508 Third cycle
509 Vierter Prüfschritt509 Fourth test step
600 Nachrichtenflussdiagramm600 message flow diagram
601 Nachricht StartHMMSRFlowgraph601 message StartHMMSRFlowgraph
602 Bestätigungsnachricht £3602 confirmation message £ 3
603 Nachricht InitHMMSRParams603 InitHMMSRParams message
604 Bestätigungsnachricht604 confirmation message
605 Nachricht StartLoadHMMLDA605 Message StartLoadHMMLDA
606 Nachricht SMBReguestLoadHMMLDA606 Message SMBReguestLoadHMMLDA
607 Bestätigungsnachricht607 confirmation message
608 Nachricht StartLoadHMMDictionary608 Message StartLoadHMMDictionary
609 Nachricht SMBRequestLoadHMMDictionary609 Message SMBRequestLoadHMMDictionary
610 Bestätigungsnachricht610 confirmation message
611 Nachricht SMBRequestCodebookBlock611 Message SMBRequestCodebookBlock
612 Nachricht CodebookBlockLoadedAndSwitched612 CodebookBlockLoadedAndSwitched message
613 Nachricht SMBRequestCodebookBlock613 Message SMBRequestCodebookBlock
614 Nachricht CodebookBlockLoadedAndSwitched614 CodebookBlockLoadedAndSwitched message
615 Nachricht StartHMMSR615 Message StartHMMSR
616 Bestätigungsnachricht616 confirmation message
617 Nachricht SMBRequestCodebookBlock617 Message SMBRequestCodebookBlock
618 Nachricht CodebookBlockLoadedAndSwitched618 CodebookBlockLoadedAndSwitched message
619 Nachricht HMMHypothesisStable 620 Bestätigungsnachricht619 message HMMHypothesisStable 620 confirmation message
621 Nachricht PauseHMMSR621 Message pause HMMSR
622 Bestätigungsnachricht622 confirmation message
700 Nachrichtflussdiagramm700 message flow diagram
701 Nachricht SetHMMSearchParams701 message SetHMMSearchParams
702 Bestätigungsnachricht702 confirmation message
703 Nachricht StartLoadHMMDictionary703 Message StartLoadHMMDictionary
704 Nachricht SMBRequestLoadHMMDictionary704 Message SMBRequestLoadHMMDictionary
705 Bestätigungsnachricht705 confirmation message
706 Nachricht StartHMMSR706 message StartHMMSR
707 Bestätigungsnachricht707 confirmation message
708 Nachricht SMBRequestCodebookBlock708 Message SMBRequestCodebookBlock
709 Nachricht CodebookBlockLoadedAndSwitched709 Message CodebookBlockLoadedAndSwitched
710 Nachricht HMMHypothesisStable710 Message HMMHypothesisStable
711 Bestätigungsnachricht711 confirmation message
712 Nachricht PauseHMMSR712 Message break HMMSR
713 Bestätigungsnachricht713 confirmation message
800 Nachrichtenflussdiagramm £4800 message flow diagram £ 4
801 Nachricht StartHMMSR801 message StartHMMSR
802 Bestätigungsnachricht802 confirmation message
803 Nachricht SMBRequestCodebookBlock803 Message SMBRequestCodebookBlock
804 Nachricht CodebookBlockLoadedAndSwitched804 Message CodebookBlockLoadedAndSwitched
805 Nachricht HMMHypothesisStable805 Message HMMHypothesisStable
806 Bestätigungsnachricht806 confirmation message
807 Nachricht PauseHMMSR807 Message break HMMSR
808 Bestätigungsnachricht808 confirmation message
900 Funktionsdiagramm900 functional diagram
1000 Funktionsdiagramm1000 function diagram
1100 Tabelle „Sprach-Prompts"1100 "Language Prompts" Table
1101 Tabelle „Zusätzliche Systemreaktionen"1101 Table "Additional system reactions"
1200 Sprachdialogzustandsdiagramm1200 speech dialog state diagram
1201 Befehl1201 command
1202 Befehlsantrag1202 Command request
1203 Aktion1203 action
1204 Aktionsantrag1204 Action request
1205 Aktionsantrag1205 Action request
1300 Sprachdialogzustandsdiagramm 1310 Abiaufdiagramm1300 Speech dialog state diagram 1310 Sequence diagram
1400 Sprachdialogzustandsdiagramm 1410 Ablaufdiagramm1400 Speech dialog state diagram 1410 Flow diagram
1500 Sprachdialogzustandsdiagramm 1510 Ablaufdiagramm1500 Speech dialog state diagram 1510 Flow diagram
1600 Sprachdialogzustandsdiagramm 1610 Ablaufdiagramm1600 Speech dialog state diagram 1610 Flow diagram
1700 Sprachdialogzustandsdiagramm 1710 Ablaufdiagramm £ 51700 Voice dialog state diagram 1710 Flow diagram £ 5
1800 Sprachdialogzustandsdiagramm 1810 Ablaufdiagramm1800 speech dialog state diagram 1810 flow diagram
1900 Sprachdialogzustandsdiagramm1900 Speech dialog state diagram
1901 Wörterbuch1901 dictionary
1902 Befehlsliste1902 command list
1903 Aktionsliste1903 action list
2000 Sprachdialogzustandsdiagramm 2001 Vernehmwörterbuch2000 speech dialog state diagram 2001 interrogation dictionary
2002 Befehlsliste2002 command list
2003 Aktionsliste2003 action list
2100 Sprachdialogzustandsdiagramm2100 speech dialog state diagram
2101 Ziffernwörterbuch2101 number dictionary
2102 Befehlsliste2102 command list
2103 Aktionsliste2103 Action list
2200 Mobil funktelefon2200 mobile radio telephone
2300 Autoradio2300 car radio
2301 Navigationssystem2301 navigation system
2302 CD-Spieler2302 CD player
2303 Radio2303 radio
2304 Kassettenrekorder2304 tape recorder
2305 Telefon2305 phone
2306 Bildschirm 2306 screen

Claims

Patentansprüche claims
1. Verfahren zum rechnergestützten Vergleich einer ersten Folge von Symboldarstellungen einer lautsprachlichen Äußerung mit einer zweiten Folge von Symboldarstellungen einer lautsprachlichen Äußerung,1. Method for computer-aided comparison of a first sequence of symbol representations of a spoken utterance with a second sequence of symbol representations of a spoken utterance,
• wobei jeder Symboldarstellung ein Artikulations- Merkmalsvektor zugeordnet ist, der artikulatorische Eigenschaften der Symboldarstellungen und/oder Erzeugungs-physikalische Eigenschaften der Symboldarstellungen enthält,Wherein each symbol representation is assigned an articulation feature vector which contains articulatory properties of the symbol representations and / or physical properties of the symbol representations,
• bei dem jede Symboldarstellung der ersten Folge von Symboldarstellungen auf eine entsprechende Symboldarstellung der zweiten Folge von Symboldarstellungen abgebildet wird,In which each symbol representation of the first sequence of symbol representations is mapped to a corresponding symbol representation of the second sequence of symbol representations,
• wobei für jede Paarung von Symboldarstellungen die numerische Distanz zweier Einheiten abhängiger Artikulations-Merkmalsvektoren berechnet wird und diese in Form einer Kostenmatrix angeordnet werden.• the numerical distance between two units of dependent articulation feature vectors is calculated for each pair of symbol representations and these are arranged in the form of a cost matrix.
2. Verfahren gemäß Anspruch 1, bei dem in der Kostenmatrix gemäß dem Levenshtein-Verfahren der optimale Weg ermittelt wird.2. The method according to claim 1, in which the optimal path is determined in the cost matrix according to the Levenshtein method.
3. Verfahren gemäß Anspruch 1 oder 2 , bei dem als lautsprachliche Einheiten Phoneme verwendet werden.3. The method according to claim 1 or 2, in which phonemes are used as phonetic units.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem die Artikulations-Merkmalsvektoren gebildet werden abhängig von unterschiedlichen Artikulationseinstellungen eines eine lautsprachliche Einheit erzeugenden Organs.4. The method according to any one of claims 1 to 3, in which the articulation feature vectors are formed as a function of different articulation settings of an organ producing a spoken unit.
5. Verfahren gemäß einem der Ansprüche 1 bis 4, bei dem ein jeweiliger Artikulations-Merkmalsvektor einen der folgenden Merkmale enthält :5. The method according to any one of claims 1 to 4, wherein a respective articulation feature vector contains one of the following features:
• die Kieferstellung eines Menschen, den Artikulationsort, die Lippenrundung eines Menschen, die Nasalität, die Glottalisierung, oder die Tonhöhe .The jaw position of a person, the place of articulation, the rounding of the lips of a person, the nasality, the glottalization, or the pitch.
6. Verfahren gemäß Anspruch 5 , bei dem eine Varianz mindestens eines der Merkmale der Artikulations-Merkmalsvektoren im Rahmen der Abbildung berücksichtigt wird.6. The method according to claim 5, in which a variance of at least one of the features of the articulation feature vectors is taken into account in the context of the mapping.
7. Verfahren gemäß einem der Ansprüche 1 bis 6, eingesetzt in einem der folgenden Bereiche:7. The method according to any one of claims 1 to 6, used in one of the following areas:
• Sprachsynthese,• speech synthesis,
• Spracherkennung, oder• speech recognition, or
• automatisches Erzeugen eines elektronischen Wörterbuchs,Automatic generation of an electronic dictionary,
8. Vorrichtung zum rechnergestützten Vergleich einer ersten Folge von Symboldarstellungen einer lautsprachlichen Äußerung mit einer zweiten Folge von Symboldarstellungen einer lautsprachlichen Äußerung, mit einer Prozessoreinheit, die derart eingerichtet ist, dass folgende Verfahrensschritte durchführbar sind:8. Device for computer-aided comparison of a first sequence of symbol representations of a spoken utterance with a second sequence of symbol representations of a spoken utterance, with a processor unit, which is set up in such a way that the following method steps can be carried out:
• jeder Symboldarstellung ist ein Artikulations- Merkmalsvektor zugeordnet, der artikulatorische Eigenschaften der Symboldarstellungen und/oder Erzeugungs-physikalische Eigenschaften der Symboldarstellungen enthält,Each symbol representation is assigned an articulation feature vector which contains articulatory properties of the symbol representations and / or physical properties of the symbol representations,
• jede Symboldarstellung der ersten Folge von Symboldarstellungen wird auf eine entsprechende Symboldarstellung der zweiten Folge von Symboldarstellungen abgebildet,Each symbol representation of the first sequence of symbol representations is mapped onto a corresponding symbol representation of the second sequence of symbol representations,
• wobei für jede Paarung von Symboldarstellungen die numerische Distanz zweier Einheiten abhängiger Artikulations-Merkmalsvektoren berechnet wird und diese in Form einer Kostenmatrix angeordnet werden. 3• the numerical distance between two units of dependent articulation feature vectors is calculated for each pair of symbol representations and these are arranged in the form of a cost matrix. 3
9. Spracherkennungseinrichtung mit einer Vorrichtung gemäß Anspruch 8.9. Speech recognition device with a device according to claim 8.
10. Sprachsyntheseeinrichtung mit einer Vorrichtung gemäß Anspruch 8. 10. Speech synthesis device with a device according to claim 8.
PCT/DE2003/003206 2002-09-25 2003-09-25 Method and device for the computer-aided comparison of a first sequence of phoneme units with a second sequence of phoneme units, voice recognition device, and speech synthesis device WO2004029932A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10244722.5 2002-09-25
DE10244722A DE10244722A1 (en) 2002-09-25 2002-09-25 Method and device for computer-aided comparison of a first sequence of spoken units with a second sequence of spoken units, speech recognition device and speech synthesis device

Publications (1)

Publication Number Publication Date
WO2004029932A1 true WO2004029932A1 (en) 2004-04-08

Family

ID=31984066

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2003/003206 WO2004029932A1 (en) 2002-09-25 2003-09-25 Method and device for the computer-aided comparison of a first sequence of phoneme units with a second sequence of phoneme units, voice recognition device, and speech synthesis device

Country Status (2)

Country Link
DE (1) DE10244722A1 (en)
WO (1) WO2004029932A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7881929B2 (en) 2007-07-25 2011-02-01 General Motors Llc Ambient noise injection for use in speech recognition
DE102008062923A1 (en) 2008-12-23 2010-06-24 Volkswagen Ag Method for generating hit list during automatic speech recognition of driver of vehicle, involves generating hit list by Levenshtein process based on spoken-word group of that is determined as hit from speech recognition

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073099A (en) * 1997-11-04 2000-06-06 Nortel Networks Corporation Predicting auditory confusions using a weighted Levinstein distance

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586215A (en) * 1992-05-26 1996-12-17 Ricoh Corporation Neural network acoustic and visual speech recognition system
DE4433366A1 (en) * 1994-09-20 1996-03-21 Sel Alcatel Ag Method and device for determining a measure of the correspondence between two patterns and speech recognition device with it and program module therefor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073099A (en) * 1997-11-04 2000-06-06 Nortel Networks Corporation Predicting auditory confusions using a weighted Levinstein distance

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
D.HIRSCHFELD: "Comparing static and dynamic features for segmental cost function calculation in concatenative speech synthesis", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SPOKEN LANGUAGE PROCESSING -ICSLP2000-, 16 October 2000 (2000-10-16) - 20 October 2000 (2000-10-20), PEKING, pages 1 - 4, XP002269360 *
G.KONDRAJ: "A new algorithm for the alignement of phonetic sequences", PROCEEDINGS OF THE FIRST MEETING OF THE NORTH AMERICAN CHAPTER OF THE ASSOCIATION FOR COMPUTATIONAL LINGUISTICS, April 2000 (2000-04-01), SEATTLE, pages 1 - 8, XP002269402, Retrieved from the Internet <URL:http://www.cs.ualberta.ca/~kondrak/naacl00.pdf> *
J.NERBONNE, W.HEERINGA: "Measuring dialect distance phonetically", THIRD MEETING OF THE ACL SPECIAL INTEREST GROUP PHONOLOGY, 12 July 1997 (1997-07-12), MADRID, SPAIN, pages 1 - 8, XP002269403, Retrieved from the Internet <URL:http://citeseer.nj.nec.com/rd/76108187%2C169483%2C1%2C0.25%2CDownload/http://citeseer.nj.nec.com/cache/papers/cs/1362/http:zSzzSzgrid.let.rug.nlzSz%7EnerbonnezSzpaperszSzcomp-phon97.pdf/nerbonne97measuring.pdf> *
J.ZOBEL: "Phonetic String Matching: Lessons from Information Retrieval", PROCEEDINGS OF SIGIR 1996, 18 August 1996 (1996-08-18) - 22 August 1996 (1996-08-22), ZÜRICH, pages 1 - 7, XP002269358, Retrieved from the Internet <URL:http://citeseer.nj.nec.com/rd/88441500%2C524986%2C1%2C0.25%2CDownload/http://citeseer.nj.nec.com/cache/papers/cs/26288/http:zSzzSzwww.cs.rmit.edu.auzSz%7EjzzSzfulltextzSzsigir96.pdf/zobel96phonetic.pdf> [retrieved on 20040206] *

Also Published As

Publication number Publication date
DE10244722A1 (en) 2004-04-08

Similar Documents

Publication Publication Date Title
DE69514382T2 (en) VOICE RECOGNITION
DE69919842T2 (en) LANGUAGE MODEL BASED ON THE LANGUAGE RECOGNITION HISTORY
DE3337353C2 (en) Speech analyzer based on a hidden Markov model
DE69818231T2 (en) METHOD FOR THE DISCRIMINATIVE TRAINING OF VOICE RECOGNITION MODELS
DE69519297T2 (en) METHOD AND DEVICE FOR VOICE RECOGNITION BY MEANS OF OPTIMIZED PARTIAL BUNDLING OF LIKELIHOOD MIXTURES
DE69928181T2 (en) Method and apparatus for speech recognition using a knowledge base
EP1466317B1 (en) Operating method for an automated language recognizer intended for the speaker-independent language recognition of words in different languages and automated language recognizer
DE69317229T2 (en) Method and system for preventing the entry of confusingly similar sentences in a word list of a speech recognition system
DE68928097T2 (en) Speech recognition system
DE602004012909T2 (en) A method and apparatus for modeling a speech recognition system and estimating a word error rate based on a text
DE69707876T2 (en) METHOD AND DEVICE FOR DYNAMICALLY SET TRAINING FOR VOICE RECOGNITION
DE69622565T2 (en) METHOD AND DEVICE FOR DYNAMICALLY ADJUSTING A LARGE VOCABULARY LANGUAGE IDENTIFICATION SYSTEM AND USING RESTRICTIONS FROM A DATABASE IN A VOICE LABELING LANGUAGE IDENTIFICATION SYSTEM
DE69311303T2 (en) LANGUAGE TRAINING AID FOR CHILDREN.
DE69827988T2 (en) Speech models for speech recognition
DE69607913T2 (en) METHOD AND DEVICE FOR VOICE RECOGNITION ON THE BASIS OF NEW WORD MODELS
DE69414752T2 (en) Speaker independent recognition system for isolated words using a neural network
DE20004416U1 (en) Speech recognition device using multiple feature streams
DE102007033472A1 (en) Method for speech recognition
EP1611568A1 (en) Three-stage word recognition
EP3010014B1 (en) Method for interpretation of automatic speech recognition
DE60133537T2 (en) AUTOMATIC UMTRAINING OF A LANGUAGE RECOGNITION SYSTEM
EP1058235B1 (en) Reproduction method for voice controlled systems with text based speech synthesis
DE10304460B3 (en) Speech recognition method e.g. for mobile telephone, identifies which spoken variants of same word can be recognized with analysis of recognition difficulty for limiting number of acceptable variants
DE60025687T2 (en) Speech recognition device with execution of a syntactic permutation rule
EP0813734A1 (en) Method of recognising at least one defined pattern modelled using hidden markov models in a time-variable test signal on which at least one interference signal is superimposed

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
122 Ep: pct application non-entry in european phase