IP Library › Granted Patent US 10,923,139
Granted Patent B2
US 10,923,139 · App. 16/102,690 · Granted Feb 16, 2021

Systems and methods for processing meeting information obtained from multiple sources

Inventors: Guobin Shen (Beijing, CN); Zheng Han (Beijing, CN)
Assignee: MELO INC.
G10L25/60G10L17/00G10L25/21G10L25/84G06K9/00228H04L12/1831
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,923,139
App. No.
16/102,690
Granted
Feb 16, 2021
Kind
B2
Abstract

Systems and methods are provided for processing information of a meeting. An exemplary system may include a communication interface configured to receive meeting information obtained by a plurality of client devices. The meeting information may include multiple audio streams. The system may also include a memory and a processor. The processor may execute instructions stored on the memory to perform operations. The operations may include determining signal-to-noise-ratio (SNR) indicators associated with the audio streams. The operations may also include selecting, from the audio streams, a candidate audio stream based on the SNR indicators. The SNR indicator associated with the candidate audio stream may indicate that the candidate audio stream has a higher average SNR than that of a predetermined number of other audio streams. In addition, the operations may include generating an output data stream including at least a portion of the candidate audio stream.

Claims (102)

1. A system for processing information of a meeting, comprising:

a communication interface configured to receive meeting information obtained by a plurality of client devices, wherein the meeting information comprises multiple audio streams, wherein the audio streams comprise a plurality of audio frames;

a memory storing computer-executable instructions; and

a processor in communication with the communication interface and the memory, the processor being configured to execute the computer-executable instructions to perform operations, wherein the operations comprise:

determining signal-to-noise-ratio (SNR) indicators associated with the audio streams;

selecting, from the audio streams, a candidate audio stream based on the SNR indicators, wherein the SNR indicator associated with the candidate audio stream indicates that the candidate audio stream has a higher average SNR than that of a predetermined number of other audio streams;

generating an output data stream including at least a portion of the candidate audio stream; and

determining, for each audio stream, SNR values of a predetermine number of audio frames;

comparing the SNR values of corresponding audio frames across the multiple audio frames;

identifying, based on the comparison, a winning audio stream for an individual audio frame, wherein the winning audio stream has a higher SNR value than other audio streams for that individual audio frame; and

determining the SNR indicators based on a number of times an audio stream being identified as a winning audio stream over the predetermined number of comparisons conducted corresponding to the predetermined number of audio frames.

2. The system of claim 1 , wherein:

the SNR indicator associated with the candidate audio stream indicates that the candidate audio stream is identified as a winning audio stream more than any other audio streams.

3. The system of claim 1 , wherein the operations comprise:

determining, for one of the predetermined number of audio frames, whether the audio frame contains voice signals; and

in response to the determination that the audio frame does not contain voice signals:

setting the SNR value of the audio frame to a preset value;

calculating noise energy of the audio frame; and

updating a noise level based on the noise energy.

4. The system of claim 1 , wherein the operations comprise:

determining, for one of the predetermined number of audio frames, whether the audio frame contains voice signals; and

in response to the determination that the audio frame contains voice signals:

calculating signal energy of the audio frame; and

determining the SNR value of the audio frame based on the signal energy and a noise level.

5. The system of claim 1 , wherein the operations comprise:

determining, for the candidate audio stream, whether the predetermined number of audio frames include an indication of a speaker change, a speaker being an attendee of the meeting; and

in response to the determination that the predetermined number of audio frames include an indication of a speaker change, selecting, within the candidate audio stream, a portion of the predetermined number of audio frames to be included in the output data stream, the portion corresponding to voice of a same speaker.

6. The system of claim 1 , wherein the operations comprise:

providing a transcript of the output data stream, the transcript matching at least part of the candidate audio stream in the output data stream;

receiving a request for selecting at least a portion of the transcript;

identifying, based on the request, contents in the output data stream corresponding to the selected portion of the transcript; and

packaging the identified contents into a collection.

7. The system of claim 1 , wherein the operations comprise:

synchronizing audio streams based on a common clock time.

8. The system of claim 1 , wherein the operations comprise:

sending, through the communication interface, probing packets to the client devices;

receiving, from the client devices, responses to the probing packets, the responses including response times recorded by the client devices upon receiving the probing packets;

determining round-trip-times (RTTs) indicating time differences between sending the probing packets and receiving the response packets;

determining relative clock offsets for the audio streams based on the RTTs and the response times; and

synchronizing audio streams based on the relative clock offsets.

9. The system of claim 1 , wherein the operations comprise:

determining cross-correlation values among audio streams; and

synchronizing the audio streams based on a peak of the cross-correlation values.

10. The system of claim 1 , wherein:

the meeting information comprises video streams; and

the operations comprise:

determining that a speaker audially speaks in at least a portion of the candidate audio stream;

detecting an attendee of the meeting visually speaking based on face detection from the video streams;

associating a video of the attendee visually speaking with the portion of the candidate audio stream in which the speaker audially speaks; and

generating the output data stream including at least the portion of the candidate audio stream and the associated video of the speaker.

11. The system of claim 10 , wherein associating a video of the attendee visually speaking with the portion of the candidate audio stream in which the speaker audially speaks comprise:

determining a voice activity indicator for the speaker based on the candidate audio stream, the voice activity indicator indicating whether the speaker audially speaks at a first set of predetermined moments;

determining speaking activity indicators for multiple attendees of the meeting based on the video streams, the speaking activity indicator corresponding to an attendee indicating whether the attendee visually speaks at a second set of predetermined moments;

determining cross-correlations between the voice activity indicator and the speaking activity indicators;

selecting an attendee to whom the corresponding speaking activity indicator has a highest cross-correlation with the voice activity indicator to associate with the speaker.

12. A method for processing information of a meeting, comprising:

receiving, by a communication interface, meeting information obtained by a plurality of client devices, wherein the meeting information comprises multiple audio streams, wherein the audio streams comprise a plurality of audio frames;

determining signal-to-noise-ratio (SNR) indicators associated with the audio streams;

selecting, from the audio streams, a candidate audio stream based on the SNR indicators, wherein the SNR indicator associated with the candidate audio stream indicates that the candidate audio stream has a higher average SNR than that of a predetermined number of other audio streams;

generating an output data stream including at least a portion of the candidate audio stream;

determining, for each audio stream, SNR values of a predetermine number of audio frames;

comparing the SNR values of corresponding audio frames across the multiple audio frames;

identifying, based on the comparison, a winning audio stream for an individual audio frame, wherein the winning audio stream has a higher SNR value than other audio streams for that individual audio frame; and

determining the SNR indicators based on a number of times an audio stream being identified as a winning audio stream over the predetermined number of comparisons conducted corresponding to the predetermined number of audio frames.

13. The method of claim 12 , wherein:

the SNR indicator associated with the candidate audio stream indicates that the candidate audio stream is identified as a winning audio stream more than any other audio streams.

14. The method of claim 12 , comprises:

determining, for one of the predetermined number of audio frames, whether the audio frame contains voice signals;

in response to the determination that the audio frame does not contain voice signals:

setting the SNR value of the audio frame to a preset value;

calculating noise energy of the audio frame; and

updating a noise level based on the noise energy; and

in response to the determination that the audio frame contains voice signals:

calculating signal energy of the audio frame; and

determining the SNR value of the audio frame based on the signal energy and the noise level.

15. The method of claim 12 , comprises:

providing a transcript of the output data stream, the transcript matching at least part of the candidate audio stream in the output data stream;

receiving a request for selecting at least a portion of the transcript;

identifying, based on the request, contents in the output data stream corresponding to the selected portion of the transcript; and

packaging the identified contents into a collection.

16. The method of claim 12 , comprising:

sending, through the communication interface, probing packets to the client devices;

receiving, from the client devices, responses to the probing packets, the responses including response times recorded by the client devices upon receiving the probing packets;

determining round-trip-times (RTTs) indicating time differences between sending the probing packets and receiving the response packets;

determining relative clock offsets for the audio streams based on the RTTs and the response times; and

synchronizing audio streams based on the relative clock offsets.

17. The method of claim 12 , wherein:

the meeting information comprises video streams; and

the method comprises:

determining that a speaker audially speaks in at least a portion of the candidate audio stream;

detecting an attendee of the meeting visually speaking based on face detection from the video streams;

associating a video of the attendee visually speaking with the portion of the candidate audio stream in which the speaker audially speaks; and

generating the output data stream including at least the portion of the candidate audio stream and the associated video of the speaker.

18. A non-transitory computer-readable medium storing instructions that are executable by at least one processor to cause performance of a method for processing information of a meeting, the method comprising:

receiving meeting information obtained by a plurality of client devices, wherein the meeting information comprises multiple audio streams, wherein the audio streams comprise a plurality of audio frames;

determining signal-to-noise-ratio (SNR) indicators associated with the audio streams;

selecting, from the audio streams, a candidate audio stream based on the SNR indicators, wherein the SNR indicator associated with the candidate audio stream indicates that the candidate audio stream has a higher average SNR than a predetermined number of other audio streams;

generating an output data stream including at least a portion of the candidate audio stream;

determining, for each audio stream, SNR values of a predetermine number of audio frames;

comparing the SNR values of corresponding audio frames across the multiple audio frames;

identifying, based on the comparison, a winning audio stream for an individual audio frame, wherein the winning audio stream has a higher SNR value than other audio streams for that individual audio frame; and

determining the SNR indicators based on a number of times an audio stream being identified as a winning audio stream over the predetermined number of comparisons conducted corresponding to the predetermined number of audio frames.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2022
From: MELO INC.
To: BEIJING XIYU INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 060426/0163 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2018
From: SHEN, GUOBIN; HAN, ZHENG
To: MELO INC.
Reel/Frame 046644/0694 →
Continuity (2)
Provisional Application 62665502 · May 2, 2018
Related Publication 20190341068A1 · Nov 7, 2019