Low-latency multi-party audio chat
First Claim
1. In a receiving node coupled to a plurality of transmitting nodes, a method of managing data received from the transmitting nodes, the method comprising the steps of:
- receiving a plurality of transmissions, each transmission transmitted from a different one of the transmitting nodes, each transmission representing one complete utterance of audio information that includes a plurality of data packets;
designating one of the transmissions as a ready-to-output transmission;
providing data packets of the ready-to-output transmission to an output queue in real time; and
delaying providing any of the others of said transmissions to the output queue until after all of the packets of the ready-to-output transmission have been provided to the output queue.
1 Assignment
0 Petitions
Accused Products
Abstract
In a receiving node coupled to a number of transmitting nodes, a method of managing audio data received from the transmitting nodes is provided. In the method, a plurality of transmissions are received by the receiving node, with each transmission representing an utterance of audio information. Each transmission is transmitted from a different one of the transmitting nodes and includes a number of audio data packets. One of the utterances is designated as a ready-to-play utterance based on an order in which the utterances were received. The data packets of any utterance designated as the ready-to-play utterance are provided to a ready-to-play queue in real time. Data packets of the other utterances are held in separate queues and are not provided to the ready-to-play queue until after the packets of the ready-to-play utterance have been provided to the ready-to-play queue. After the data packets of the ready-to-play utterance have been provided to the ready-to-play queue, a new utterance is designated as the ready-to-play utterance.
89 Citations
41 Claims
-
1. In a receiving node coupled to a plurality of transmitting nodes, a method of managing data received from the transmitting nodes, the method comprising the steps of:
-
receiving a plurality of transmissions, each transmission transmitted from a different one of the transmitting nodes, each transmission representing one complete utterance of audio information that includes a plurality of data packets; designating one of the transmissions as a ready-to-output transmission; providing data packets of the ready-to-output transmission to an output queue in real time; and delaying providing any of the others of said transmissions to the output queue until after all of the packets of the ready-to-output transmission have been provided to the output queue. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a receiving station coupled to a plurality of transmitting stations by a data communication network, a method of managing data received from the transmitting stations, the method comprising the steps of:
-
(a) receiving a plurality of sets of data, each set including a plurality of data packets; (b) assigning a sequence to the sets of data with respect to a single time base; (c) designating one of the sets of data as a ready-to-output set based on a predetermined criterion; (d) providing data packets of the ready-to-output set to an output queue on a packet-by-packet basis; (e) after all data packets of the ready-to-output queue have been provided to the output set, (i) designating another one of the sets of data as the ready-to-output set; and (ii) repeating step (d). - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of enabling a receiving computer to manage data received from a plurality of transmitting nodes, the receiving node including a sequencing mechanism for assigning a sequence to a plurality of input transmissions relative to a single time base, the method comprising the step of transmitting sequences of instructions including instructions which, when executed on the receiving computer, cause the receiving computer to perform the steps of:
-
(a) receiving the plurality of transmissions, each transmission transmitted from a different one of the transmitting nodes and including a plurality of data packets; (b) designating only one of the transmissions as a ready-to-output transmission based on the sequence; (c) after said designating step, providing each subsequently received data packet of the ready-to-output transmission to an output queue immediately upon receiving each said subsequently received data packet and deferring providing data packets of any others of said transmissions to the output queue while an end-of-transmission packet has not been received for the ready-to-output transmission; and (d) designating a different one of the transmission as the ready-to-output queue based on the sequence; and (e) repeating step (c).
-
-
16. In a receiving station coupled to a plurality of transmitting stations by a data communication network, a method of managing audio data received from the transmitting stations, the method comprising the steps of:
-
receiving a plurality of complete utterances of audio data from the transmitting stations, each utterance originating from a different one of the transmitting stations, each utterance including a plurality of audio packets; designating one of the utterances as a ready-to-play utterance; providing audio packets of the ready-to-play utterance to a ready-to-play queue on a packet-by-packet basis as the audio packets of the ready-to-play utterance are received; deferring providing any of the audio packets of any of said utterances not designated as the ready-to-play utterance to the output queue until all audio packets of the ready-to-output utterance have been provided to the ready-to-play queue; and after providing the audio packets of the ready-to-play utterance to the ready-to-play queue, designating a second one of the utterances as the ready-to-play utterance. - View Dependent Claims (17, 18, 19)
-
-
20. In a receiving station coupled to a plurality of transmitting stations by a data communication network, a method of managing audio data received from the transmitting stations, the method comprising the steps of:
-
creating a plurality of audio data queues for holding audio data received from the transmitting stations, the plurality of audio data queues including one audio data queue for each transmitting station; creating a ready-to-play queue for holding audio data to be output from the receiving station; receiving a plurality of complete utterances of audio data from the transmitting stations, each utterance originating from a different one of the transmitting stations, each utterance including a plurality of audio packets; placing each of the audio packets of the received utterances in a corresponding one of the audio data queues; designating one of the utterances as a ready-to-play utterance, and transferring audio packets of only the ready-to-play utterance to the ready-to-play queue on a packet-by-packet basis until all audio packets of the ready-to-play utterance have been transferred to the ready-to-play queue; and designating a different one of the utterances as the ready-to-play utterance.
-
-
21. A program storage device readable by a machine, the program storage device tangibly embodying a program of instructions executable by the machine to perform method steps for enabling a receiving node coupled to a plurality of transmitting nodes to manage data received from the transmitting nodes, the method steps comprising:
-
receiving a plurality of transmissions, each transmission transmitted from a different one of the transmitting nodes, each transmission representing one complete utterance of information that includes a plurality of data packets; designating one of the transmissions as a ready-to-output transmission, and providing data packets of the ready-to-output transmission to an output queue in real time; and delaying providing any of the others of said transmissions to the output queue until after all of the packets of the ready-to-output transmission have been provided to the output queue. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
28. In a node coupled for communication of audio data with a plurality of other nodes, a method of managing received audio data, the method comprising:
-
receiving a plurality of transmissions of audio data from at least one of the other nodes, each of the transmissions representing one complete utterance; designating one of the transmissions as a ready-to-output transmission; providing the ready-to-output transmission to an output stage; and delaying providing the transmissions other than the ready-to-output transmission to the output stage until after the ready-to-output transmission has been provided in its entirety to the output stage. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35)
-
-
36. An apparatus for managing received audio data in a node capable of audio communication with a plurality of remote nodes, the apparatus comprising:
-
a communications interface for receiving a transmission from each of the remote nodes, each of the transmissions representing one complete utterance; an output stage; and a prioritization mechanism configured to designate one of the received transmissions as a ready-to-output transmission, configured to provide the ready-to-output transmission to the output stage, and configured to delay providing the transmissions other than the ready-to-output transmission to the output stage until after the ready-to-output transmission has been provided in its entirety to the output stage. - View Dependent Claims (37, 38, 39, 40, 41)
-
Specification