Internet telephone system with dynamically varying codec
First Claim
1. A software method of choosing from a plurality of codecs in an Internet telephone system, said method comprising the steps of:
- receiving a plurality of self-describing data packets in a voice data stream on a receiving end;
acquiring a voice quality measurement from said self-describing data packets received at said receiving end; and
dynamically changing codec algorithms in response to said voice quality measurement on a packet-to-packet basis for each packet in said plurality of self-describing data packets for optimizing the voice quality of the information contained in each said packet.
6 Assignments
0 Petitions
Accused Products
Abstract
The invention is concerned with improvements in full duplex Internet telephone systems with a system architecture having low latency and permitting voice communication with telephone to telephone or PC to telephone connections. The architecture permits dynamic packet-to-packet change in codec to adjust for Internet conditions. The voice port creates self-describing packet conditions so that the higher level software of the system is independent of codec selection. In addition to adjusting the codec, the voice port has the capability of dynamically and concurrently selecting other factors such as the level of error correction redundancy, the packet size and packet bundling on a packet-to-packet basis. The invention further includes a technique to eliminate dead air spaces in the voice data transmission stream by speeding up or slowing down the data rate in the buffer while maintaining a constant pitch of speech.
186 Citations
26 Claims
-
1. A software method of choosing from a plurality of codecs in an Internet telephone system, said method comprising the steps of:
-
receiving a plurality of self-describing data packets in a voice data stream on a receiving end;
acquiring a voice quality measurement from said self-describing data packets received at said receiving end; and
dynamically changing codec algorithms in response to said voice quality measurement on a packet-to-packet basis for each packet in said plurality of self-describing data packets for optimizing the voice quality of the information contained in each said packet. - View Dependent Claims (2, 3, 4, 5, 6)
varying the length of said packets.
-
-
3. The software method of claim 1, further comprising:
applying data redundancy to said packets.
-
4. The software method of claim 1, further comprising:
varying the bundling of said packets.
-
5. The software method of claim 1, further comprising the steps of:
-
detecting a quantity of voice data waiting in a voice input buffer;
regulating the rate of removal of said voice data from said buffer based upon said quantity from a first speed to a second speed; and
maintaining a constant pitch for said voice data as heard by a caller as the rate changes from said first speed to said second speed.
-
-
6. The software method of claim 5, wherein said regulating step further comprises:
-
slowing down the rate of removal of said voice data for low quantities; and
speeding up the rate of removal for high quantities.
-
-
7. A software method of choosing from a plurality of codecs in an Internet telephone system, said method comprising the steps of:
-
sending a plurality of self-describing data packets in a voice data stream on a sending end;
acquiring a voice quality measurement from said self-describing data packets received at a receiving end; and
dynamically changing codec algorithms in response to said voice quality measurement on a packet-to-packet basis for each packet in said plurality of self-describing data packets for optimizing the voice quality of the information contained in each said packet. - View Dependent Claims (8, 9, 10)
varying the length of said packets.
-
-
9. The software method of claim 7, further comprising:
applying data redundancy of said packets.
-
10. The software method of claim 7, further comprising:
varying the bundling of said data packets.
-
11. A software system for choosing from a plurality of codecs in an Internet telephone system, comprising:
-
a gateway server for receiving a plurality of self-describing data packets in a voice data stream on a receiving end; and
a voice port in said gateway server for acquiring a voice quality measurement from said self-describing data packets received by said gateway server, and dynamically changing codec algorithms in response to said voice quality measurement on a packet-to-packet basis for each packet in said plurality of self-describing data packets for optimizing the voice quality of the information contained in each said packet. - View Dependent Claims (12, 13, 14, 15, 16)
said voice port varies the length of said packets.
-
-
13. The software system of claim 11, wherein:
said voice port applies data redundancy to said packets.
-
14. The software system of claim 11, wherein:
said voice port varies the bundling of said packets.
-
15. The software system of claim 11, further comprising:
-
a software utility for detecting a quantity of voice data waiting in a voice input buffer;
said utility regulates the rate of removal of said voice data from said buffer based upon said quantity from a first speed to a second speed; and
said utility maintains a constant pitch for said voice data as heard by a caller as the rate changes from said first speed to said second speed.
-
-
16. The software system of claim 15, wherein:
said utility slows down the rate of removal of said voice data for low quantities of said data in said buffer and speeds up the rate of removal for high quantities.
-
17. A software system for choosing from a plurality of codecs in an Internet telephone system, comprising:
-
a gateway server for receiving a plurality of self-describing data packets in a voice data stream on a receiving end; and
a voice port in said gateway server for acquiring a voice quality measurement from said self-describing data packets received by said gateway server, comparing said voice quality measurement to a numerical baseline, and dynamically changing codec algorithms in response to said comparison of said voice quality measurement to said numerical baseline on a packet-to-packet basis for each packet in said plurality of self-describing data packets for optimizing the voice quality of the information contained in each said packet. - View Dependent Claims (18, 19, 20, 21, 22)
said voice port varies the length of said packets.
-
-
19. The software system of claim 17, wherein:
said voice port applies data redundancy to said packets.
-
20. The software system of claim 17, wherein:
said voice port varies the bundling of said packets.
-
21. The software system of claim 17, wherein said codec algorithm is changed if said voice quality measurement is less than said numerical baseline and said codec algorithm is not changed if said measurement is greater than or equal to said numerical baseline.
-
22. The software system of claim 17, wherein said codec algorithm is changed if said voice quality measurement is greater than or equal to said numerical baseline and said codec algorithm is not changed if said voice quality measurement is less than said baseline.
-
23. A software system for choosing from a plurality of codecs in an Internet telephone system, comprising:
-
means for receiving a plurality of self-describing data packets in a voice data stream on a receiving end;
means for acquiring a voice quality measurement from said self-describing data packets received at said receiving end;
means for comparing said voice quality measurement to a numerical baseline; and
means for dynamically changing codec algorithms in response to said comparison of said voice quality measurement to said numerical baseline on a packet-to-packet basis for each packet in said plurality of self-describing packets for optimizing the voice quality of the information contained in each said packet. - View Dependent Claims (24, 25, 26)
means for dynamically varying the length of said packets.
-
-
25. The software system of claim 23, further comprising:
means for applying data redundancy to said packets.
-
26. The software system of claim 23, further comprising:
means for varying the bundling of said packets.
Specification