Multiple device conferencing with improved destination playback
AssigneeTeamport Inc.
InventorsPavel Serbajlo, Marián Zákutný, Dominik Zane, Jakub Fiala
Life of this patent
Estimating the term…
Abstract
Disclosed are systems and methods for providing a virtual conference using personal devices of the participants. In one embodiment, a proximity value is generated and encoded in audio streams from each device. A server can compare proximity values and enable a suitable microphone, while disabling the remaining microphones. Systems and techniques for improving capturing and synchronization of source audio and improved audio playback at destination are also disclosed.
Claims15
A computer-implemented method comprising:
- generating an ultrasonic code for a first computer device requesting to join the co-present grouping of currently paired computer devices;
- sending the ultrasonic code to the first computer device;
- receiving decode data from a second computer device, the decode data corresponding to an instance of the ultrasonic code broadcasted from the first computer device to the second computer device;
- verifying whether the decode data corresponds to the broadcasted instance of the ultrasonic code;
- upon verification, pairing the first and second computer devices for inclusion in a co-present grouping of computer devices;
- assigning the role of the primary device, for a virtual conference, to a particular device from a co-present grouping of currently paired computer devices;
- determining, at the primary device, a dynamic delay based on one or more audio streams received from respective secondary devices, each secondary device associated with a different dynamically-resizable buffer, wherein a size of a respective dynamically-resizable buffer is based, at least in part on:
- (i) an amount of time for a respective secondary device to encode at least a portion of its microphone data, (ii) an amount of time for the primary device to decode at least the encoded portion of an audition stream based on the encoded microphone data and (iii) a current round trip time of network latency, wherein the size of the respective dynamically-resizable buffer can be further based, in part, on a delay in obtaining microphone data for one or more microphones of the respective secondary device;
- and
- applying, at the primary device, the dynamic delay to microphone data from one or more microphones of the primary device;
- downmixing, at the primary device, the one or more audio streams received from the respective secondary devices and the primary device's delayed microphone data to generate an outgoing downmixed audio stream;
- resizing each dynamically-resizable buffer of two or more of the secondary devices according to different buffer sizes;
- and
- sending, from the primary device, the outgoing downmixed audio stream to each of the resized buffers.
A system that comprises one or more processors and a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to perform the steps of:
- generating an ultrasonic code for a first computer device requesting to join the co-present grouping of currently paired computer devices;
- sending the ultrasonic code to the first computer device;
- receiving decode data from a second computer device, the decode data corresponding to an instance of the ultrasonic code broadcasted from the first computer device to the second computer device;
- verifying whether the decode data corresponds to the broadcasted instance of the ultrasonic code;
- upon verification, pairing the first and second computer devices for inclusion in a co-present grouping of computer devices;
- assigning the role of the primary device, for a virtual conference, to a particular device from a co-present grouping of currently paired computer devices;
- determining, at the primary device, a dynamic delay based on one or more audio streams received from respective secondary devices, each secondary device associated with a different dynamically-resizable buffer, wherein a size of a respective dynamically-resizable buffer is based, at least in part on:
- (i) an amount of time for a respective secondary device to encode at least a portion of its microphone data, (ii) an amount of time for the primary device to decode at least the encoded portion of an audition stream based on the encoded microphone data and (iii) a current round trip time of network latency, wherein the size of the respective dynamically-resizable buffer can be further based, in part, on a delay in obtaining microphone data for one or more microphones of the respective secondary device;
- applying, at the primary device, the dynamic delay to microphone data from one or more microphones of the primary device;
- downmixing, at the primary device, the one or more audio streams received from the respective secondary devices and the primary device's delayed microphone data to generate an outgoing downmixed audio stream;
- resizing each dynamically-resizable buffer of two or more of the secondary devices according to different buffer sizes;
- and
- sending, from the primary device, the outgoing downmixed audio stream to each of the resized buffers.
Dependencies are inferred from the claim text.