Technical FieldThe invention relates to signal processing generally, and more particularly to means for detecting intervals of silence in encoded speech.
Background of the InventionNormal human speech includes intervals of silence which will be referred to herein as "speech silence." When the speech is transmitted electronically, such as in a communications network, the speech-silence occupies a significant portion of the total transmission time. This leads to inefficient use of the communications network, since the only information which is transmitted during the course of the entire speech-silence interval, no matter how long, is the existence of the interval and its duration.
Efforts have been made to improve the efficiency of transmission by inserting other information, such as data, in the silence intervals on a time assignment basis. Such an approach is presently used for transatlantic cable and satellite communications which are known as TASI (time assignment and speech interpolation) systems. A system of this type is described, for instance in U.S. Pat. 4,100,377.
Speech silence may be detected even in voice signals which have already been digitally encoded into a pulse code modulated (PCM) format. This is described, for example, in U.S. Pats. 3,909,532 and 4,449,190.
Where both encoded speech and data signals share a carrier on a time assignment basis, there is a need for a high degree of accuracy in the determination of speech-silence intervals in order to permit the maximum use of the interval without degradation of the reconstructed speech. Of primary interest in this regard, therefore, are speech-silence boundaries. These are a transition either from voice to silence or from silence to voice. Accordingly, there is a need for speech-silence boundary detection with improved accuracy.
Summary of the InventionIn accordance with the novel method and apparatus of the present invention, speech-silence boundaries are detected in the digitally encoded data of at least two subbands of the speech signal. Energy estimates are made for each of the frequency subbands for generating a detection statistic to estimate short-term speech energy. A threshold which is adapted to the long-term speech level is computed. This threshold is compared to the detection statistic to make a decision as to the presence of a silence interval. The resulting detection has significantly improved accuracy over detection using only one frequency band.
Brief Description of the Drawing- FIG. 1 is a functional block circuit diagram of a two-band subband encoder with speech detection in accordance with one example of the present invention.
- FIG. 2 is a functional flow diagram showing in more detail a speech statistic computation subunit of the apparatus of FIG. 1.
- FIG. 3 is a functional flow diagram showing in more detail a threshold computation subunit of the apparatus of FIG. 1.
- FIG. 4 is a functional flow diagram showing in more detail a speech determination subunit of the apparatus of FIG. 1.
Detailed DescriptionThe two-band subband encoder 10 with speech detection shown in FIG. 1 includes a lower frequency subband, or lowband encoding circuit 12 made up of a low passquadrature mirror filter 14, a by-twodecimator 16, and an ADPCM (adaptive digital pulse code modulation)encoder 18. In parallel with thelow band circuit 12 is a higher frequency subband, or highband encoding circuit 20 made up of a high passquadrature mirror filter 22, a by-twodecimator 24, and anADPCM encoder 26. Both of theencoding circuits 12, 20 operate with a sampling rate of 12 kHz (kilohertz) and receive the same 5.5 kHz analog speech input signal. They send their outputs to amultiplexer 28 for transmission. The details of subband encoding circuits such as thecircuits 12, 20 and themultiplexer 28 are known to those in the art and are described, for example, in the U.S. Pat. 4,048,443 in "Sub-band Coding," by R. E. Crochiere in the Bell System Technical Journal, vol. 60, No. 7, Part 2, pp. 1633-1653, Sept. 1981, and in "Digital Voice Storage In a Microprocessor," by J. L. Flanagan, J. D. Johnston, and J. W. Upton, IEEE Transactions On Communications, Feb. 1982, vol.COM 30, no.2, pp.336-345.
Aspeech detector 30, which includes a speechthreshold computing subunit 32, a speechstatistic computing subunit 34, and a determiningsubunit 36 is adapted to provide an output to themultiplexer 28 which will result in the insertion of a speech presence indicator, or speech flag, in the transmitted output. The input to the speechthreshold computing subunit 32 is the step size information from thelow band encoder 12. The input to the speechstatistic computing subunit 34 is the sample step size information from both thelow band encoder 12 and thehigh band encoder 20. Both thethreshold subunit 32 and thestatistic subunit 34 give their output to thespeech determining subunit 36.
Thestatistic computing subunit 34 is shown in greater detail in FIG. 2. Speech detection is accomplished by deriving information from theencoders 12, 20 and using it to determine whether speech is present or absent. Each of theencoders 12, 20 in the course of its normal encoding function makes a separate determination of the quantizer step size, based on the signal amplitude in its respective subband. For computational efficiency, the log of the step size is determined and used as a pointer to a step-size table. The log step-size parameters are used as estimates of the speech in each band at a given time.
Referring now to FIG. 2, the speech sampling period is represented by τ
0. The log of the step size in the low band is represented by d
L (iτ
0), while the log of the step size in the high band is represented by d
H (iτ
0) at time t=i τ
0. Let T(i
TO) be the speech detection statistic used to determine the speech level. Let σ
L and σ
H be fixed weights associated with d
L (i
TO) and d
H (iτ
0), and let β
DS be a fixed weight such that 0<β
DS<1. Then a detection statistic T(iτ
0) can be computed as follows:
The detection statistic T(iτ
0 ) is smoothed to become a low-pass filtered sum of speech information taken from each subband. The weight β
DS is chosen to give T(iτ
0) a specific time constant which controls the necessary smoothing of the information. A time constant of 16 milliseconds has been found to be suitable. The constants σ
L and σ
H determine the relative weight given to each subband. It has been found to be particularly advantageous to set σ
H at a value of about 1.5 to 2 times the value of σ
L. This accentuates discrimination in the high subband, which contains more information for the detection of fricatives and other consonants. The values of these constants for a particular application may be readily determined by means of laboratory tests by one skilled in the art.
FIG. 3 shows the method of computing a speech presence energy threshold λONand a speech silence energy threshold λOFF. This method is very similar to that used in ADPCM speech detection, using the log step size dL (iτ0) from the lower subband only. M(iτ0) is the maximum of the values σMdL(iτ0); σM is a constant weight. Therefore, when σMdL (iτ0) increases, M(iτ0) increases when σMdL (iτ0) decreases, M(iτ0) decreases only very slowly according to the leak factor BM. M(iTo) is restrained from decreasing to less than its lower limit (MO), so M(iτ0) measures the maximum speech energy in the lower subband.
The variable d'
L can be defined to be
the bias of 32 is used to insure that d'
L and M are always positive. The value of M at time iτ
0 is
The thresholds are fixed distances below M, so, the threshold λ
ON, used to determine when speech changes from OFF to ON, is computed as follows:
the threshold λ
OFF' used to determine when speech changes from ON to OFF, is
the values of C
ON and C
OFF are constants, with C
OFF > C
ON.
FIG. 4 shows how the comparison is done. The speech samples are divided into blocks of some convenient length. (In this
case 24 samples per block are used.) Once per block, a decision is made concerning whether speech is ON or OFF. If, in the previous block, speech was on, then the ON threshold is used; if speech was off, the OFF threshold is used. The switch in FIG. 4 chooses the correct threshold, which is then compared to the detection statistic. The speech flag is set ON or OFF depending on whether the detection statistic is above or below the threshold. Let
TDS be the time interval associated with one block. (In this case, τ
DS= 24
τ0.) Let S denote the speech state with two possible values:
The speech state
S (i
TDS) at time t=i
TDS depends on the previous speech state S[(i-1)
TDS] as follows: when
when
Thesystem 10 can be effectively implemented by a person of ordinary skill in the art of subband encoding by appropriately adapting two or more digital signal processor microcomputers. Such microcomputers are presently in use and may include a memory unit, an arithmetic unit, a control unit, an input-output unit, and a machine language storage unit in a single VLSI circuit. Their function may alternately be provided by a combination of a number of different VLSI circuits interconnected. One such microcomputer which is suitable for implementing thesystem 10 is a DSP (Digital Signal Processor) manufactured by AT&T Technologies, Inc., a corporation of New York, U.S.A. and described, for example, in the above-mentioned Bell System Technical Journal volume.
In one example of a system implemented with twoDSP's, one DSP is used for the encoding and transmission of speech, while the other DSP is used for the reception and decoding of speech. External logic is used to interface the PCM (pulse code modulation) bit streams of each DSP to both analog-to-digital and digital-to-analog converters for speech input and output. The DSP microcomputers also perform speech-silence detection on the speech signal, so that the silence intervals can be used to transmit user- supplied data.
The DSP microcomputers determine the speech state every two milliseconds. The transmitting DSP provides the speech-state status for external circuitry and generates a 112-bit frame for transmission. The frame consists of a 3- bit framing pattern, a 1-bit speech flag, and 24 samples of subband encoded speech. This speech is sampled at a 12 Khz rate and encoded with 5-bit accuracy in the low band and 4- bit accuracy in the high band. When the DSP indicates the speech flag is on, external line interface circuitry will send the DSP-generated frame intact. When the speech flag is off, the 24 samples of speech is replaced by 108 bits of user supplied data. After construction, the frame is sent over a 56 Kbps (kilobits per second) digital channel to another terminal for decoding.
In the receiver, a simple framing algorithm is implemented with a combination of DSP firmware and external line interface circuitry. The framing algorithm searches the incoming 56 Kbps signal to find the orientation of the 3-bit framing pattern. After the receiving DSP synchronizes itself with the framing pattern, it reads the speech state flag. If the speech state flag is present, the DSP begins decoding the incoming speech signal for listening, but if the flag is absent, the DSP signals external circuitry to remove the data and send it to a user interface. This pattern is repeated every two milliseconds, as long as a valid framing pattern is detected.
The equations above describe the general concepts involved in determining the quantities needed by the speech detector. Due to finite bit length and timing considerations in the DSP, some of these equations are preferably slightly modified. For example, the
system 10 is based on a 24-sample frame, so every 24 samples a decision is made as to whether speech is present. The speech detection statistic is computed in this framework by the DSP as follows:
So T (iτ
DS ) is updated each sample period by adding σ
Ld'
L+ αηd' to it, and it is leaked once per block of 24 samples. The value of the maximum level M must also be computed slightly differently to obtain accurate results with the DSP. Let τ
MAX be the time interval between two successive points at which M is leaked. Experimentally, it was found that τ
MAX= 8 seconds works well. The equation for M that may be implemented in the
The thresholds only need to be computed once per 24 samples, so that they can be used to detect the presence or absence of speech.
The speech state is determined in the same way as described in Section 11.2 by equations (6-8).
This invention is not limited to two-band subband coding. The detection statistic T(i
TO) and maximum level M(iτ
0) can include information from a larger number of subbands, using equations similar to equations (1) - (11) above. Silence detection with five- band subband coding is an example of this. Let d
j(i
TO) for j = 1,..., 5 be the log step size values for each of the five bands, let σ
j, j = 1,...,5 be fixed weights, and let β
DS be a leak factor slightly less than 1. In analogy with equation (1), a general equation describing the speech detection statistic is
Letting u, j=1,...,5 be fixed weights, and B
M a fixed leak factor slightly less than 1, the general equation for the maximum level is
Some of the weighting factors σ
j or µ could be zero. As in equations (9)-(11), equations (12)-(13) can be slightly altered to conform to a specific hardware implementation, such as an implementation using a DSP microprocessor. It is also necessary to choose specific values of the parameters in equations (12)-(13). For the computation of the detection statistic, σ
1= σ
2, and σ
3= σ
4= 2a
1, giving a greater weight to the higher frequency bands; band 5 is not used, so σ
5 = 0. For the computation of a maximum level, µ
1= µ
2, and µ
3= µ
4= µ
5 = 0. The maximum level depends on the energy in the low-frequency bands, giving a smooth long-term average.
In theory, the equations (12) and (13) can be extended to any number of bands. However, as the number of bands increases, the time delay associated with computing the detection statistic and maximum level also increases. Therefore there is a practical limit to the number of bands that can be used in this system.