Method of and device for decoding block-coded messages affected by symbol substitutions, insertions and deletions

Abstract: A method is described for decoding messages coded as blocks consisting of a fixed number of symbols and affected by symbol substi­ tutions, deletions and insertions, wherein, for each received message having a length comprised within predetermined limits, a sequence of words (error frames) is generated which comprise all possible error combinations which can be corrected in the message. By using such error frames, a decoded word is generated for each frame, the probabi­ lity that a decoded word actually is the transmitted word is calcu­ lated and the decoded word, whose probability value satisfies prede­ termined criteria, is emitted as decoded message. A device for carrying out the method is also provided.

Description: The present invention relates to coded-signal transmission systems, and more particularly it concerns a method of and a device for decoding messages coded as fixed-length blocks and affected by symbol substitutions, deletions and insertions. Preferably, but not exclusively, said messages are speech messages and the invention is applied in speech recognition systems, e.g. in systems based on transmission and subsequent decoding of messages formed by a sequence of digits. Systems of this kind can be used in modern telephone networks to let authorized subscribers to have access to particular facilities, such as speech electronic mail, bank information, etc. If the information obtainable by these facilities is confidential, the subscriber may have access to it only by pronouncing or dialling (or keying) his identification number, composed of a fixed number of digits, which can represent a word chosen out of a code. For various reasons, including line noises, symbol substitutions, deletions and insertions are possible and must be corrected during decoding. In digital transmissions, it is common practice to use codes requiring transmission of sequences composed of a fixed number of symbols and allowing error correction by decoders at the receiving end, e.g. by exploiting redundancy symbols added to the information symbols and suitably computed: Reed-Solomon code is an example of such codes and its characteristics are described e.g. in the paper "A Universal Reed-Solomon Decoder", by R. Blahut, IBM Journal of Research and Development, Vol. 28, N. 2, March 1984. However, in digital transmissions, locations of possibly lost symbols can be identified by comparison with the noise level and symbol insertion is impossible (with the exception of catastrophic failures in timing systems): hence known decoders are designed only to correct substitutions and fill erasures. On the contrary, in the applications envisaged for the present invention, locations of lost symbols are not recognizable and, in addition, symbol insertions are possible: hence known decoders cannot be used. From US-A 4 059 825, decoding of messages coded as blocks, each block consisting of information bits and redundancy bits, is known, wherein the blocks might be affected by symbol substitutions, insertions and deletions caused by loss of the phase synchronism which loss itself is caused by burst errors. The method uses a "slip length" which is the difference between the bit numbers of the transmitted codeword and the same codeword having been received. If necessary, the code sequence is corrected by an appropriate decoding algorithm. The aim of the invention is to provide a method and a device which, by converting symbol deletions and insertions into erasures, allow also messages affected by these kinds of errors to be decoded in conventional decoders. The method according to the invention is characterized in that it comprises the steps of: generating, for each message received with a length lying in a predetermined range, i.e. within predetermined limits, a sequence of words, hereinafter referred to as "error frames", comprising all the combinations of locations of possible deletions and insertions in a message of that length, each word being composed of a number of symbols equal to said fixed number, each symbol indicating deletion or insertion error or still reception of one symbol in correspondence with one transmitted symbol; obtaining from each message received, using said error frames, a decoded word for each error frame; calculating the probability that a decoded word actually is the transmitted one; emitting, as decoded message, the decoded word whose probability value satisfies predetermined criteria, or generating a request for retransmission, if no word satisfies such criteria. The device carrying out the method is characterized in that, upstream the conventional channel decoder an error frame generator is provided, controlled by the message length and arranged to generate and to forward to the channel decoder, if the message length lies within a predetermined range, a sequence of words (error frames) comprising all the combinations of locations of deletions and insertions possible in a message of such length, each error frame comprising a number of symbols equal to said fixed number, each symbol indicating either deletion or insertion of symbols in the received message, or yet reception of one symbol in correspondence with one transmitted symbol; in that said channel decoder is arranged to emit, for each received message, a number of decoded words equal to the number of error frames, and is followed by a computing circuit which receives such decoded words, the error frames and the message to be decoded, and calculates the probability that each of said decoded words is the transmitted word, and by a selection logic which, on the basis of the probability values, decides whether a decoded word, and which, is to be supplied to devices utilizing the decoded message. The invention will now be described in greater details with reference to the annexed drawings, which show a preferred embodiment thereof applied to speech message transmission and in which: Fig. 1 is a block diagram of a speech message transmission system using the device according to the invention; Fig. 2 is a diagram of the error frame generator; Fig. 3 is a diagram of a likelihood probability computing circuit; Fig. 4 is a diagram of the selection logic; Fig. 5 is a flow chart of the operations of a circuit of the selection logic. In Fig. 1 a speech message transmission system using the present invention comprises a transmitter TR which sends on transmission line 1, more particularly a telephone line, coded speech messages consisting of a fixed number of symbols, each symbol representing for instance one of digits 0...9. Such messages form e.g. a personal number allowing a subscriber to have access to a particular facility or utilizing device (speech electronic mail, etc..). By way of example, we will suppose that each message constitutes a word of a shortened Reed-Solomon code, according to which messages are transmitted comprising 8 symbols (4 information symbols and 4 redundancy symbols). The alphabet of said code is a finite field of order 16 ( the lowest power of 2 not smaller than the number, 10, of symbols used in the messages in the considered example); a subset of words of such a code is used, which words satisfy each the constraint that the symbols contained therein (both information and redundancy symbols) belong to a subfield, containing 10 elements, of the finite field above. Because of the algebraic properties of said Reed-Solomon code, the minimum Hamming distance d is 5. As known, this means that it is possible to correct substitutions and erasures such that 2e + c ≦ d - 1, where e = number of substitutions and c = number of erasures. It is also to be noted that, taking into account the above statements, each code word ought to comprise 15 symbols; the seven unused symbols can be exploited in reception phase to assist in error recognition. The messages present on line 1 are received by a speech recognizer RV which, through a connection 2, supplies decoding device DD, which is the subject matter of the invention, with the recognized symbol sequence. The way in which said symbols are transmitted on connection 2 depends on the type of speech recognizer and has no interest for the invention: by way of example, we assume that the recognizer supplies binary signals and that each symbol is represented by 4 bits. Device DD sends the messages it was able to decode to utilization device DU, through a connection 3; in case of decoding failure, DD asks on the contrary transmitter TR for message retransmission, through a signal transmitted on a wire 4. To allow decoding of messages affected by symbol substitutions, deletions and insertions, decoding device DD comprises: an error-frame generator GE, which generates either word sequences comprising all the possible combinations of errors which can be corrected, or a signal inhibiting the other units in DD and requesting retransmission; each word comprises the same number of symbols as a codeword, each symbol indicating either symbol deletion or insertion in the message received or yet normal reception (one symbol received for one transmitted symbol); such words will be hereinafter referred to as "error frames"; the actual channel decoder DEC, which either generates a decoded word for each error frame or signals a decoding failure; a device CAL calculating the probability that a decoded word is the transmitted word (word likelihood); a selection logic LS deciding whether a word, and which, is to be forwarded to utilization device DU. Error-frame generator GE is controlled by the length of the message received, supplied by recognizer RV through a connection 5. If the received message length is the same as that of the transmitted message or the length difference does not exceed a predetermined value, GE emits one of said word sequences (chosen according to such a length) on a first output 6, otherwise it emits on a second output 7 the signal disabling the other units in device DD and requesting message retransmission. To this aim wire 7 is connected to an input of an OR gate POR, whose output is wire 4. A possible embodiment of GE will be described with reference to Fig. 2. Channel decoder DEC receives the recognized message from RV, through connection 2, and the error frames from GE, through connection 6, and emits either the decoded words on a first output 8, or the signalling of decoding failure on a second output 9. Also wire 9 is connected to an input of gate POR. Since each error frame informs the decoder of a location affected by deletion or insertion errors, said errors will be considered as erasures and hence decoder DEC can be a conventional decoder for Reed-Solomon codes, able to correct substitutions and erasures and to signal decoding failures, of the type used for digital transmissions and described in the cited paper. Device CAL receives the decoded words from DEC and the corresponding error frames from GE, calculates the probability that a decoded word is actually the word transmitted by TR and supplies LS with the calculated value, via a connection 10. A possible embodiment of CAL is shown in Fig. 3. Logic LS receives the decoded words from DEC and the likelihood from CAL, and emits either the word whose likelihood satisfies predetermined criteria (e.g. the word whose probability is maximum, provided that such a maximum is sufficiently different from the immediately lower values) or a retransmission request signal; that signal is presented on wire 11, connected to a further input of POR. In the following detailed descriptions, the words on connections 2, 6, 8 are assumed to be transmitted in parallel. Fig. 2 represents a possible embodiment of error-frame generator GE in case the words that can be decoded have a length ranging from 7 to 9 symbols, with at most one deletion and/or one insertion. This assumption is not very limiting, since simple calculations can prove that the probability of losing or adding more than one symbol when transmitting 8 symbols is very low. On the other hand, the decoding impossibility merely results in the necessity of requesting message retransmission, and, owing to the kind of applications of the device, a slight increase in the probability of requesting retransmission is not very annoying for the subscribers. Generator GE basically consists of a pair of read only memories ROM1, ROM2. The first memory is addressed by the received word length and supplies: the signal indicating length out of the range (wire 7), if such length is smaller than 7 or greater than 9; the address of the first word to be read in ROM2 (connection 12) and the number N of words to be read (connection 13), if the length ranges from 7 to 9. Memory ROM2 stores the error frames, which can be as listed in the following table I: In the table, C means deletion, I insertion, and X indicates the position of a normally received symbol (no matter whether or not the symbol is correct). The first 8 words are emitted by GE if the received message comprises 7 symbols, the subsequent 57 words are emitted if the message comprises 8 symbols and the last 8 words are emitted if 9 symbols are received. It is to be noted that, owing to the code characteristics, a word containing a single substitution, if there are symbol deletions and/or insertions, or a word with two substitutions, in the absence of deletions and/or insertions, can be decoded. In a conventional manner, the reading addresses for ROM2 are presented at output 15 of an arithmetic adder SM which receives the value present on connection 12 and the signal present on output 16 of a counter CN; the latter receives value N present on connection 13 and counts from 0 to N-1, upon command of a clock signal CK1. The carry-out signal of CN, present on wire 14, is used by LS (Fig. 1) to recognize the instant at which it is to decide whether or not a decoded word is to be forwarded to DU. Said signal can also be used to reset all circuits of device DD at the end of a message, so that DD can process a new message. With reference to Fig. 3, the likelihood computing device CAL comprises three parallel-to-series converters SR1, SR2, SR3 loading, upon command of signal CK1, the message recognized by RV, present on connection 2, the error frame, present on connection 6, and the decoded word present on connection 8, respectively. The symbols of the words loaded into SR2, SR3 are sequentially emitted upon command of a clock signal CK2, having a period equal to 1/8 of the period of CK1; the symbols of the word stored in SR1 are on the contrary emitted in a way that depends on the frame error, as will be seen hereinafter. It is to be noted that 8 or 57 words, as the case may be, are to be successively loaded into SR2, SR3, whereas a same word is always to be loaded into SR1: thus SR1 will be preceded by a register RE which keeps the recognized word present for the whole time required to read the whole sequence of error frames from ROM2. Output 15 of SR3 is connected to three read only memories PE0, PE1, PE2 which store probability matrices, conditioned on the transmitted symbol, of deletion, substitution or insertion error, respectively, for a given transmitted symbol. PE0 is addressed by symbol S present on output 15 of SR3, PE1 is jointly addressed by S and by a symbol T of the word contained in SR1 (which symbol is presented on output 16). PE2 is jointly addressed by S, T and by another symbol U of the word contained in SR1 (which symbol is presented on output 17). The outputs of said three memories are connected to the three inputs of a multiplexer MX1 which lets through the value read in PE0, PE1 or PE2 according to whether, in correspondence with symbol S of the decoded word, the error frame symbol indicates deletion, normal reception or insertion. MX1 is controlled by a decoder LD which decodes the error frame symbols. The output signal of LD also serves as control signal for a pointer PU, associated with SR1, which acts so that no symbol, one symbol (T) or two symbols (T, U) of the received word are read from SR1, according to whether the error frame symbol indicates deletion, normal reception or insertion. The output of multiplexer MX1 is connected to a device CPV computing the likelihood of a word: e.g., if the actual error probability values are stored in PE0, PE1, PE2, CPV will be an accumulating multiplier, which is initialized to 1 in correspondence with each decoded word (i.e. by signal CK1) and which, in correspondence with each symbol, multiplies the stored value by the error probability of the symbol itself. If on the contrary error probability logarithms are used, CPV will be an accumulating adder initialized to 0. The output of CPV is connected to an input of an AND gate PA, which is enabled to transfer onto connection 10 the value accumulated in CPV at the end of the computations relevant to each word (signal CK1). Of course, gate PA is enabled only in the absence of the signal on wire 7 indicating that the message received is out of the acceptable length range. For a better understanding, the operation of CAL will be disclosed in the case of a received message containing 8 symbols; the description will be made referring to a decoded word obtained in correspondence with an error frame comprising all error types, e.g. frame 20 of table I. References a1 b1 c1 d1 e1 f1 g1 h1 denote the symbols of the message recognized by RV, and a2 b2 c2 d2 e2 f2 g2 h2 the decoded word symbols. It will be assumed that memories PE0, PE1, PE2 store the actual probability values. For the first symbol a2 of the decoded word, the error frame symbol is X (normal reception). LD causes the first symbol a1 of the message received to be presented on output 16 of SR1 and causes CPV to become connected to PE1 through MX1; CPV multiplies the "1" initially present in its register by probability p1(a1, a2) that symbol a2 is received as a1, and stores the result pv1. In correspondence with the second symbol b2 of the decoded word, the error frame symbol indicates a deletion. As a consequence, reading in SR1 is disabled and MX1 is made to connect PE0 to CPV, which multiplies the stored value pv1 by probability p0(b2) that symbol b2 has been lost and memorizes the new result pv2. In correspondence with the third decoded symbol c2, the error frame indicates again normal reception: LD makes pointer PU advance by 1, so that symbol b1 of the recognized message is presented at output 16 of SR1. MX1 connects PE1 to CPV which multiplies pv2 by probability p1(b1, c2) that symbol c2 has been received as b1: a new partial value pv3 of likelihood is obtained and stored. The fourth error frame symbol indicates insertion: LD causes pointer PU to be incremented twice, so that SR1 presents symbol c1 on output 16 and symbol d1 on output 17, and MX1 transfers to CPV probability p2(c1, d1, d2) that symbol d2 is received as the pair c1, d1: CPV multiplies pv3 by p2 obtaining a new value pv4. The remaining symbols of the error frame indicate again normal reception and hence they are processed like the first and the third symbols. After processing of the eighth symbol, AND gate PA is enabled by CK1 and transfers onto output 10 the likelihood P of the processed word. At the same time CK1 resets to 1 the contents of CPV and causes the loading into SR2, SR3 of the subsequent error frame and decoded word. Fig. 4 shows a possible embodiment of selection logic LS. It is assumed that LS, receiving the sequence of decoded words relevant to a message recognized by RV (Fig. 1), stores only the two words with the greatest likelihood, and sends to utilizing device DU, at the sequence end, the word with maximum probability only if the probability difference between the two words is not lower than a predetermined threshold. Selection logic LS comprises then a 2-position RAM memory MEM, storing in each position a decoded word and the relevant likelihood, and writing and reading control units which establish whether and in which location of MEM a word arriving at LS is to be stored, and, at the end of the sequence, whether a word is to be read or message retransmission is to be requested. Of course the memory will be initialized to null likelihood values, to allow memorization of the first two words of the sequence, whatever their likelihood. The following description is made under the hypothesis that likelihood P1 of word W1 stored in the first position of MEM is always greater than or equal to the likelihood P2 of word W2 stored in the second position, so that W1 is the word to be possibly forwarded to DU. Word W1 is transferred onto output 3 of the device through a switching unit SW which, in alternative, can connect wire 11 to a fixed logic level representing the retransmission request signal. SW can be controlled by the output signal of a comparator CP1, comparing a threshold value SG with value P1/P2 - 1 computed by a circuit CC enabled by the carry-out signal of counter CN (Fig. 2), present on wire 14: CP1 makes SW establish the connection between MEM and wire 3 if the value computed by CC is greater than or equal to the threshold, and the other connection in the opposite case. For writing into either position of MEM a pair of multiplexers MX2, MX3 are provided, both having an input connected to connections 8, 10 conveying decoded words Win and probability values Pin, respectively. MX2 is a 2-input multiplexer, of which the other input is connected to the output of the first position of MEM, whereas MX3 is a 3-input multiplexer whose remaining two inputs are connected to the outputs of the two positions of MEM, respectively. The multiplexers are controlled by signals present on outputs 19, 20 of a unit UC controlling writing into MEM. For the generation of such control signals, probability values P1, P2 present in MEM at the instant of arrival of a word Win (instant signalled by CK1) are fed to an input of two comparators CP2 and CP3, respectively, which receive at a second input value Pin present on connection 10 and compare Pin with P1 or P2, respectively. The comparators indicate whether the values present at their two inputs are equal or different and, in the latter case, which of them is greater. The comparison result is supplied to two inputs (or input groups) of unit UC. UC receives at a further input the bits generated by a random bit generator RG. Said bits (hereinafter referred to as bits RAN) are generated at a rate equal to the frequency of CK1 and are used when Pin is equal to P1 or P2. For each received word Win, UC operates according to the following algorithm, shown in Fig. 5: if Pin > Pi, or Pin = P1 and bit RAN is 1, both multiplexers MX2, MX3 are positioned on their second input, and hence Win and Pin are stored in position 1 of MEM, whereas the previous contents W1, P1 of the first position is transferred to position 2; if none of the preceding conditions has taken place, two solutions are possible: a) if Pin > P2, or Pin = P2 and bit RAN is 1, both multiplexers MX2, MX3 are positioned on their first input and hence Win and Pin are stored into position 2, while data W2, P2 previously stored therein are eliminated; b) if none of the conditions sub a) occurs MX2 is positioned on the first input and MX3 on the third, and hence Win and Pin are not memorized. Of course the input multiplexers of MEM and the comparators will be enabled only in the absence of a signal on wire 7, which signal has no longer been represented in Figure 4 for simplicity sake. The device operation is immediately deduced from the preceding description. The message transmitted by TR (Fig. 1) is recognized by RV and forwarded to DEC and CAL; at the same time the length of the message itself is communicated to GE. It is supposed e.g. that the message comprises 8 symbols, as in the description of the operation of CAL. ROM1 (Fig. 2), receiving the information that the message comprises 8 symbols, indicates that 57 error frames, beginning with the ninth one, are to be read from ROM2, and said frames are emitted in succession on connection 6. In correspondence with each error frame, DEC decodes the received message, considering each indication of deletion or insertion contained in the error frames as an erasure in the corresponding location of the received message, and supplies CAL and LS with the 57 decoded words. CAL calculates as described the probability that each decoded word is the transmitted word and sends the probability values to LS. Unit LS, receiving the probability values and the decoded words, stores or does not store them according to the described algorithm. At the end of error frame emission by GE, the likelihood values of the two words present in memory MEM (Fig.4) are analyzed to decide whether the word with the greatest likelihood is to be sent to the utilizing device as a decoded message. Of course, message retransmission is requested whenever the received message length is beyond the limits or DEC cannot decode the message or LS cannot select a word to be sent to DU. It is worth noticing that DEC, in the decoding operation, considers also the symbols (seven in the described example) which are not actually transmitted and which must have all a determined value, e.g. 0: possible violations of that law (which if the whole codeword were transmitted would be considered as substitutions) give rise in the present case to a decoding failure and consequently to the retransmission request; the probability of supplying a decoded message which does not corresponds to the transmitted message is thus reduced. It is clear that what described has beeen given only by way of non-limiting example and that variations and modifications are possible without going out of the scope of the invention as defined in the appended claims: more particularly, different codes, or different message lengths, or even a different ratio between information and redundancy symbols can be used, or the correction of a different number of errors can be provided for; different algorithms can be used for the selection logic, etc. Besides, even though the example described concerns speech message transmission, the invention can be applied when the message is transmitted in the form of postselection digits, by using the telephone dial or keyboard: this simply requires replacing detector RV by a recognizer of such digits.

Claims: A method of decoding messages coded as blocks composed of a fixed number of symbols and affected by symbol substitutions, deletions and insertions, characterized in that it comprises the steps of: generating, for each message received with a length lying in a predetermined range, a sequence of words, hereinafter referred to as "error frames", comprising all the combinations of locations of possible deletions and insertions in a message of that length, each word being composed of a number of symbols equal to said fixed number, each symbol indicating deletion or insertion error or still reception of one symbol in correspondence with the one transmitted symbol; obtaining from each message received, using said error frames, a decoded word for each error frame; calculating the probability that a decoded word is actually the transmitted one; emitting, as decoded message, the decoded word whose probability value satisfies predetermined criteria, or generating a request for retransmission, if no word satisfies such criteria. A method according to claim 1, characterized in that the retransmission request is generated also when the received message length is out of the range. A method according to claim 1 or 2, characterized in that, as decoded message, the word is emitted having the maximum probability value of being the transmitted one, provided the difference between said maximum value and that immediately inferior is not lower than a predetermined threshold. A method according to any of claims 1 to 3, characterized in that said messages are speech messages. A method according to any of claims 1 to 4, characterized in that each symbol of said message represents one of the digits of the decimal numeration system. A device for decoding messages coded as blocks composed of a fixed number of symbols and affected by symbol substitutions, deletions and insertions, for carrying out the method according to any of claims 1 to 5, comprising a channel decoder (DEC) which receives the messages to be decoded, characterized in that upstream said channel decoder (DEC) an error frame generator (GE) is provided, controlled by the message length and arranged to generate and forward to the channel decoder (DEC), if the message length lies within a predetermined range, a sequence of words (error frames) comprising all the possible combinations of locations of deletions and insertions possible in a message of such length, each error frame consisting of a number of symbols equal to said fixed number, each symbol indicating deletion or insertion of symbols in the received message, or yet reception of one symbol in correspondence with one transmitted symbol; in that said channel decoder (DEC) is arranged to emit, for each received message, a number of decoded words equal to the number of error frames, and is followed by a computing circuit (CAL) which receives such decoded words, the error frames and the message to be decoded, and calculates the probability that each of said decoded words is the transmitted word, and by a selection logic (LS) which, on the basis of the probability values, decides whether a decoded word, and which, is to be supplied to devices (DU) utilizing the decoded message. A device according to claim 6, characterized in that said error frame generator (GE) and said selection logic (LS) are arranged to generate signals requesting retransmission of a message when the message to be decoded has a length which is out of the range or respectively when no word can be forwarded to the utilizing devices (DU), the retransmission request signal emitted by the error frame generator (GE) disabling the channel decoder (DEC), the probability computing circuit (CAL) and the selection logic (LS). A device according to claim 6 or 7, characterized in that said selection logic (LS) supplies said utilizing devices (DU) with the decoded word having the maximum probability value of being the transmitted one, provided that the difference between such maximum value and that immediately lower is not lower than a predetermined threshold. A device according to any of claims 6 to 8, characterized in that the messages to be decoded are speech messages and are supplied to the channel decoder (DEC) and the probability computing circuit (CAL) by a speech recognizing device (RV), which supplies the error frame generator (GE) also with the information on the length of the message received.

Inventors: PIRANI GIANCARLO, TARICCO GIORGIO, PIRANI, GIANCARLO, TARICCO, GIORGIO
Applicants: CSELT CENTRO STUDI LAB TELECOM, CSELT CENTRO STUDI E LABORATORI TELECOMUNICAZIONI S.P.A.
Application year: 1988
Main classification: H03M13
IPC codes: G10L11, H03M13, G10L15, H04L1