|Publication number||US7313233 B2|
|Application number||US 10/459,309|
|Publication date||Dec 25, 2007|
|Filing date||Jun 10, 2003|
|Priority date||Jun 10, 2003|
|Also published as||US20040252813|
|Publication number||10459309, 459309, US 7313233 B2, US 7313233B2, US-B2-7313233, US7313233 B2, US7313233B2|
|Inventors||Amin F. Rhemtulla, Ling Chen, Siu H. Lam|
|Original Assignee||Intel Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (16), Classifications (14), Legal Events (3)|
|External Links: USPTO, USPTO Assignment, Espacenet|
Voice over packet (VOP) technology may be directed to communicating voice information over a packet network. In addition to voice information, VOP networks may also carry tone information that may be interleaved with the voice information. Tone information may be used to communicate commands or control information, such as using Dual Tone Multi-Frequency (DTMF) tones to call a telephone number. A VOP network may need to detect, remove and replace tone information from a voice channel for some applications. This process may be referred to as “tone clamping.” Conventional tone clamping technologies, however, may degrade the quality of a voice conversation. Consequently, there may be a need for improved tone clamping techniques to reduce such degradation and other potential problems.
The subject matter regarded as embodiments is particularly pointed out and distinctly claimed in the concluding portion of the specification. The embodiments, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
Embodiments of the invention may comprise a method and apparatus to manage tone clamping in a network, such as a VOP network. For example, one embodiment may manage tone clamping for any network node, such as a media gateway. The tone clamping may be performed using background noise. The use of background noise may facilitate the removal of tones from an audio stream while reducing the introduction of extraneous noise or other distractions into the audio stream. The result may be a higher Quality of Service (QoS) for telephone calls completed over a VOP network.
More particularly, one embodiment may perform tone clamping for tone information embedded within a stream of audio information (“audio stream”). The term “audio information” as used herein may refer to any information communicated during a telephone call, such as voice, speech, speech fragments, tone information, silent periods, comfort noise, background noise, music, and so forth. In one embodiment, the audio stream may be received. The received audio stream may be monitored for the presence of tone information. The term “tone information” as used herein may refer to any information used to represent tone signals, including names, tags, frequency components, time information, and so forth. If tone information is detected, the tone information may be removed from the audio stream, and replaced with background noise. The level and spectrum of the background noise may correspond to the background noise measured for the audio stream.
Numerous specific details may be set forth herein to provide a thorough understanding of the embodiments of the invention. It will be understood by those skilled in the art, however, that the embodiments of the invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the embodiments of the invention. It can be appreciated that the specific structural and functional details disclosed herein may be representative and do not necessarily limit the scope of the invention.
It is also worthy to note that any reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Referring now in detail to the drawings wherein like parts are designated by like reference numerals throughout, there is illustrated in
More particularly, system 100 may include network nodes 102, 110, 118 and 122. In one embodiment, network nodes 102, 110, 118 and 122 may be call terminals. A call terminal may comprise any device capable of communicating audio information, such as a telephone, a packet telephone, a mobile or cellular telephone, a processing system equipped with a modem or Network Interface Card (NIC), and so forth. In one embodiment, the call terminals may have a microphone to receive analog voice signals from a user, and a speaker to reproduce analog voice signals received from another call terminal.
System 100 may also include various types of networks, such as networks 104, 108, 112, 116 and 120. In one embodiment, networks 104 and 116 may be voice networks. The term “voice network” may refer to a circuit-switched network, such as the Public Switched Telephone Network (PSTN). A circuit-switched network typically establishes a dedicated communications channel or circuit between call terminals. In one embodiment, networks 108, 112 and 120 may be data networks. The term “data network” may refer to a packet network, such as the Internet. Packet networks may be described in more detail below.
In one embodiment, networks 108, 112 and 120 may comprise packet networks. A packet network may comprise one or more network nodes that communicate information as a stream of relatively short packets. A packet in this context may refer to a set of information of a limited length, with the length typically represented in terms of bits or bytes. In general operation, a network node may receive the audio information, and break it up into a series of audio packets. Each packet may comprise a portion of the audio information and control information. The network node may then send the audio packets in sequence to another network node. This process may be repeated until the entire series of packets exit the network or reaches their intended destination.
Each network in system 100 may communicate audio packets in accordance with one or more communications protocols. A protocol may comprise a set of instructions, rules or specifications by which the information signals are communicated over the communications medium. In one embodiment of the invention, for example, networks 108, 112 and 120 may operate in accordance with one or more Internet protocols such as the Internet Engineering Task Force (IETF) document titled “Transmission Control Protocol,” Standard 7, Request For Comment (RFC) 793, September, 1981 (“TCP Specification”); and the IETF document titled “Internet Protocol,” Standard 5, RFC 791, September, 1981 (“IP Specification”).
Networks 108, 112 and 120 may also operate in accordance with one or more VOP protocols, such as the International Telecommunications Union (ITU) document titled “Packet-based Multimedia Communication Systems,” Recommendation H.323, November 2000 and available from “www.itu.int” (“H.323 Specification”); the IETF document titled “SIP: Session Initiation Protocol,” Proposed Standard, RFC 2543, March 1999 (“SIP Specification); the ITU document titled “Gateway Control Protocol, Version 2,” Recommendation H.248.1, May 2002 (“Megaco Specification”); the IETF document titled “RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals,”Proposed Standard, RFC 2833, May 2000 (“RFC 2833 Specification”); and the IETF document titled “RTP: A Transport Protocol For Real Time Applications,” Proposed Standard, RFC 1889, January 1996 (“RTP Specification”).
Although a few example protocols are discussed herein, it may be appreciated that the embodiments of the invention are not limited in this context. Further, packet networks 108, 112, and 120 may also include the appropriate interfaces to circuit-switched networks such as networks 104 and 116, and vice-versa.
In one embodiment, system 100 may further comprise network nodes 106 and 114. In one embodiment, networks node 106 and 114 may comprise gateways or media gateways. Media gateways 106 and 114 may operate to convert a conventional telephony call to a packet telephony call or VOP call. For example, media gateways 106 and 114 may receive signals from a circuit-switched network, such as networks 104 and 116, and convert the circuit-switched signals into packets. The conversion to packets may be made in accordance with, for example, the TCP/IP Specification, SIP Specification, H.323 Specification, Megaco Specification or other packet protocol. Media gateways 106 and 114 may also receive signals from a packet network, such as networks 108, 112 and 120, and convert the packets into circuit-switched signals or pass them to another packet network.
System 100 may complete a telephone call between call terminals, such as call terminals 102, 110, 118 and 122. The communication path between certain call terminals may comprise both circuit-switched networks and packet networks, as demonstrated by a telephone call between call terminals 102 and 118, for example. The communication path between certain call terminals may comprise only packet networks, as demonstrated by a telephone call between call terminals 110 and 122, for example. In both cases, a portion of the communication path traverses a packet network. Completing a telephone call over a packet network may introduce the need for tone clamping as discussed previously.
In general operation, assume call terminal 102 dials the telephone number for call terminal 118. Network 104 receives the telephone number and initiates a call connection. After a call connection is set-up, call terminal 102 may begin communicating audio information over network 104 to gateway 106. Gateway 106 may convert the audio information represented as circuit-switched signals into packets for transport over network 112. Gateway may convert the audio information into packets and send them to gateway 114. Gateway 114 may receive the packets, often out of order due to the varying network delays experienced by the different packets, and reassembles them as they are received. The packets are then converted back to audio information represented as PCM signals, and the circuit-switched signals are conveyed through network 116 to call terminal 118.
In one embodiment, a telephone call similar to above may be completed without any portion of the audio information traveling over a circuit-switched network such as networks 104 and 116. For example, call terminal 110 may communicate audio information over a call connection with call terminal 122. Call terminal 110 may convert the analog audio signals into digital audio information, and place the audio information into packets. The packets may pass through networks 108, 112 and 120, until they reach call terminal 122. Call terminal 122 may reconstruct the audio information in the form of analog audio signals for conveyance to the listening party. In this case, the embodiments may be implemented in call terminals 110 and 122, for example.
Completing a telephone call over a packet network may introduce the need for tone clamping. Tone clamping may perform the operations of detecting, eliminating and replacing tone information embedded in a stream of audio information. Tone clamping may be discussed in more detail with reference to
In one embodiment, processing system 200 may implement some functionality for a gateway. System 200 may implement functionality for a gateway, such as gateways 106 and 114, for example. Although this functionality is shown as part of gateways 106 and 114, it can be appreciated that this functionality can be implemented in any device connected to systems 100 or 200, and still fall within the scope of the embodiments. For example, in the case of completing a telephone call between call terminals 110 and 122, processing system 200 may be implemented in call terminals 110 and 122 instead of gateways 106 and 114, respectively, as desired for a particular implementation. In another example, system 200 may be implemented as part of an application server for a gateway, such as server 208. This may be desirable to eliminate tones from a conference call, as discussed in more detail below.
In one embodiment, gateway 200 may comprise an element 202. Element 202 of system 200 may comprise, for example, a media gateway 200 that may operate to convert a conventional telephony call to a packet telephony call or VOP call. In one embodiment, gateway 202 may receive signals from a circuit-switched network and convert them to packet voice signals. An example of a circuit-switched network may be the PSTN. An example of signals communicated via a circuit-switched network may comprise Pulse Code Modulated (PCM) signals. The conversion to packets may be made in accordance with, for example, any number of protocols, such as the RTP Specification and others. Gateway 202 may communicate both call control packets and packet voice signals through other components of system 200 until the packets reach their intended destination, e.g., a call terminal connected to system 200.
In one embodiment, gateway 200 may also comprise an element 204. Element 204 of system 200 may comprise, for example, a media gateway controller or gatekeeper to perform conventional call processing functions, such as address translation, admission control, call control signaling, call authorization, call management and so forth in accordance with any appropriate call processing protocol, such as the Megaco Specification, for example. Controller 204 may communicate with gateway 202 via call control packets to perform such call processing functions. In one embodiment, controller 204 may provide address and routing information to communicate packets through system 200 to the destination call terminal, such as call terminal 106.
In one embodiment, gateway 200 may also comprise an element 208. Element 208 of gateway 200 may be, for example, an application server. An example of an application server may be a conferencing server or a Multipoint Control Unit (MCU) for a VOP system. Server 208 may implement conventional MCU, multipoint controller (MC) and multipoint processor (MP) functions in accordance with the H.323 Specification, and may also implement general conference control (GCC) and multipoint communication service (MCS) functions. Server 208 may process a multipoint conference call, and may depacketize encapsulated packets of multiple streams of multimedia information to form a multimedia conferencing session. For example, server 208 may receive various streams of audio information and multiplex/demultiplex the streams together to enable various call terminals to communicate audio information between each other for a conference call session.
In one embodiment, gateway 202 may also include a Tone Clamping Module (TCM) 206. TCM 206 may perform tone clamping for system 200. Tone clamping may perform the operations of detecting, eliminating and replacing tone information embedded in a stream of audio information. This may be desirable for a number of reasons.
One system that may need tone clamping may be a VOP network that communicates tone information using a control channel separate from the audio channel. This may be desired for a system using a low bit-rate voice coder/decoder (“codec”), for example. A low bit-rate voice codec may compress the tone information to a point that it becomes undetectable. The control channel may be used to bypass the voice codec for certain types of information, such as tone information. The use of a control channel to communicate tone information may sometimes be referred to as “Out Of Band” signaling. Meanwhile, that same tone information may still be communicated in the audio channel. When tone information is communicated using Out Of Band signaling, there may be need to remove the tone information from the audio channel to reduce ambiguity at the receiver.
Another system that may need tone clamping may be a voice conferencing system. In conferencing applications, DTMF tones may be used to provide commands to a conferencing server to implement functions on behalf of a conference participant. For example, a conference participant may press the DTMF digit “1” to increase the volume. The dialed digit, however, may be heard by the other conference participants. Tone clamping may be implemented so that the other conference participants will not hear the command-oriented DTMF digits.
For some applications, it may be desirable to replace the eliminated tone information with other information. For example, the tone information may be replaced with silence information. Silence information is typically information with zero or very low energy levels. Some analog phones and other Customer Premise Equipment (CPE), however, may send out background noise instead of complete silence. Using pure silence replacement for tones in these situations may create discontinuities such as a hissing sound. The resulting audio stream may have a sequence of background noise and silent periods, which may sound unnatural to a human listener.
To reduce this problem, one embodiment utilizes background information to replace tone information. The background information inserted into the audio stream may reduce the audio discontinuities, and provide a more natural sound to a human listener. The result may be improved quality of a telephone call over a VOP system.
In one embodiment, TCM 300 may receive a stream of audio information. Tone detector 308 may be configured to analyze the incoming stream of audio information to detect the existence of any tone information. The tone information may comprise, for example, a DTMF tone. Tone detector 308 may make a tone activity decision on a periodic basis. The period may vary based on any number of criteria, such as the voice codec frame size used by the system. A set of parameters may be extracted from the audio stream and used for an initial decision. The parameters may be any tone parameters, such as the full band energy, the low band energy, the zero-crossing rate, a spectral measure and so forth. The parameters may be compared to a profile of parameters for one or more tones. If there is a match, tone detector 308 may return a decision that tone information has been detected.
In one embodiment, the audio information may be stored in circular buffer 306. Circular buffer 306 may be configured to store the incoming stream of audio information long enough for tone detector 308 to determine whether a tone has been detected. The amount of audio information stored in circular buffer 306 may depend upon the length of time it takes tone detector 308 to detect any tone information in the stream of audio information. The longer the detection time the more buffer must be used to store the incoming stream, and vice-versa. The presence of circular buffer 306 helps reduce the possibility that a receiver may process some tone information before the tone information is properly detected and clamped. Otherwise, a user of the receiver may experience severe quality problems, such as hearing a “clicking” sound every time a tone event occurs.
In one embodiment, the circular buffer size may be modified in accordance with performance characteristics of the tone clamping operation to improve detection accuracy. For example, in one case the circular buffer size may be too large based on the performance evaluation of the tone clamping process, and therefore the circular buffer size may be decreased without affecting detection accuracy or Quality of Service (QoS). The unallocated memory may then be used for other operations in system 200. In another case, the circular buffer size may be too small thereby preventing tone replacement. The circular buffer size may be increased to compensate for this condition.
In one embodiment, the analysis may be performed by first defining at least one parameter associated with the buffer. The at least one parameter may be measured. The measured value may be compared with a predetermined value, such as a previous measurement or some threshold parameter. For example, the parameter may be defined as a value representing the amount of buffer used to store audio information prior to tone detection. Buffer usage may be measured during the tone detection process, and compared to a predetermined value. The predetermined value may be, for example, a previous value for buffer usage, an average buffer usage value over some number of tone clamping operations, a theoretical buffer usage value optimized for a given tone detector, and so forth.
Once tone detector 308 detects tone information from the audio information stored in circular buffer 306, tone damper 304 may erase the tone information from the stream of audio information. As a result, the audio stream will have a gap where the tone information was originally inserted into the audio stream. This gap may be filled using background noise generator 310.
In on embodiment, background noise generator 310 may analyze and synthesis background noise for a given audio stream. The synthesized background noise may then be inserted into the audio stream. Background noise generator 310 may analyze the incoming audio stream to determine one or more parameters representing the background noise for a sample section of the audio stream. The background noise parameters may be, for example, the full band energy, the low band energy, the zero-crossing rate, a spectral measure and so forth. The sample section of the audio stream may comprise, for example, a preceding frame, a subsequent frame, or an average of a plurality of frames over varying time periods. Once the appropriate background noise parameters are determined for the audio stream, the background noise parameters may be used to synthesize background noise similar to the sample section. The synthesized background noise may be inserted into the audio stream in the gaps created by removing the tone information.
In one embodiment, TRM 302 may coordinate the tone replacement process. For example, TRM 302 may monitor tone damper 304, circular buffer 306, tone detector 308, and background noise generator 310, and send control signals to each element to perform management and timing functions. For example, TRM 302 may monitor circular buffer 306 to determine when audio information associated with a particular stream of information is beginning to be stored, e.g., the beginning of the buffer. TRM 302 may monitor tone detector 308 for a signal indicating that tone information has been detected. Once TRM 302 receives the tone detection signal, TRM 302 may examine circular buffer 306 to determine how much of it has been used prior to tone detection. Assume that the measured value is 80% of the total buffer size, with the 80% representing that 80% of circular buffer 306 was used prior to tone detection. The measured value of 80% may be compared to a predetermined value. Assume that the predetermined value was 100%, and TRM 302 has been configured to reduce buffer size if the measured value is less than the predetermined value. In this case, TRM 302 may send a signal to circular buffer 306 to reduce its buffer size by 20%. TRM 302 may also be used to store, update and manage profiles for tone parameters used by tone detector 308. Further, TRM 302 may be used to store, update and manage background noise parameters for background noise generator 310, as well as modify sample size to improve integration of the synthesized background noise with the background noise of the audio stream.
The operations of systems 100, 200 and 300 may be further described with reference to
In one embodiment, the tone information may be detected by extracting one or more tone parameters from the stream. The extracted tone parameters may be compared to a set of reference tone parameters. An output signal may be created indicating the presence of the tone information in accordance with the comparison. For example, the output signal may be a 0 to indicate no tone information, and a 1 to indicate the presence of tone information. The embodiments are not limited in this context.
In one embodiment, the background noise may be generated by extracting one or more background noise parameters from the stream. The background noise parameters may be extracted on a periodic basis to ensure that the background noise appropriately matches the background noise for the frames preceding and succeeding the gap created by the removed tone information. The period may vary, and an example may be a time period corresponding to a voice coded frame. The background noise to be inserted into the stream may then be synthesized using the background noise parameter(s). The background noise parameters may be any parameters for an audio signal, such as the full band energy, low band energy, zero-crossing rate, and a spectral measure, for example.
The operation of systems 100, 200 and 300, and the processing logic shown in
TCM 300 may receive a stream of packets carrying the audio information, and begin buffering the packets in circular buffer 306. Tone detector 308 begins the tone detection process. Once tone detector 308 determines that a tone is present in the audio information, tone damper 304 may drop all the packets in circular buffer 306 and begin removing the tone information detected by tone detector 308 from the audio stream.
During this process, background noise generator 310 may be extracting one or more background noise parameters from one or more frames of audio information carried by the audio stream. Background noise generator 310 may use the background noise parameters to synthesize background noise. The background noise parameters may be updated on a periodic basis as determined for a particular implementation. Background noise generator 310 may then insert the synthesized background noise into the gaps in the frames which held the removed tone information. The result will be reduced hissing or clicking sounds carried by the audio stream, which may in turn result in a better listening experience once the audio stream is converted into analog voice signals and played out to the listener.
To manage the tone replacement process, TRM 302 may be monitoring tone clamper 304, circular buffer 306, tone detector 308, and background noise generator 310. TRM 302 may modify parameters for each element as needed, either during call setup or during the call session in accordance with a particular implementation.
In another example, the embodiments may be implemented for a voice conferencing system. In conferencing applications, DTMF tones may be used to provide commands to a conferencing server to implement functions on behalf of a conference participant. For example, a conference participant may press the DTMF digit “1” to increase the volume. The dialed digit, however, may be heard by the other conference participants. Tone clamping may be implemented so that the other conference participants will not hear the command-oriented DTMF digits.
While certain features of the embodiments of the invention have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the embodiments of the invention.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5687177 *||Oct 10, 1996||Nov 11, 1997||Dialogic Corporation||Tone blocking using variable delay buffer|
|US5689556 *||Sep 15, 1995||Nov 18, 1997||Hughes Electronics||Method of detecting narrow-band signals in an echo canceller|
|US5978760 *||Jul 21, 1997||Nov 2, 1999||Texas Instruments Incorporated||Method and system for improved discontinuous speech transmission|
|US6005854 *||Aug 8, 1997||Dec 21, 1999||Cwill Telecommunication, Inc.||Synchronous wireless access protocol method and apparatus|
|US6259691 *||Jul 24, 1998||Jul 10, 2001||3Com Corporation||System and method for efficiently transporting dual-tone multi-frequency/multiple frequency (DTMF/MF) tones in a telephone connection on a network-based telephone system|
|US6347134 *||Feb 5, 1998||Feb 12, 2002||Picazo Communications||Recording and playing voicemail with improved DTMF detection|
|US6400709 *||Dec 2, 1998||Jun 4, 2002||Intel Corporation||DTMF detection in internet telephony|
|US6757276 *||Nov 24, 1998||Jun 29, 2004||3Com Corporation||Touch tone replacement for internet telephony|
|US6782361 *||Mar 3, 2000||Aug 24, 2004||Mcgill University||Method and apparatus for providing background acoustic noise during a discontinued/reduced rate transmission mode of a voice transmission system|
|US20020097842 *||Nov 28, 2001||Jul 25, 2002||David Guedalia||Method and system for enhanced user experience of audio|
|US20020118650 *||Feb 28, 2001||Aug 29, 2002||Ramanathan Jagadeesan||Devices, software and methods for generating aggregate comfort noise in teleconferencing over VoIP networks|
|US20020188445 *||Aug 3, 2001||Dec 12, 2002||Dunling Li||Background noise estimation method for an improved G.729 annex B compliant voice activity detection circuit|
|US20030223573 *||May 31, 2002||Dec 4, 2003||Mansour Tahernezhaadi||Method and apparatus for providing echo cancellation|
|US20030235312 *||Jun 24, 2002||Dec 25, 2003||Pessoa Lucio F. C.||Method and apparatus for tone indication|
|US20050025073 *||Apr 26, 2004||Feb 3, 2005||Kwan Katherine Wang||Efficient buffer allocation for current and predicted active speakers in voice conferencing systems|
|US20050147057 *||Jan 4, 2005||Jul 7, 2005||Ladue Christoph K.||Octave pulse data method & apparatus|
|U.S. Classification||379/406.01, 370/526, 379/202.01|
|International Classification||H04M7/00, H04M1/64, H04M3/56, H04M9/08, H04Q1/45|
|Cooperative Classification||H04Q1/45, H04M3/56, H04M7/1295, H04M7/006|
|European Classification||H04M7/00M, H04M7/12H22|
|Jun 10, 2003||AS||Assignment|
Owner name: INTEL CORPORATION, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RHEMTULLA, AMIN F.;CHEN, LING;LAM, SIU H.;REEL/FRAME:014173/0664
Effective date: 20030603
|Jul 1, 2008||CC||Certificate of correction|
|Jun 22, 2011||FPAY||Fee payment|
Year of fee payment: 4