Field of the Invention
The present invention relates to a process and apparatus for determining whether an electronic communication signal is composed primarily of speech or noise. More particularly, the present invention relates to a speech detection system that continuously classifies a signal as speech or noise by combining the individual results of a plurality of statistical determinations conducted in parallel on the communication signal.
Background of the Invention
Automatic gain control (AGC) circuits are used within communication systems, such as telephonic communication systems, in order to maintain transmitted speech signals at comfortably audible levels. In order to maintain a specified average or peak level of speech signals, while minimizing noise content, automatic gain control circuits use a speech detector for discriminating between speech and noise signals. Typically, a speech detector evaluates a single statistical property of the transmitted signal, compares the statistical property value with a predetermined reference and provides a logical output signal indicating the presence or absence of speech in the transmitted signal. The AGC circuit responds to the logical output signal by adjusting the applied gain depending on whether a logical output signal indicates the presence of speech.
One problem with traditional speech detectors is that reliance upon a single statistical determination renders such speech detectors vulnerable to making false determinations when evaluating noise to noise signals that possess the requisite statistical property at a level sufficient to indicate speech detection. Another problem is that the production of a single logical output obscures the degree of confidence with which the presence of speech was determined by the speech detector. It would be desirable to provide a speech detector that utilizes more than a single statistical criterion in order to determine the presence of speech in a transmitted telephone signal. It would further be desirable to provide a speech detector that produces a detection signal from which the degree of confidence in the determination can be taken into account in adjusting the gain.
Summary
According to one aspect of the present invention, a speech detector for a telephone AGC system comprises separate speech detection mechanisms for making independent determinations of the presence of speech in a signal. Each of the speech detection mechanisms produces a detection signal, and the individual detection signals are combined to produce an aggregate detection signal for indicating the presence of speech in a transmitted signal.
According to another aspect of the invention, the individual detection signals indicate a degree of confidence in each speech detector's determination of the presence or absence of speech in the transmitted signal.
Brief Description of the Drawing
FIG. 1 is a functional block diagram of a speech detector according to the present invention.
Detailed Description
Referring now to FIG. 1, there is shown a functional block diagram of a speech detector 10 of the present invention. As will be appreciated, the physical implementation of the speech detector may be realized by analog circuits, digital circuits, an appropriately-programmed general-purpose digital signal processor (DSP), or a hybrid of such types of circuitry as desired. In the preferred embodiment, a digital signal processor is programmed to accomplish the various functions shown in FIG. 1 as functional blocks and described herein.
A communication signal is provided to input terminal 12 of the speech detector 10. The communication signal is typically a voice band signal, such as a standard 300 Hz to 3500 Hz telephone signal. Alternatively, the communication signal may comprise a subband portion of a voice band signal in, for example, applications where it is desirable to make speech/noise determinations within individual subband portions of a communication channel.
The communication signal is shown in FIG. 1 to be represented by a sequence of digital values, x.sub.i. The communication signal is first converted to a nonzero-mean signal for ease in identifying positive and negative peak values of the signal x.sub.i. Such a nonzero-mean signal is produced as an absolute value signal, .vertline.x.sub.i .vertline., by a rectifier 14.
The absolute value signal, .vertline.x.sub.i .vertline., is provided by the rectifier 14 to a peak detector 16. The peak detector 16 is arranged to detect local maxima in the absolute value signal. When a local maximum is detected, the peak detector asserts a detection signal, PDET, indicating that a peak value has been detected in the communication signal. Simultaneously, the detected peak value, p.sub.i, is provided by the peak detector 16 to an output register or at terminal 18. In a DSP embodiment, the detection signal PDET may be implemented by a branch instruction in a peak detection loop. If no peak is detected in connection with the input signal, then the peak detection loop continues to execute until a peak value is detected.
The detected peak value p.sub.i is provided as an input to three speech detectors, including a moving average peak signal detector 11, a moving average peak noise detector 13, and a moving variance detector 15. The speech detectors 11, 13 and 15 each comprise a statistical filter for producing respective statistical values relating to the sequence of peak values p.sub.i. In the preferred embodiment, detector 11 includes a moving average peak filter 20 for generating a moving average of the peak signal values; detector 13 includes a moving average noise filter 22 for producing a moving average of the peak signal during intervals when the speech detector 10 determines that the input signal is predominately noise; and moving variance detector 15 includes a variance filter 24 for producing an output signal v.sub.i representing the variance of the peak signal p.sub.i.
Within the moving average peak signal detector 11, the moving average peak filter 20 receives the peak detection signal PDET at an enable terminal, and in response, updates a moving average output value p.sub.i according to the averaging formula: ##EQU1## where m>1. The averaging constant, m, determines the weight of each peak value upon the moving average, and hence affects the responsiveness and decay time of the moving average p.sub.i. A first determination of whether the communication signal consists primarily of speech or noise is made by comparing the present value of the moving average signal p.sub.i to a predetermined threshold value. The assumption behind such a comparison is that high average peak values are more likely to be generated during intervals of speech than during intervals of noise.
Preferably, the moving average p.sub.i is compared with more than one threshold value, in order to produce an output signal that conveys more information than a simple binary speech/non-speech output signal. In the embodiment shown, the moving average signal p.sub.i is compared by comparators 26 and 28 with threshold values t.sub.11 and t.sub.12 where t.sub.11 <t.sub.12, to produce one of three output combinations of determinants D.sub.11 and D.sub.12 :
(1) p.sub.i .ltoreq.t.sub.11, where D.sub.11 =0 and D.sub.12 =0
(2) t.sub.11 <p.sub.i .ltoreq.t.sub.12, where D.sub.11 =1 and D.sub.12 =0
(3) p.sub.i >t.sub.12, where D.sub.11 =1 and D.sub.12 =1
Condition (1) is interpreted as being indicative of noise, condition (2) is indicative of an indeterminate condition, and condition (3) is indicative of speech. In a traditional speech detection system, which uses only a moving average peak determination, the indeterminate condition would be of little practical value. However, because the moving average peak determination is aggregated with other determinations, the degree of confidence in the detection of speech by any one detector is a useful indicator of the weight to be accorded to that detector's contribution to the overall speech determination. A multiple-valued, or soft, determinant can be produced by assigning values of 0, 1, or 2 to the respective output conditions in accordance with the algebraic sum of the binary determinants D.sub.11 and D.sub.12.
Within the moving average peak noise detector 13, the sequence of peak values p.sub.i is provided to moving average noise filter 22. Moving average filter 22 is arranged to provide a moving average of the peak values according to a similar formula as discussed in connection with moving average peak filter 20. However, moving average filter 22 is connected to be enabled by the logical inverse of the speech detection signal, SPEECH. Hence, filter 22 updates its moving average only when the speech detector 10 determines that the communication signal consists primarily of noise, and holds the present output value when the communication signal consists primarily of speech. The moving average noise filter 22 provides a sequence of average peak noise values n.sub.i. A second speech/non-speech determination can then be made on the basis of whether the present average peak value p.sub.i exceeds the noise average n.sub.i by a predetermined margin.
Preferably, as in the moving average peak signal detector 11 discussed above, a soft determinant is produced in connection with the noise average by employing multiple threshold values, t.sub.21 and t.sub.22 to define at least three output conditions according to binary determinants D.sub.21 and D.sub.22 defined as:
(1) p.sub.i .ltoreq.n.sub.i +t.sub.21, where D.sub.21 =0 and D.sub.22 =0
(2) n.sub.i +t.sub.21 <p.sub.i .ltoreq.n.sub.i +t.sub.2 where D.sub.21 =1 and D.sub.22 =0
(3) p.sub.i >n.sub.i +t.sub.22, where D.sub.21 =1 and D.sub.22 =1
The components for producing the binary determinants D.sub.21 and D.sub.22 are shown in FIG. 1, including summing junctions 31 and 32 for adding the respective threshold values to the noise average signal n.sub.i, and comparators 30 and 32 for comparing the resulting sums with the average peak signal p.sub.i.
The variance detector 15, produces a third soft determinant by providing the sequence of peak values p.sub.i to a moving variance filter 24. The moving variance filter 24 computes an approximation of the variance v.sub.i of the peak signal p.sub.i in accordance with the formula: ##EQU2## where the weighting factor, n>1, determines the response time of the filter 24. A speech/noise determination is made on the basis of whether the variance signal v.sub.i is below a predetermined threshold. In general, the variance of a pure noise signal is lower than the variance of a pure speech signal. Preferably, a soft determination is made by comparing the variance signal v.sub.i with at least two thresholds, t.sub.31 and t.sub.32, to define at least three conditions as:
(1) v.sub.i .ltoreq.t.sub.31, where D.sub.31 =0 and D.sub.32 =0
(2) t.sub.31 <v.sub.i .ltoreq.t.sub.32, where D.sub.31 =1 and D.sub.32 =0, and
(3) v.sub.i >t.sub.32, where D.sub.31 =1 and D.sub.32 =1
In an embodiment where the speech detectors produce a binary speech/non-speech decision, an overall speech detection output signal, SPEECH, can be produced on the basis of whether a majority of the speech detectors presently indicates speech or non-speech. Such a strategy will always produce a defined result for an odd number of speech detectors. For an even number of speech detectors, the overall speech detection output signal can be maintained in its previous condition whenever the results are evenly divided among the individual detectors.
In an embodiment where each of the speech detectors produces a multi-valued or soft determinant, the overall speech detection output can be determined on the basis of an aggregate of the soft determinant values. For example, the binary determinant values D.sub.jk from the comparators 26, 28, 30, 32, 34 and 36 are provided to speech decision logic 40. Speech decision logic 40 is configured to produce the aggregate determinant value as, for example, the algebraic sum of the binary determinants (.SIGMA.D.sub.jk) or of the soft determinants computed in the manner discussed above. From the aggregate determinant value the speech detection logic then produces a logical output signal, SPEECH, according to the following table:
When .SIGMA.D.sub.jk <3, then speech decision logic 40 determines that the communication signal consists primarily of noise, and SPEECH is not asserted. When .SIGMA.D.sub.jk >3, then speech decision logic 40 determines that the communication signal consists primarily of speech, and SPEECH is asserted. When .SIGMA.D.sub.jk =3, then SPEECH is maintained at its previous value, since the aggregate determinant, .SIGMA.D.sub.jk,is not strongly indicative of either speech or noise.
The individual determinants D.sub.jk are also provided to threshold adjust logic 42, which is configured for dynamically adjusting the threshold values t.sub.jk employed within the individual speech detectors 11, 13 and 15. Dynamic threshold adjustment is desirable to enable the speech detector to adapt to time-variant properties of a communication channel or of a signal within a communication channel. Additionally, dynamic threshold adjustment is desirable for employing the speech detector 10 in a multiplex communication system where rapid adaptation to any of several communication channels is desirable.
It may occur that the output condition of an individual speech detector conflicts with the overall determination made by speech decision logic 40. Such a conflict can occur due to differences among the response times of the individual detectors, to changing signal conditions or to idiosyncratic statistical properties of the communication signal that favor a false determination from a particular detector. In order to correct for false determinations, one or more of the detection threshold values within an individual detector is adjusted incrementally within predefined limits, and during time intervals at least as long as the response time of the filter associated with that detector. Preferably such adjustment is carried out to an extent sufficient to render the output condition of the conflicting detector to be indeterminate, because "forcing" any of the individual detectors to agree with the overall determination would reduce the advantages obtained by employing a multiple detection scheme. When multiple thresholding is employed within an individual detector, as in the preferred embodiment, each threshold value is adjusted with reference to absolute limits and to limits that are relative to the other threshold value(s). That arrangement prevents the multiple threshold values from diverging to the extent that a determinate output condition is rendered unlikely or impossible.
For example, if the logical output signal SPEECH is not asserted (indicating an overall noise determination), and the soft determinant from the moving average signal detector 11 is indicative of speech (D.sub.11 +D.sub.12 =1+1=2), then the upper threshold t.sub.12 is incrementally increased by the threshold adjust logic 42 until the soft determinant from the moving average detector is indicative of an indeterminate condition (D.sub.11 +D.sub.12 =1+0=1). Since the threshold adjustment is performed incrementally, and preferably not more rapidly than the adaptation time of the moving average filter 20, then it may occur that a variation of the communication signal resolves the conflict (either by causing a change in SPEECH or in the output condition of the moving average signal detector 11), in which case the threshold t.sub.12 will be maintained at its most recent value whether or not an indeterminate output condition is achieved prior to resolving the conflict.
Similarly, if SPEECH is asserted and the output condition of the moving average signal detector 11 is indicative of noise, then the lower threshold t.sub.11 is incrementally decreased until the output condition of the moving average detector is indeterminate, or until the conflict is otherwise resolved.
Preferably, upward adjustment of t.sub.12 is limited to a maximum level below the average level of a speech signal, for example to no more than about 3 dB below the average speech level, SAVG (which may be determined by averaging .vertline.x.sub.i .vertline. during assertion of SPEECH). Downward adjustment of t.sub.11 is limited to a minimum, such as about 6 dB above the average noise level, NAVG (which may be determined by averaging .vertline.x.sub.i .vertline. during non-assertion of SPEECH). Additionally, as either t.sub.11 or t.sub.12 is adjusted, then the other threshold may also be adjusted by the same amount in order to desirably maintain a separation between the two thresholds that is commensurate with a predetermined or measured signal-to-noise ratio within the communication signal.
The threshold adjust logic 42 adjusts the thresholds relating to the noise average detector 13 as follows. If SPEECH is non-asserted and the output condition of the noise average detector 13 is indicative of speech (D.sub.21 +D.sub.22 =2), then t.sub.22 is increased to drive the noise average detector toward an indeterminate output condition. If SPEECH is asserted and the output condition of the noise average detector 13 is indicative of noise (D.sub.21 +D.sub.22 =2), then t.sub.21 is decreased to drive the noise average detector toward an indeterminate output condition. Preferably, t.sub.22 is limited to a maximum of 2 dB below the difference between the average speech level and the average noise level (t.sub.22 .ltoreq..vertline.NAVG-SAVG.vertline.), and t.sub.21 is maintained about 2 dB above the noise average. However if the signal-to-noise ratio is poor, such as 4 dB or less, then t.sub.22 and t.sub.21 may be adjusted over a wider range.
In a similar manner, the threshold adjust logic 42 is configured to drive the variance detector 15 toward an indeterminate condition by adjusting t.sub.31 and/or t.sub.32 within appropriate absolute and/or relative limits when the variance detector 15 conflicts with the overall determination indicated by SPEECH.
As noted above, the threshold adjust logic 42 is configured to drive any individual speech detector toward an indeterminate output condition if the detector conflicts with the overall speech determination. Additional improvements in speech detection accuracy can be achieved by configuring the threshold adjust logic 42 to detect whether any individual speech detector produces an indeterminate output condition for a period of time significantly exceeding the response time of its associated filter. Such long indeterminate conditions can indicate that the difference between the corresponding threshold values is undesirably large, thus creating an undesirably large range of indeterminacy. By reference to pre-selected interval limit values, the threshold adjust logic 42 can be configured to detect when an individual speech detector has exceeded such a limit, and to take appropriate action. For example, when an individual speech detector has exceeded its indeterminacy interval limit, then the threshold adjust logic 42 responds by driving the speech detector toward an output condition corresponding to the present condition of SPEECH, by adjusting one or more of the associated threshold values.
Each of the individual detectors may utilize more than two threshold values in order to provide a larger number of gradations in which the aggregate determinant indicates speech, noise, or an indeterminate condition. For example, in an embodiment wherein three threshold levels are employed within each detector, then the aggregate determinant will have nine possible values defined as:
In such an embodiment, the aggregate determinant may be defined as indicating an indeterminate speech detection condition when .SIGMA.D.sub.jk =4 or when .SIGMA.D.sub.jk =5. The individual soft determinant values will range between 0 and 3. The larger range of soft determinant values offers additional opportunities for threshold level adjustment by the threshold adjust logic 42. For example, when SPEECH is non-asserted, then any detector having a soft determinant value of 2 or 3 can have its associated threshold levels adjusted to produce a lower-valued soft determinant. Conversely, when SPEECH is asserted, then any detector having a soft determinant value of 0 or 1 can have its associated threshold levels adjusted to produce a higher-valued soft determinant. Additionally, when the aggregate determinant is in an indeterminate speech detection condition, any detector with an extreme soft determinant value (e.g. 0 or 3) can be driven to produce a less extreme determinant value (e.g. 1 or 2).
In another alternative embodiment, the individual logical determinants D.sub.jk can be presented to an appropriate register of the speech decision logic 42 as a binary speech detection word {D.sub.31 D.sub.21 D.sub.11 D.sub.32 D.sub.22 D.sub.12 }. The higher order bits of the binary speech detection word comprise the binary determinants associated with the upper detection thresholds, while the lower order bits of the binary speech detection word comprise the binary determinants associated with the lower detection thresholds. Rather than perform any computational operations, the speech decision logic 40 is configured to retrieve or otherwise produce the SPEECH output condition from an appropriate lookup table or logic array. The threshold adjust logic 42 can be similarly configured to perform adjustment of the detector thresholds in direct response to a predetermined binary speech detection word. Higher accuracy in speech detection can thus be achieved than in embodiments where the specific assertion levels of the binary determinants are merged into an aggregate determinant value. For example, the aggregate determinant value would be 4 for both of the speech detection words 101101 and 001111, yet it may be desirable to define a different logical condition of SPEECH for the respective detection words. By operating the speech decision logic in direct response to defined binary detection words, such a capability is provided.
In a further embodiment employing the binary speech detection word, the speech decision logic 40 is configured to respond to predetermined sequences of speech detection words, in addition to responding to individual speech detection words. Such operation can then compensate appropriately for differing response times of the individual speech detectors. For example, if the moving average filter responds to speech more quickly than the other detectors, and if a predetermined number of successive binary detection words are each 000000, then the speech decision logic 40 responds to 001001 by asserting SPEECH on the assumption that speech has begun, but the other detectors have not had sufficient time to detect the speech. If the speech detector remains at 001001 beyond the response time of one or both of the other detectors, then it may be assumed that the moving average filter has made a false determination, SPEECH may be de-asserted, and the moving average detection thresholds may be appropriately adjusted.
In another embodiment employing binary speech detection words, the speech decision logic 40 receives successive binary speech detection words and continuously computes a vector indicating the rate of change and direction of the successive speech detection words. Such a process avoids the need to store a large number of speech detection words in order to extract temporal data pertaining to the speech detection condition of the individual speech detectors.
The terms and expressions which have been employed herein are used as terms of description and not of limitation. There is no intention in the use of such terms and expressions of excluding any equivalents of the features shown and described or portions thereof. It is recognized, however, that various modifications are possible within the scope and spirit of the invention as claimed.