TECHNICAL FIELD  
         [0001]    This invention relates to the transmission of digitally encoded voice, and in particular, to the transmission of digitally encoded voice so as to maintain speech quality.  
         BACKGROUND OF THE INVENTION  
         [0002]    Because of the popularity of the Internet, a growing need for remote access, and the increase in data traffic volume that has exceeded the voice traffic volume through the voice and data communication networks, the transmission of voice as data rather than circuit switched voice is becoming more important. The problem that exists when voice is transmitted as data such as voice-over-packet technology or voice-over-the-Internet is to guarantee the quality of service. To reduce the bandwidth required to carry voice, voice-over-packet systems employ a voice activity detection to suppress the packetization of voice signals between individual speech utterances such as the silent periods in a voice conversation. Such techniques adapt to varying levels of noise and converge on appropriate thresholds for a given voice conversation. Use of voice activity detection reduces the required bandwidth of an aggregation of channels 50% to 60% for conversations that are essentially half-duplex, only one person speaks at a time in a half-duplex conversation.  
           [0003]    When silence suppression is being used, a noise generator at the receiving end compliments the suppression of silence at the transmitting end by generating a local noise signal during the silent periods rather than muting the channel or playing nothing. Muting the channel gives the listener the unpleasant impression of a dead line. The match between the generated noise and the true background noise determines the quality of the noise generator.  
           [0004]    Within the prior art, it is well known that voice activity detection to determine silence and the removal of those silent periods can cause speech utterances to sound choppy and unconnected when cutting in or out of the speech. Two terms are utilized to express this problem. First, front-end clipping refers to clipping the beginning of an utterance. Second, holdover time refers to the time the activity detector continues to packetize speech after the voice signal level falls below the speech threshold. The holdover time is normally set to the period between words as has been determined for a particular conversation so as to avoid front-end clipping at the beginning of each word. However, excessive holdover times reduces network efficiency and too little causes speech to sound choppy.  
         SUMMARY OF THE INVENTION  
         [0005]    This invention is directed to solving these and other problems and disadvantages of the prior art. In an embodiment of the invention, the problems of front-end clipping and excessively long holdover times is resolved by the introduction of a history queue at the transmitting end of the digital conversation. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWING  
       [0006]    [0006]FIG. 1 illustrates an embodiment of the invention;  
         [0007]    [0007]FIG. 2 illustrates an embodiment of the invention;  
         [0008]    [0008]FIG. 3 illustrates an embodiment of the invention;  
         [0009]    [0009]FIG. 4 illustrate, in flow chart form, the steps performed in implementing an embodiment of the invention; and  
         [0010]    FIGS.  5 - 6  illustrate, in flow chart form, the steps performed in implementing another embodiment of the invention. 
     
    
     GENERAL DESCRIPTION  
       [0011]    Problems of front-end clipping and long holdover times are resolved by the introduction of a history at the transmitting end. The history queue is equal in length to the normal front-end clipping time. That is to say that there are sufficient samples in the history queue to equal the normal time that would be devoted to front-end clipping. When the speech threshold is reached indicating silence, the transmitter no longer transmits packets to the receiving end of the conversation. However, the speech samples being generated indicating silence or voice are continuously stored in the history queue. However, it should be realized that only the last period of time of the speech is stored in the history queue during this period of operation. When the speech threshold is reached indicating the transition from silence to voice, the transmitter begins once again to remove samples from the history queue and transmit packets to the receiving end of the voice conversation. Since the history queue includes the normal front-end clipping time of samples prior to the detection of voice, the transition from silence to speech appears to the listener to be excellent since this transition includes the normal front-end clipped speech. Advantageously, not only is the front-end clipping problem resolved, but the holdover time that is allowed for the determination of silence can be reduced. Advantageously, this method and apparatus greatly increases the efficiency of the transmission of voice through a packetized system.  
       DETAILED DESCRIPTION  
       [0012]    [0012]FIG. 1 illustrates a system for implementing an embodiment of the invention. Synchronous physical interface  101  is exchanging digital samples with IP switched network  107  via voice encoder  106 . Voice samples being received from IP switched network  107  are received by voice coder  106  and processed by elements  102 - 104  before being transferred to interface  101  in a manner well known by those skilled in the art. This processing allows insert/remove circuit  102  to maintain a steady synchronous stream of voice samples to interface  101  in accordance with the requirements of interface  101 .  
         [0013]    Interface  101  is also transmitting a steady synchronous stream of voice samples to history queue  108  and low energy detector  109 . However, voice coder  106  is packetizing voice samples for transmission to the receiving end of the voice conversation via IP switched network  107 . The number of samples stored in history queue  108  is equal to the holdover time between utterances that has been determined for the user of the system that is speaking into a microphone not shown that eventually communicates voice samples to interface  101 . The length of the queue of history queue  108  would adapt to the speaking characteristics of different users, resulting in the number of samples being processed by history queue  108  varying for individual users and during the conversation for the same user. Low energy detector  109  determines the thresholds that specify the presence of silence or voice activity in the speech samples being received from interface  101 . History queue  108  is continuously accepting samples from interface  101  and attempting to transmit these samples to control circuit  111 . Control circuit  111  is responsive to a signal from low energy detector  109  indicating that voice activity has been detected in the samples being transmitted from interface  101  to begin to transmit voice samples from history queue  108  to voice coder  106 . Voice coder  106  is responsive to the samples being received from control circuit  111  to packetize these samples and transmit them via IP switched network  107 . When low energy detector  109   5  determines that the silence has been present in the speech samples for a first predefined amount of time, low energy detector  109  removes the signal being transmitted to control circuit  111  which ceases to transmit samples to voice coder  106 . Note, that the first predefined time utilized by low energy detector  109  is now the holdover time that is utilized by the system illustrated in FIG. 1. Advantageously, this holdover time is shorter than what would normally have to be allowed.  
         [0014]    [0014]FIG. 2 illustrates another embodiment of the invention.  
         [0015]    Elements  201 - 207  and  211  perform the same operations as those described with respect to FIG. 1 for elements  101 - 107  and  111 . Speech analyzer  212  is responsive to the speech samples being received from interface  101  to determine phonemes and words from the samples. Speech analyzer  212  utilizes well known voice recognition techniques to accomplish  20  the detection of phonemes and words from the speech samples. Speech analyzer  212  then utilizes this information to adjust the length of the queue maintained by history queue  108  to be equal to the amount of time determined between the words actually being received in the voice samples from interface  101 . Speech analyzer  212  maintains a smoothing technique so as to average out the amount of time between words over a predefined period of time. In addition, speech analyzer  212  utilizes the information concerning phonemes and words to adjust an interval utilized by low energy detector  209  to indicate to control circuit  211  when it is to stop the communication of samples to voice controller  206 .  
         [0016]    [0016]FIG. 3 illustrates, in block diagram form, a hardware implementation an embodiment of blocks  208 - 212  of FIG. 2. One skilled in the art would readily realize that all of the elements of FIG. 2 could be combined and their functions be performed in one digital signal processor or multiple digital signal processors could be utilized. Digital signal (DSP)  301  executes a program stored in memory  302  to implement the operations illustrated in FIGS. 5 and 6. One skilled in the art would readily recognize that DSP  301  could be any type of stored program controlled circuit and also could be a wired logic circuit such as a programmable logic array that simply stored data in memory  302 . The circuit of FIG. 3 could also implement the operations of blocks  108 - 111  of FIG. 1 to perform the operations illustrated in FIG. 4.  
         [0017]    [0017]FIG. 4 illustrates the operations to be performed by blocks  108 - 111  of FIG. 1 in implementing an embodiment of the invention. The operations of FIG. 4 could be performed by a circuit similar to that illustrated in FIG. 3. Once started in block  401 , block  402  stores samples in the history queue before transferring control to decision block  403 . Decision block  403  is responsive to the energy in the samples that are being stored in queue  402  to determine if a silent interval greater than a predefined interval has occurred. If the answer is yes, block  404  sets the silence flag before transferring control to decision block  406 . If the answer in decision block  403  is no, control is transferred to decision block  406  which determines if the silence flag is set. If the answer is no in decision block  406 , control is transferred to block  409  which transmits a sample from the history queue to the voice coder before returning control back to block  402 . Returning to decision block  406 , if the answer is yes that the silence flag is set, decision block  407  determines if the low energy detector has detected any voice activity. If the answer is no, control is transferred back to block  402 . If the answer in decision block  407  is yes, control is transferred to block  408  which resets the silence flag before transferring control to block  409 .  
         [0018]    [0018]FIGS. 5 and 6 illustrate, in flowchart form, the steps performed by speech analyzer  212 . After being started in block  501 , block  502  analyzes the incoming speech to determine the interval between words using well known techniques. After execution of block  502 , decision block  503  determines if the interval between the words has changed. If the answer is no, control is transferred to block  602  of FIG. 6. If the answer is yes in decision block  503 , block  504  recalculates the silence interval, and block  506  adjusts the queue size before transferring control to block  602  of FIG. 6.  
         [0019]    One skilled in the art would readily realize that the analysis for speech and the recalculation of the silence interval and the adjustment of the queue size could be performed in a different order in FIGS. 5 and 6. In addition, the decision made in decision block  503  may simply be that based on information received from block  502  that it is not possible to determine if a different interval now exists between words.  
         [0020]    Once control is received from block  506  or decision block  503  of FIG. 5, block  602  stores samples in the history queue before transferring control to decision block  603 . Decision block  603  is responsive to the energy in the samples that are being stored in queue  602  to determine if a silent interval greater than a predefined interval has occurred. If the answer is yes, block  604  sets the silence flag before transferring control to decision block  606 . If the answer in decision block  603  is no, control is transferred to decision block  606  which determines if the silence flag is set. If the answer is no in decision block  606 , control is transferred to block  609  which transmits a sample from the history queue to the voice coder before returning control back to block  602 . Returning to decision block  606 , if the answer is yes that the silence flag is set, decision block  607  determines if the low energy detector has detected any voice activity. If the answer is no, control is transferred back to block  602 . If the answer in decision block  607  is yes, control is transferred to block  608  which resets the silence flag before transferring control to block  609 .  
         [0021]    Of course, various changes and modifications to the illustrative embodiment described above will be apparent to those skilled in the art. Such changes and modifications can be made without departing from the spirit and scope of the invention and without diminishing its intended advantages. It is therefore intended that such changes and modifications be covered by the following claims except in so far as limited by the prior art.
Problems of front-end clipping and excessively long holdover times in digitally encoded speech are resolved by the introduction of a queue at the transmitting end of a digital conversation. Samples are transmitted from the queue until an interval of low energy samples is encountered upon which time samples are not transmitted from queue until energy samples are present.