WO1999053477A1 - Speech recognition system using parallel microcomputer - Google Patents

Speech recognition system using parallel microcomputer Download PDF

Info

Publication number
WO1999053477A1
WO1999053477A1 PCT/JP1998/001714 JP9801714W WO9953477A1 WO 1999053477 A1 WO1999053477 A1 WO 1999053477A1 JP 9801714 W JP9801714 W JP 9801714W WO 9953477 A1 WO9953477 A1 WO 9953477A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
score
speech recognition
node
search
Prior art date
Application number
PCT/JP1998/001714
Other languages
French (fr)
Japanese (ja)
Inventor
Motohito Nakagawa
Hideo Maejima
Original Assignee
Hitachi, Ltd.
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 Hitachi, Ltd. filed Critical Hitachi, Ltd.
Priority to PCT/JP1998/001714 priority Critical patent/WO1999053477A1/en
Publication of WO1999053477A1 publication Critical patent/WO1999053477A1/en

Links

Definitions

  • the present invention relates to a speech recognition system using a parallel microphone mouth computer, and more particularly to a speech recognition system using a hidden Markov model (HMM), a microcomputer having a parallel processing function (parallel MPU).
  • HMM hidden Markov model
  • parallel MPU parallel processing function
  • the present invention does not assume a so-called distributed memory type parallel computer which is applicable not only to the above-mentioned microcomputer but also to a vector type super computer and a shared memory type multiprocessor parallel computer.
  • Computers that perform parallel processing are known as follows, classified according to the differences between (1) the method of realizing parallel processing and (2) the flow of instructions and the flow of data.
  • the parallel computing method is an instruction pipeline method, a multiple operation unit method (super color, VLIW (Very Long Instruction Word), etc .: the former is scheduled by hardware, the latter is scheduled by software), an operation pipeline method (vector Torr computer), multi-processor system, etc. have been realized.
  • the pipeline method divides the process into multiple steps, and executes each step sequentially. Since each step can be processed separately and simultaneously, the processing steps are apparently executed in parallel.
  • the pipeline method includes pipeline processing at the instruction level (instruction pipeline method) and pipeline processing at the data level (operation pipeline method). Note that the former is not an object to be used in the speech recognition system of the present invention because the program is the same as a sequential computer. The latter is a so-called vector computer, and is an object used in the speech recognition system of the present invention.
  • the multiple operation unit method has a plurality of operation units and can be executed in parallel with each other, and is widely used in recent MPUs (Microprocessor Units). Of these, hardware-scheduled ones are called single path scalar. A typical example of software scheduling is VLIW (Very Long Instruction Word). In the speech recognition system of the present invention, the latter can be realized by a force that is the center of the object or a superscalar method.
  • the multiprocessor system is a parallel computer having a plurality of processor units (elements), and can be roughly classified into a shared memory computer and a distributed memory computer.
  • the speech recognition system of the present invention can be realized by both methods, but is not suitable for a distributed memory computer. However, when each processor element is a multi-operation method or a vector-type computer described above, the speech recognition system of the present invention can be effectively realized.
  • SIMD Single Instruction stream Mul tiple Data stream
  • MIMD Multiple Instruction stream Multiple Data stream
  • the parallel algorithm does not target the SISD type described in 1 above.
  • the S SDD type software is essentially a sequential algorithm.
  • the instruction pipeline method is the only type belonging to the SSDD type.
  • the speech recognition system of the present invention is assumed to be handled by a parallel computer of the above-mentioned (1) SIMD type or (3), MI type parallel computer. As long as it is a SIMD type or MIMD type parallel computer, its implementation method does not matter, except for a distributed memory type multiprocessor parallel computer, which is not considered because it has no performance.
  • MPUs microcomputers
  • the operating frequency and the devices to be implemented there are limitations on the operating frequency and the devices to be implemented, and there is a limit to the performance improvement of conventional sequential (including instruction pipeline processing) MPUs.
  • Such a parallel MPU has, for example, a configuration as shown in FIG. Figure 1 (a) shows the bus interface 101, instruction cache 102, data cache 103, floating-point unit 104, load unit 105, storage unit 106, integer unit 107, instruction control unit 108, and
  • the configuration is such that a multimedia processing unit (MM unit) 110 capable of parallel processing is added to a normal microcomputer including the register file 109 and the like.
  • MM unit multimedia processing unit
  • the multimedia operation unit 110 includes, for example, as shown in FIG. 1 (b), a function block 120 for executing a vector type operation and a function block 130 for executing a vector reduction type operation. Where the multimedia register 125 In each of ⁇ 127 and 134, a plurality of data are managed collectively.
  • the multimedia processing unit 110 has a plurality of processing units, and can process n (at least four in the example of FIG. 1 (b)) data at a time.
  • the parallel type MPU has a relatively simple configuration (with multiple operation unit structures) with the addition of a parallel operation unit. Compared with a high-performance computer represented by a supercomputer, the parallel MPU realizes more memory access. There are many restrictions on the above.
  • Speech recognition is composed of, for example, a system as shown in FIG.
  • FIG. 2A shows an example of a system configuration using the microcomputer shown in FIG.
  • FIGS. 2A and 2B will be described later in embodiments.
  • Speech recognition is generally processed in the following sequence: feature analysis ⁇ recognition matching.
  • HMM type speech recognition a procedure for calculating the output probability of each state in the Markov model is added (see Fig. 2 (b)).
  • the audio signal 220 is divided into several sub-sections called frames (each frame often overlaps the previous and next frames), and feature extraction is performed. Is analyzed (assuming it is stationary). For example, frequency spectrum and LPC (Linear Predictive Coding) coefficients (including cepstrum) are used.
  • LPC Linear Predictive Coding
  • the feature vector sequence (observed vector sequence) obtained by the above feature analysis is associated with recognition elements (words, phonemes, etc.).
  • DP Dynamic Programming
  • HMM Hidden Markov Model
  • NN Neurons
  • HMM Hidden Markov Model
  • a state transition model represented by a Markov process (a stochastic process in which the state at time t + 1 is given only by the state at time t).
  • a left-to-right type HMM is often used, as shown in Fig. 3 (a), and this is briefly described as an example.
  • a left-to-right type HMM is used to associate observation vectors with recognition elements (hereafter described as words).
  • Model utterances For example, consider expressing the word "ai" as a left-to-right type HMM. The state s1 represents “a”, and the state s2 represents "i”. At this time, in order to express the word "ai", it can be expressed by the state transition of s1 ⁇ s2.
  • the HMM is a probabilistic model of the human vocal process in order to “represent the temporal or acoustic variations of various human words”. Therefore, the evaluation must be probabilistic. In other words, given a certain observation sequence (analysis result of the input speech), the observation sequence in the model expressing each word is It evaluates the probability (likelihood) of obtaining, and outputs the model with the highest likelihood (the word that means) as a recognition candidate.
  • a ,. ; is the state transition probability from state j to state i
  • bi (y t ) is the probability of outputting feature y t in state i
  • a t (i) is the forward probability at time t ′ state i.
  • the Viterbi method selects the path with the highest likelihood, that is, the optimal path, from among the paths that exist in multiple paths, and evaluates the path based on the likelihood.
  • This calculation can be processed by an operation with a structure similar to Baum-Vuel, as shown in the following equation (2).
  • a t + i (i) max ⁇ at (il) abi (yt + i), at (i) aubi (yt + i) ⁇ ...
  • Viterbi search is almost the same as the method to Baumou Vuel Nevertheless, the beam search shown below can be performed. It also has the advantage that it can be applied to two-stage DP (Dynamic Programming) matching.
  • Fig. 3 (b) shows the state i on the vertical axis and the frame on the horizontal axis. It shows "ai" and the second word "ao". In the figure, the black circles (hata) indicate negative nodes and the white circles ( ⁇ ) indicate active nodes.
  • the path of the state s 1—s 1—s 2 (solid route) and the state s 1—s 2—s 2 Choose the larger of the paths (dotted routes) (ie, choose the path with the highest score).
  • the score of the second word “Ao” the path with the highest score is selected. In Viterbi search, such processing is performed for all words, and the model with the highest score is output as a recognition candidate.
  • the likelihood of each model was evaluated using the optimal path.
  • a path with a very small likelihood (hereinafter, score) up to that point in the course of the process has an empirically extremely small probability of becoming the optimal path. Therefore, the method of shortening the calculation time by terminating the path search in the middle is called the beam search method in general.
  • the beam search method a method of searching a certain search window range, a method of searching for a path having a score equal to or more than a certain threshold value, and the like have been proposed. Disclosure of the invention
  • the parallel type MPU described above shows high performance in the operation of a series of data stored in a continuous area.
  • processing such as shaping the data is required once, which lowers the calculation efficiency.
  • the data to be handled is not complete (by the number of parallels), the operation is performed only on the data, and the effect of the parallel calculation cannot be exhibited.
  • Some of such parallel MPUs can perform processing such as masking without performing a part of each operation group. Calculation is required.
  • the beam search method is applied to such a parallel MPU, the following problems occur because the conventional method does not select a node to search in consideration of the processing efficiency of the parallel computer.
  • the beam width (that is, the number of states searched by the beam search, or The number of nodes on the relith is controlled.
  • the path to be searched (corresponding to a node on trellis) is always an integer of parallelism. It is selected to be twice as many consecutive nodes.
  • the nodes on the trellis are managed by a group of nodes (blocks) of an integer multiple of the degree of parallelism, and a beam search is performed by appropriately controlling this block. The block is evaluated as a block in addition to the score of each node, and the evaluation value is used to determine whether or not to search for each block.
  • this block assumes that the beam width can be varied as needed. However, since this beam width change is always performed as a continuous node group of an integer multiple of the parallelism, the number of nodes equal to the parallelism is used as the unit of handling. Then, this block is evaluated as a whole, and the beam width is varied based on the evaluation.
  • the present invention treats a series of nodes as a unit. This unit is simply called a block for convenience. Then, an evaluation is made for each "unit", and based on the evaluation, To change the beam width.
  • FIG. 1 is a block diagram showing an example of an MPU having a parallel processing function
  • Figure 2 is a hardware and software system configuration diagram showing an example of a speech recognition system.
  • Figure 3 illustrates the concept of HMM speech recognition.
  • FIG. 4 is a flowchart showing an overall view of the processing procedure of the first embodiment of the speech recognition according to the present invention.
  • FIG. 5 is a diagram for explaining the principle of block update of the first embodiment
  • FIG. 6 is a diagram for explaining the concept of the procedure 403 shown in FIG. 4,
  • FIG. 8 is a diagram showing an example of a block management list used in the first embodiment
  • FIG. 9 is a flowchart showing details of the procedure 402 shown in FIG. 4,
  • FIG. 10 is a diagram for explaining the concept of block reconstruction in the first embodiment
  • FIG. 11 is a diagram for explaining the concept 2 of block reconfiguration of the first embodiment
  • FIG. 12 is a flowchart showing details of the procedure 4 06 shown in FIG. 4,
  • FIG. 13 is a flowchart showing an overall view of the processing procedure of the second embodiment of the speech recognition according to the present invention.
  • FIG. 14 is a flowchart showing the details of the procedure 1301. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1A is a block diagram illustrating the configuration of the entire system of the MPU used in the present embodiment.
  • This MPU can be connected to an external memory via an external bus 160 via a bus interface 101.
  • the program is sent to the instruction control unit 108 via the instruction cache 102, and each processing unit of the computer is controlled based on the program.
  • the data is transferred from the data cache 103 to the register file 109 via the mouth unit 1 • 5 or the store unit 106.
  • the data sent to these registers is processed by the decimal unit 107 for integer operations and the floating-point unit 104 for floating-point numbers, and the results are stored again in the register file 109, as necessary. Is done.
  • MPU multimedia processing unit
  • the MPU used in the present embodiment is further characterized by having a multimedia processing unit (MM unit) 110 having a parallel processing function.
  • MM unit multimedia processing unit
  • FIG. 1B shows a specific example of the MM unit 110 as an example.
  • the power of a parallel mechanism of the S I MD type as an example ⁇ As described above, the same can be realized in a parallel computer excluding the distributed memory type parallel computer including the VL IW type MPU.
  • the ability to describe the ability (parallelism) that the parallel computer can process in parallel as 4 is, of course, the degree of parallelism can be set arbitrarily.
  • the MM unit 110 includes a function block 120 for executing a vector type operation and a function block 130 for executing a vector reduction type operation.
  • a plurality of data are collectively managed in the multimedia registers 125 to I27 and 134.
  • the functional block 120 has a plurality of arithmetic units, and can process n (at least four in the example of FIG. 1B) data at a time.
  • the function block 120 is sent to a multimedia register A 125 and a multimedia register B 126 via an internal bus 150 by a group of multimedia registers in a register file 109.
  • the data is divided into four parts, each of which represents an independent (separate) value. I have.
  • the same instructions are processed in parallel by arithmetic units (ALUs) 121 to 124, and the results are stored in the multimedia register C127.
  • ALUs arithmetic units
  • the operation (vector type operation) expressed by the following equation (3) can be executed in parallel.
  • n is the degree of parallelism
  • Vecter [i] is the array element x [i]
  • y is an array element indicating the operation result for [i]. .
  • the function block 130 is a function block for executing a vector reduction type operation, and is sent from the group of multimedia registers in the register file 109 to the multimedia register D 134 via the internal bus 150.
  • the ALU 131-1 to 133 form a so-called tournament processing, which is finally reduced to one scalar data and stored in the scalar register 135. For example, when it is desired to take the sum of the four data stored in the multimedia register D134, this can be realized by executing the arithmetic operation of ALU131-133.
  • the functional block 130 can execute the operation (vector operation) expressed by the following expression (4) in parallel.
  • n is the degree of parallelism
  • scaler is a scalar variable that stores the calculation result for array element x [i].
  • FIG. 2 shows an example of a speech recognition system using the MPU having the configuration shown in FIG.
  • FIG. 2A is a block diagram illustrating a hardware configuration.
  • This speech recognition system is an example constituted by a speech recognition board 201, a microphone 202 and a monitor 203.
  • the voice recognition board 201 can be realized entirely on one chip LSI.
  • the monitor 203 is not always necessary when used for, for example, a voice input device.
  • the speech recognition board 201 has AD converter 204, PU 205, ROM 206, It is constituted by a RAM 207.
  • a monitor interface (IF) 208 is further required.
  • the AD converter 204 converts the analog audio signal input from the microphone 202 into a digital signal.
  • the MPU 205 uses the MPU having the configuration shown in FIG.
  • the ROM 206 is a read-only memory, and stores programs and necessary data (for example, dictionaries and HMM parameters) of the speech recognition system.
  • the RAM 207 is a readable / writable memory. .
  • Figure 2 (b) shows the schematic configuration of the software.
  • start 210 the features of the sample speech are first analyzed in step 211 (feature analysis).
  • a speech waveform is extracted at regular intervals at regular intervals (this partial speech section is called a frame), and in this frame, the sound properties are analyzed assuming that the sound properties do not change (stationarity). .
  • the sound properties can be analyzed, for example, by frequency spectrum or LPC coefficient. That is, the frequency spectrum can be calculated by the fast Fourier transform (FFT), and the LPC coefficient can be calculated by the Levinson-Durbin recursion. Since these are generally represented by multiple parameter groups, they are called feature vectors.
  • FFT fast Fourier transform
  • the LPC coefficient can be calculated by the Levinson-Durbin recursion. Since these are generally represented by multiple parameter groups, they are called feature vectors.
  • the audio signal 220 is replaced with a feature vector for each frame.
  • the feature vector sequence is stored in the table 221 and is called an observation vector sequence.
  • the output probability is calculated by the following procedure 2 1 2. This output probability calculation can be performed in parallel with the recognition and collation by the Viterbi
  • the output probability means the probability that each state outputs a sound having a certain characteristic in the HMM. Therefore, the output probability is expressed as a function of a feature vector indicating “a feature”.
  • the feature vector is vector-quantized and the quantized vector
  • the table is referred to the quantization vector.
  • the probability function for the feature vector is calculated. The calculation result of this output probability is stored in Table 222.
  • the likelihood of each model is calculated from the observed vector sequence obtained in the feature analysis in step 2 11 and the output probability calculated in step 2 12.
  • the likelihood of the state transition sequence with the highest probability in each model (hereinafter, Viterbi score) is adopted as the likelihood of each model (Viterbi search), and is stored in Table 22 as recognition results.
  • the above likelihood (Viterbi score) can be obtained by recursively calculating the following equation (2).
  • a method of terminating the path search that is, a beam search method is employed.
  • An object of the present invention is to determine the beam search in consideration of the characteristics of a parallel computer that executes a path to be searched.
  • the number of search paths (nodes) in each model is always kept at an integer multiple of the parallelism of the parallel computer.
  • FIG. 4 shows a flowchart of a process using the beam search method in the present embodiment.
  • the parallelism is described as 4.
  • step 40 When this processing is started in 1, a search is executed simultaneously for the observation vector of the first frame and in the node of each block in step 402. That is, Viterbi search is executed in parallel for the nodes of each block.
  • Step 402 is repeatedly executed by a double repetition process (double loop) using blocks and words as control variables.
  • double loop double repetition process
  • the end of the loop is determined in step 403, and processing for the next word is started.
  • the necessity of block reconstruction is determined in step 405, and if necessary, block reconstruction is performed in step 406. Then, process the next frame.
  • step 407 the end of the search is determined in step 407, the recognition candidates are determined and output in step 408, and then in step 409, This processing ends.
  • step 406 The processing of block reconstruction in step 406 is executed at regular intervals. However, it may be performed every frame.
  • a method is assumed in which the procedure 407 is executed at a certain period, such as once every N frames.
  • step 405 the remainder system of N of the frame variable (number) is taken, and the execution of step 406 can be determined based on the value.
  • the procedure 402 becomes a triple repetition processing (for a frame, a word, and a block) if the repetition execution for the frame is included.
  • Step 406 is a mere repetition process (for frames) at regular intervals. Therefore, in the present embodiment, the processing efficiency of the procedure 402 actually determines the performance.
  • FIG. 5 (a) is an explanatory diagram showing a block evaluation method in block movement in a beam search for a state (node) belonging to the block.
  • the active nodes that are currently being searched are marked with ⁇ , and those that are not being searched are Gative nodes are represented by ⁇ .
  • the nodes A ′ to E ′ belonging to the block become active, as shown in FIG.
  • the score of node A 'can be evaluated by the score of ⁇ ⁇ ⁇ ' (self transition), and the score of node E 'can be evaluated by the score of D ⁇ E, (other transition).
  • the scores of the nodes B ′ to D ′ can be evaluated by Equation (2).
  • the number of nodes in the block is controlled to be an integral multiple of the degree of parallelism of the parallel computer, the number of nodes in the block is changed without changing the number of nodes in the block in step 402 shown in FIG.
  • the processing is executed by the block reconstruction in step 406 if necessary. Therefore, in the case of Fig. 5 (a), four new nodes are selected from the five activated nodes (block update).
  • This block can be updated in two ways, as shown on the right side of Fig. 5 (a). In this embodiment, the sum of the scores of all nodes (total score) is obtained for each block, and the larger one is selected.
  • 5 (b) is an explanatory diagram schematically showing the realization principle for performing this block update using comparison based on the total score.
  • the new block has two choices: the ability to select four nodes A 'to D', and the four nodes ⁇ 'to ⁇ '.
  • the sum of the scores is large. Consider the case of choosing the right one.
  • FIG. 6 is an explanatory diagram showing a processing principle when the procedure 402 of FIG. 4 is executed using a parallel computer based on the concept of such processing.
  • the former score can be loaded collectively if it is managed collectively in the block management list. If the state transition probability and output probability are managed as a continuous series of data, they can also be loaded collectively.
  • step 1 the self-transition score for nodes A to D can be calculated using the following equation (5).
  • the (temporary) score of the other transition is rotated one word to the left to select the optimal path (Viterbi path).
  • step 2 four parallel simultaneous maximum operations (Vecter-MAX) are performed for the three nodes at the center where the optimal path needs to be selected using the following equation (7). , Viterbi score can be calculated (for 3 nodes).
  • step 3 if the transition Next 4 other than the node D is large, the block is moved by one node. To move a block by one node, execute a right rotation of one word in the multimedia register where the above result is stored. If not, no rotation is required. The search is completed by storing the contents of this register all at once.
  • Figure 7 shows an example of handling a block with twice the number of nodes as the degree of parallelism, but the same applies to other cases.
  • the operation is performed according to the same principle as that of FIG. That is, the block is updated from the comparison of the scores at both ends of the block.
  • Figure 7 (a) shows an example of likelihood calculation for each path. Since the block has twice the number of nodes as the degree of parallelism, two vector operations are required to calculate the likelihood. This is executed for each of the own transition (Self) and other transitions (Next). Sco in other transitions Must format the data as in Figure 6. Rotation between multiple registers can be performed at high speed by using dedicated hardware.
  • Fig. 7 (a) can be realized by combining general shift instructions without using a dedicated processing device.
  • FIG. 7 (b) an example of 4 parallel blocks and 2 blocks is shown in Fig. 7 (b).
  • the scores of other transitions Nextl to Next4
  • Next5 to Next8 are respectively stored in the multimedia register.
  • the former is the one in which the multimedia register storing (Next1 to Next4) is shifted right by one word, and the one (Next5 to Next4)
  • Score data shaping can be realized by performing similar shift rotation (Fig. 7 (c)).
  • FIG. 14A shows a configuration example of the block management list.
  • an index list may be used.
  • the management list may be fixed in the memory and continuously defined.
  • the word searched for in the block (word k), the configuration of the nodes (only the starting point may be used because they are always continuous), and the score of each node (node i) are required. is there.
  • the block score and the node with the highest score that is, the maximum node (and the maximum score) are used as needed, there is an area for managing the node, but this is not always necessary.
  • FIG. 9 shows the above process in a specific flow. As shown in FIG.
  • step 402 is executed following the step 401 (or the return from the step 403, the step 404, and the step 407).
  • step 4 2 is performed in the order of the management list.
  • the likelihood calculation of the own transition of each node (Node 1 to 4) (steps 911 to 914) and the likelihood calculation of the other transition (steps 921 to 924) are performed in parallel. Is performed.
  • step 901 a vertical link is checked, and if there is a link, the process proceeds to the list. In that case, repeat steps 911 to 914 and steps 921 to 924 again. If there is no vertical link, perform data shaping in step 102. This data shaping is performed by the method shown in Fig. 6 when there is no vertical link, and by the method shown in Fig. 7 (b) when there is a vertical link.
  • a Viterbi score is calculated from the comparison of each pass (the calculation takes the maximum value) (procedures 931 to 934). However, at the node corresponding to the starting point of the block, the reblock score is evaluated by calculating the same structure (calculating the maximum value) as the calculation of the Viterbi score. This is repeated again if there is a vertical link (step 904).
  • step 905 the relocation condition is determined by the method shown in FIGS. 5, 6, and 7, and based on this condition determination, in step 906, the node corresponding to the start point of the block is determined. Move blocks from the score. Specifically, the node data in the block list can be updated and processed by data shaping (data shaping by the method shown in Figs. 6 and 7) accompanying block movement.
  • the block reconfiguration in step 406 in FIG. 4 will be described.
  • sorting is used together, but it can be realized without using sorting.
  • the node with the highest score is expressed as a representative score (the maximum score shown in Fig. 8 (a)), and that node is expressed as a representative node (the maximum node shown in Fig. 8 (a)).
  • this representative score is regarded as the score of the block, and the block is reconstructed using the representative score of each block.
  • a threshold value ( ⁇ ) for controlling the deletion and reduction of a block and a threshold value ( ⁇ max) for controlling the expansion of a block are controlled. These are all functions of time (frames).
  • emin is given by the following equation (8)
  • emax is given by the following equation (9).
  • Figure 10 (a) shows the method of block extension. If the representative score of a block is larger than Qmax during block reconstruction, block expansion is performed.
  • max is a function of the number of linked management lists (N when the node of the block is expressed by the parallelism XN), a different evaluation is given to each block. This is an example of extension not being concentrated on a specific block.
  • Nodes in the new list are negative nodes that have not been searched so far, so write a score equivalent to 0.
  • log likelihood is used in speech recognition. In this case, a value of 1 (sometimes expressed as 2) is set.
  • Figure 1 ⁇ (b) shows the behavior of the search by block expansion when initialized as described above. In essence, if the path from the newly set node is set to a non-existent force, score 0 (logarithmic value ⁇ ), the path with the lowest evaluation out of the two paths reaching the same node will be cut off, The path from the newly set node is cut off, and the path from the adjacent active node is selected.
  • score 0 logarithmic value ⁇
  • FIG. 11 illustrates block reduction. If the representative score of a block is smaller than ⁇ during block reconstruction, block reduction (or deletion) is performed.
  • ⁇ ⁇ ⁇ is a function of the number of linked management lists ( ⁇ when the node of the block is represented by the degree of parallelism ⁇ ⁇ ), so different evaluations are given to each block. This is the same as for block expansion.
  • we take the method of reducing the management list one by one. Therefore, when ⁇ > 2, block reduction is performed, and when N 1, block deletion is performed.
  • a new block list is created.
  • This block has _ — 1 vertical links. Specifically, a new memory is allocated, the pointer is updated, and the link relationship is set. Next, a node is selected. In the following example, the representative node is placed at the center of the new block. This can be easily calculated by any parallel computer that can perform vector reduction type parallel operations (VRmax and VRargmax). Even in the case of N> 2, this can be combined with the tournament type.
  • FIG. 11 (a) we explain the node selection method when the block is reduced.
  • the control for reducing two blocks to one block is shown.
  • the largest node is left and placed at the center.
  • Vector reduction VRmax operation (s VRmax ⁇ xl, 2, x3, x4 ⁇ : 1, 2, x3, x4 are multimedia (Stored in a register, s stored in a scalar register).
  • the maximum node may be selected by performing tournament processing of VRmax calculation. That is, first, the maximum node is obtained for each block. If this is, for example, maxl (maximum node of block 1) and maX2 (maximum node of block 2), each is sequentially copied to another multimedia register (called a merge or pack). ), But insert 0 (- ⁇ for logarithmic area) into the extra area, that is, mask it. Again, the maximum node is obtained by VRmax calculation. In this way, when the degree of parallelism is 4, the maximum value of 4 blocks (16 nodes) can be obtained by two-stage VRmax calculation processing. If there are more than 5 blocks, repeat the same process one more time. In this case, up to 16 blocks (64 nodes) requires only three stages.
  • a continuous node is selected so that this is the center, and nodes constituting a new block are arranged.
  • Fig. 11 (a) if the third node from the bottom is the maximum, the 25th node from the bottom is selected.
  • n is the degree of parallelism
  • i is the node number
  • N is the number of nodes in the block represented by the degree of parallelism XN.
  • the created list is inserted (replaced) into the linked list. This can be done by updating the pointer of the list to be replaced. Specifically, the address of the list linked to the old block is copied to the new list (Copy 3 in the figure), and at the same time, the pointer of the link destination (the list of link destinations is the address of the old list). Is saved) (that is, rewrite to the address of the new list).
  • FIG. 12 shows a series of flows (step 406) of the above block reconstruction. If it is determined in step 405 shown in FIG. 4 that the frame undergoes block reconfiguration, step 406 is executed.
  • step 1221 the first block force (of the horizontal link list) is selected and processed.
  • a block score is calculated. This is done with a vector reduction type maximum operation.
  • Step 1 201 controls the block It is repeatedly executed by a repetition process with control variables. When all the block forces have been processed, the end of the loop is determined in step 122, and the flow proceeds to the next step 122.
  • block expansion 1 203 a new management list is created, and adjacent nodes are selected and score 0 (log value 1) is initialized, as shown in Fig. 10 (a). When this is done, proceed to step 1207.
  • step 1204 determines whether the block is reduced or deleted.
  • the block representative score satisfies the condition of equation (8), it is determined that block reduction / deletion is performed, and block reduction / deletion is performed in step 125.
  • N> 2 the block is reduced (the management list remains), so the procedure proceeds to step 127.
  • step 127 a new link list is constructed.
  • step 122 the procedure goes from step 122 to the end judgment of step 122. Then, processing proceeds to the next unreconstructed block.
  • step 1209 the procedure proceeds to step 407 shown in FIG.
  • FIG. 13 is an overall view of a processing procedure showing another embodiment (Embodiment 2) of the speech recognition system according to the present invention, which is slightly different from the processing procedure of Embodiment 1 shown in FIG. I have.
  • the block score is evaluated for each search of each block, and as a result, when a certain condition is satisfied, reconstruction is executed.
  • the block is controlled by a single threshold.
  • This threshold is ⁇ Put. This can be calculated, for example, as shown in the following formula (11).
  • the above function is usually set so that p (t) decreases as t increases (for example, a linear function with a negative slope). Since the Viterbi score is a conditional probability value, the score (probability) tends to decrease as the search progresses. Therefore, the threshold value to be evaluated is also set to “decrease as t increases” so that those with relatively small scores can be excluded in each frame.
  • the absolute value (also called distance) of the log probability (becomes negative) is used as the score.
  • p (t) is set to increase as t increases.
  • Block restructuring is performed to keep blocks constant by scrap & build.
  • Step 1301 is executed after the parallel Viterbi search of step 402 shown in FIG.
  • FIG. 14 shows the flow of the process of the step 1301.
  • a block score is calculated based on the results of the search.
  • the representative score may be used as in the first embodiment, but here, as another example, the sum total (average value) of the scores will be used.
  • step 1402 The sum of the scores is determined in step 1402, and when the condition of the equation (11) is satisfied, the block is reconstructed. That is, the block is reduced or deleted in step 144. Then, in step 1443, instead of the block that has been deleted or reduced, the block having the largest score in the block that has not yet been block-expanded is expanded.
  • the linked list is sorted (to be described in detail later). Therefore, a list that is not block-expanded in descending order may be searched.
  • the block is deleted in step 144. Unless the node is represented by the parallel degree XN, N is 1), the management block must be linked to the link list unless it is Is done.
  • Step 1406 and step 1407 are processing for proper placement of the link list.
  • the link list is arranged in order using bubble sort.
  • bubble sorting is performed by comparing the sizes in order from A, and when something smaller than D is found, This is the sort method to be inserted. For example, D is compared with A and B in order. If A> D and B> D respectively, and finally C ⁇ D, then D is inserted between B and C.
  • step 1407 specifically, this magnitude comparison is made. Based on the result, if it is not appropriate (if the conditions are not satisfied), the procedure returns to step 1406 to access the next link list I do. By repeating this, the link list is sorted. Sorting has advantages such as enabling scrap & build and facilitating output of recognition candidates in step 408 shown in FIG.
  • the expanded block can be sorted with the new score at the time of the next search. Therefore, after step 1403, the procedure moves to step 400 shown in FIG.
  • a search node is selected and data is managed according to the characteristics of the parallel computing unit in the parallel microcomputer used, so that beam search with high parallel processing efficiency can be realized. . Since the structure of a block (a block of a series of nodes) corresponds to the register that stores vector variables, the loading and storage of vector variables can be performed collectively.
  • the method of the present invention is very efficient.
  • the number of nodes handled as blocks is an integer multiple of the degree of parallelism, but since this is the maximum value of the number of nodes that can be processed in the same batch execution, the same amount of computation (excluding block management costs) Of search nodes.
  • the beam width can be varied for each recognition element such as a word or phoneme (however, it is an integer multiple of the degree of parallelism), unnecessary search can be omitted. For this reason, similar to the conventional beam search of the variable beam width type (eg, the branch based on the threshold is the re-method), it is possible to perform the search while suppressing the number of search nodes and without deteriorating the recognition performance.

Abstract

When beam searching in speech recognition using a hidden Markov model (HMM) is performed, speech signals of each frame are divided into partial sections of recognition elements such as words, or phonemes, and the width of the beams in each frame are so controlled as to have a value which is an integral multiple of the degree of parallel processing which is the number of arithmetic processings executed simultaneously by a parallel microcomputer. That is, blocks extracted from a series of continuous nodes in a group of search paths (nodes on a trellis) whose number is an integral multiple of the degree of parallel processing are managed by using a table, and the search block in the next frame is determined in each frame to execute efficient beam searching. In this case, the beam width may be adjusted within a range of an integral multiple of the degree of parallel processing if necessary. Since search nodes are selected and data are managed in accordance with the characteristics of a parallel arithmetic unit, the speech recognition system which uses a parallel computer and which processes speech recognition using an HMM with beam searching of high parallel processing efficiency is provided.

Description

明 細 書 並列型マイクロコンピュータを用いた音声認識システム 技術分野  Description Speech recognition system using a parallel microcomputer
本発明は並列型マイク口コンピュータを用いた音声認識システムに係り、 特に、 隠れマルコフモデル (Hi dden Markov Models: HMM ) を用いた音声認識を、 並 列処理機能を有するマイクロコンピュータ (並列型 M P U ) を用いて効率的に実 現した音声認識システムに関する。  The present invention relates to a speech recognition system using a parallel microphone mouth computer, and more particularly to a speech recognition system using a hidden Markov model (HMM), a microcomputer having a parallel processing function (parallel MPU). The present invention relates to a speech recognition system that is efficiently realized by using the method.
なお、 本発明は、 上記で示したマイクロコンピュ一タはもとより、 べク トル型 スーパコンピュータや共有メモリ型マルチプロセッサ並列計算機をも対象とする 力、 いわゆる分散メモリ型並列計算機は想定していない。 背景技術  It should be noted that the present invention does not assume a so-called distributed memory type parallel computer which is applicable not only to the above-mentioned microcomputer but also to a vector type super computer and a shared memory type multiprocessor parallel computer. Background art
1 . まず、 従来の音声認識システムの説明に入る前に、 音声認識システムで一般 的に用いられる並列計算機および並列処理機能を有するマイクロコンピュータシ ステムについて概説する。  1. First, before starting to explain conventional speech recognition systems, an overview of a parallel computer and a microcomputer system with parallel processing functions that are generally used in speech recognition systems will be given.
1 . 1 並列計算機  1.1 Parallel computer
並列に処理を行う計算機としては、 ( 1 ) 並列処理の実現方法、 および ( 2 ) 命令の流れとデータの流れ、 の違いによりそれぞれ分類すると、 次のようなもの が知られている。  Computers that perform parallel processing are known as follows, classified according to the differences between (1) the method of realizing parallel processing and (2) the flow of instructions and the flow of data.
( 1 ) 並列処理の実現方法による分類  (1) Classification by parallel processing implementation method
並列計算方式は、 命令パイプライン方式、 複数演算ュニッ卜方式 (スーパスカ ラ、 V L I W (Very Long Instruction Word) 等:前者はハードウェア、 後者は ソフトウエアでスケジューリングされる) 、 演算パイプライン方式 (べク トル計 算機) 、 マルチプロセッサ方式等が実現されている。 パイプライン方式は、 処理過程を複数のステップに分割し、 各ステップごとに 逐次的に実行する。 各々のステップでは別個に同時処理できるため、 見かけ上、 処理過程が並列に実行される。 パイプライン方式には、 命令レベルでのパイプラ イン処理 (命令パイプライン方式) とデータレベルでのパイプライン処理 (演算 パイプライン方式) がある。 なお、 前者は、 プログラム上は逐次型計算機と変わ らないため、 本発明の音声認識システムで用いる対象ではない。 後者は、 いわゆ るべク トル計算機であり、 本発明の音声認識システムで用いる対象となる。 The parallel computing method is an instruction pipeline method, a multiple operation unit method (super color, VLIW (Very Long Instruction Word), etc .: the former is scheduled by hardware, the latter is scheduled by software), an operation pipeline method (vector Torr computer), multi-processor system, etc. have been realized. The pipeline method divides the process into multiple steps, and executes each step sequentially. Since each step can be processed separately and simultaneously, the processing steps are apparently executed in parallel. The pipeline method includes pipeline processing at the instruction level (instruction pipeline method) and pipeline processing at the data level (operation pipeline method). Note that the former is not an object to be used in the speech recognition system of the present invention because the program is the same as a sequential computer. The latter is a so-called vector computer, and is an object used in the speech recognition system of the present invention.
複数演算ュニット方式は、 演算ュニッ卜が複数個あってそれぞれ並列に実行で きるもので、 近年の M P U (Microprocessor Uni t)で広く採用されている。 この うち、 ハードウェアスケジューリングされるものをス一パスカラという。 また、 ソフトウエアスケジューリングされるものの代表例が V L I W (Very Long Instruct ion Word) である。 なお、 本発明の音声認識システムでは、 後者が対象 の中心となる力、 スーパスカラ方式でも実現は可能である。  The multiple operation unit method has a plurality of operation units and can be executed in parallel with each other, and is widely used in recent MPUs (Microprocessor Units). Of these, hardware-scheduled ones are called single path scalar. A typical example of software scheduling is VLIW (Very Long Instruction Word). In the speech recognition system of the present invention, the latter can be realized by a force that is the center of the object or a superscalar method.
マルチプロセッサ方式は、 複数のプロセッサユニット (エレメント) を持つ並 列計算機であり、 共有メモリ型計算機と分散メモリ型計算機に大別できる。 なお、 本発明の音声認識システムは、 両方の方式でも実現できるが、 分散メモリ型計算 機には適していない。 ただし、 各プロセッサエレメントが、 先に示した複数演算 方式やべクトル型の計算機の場合、 本発明の音声認識システムを有効に実現でき る。  The multiprocessor system is a parallel computer having a plurality of processor units (elements), and can be roughly classified into a shared memory computer and a distributed memory computer. The speech recognition system of the present invention can be realized by both methods, but is not suitable for a distributed memory computer. However, when each processor element is a multi-operation method or a vector-type computer described above, the speech recognition system of the present invention can be effectively realized.
( 2 ) 命令 ·データの流れによる分類  (2) Instructions ・ Classification by data flow
上記の諸方式において、 ソフトウェア (アルゴリズム) の観点からは、 これら の並列方式が如何なる処理を並列に実行できるかが問題となる。 このような視点 から、 命令の流れとデータの流れに着目し分類すると、 以下のようになる。  In the above methods, from the viewpoint of software (algorithm), what kind of processing these parallel methods can execute in parallel becomes a problem. From this point of view, the classification can be as follows, focusing on the flow of instructions and the flow of data.
① S I S D ( Single Instruction stream Singl e Data stream) 型  ① S I S D (Single Instruction stream Single Data stream) type
:単一の命令により単一のデータが同時に処理される方式  : A method in which single data is processed simultaneously by a single instruction
② S I M D (Single Instruction stream Mul tiple Data stream) 型 :単一の命令により複数のデータが同時に処理される方式 ③ M I MD (Multiple Instruction stream Multiple Data stream) 型② SIMD (Single Instruction stream Mul tiple Data stream) type : A method in which multiple data are processed simultaneously by a single instruction ③ MIMD (Multiple Instruction stream Multiple Data stream) type
:複数の命令により複数のデータが同時に処理される方式 : A method in which multiple data are processed simultaneously by multiple instructions
並列アルゴリズムでは、 上記①の S I SD型は対象としていない。 S I SD型 のソフトゥヱァは、 本質的に逐次アルゴリズムである。 上記 ( 1 ) で示した並列 処理の実現方法のうち、 命令パイプライン方式が唯一 S I SD型に属する。 本発明の音声認識システムは、 上記②の S I MD型あるいは③の, M I 型の 並列計算機での取り扱いを想定している。 S I MD型あるいは M I MD型の並列 計算機であれば、 その実現方法は問わないが、 例外として、 分散メモリ型マルチ プロセッサ並列計算機では、 性能が出ないため対象とはしない。  The parallel algorithm does not target the SISD type described in ① above. The S SDD type software is essentially a sequential algorithm. Of the parallel processing methods described in (1) above, the instruction pipeline method is the only type belonging to the SSDD type. The speech recognition system of the present invention is assumed to be handled by a parallel computer of the above-mentioned (1) SIMD type or (3), MI type parallel computer. As long as it is a SIMD type or MIMD type parallel computer, its implementation method does not matter, except for a distributed memory type multiprocessor parallel computer, which is not considered because it has no performance.
1. 2 並列処理機能を有するマイクロコンピュータシステム  1.2 Microcomputer system with parallel processing function
近年では、 画像 ·音声等のマルチメディア処理向けに、 高性能のマイクロコン ピュータ (MPU) が求められている。 しかし、 一方で、 動作周波数や実現デバ イスの制約があり、 従来の逐次型 (命令パイプライン処理を含む) MPUでは、 性能向上に限界がある。  In recent years, high-performance microcomputers (MPUs) have been required for multimedia processing of images and sounds. However, on the other hand, there are limitations on the operating frequency and the devices to be implemented, and there is a limit to the performance improvement of conventional sequential (including instruction pipeline processing) MPUs.
このような環境の中で、 特定の型の計算処理能力を向上させるため、 並列処理 型のマルチメディア演算ュニッ卜を付加する事例が多くなつている。  In such an environment, in order to improve the processing capacity of a specific type, there are many cases where a multimedia processing unit of a parallel processing type is added.
このような並列型 MPUは、 例えば、 図 1に示すような構成をしている。 図 1 ( a) は、 バスィンタフエース 1 0 1、 命令キャッシュ 102、 データキヤッシ ュ 103、 浮動小数ュニット 104、 ロードユニット 105、 ストァュ二ット 1 06、 整数ュニッ卜 107、 命令制御ュニット 108、 およびレジスタファイル 109などから成る通常のマイクロコンピュータに、 並列処理可能なマルチメデ ィァ演算ュニット(MMュニッ卜) 1 10を付加した構成になっている。  Such a parallel MPU has, for example, a configuration as shown in FIG. Figure 1 (a) shows the bus interface 101, instruction cache 102, data cache 103, floating-point unit 104, load unit 105, storage unit 106, integer unit 107, instruction control unit 108, and The configuration is such that a multimedia processing unit (MM unit) 110 capable of parallel processing is added to a normal microcomputer including the register file 109 and the like.
マルチメディア演算ユニット 1 10は、 例えば、 図 1 (b)に示すように、 べク トル型演算を実行する機能ブロック 1 20と、 ベクトルリダクション型演算を実 行する機能ブロック 130とからなる。 ここで、 マルチメディアレジスタ 125 〜 1 27および 134には、 複数のデータが一括して管理されている。 このマル チメディア演算ユニット 1 10には演算器が複数個あり、 一度に n個の (図 1 ( b ) の例では、 4個) データ処理が可能である。 The multimedia operation unit 110 includes, for example, as shown in FIG. 1 (b), a function block 120 for executing a vector type operation and a function block 130 for executing a vector reduction type operation. Where the multimedia register 125 In each of ~ 127 and 134, a plurality of data are managed collectively. The multimedia processing unit 110 has a plurality of processing units, and can process n (at least four in the example of FIG. 1 (b)) data at a time.
このように、 並列型 MPUでは、 比較的簡単な (複数演算ユニット構造を持つ) 並列演算ュニットを付加した構成をしており、 スーパコンピュータに代表される 高性能計算機に比べ、 メモリアクセスなど、 実現上の制約が多い。  As described above, the parallel type MPU has a relatively simple configuration (with multiple operation unit structures) with the addition of a parallel operation unit. Compared with a high-performance computer represented by a supercomputer, the parallel MPU realizes more memory access. There are many restrictions on the above.
2. 次に、 一般的な HMM音声認識システムに関して簡単に説明する。 2. Next, a brief description of a general HMM speech recognition system will be given.
2. 1 音声認識システム 2.1 Speech recognition system
音声認識は、 例えば、 図 2に示すようなシステムで構成される。 図 2 ( a) は、 図 1で示したマイコンを用いたシステム構成の一例である。 なお、 図 2 ( a) , (b) の詳細に関しては、 後述の実施例において説明する。  Speech recognition is composed of, for example, a system as shown in FIG. FIG. 2A shows an example of a system configuration using the microcomputer shown in FIG. The details of FIGS. 2A and 2B will be described later in embodiments.
音声認識は、 一般に、 特徴分析 ^ 認識照合 という手順で処理される。 H M M型音声認識では、 マルコフモデルにおける各状態の出力確率を計算する手順 が付加される (図 2 (b) 参照) 。  Speech recognition is generally processed in the following sequence: feature analysis ^ recognition matching. In HMM type speech recognition, a procedure for calculating the output probability of each state in the Markov model is added (see Fig. 2 (b)).
特徴分析では、 音声信号 220をフレームと呼ばれる幾つかの部分区間に分割 して (各フレームは、 前後のフレームとオーバーラップさせることが多い) 特徴 抽出 2 1 1を行い、 そのフレームにおける音の性質を (定常であるとみなして) 分析する。 例えば、 周波数スぺク トルや LP C (Linear Predictive Coding) 係 数 (ケプストラムを含む) が用いられる。  In the feature analysis, the audio signal 220 is divided into several sub-sections called frames (each frame often overlaps the previous and next frames), and feature extraction is performed. Is analyzed (assuming it is stationary). For example, frequency spectrum and LPC (Linear Predictive Coding) coefficients (including cepstrum) are used.
認識照合では、 上記の特徴分析で得られた特徴べク トル列 (観測べクトル列) と認識要素 (単語、 音素 etc.) を対応付ける。  In recognition matching, the feature vector sequence (observed vector sequence) obtained by the above feature analysis is associated with recognition elements (words, phonemes, etc.).
これらの方法として、 D P (Dynamic Programing)マッチング、 HMM(Hidden Markov Model) 、 NN (Neural Networks)などが提案されている。  As these methods, DP (Dynamic Programming) matching, HMM (Hidden Markov Model), NN (Neural Networks), and the like have been proposed.
2. 2 HMM音声認識 2 . 2 . 1 HMMの意味 2.2 HMM speech recognition 2.2.1 Meaning of HMM
隠れマルコフモデル (Hidden Markov Model : HMM ) は、 マルコフ過程 (時 点 t + 1の状態が、 時点 tの状態によってのみ与えられる確率過程) で表現され る状態遷移モデルである。 音声認識では、 図 3 ( a ) に示したような、 l eft- to- right 型の H MMが用いられることが多いため、 これを例に簡単に説明する。  The Hidden Markov Model (HMM) is a state transition model represented by a Markov process (a stochastic process in which the state at time t + 1 is given only by the state at time t). In speech recognition, a left-to-right type HMM is often used, as shown in Fig. 3 (a), and this is briefly described as an example.
H MM音声認識では、 観測べク トルと認識要素 (以下、 単語として説明する) を対応させるため、 図 3 ( a ) のように、 left- to- right 型の H MMを用いて、 人の発声をモデル化する。 例えば、 「あい」 という単語を left- to- right 型の H MMで表現することを考える。 状態 s 1は 「あ」 、 状態 s 2は 「い」 を表現す る。 この時 「あい」 という単語を表現するためには、 s 1 ^ s 2の状態遷移で 表現できることになる。  In HMM speech recognition, as shown in Fig. 3 (a), a left-to-right type HMM is used to associate observation vectors with recognition elements (hereafter described as words). Model utterances. For example, consider expressing the word "ai" as a left-to-right type HMM. The state s1 represents "a", and the state s2 represents "i". At this time, in order to express the word "ai", it can be expressed by the state transition of s1 ^ s2.
もっとも、 この場合、 フレーム 1で 「あ」 、 フレーム 2で 「い」 を発声した場 合しか表現できない。 そこで、 様々な時間的な 「ばらつき」 を表現するため、 自 分に対する状態遷移と隣に対する状態遷移を確率的に表現する。 このようにする と、 「あ」 が nフレーム継続した後に、 「い」 が mフレーム継続して終了する発 声パターンが、 確率的に (各パターンの生成確率という形で) 表現できる。 また、 「あ」 という発声についても、 老若男女によって、 その音響的性質は大 きく異なる。 そこで、 それらの統計的な出現パターンから、 「あ」 という発声を 表現する状態 s 1における特徴べクトルの出力パターンを確率的に表現すること で、 様々な人の発声パターンをモデル化することができる。 なお、 図 3 ( a ) に おいて第 1単語 「あい」 、 第 2単語 「あお」 と示した単語は、 辞書に格納されて いるモデル化した単語の一例を示したものである。  However, in this case, it can be expressed only when "A" is uttered in frame 1 and "i" is uttered in frame 2. Therefore, in order to express various temporal “variations”, state transitions for oneself and state transitions for neighbors are represented stochastically. In this way, an utterance pattern in which “a” continues for m frames after “a” continues for n frames can be stochastically expressed (in the form of the generation probability of each pattern). The acoustic characteristics of the utterance "a" also differ greatly depending on the age and gender. Therefore, it is possible to model the utterance patterns of various people by stochastically expressing the output pattern of the feature vector in the state s1 expressing the utterance of “a” from the statistical appearance patterns. it can. Note that, in FIG. 3 (a), the words indicated by the first word “Ai” and the second word “Ao” are examples of modeled words stored in the dictionary.
このように、 HMMは 「様々な人の言葉の時間的あるいは音響的ばらつきを表 現」 するために、 人の発声過程を確率的にモデル化したものである。 従って、 当 然その評価も確率的にならざるを得ない。 すなわち、 ある観測系列 (入力音声の 分析結果) が与えられた場合、 各単語を表現するモデルにおいて、 当該観測系列 が得られる確率 (尤度) を評価し、 最も尤度の高いモデル (の意味する単語) を、 認識候補として出力する。 In this way, the HMM is a probabilistic model of the human vocal process in order to “represent the temporal or acoustic variations of various human words”. Therefore, the evaluation must be probabilistic. In other words, given a certain observation sequence (analysis result of the input speech), the observation sequence in the model expressing each word is It evaluates the probability (likelihood) of obtaining, and outputs the model with the highest likelihood (the word that means) as a recognition candidate.
2. 2. 2 ビタビ (Viterbi) サーチ  2.2.2 Viterbi search
HMM音声認識で 「最も尤度の高いモデルを、 認識候補として出力する」 ため には、 各々のモデルごとに尤度を計算する必要がある。 与えられた観測系列が得 られる状態遷移の順序 (=状態遷移系列:以下、 パス) は、 通常 「複数経路」 が 存在するため、 尤度を厳密に求めるには 「各々のパスの尤度の和」 を計算する必 要がある。 これを、 順序良く計算するのが バウム―ヴエルへ (Baum- Welch) の 方法である。 具体的には、 次の式 ( I ) を再帰的に実行することにより計算でき る。 i(i)  In order to output the model with the highest likelihood as a recognition candidate in HMM speech recognition, it is necessary to calculate the likelihood for each model. Since the order of state transitions (= state transition sequence: hereinafter, paths) from which a given observation sequence can be obtained, there is usually “multiple paths”. It is necessary to calculate the “sum”. Baum-Welch's method is to calculate this in order. Specifically, it can be calculated by recursively executing the following equation (I). i (i)
( 1 ) a t+i(
Figure imgf000008_0001
ただし、 式 ( 1 ) において、
(1) a t + i (
Figure imgf000008_0001
However, in equation (1),
a,. ; は状態 jから状態 iへの状態遷移確率であり、 a ,. ; is the state transition probability from state j to state i,
b i (y t) は状態 iにおいて特徴 y tを出力する確率であり、 bi (y t ) is the probability of outputting feature y t in state i,
a t ( i ) は時刻 t '状態 iにおける前向き確率である。 a t (i) is the forward probability at time t ′ state i.
一方、 ビタビの方法は、 複数経路存在するパスのうち最も尤度の高いパスすな わち最適パスを選択し、 その尤度によって評価する。 この計算は、 次の式 (2) のように、 バウム―ヴエルへと似たような構造の演算で処理できる。  On the other hand, the Viterbi method selects the path with the highest likelihood, that is, the optimal path, from among the paths that exist in multiple paths, and evaluates the path based on the likelihood. This calculation can be processed by an operation with a structure similar to Baum-Vuel, as shown in the following equation (2).
a t+i(i)=max{ a t(i-l) a b i(yt+i), a t(i) a u b i(yt+i)} … (2) ビタビサーチは、 バウムーヴエルへの方法と殆ど認識性能力変わらないにも拘 らず、 以下で示すビーム(Beam) サーチが可能になる。 また、 2段 D P (Dynamic Programming) マッチングへの適用が可能になる等の利点がある。 図 3 (b)は、 縦軸に状態 iを横軸にフレームを採り、 複数経路存在するパスの一例を第 1単語 「あい」 、 および第 2単語 「あお」 について示したものである。 なお、 同図にお いて、 黒丸 (秦) はネガティブノード、 白丸 (〇) はアクティブノードをそれぞ れ示している。 第 1単語 「あい」 のスコアでは、 図 2 ( b ) で述べた特徴分析の 結果に従って、 状態 s 1— s 1— s 2の経路 (実線ルート) と状態 s 1— s 2— s 2の経路 (点線ルート) の大きい方を選択する (すなわち、 最高スコアのパス を一つ選択する) 。 同様にして、 第 2単語 「あお」 のスコアにおいても最高スコ ァのパスを選択する。 ビタビサーチでは、 このような処理を全ての単語について 行い、 最大のスコアとなるモデルを認識候補として出力する。 a t + i (i) = max {at (il) abi (yt + i), at (i) aubi (yt + i)}… (2) Viterbi search is almost the same as the method to Baumou Vuel Nevertheless, the beam search shown below can be performed. It also has the advantage that it can be applied to two-stage DP (Dynamic Programming) matching. Fig. 3 (b) shows the state i on the vertical axis and the frame on the horizontal axis. It shows "ai" and the second word "ao". In the figure, the black circles (hata) indicate negative nodes and the white circles (〇) indicate active nodes. According to the score of the first word “Ai”, according to the result of the feature analysis described in Fig. 2 (b), the path of the state s 1—s 1—s 2 (solid route) and the state s 1—s 2—s 2 Choose the larger of the paths (dotted routes) (ie, choose the path with the highest score). Similarly, for the score of the second word “Ao”, the path with the highest score is selected. In Viterbi search, such processing is performed for all words, and the model with the highest score is output as a recognition candidate.
2 . 2 . 3 ビームサーチ  2.2.3 Beam search
上記のビタビサーチでは、 各モデルの尤度を最適パスで評価した。 この最適パ スを評価する場合、 途中の過程において、 そこまでの尤度 (以下、 スコア) が著 しく小さいパスは、 経験的に最適パスになる確率力極めて小さい。 そこで、 この ようなパスの探索を途中で打ち切ることにより計算時間を短縮する方法を、 全般 的にビームサーチ法と呼んでいる。  In the above Viterbi search, the likelihood of each model was evaluated using the optimal path. When evaluating this optimal path, a path with a very small likelihood (hereinafter, score) up to that point in the course of the process has an empirically extremely small probability of becoming the optimal path. Therefore, the method of shortening the calculation time by terminating the path search in the middle is called the beam search method in general.
ビームサーチ法には、 一定の探索窓の範囲を探索するものや、 スコアが 「ある しきい値」 以上のパスを探索する方法などが提案されている。 発明の開示  As the beam search method, a method of searching a certain search window range, a method of searching for a path having a score equal to or more than a certain threshold value, and the like have been proposed. Disclosure of the invention
上記で示した並列型 M P Uでは、 一般に、 連続した領域に格納されている一連 のデータ同士の演算には高い性能を示す。 しかし、 データの格納されている領域 が不連続な場合、 一旦データを整形するなどの処理が必要になるため、 計算効率 が低下する。 また、 取り扱うデータが (並列数だけ) 揃わない場合、 当該データ に対してのみの演算となるため、 並列計算の効果が発揮できない。  In general, the parallel type MPU described above shows high performance in the operation of a series of data stored in a continuous area. However, if the area where the data is stored is discontinuous, processing such as shaping the data is required once, which lowers the calculation efficiency. In addition, if the data to be handled is not complete (by the number of parallels), the operation is performed only on the data, and the effect of the parallel calculation cannot be exhibited.
なお、 このような並列型 M P Uの中には、 各々の演算群のうち一部を実行しな レ、、 マスキングのような処理を行えるものもあるが、 この場合でもマスクの設定 などの不要な計算が必要となる。 このような並列型 M P Uにビームサーチ法を適用する場合、 従来の方法は並列 計算機の処理効率を考慮して探索するノードを選択していないため、 以下のよう な問題が生じる。 Some of such parallel MPUs can perform processing such as masking without performing a part of each operation group. Calculation is required. When the beam search method is applied to such a parallel MPU, the following problems occur because the conventional method does not select a node to search in consideration of the processing efficiency of the parallel computer.
( 1 ) 不連続データに対するアクセスが多発する。  (1) Access to discontinuous data occurs frequently.
( 2 ) 端点処理の効率が低下する。  (2) The efficiency of end point processing decreases.
要するに、 計算量を削減するために探索ノードを減らしても、 並列効率の低下 や、 余分な処理が生じて、 計算効率の視点から損失が大きくなる。 .  In short, even if the number of search nodes is reduced to reduce the amount of computation, the parallel efficiency decreases and extra processing occurs, resulting in a large loss from the viewpoint of computation efficiency. .
これに対して、 本発明に係る音声認識システムでは、 並列計算機の処理効率を 考慮し、 実現する並列計算機の特性に応じてビーム幅 (すなわち、 ビームサーチ で探索している状態の数、 もしくは卜レリス上のノードの数) を制御することを 特徴としている。 具体的には、 実現する並列計算機が同時に実行できる演算の数 (以下、 並列度と呼ぶ) を基準にし、 探索するパス (卜レリス上ではノードに対 応する) 群が、 常に並列度の整数倍の連続したノード群となるように選択する。 また、 この制御を実現する一つの簡単な方法として、 トレリス上のノードを、 並列度の整数倍のノード群 (ブロック) で管理し、 このブロックを適宜制御して ビームサーチを行う。 当該ブロックには、 各ノードのスコアの他に、 ブロックと しての評価を行い、 この評価値をもって、 探索するか否かをブロックごとに判断 する。  On the other hand, in the speech recognition system according to the present invention, considering the processing efficiency of the parallel computer, the beam width (that is, the number of states searched by the beam search, or The number of nodes on the relith is controlled. Specifically, based on the number of operations that can be performed simultaneously by the realizing parallel computer (hereinafter referred to as parallelism), the path to be searched (corresponding to a node on trellis) is always an integer of parallelism. It is selected to be twice as many consecutive nodes. In addition, as one simple method for realizing this control, the nodes on the trellis are managed by a group of nodes (blocks) of an integer multiple of the degree of parallelism, and a beam search is performed by appropriately controlling this block. The block is evaluated as a block in addition to the score of each node, and the evaluation value is used to determine whether or not to search for each block.
このブロックは、 いわゆる一定探索範囲 (ビーム幅) を持つ探索窓とは違い、 必要に応じてビーム幅を可変することを想定している。 ただし、 このビーム幅の 可変も常に並列度の整数倍の連続したノード群となるよう実行するため、 並列度 と等しい個数のノードを取り扱いの単位とする。 そして、 このブロックを全体と して評価し、 その評価に基づいて、 ビーム幅を可変する。  Unlike a search window with a fixed search range (beam width), this block assumes that the beam width can be varied as needed. However, since this beam width change is always performed as a continuous node group of an integer multiple of the parallelism, the number of nodes equal to the parallelism is used as the unit of handling. Then, this block is evaluated as a whole, and the beam width is varied based on the evaluation.
要するに、 従来は各ノードを中心に扱ってきたものを、 本発明では、 一連のま とまりのノードを単位として扱う。 このまとまりを便宜的にブロックと呼んでい るのに過ぎない。 そして、 この 「まとまり」 ごとに評価を行い、 その評価に基づ いてビーム幅を可変する。 図面の簡単な説明 In short, what has conventionally been handled mainly on each node, the present invention treats a series of nodes as a unit. This unit is simply called a block for convenience. Then, an evaluation is made for each "unit", and based on the evaluation, To change the beam width. BRIEF DESCRIPTION OF THE FIGURES
図 1は並列処理機能を有する M P Uの一例を示すブロック図、  FIG. 1 is a block diagram showing an example of an MPU having a parallel processing function,
図 2は音声認識システムの一例を示すハードウエアおよびソフトウエアのシス テム構成図、  Figure 2 is a hardware and software system configuration diagram showing an example of a speech recognition system.
図 3は H MM音声認識の考え方を説明するための図、 .  Figure 3 illustrates the concept of HMM speech recognition.
図 4は本発明に係る音声認識の実施例 1の処理手順の全体図を示すフローチヤ ―卜、  FIG. 4 is a flowchart showing an overall view of the processing procedure of the first embodiment of the speech recognition according to the present invention.
図 5は実施例 1のプロック更新の原理を説明するための図、  FIG. 5 is a diagram for explaining the principle of block update of the first embodiment,
図 6は図 4に示した手順 4 0 3の考え方を説明するための図、  FIG. 6 is a diagram for explaining the concept of the procedure 403 shown in FIG. 4,
図 7は並列度 X n ( n = 2 , 3, ·· ·) 個のノードを持つブロックの扱いを説明 するための図、  Figure 7 is a diagram for explaining the handling of a block having Xn (n = 2, 3, ...) nodes.
図 8は実施例 1で用いるプロック管理リストの一例を示す図、  FIG. 8 is a diagram showing an example of a block management list used in the first embodiment,
図 9は図 4に示した手順 4 0 2の詳細を示すフローチャート、  FIG. 9 is a flowchart showing details of the procedure 402 shown in FIG. 4,
図 1 0は実施例 1のプロック再構成の考え方を説明するための図、  FIG. 10 is a diagram for explaining the concept of block reconstruction in the first embodiment,
図 1 1は実施例 1のプロック再構成の考え方 2を説明するための図、 図 1 2は図 4に示した手順 4 0 6の詳細を示すフローチャート、  FIG. 11 is a diagram for explaining the concept 2 of block reconfiguration of the first embodiment, FIG. 12 is a flowchart showing details of the procedure 4 06 shown in FIG. 4,
図 1 3は本発明に係る音声認識の実施例 2の処理手順の全体図を示すフローチ ヤー卜、  FIG. 13 is a flowchart showing an overall view of the processing procedure of the second embodiment of the speech recognition according to the present invention.
図 1 4は手順 1 3 0 1の詳細を示すフローチャートである。 発明を実施するための最良の形態  FIG. 14 is a flowchart showing the details of the procedure 1301. BEST MODE FOR CARRYING OUT THE INVENTION
<実施例 1 >  <Example 1>
本発明に係る音声認識システムの一実施例を説明する。 本実施例では、 背景技 術で述べた図 1に示したようなマイクロコンピュータ (M P U ) を用いている„ 図 1 ( a) は、 本実施例で用いた MPUのシステム全体の構成を示すブロック 図である。 本 MPUは、 バスインターフェース 10 1を介して、 外部バス 160 によって外部メモリと接続できる。 プログラムは、 命令キャッシュ 102を介し て命令制御ュニット 108へ送られ、 これに基づいて計算機の各処理部は制御さ れる。 データは、 デ一タキヤッシュ 103から、 口一ドュニッ卜 1 ◦ 5あるいは ストアユニット 106を介してレジスタファイル 109へ転送される。 これらの レジスタに送られたデータは、 必要に応じて、 整数演算であれば骜数ユニット 1 07、 浮動小数であれば浮動小数ュニッ卜 104で処理され、 その結果は再びレ ジスタファイル 109に格納される。 これらは、 一般的な MP Uの構成であるが、 本実施で用いる MPUは、 さらに並列処理機能を有するマルチメディア処理部 (MMユニット) 1 1 0を有することを特徴とする。 An embodiment of the speech recognition system according to the present invention will be described. In this embodiment, a microcomputer (MPU) as shown in FIG. 1 described in Background Art is used. FIG. 1A is a block diagram illustrating the configuration of the entire system of the MPU used in the present embodiment. This MPU can be connected to an external memory via an external bus 160 via a bus interface 101. The program is sent to the instruction control unit 108 via the instruction cache 102, and each processing unit of the computer is controlled based on the program. The data is transferred from the data cache 103 to the register file 109 via the mouth unit 1 • 5 or the store unit 106. The data sent to these registers is processed by the decimal unit 107 for integer operations and the floating-point unit 104 for floating-point numbers, and the results are stored again in the register file 109, as necessary. Is done. These are general MPU configurations, but the MPU used in the present embodiment is further characterized by having a multimedia processing unit (MM unit) 110 having a parallel processing function.
MMユニット 1 1 0の具体例を一例として図 1 (b ) に示す。 ここでは、 S I MD型の並列機構を例にする力^ 前述したように VL IW型 MPUを始め、 分散 メモリ型並列計算機を除く並列計算機で同様に実現できる。 ここでは、 並列計算 機が並列に処理できる能力 (並列度) を 4として説明する力 勿論、 並列度は任 意に設定できる。  FIG. 1B shows a specific example of the MM unit 110 as an example. Here, the power of a parallel mechanism of the S I MD type as an example ^ As described above, the same can be realized in a parallel computer excluding the distributed memory type parallel computer including the VL IW type MPU. Here, the ability to describe the ability (parallelism) that the parallel computer can process in parallel as 4 is, of course, the degree of parallelism can be set arbitrarily.
MMュニット 1 1 0は、 図 1 (b)に示すように、 べクトル型演算を実行する機 能プロック 1 20と、 ベク トルリダクション型演算を実行する機能プロック 13 0とからなる。 ここで、 マルチメディアレジスタ 1 25〜 I 27および 1 34に は、 複数のデータが一括して管理されている。 この機能ブロック 1 20には演算 器が複数個あり、 一度に n個の (図 1 (b)の例では、 4個) データ処理が可能で ある。  As shown in FIG. 1 (b), the MM unit 110 includes a function block 120 for executing a vector type operation and a function block 130 for executing a vector reduction type operation. Here, a plurality of data are collectively managed in the multimedia registers 125 to I27 and 134. The functional block 120 has a plurality of arithmetic units, and can process n (at least four in the example of FIG. 1B) data at a time.
機能プロック 1 20は、 レジスタファイル 1 09にあるマルチメディアレジス タ群よリ、 内部バス 1 50を介して、 マルチメディアレジスタ A 1 25およびマ ルチメディアレジスタ B 1 26に送られる。 マルチメディアレジスタ A, Bにお いて、 データは 4分割されており、 その各々が独立した (別々の) 値を表現して いる。 これらは、 演算器 (ALU) 1 2 1〜 1 24によって、 並列に同じ命令が 処理され、 この結果がマルチメディアレジスタ C 127に格納される。 The function block 120 is sent to a multimedia register A 125 and a multimedia register B 126 via an internal bus 150 by a group of multimedia registers in a register file 109. In the multimedia registers A and B, the data is divided into four parts, each of which represents an independent (separate) value. I have. The same instructions are processed in parallel by arithmetic units (ALUs) 121 to 124, and the results are stored in the multimedia register C127.
従って、 機能ブロック 1 20では、 次の式 ( 3) で表現される演算 (ベクトル 型演算) を並列に実行できる。  Therefore, in the functional block 120, the operation (vector type operation) expressed by the following equation (3) can be executed in parallel.
Vecter[i]= f (x[i],y[i]) i=l,2,..,n … (3) ただし、 上式において、 nは並列度、 Vecter[ i ]は配列要素 x[ i ], y [ i ] に対する演算結果を示す配列要素である。 .  Vecter [i] = f (x [i], y [i]) i = l, 2, .., n… (3) where n is the degree of parallelism and Vecter [i] is the array element x [i], y is an array element indicating the operation result for [i]. .
機能ブロック 130は、 べク卜ルリダクシヨン型演算を実行する機能ブロック であり、 レジスタファイル 109にあるマルチメディアレジスタ群から内部バス 1 50を介して、 マルチメディアレジスタ D 1 34に送られる。 ALU 1 3 1〜 1 33によって、 いわゆるトーナメント方式の処理となり、 最終的に一つのスカ ラデータに還元され、 スカラレジスタ 1 35に格納される。 例えば、 マルチメデ ィァレジスタ D 1 34に格納されている 4つのデータの総和を取りたい場合、 A LU 1 3 1〜 133力 ¾ロ算演算を実行することにより実現できる。  The function block 130 is a function block for executing a vector reduction type operation, and is sent from the group of multimedia registers in the register file 109 to the multimedia register D 134 via the internal bus 150. The ALU 131-1 to 133 form a so-called tournament processing, which is finally reduced to one scalar data and stored in the scalar register 135. For example, when it is desired to take the sum of the four data stored in the multimedia register D134, this can be realized by executing the arithmetic operation of ALU131-133.
このように、 機能ブロック 1 30では、 次の式 (4) で表現される演算 (べク トル型演算) を並列に実行できる。  As described above, the functional block 130 can execute the operation (vector operation) expressed by the following expression (4) in parallel.
scaler = f (x[i〗) i=l,2,..,n … (4)  scaler = f (x [i〗) i = l, 2, .., n… (4)
ただし、 上式において、 nは並列度、 scalerは配列要素 x[ i ]に対する計算結 果を格納するスカラ変数である。  Here, in the above equation, n is the degree of parallelism, and scaler is a scalar variable that stores the calculation result for array element x [i].
図 2に、 図 1で示した構成の MPUを用いた音声認識システムの例を示す。 図 2 ( a) は、 ハードウェアの構成を示すブロック図である。 この音声認識システ ムは、 音声認識ボード 20 1、 マイクロフォン 202およびモニタ 203によつ て構成されている例である。 このうち、 音声認識ボード 20 1は、 1チップの L S I上に全て実現することも可能である。 また、 モニタ 203は、 例えば、 音声 入力装置などに用いる場合、 必ずしも必要ではない。  FIG. 2 shows an example of a speech recognition system using the MPU having the configuration shown in FIG. FIG. 2A is a block diagram illustrating a hardware configuration. This speech recognition system is an example constituted by a speech recognition board 201, a microphone 202 and a monitor 203. Among them, the voice recognition board 201 can be realized entirely on one chip LSI. The monitor 203 is not always necessary when used for, for example, a voice input device.
音声認識ボード 20 1は、 AD変換器 204、 PU 205, ROM 206、 RAM 207によって構成される。 モニタ 203が付加される場合、 さらにモニ タインターフェース ( I F) 208が必要である。 The speech recognition board 201 has AD converter 204, PU 205, ROM 206, It is constituted by a RAM 207. When the monitor 203 is added, a monitor interface (IF) 208 is further required.
AD変換器 204は、 マイクロフォン 202よリ入力されたアナログ音声信号 を、 デジタル信号に変換する。 MPU 205は、 図 1で示した構成の MP Uを用 いる。 ROM 206は読みだし専用メモリであり、 本音声認識システムのプログ ラムや必要なデータ (例えば、 辞書や HMMパラメータ) が格納されている。 R AM207は、 読み書き可能メモリである。 .  The AD converter 204 converts the analog audio signal input from the microphone 202 into a digital signal. The MPU 205 uses the MPU having the configuration shown in FIG. The ROM 206 is a read-only memory, and stores programs and necessary data (for example, dictionaries and HMM parameters) of the speech recognition system. The RAM 207 is a readable / writable memory. .
図 2 (b) に、 ソフトウェアの概略構成を示す。 本音声認識システムが呼び出 される (開始 210) と、 手順 2 1 1によって、 まず、 サンプル音声の特徴が分 析される (特徴分析) 。  Figure 2 (b) shows the schematic configuration of the software. When the speech recognition system is called (start 210), the features of the sample speech are first analyzed in step 211 (feature analysis).
特徴分析は、 音声波形を、 一定間隔で一定区間取りだし (この部分音声区間の ことをフレームと呼ぶ) 、 このフレームにおいて、 音の性質が変化しないのもの として (定常性) 音の性質を分析する。 音の性質は、 例えば周波数スぺク トルや L PC係数により分析できる。 すなわち、 周波数スペクトルは高速フーリエ変換 (FFT) によって計算でき、 L PC係数はレビンソン一ダービン (Levinson- D urbin) の再帰式によって計算できる。 これらは、 一般に複数のパラメータ群に よって表現されるため、 特徴べク トルと呼ばれる。 この特徴分析 (手順 2 1 1 ) により、 音声信号 220はフレームごとの特徴ベクトルに置き換えられる。 この 特徴べクトル列はテーブル 221に格納され、 これを観測べクトル列と呼ぶ。 次ぎの手順 2 1 2によって、 出力確率の計算が行われる。 この出力確率計算は、 手順 2 13のビタビサーチによる認識照合時に平行して行うことも可能である。 この場合については、 次ぎの実施例 (実施例 2) で示す。  In the feature analysis, a speech waveform is extracted at regular intervals at regular intervals (this partial speech section is called a frame), and in this frame, the sound properties are analyzed assuming that the sound properties do not change (stationarity). . The sound properties can be analyzed, for example, by frequency spectrum or LPC coefficient. That is, the frequency spectrum can be calculated by the fast Fourier transform (FFT), and the LPC coefficient can be calculated by the Levinson-Durbin recursion. Since these are generally represented by multiple parameter groups, they are called feature vectors. By this feature analysis (step 211), the audio signal 220 is replaced with a feature vector for each frame. The feature vector sequence is stored in the table 221 and is called an observation vector sequence. The output probability is calculated by the following procedure 2 1 2. This output probability calculation can be performed in parallel with the recognition and collation by the Viterbi search in step 213. This case will be described in the next embodiment (Example 2).
ここで、 出力確率とは、 HMMにおいて、 各々の状態が 「ある特徴」 の音を出 力する確率を意味する。 従って、 「ある特徴」 を示す特徴ベクトルの関数として、 出力確率は表現される。  Here, the output probability means the probability that each state outputs a sound having a certain characteristic in the HMM. Therefore, the output probability is expressed as a function of a feature vector indicating “a feature”.
HMM音声認識には、 特徴べク トルをべクトル量子化し、 その量子化べクトル の関数として出力確率を与える方法 (離散型 H MM) と、 特徴べク トルの確率関 数として与える方法 (連続型 HMM ) があり、 本実施例では、 どちらを用いても 良い。 前者の場合は量子化ベクトルに対するテーブル参照となり、 後者の場合は 特徴べクトルに対する確率関数を計算することになる。 この出力確率の計算結果 は、 テーブル 2 2 2へ格納する。 For HMM speech recognition, the feature vector is vector-quantized and the quantized vector There is a method of giving the output probability as a function of (discrete HMM), and a method of giving it as the probability function of the feature vector (continuous HMM). In this embodiment, either of them may be used. In the former case, the table is referred to the quantization vector. In the latter case, the probability function for the feature vector is calculated. The calculation result of this output probability is stored in Table 222.
手順 2 1 3の照合 (ビタビサーチ) において、 手順 2 1 1の特徴分析において 得られた観測べクトル列と手順 2 1 2において計算された出力確率から、 各モデ ルの尤度を計算する。 ここでは、 各モデルにおいて最も確率が高くなる状態遷移 系列の尤度 (以下、 ビタビスコア) を各モデルの尤度と看做し (ビタビサーチ) て採用し、 認識結果としてテーブル 2 2 3に格納し、 処理を終了 (手順 2 1 4 ) する。 上記尤度 (ビタビスコア) は、 次の式 ( 2 ) を再帰的に計算することで得 られる。  In the matching (Viterbi search) in step 2 13, the likelihood of each model is calculated from the observed vector sequence obtained in the feature analysis in step 2 11 and the output probability calculated in step 2 12. Here, the likelihood of the state transition sequence with the highest probability in each model (hereinafter, Viterbi score) is adopted as the likelihood of each model (Viterbi search), and is stored in Table 22 as recognition results. And terminate the process (step 2 14). The above likelihood (Viterbi score) can be obtained by recursively calculating the following equation (2).
a
Figure imgf000015_0001
a t(i-l) a i-i,i b i(yt+i), a t(i) a i.i b i(yt+i)} ··· ( 2 ) このビタピサ一チを効率的に実行するため、 途中のスコアが低いパスの探索を 打ち切る方法、 すなわちビームサーチ法を採用する。 本発明は、 このビームサー チにおいて、 探索すべきパスを実行する並列計算機の特性を考慮して決定するこ とにある。
a
Figure imgf000015_0001
at (il) a ii, ibi (yt + i), at (i) a ii bi (yt + i)} ··· (2) The score in the middle is low to execute this bitapisa efficiently. A method of terminating the path search, that is, a beam search method is employed. An object of the present invention is to determine the beam search in consideration of the characteristics of a parallel computer that executes a path to be searched.
本実施例では、 上記ビームサーチ法において、 各モデルにおける探索パス、 す なわちノードの個数を、 実行する並列計算機の並列度の整数倍にするために、 各 モデルにおける連続した並列数個のノードを一括して管理する。 ここでは、 この 一連のノード群をブロックと呼ぶ。 本実施例では、 このブロックを適宜管理する ことにより、 各モデルにおける探索パス (ノード) の個数を、 常に並列計算機の 並列度の整数倍に保つ。  In the present embodiment, in the above beam search method, in order to make the search path in each model, that is, the number of nodes, an integer multiple of the degree of parallelism of the parallel computer to be executed, several consecutive nodes in each model are used. Is managed collectively. Here, this series of nodes is called a block. In this embodiment, by appropriately managing this block, the number of search paths (nodes) in each model is always kept at an integer multiple of the parallelism of the parallel computer.
図 4に、 本実施例におけるビームサーチ法を用いた処理のフローチャートを示 す。 ここでは、 並列度は 4として説明する。  FIG. 4 shows a flowchart of a process using the beam search method in the present embodiment. Here, the parallelism is described as 4.
この処理は、 一般的なフレーム同期型の処理の例である。 すなわち、 手順 4 0 1において本処理が開始されると、 最初のフレームの観測ベク トルに対して、 手 順 4 0 2において、 各ブロックのノードに対して同時にサーチが実行される。 す なわち、 各ブロックのノードに対して並列にビタビサーチが実行される。 手順 4 0 2は、 ブロックおよび単語を制御変数とする二重の繰り返し処理 (二重ループ) によって反復実行される。 ある単語において、 全てのブロックが処理されると、 手順 4 0 3において当該ループの終了が判定され、 次の単語の処理が開始される。 こうして、 全ての単語の処理の終了が手順 4 0 4において判定さ ると、 手順 4 0 5においてブロック再構成の要否を判定し、 必要に応じて手順 4 0 6でブロッ クの再構成を行い、 次のフレームの処理を行う。 This process is an example of a general frame synchronization type process. That is, step 40 When this processing is started in 1, a search is executed simultaneously for the observation vector of the first frame and in the node of each block in step 402. That is, Viterbi search is executed in parallel for the nodes of each block. Step 402 is repeatedly executed by a double repetition process (double loop) using blocks and words as control variables. When all blocks have been processed for a certain word, the end of the loop is determined in step 403, and processing for the next word is started. Thus, when the end of the processing of all the words is determined in step 404, the necessity of block reconstruction is determined in step 405, and if necessary, block reconstruction is performed in step 406. Then, process the next frame.
このようにして、 全ての音声区間のフレームに対する処理が終了すると、 手順 4 0 7において探索の終了が判定され、 手順 4 0 8において認識候補が決定 ·出 力された後、 手順 4 0 9で本処理は終了する。  In this way, when the processing for the frames of all the voice sections is completed, the end of the search is determined in step 407, the recognition candidates are determined and output in step 408, and then in step 409, This processing ends.
手順 4 0 6におけるブロック再構成の処理は、 一定間隔ごとに実行する。 ただ し、 毎フレームごとに行っても構わない。 ここでは、 Nフレ一ムに 1回のように、 ある周期ごとに手順 4 0 7を実行する方法を想定している。 この場合、 手順 4 0 5では、 フレーム変数 (番号) の Nの剰余系をとり、 その値によって手順 4 0 6 の実行を判定できる。  The processing of block reconstruction in step 406 is executed at regular intervals. However, it may be performed every frame. Here, a method is assumed in which the procedure 407 is executed at a certain period, such as once every N frames. In this case, in step 405, the remainder system of N of the frame variable (number) is taken, and the execution of step 406 can be determined based on the value.
以上の処理において、 手順 4 0 2は、 フレームに対する反復実行を含めれば、 (フレーム、 単語、 ブロックに対して) 三重の繰返処理になる。 これに対して、 手順 4 0 6は、 一定間隔ごとの (フレームに対する) 単なる繰返処理である。 従 つて、 本実施例において、 手順 4 0 2の処理効率が性能を事実上決定することに なる。  In the above processing, the procedure 402 becomes a triple repetition processing (for a frame, a word, and a block) if the repetition execution for the frame is included. Step 406, on the other hand, is a mere repetition process (for frames) at regular intervals. Therefore, in the present embodiment, the processing efficiency of the procedure 402 actually determines the performance.
この手順 4 0 2のブロック更新の考え方を図 5を用いて説明する。 図 5 ( a ) は、 ブロックに属する状態 (ノード) に対するビームサーチでのブロック移動に おけるブロックの評価法を示すための説明図である。  The concept of block update in step 402 will be described with reference to FIG. FIG. 5 (a) is an explanatory diagram showing a block evaluation method in block movement in a beam search for a state (node) belonging to the block.
今、 探索対象となっているアクティブノードを〇、 探索対象となっていないネ ガティブノードを ·で表現する。 図 5 ( a) では、 時刻 t =k一 1のフレームに おいて、 ブロックに属する A〜Dのノードがアクティブであり、 その周囲 (図で は 0と E ) がネガティブであることを示す。 The active nodes that are currently being searched are marked with 〇, and those that are not being searched are Gative nodes are represented by ·. In Fig. 5 (a), in the frame at time t = k-11, the nodes A to D belonging to the block are active, and their surroundings (0 and E in the figure) are negative.
ビタビサーチでは、 時刻 t =k— 1のフレームのスコアから、 時刻 t==kのフ レームのスコアを得る。 各ノードにおいて、 left- to-right型の HMMでは、 1 ステップ (フレーム) 後には、 自分の状態か隣の状態に遷移する。 従って、 時刻 t = kのフレームにおいては、 図 5 ( a) に示したように、 ブロックに属する A' 〜 E 'のノードがアクティブとなる。  In Viterbi search, the score of the frame at time t == k is obtained from the score of the frame at time t = k-1. At each node, in the left-to-right type HMM, after one step (frame), it transitions to its own state or the next state. Therefore, in the frame at time t = k, the nodes A ′ to E ′ belonging to the block become active, as shown in FIG.
ビタビサーチでは、 式 ( 2) の計算を再帰的に実行するが、 これは着目してい るノードに到達するパスのうち、 スコアの大きいパスの選択を意味する。 また、 ビームサーチでは、 ネガティブノードからのパスは、 尤度が低いものと看做して いるため無視できる。  In Viterbi search, the calculation of Eq. (2) is performed recursively, which means the selection of the path with the highest score among the paths reaching the node of interest. In the beam search, the path from the negative node can be ignored because the likelihood is low.
従って、 時刻 t = kにおけるノード A'のスコアは Α→Α' (自遷移) のスコア、 ノード E'のスコアは D→E, (他遷移) のスコアで評価できる。 また、 ノ一ド B' 〜D 'のスコアは、 式 (2) によって評価できる。  Therefore, at time t = k, the score of node A 'can be evaluated by the score of Α → Α' (self transition), and the score of node E 'can be evaluated by the score of D → E, (other transition). In addition, the scores of the nodes B ′ to D ′ can be evaluated by Equation (2).
本実施例 1においては、 ブロックのノード数は並列計算機の並列度の整数倍に 制御するため、 図 4に示した手順 402ではブロックのノード数は変更せず、 ブ ロックのノード数を変更する処理は、 必要により手順 406のブロック再構成で 実行する。 従って、 図 5 ( a) の場合、 アクティブになった 5つのノードのうち、 新たに 4つを選択する (ブロック更新) 。 このブロックの更新は、 図 5 ( a) の 右側に示したように 2通りの可能性がある。 本実施例では、 各々のブロックごと に全てのノードのスコアの和 (トータルスコア) を取り、 大きい方を選択する。 図 5 (b) は、 トータルスコアによる比較を用いてこのブロック更新を行うた めの実現原理を模式的に示す説明図である。 新しいブロックは、 A' 〜D' の 4 つのノードを選択する力、、 Β' 〜Ε' の 4つのノードを選択するかの二つの選択 がある。 ここでは、 ブロック全体としてのスコアに着目し、 各スコアの和が大き い方を選択する場合を考える。 In the first embodiment, since the number of nodes in the block is controlled to be an integral multiple of the degree of parallelism of the parallel computer, the number of nodes in the block is changed without changing the number of nodes in the block in step 402 shown in FIG. The processing is executed by the block reconstruction in step 406 if necessary. Therefore, in the case of Fig. 5 (a), four new nodes are selected from the five activated nodes (block update). This block can be updated in two ways, as shown on the right side of Fig. 5 (a). In this embodiment, the sum of the scores of all nodes (total score) is obtained for each block, and the larger one is selected. FIG. 5 (b) is an explanatory diagram schematically showing the realization principle for performing this block update using comparison based on the total score. The new block has two choices: the ability to select four nodes A 'to D', and the four nodes Β 'to Ε'. Here, focusing on the score of the entire block, the sum of the scores is large. Consider the case of choosing the right one.
もっとも、 各ブロックにおいて、 B' , C' , D' の各ノードは共通であるか ら、 各スコアの総和の比較は、 結局、 ノード A' とノード E' の比較になる。 さ らに、 ノード A' には他遷移 (ノード 0からの遷移) が存在せず、 ノード E' に は自遷移 (ノード Eからの遷移) 力存在しないことから、 結局、 ノード A→ノー ド A' の遷移と、 ノード D→ノード E' の遷移を比較することに帰着する。 すなわち、 図 5 ( a) の右側に示したトータルスコアの比較は、.結局両端ノー ドのスコアの比較に置き換えられる。 これは、 式 (2 ) の処理と同じ構造を持つ ため、 これらの一連の処理は、 同一命令による複数データ処理 ( S I MD) によ つて効率的に処理することができる。  However, since each node of B ', C', and D 'is common in each block, the comparison of the sum of each score is the comparison of node A' and node E '. In addition, node A 'has no other transition (transition from node 0) and node E' has no own transition (transition from node E). This results in comparing the transition at A 'with the transition at node D → node E'. In other words, the comparison of the total score shown on the right side of Fig. 5 (a) is eventually replaced by the comparison of the scores of both nodes. Since this has the same structure as the processing of equation (2), these series of processing can be efficiently processed by multiple data processing (SIMD) using the same instruction.
図 6は、 このような処理の考え方により並列計算機を用いて図 4の手順 402 を実行する場合の処理原理を示す説明図である。  FIG. 6 is an explanatory diagram showing a processing principle when the procedure 402 of FIG. 4 is executed using a parallel computer based on the concept of such processing.
上記の処理を行うには、 各ノードの時刻 t = k— 1におけるスコアと、 各ノー ドからの状態遷移確率 (自遷移および他遷移) および出力確率が必要である。 前 者のスコアは、 ブロック管理リストに一括して管理されていれば、 一括してロー ドできる。 後者の状態遷移確率と出力確率は、 各々連続した一連のデータとして 管理されていれば、 これも一括してロードできる。  In order to perform the above processing, the score of each node at time t = k−1, the state transition probabilities (self transition and other transitions) and output probabilities from each node are required. The former score can be loaded collectively if it is managed collectively in the block management list. If the state transition probability and output probability are managed as a continuous series of data, they can also be loaded collectively.
そこで、 ここでは、 これらのデータがマルチメディアレジスタに存在するもの として説明する。  Therefore, here, the description will be made assuming that these data exist in the multimedia register.
ステップ 1において、 ノード A〜Dに対する自遷移のスコアは、 次の式 (5) を用いて計算できる。  In step 1, the self-transition score for nodes A to D can be calculated using the following equation (5).
S0') = atO')aj.jbj(yt+i) j=i,i+l,i+2,i+3 … ) ただし、 上式において、 S(j )はノード jにおける自遷移のスコアである。 こ の式 ( 5) は、 4並列同時加算 (Vecter- ADD) で並列実行することができる。 同様に、 ノード A〜Dに対する他遷移のスコアは、 次の式 ( 6) を用いて計算 できる。 N0')= a tO") a j,j+i b j+i(yt+i) j=i,i+l,i+2,i+3 ··· ( 6 ) ただし、 上式において、 N ( j )はノード j における他遷移のスコアである。 こ の式 ( 6 ) も、 4並列同時加算 (Vecter-ADD) で並列実行できる。 S0 ') = atO') aj.jbj (yt + i) j = i, i + l, i + 2, i + 3…) where S (j) is the score of self-transition at node j It is. This equation (5) can be executed in parallel with 4-parallel simultaneous addition (Vecter-ADD). Similarly, the scores of other transitions for nodes A to D can be calculated using the following equation (6). N0 ') = a tO ") aj, j + ib j + i (yt + i) j = i, i + l, i + 2, i + 3 (6) where N ( j) is the score of the other transition at node j. This equation (6) can also be executed in parallel with 4-parallel simultaneous addition (Vecter-ADD).
この両者に対して、 各々最適パス (ビタビパス) を選択するために、 他遷移の (テンポラリ) スコアを 1語分左にローテーションする。  For each of these, the (temporary) score of the other transition is rotated one word to the left to select the optimal path (Viterbi path).
これにより、 ステップ 2において、 最適パスの選択が必要な中心部の 3つのノ ードに対して、 次の式 ( 7 ) を用いて 4並列同時最大演算 (Vecter-MAX) を実行 することで、 ビタビスコアが (3つのノードに対して) 計算できる。  In this way, in step 2, four parallel simultaneous maximum operations (Vecter-MAX) are performed for the three nodes at the center where the optimal path needs to be selected using the following equation (7). , Viterbi score can be calculated (for 3 nodes).
V *)=max{SG),N0'-l)} j=i+l,i+2,i+3 - ( 7 ) ただし、 上式において、 V ( j )はノード j におけるビタビスコアである。  V *) = max {SG), N0'-l)} j = i + l, i + 2, i + 3-(7) where V (j) is the Viterbi score at node j .
この場合、 ブロックの左端では、 ノード Aの自遷移 S e lf 1とノード Dの他遷 移 Next 4の最大演算が実行される。 これは、 先の図 5 ( b ) で示した条件判定 に他ならない。 そこで、 本実施例では、 この結果に基づいて、 ステップ 3におい て、 ノード Dの他遷移 Next 4が大きい場合、 ブロックをノード一つ分移動させ る。 ブロックをノード一つ分移動させる場合は、 上記結果の格納されているマル チメディアレジスタにおいて、 1語分の右ローテーションを実行する。 移動しな い場合、 ローテーションは不要である。 このレジスタの内容を一括してストアす れば、 サーチが完了する。  In this case, at the left end of the block, the maximum operation of the self transition S Elf 1 of node A and the next transition Next 4 of node D is executed. This is nothing less than the condition judgment shown in Fig. 5 (b). Therefore, in this embodiment, based on this result, in step 3, if the transition Next 4 other than the node D is large, the block is moved by one node. To move a block by one node, execute a right rotation of one word in the multimedia register where the above result is stored. If not, no rotation is required. The search is completed by storing the contents of this register all at once.
次に、 ノード数が計算機の並列度の N倍 (N = 2 , 3, ···)の時の取り扱いを 示す。 図 7では、 並列度の 2倍のノード数を持つブロックの取り扱い例を示すが、 他の場合も同様である。  Next, the handling when the number of nodes is N times the parallelism of the computer (N = 2, 3, ...) is shown. Figure 7 shows an example of handling a block with twice the number of nodes as the degree of parallelism, but the same applies to other cases.
この実施例 1では、 図 6と同様の原理で実行する。 すなわち、 ブロックの両端 におけるスコァの比較からブロックを更新する。  In the first embodiment, the operation is performed according to the same principle as that of FIG. That is, the block is updated from the comparison of the scores at both ends of the block.
図 7 ( a ) は、 各パスの尤度計算の例である。 ブロックが並列度の 2倍のノー ド数を持つので、 尤度計算のためのべク トル演算は 2回必要になる。 これを、 自 遷移 ( S elf ) と他遷移 (Next) の各々について実行する。 他遷移におけるスコ ァは、 図 6の場合と同様にデータ整形をしなければならない。 複数のレジスタ間 のローテーションは、 専用のハードウエアを用いれば高速に実行できる。 Figure 7 (a) shows an example of likelihood calculation for each path. Since the block has twice the number of nodes as the degree of parallelism, two vector operations are required to calculate the likelihood. This is executed for each of the own transition (Self) and other transitions (Next). Sco in other transitions Must format the data as in Figure 6. Rotation between multiple registers can be performed at high speed by using dedicated hardware.
しかし、 図 7 ( a) に示した処理は、 専用的な処理装置を用いなくとも、 一般 的なシフト命令を組み合わせて実現できる。 例えば、 4並列 · 2ブロックの例を 図 7 ( b ) に示す。 いま、 マルチメディアレジスタに、 他遷移のスコア (Next l〜Next4) と (Next5〜Next8 ) が各々格納されているものとする。 デー タ整形は、 これを、 (Next8, Nextl〜Next3) と (Next4〜Next 7 ) の データに組み替えることを考える。 前者は、 (Next 1〜Next4 ) が格納されて いるマルチメディァレジスタを 1語分右シフ卜させたものと、 (Next 5〜Next However, the processing shown in Fig. 7 (a) can be realized by combining general shift instructions without using a dedicated processing device. For example, an example of 4 parallel blocks and 2 blocks is shown in Fig. 7 (b). Now, it is assumed that the scores of other transitions (Nextl to Next4) and (Next5 to Next8) are respectively stored in the multimedia register. For data shaping, consider recombining this into data of (Next8, Nextl to Next3) and (Next4 to Next7). The former is the one in which the multimedia register storing (Next1 to Next4) is shifted right by one word, and the one (Next5 to Next4)
8 ) が格納されているマルチメディアレジスタを 3語分左シフ卜させたものとの 論理和を取ることで、 容易に実現できる。 後者も同様である。 This can be easily realized by taking the logical sum of the multimedia register that stores 8) and the result shifted leftward by three words. The same applies to the latter.
スコアのデータ整形も、 同様のシフ トローテーションを行えば実現できる (図 7 (c) ) 。  Score data shaping can be realized by performing similar shift rotation (Fig. 7 (c)).
次に、 ブロックの管理方法について説明する。 図 8に、 ブロック管理リストを 用いたブロック管理法を示す。 同図 ( a) は、 ブロック管理リストの構成例であ る。 この例では、 リンクリスト化した例のため、 ポインタを示すヘッダがあるが、 必ずしもリンクリスト化する必要はない。 例えば、 インデックスリストでも良く、 この場合、 管理リストをメモリ上に固定して連続的に定義すれば良い。  Next, a method of managing blocks will be described. Figure 8 shows a block management method using a block management list. FIG. 14A shows a configuration example of the block management list. In this example, there is a header that indicates a pointer because of the linked list, but it is not always necessary to make a linked list. For example, an index list may be used. In this case, the management list may be fixed in the memory and continuously defined.
ブロック管理リストでは、 当該ブロックの探索している単語 (ワード k) 、 ノ ードの構成 (必ず連続しているので開始点だけでも良い) および各ノード (ノ一 ド i ) のスコアが必要である。 また、 必要に応じてブロックスコアや最もスコア の高いノードすなわち最大ノード (および最大スコア) を使用するため、 その管 理のための領域も有するが、 これは必ずしも必要はない。  In the block management list, the word searched for in the block (word k), the configuration of the nodes (only the starting point may be used because they are always continuous), and the score of each node (node i) are required. is there. In addition, since the block score and the node with the highest score, that is, the maximum node (and the maximum score) are used as needed, there is an area for managing the node, but this is not always necessary.
本実施例の管理リストは、 リンクリスト構造のため、 管理リス卜そのものは、 計算機の並列度と同じ数のノードを管理する。 そして、 ブロックのノード数が並 列数の N倍 (N=2, 3, …;)の時は、 管理リストをリンクさせて表現する。 この構成例を図 8 ( b ) に示す。 横へのリンクは、 各々のブロック間のリンク を示す。 縦へのリンクは、 ノード数が並列数の N倍 (N = 2, 3 , ··· ) の時のブ ロック内のリンク関係を示す。 このようにすれば、 H eadから始まり T ai lまで順 (図 8 ( b ) では、 (1)→(2)→(3)→(4) ) に、 4個づっノードを処理できる。 以上の処理を具体的なフローで示すと、 図 9のようになる。 図 4で示したよう に、 手順 4 0 1 (あるいは手順 4 0 3、 手順 4 0 4、 手順 4 0 7からの戻り) に 続いて手順 4 0 2は実行される。 図 9において、 手順 4◦ 2は管 ¾リストの順に 従って実行する。 まず、 各ノード Node l〜4の自遷移の尤度計算 (手順 9 1 1 〜9 1 4 ) 、 続いて他遷移の尤度計算 (手順 9 2 1〜9 2 4 ) 力、 各々並列に実 行される。 手順 9 0 1では、 縦方向のリンクを調べ、 リンクしていればそのリス 卜の処理に移る。 その場合、 もう一度、 手順 9 1 1〜9 1 4および手順 9 2 1〜 9 2 4を繰り返す。 縦方向のリンクが無ければ、 手順 9 0 2でデータ整形を行う。 このデータ整形は、 縦方向のリンクが無い場合は図 6に示した方法で処理し、 縦 方向のリンクが有る場合は図 7 ( b ) に示す方法で処理する。 Since the management list of this embodiment has a linked list structure, the management list itself manages the same number of nodes as the degree of parallelism of the computer. If the number of nodes in the block is N times the number of parallel blocks (N = 2, 3,…;), the management list is represented by linking. An example of this configuration is shown in Fig. 8 (b). Horizontal links indicate links between each block. The vertical link indicates the link relation in the block when the number of nodes is N times the number of parallel nodes (N = 2, 3,…). In this way, four nodes can be processed in order from Head to Tail ((1) → (2) → (3) → (4) in FIG. 8 (b)). FIG. 9 shows the above process in a specific flow. As shown in FIG. 4, the step 402 is executed following the step 401 (or the return from the step 403, the step 404, and the step 407). In FIG. 9, step 4 2 is performed in the order of the management list. First, the likelihood calculation of the own transition of each node (Node 1 to 4) (steps 911 to 914) and the likelihood calculation of the other transition (steps 921 to 924) are performed in parallel. Is performed. In step 901, a vertical link is checked, and if there is a link, the process proceeds to the list. In that case, repeat steps 911 to 914 and steps 921 to 924 again. If there is no vertical link, perform data shaping in step 102. This data shaping is performed by the method shown in Fig. 6 when there is no vertical link, and by the method shown in Fig. 7 (b) when there is a vertical link.
次に、 各パスの比較から (計算は最大値を取る) ビタビスコアを計算する (手 順 9 3 1〜 9 3 4 ) 。 ただし、 ブロックの開始点に対応するノ一ドでは、 ビタビ スコアの計算と全く同じ構造の計算 (最大値の算出) によリブロックスコアの評 価を行うことになる。 これを、 縦リンクのある場合は、 再度繰り返す (手順 9 0 4 ) 。  Next, a Viterbi score is calculated from the comparison of each pass (the calculation takes the maximum value) (procedures 931 to 934). However, at the node corresponding to the starting point of the block, the reblock score is evaluated by calculating the same structure (calculating the maximum value) as the calculation of the Viterbi score. This is repeated again if there is a vertical link (step 904).
手順 9 0 5では、 図 5、 図 6および図 7で示した方法によリ移動条件の判定を 行い、 この条件判定に基づいて手順 9 0 6では、 ブロックの開始点に対応するノ ードのスコアから、 ブロックを移動する。 具体的には、 ブロックリストのノード データを更新し、 ブロック移動に伴うデータ整形 (図 6、 図 7に図示した方法に よるデータ整形) により処理できる。  In step 905, the relocation condition is determined by the method shown in FIGS. 5, 6, and 7, and based on this condition determination, in step 906, the node corresponding to the start point of the block is determined. Move blocks from the score. Specifically, the node data in the block list can be updated and processed by data shaping (data shaping by the method shown in Figs. 6 and 7) accompanying block movement.
次に、 図 4における手順 4 0 6のブロック再構成の詳細について示す。 本例は. ソートを併用した例であるが、 ソートを用いなくとも実現はできる。 ここでは、 ブロックに属すノードのうち、 スコアの最大のノードを代表スコア (図 8 (a) に表記した最大スコア) 、 そのノードを代表ノード (図 8 ( a) に表記した最大 ノード) と表現する。 本例では、 この代表スコアをブロックのスコアと看做し、 各プロックの代表スコアによって、 ブロックの再構成を行う。 Next, details of the block reconfiguration in step 406 in FIG. 4 will be described. In this example, sorting is used together, but it can be realized without using sorting. here, Of the nodes belonging to the block, the node with the highest score is expressed as a representative score (the maximum score shown in Fig. 8 (a)), and that node is expressed as a representative node (the maximum node shown in Fig. 8 (a)). In this example, this representative score is regarded as the score of the block, and the block is reconstructed using the representative score of each block.
本実施例では、 ブロックの削除および縮小を制御するしきい値 (θπΰη) とブ ロックの拡張を制御するしきい値 (©max) の二つの値を制御する。 これらは、 いずれも時間 (フレーム) の関数になる。 本実施例では、 emin を次の式 (8) により、 emax を式 (9) によりそれぞれ与える。  In this embodiment, two values, a threshold value (θπθη) for controlling the deletion and reduction of a block and a threshold value (© max) for controlling the expansion of a block, are controlled. These are all functions of time (frames). In this embodiment, emin is given by the following equation (8), and emax is given by the following equation (9).
Θ min=Bmin- λ min … ( 8 ) ただし、 上式において、 Lmin は定数、 Bmin = min{ B (k) }であり、  Θ min = Bmin- λ min… (8) where Lmin is a constant, Bmin = min {B (k)},
B (k)=max{V(j)}で、 j = i, i + 1, i+2, i+3 (at Block k)  B (k) = max {V (j)}, j = i, i + 1, i + 2, i + 3 (at Block k)
である。 It is.
0max=Bmax+ A max … (9) ただし、 上式において、 Lmax は定数、 Bmax=max{B (k)}であり、  0max = Bmax + Amax (9) where Lmax is a constant and Bmax = max {B (k)},
80 = 乂{ (>])}で、 j = i, i + 1, i+2, i+3 (at Block k) 80 = 乂 {( > ))}, j = i, i + 1, i + 2, i + 3 (at Block k)
である。 It is.
図 1 0 (a) に、 ブロック拡張の方法を示す。 ブロック再構成時に、 ブロック の代表スコアが Qmax より大きい場合、 ブロック拡張を行う。 ここで、 max は リンクしている管理リストの数 (当該ブロックのノードが並列度 XNで表現され る場合の N) の関数となっているため、 各ブロックごとに異なる評価が与えられ る。 これは、 特定のブロックに拡張が集中しないための一例である。  Figure 10 (a) shows the method of block extension. If the representative score of a block is larger than Qmax during block reconstruction, block expansion is performed. Here, since max is a function of the number of linked management lists (N when the node of the block is expressed by the parallelism XN), a different evaluation is given to each block. This is an example of extension not being concentrated on a specific block.
しきい値によってブロック拡張が判定された場合、 新しいプロックリストを作 成する。 これを、 拡張するブロックの縦方向にリンクを延ばすようにリンクさせ る。 具体的には、 新しくメモリを確保し、 ポインタを更新してリンク関係を設定 する。 また、 必要な設定 (該当する単語、 管理するノード等) を行う。 該当する 単語は、 拡張するブロックと同一であるからこれを複写し、 管理するノードは、 ブロックの隣接ノードの番号 (縦方向にリンクの最後のものに 4 ( =並列度) を 加えた値) を書き込む。 If a block expansion is determined by the threshold, a new block list is created. This is linked so that the link extends in the vertical direction of the block to be expanded. Specifically, a new memory is allocated, the pointer is updated, and the link relation is set. Also, make the necessary settings (such as applicable words and nodes to be managed). Since the corresponding word is the same as the block to be expanded, it is copied and the managing node Write the number of the node adjacent to the block (the value obtained by adding 4 (= parallelism) to the last link in the vertical direction).
新リス卜のノードは、 今までは探索していないネガティブノードであるから、 スコアとしては 0に相当するものを書き込む。 音声認識では、 一般に対数尤度が 用いられるが、 この場合、 一∞ (距離と考えて∞で表現することもある) を設定 することになる。  Nodes in the new list are negative nodes that have not been searched so far, so write a score equivalent to 0. In general, log likelihood is used in speech recognition. In this case, a value of 1 (sometimes expressed as 2) is set.
このように初期化した場合の、 ブロック拡張によるサーチの挙動を図 1 ◦ ( b ) に示す。 本質的に、 新しく設定したノードからのパスは存在しない力、 スコア 0 (対数値一∞) と設定すれば、 同一ノードに達する二つのパスのうち、 評価の低 いパスが切り捨てられるため、 自動的に新しく設定したノードからのパスは切ら れ、 隣接するァクティブノードからのパスが選択される。  Figure 1 ◦ (b) shows the behavior of the search by block expansion when initialized as described above. In essence, if the path from the newly set node is set to a non-existent force, score 0 (logarithmic value ∞), the path with the lowest evaluation out of the two paths reaching the same node will be cut off, The path from the newly set node is cut off, and the path from the adjacent active node is selected.
従って、 4並列度の場合、 4フレーム後 ( t = k → t = k + 4 ) に新リス卜 のノードが全てアクティブになる。 この間、 特別な処理は全く必要ない。 計算処 理としては、 全てアクティブとして行った並列計算によってでも、 初期化による スコアとの関係から、 整合性のある結果が得られる。  Therefore, in the case of 4 parallelism, all nodes in the new list become active after 4 frames (t = k → t = k + 4). No special treatment is required during this time. As for the calculation process, even with parallel calculation performed with all active processes, consistent results can be obtained from the relationship with the scores by initialization.
図 1 1では、 ブロック縮小を説明する。 ブロック再構成時に、. ブロックの代表 スコアが Θπιίη より小さい場合、 ブロック縮小 (あるいは削除) を行う。 ここで、 Θπιΐη はリンクしている管理リストの数 (当該ブロックのノードが並列度 Χ Νで 表現される場合の Ν ) の関数となっているため、 各ブロックごとに異なる評価が 与えられる。 これは、 ブロック拡張の時と同様である。 ここでは、 管理リストを 1個づっ少なくする方法を取る。 従って、 Ν〉 2の時はブロック縮小、 N = lの 時はブロック削除となる。  FIG. 11 illustrates block reduction. If the representative score of a block is smaller than Θπιίη during block reconstruction, block reduction (or deletion) is performed. Here, 評 価 πιΐη is a function of the number of linked management lists (Ν when the node of the block is represented by the degree of parallelism Χ 、), so different evaluations are given to each block. This is the same as for block expansion. Here, we take the method of reducing the management list one by one. Therefore, when Ν> 2, block reduction is performed, and when N = 1, block deletion is performed.
しきい値によってブロック縮小が判定された場合 (Ν〉2 ) 、 新しいブロック リストを作成する。 このブロックは、 Ν _ 1個の縦方向のリンクを有する。 具体 的には、 新しくメモリを確保し、 ポインタを更新してリンク関係を設定する。 次にノードの選択を行う。 以下では、 代表ノードを新ブロックの中央に置く例 を説明するが、 これはべクトルリダクション型の並列演算(VRmaxと VRargmax) が可能な並列計算機であれば簡単に計算できる。 N〉 2の場合でも、 これをトー ナメン卜型に組み合わせればよい。 If block reduction is determined by the threshold (Ν> 2), a new block list is created. This block has _ — 1 vertical links. Specifically, a new memory is allocated, the pointer is updated, and the link relationship is set. Next, a node is selected. In the following example, the representative node is placed at the center of the new block. This can be easily calculated by any parallel computer that can perform vector reduction type parallel operations (VRmax and VRargmax). Even in the case of N> 2, this can be combined with the tournament type.
図 1 1 (a) を用いて、 ブロックを縮小する場合のノード選択方法について説 明する。 ここでは、 2ブロックを 1ブロックに縮小する場合の制御を示す。 ここ では、 最も大きいノードを残し、 かつ、 中心に配置する例とし、 ベクトルリダク シヨン型の VRmax演算 ( s=VRmax{xl, 2, x3, x4} : 1, 2, x3, x4はマ ルチメディアレジスタに格納、 sはスカラレジスタに格納) を利用した場合を示 す。  Using Fig. 11 (a), we explain the node selection method when the block is reduced. Here, the control for reducing two blocks to one block is shown. In this example, the largest node is left and placed at the center. Vector reduction VRmax operation (s = VRmax {xl, 2, x3, x4}: 1, 2, x3, x4 are multimedia (Stored in a register, s stored in a scalar register).
最大ノードの選択は、 VRmax演算をトーナメント処理すればよい。 すなわち、 まず、 各ブロックごとに最大ノードを求める。 これを、 例えば、 max l (プロ ック 1の最大ノード) 、 m a X 2 (ブロック 2の最大ノード) とすると、 各々を 他のマルチメディアレジスタに順次コピーし (マ一ジ或いはパックと呼ばれるこ ともある) 、 余分な領域には 0 (対数領域であれば—∞) を挿入、 すなわちマス キングする。 再び、 VRmax演算により最大ノードを求める。 このようにすれば、 並列度 4の場合、 4ブロック ( 1 6ノード) の最大値は、 2段の V Rmax演算処 理によって求められる。 5ブロック以上の場合、 同様の処理をもう 1回繰り返す。 この場合、 1 6ブロック (64ノード) までなら 3段で済む。 このようにして求 めた最大ノードに対して、 これが中心となるように連続したノードを選択して新 しいブロックを構成するノードを配置する。 例えば、 図 1 1 ( a) において、 下 から 3番目のノードが最大とすれば、 下から 2 5番目のノードを選択する。 これを式で示せば、 並列度を n、 ノード番号を iとし、 当該ブロックのノード 数が並列度 XNで表現される場合の Nを用いて、 次の式 ( 1 0) となる。  The maximum node may be selected by performing tournament processing of VRmax calculation. That is, first, the maximum node is obtained for each block. If this is, for example, maxl (maximum node of block 1) and maX2 (maximum node of block 2), each is sequentially copied to another multimedia register (called a merge or pack). ), But insert 0 (-領域 for logarithmic area) into the extra area, that is, mask it. Again, the maximum node is obtained by VRmax calculation. In this way, when the degree of parallelism is 4, the maximum value of 4 blocks (16 nodes) can be obtained by two-stage VRmax calculation processing. If there are more than 5 blocks, repeat the same process one more time. In this case, up to 16 blocks (64 nodes) requires only three stages. With respect to the maximum node obtained in this way, a continuous node is selected so that this is the center, and nodes constituting a new block are arranged. For example, in Fig. 11 (a), if the third node from the bottom is the maximum, the 25th node from the bottom is selected. This can be expressed by the following equation (10), where n is the degree of parallelism, i is the node number, and N is the number of nodes in the block represented by the degree of parallelism XN.
1 (j n(N-l)/2+l≤0) i = { jmax-n(N-l)/2+l (0<jmax-n(N-l)/2+l<n+l) ( 1 0) n+1 · (n+1≤ jmax - n (N- 1 )/2+ 1 ) 」 ただし、 上式で j ma はプロック中最もスコアの大きなノードである。 1 (jn (Nl) / 2 + l≤0) i = (jmax-n (Nl) / 2 + l (0 <jmax-n (Nl) / 2 + l <n + l) (1 0) n + 1 (n + 1≤ jmax-n (N- 1) / 2 + 1) '' Where j ma is the node with the highest score in the block.
この基準に従ってノードを選択し、 必要な設定 (該当する単語、 管理するノー ド等) を行う。 すなわち、 該当する単語は、 縮小するブロックと同じであるから これを複写し、 管理するノードは、 式 ( 1 0 ) で得たノードの番号 (上記の i ) を書き込む。 新リストのノードは、 全てアクティブノードであるから、 古いブロ ックリス卜から継承するため、 データの複写をしなければならない。  Select a node according to this criterion and make the necessary settings (corresponding words, managed nodes, etc.). That is, since the corresponding word is the same as the block to be reduced, it is copied, and the managing node writes the node number (i above) obtained by equation (10). Since all nodes in the new list are active nodes, data must be copied to inherit from the old block list.
また、 N = 1の時はプロック削除となる。 この場合、 単にリストを削除すれば 良い。  When N = 1, the block is deleted. In this case, simply delete the list.
図 1 1 ( b ) により、 上記のブロック縮小におけるリンクリストの更新につい て説明する。 まず、 新しいリス卜を生成し、 必要なデータ (構成するノードゃス コア) をコピーする。 これは、 二つのブロックからそれぞれコピーする (図では、 1つ目のリス卜に格納されているデータからのコピーを C 0 p y 1、 2つ目のリ ストに格納されているデ一タからのコピーを C 0 p y 2としている) 。  The update of the link list in the block reduction described above will be described with reference to FIG. 11 (b). First, a new list is created, and the necessary data (constituting node score) is copied. This is done by copying each of the two blocks (in the figure, a copy from the data stored in the first list is copied from C 0 py 1 and the data stored in the second list). A copy of C 0 py 2).
こうして作成されたリストを、 リンクリストに挿入 (入れ替え) する。 これは、 入れ替えるリストのポインタを更新すればよい。 具体的には、 旧ブロックとリン クしているリス卜のアドレスを新リス卜にコピー (図では、 C o p y 3 ) し、 同 時にリンク先のポインタ (リンク先のリストは、 旧リストのアドレスがセーブさ れている) を更新する (すなわち、 新リストのアドレスに書き換える) 。  The created list is inserted (replaced) into the linked list. This can be done by updating the pointer of the list to be replaced. Specifically, the address of the list linked to the old block is copied to the new list (Copy 3 in the figure), and at the same time, the pointer of the link destination (the list of link destinations is the address of the old list). Is saved) (that is, rewrite to the address of the new list).
この一連の処理は、 多少計算量が必要になるが、 ブロック縮小の頻度はそれほ ど頻繁ではないので、 全体の計算に対する負荷は僅少である。  This series of processing requires a certain amount of calculation, but the frequency of block reduction is not so frequent, so the load on the whole calculation is small.
図 1 2に、 以上のブロック再構成の一連のフロー (手順 4 0 6 ) を示す。 図 4 に示した手順 4 0 5でプロック再構成を行うフレームであることが判定されると、 手順 4 0 6が実行される。  FIG. 12 shows a series of flows (step 406) of the above block reconstruction. If it is determined in step 405 shown in FIG. 4 that the frame undergoes block reconfiguration, step 406 is executed.
手順 1 2 0 1において、 まず (横リンクリストの) 最初のブロック力選択され、 処理が行われる。 この手順 1 2 0 1では、 ブロックスコアが計算される。 これは、 ぺク トルリダクシヨン型の最大演算で実行される。 手順 1 2 0 1はプロックを制 御変数とする繰り返し処理によって反復実行される。 全てのブロック力処理され ると、 手順 1 2 1 0において当該ループの終了が判定され、 つぎの手順 1 2 0 2 へ向カヽつ。 In step 1221, the first block force (of the horizontal link list) is selected and processed. In this step 1221, a block score is calculated. This is done with a vector reduction type maximum operation. Step 1 201 controls the block It is repeatedly executed by a repetition process with control variables. When all the block forces have been processed, the end of the loop is determined in step 122, and the flow proceeds to the next step 122.
ブロック代表スコア力、 式 ( 9 ) の条件を満たしている場合、 手順 1 2 0 2で ブロック拡張すると判断し、 手順 1 2 0 3のブロック拡張を行う。 ブロック拡張 1 2 0 3では、 新しい管理リストを作成し、 図 1 0 ( a ) に示したように、 隣接 するノードを選択して、 スコア 0 (対数値一∞) の初期化を行う。 .これが終ると、 手順 1 2 0 7へ向かう。  If the condition of the block representative score and the formula (9) is satisfied, it is determined that the block is extended in the step 122, and the block is extended in the step 123. In block expansion 1 203, a new management list is created, and adjacent nodes are selected and score 0 (log value 1) is initialized, as shown in Fig. 10 (a). When this is done, proceed to step 1207.
一方、 手順 1 2 0 2で条件を満たさなかった場合、 次に手順 1 2 0 4へ向力、い、 プロック縮小 ·削除の判定を行う。 ここでは、 プロック代表スコアが式 ( 8 ) の 条件を満たしている場合、 ブロック縮小 ·削除すると判断し、 手順 1 2 0 5でブ ロック縮小 ·削除を行う。 ここで、 N〉2ならブロック縮小になる (管理リスト は残存する) ため、 手順 1 2 0 7へ向かう。 手順 1 2 0 7では、 新たにリンクリ ストを構成する。 ここでは、 古いリスト群から一つづつリストを取り、 新しいリ ンクリストに接続する方法を想定している。  On the other hand, if the condition is not satisfied in step 122, then the procedure goes to step 1204 to determine whether the block is reduced or deleted. Here, if the block representative score satisfies the condition of equation (8), it is determined that block reduction / deletion is performed, and block reduction / deletion is performed in step 125. Here, if N> 2, the block is reduced (the management list remains), so the procedure proceeds to step 127. In step 127, a new link list is constructed. Here, we assume a method to take lists one by one from the old list and connect them to the new link list.
ブロック削除の場合、 もはや管理リストは残存しないため、 手順 1 2 0 6から 手順 1 2 0 9の終了判定に向かう。 そして、 次の再構成されていないブロックの 処理に移る。 全てのブロック力処理されると、 手順 1 2 0 9において当該ループ の終了が判定され、 図 4に示した手順 4 0 7へ向かう。  In the case of block deletion, since the management list no longer remains, the procedure goes from step 122 to the end judgment of step 122. Then, processing proceeds to the next unreconstructed block. When all the block forces have been processed, the end of the loop is determined in step 1209, and the procedure proceeds to step 407 shown in FIG.
以上の処理によって、 一連の認識処理が実行できる。  With the above processing, a series of recognition processing can be executed.
<実施例 2 >  <Example 2>
図 1 3は、 本発明に係る音声認識システムの他の実施例 (実施例 2 ) を示す処 理手順の全体図であり、 図 4で示した実施例 1の処理手順と若干構成が異なって いる。 本実施例では、 各ブロックのサーチごとにブロックスコアを評価し、 その 結果、 ある条件を満たす時、 再構成を実行する。  FIG. 13 is an overall view of a processing procedure showing another embodiment (Embodiment 2) of the speech recognition system according to the present invention, which is slightly different from the processing procedure of Embodiment 1 shown in FIG. I have. In this embodiment, the block score is evaluated for each search of each block, and as a result, when a certain condition is satisfied, reconstruction is executed.
ここでは、 単一のしきい値によってブロックを制御する。 このしきい値を Θと 置く。 これは、 例えば、 次の式 ( 1 1 ) で示すように計算できる。 Here, the block is controlled by a single threshold. This threshold is Θ Put. This can be calculated, for example, as shown in the following formula (11).
Θ =p(t)+q … ( 1 1 ) ただし、 上式において P ( t )は tの関数であり、 qは定数である。 Θ = p (t) + q… ( 11 ) where P (t) is a function of t and q is a constant.
上記関数は、 通常、 tの増加に伴い p ( t )が減少するように設定する (例えば、 傾きが負の一次関数) 。 ビタビスコアはいわば条件付きの確率値であるから、 探 索が進行するに従って、 スコア (確率) は小さくなる傾向がある。 そこで、 評価 するしきい値も 「 tが大きくなるに従って、 小さくする」 し、 各フレームにおい て、 相対的にスコアの小さいものを除くことができるようにする。  The above function is usually set so that p (t) decreases as t increases (for example, a linear function with a negative slope). Since the Viterbi score is a conditional probability value, the score (probability) tends to decrease as the search progresses. Therefore, the threshold value to be evaluated is also set to “decrease as t increases” so that those with relatively small scores can be excluded in each frame.
なお、 スコアとして対数確率 (負になる) の絶対値 (距離とも呼ばれる) を使 う場合もある。 このような場合、 tの増加に伴いスコアも増大するため、 p ( t ) は tの増加に伴い増加するように設定する。  In some cases, the absolute value (also called distance) of the log probability (becomes negative) is used as the score. In such a case, since the score also increases as t increases, p (t) is set to increase as t increases.
本実施例では、 上記条件を当該ブロックが満たしたとき、 ブロックの縮小 '削 除が発生し、 これと同時に、 ブロックが拡張される。 スクラップ &ビルドによつ てブロックを一定にするプロック再構成が実行される。  In this embodiment, when the above condition is satisfied by the block, the block is reduced / deleted, and at the same time, the block is expanded. Block restructuring is performed to keep blocks constant by scrap & build.
手順 1 3 0 1は、 図 4に示した手順 4 0 2の並列ビタビサーチの後に実行され る。 ここで、 図 1 4に手順 1 3 0 1の処理の流れを示す。 手順 1 4 0 1では、 サ ーチの結果に基づいて、 ブロックスコアが計算される。 これは、 実施例 1と同様 に代表スコアを用いても良いが、 ここでは他の例として、 スコアの総和 (平均値) を用いることにする。  Step 1301 is executed after the parallel Viterbi search of step 402 shown in FIG. Here, FIG. 14 shows the flow of the process of the step 1301. In step 1401, a block score is calculated based on the results of the search. In this case, the representative score may be used as in the first embodiment, but here, as another example, the sum total (average value) of the scores will be used.
このスコアの総和が手順 1 4 0 2で判定され、 式 ( 1 1 ) の条件を満たす時、 ブロックの再構成が実行される。 すなわち、 当該ブロックは、 手順 1 4 0 4で縮 小ないし削除される。 そして、 手順 1 4 0 3で、 削除ないし縮小されたブロック の代わリに、 未だプロック拡張されていないブロックで最も大きいスコアのプロ ックを拡張する。 本実施例では、 リンクリストはソートされている (後で詳述) ので、 大きい順にブロック拡張されていないリストをサーチすれば良い。  The sum of the scores is determined in step 1402, and when the condition of the equation (11) is satisfied, the block is reconstructed. That is, the block is reduced or deleted in step 144. Then, in step 1443, instead of the block that has been deleted or reduced, the block having the largest score in the block that has not yet been block-expanded is expanded. In the present embodiment, the linked list is sorted (to be described in detail later). Therefore, a list that is not block-expanded in descending order may be searched.
サーチの終ったプロックは、 手順 1 4 0 4で、 ブロックが削除 (当該プロック のノードが並列度 X Nで表現される場合の Nが 1の場合) される場合を除いて、 管理プロックをリンクリストにリンクしなければならないので、 手順 1 4 0 6に よってリンクリス卜にリンクされる。 After the search, the block is deleted in step 144. Unless the node is represented by the parallel degree XN, N is 1), the management block must be linked to the link list unless it is Is done.
手順 1 4 0 6および手順 1 4 0 7は、 リンクリストの適正配置のための処理で ある。 具体的には、 バブルソートを用いて、 リンクリストを順に整える。 バブル ソートは、 簡単に例を示せば、 A〉B〉Cの順にリンクされているリストに Dを リンクする場合、 Aから順に大小比較し、 Dより小さいものが見 かった段階で、 そこに挿入するソートの方法である。 例えば、 Dを A、 Bと順に比較して行き、 それぞれ A> D、 B〉Dであり、 Cまできてようやく C < Dだとすると、 B C間 に Dを挿入する。 手順 1 4 0 7では、 具体的には、 この大小比較を行い、 この結 果に基づいて、 適切でなければ (条件を満たさなければ) 手順 1 4 0 6へ戻り、 次のリンクリストをアクセスする。 この繰り返しにより、 リンクリストはソート される。 ソートした場合、 スクラップ &ビルドが可能になると共に、 図 4に示し た手順 4 0 8での認識候補の出力が容易になるなどの利点がある。  Step 1406 and step 1407 are processing for proper placement of the link list. Specifically, the link list is arranged in order using bubble sort. In a simple example, if you link D to a list that is linked in the order of A> B> C, bubble sorting is performed by comparing the sizes in order from A, and when something smaller than D is found, This is the sort method to be inserted. For example, D is compared with A and B in order. If A> D and B> D respectively, and finally C <D, then D is inserted between B and C. In step 1407, specifically, this magnitude comparison is made. Based on the result, if it is not appropriate (if the conditions are not satisfied), the procedure returns to step 1406 to access the next link list I do. By repeating this, the link list is sorted. Sorting has advantages such as enabling scrap & build and facilitating output of recognition candidates in step 408 shown in FIG.
拡張したプロックは、 次のサーチの時に新しいスコアでソー卜すれば良いので、 手順 1 4 0 3の次は図 4に示した手順 4 0 3の実行に移る。  The expanded block can be sorted with the new score at the time of the next search. Therefore, after step 1403, the procedure moves to step 400 shown in FIG.
産業上の利用可能性 Industrial applicability
本発明に係る音声認識システムでは、 使用する並列型マイクロコンピュータに おける並列演算器の特性に応じて探索ノードを選択し、 データを管理しているた め、 並列処理効率の良いビームサーチが実現できる。 ブロック (一連のノードの かたまり) の構造とベクトル変数を格納するレジスタとが対応しているため、 ベ クトル変数のロードおよびストァがー括して実行できる。  In the speech recognition system according to the present invention, a search node is selected and data is managed according to the characteristics of the parallel computing unit in the parallel microcomputer used, so that beam search with high parallel processing efficiency can be realized. . Since the structure of a block (a block of a series of nodes) corresponds to the register that stores vector variables, the loading and storage of vector variables can be performed collectively.
また、 並列演算もマスクや端点処理の必要がないため、 そのような専用機能の 無い単純なマルチメディア型マイクロコンピュータでも、 効率的な実行が可能に なる。 また、 マスクや端点処理機能のある並列計算機を用いても、 本発明の方法は非 常に効率が良い。 ブロックとして取り扱うノード数は、 並列度の整数倍であるが、 これは同じ一括実行において処理できるノード数の最大値であるため、 同一の演 算量で (ただし、 ブロック管理のコストは除く) 最大の探索ノード数になる。 また、 ビーム幅は、 例えば単語や音素などの各認識要素において可変できるた め (ただし、 並列度の整数倍である) 、 不要な探索を割愛できる。 このため、 従 来のビーム幅可変型のビームサーチ (しきい値による枝がリ法等),と同様に、 探 索ノード数を抑制しつつ認識性能を劣化させないサーチが可能である。 Also, since there is no need for masking or endpoint processing in parallel operations, efficient execution is possible even with a simple multimedia microcomputer without such dedicated functions. Further, even when a parallel computer having a mask and an end point processing function is used, the method of the present invention is very efficient. The number of nodes handled as blocks is an integer multiple of the degree of parallelism, but since this is the maximum value of the number of nodes that can be processed in the same batch execution, the same amount of computation (excluding block management costs) Of search nodes. Also, since the beam width can be varied for each recognition element such as a word or phoneme (however, it is an integer multiple of the degree of parallelism), unnecessary search can be omitted. For this reason, similar to the conventional beam search of the variable beam width type (eg, the branch based on the threshold is the re-method), it is possible to perform the search while suppressing the number of search nodes and without deteriorating the recognition performance.

Claims

請 求 の 範 囲 The scope of the claims
1 . 同時に複数の命令を実行する並列処理機能を有する並列型マイクロコンピュ ータを用いて音声認識処理を行う音声認識システムであって、 1. A speech recognition system that performs speech recognition processing using a parallel microcomputer having a parallel processing function of executing a plurality of instructions at the same time,
現在の状態が Iステツプ前の状態によつて規定される確率過程である隠れマル コフモデル (HMM ) を用い、 音声信号を単語や音素などの認識要素の部分区間 に分割したフレームごとに、 その音響的な特徴を、 定常的な音源 前記 H MMに よって表現し、 入力された認識要素の音響的特徴と同じ音響的特徴に対して、 各 H MMによって生成されうる確率である尤度を計算し、 最も尤度の高いモデルを 認識候補とする HMM音声認識法を用いた音声認識システムにおいて、  Using a hidden Markov model (HMM), which is a stochastic process in which the current state is defined by the state before the I step, the audio signal is divided into sub-intervals of recognition elements such as words and phonemes for each frame. Are expressed by the stationary sound source HMM, and the likelihood, which is the probability that each HMM can generate the same acoustic feature as the acoustic feature of the input recognition element, is calculated. , In a speech recognition system using the HMM speech recognition method with the model with the highest likelihood as a recognition candidate,
各モデルごとに、 前記計算によリ求められる尤度を最大にする状態遷移系列 (最適パス) の値で評価する探索を実行する際に、 探索する状態遷移系列 (パス) を全てのパスの中の一部の有望なパスに限定して行うビームサーチを前記並列型 マイクロコンピュータでの音声認識処理に適用し、  For each model, when performing a search that evaluates with the value of the state transition sequence (optimal path) that maximizes the likelihood obtained by the calculation, the state transition sequence (path) to be searched is Applying the beam search limited to some promising paths in the speech recognition processing in the parallel microcomputer,
該ビームサーチにおける各フレームごとの探索状態数であるビーム幅を、 前記 並列型マイクロコンピュータが同時にデ一タ処理を行える並列度の整数倍となる ように制御する制御手段により音声認識処理を行うことを特徴とする音声認識シ ステム。  Speech recognition processing is performed by control means for controlling the beam width, which is the number of search states for each frame in the beam search, to be an integral multiple of the degree of parallelism at which the parallel microcomputer can simultaneously perform data processing. A speech recognition system characterized by.
2 . ビーム幅を並列度の整数倍となるように制御する前記制御手段は、 前記モデ ルにおける探索するパス (トレリス上のノード) 群のうちの連続した一連のノー ドから、 前記並列度の整数倍の連続したノードを抽出したプロックを管理するた めの、 各ブロックに所属するノードおよびブロックの評価値を示すテーブルを設 けて、 該テーブル内の当該プロックに所属する各々のノードからプロック全体を 評価した評価結果に基づいて、 探索するノードをプロック単位で一括して探索継 続か探索打ち切りかを判定する判定手段からなることを特徴とする請求の範囲第 2. The control means for controlling the beam width to be an integral multiple of the degree of parallelism comprises: a continuous series of nodes from a group of paths (nodes on the trellis) to be searched in the model; A table showing nodes belonging to each block and an evaluation value of the block for managing blocks extracted from an integer multiple of continuous nodes is set, and blocks from each node belonging to the block in the table are set. Claims characterized in that it comprises a judging means for judging whether to continue searching or to abort the search for nodes to be searched collectively in block units based on the evaluation result obtained by evaluating the whole.
1項に記載の音声認識システム。 The speech recognition system according to item 1.
3 . 前記判定手段は、 部分音声区間である前記フレームのブロックから前記フレ ームに属する各ノードのスコアを計算する第 1の手順と、 このスコアから次のフ レームでの探索プロックを決定する第 2の手順を有し、 前記フレームにおいてス コアの計算および探索ノードの選択等のためのビームサーチを実行している時に、 前記第 1及び第 2の手順によリ、 前記並列度の整数倍となるようにビーム幅を制 御することを特徴とする請求の範囲第 2項に記載の音声認識システム。 3. The determining means comprises: a first step of calculating a score of each node belonging to the frame from a block of the frame that is a partial voice section; and determining a search block in a next frame from the score. A second procedure, wherein when performing a beam search for calculating a score and selecting a search node in the frame, the first and second procedures include: 3. The speech recognition system according to claim 2, wherein the beam width is controlled so as to double the beam width.
4 . 次のフレームでの探索プロックを決定する前記第 2の手順は、 .ブロックに属 する各ノードから可能な状態遷移に対するスコアを計算する計算手順と、 該計算 手順の結果と現在のプロックの位置である所属するノードの組みから最もスコア の和が大きくなるプロックの組みを選択する選択手順と、 前記ノードの組みを次 のフレームにおけるブロックとするために選択したノ一ドの組みをブロックを管 理するリストに記録する記録手順とを有するブロックの更新手段からなることを 特徴とする請求の範囲第 3項に記載の音声認識システム。 4. The second procedure for determining a search block in the next frame includes: a calculation procedure for calculating a score for a possible state transition from each node belonging to the block; and a result of the calculation procedure and the current block. A selection procedure of selecting a block combination having the largest sum of scores from a set of nodes to which the node belongs, and a block of the selected node set in order to make the set of nodes a block in the next frame. 4. The speech recognition system according to claim 3, comprising: a block updating unit having a recording procedure for recording in a list to be managed.
5 . 次のフレームでの探索ブロックを決定する前記第 2の手順は、 ブロックスコ ァを評価するスコア評価手順と、 ブロックに属する各ノードより継続された探索 パスに対応する各ノードを次のフレームでの探索の対象とするか否かの基準を決 定する基準決定手順と、 ブロックスコアが当該基準を下回った時にブロックに所 属するノードを全て探索の対象から除外する除外手順とを有する探索ブロック選 択手段からなることを特徴とする請求の範囲第 3項に記載の音声認識システム。 5. The second procedure for determining a search block in the next frame includes a score evaluation procedure for evaluating a block score, and each node corresponding to a search path continued from each node belonging to the block in the next frame. A search block having a criterion determination procedure for determining a criterion for determining whether or not to be a search target in a search, and an exclusion procedure for excluding all nodes belonging to the block from search targets when the block score falls below the criterion. 4. The speech recognition system according to claim 3, comprising a selection unit.
6 . 前記ブロックの更新手段は、 ブロックスコアを評価するスコア評価手順と、 ブロックの探索範囲であるビーム幅を拡張するための基準を決定する基準決定手 順と、 プロックスコアが当該基準を上回つた時にプロックに所属するノードと隣 接する並列度と等しい数のノードの組みを新しくプロックに組み込む組込手順と からなることを特徴とする請求の範囲第 4項に記載の音声認識システム。 6. The block updating means includes: a score evaluation procedure for evaluating a block score; a criterion determination procedure for determining a criterion for expanding a beam width, which is a search range of a block; and a block score exceeding the criterion. 5. The speech recognition system according to claim 4, further comprising: a step of incorporating, in the block, a set of nodes belonging to the block and a number of adjacent nodes equal to the degree of parallelism.
7 . 前記ブロックの更新手段は、 ブロックスコアを評価するスコア評価手順と、 当該認識要素の複数のプロックで探索している時にその探索範囲であるビーム幅 を縮小するための基準を決定する基準決定手順と、 ブロックスコアが当該基準を 下回った時にプロックに所属するノ一ドの中から前記並列度の数だけ少ない連続 したノードを選択するノード選択手順とからなることを特徴とする請求の範囲第 4項に記載の音声認識システム。 7. The block updating means includes: a score evaluation procedure for evaluating a block score; and a beam width which is a search range when searching with a plurality of blocks of the recognition element. A criterion determination procedure for determining a criterion for reducing the number of nodes, and a node selection procedure for selecting, from the nodes belonging to the block, consecutive nodes whose number is smaller by the parallelism when the block score falls below the criterion. 5. The speech recognition system according to claim 4, comprising:
8 . 前記基準決定手順は、 前記スコア評価手順によりブロックスコアの最小値で ある最小プロックスコアを求める手順と、 この最小ブロックスコアより基準値を 計算する手順とからなることを特徴とする請求の範囲第 5項または.第 7項に記載 の音声認識システム。  8. The criterion determining step includes a step of obtaining a minimum block score, which is a minimum value of a block score, by the score evaluation step, and a step of calculating a criterion value from the minimum block score. A speech recognition system according to paragraph 5 or 7.
9 . 前記基準決定手順は、 前記スコア評価手順によりブロックスコアの最大値で ある最大プロックスコアを求める手順と、 この最大ブロックスコアより基準値を 計算する手順とからなることを特徴とする請求の範囲第 6項に記載の音声認識シ ステム。  9. The reference determination step includes a step of obtaining a maximum block score, which is a maximum value of a block score, by the score evaluation step, and a step of calculating a reference value from the maximum block score. A speech recognition system according to clause 6.
1 0 . 前記基準決定手順は、 フレーム番号に対応する基準を設定するためのデー タが格納されたデータテーブルを具備し、 フレーム番号を評価するフレーム番号 評価手順と、 当該フレーム番号に対応する基準値を計算する基準値計算手順とか らなることを特徴とする請求の範囲第 5項〜第 7項のいずれか 1項に記載の音声 認識システム。  10. The criterion determination procedure includes a data table storing data for setting a criterion corresponding to a frame number, a frame number evaluation procedure for evaluating a frame number, and a criterion corresponding to the frame number. The speech recognition system according to any one of claims 5 to 7, comprising a reference value calculation procedure for calculating a value.
1 1 . 前記ノード選択手段は、 ブロックに所属するノードのうち最もスコアの大 きなノードである最大ノードの位置を評価する最大ノード評価手順と、 前記最大 ノードの位置と当該プロックのノード数および並列度から並列度の数だけ少ない 連続したノードを選択する連続ノード選択手順とからなることを特徴とする請求 の範囲第 7項に記載の音声認識システム。  1 1. The node selecting means includes: a maximum node evaluation procedure for evaluating the position of the largest node that is the node with the highest score among the nodes belonging to the block; 8. The speech recognition system according to claim 7, further comprising: a continuous node selecting procedure for selecting a continuous node having a number smaller than the degree of parallelism by the number of parallelisms.
PCT/JP1998/001714 1998-04-15 1998-04-15 Speech recognition system using parallel microcomputer WO1999053477A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP1998/001714 WO1999053477A1 (en) 1998-04-15 1998-04-15 Speech recognition system using parallel microcomputer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1998/001714 WO1999053477A1 (en) 1998-04-15 1998-04-15 Speech recognition system using parallel microcomputer

Publications (1)

Publication Number Publication Date
WO1999053477A1 true WO1999053477A1 (en) 1999-10-21

Family

ID=14208051

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1998/001714 WO1999053477A1 (en) 1998-04-15 1998-04-15 Speech recognition system using parallel microcomputer

Country Status (1)

Country Link
WO (1) WO1999053477A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015120A (en) * 2006-07-04 2008-01-24 Toshiba Corp Voice recognition apparatus and its method
JP2012505477A (en) * 2008-10-10 2012-03-01 ファストウ,リチャード・エム Real-time data pattern analysis system and method of operation thereof
JP2013114202A (en) * 2011-11-30 2013-06-10 Nippon Telegr & Teleph Corp <Ntt> Speech recognition method, device for the same and program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01144100A (en) * 1987-11-30 1989-06-06 Nec Corp Pattern matching system
JPH01274197A (en) * 1988-04-27 1989-11-01 Mitsubishi Electric Corp Continuous speech recognition device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01144100A (en) * 1987-11-30 1989-06-06 Nec Corp Pattern matching system
JPH01274197A (en) * 1988-04-27 1989-11-01 Mitsubishi Electric Corp Continuous speech recognition device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015120A (en) * 2006-07-04 2008-01-24 Toshiba Corp Voice recognition apparatus and its method
JP2012505477A (en) * 2008-10-10 2012-03-01 ファストウ,リチャード・エム Real-time data pattern analysis system and method of operation thereof
JP2013114202A (en) * 2011-11-30 2013-06-10 Nippon Telegr & Teleph Corp <Ntt> Speech recognition method, device for the same and program

Similar Documents

Publication Publication Date Title
US11361758B2 (en) Multi-stage machine learning and recognition
US6735588B2 (en) Information search method and apparatus using Inverse Hidden Markov Model
US11961513B2 (en) Low-power automatic speech recognition device
US8566259B2 (en) Method and system for parallel statistical inference on highly parallel platforms
US20050159952A1 (en) Pattern matching for large vocabulary speech recognition with packed distribution and localized trellis access
JPH11175090A (en) Speaker clustering processor and voice recognition device
JP3459712B2 (en) Speech recognition method and device and computer control device
Chen et al. Future word contexts in neural network language models
JP4298672B2 (en) Method and apparatus for calculating output probability of state of mixed distribution HMM
JP4820240B2 (en) Word classification device, speech recognition device, and word classification program
JP4069715B2 (en) Acoustic model creation method and speech recognition apparatus
WO1999053477A1 (en) Speech recognition system using parallel microcomputer
EP4060657A1 (en) Method and apparatus with decoding in neural network for speech recognition
JP4442211B2 (en) Acoustic model creation method
EP0977173B1 (en) Minimization of search network in speech recognition
JP4586386B2 (en) Segment-connected speech synthesizer and method
Cardinal et al. Large vocabulary speech recognition on parallel architectures
Khassanov et al. Unsupervised and efficient vocabulary expansion for recurrent neural network language models in asr
Pieraccini et al. Implementation aspects of large vocabulary recognition based on intraword and interword phonetic units
JP4243777B2 (en) Transducer processing device, machine translation model creation device, speech recognition model creation device, transducer processing method, transducer processing program, and recording medium
JP5881157B2 (en) Information processing apparatus and program
WO2023112095A1 (en) Speech synthesis device, speech synthesis method, and program
JP4801107B2 (en) Voice recognition apparatus, method, program, and recording medium thereof
JP4801108B2 (en) Voice recognition apparatus, method, program, and recording medium thereof
Rai et al. Keyword spotting--Detecting commands in speech using deep learning

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP KR SG US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 09646424

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: KR

122 Ep: pct application non-entry in european phase