1. A method performed by data processing apparatus, the method comprising:
receiving a media stream in a buffer, the received media stream including media messages, each media message comprising (i) a timed-sequence of video frames and (ii) audio channels that are synchronized with the timed-sequence of video frames, each audio channel including a number of channel-specific samples that are separated in time within each channel and are synchronized across the audio channels;
decoding a media message from the buffer to obtain a decoded portion of the received media stream including a corresponding timed sequence of video frames and corresponding audio channels;
responsive to a size of the buffer being less than or equal to a predetermined size, playing the decoded portion of the received media stream;
responsive to the size of the buffer being more than the predetermined size,
summing the audio channels corresponding to the decoded portion of the received media stream in a sum signal having the number of samples of the audio channels,
analyzing in time domain the sum signal to determine a reduced number of samples to obtain down-sampled audio channels corresponding to the respective audio channels, each down-sampled audio channel to include the reduced number of samples, wherein said analyzing in the time domain comprises determining a time offset of the sum signal and a given number of samples to be removed from the sum signal starting at the determined time offset,
generating based on the analyzing a modified portion of the media stream that includes the timed-sequence of video frames corresponding to the decoded portion of the received media stream and the down-sampled audio channels, and
playing the modified portion of the media stream;
while playing the decoded portion of the received media stream or the modified media stream, decoding a next media message from the buffer to obtain a decoded next portion of the received media stream; and
processing the decoded next portion of the received media stream responsive to the size of the buffer relative to the predetermined size.
2. The method of claim 1, wherein said summing the audio channels corresponding to the decoded portion of the received media stream into the sum signal comprises performing a weighted sum of the audio channels.
3. The method of claim 1, wherein said determining the given number of samples to be removed from the sum signal starting at the determined time offset comprises:
selecting the given number of samples to be removed based on a difference between the size of the buffer and the predetermined size.
4. The method of claim 1, further comprising:
combining the audio channels corresponding to the decoded portion of the received media stream in one or more difference signals that comprise corresponding difference samples, each of the one or more difference signals having the number of samples of the audio channels,
wherein said generating based on the analyzing comprises,
removing the given number of samples from the sum signal to obtain a down-sampled sum signal that comprises the reduced number of samples,
removing the given number of samples from each of the one or more difference signals starting at the determined time offset to obtain respective one or more down-sampled difference signals such that each down-sampled difference signal comprises the reduced number of samples, and
obtaining the down-sampled audio channels using linear combinations of the down-sampled sum signal and the one or more down-sampled difference signals.
5. The method of claim 4, wherein the one or more differences signals represent pair-wise differences of audio channels.
6. The method of claim 1, wherein the audio channels include a left audio channel and a right audio channel corresponding to a stereo sound mix.
7. The method of claim 1, wherein the audio channels include six audio channels corresponding to a 5.1 sound mix.
8. A system comprising:
memory configured to store a live buffer; and
one or more processors communicatively coupled with the memory and configured to perform operations including:
receiving a media stream in the live buffer, the received media stream including media messages, each media message comprising (i) a timed-sequence of video frames and (ii) audio channels that are synchronized with the timed-sequence of video frames, each audio channel including a number of channel-specific samples that are separated in time within each channel and are synchronized across the audio channels;
decoding a media message from the live buffer to obtain a decoded portion of the received media stream including a corresponding timed sequence of video frames and corresponding audio channels;
responsive to a buffer length of the live buffer being less than or equal to a predetermined length, playing the decoded portion of the received media stream;
responsive to the buffer length being more than the predetermined length,
summing the audio channels corresponding to the decoded portion of the received media stream in a sum signal having the number of samples of the audio channels,
analyzing in time domain the sum signal to determine a reduced number of samples to obtain down-sampled audio channels corresponding to the respective audio channels, each down-sampled audio channel to include the reduced number of samples, wherein the operation of analyzing in the time domain comprises determining a time offset of the sum signal and a given number of samples to be removed from the sum signal starting at the determined time offset,
generating based on the analyzing a modified portion of the media stream that includes the timed-sequence of video frames corresponding to the decoded portion of the received media stream and the down-sampled audio channels, and
playing the modified portion of the media stream;
while playing the decoded portion of the received media stream or the modified media stream, decoding a next media message from the buffer to obtain a decoded next portion of the received media stream; and
processing the decoded next portion of the received media stream responsive to the length of the buffer relative to the predetermined length.
9. The system of claim 8, wherein to carry out said summing the audio channels corresponding to the decoded portion of the received media stream into the sum signal, the one or more processors are configured to perform operations comprising performing a weighted sum of the audio channels.
10. The system of claim 8, wherein the one or more processors are configured to perform operations comprising:
combining the audio channels corresponding to the decoded portion of the received media stream in one or more difference signals that comprise corresponding difference samples, each of the one or more difference signals having the number of samples of the audio channels,
wherein to carry out said generating based on the analyzing comprises, the one or more processors are configured to perform operations comprising:
removing the given number of samples from the sum signal to obtain a down-sampled sum signal that comprises the reduced number of samples,
removing the given number of samples from each of the one or more difference signals starting at the determined time offset to obtain respective one or more down-sampled difference signals such that each down-sampled difference signal comprises the reduced number of samples, and
obtaining the down-sampled audio channels using linear combinations of the down-sampled sum signal and the one or more down-sampled difference signals.
11. The system of claim 10, wherein the one or more difference signals represent pair-wise differences of audio channels.
12. The system of claim 8, wherein the audio channels include a left audio channel and a right audio channel corresponding to a stereo sound mix.
13. The system of claim 8, wherein the audio channels include six audio channels corresponding to a 5.1 sound mix.
14. A computer storage medium encoded with a computer program, the program comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:
receiving a video stream in a buffer, the received video stream including messages, each video message comprising (i) a timed-sequence of video frames and (ii) audio channels that are synchronized with the timed-sequence of video frames, each audio channel including a number of channel-specific samples that are separated in time within each channel and are synchronized across the audio channels;
decoding a video message from the buffer to obtain a decoded portion of the received video stream including a corresponding timed sequence of video frames and corresponding audio channels;
responsive to a length of the buffer being less than or equal to a predetermined length, playing the decoded portion of the received video stream;
responsive to the length of the buffer being more than the predetermined length,
mixing the audio channels corresponding to the decoded portion of the received video stream in a sum signal having the number of samples of the audio channels,
analyzing in time domain the sum signal to determine a reduced number of samples to obtain down-sampled audio channels corresponding to the respective audio channels, each down-sampled audio channel to include the reduced number of samples, wherein said analyzing in the time domain comprises determining a time offset of the sum signal and a given number of samples to be removed from the sum signal starting at the determined time offset
generating based on the analyzing a modified portion of the video stream that includes the timed-sequence of video frames corresponding to the decoded portion of the received video stream and the down-sampled audio channels, and
playing the modified portion of the video stream;
while playing the decoded portion of the received video stream or the modified video stream, decoding a next video message from the buffer to obtain a decoded next portion of the received video stream; and
processing the decoded next portion of the received video stream responsive to the length of the buffer relative to the predetermined length.
15. The computer storage medium of claim 14, wherein said mixing the audio channels corresponding to the decoded portion of the received video stream into the sum signal comprises performing a weighted sum of the audio channels.
16. The computer storage medium of claim 14, further comprising:
combining the audio channels corresponding to the decoded portion of the received video stream in one or more difference signals that comprise corresponding difference samples, each of the one or more difference signals having the number of samples of the audio channels,
wherein said generating based on the analyzing comprises,
removing the given number of samples from the sum signal to obtain a down-sampled sum signal that comprises the reduced number of samples,
removing the given number of samples from each of the one or more difference signals starting at the determined time offset to obtain respective one or more down-sampled difference signals such that each down-sampled difference signal comprises the reduced number of samples, and
obtaining the down-sampled audio channels using linear combinations of the down-sampled sum signal and the one or more down-sampled difference signals.
17. The computer storage medium of claim 16, wherein the one or more differences signals represent pair-wise differences of audio channels.
18. The computer storage medium of claim 14, wherein the audio channels include a left audio channel and a right audio channel corresponding to a stereo sound mix.
19. The computer storage medium of claim 14, wherein the audio channels include six audio channels corresponding to a 5.1 sound mix.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
What is claimed is:
1. A method for automatically discovering a hierarchy of concepts from a corpus of documents, the concept hierarchy organizes concepts into multiple levels of abstraction, the method comprising:
a. extracting signatures from the corpus of documents;
b. identifying similarity between signatures;
c. hierarchically clustering related signatures to generate concepts and hierarchically clustering concepts thus generated, whereby hierarchical clustering obtains a concept hierarchy;
d. labeling the concepts organized in the concept hierarchy; and
e. creating an interface for the concept hierarchy generated.
2. The method as recited in claim 1, wherein the step of extracting signatures comprises:
a. parsing the documents in the corpus for speech tagging and sentence structure analysis;
b. extracting signatures representing content of the documents; and
c. indexing the extracted signatures.
3. The method as recited in claim 1, wherein the step of identifying similarity between signatures comprises:
a. representing signatures using distribution of signatures in the corpus of documents;
b. computing similarity measure between signatures;
c. refining distribution of signatures in the corpus of documents;
d. re-computing similarity measure between signatures based on the refined distribution; and
e. identifying related signatures using the re-computed similarity measure.
4. The method as recited in claim 3, wherein the step of computing similarity measure uses a modified KullbackLeibner distance.
5. The method as recited in claim 3, wherein the step of computing similarity measure uses a mutualinformation statistic.
6. The method as recited in claim 3, wherein the step of refining distribution of signatures comprises:
a. refining co-occurrence frequency distribution of signatures in the corpus of documents; and
b. disambiguating signatures with a high occurrence frequency to account for the possibility of multiple senses for a signature.
7. The method as recited in claim 6, wherein the step of refining the co-occurrence frequency comprises:
a. computing a smoothing parameter using the conditional probability of pairs of signatures; and
b. adding, at every iteration, the smoothing parameter to co-occurrence frequency of all the pairs of signatures.
8. The method as recited in claim 6, wherein the step of disambiguating signatures comprises:
a. choosing ambiguous signatures;
b. computing distinct senses for chosen signatures;
c. representing a sense as the frequency distribution of it’s constituent signatures;
d. decomposing the frequency distribution of disambiguated signature according to the number of senses computed corresponding to the disambiguated signature;
e. adding the decomposed frequency distribution to the senses computed;
f. adjusting frequency distribution of the signatures constituting a given sense;
g. re-computing sense for a pair of signatures based on the adjusted frequency distribution; and
h. recursively repeating steps f and g for a predefined number of iterations.
9. The method as recited in claim 1, wherein the step of hierarchically clustering comprises:
a. measuring connectivity between signatures based on the similarity measure between signatures;
b. clustering signatures with highest connectivity, a cluster of signatures representing a concept;
c. measuring connectivity between at least two individual clusters of signatures;
d. measuring compactness of the individual cluster of signatures;
e. merging at least two individual clusters of signatures based on their connectivity; the merged clusters forming a parent cluster; and
f. recursively repeating steps c, d and e till the number of merged clusters reaches a predefined number
10. The method as recited in claim 1, wherein the step of hierarchically clustering uses a binary partitioning algorithm for clustering.
11. The method as recited in claim 1, wherein one or more of the steps is embodied in a hardware chip.
12. A system for automatically discovering a hierarchy of concepts from a corpus of documents, the concept hierarchy organizes concepts into multiple levels of abstraction, the system comprising:
a. means for extracting signatures from the corpus of documents;
b. means for identifying similarity between signatures;
c. means for hierarchically clustering related signatures to generate concepts and hierarchically clustering concepts thus generated, whereby hierarchical clustering obtains a concept hierarchy;
d. means for labeling concepts organized in the concept hierarchy; and
e. means for creating an interface for the concept hierarchy.
13. The system as recited in claim 12, wherein the means for extracting signatures comprises:
a. means for parsing the documents in the corpus for speech tagging and sentence structure analysis;
b. means for extracting signatures representing content of the documents;
c. means for indexing the extracted signatures.
14. The system as recited in claim 12, wherein the means for identifying similarity between signatures comprises:
a. means for representing signatures using the distribution of signatures in the corpus of documents;
b. means for computing similarity measure between signatures;
c. means for refining distribution of signatures in the corpus of documents;
d. means for re-computing similarity measure of signatures based on the refined distribution; and
e. means for identifying related signatures using the re-computed measure of similarity.
15. The system as recited in claim 14, wherein the means for computing similarity uses a modified KullbackLeibner distance.
16. The system as recited in claim 14, wherein the means for computing the similarity measure between signatures uses mutual-information measure.
17. The system as recited in claim 14, wherein the means for refining distribution of signatures comprises:
a. means for refining co-occurrence frequency distribution of signatures in the corpus of documents; and
b. means for disambiguating signatures with a high occurrence frequency to account for the possibility of multiple senses for a signature.
18. The system as recited in claim 17, wherein the means for refining co-occurrence frequency comprises:
a. means for computing a smoothing parameter using conditional probability of the pair of signatures; and
b. means for adding, at every iteration, the smoothing parameter to the co-occurrence frequency of all the pairs of signatures.
19. The system as recited in claim 17, wherein the means for disambiguating signatures comprises:
a. means for choosing ambiguous signatures;
b. means for computing distinct senses for a signature;
c. means for representing a sense as the frequency distribution of it’s constituent signatures;
d. means for decomposing the frequency distribution of disambiguated signature according to the number of senses computed corresponding to the disambiguated signature;
e. means for adding the decomposed frequency distribution to the senses computed;
f. means for adjusting frequency distribution of the signatures constituting a given sense;
g. means for re-computing sense for a pair of signatures based on the adjusted frequency distribution; and
h. means for recursively repeating steps f and g for a predefined number of iterations.
20. The system as recited in claim 12, wherein the means for hierarchically clustering comprises:
a. measuring connectivity between signatures based on the similarity measure between the signatures;
b. clustering signatures with highest connectivity, a cluster of signatures representing a concept;
c. measuring connectivity between at least two individual clusters of signatures;
d. measuring compactness of the individual cluster of signatures;
e. merging at least two individual clusters of signatures based on their connectivity; the merged clusters forming a parent cluster; and
f. recursively repeating steps c, d and e till the number of merged clusters reaches a predefined value.
21. The method as recited in claim 12, wherein the means for hierarchically clustering uses a binary partitioning algorithm for clustering.
22. The system as recited in claim 12, wherein the means for creating an interface for the automatically generated concept hierarchy has a means for searching of concepts in the concept hierarchy.
23. The system as recited in claim 12, wherein the means for creating an interface for the automatically generated concept hierarchy has a means for editing the concept hierarchy.
24. The system as recited in claim 12, wherein the means for creating an interface for the automatically generated concept hierarchy has a means for automatically generating a query that allows a user to automatically retrieve documents related to a concept in the concept hierarchy.
25. The system as recited in claim 12, wherein the system is embodied in a computer program.