System and method for voice transmission over network protocols
DCFirst Claim
1. A method for transmitting voice from a presenting computer to one or more client computers over a computer network, comprising the steps of:
- inputting audio data into the presenting computer;
monitoring the audio data to distinguish between periods of sound and periods of silence;
storing the audio data associated with the periods of sound;
transmitting the audio data from said storing step to the client computers; and
creating a voice buffer from a frame buffer having a predetermined size before said transmitting step, said storing step including storing the audio data in said frame buffer and said transmitting step occurring whenever said monitoring step detects a period of silence or whenever the frame buffer is full.
10 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A system and method for voice transmission over high level network protocols. On the Internet and the World Wide Web, such high level protocols are HTTP/TCP. The restrictions imposed by firewalls and proxy servers are avoided by using HTTP level connections to transmit voice data. In addition, packet delivery guarantees are obtained by using TCP instead of UDP. Variable compression based on silence detection takes advantage of the natural silences and pauses in human speech, thus reducing the delays in transmission caused by using HTTP/TCP. The silence detection includes the ability to bookend the voice data sent with small portions of silence to insure that the voice sounds natural. Finally, the voice data is transmitted to each client computer independently from a common circular list of voice data, thus insuring that all clients will stay current with the most recent voice data. The combination of these features enables simple, seamless, and interactive Internet conferencing.
2052 Citations
17 Claims
-
1. A method for transmitting voice from a presenting computer to one or more client computers over a computer network, comprising the steps of:
-
inputting audio data into the presenting computer;
monitoring the audio data to distinguish between periods of sound and periods of silence;
storing the audio data associated with the periods of sound;
transmitting the audio data from said storing step to the client computers; and
creating a voice buffer from a frame buffer having a predetermined size before said transmitting step, said storing step including storing the audio data in said frame buffer and said transmitting step occurring whenever said monitoring step detects a period of silence or whenever the frame buffer is full. - View Dependent Claims (2)
-
-
3. A system for allowing a presenting computer to transmit voice to one or more client computers via a computer network, comprising:
-
a data store on the presenting computer for storing audio data;
a microphone coupled to said data store for inputting audio data;
a recorder coupled to said data store and to said computer network, for monitoring said audio data to distinguish between periods of sound and periods of silence, and for transmitting said audio data associated With periods of sound and to said client computers, the recorder configured to store the audio data associated with periods of sound on the data store in a frame buffer, and to transmit the frame buffer when the recorder detects a periods of silence or the frame buffer is full, the recorder further configured to compress the frame buffer, to thereby create a voice buffer, before transmission to the client computers. - View Dependent Claims (4, 5)
a data structure resident on said data store, wherein said recorder stores one or more voice buffers; and
a voice position pointer resident on said data store, which points to a location in said data structure in which to store a next voice buffer of said one or more voice buffers.
-
-
5. The system of claim 4, wherein the recorder includes one or more separate listening threads, one for each of said client computers, and each of the listening threads transmits to an to associated one of said client computers, the system further comprising:
one or more separate listening position pointers, resident on said data store, one for each of said separate listening threads, wherein said listening pointers indicate which of said one or more voice buffers is to be transmitted to said associated client computer.
-
6. A system for allowing a presenting computer to transmit voice to one or more client computers via a computer network, comprising:
-
a data store on said presenting computer for storing audio data;
a microphone coupled to said data store for inputting audio data;
a recorder coupled to said data store and to said computer network, for monitoring said audio data to distinguish between periods of sound to a server;
said server coupled to said computer network for storing said audio data received from said recorder, and for transmitting said received audio data to said client computers, the recorder configured to store the audio data associated with periods of sound on the data store in a frame buffer, and transmit the frame buffer when the recorder detects a period of silence or the frame buffer is full.- View Dependent Claims (7)
-
-
8. A computer program product comprising a computer useable medium having computer program instructions stored therein for enabling a presenting computer to transmit voice to one or more client computers, wherein said computer program product comprises instructions for:
-
monitoring incoming audio data to distinguish between periods of sound and periods of silence;
transmitting sound to the client computers;
setting a threshold for distinguishing between periods of sound and periods of silence in said monitoring step;
storing said incoming audio data in a frame buffer if said audio data exceeds said threshold; and
creating a voice buffer from the frame buffer when said incoming audio data falls below the threshold or the frame buffer is full.
-
-
9. A computer program product comprising a computer useable medium having a computer program instructions stored therein for enabling a presenting computer to transmit voice, via a server, to one or more client computers, wherein said computer program product comprises instructions for:
-
at a presenting computer, monitoring incoming audio data to distinguish between periods of sound and periods of silence;
at the presenting computer, creating one or more voice buffers from the incoming audio data;
at the presenting computer, transmitting the voice buffers to the server;
at the server, maintaining the voice buffers in a data structure;
at the server, transmitting the voice buffers to the client computers; and
at the presenting computer setting a threshold for distinguishing between periods of sound and periods of silence. - View Dependent Claims (10, 11, 12, 13, 14)
storing the incoming audio data in a frame buffer if the audio data exceeds the threshold; and
creating a voice buffer from the frame buffer when the incoming audio data falls below the threshold or the frame buffer is full.
-
-
11. The computer program product of claim 10, further comprising instructions for independently transmitting the voice buffers stored in the data structure to each of the client computers.
-
12. The computer program product of claim 11, wherein said transmitting program instructions utilize an open HTTP connection to each of the client computers.
-
13. The computer program product of claim 11, further comprising program instructions for compressing the voice buffers received by the server before storing them in the data structure.
-
14. The computer program product of claim 11, further comprising program instructions for compressing the frame buffer in said creating program instructions.
-
15. A method for transmitting voice as part of a collaborative web browsing session from a presenting computer to one or more client computers over a computer network, comprising the steps of:
-
inputting audio data into the presenting computer;
monitoring the audio data to distinguish between periods of sound and periods of silence;
storing the audio data associated with the periods of sound;
transmitting the audio data from said storing step to the client computers;
said storing step including storing the audio data in a frame buffer having a predetermined size, and said transmitting step occurring whenever said monitoring step detects a periods of silence or whenever the frame buffer is full. - View Dependent Claims (16, 17)
creating a voice buffer from the frame buffer before said transmitting step.
-
-
17. The method of claim 16, wherein said creating step is accomplished by compressing the contents of the frame buffer.
Specification