Method and apparatus for implementing hardware independent echo cancellation in a full-duplex audio stream in a computer system
First Claim
1. A method of implementing removal of an echo from a full-duplex audio data stream, comprising the steps of:
- sampling at a predetermined rate input audio data which has been input into a first processing system for transmitting to a second processing system to produce a plurality of samples of the input audio data, the first processing system using the full-duplex audio data stream to communicate with the second processing system;
providing a plurality of samples of output audio data which has been received by the first processing system from the second processing system and which is to be output by the first processing system;
correlating the samples of the input audio data with the samples of the output audio data such that each sample of the output audio data corresponds in time to the most recent sample of the input audio data and approximates the value of the output audio data at the time the most recent sample of the input audio data was acquired; and
storing in a storage device a plurality of correlated samples of the input audio data and the output audio data, such that the contents of the storage device represent both the input audio data and an approximation of corresponding output audio data during a given time interval.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for implementing the removal of electronic or acoustic echo from a full-duplex audio data stream. Audio data which has been input into a processing system is sampled at a predetermined rate. Audio data which has been received by the processing system and which is to be output from the processing system is also sampled. Each sample of the output audio data corresponds in time to the most recent sample of the input audio data and approximates the value of the output audio data at the time the most recent sample of the input audio data was acquired. A storage device is provided for storing N samples of the input audio data and N corresponding samples of the output audio data, where N is a positive integer. N samples of the input audio data and N corresponding samples of the output audio data are stored in the storage device, such that the contents of the storage device represent both the input audio data and an approximation of corresponding output audio data during a given time interval. This combined input/output can be routed through the processing system or across a communications network to another processing system, and the echo can be ignored or removed at any point by a cancellation device.
-
Citations
15 Claims
-
1. A method of implementing removal of an echo from a full-duplex audio data stream, comprising the steps of:
-
sampling at a predetermined rate input audio data which has been input into a first processing system for transmitting to a second processing system to produce a plurality of samples of the input audio data, the first processing system using the full-duplex audio data stream to communicate with the second processing system; providing a plurality of samples of output audio data which has been received by the first processing system from the second processing system and which is to be output by the first processing system; correlating the samples of the input audio data with the samples of the output audio data such that each sample of the output audio data corresponds in time to the most recent sample of the input audio data and approximates the value of the output audio data at the time the most recent sample of the input audio data was acquired; and storing in a storage device a plurality of correlated samples of the input audio data and the output audio data, such that the contents of the storage device represent both the input audio data and an approximation of corresponding output audio data during a given time interval. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus for facilitating removal of an echo from a full-duplex audio data stream, the apparatus comprising:
-
input circuitry sampling at a predetermined rate input audio data which has been input into a first communication device for transmitting to a second communication device to generate a plurality of samples of the input audio data, the first communication device communicating with the second communication device using the full-duplex audio data stream; output circuitry providing a plurality of samples of output audio data which has been received or stored by the first communication device and is to be output from the first communication device, one sample of the output audio data for each sample of the input audio data, correlation logic coupled to received the samples of the input audio data and the samples of the output audio data, the correlation logic correlating the samples of the input audio data with the samples of the output audio data such that each sample of the output audio data corresponds in time to the most recent sample of the input audio data and approximates the value of the output audio data at the time the most recent sample of the input audio data was acquired; and a buffer coupled to receive and store a plurality of correlated samples of the input audio data and the output audio data, such that each stored sample of the output audio data corresponds to a particular stored sample of the input audio data. - View Dependent Claims (7, 8, 9)
-
-
10. An apparatus for implementing removal of an echo from a full-duplex audio stream, the apparatus comprising:
-
means for sampling at a predetermined rate input audio data which has been input into a first communication device for transmitting to a second communication device, the first communication device communicating with the second communication device using the full-duplex audio stream; means for providing samples of output audio data which has been received by the first communication device and is to be output from the first communication device, such that the output audio data is sampled once for each time the input data is sampled; means for correlating the samples of the input audio data with the samples of the output audio data such that each sample of the output audio data corresponds in time to the most recent sample of the input audio data and approximates the value of the output audio data at the time the most recent sample of the input audio data was acquired; and storage means for storing N samples of the input audio data and N corresponding samples of the output audio data, where N is a positive integer, such that each stored sample of the output audio data corresponds to a particular stored sample of the input audio data. - View Dependent Claims (11, 12)
-
-
13. A first processing system having full-duplex audio communication with a second processing system, the first processing system comprising:
-
a processor controlling operation of the processing system; a communication device coupled to the processor, the communication device processing full-duplex audio data, the communication device including; input circuitry coupled to receive acoustic signals and to convert the acoustic signals to audio data; output circuitry coupled to receive audio data and to convert the audio data to acoustic signals; transmit/receive circuitry coupled to transmit or receive audio data; and sampling circuitry coupled to receive and sample at a predetermined rate input audio data to be transmitted to the second processing system; logic coupled to provide a plurality of samples of output audio data received or stored by the first processing system, one sample of the output audio data for each sample of the input audio data; and correlation logic coupled to receive samples of the input audio data and samples of the output audio data, the correlation logic correlating the samples of the input audio data with the samples of the output audio data such that each sample of the output audio data corresponds in time to the most recent sample of the input audio data and approximates the value of the output audio data at the time the most recent sample of the input audio data was acquired; and a buffer coupled to receive and store N samples of the input audio data and N corresponding samples of the output audio data, such that each stored sample of the output audio data corresponds to a particular stored sample of the input audio data; and an echo cancellor coupled to receive the contents of the buffer, the echo cancellor identifying an echo of the output audio data in the input audio data based on the contents of the buffer and removing the echo to generate an echo-free approximation of the input audio data.
-
-
14. A processing system having full-duplex audio communication with another processing system, comprising:
-
processor means for controlling operation of the processing system; communication means for processing full-duplex audio data, the communication means including; means for converting acoustic signals to audio data; means for converting audio data to acoustic signals; means for transmitting the audio data; means for sampling at a predetermined rate input audio data to be transmitted; means for providing a plurality of samples of output audio data; and correlation means for receiving the samples of the input audio data and the samples of the output audio data, the correlation means further for correlating the samples of the input audio data with the samples of the output audio data such that each sample of the output audio data corresponds in time to the most recent sample of the input audio data and approximates the value of the output audio data at the time the most recent sample of the input audio data was acquired; and storage means for receiving and storing a plurality of correlated samples of the input audio data and the output audio data such that each stored sample of the output audio data corresponds to a particular stored sample of the input audio data. - View Dependent Claims (15)
-
Specification