text:
System and methods for recognizing sound and music signals in high noise and distortion
A method for recognizing an audio sample locates an audio file that most closely matches the audio sample from a database indexing a large set of original recordings. Each indexed audio file is represented in the database index by a set of landmark timepoints and associated fingerprints. Landmarks occur at reproducible locations within the file, while fingerprints represent features of the signal at or near the landmark timepoints. To perform recognition, landmarks and fingerprints are computed for the unknown sample and used to retrieve matching fingerprints from the database. For each file containing matching fingerprints, the landmarks are compared with landmarks of the sample at which the same fingerprints were computed. If a large number of corresponding landmarks are linearly related, i.e., if equivalent fingerprints of the sample and retrieved file have the same time evolution, then the file is identified with the sample. The method can be used for any type of sound or music, and is particularly effective for audio signals subject to linear and nonlinear distortion such as background noise, compression artifacts, or transmission dropouts. The sample can be identified in a time proportional to the logarithm of the number of entries in the database; given sufficient computational power, recognition can be performed in nearly real time as the sound is being sampled.
This application claims the benefit of U.S. Provisional Application No. 60/222,023 filed Jul. 31, 2000, which is herein incorporated by reference.
This invention relates generally to content-based information retrieval. More particularly, it relates to recognition of an audio signal, including sound or music, that is highly distorted or contains a high level of noise.
There is a growing need for automatic recognition of music or other audio signals generated from a variety of sources. For example, owners of copyrighted works or advertisers are interested in obtaining data on the frequency of broadcast of their material. Music tracking services provide playlists of major radio stations in large markets. Consumers would like to identify songs or advertising broadcast on the radio, so that they can purchase new and interesting music or other products and services. Any sort of continual or on-demand sound recognition is inefficient and labor intensive when performed by humans. An automated method of recognizing music or sound would thus provide significant benefit to consumers, artists, and a variety of industries. As the music distribution paradigm shifts from store purchases to downloading via the Internet, it is quite feasible to link directly computer-implemented music recognition with Internet purchasing and other Internet-based services.
Traditionally, recognition of songs played on the radio has been performed by matching radio stations and times at which songs were played with playlists provided either by the radio stations or from third party sources. This method is inherently limited to only radio stations for which information is available. Other methods rely on embedding inaudible codes within broadcast signals. The embedded signals are decoded at the receiver to extract identifying information about the broadcast signal. The disadvantage of this method is that special decoding devices are required to identify signals, and only those songs with embedded codes can be identified.
Any large-scale audio recognition requires some sort of content-based audio retrieval, in which an unidentified broadcast signal is compared with a database of known signals to identify similar or identical database signals. Note that content-based audio retrieval is different from existing audio retrieval by web search engines, in which only the metadata text surrounding or associated with audio files is searched. Also note that while speech recognition is useful for converting voiced signals into text that can then be indexed and searched using well-known techniques, it is not applicable to the large majority of audio signals that contain music and sounds. In some ways, audio information retrieval is analogous to text-based information retrieval provided by search engines. In other ways, however, audio recognition is not analogous: audio signals lack easily identifiable entities such as words that provide identifiers for searching and indexing. As such, current audio retrieval schemes index audio signals by computed perceptual characteristics that represent various qualities or features of the signal.
Content-based audio retrieval is typically performed by analyzing a query signal to obtain a number of representative characteristics, and then applying a similarity measure to the derived characteristics to locate database files that are most similar to the query signal. The similarity of received objects is necessarily a reflection of the perceptual characteristics selected. A number of content-based retrieval methods are available in the art. For example, U.S. Pat. No. 5,210,820, issued to Kenyon, discloses a signal recognition method in which received signals are processed and sampled to obtain signal values at each sampling point. Statistical moments of the sampled values are then computed to generate a feature vector that can be compared with identifiers of stored signals to retrieve similar signals. U.S. Pat. Nos. 4,450,531 and 4,843,562, both issued to Kenyon et al.,.disclose similar broadcast information classification methods in which cross-correlations are computed between unidentified signals and stored reference signals.
A system for retrieving audio documents by acoustic similarity is disclosed in J. T. Foote, "Content-Based Retrieval of Music and Audio," in C.-C. J. Kuo et al., editor, Multimedia Storage and Archiving Systems II, Proc. of SPIE, volume 3229, pages 138-147, 1997. Feature vectors are calculated by parameterizing each audio file into mel-scaled cepstral coefficients, and a quantization tree is grown from the parameterization data. To perform a query, an unknown signal is parameterized to obtain feature vectors that are then sorted into leaf nodes of the tree. A histogram is collected for each leaf node, thereby generating an N-dimensional vector representing the unknown signal. The distance between two such vectors is indicative of the similarity between two sound files. In this method, the supervised quantization scheme learns distinguishing audio features, while ignoring unimportant variations, based on classes into which the training data are assigned by a human. Depending upon the classification system, different acoustic features are chosen to be important. Thus this method is more suited for finding similarities between songs and sorting music into classes than it is to recognizing music.
A method for content-based analysis, storage, retrieval, and segmentation of audio information is disclosed in U.S. Pat. No. 5,918,223, issued to Blum et al. In this method, a number of acoustical features, such as loudness, bass, pitch, brightness, bandwidth, and Mel-frequency cepstral coefficients, are measured at periodic intervals of each file. Statistical measurements of the features are taken and combined to form a feature vector. Audio data files within a database are retrieved based on the similarity of their feature vectors to the feature vector of an unidentified file.
A key problem of all of the above prior art audio recognition methods is that they tend to fail when the signals to be recognized are subject to linear and nonlinear distortion caused by, for example, background noise, transmission errors and dropouts, interference, band-limited filtering, quantization, time-warping, and voice-quality digital compression. In prior art methods, when a distorted sound sample is processed to obtain acoustical features, only a fraction of the features derived for the original recording are found. The resulting feature vector is therefore not very similar to the feature vector of the original recording, and it is unlikely that correct recognition can be performed. There remains a need for a sound recognition system that performs well under conditions of high noise and distortion.
Another problem with prior art methods is that they are computationally intensive and do not scale well. Real-time recognition is thus not possible using prior art methods with large databases. In such systems, it is unfeasible to have a database of more than a few hundred or thousand recordings. Search time in prior art methods tends to grow linearly with the size of the database, making scaling to millions of sounds recordings economically unfeasible. The methods of Kenyon also require large banks of specialized digital signal processing hardware.
Existing commercial methods often have strict requirements for the input sample to be able to perform recognition. For example, they require the entire song or at least 30 seconds of the song to be sampled or require the song to be sampled from the beginning. They also have difficulty recognizing multiple songs mixed together in a single stream. All of these disadvantages make prior art methods unfeasible for use in many practical applications.
Accordingly, it is a primary object of the present invention to provide a method for recognizing an audio signal subject to a high level of noise and distortion.
It is a further object of the invention to provide a recognition method that can be performed in real time based on only a few seconds of the signal to be identified.
It is another object of the invention to provide a recognition method than can recognize sounds based on samples from almost anywhere within the sound, not just at the beginning.
It is an additional object of the invention to provide a recognition method that does not require sound samples to be coded or correlated with particular radio stations or playlists.
It is a further object of the invention to provide a recognition method that can recognize each of multiple sound recordings mixed together in a single stream.
It is another object of the invention to provide a sound recognition system in which the unknown sound can be provided to the system from any environment by virtually any known method.
These objects and advantages are attained by a method for recognizing a media sample, such as an audio sample, given a database index of a large number of known media files. The database index contains fingerprints representing features at particular locations of the indexed media files. The unknown media sample is identified with a media file in the database (the winning media file) whose relative locations of fingerprints most closely match the relative locations of fingerprints of the sample. In the case of audio files, the time evolution of fingerprints of the winning file matches the time evolution of fingerprints in the sample.
The method is preferably implemented in a distributed computer system and contains the following steps: computing a set of fingerprints at particular locations of the sample; locating matching fingerprints in the database index; generating correspondences between locations in the sample and locations in the file having equivalent fingerprints; and identifying media files for which a significant number of the correspondences are substantially linearly related. The file having the largest number of linearly related correspondences is deemed the winning media file. One method of identifying files with a large number of correspondences is to perform the equivalent of scanning for a diagonal line in the scatter plot generated from the pairs of correspondences. In one embodiment, identifying the media files with a large number of linear correspondences involves searching only a first subset of the media files. Files in the first subset have a higher probability of being identified than files that are not in the first subset. The probability of identification is preferably based on empirical frequency or recency measures of previous identifications, along with a priori projections of identification frequency. If no media files are identified in the first subset, then the second subset, containing the remaining files, is searched. Alternatively, the files can be ranked by probability and searched in order of the ranking. The search is terminated when a file is located.
Preferably, the particular locations within the sample are reproducibly computed in dependence on the sample. Such reproducibly computable locations are called "landmarks." Fingerprints are preferably numerical values. In one embodiment, each fingerprint represents a number of features of the media sample at each location, or offset slightly from the location.
The method is particularly useful for recognizing audio samples, in which case the particular locations are timepoints within the audio sample. These timepoints occur at, for example, local maxima of spectral Lp norms of the audio sample. Fingerprints can be computed by any analysis of the audio sample, and are preferably invariant to time stretching of the sample.
Examples of fingerprints include spectral slice fingerprints, multi-slice fingerprints, LPC coefficients, cepstral coefficients, and frequency components of spectrogram peaks.
The present invention also provides a system for implementing the above method, containing a landmarking object for computing the particular locations, a fingerprinting object for computing the fingerprints, a database index containing the file locations and fingerprints for the media files, and an analysis object. The analysis object implements the method by locating matching fingerprints in the database index, generating correspondences, and analyzing the correspondences to select the winning media file.
Also provided is a program storage device accessible by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps for the above method.
Additionally, the invention provides a method for creating an index of a number of audio files in a database, containing the following steps: computing a set of fingerprints at particular locations of each file; and storing the fingerprints, locations, and identifiers of the files in a memory. A corresponding fingerprint, location, and identifier is associated in the memory to form a triplet. Preferably, the locations, which can be timepoints within the audio file, are computed in dependence on the file and are reproducible. For example, the timepoints can occur at local maxima of spectral Lp norms of the audio file. In some cases, each fingerprint, which is preferably a numerical value, represents a number of features of the file near the particular location. Fingerprints can be computed from any analysis or digital signal processing of the audio file. Examples of fingerprints include spectral slice fingerprints, multi-slice fingerprints, LPC coefficients, cepstral coefficients, frequency components of spectrogram peaks, and linked spectrogram peaks.
Finally, the invention provides methods for identifying audio samples incorporating time-stretch invariant fingerprints and various hierarchical searching.
Although the following detailed description contains many specifics for the purposes of illustration, anyone of ordinary skill in the art will appreciate that many variations and alterations to the following details are within the scope of the invention. Accordingly, the following preferred embodiment of the invention is set forth without any loss of generality to, and without imposing limitations upon,.the claimed invention.
The present invention provides a method for recognizing an exogenous media sample given a database containing a large number of known media files. It also provides a method for generating a database index that allows efficient searching using the recognition method of the invention. While the following discussion refers primarily to audio data, it is to be understood that the method of the present invention can be applied to any type of media samples and media files, including, but not limited to, text, audio, video, image, and any multimedia combinations of individual media types. In the case of audio, the present invention is particularly useful for recognizing samples that contain high levels of linear and nonlinear distortion caused by, for example, background noise, transmission errors and dropouts, interference, band-limited filtering, quantization, time-warping, and voice-quality digital compression. As will be apparent from the description below, the invention works under such conditions because it can correctly recognize a distorted signal even if only a small fraction of the computed characteristics survive the distortion. Any type of audio, including sound, voice, music, or combinations of types, can be recognized by the present invention. Example audio samples include recorded music, radio broadcast programs, and advertisements.
As used herein, an exogenous media sample is a segment of media data of any size obtained from a variety of sources as described below. In order for recognition to be performed, the sample must be a rendition of part of a media file indexed in a database used by the present invention. The indexed media file can be thought of as an original recording, and the sample as a distorted and/or abridged version or rendition of the original recording. Typically, the sample corresponds to only a small portion of the indexed file. For example, recognition can be performed on a ten-second segment of a five-minute song indexed in the database. Although the term "file" is used to describe the indexed entity, the entity can be in any format for which the necessary values (described below) can be obtained. Furthermore, there is no need to store or have access to the file after the values are obtained.
A block diagram conceptually illustrating the overall steps of a method 10 of the present invention is shown in
In step 16, the sample fingerprints are used to retrieve sets of matching fingerprints stored in a database index 18, in which the matching fingerprints are associated with landmarks and identifiers of a set of media files. The set of retrieved file identifiers and landmark values are then used to generate correspondence pairs (step 20) containing sample landmarks (computed in step 14) and retrieved file landmarks at which the same fingerprints were computed. The resulting correspondence pairs are then sorted by song identifier, generating sets of correspondences between sample landmarks and file landmarks for each applicable file. Each set is scanned for alignment between the file landmarks and sample landmarks. That is, linear correspondences in the pairs of landmarks are identified, and the set is scored according to the number of pairs that are linearly related. A linear correspondence occurs when a large number of corresponding sample locations and file locations can be described with substantially the same linear equation, within an allowed tolerance. For example, if the slopes of a number of equations describing a set of correspondence pairs vary by ±5%, then the entire set of correspondences is considered to be linearly related. Of course, any suitable tolerance can be selected. The identifier of the set with the highest score, i.e., with the largest number of linearly related correspondences, is the winning file identifier, which is located and returned in step 22.
As described further below, recognition can be performed with a time component proportional to the logarithm of the number of entries in the database. Recognition can be performed in essentially real time, even with a very large database. That is, a sample can be recognized as it is being obtained, with a small time lag. The method can identify a sound based on segments of 5-10 seconds and even as low 1-3 seconds. In a preferred embodiment, the landmarking and fingerprinting analysis, step 14, is carried out in real time as the sample is being captured in step 12. Database queries (step 16) are carried out as sample fingerprints become available, and the correspondence results are accumulated and periodically scanned for linear correspondences. Thus all of the method steps occur simultaneously, and not in the sequential linear fashion suggested in
The method is typically implemented as software running on a computer system, with individual steps most efficiently implemented as independent software modules. Thus a system implementing the present invention can be considered to consist of a landmarking and fingerprinting object, an indexed database, and an analysis object for searching the database index, computing correspondences, and identifying the winning file. In the case of sequential landmarking and fingerprinting, the landmarking and fingerprinting object can be considered to be distinct landmarking and fingerprinting objects. Computer instruction code for the different objects is stored in a memory of one or more computers and executed by one or more computer processors. In one embodiment, the code objects are clustered together in a single computer system, such as an Intel-based personal computer or other workstation. In a preferred embodiment, the method is implemented by a networked cluster of central processing units (CPUs), in which different software objects are executed by different processors in order to distribute the computational load. Alternatively, each CPU can have a copy of all software objects, allowing for a homogeneous network of identically configured elements. In this latter configuration, each CPU has a subset of the database index and is responsible for searching its own subset of media files.
Although the invention is not limited to any particular hardware system, an example of a preferred embodiment of a distributed computer system 30 is illustrated schematically in
In an alternative embodiment, certain of the functional objects are more tightly coupled together, while remaining less tightly coupled to other objects. For example, the landmarking and fingerprinting object can reside in a physically separate location from the rest of the computational objects. One example of this is a tight association of the landmarking and fingerprinting objects with the signal capturing process. In this arrangement, the landmarking and fingerprinting object can be incorporated as additional hardware or software embedded in, for example, a mobile phone, Wireless Application Protocol (WAP) browser, personal digital assistant (PDA), or other remote terminal, such as the client end of an audio search engine. In an Internet-based audio search service, such as a content identification service, the landmarking and fingerprinting object can be incorporated into the client browser application as a linked set of software instructions or a software plug-in module such as a Microsoft dynamic link library (DLL). In these embodiments, the combined signal capture, landmarking, and fingerprinting object constitutes the client end of the service. The client end sends a feature-extracted summary of the captured signal sample containing landmark and fingerprint pairs to the server end, which performs the recognition. Sending this feature-extracted summary to the server, instead of the raw captured signal, is advantageous because the amount of data is greatly reduced, often by a factor of 500 or more. Such information can be sent in real time over a low-bandwidth side channel along with or instead of, e.g., an audio stream transmitted to the server. This enables performing the invention over public communications networks, which offer relatively small-sized bandwidths to each user.
The method will now be described in detail with reference to audio samples and audio files indexed in a sound database. The method consists of two broad components, sound database index construction and sample recognition.
Database Index Construction
Before sound recognition can be performed, a searchable sound database index must be constructed. As used herein, a database is any indexed collection of data, and is not limited to commercially available databases. In the database index, related elements of data are associated with one another, and individual elements can be used to retrieve associated data. The sound database index contains an index set for each file or recording in the selected collection or library of recordings, which may include speech, music, advertisements, sonar signatures, or other sounds. Each recording also has a unique identifier, sound_ID. The sound database itself does not necessarily store the audio files for each recording, but the sound_IDs can be used to retrieve the audio files from elsewhere. The sound database index is expected to be very large, containing indices for millions or even billions of files. New recordings are preferably added incrementally to the database index.
A block diagram of a preferred method 40 for constructing the searchable sound database index according to a first embodiment is shown in
To index the sound database, each recording in the collection is subjected to a landmarking and fingerprinting analysis that generates an index set for each audio file.
In step 42, each sound recording is landmarked using methods to find distinctive and reproducible locations within the sound recording. A preferred landmarking algorithm is able to mark the same timepoints within a sound recording despite the presence of noise and other linear and nonlinear distortion. Some landmarking methods are conceptually independent of the fingerprinting process described below, but can be chosen to optimize performance of the latter. Landmarking results in a list of timepoints {landmarkk} within the sound recording at which fingerprints are subsequently calculated. A good landmarking scheme marks about 5-10 landmarks per second of sound recording; of course, landmarking density depends on the amount of activity within the sound recording.
A variety of techniques are possible for computing landmarks, all of which are within the scope of the present invention. The specific technical processes used to implement the landmarking schemes of the invention are known in the art and will not be discussed in detail. A simple landmarking technique, known as Power Norm, is to calculate the instantaneous power at every possible timepoint in the recording and to select local maxima. One way of doing this is to calculate the envelope by rectifying and filtering the waveform directly.
Another way is to calculate the Hilbert transform (quadrature) of the signal and use the sum of the magnitudes squared of the Hilbert transform and the original signal.
The Power Norm method of landmarking is good at finding transients in the sound signal. The Power Norm is actually a special case of the more general Spectral Lp Norm in which p=2. The general Spectral Lp Norm is calculated at each time along the sound signal by calculating a short-time spectrum, for example via a Hanning-windowed Fast Fourier Transform (FFT). A preferred embodiment uses a samping rate of 8000 Hz, an FFT frame size of 1024 samples, and a stride of 64 samples for each time slice. The Lp norm for each time slice is then calculated as the sum of the pth power of the absolute values of the spectral components, optionally followed by taking the pth root. As before, the landmarks are chosen as the local maxima of the resulting values over time. An example of the Spectral Lp Norm method is shown in
When p=∞, the L∞ norm is effectively the maximum norm. That is, the value of the norm is the absolute value of the largest spectral component in the spectral slice. This norm results in robust landmarks and good overall recognition performance, and is preferred for tonal music.
Alternatively, "multi-slice" spectral landmarks can be calculated by taking the sum of pth powers of absolute values of spectral components over multiple timeslices at fixed or variable offsets from each other, instead of a single slice. Finding the local maxima of this extended sum allows optimization of placement of the multi-slice fingerprints, described below.
Once the landmarks have been computed, a fingerprint is computed at each landmark timepoint in the recording in step 44. The fingerprint is generally a value or set of values that summarizes a set of features in the recording at or near the timepoint. In a currently preferred embodiment, each fingerprint is a single numerical value that is a hashed function of multiple features. Possible types of fingerprints include spectral slice fingerprints, multi-slice fingerprints, LPC coefficients, and cepstral coefficients. Of course, any type of fingerprint that characterizes the signal or features of the signal near a landmark is within the scope of the present invention. Fingerprints can be computed by any type of digital signal processing or frequency analysis of the signal.
To generate spectral slice fingerprints, a frequency analysis is performed in the neighborhood of each landmark timepoint to extract the top several spectral peaks. A simple fingerprint value is just the single frequency value of the strongest spectral peak. The use of such a simple peak results in surprisingly good recognition in the presence of noise; however, single-frequency spectral slice fingerprints tend to generate more false positives than other fingerprinting schemes because they are not unique. The number of false positives can be reduced by using fingerprints consisting of a function of the two or three strongest spectral peaks. However, there may be a higher susceptibility to noise if the second-strongest spectral peak is not sufficiently strong enough to distinguish it from its competitors in the presence of noise. That is, the calculated fingerprint value may not be sufficiently robust to be reliably reproducible. Despite this, the performance of this case is also good.
In order to take advantage of the time evolution of many sounds, a set of timeslices is determined by adding a set of time offsets to a landmark timepoint. At each resulting timeslices, a spectral slice fingerprint is calculated. The resulting set of fingerprint information is then combined to form one multitone or multi-slice fingerprint. Each multi-slice fingerprint is much more unique than the single spectral slice fingerprint, because it tracks temporal evolution, resulting in fewer false matches in the database index search described below. Experiments indicate that because of their increased uniqueness, multi-slice fingerprints computed from the single strongest spectral peak in each of two timeslices result in much faster computation (about 100 times faster) in the subsequent database index search, but with some degradation in recognition percentage in the presence of significant noise.
Alternatively, instead of using a fixed offset or offsets from a given timeslice to calculate a multi-slice fingerprint, variable offsets can be used. The variable offset to the chosen slice is the offset to the next landmark, or a landmark in a certain offset range from the "anchor" landmark for the fingerprint. In this case, the time difference between the landmarks is also encoded into the fingerprint, along with multi-frequency information. By adding more dimensions to the fingerprints, they become more unique and have a lower chance of false match.
In addition to spectral components, other spectral features can be extracted and used as fingerprints. Linear predictive coding (LPC) analysis extracts the linearly predictable features of a signal, such as spectral peaks, as well as spectral shape. LPC is well known in the art of digital signal processing. For the present invention, LPC coefficients of waveform slices anchored at landmark positions can be used as fingerprints by hashing the quantized LPC coefficients into an index value.
Cepstral coefficents are useful as a measure of periodicity and can be used to characterize signals that are harmonic, such as voices or many musical instruments. Cepstral analysis is well known in the art of digital signal processing. For the present invention, a number of cepstral coefficients are hashed together into an index and used as a fingerprint.
An alternative embodiment 50, in which landmarks and fingerprints are computed simultaneously, is shown in
In one implementation of the embodiment of
In this context, the set of salient points resulting from the point extraction analysis of a sound recording is referred to as a constellation. For a constellation consisting of local maxima, a preferred analysis is to select points that are energy maxima of the time-frequency plane over a neighborhood around each selected point. For example, a point at coordinate (to, fo) is selected if it is the maximum-energy point within a rectangle with corners (to−T,fo−F), (to−T, fo+F), (to+T,fo−F), and (to+T, fo+F), i.e., a rectangle with sides of length 2 T and 2 F, with T and F chosen to provide a suitable number of constellation points. The bounds of the rectangle can also vary in size according to frequency value. Of course, any region shape can be used. The maximum-energy criterion can also be weighted such that a competing time-frequency energy peak is inversely weighted according to a distance metric in the time-frequency plane, i.e., more distant points have lower weighting. For example, the energy can be weighted as
where S(t,f) is the magnitude squared value of the spectrogram at point (t,f), and Ct and Cf are positive values (not necessarily constants). Other distance-weighting functions are possible. Local maxima selection constraints can be applied to other (non-maximum) salient point feature extraction schemes, and are within the scope of the invention.
This method results in pairs of values that are very similar to the single-frequency spectral fingerprint described above, with many of the same properties. The spectrogram time-frequency method generates more landmark/fingerprint pairs than the single-frequency method, but can also yield many false matches in the matching stage described below. However, it provides more robust landmarking and fingerprinting than the single-frequency spectral fingerprint, because dominant noise in the sound sample may not extend to all parts of the spectrum in each slice. That is, there are most likely some landmark and fingerprint pairs in parts of the spectrum that are not affected by the dominant noise.
This spectrogram landmarking and fingerprinting method is a special case of feature analysis methods that compute a multidimensional function of the sound signal, in which one of the dimensions is time, and locate salient points in the function values. Salient points can be local maxima, local minima, zero crossings, or other distinctive features. The landmarks are taken to be the time coordinates of the salient points, and the corresponding fingerprints are computed from at least one of the remaining coordinates. For example, the non-time coordinate(s) of the multidimensional salient point can be hashed together to form a multidimensional functional fingerprint.
The variable offset method described above for multi-slice spectral fingerprints can be applied to spectrogram or other multidimensional function fingerprints. In-this case, points in a constellation are linked together to form linked points, as illustrated in the spectrogram shown in
In principle, each of N salient points can be linked to each other point in a two-point linkage scheme, producing about N2/2 combinations. Similarly, for a K-point linkage, the number of possible combinations resulting from a constellation is of order NK. In order to avoid such a combinatorial explosion, it is desirable to constrain the neighborhood of points that are linked together. One way to accomplish such a constraint is to define a "target zone" for each anchor point. An anchor point is then linked with points in its target zone. It is possible to select a subset of points within the target zone to link to—not every point needs to be linked. For example, just the points associated with the strongest peaks in the target zone can be linked. A target zone can have a fixed shape or vary according to characteristics of the anchor point. A simple example of a target zone of an anchor point (t0,f0) for a spectrogram peak constellation is the set of points (t,f) in the spectrogram strip such that t is in the interval [t0+L, t0+L+W], where L is the lead into the future and W is the width of the target zone. In this scheme, all frequencies are allowed in the target zone. L or W can be variable, for example, if a rate control mechanism is used to modulates the number of linkage combinations being produced. Alternatively, frequency restrictions can be implemented, for example, by constraining the target zone such that the frequency f is in the interval [fo−F, fo+F], where F is a bounding parameter. An advantage of a frequency constraint is that in psychoacoustics, it is known that melodies tend to cohere better when sequences of notes have frequencies that are near each other. Such a constraint may enable more "psychoacoustically realistic" recognition performance, although modeling psychoacoustics is not necessarily a goal of this invention. It is also possible to consider the opposite rule, in which f is chosen outside of the region [fo−F, fo+F]. This forces the linkage of points that are different from each other in frequency, possibly avoiding cases in which constellation extraction artifacts produce stuttering sequences of time-frequency points that are close in time and have the same frequency. As with other locality parameters, F is not necessarily constant and can, for example, be a function of fo.
When including time coordinates of non-anchor salient points in fingerprint values, relative time values must be used to allow the fingerprints to be time invariant. For example, the fingerprint can be a function of (i) non-time coordinate values and/or (ii) difference(s) of the corresponding time coordinate values of the salient points. The time difference(s) can be taken, for example, with respect to the anchor point or as successive differences between sequential salient points in the linked set. The coordinate and difference values can be packed into concatenated bit fields to form the hashed fingerprint. As will be apparent to one of average skill in the art, many other ways of mapping sets of coordinate values into a fingerprint value exist and are within the scope of the present invention.
A concrete instantiation of this scheme uses N>1 linked spectrogram peaks with coordinates (tk, fk), k=1, . . . , N. Then, (i) the time t1 of the first peak is taken as the landmark time, and (ii) the time differences Δtk=tk−t1, k=2, . . . , N, plus the frequencies fk, k=1, . . . , N, of the linked peaks are hashed together to form a fingerprint value. The fingerprint can be computed from all or from a subset of all available Δtk and fk coordinates. For example, some or all of the time difference coordinates can be omitted if desired.
Another advantage of using multiple points to form the fingerprint is that the fingerprint encoding can be made invariant with respect to time stretching, e.g., when a sound recording is played back at a speed different than the original recording speed. This advantage applies to both the spectrogram and the timeslice methods. Note that in a stretched time signal, time differences and frequency have a reciprocal relationship (e.g., decreasing the time difference between two points by a factor of two doubles the frequency). This method takes advantage of that fact by combining time differences and frequencies in a way that removes the time stretching from the fingerprint.
For example, in an N-point spectrogram peak case with coordinate values (tk,fk), k−1, . . . , N, the available intermediate values to hash into a fingerprint are Δtk=tk−t1, k=2, . . . , N, and fk, k=1, . . . , N. The intermediate values can then be made invariant with respect to time-stretching by taking one of the frequencies as a reference frequency, say f1, and forming (i) quotients with the remaining frequencies and (ii) products with the time differences. For example, intermediate values can be gk=fk/f1, k=2, . . . , N, and sk=Δtkf1, k=2, . . . , N. If the sample is sped up by a factor of α, then the frequency fk becomes αfk and the time difference Δtk becomes Δtk/α, so that gk=αfk/αf1=fk/f1, and sk=(Δtk/α) (αf1)=Δtkf1. These new intermediate values are then combined using a function to form a hashed fingerprint value that is independent of time stretching. For example, the gk and sk values may be hashed by packing them into concatenated bitfields.
Alternatively, instead of a reference frequency, a reference time difference may be used, e.g., Δt2. In this case, the new intermediate values are calculated as the (i) quotients Δtk/Δt2 with the remaining time differences and (ii) products Δt2fk with the frequencies. This case is equivalent to using a reference frequency, because the resulting values can be formed from products and quotients of the gk and sk values above. Reciprocals of the frequency ratios can be used equally effectively; sums and differences of logarithmic values of the original intermediate values can also be substituted for products and differences, respectively. Any time-stretch-independent fingerprint value obtained by such commutations, substitutions, and permutations of mathematical operations is within the scope of the invention. Additionally, multiple reference frequencies or reference time differences, which also relativize time differences, can be used. The use of multiple reference frequencies or reference time differences is equivalent to the use of a single reference, because the same result can be achieved by arithmetic manipulation of the gk and sk values.
Returning to
After index sets are generated for each sound recording to be indexed in the sound database, a searchable database index is constructed in such a way as to allow fast (i.e., log time) searching. This is accomplished in step 46 by constructing a list of triplets (fingerprint, landmark, sound_ID), obtained by appending the corresponding sound_ID to each doublet within each index set. All such triplets for all sound recordings are collected into a large index list, an example of which is shown in
Once the index list is sorted, it is further processed in step 48 by segmenting such that each unique fingerprint in the list is collected into a new master index list, an example of which is shown in
The sound database index is preferably constructed offline and updated incrementally as new sounds are incorporated into the recognition system. To update the list, new fingerprints can be inserted into the appropriate location in the master list. If new recordings contain existing fingerprints, the corresponding (landmark, sound_ID) pairs are added to the existing lists for those fingerprints.
Recognition System
Using the master index list generated as described above, sound recognition is performed on an exogenous sound sample, typically supplied by a user interested in identifying the sample. For example, the user hears a new song on the radio and would like to know the artist and title of the song. The sample can originate from any type of environment, such as a radio broadcast, disco, pub, submarine, sound file, segment of streaming audio, or stereo system, and may contain background noise, dropouts, or talking voices. The user may store the audio sample in a storage device such as an answering machine, computer file, tape recorder, or telephone or mobile phone voicemail system before providing it to the system for recognition. Based on system setup and user constraints, the audio sample is provided to the recognition system of the present invention from any number of analog or digital sources, such as a stereo system, television, compact disc player, radio broadcast, answering machine, telephone, mobile telephone, Internet streaming broadcast, FTP, computer file as an email attachment, or any other suitable means of transmitting such recorded material. Depending on the source, the sample can be in the form of acoustic waves, radio waves, a digital audio PCM stream, a compressed digital audio stream (such as Dolby Digital or MP3), or an Internet streaming broadcast. A user interacts with the recognition system through a standard interface such as a telephone, mobile telephone, web browser, or email. The sample can be captured by the system and processed in real time, or it can be reproduced for processing from a previously captured sound (e.g., a sound file). During capture, the audio sample is sampled digitally and sent to the system by a sampling device such as a microphone. Depending upon the capture method, the sample is likely subjected to further degradation due to limitations of the channel or sound capture device.
Once the sound signal has been converted into digital form, it is processed for recognition. As with the construction of index sets for database files, landmarks and fingerprints are calculated for the sample using the same algorithm that was used for processing the sound recording database. The method works optimally if the processing of a highly distorted rendition of an original sound file yields the identical or similar set of landmark and fingerprint pairs as was obtained for the original recording. The resulting index set for the sound sample is a set of pairs of analyzed values, (fingerprint, landmark), shown in
Given the pairs for the sound sample, the database index is searched to locate potentially matching files. Searching is carried out as follows: each (fingerprintk, landmarkk) pair in the index set of the unknown sample is processed by searching for fingerprintk in the master index list. Fast searching algorithms on an ordered list are well known in the art and extensively discussed in D. E. Knuth, The Art of Computer Programming, Volume 3: Sorting and Searching, Reading, Massachusetts: Addison-Wesley, 1998. If fingerprintk is found in the master index list, then its corresponding list of matching (landmark*j, sound_IDj) pairs is copied and augmented with landmarkk to form a set of triplets of the form (landmarkk, landmark*j, sound_IDj). In this notation, an asterisk (*) indicates a landmark of one of the indexed files in the database, while a landmark without an asterisk refers to the sample. In some cases, it is preferable that the matching fingerprints are not necessarily identical, but are similar; for example, they may differ by within a previously determined threshold. Matching fingerprints, whether identical or similar, are referred to as equivalent. The sound_IDj in the triplet corresponds to the file having the asterisked landmark. Thus each triplet contains two distinct landmarks, one in the database index and one in the sample, at which equivalent fingerprints were computed. This process is repeated for all k ranging over the input sample index set. All resulting triplets are collected into a large candidate list, illustrated in
After the candidate list is compiled, it is further processed by segmenting according to sound_ID. A convenient way of doing this is to sort the candidate list by sound_ID or to insert it into a B-tree. A large number of sorting algorithms are available in the art, as discussed above. The result of this process is a list of candidate sound_IDs, each of which has a scatter list of pairs of sample and file landmark timepoints with the sound_ID optionally stripped off, (landmarkk, landmark*j), as shown in
The scatter list for each candidate sound_ID is then analyzed to determine whether the sound_ID is a match for the sample. An optional thresholding step can be used first to eliminate a potentially large number of candidates that have very small scatter lists. Clearly, candidates having only one entry in their scatter lists, i.e., only one fingerprint in common with the sample, do not match the sample. Any suitable threshold number greater than or equal to one can be used.
Once the final number of candidates is determined, the winning candidate is located. If the following algorithm does not locate a winning candidate, then a failure message is returned. A key insight into the matching process is that the time evolution in matching sounds must follow a linear correspondence, assuming that the timebases on both sides are steady. This is almost always true unless one of the sounds has been nonlinearly warped intentionally or subject to defective playback equipment such as a tape deck with a warbling speed problem. Thus, the correct landmark pairs (landmarkn, landmark*n) in the scatter list of a given sound_ID must have a linear correspondence of the form
where m is the slope, which should be near one; landmarkn is the timepoint within the exogenous sample; landmark*n is the corresponding timepoint within the sound recording indexed by sound_ID; and offset is the time offset into the sound recording corresponding to the beginning of the exogenous sound sample. Landmark pairs that can be fit with the above equation for particular values of m and of f set are said to be linearly related. Obviously, the concept of being linearly related is only valid for more than one pair of corresponding landmarks. Note that this linear relationship identifies the correct sound file with high probability, while excluding outlying landmark pairs that have no significance. While it is possible for two distinct signals to contain a number of identical fingerprints, it is very unlikely that these fingerprints have the same relative time evolutions. The requirement for linear correspondences is a key feature of the present invention, and provides significantly better recognition than techniques that simply count the total number of features in common or measure the similarity between features. In fact, because of this aspect of the invention, sounds can be recognized even if fewer than 1% of the original recording's fingerprints appear in the exogenous sound sample, i.e., if the sound sample is very short or if it is significantly distorted.
The problem of determining whether there is a match for the exogenous sample is thus reduced to the equivalent of finding a diagonal line with slope near one within a scatter plot of the landmark points of a given scatter list. Two sample scatter plots are shown in
There are many ways of finding a diagonal line in a scatter plot, all of which are within the scope of the present invention. It is to be understood that the phrase "locating a diagonal line" refers to all methods that are equivalent to locating a diagonal line without explicitly producing a diagonal line. A preferred method starts by subtracting m*landmarkn from both sides of the above equation to yield
Assuming that m is approximately equal to one, i.e., assuming no time stretching, we arrive at
The diagonal-finding problem is then reduced to finding multiple landmark pairs for a given sound_ID that cluster near the same offset value. This can be accomplished easily by subtracting one landmark from the other and collecting a histogram of the resulting offset values. The histogram can be prepared by sorting the resulting offset values using a fast sort algorithm or by creating bin entries with counters and inserting into a B-tree. The winning offset bin in the histogram contains the highest number of points. This bin is referred to herein as the peak of the histogram. Since the offset must be positive if the exogenous sound signal is fully contained within the correct library sound file, landmark pairs that result in a negative offset can be excluded. Similarly, offsets beyond the end of the file can also be excluded. The number of points in the winning offset bin of the histogram is noted for each qualifying sound_ID. This number becomes the score for each sound recording. The sound recording in the candidate list with the highest score is chosen as the winner. The winning sound_ID is reported to a user as described below to signal the success of the identification. To prevent false identification, a minimum threshold score can be used to gate the success of the identification process. If no library sound has a score exceeding the threshold, then there is no recognition, and the user is so informed.
If the exogenous sound signal contains multiple sounds, then each individual sound can be recognized. In this case, multiple winners are located in the alignment scan. It is not necessary to know that the sound signal contains multiple winners, because the alignment scan will locate more than one sound_ID with a score that is much higher than the remaining scores. The fingerprinting method used preferably exhibits good linear superposition, so that the individual fingerprints can be extracted. For example, a spectrogram fingerprinting method exhibits linear superposition.
If the sound sample has been subjected to time stretching, then the slope is not identically equal to one. The result of assuming a unity slope on a time stretched sample (assuming that the fingerprints are time stretch invariant) is that the computed offset values are not equal.
One way to address this and to accommodate moderate time stretching is to increase the size of the offset bins, i.e., to consider a range of offsets to be equal. In general, if the points do not fall on a straight line, then the computed offset values are significantly different, and a slight increase in the size of the offset bins does not yield a significant number of false positives.
Other line-finding strategies are possible. For example, a Radon or Hough transform, described in T. Risse, "Hough Transform for Line Recognition," Computer Vision and Image Processing, 46, 327-345, 1989, which are well known in the arts of machine vision and graphics research, may be used. In the Hough transform, each point of the scatter plot projects to a line in (slope, offset) space. The set of points in the scatter plot are thus projected onto the dual space of lines in the Hough transform. Peaks in the Hough transform correspond to intersections of the parameter lines. The global peak of such a transform of a given scatter plot indicates the most number of intersecting lines in the Hough transform, and thus the most number of co-linear points. To allow a speed variation of 5%, for example, the construction of the Hough transform can be restricted to the region where the slope parameter varies between 0.95 and 1.05, thus saving some computational effort.
Hierarchical Search
In addition to the thresholding step that eliminates candidates with very small scatter lists, further improvements in efficiency can be made. In one such improvement, the database index is segmented into at least two parts according to probability of occurrence, and only the sound files with the highest probability of matching the sample are initially searched. The division can occur at various stages of the process. For example, the master index list (
Using this technique, the diagonal line scan, a computationally intensive part of the method, is performed first on a small subset of the sound files in the database index. Because the diagonal line scan has a time component that is approximately linear with respect to the number of sound files being scanned, performing such a hierarchical search is highly advantageous. For example, assume that the sound database index contains fingerprints representing 1,000,000 sound files, but that only about 1000 files match the sample queries with high frequency, e.g., 95% of the queries are for 1000 files, while only 5% of the queries are for the remaining 999,000 files. Assuming a linear dependence of computational cost on the number of files, the cost is proportional to 1000 95% of the time and proportional to 999,000 only 5% of the time. The average cost is therefore proportional to about 50,900. A hierarchical search thus yields about a factor of 20 savings in computational load. Of course, the database index can be segmented into more than two levels of hierarchy, e.g., a group of new releases, a group of recently released songs, and a group of older, less popular songs.
As described above, the search is first performed on a first subset of sound files, the high-probability files, and then, only if the first search fails, performed on a second subset containing the remaining files. Failure of the diagonal line scan occurs if the number of points in each offset bin does not reach a predetermined threshold value. Alternatively, the two searches can be carried out in parallel (simultaneously). If the correct sound file is located in a search of the first subset, then a signal is sent to terminate the search of the second subset. If the correct sound file is not located in the first search, then the second search continues until a winning file is located. These two different implementations involve tradeoffs in computational effort and time. The first implementation is more computationally efficient, but introduces a slight latency if the first search fails, while the second implementation wastes computational effort if the winning file is in the first subset but minimizes latency if it is not.
The object of segmenting the list is to estimate the probability that a sound file is the target of a query and to limit the search to those files most likely to match the query sample. There are various possible ways of assigning probabilities and sorting the sounds in the database, all of which are within the scope of the present invention. Preferably, probabilities are assigned based on recency or frequency of being identified as the winning sound file. Recency is a useful measure, particularly for popular songs, because musical interests change quite rapidly over time as new songs are released. After the probability scores are computed, rankings are assigned to the files, and the list self-sorts by the ranking. The sorted list is then segmented into two or more subsets for searching. The smaller subset can contain a predetermined number of files. For example, if the ranking locates a file within the top, say, 1000 files, then the file is placed in the smaller, faster search. Alternatively, the cut-off points for the two subsets can be adjusted dynamically. For example, all files with a score exceeding a particular threshold value can be placed within the first subset, and so the number of files in each subset changes continually.
One particular way of computing the probability is to increment a sound file's score by one each time it is identified as a match for the query sample. To take recency into account, all of the scores are reduced downward periodically, so that newer queries have a stronger effect on the ranking than do older queries. For example, all scores can be ratcheted downward by a constant multiplicative factor upon each query, resulting in an exponential decay of the score if not updated. Depending upon the number of files in the database, which can easily be one million, this method can require updating a large number of scores at every query, making it potentially undesirable. Alternatively, the scores can be adjusted downward at relatively infrequent intervals, such as once per day. The ordering resulting from less frequent adjustment is effectively similar, but not quite identical, to the ordering resulting from adjustment with each query. However, the computational load to update the rankings is much lower.
A slight variation of this recency adjustment, which more exactly preserves the recency score, is to add an exponentially growing score update at to the winning sound file upon query, where t is the amount of time elapsed since the last global update. All scores are then adjusted downward by dividing by aT at each global update, where T is the total elapsed time since the last global update. In this variation, a is a recency factor that is greater than one.
In addition to the ranking described above, some a priori knowledge can be introduced to help seed the listing. For example, new releases are likely to have higher numbers of queries than older songs. Thus, new releases can be placed automatically in the first subset containing songs with a higher probability of matching queries. This can be performed independently of the self-ranking algorithm described above. If the self-ranking feature is also used, new releases can be assigned initial rankings that place them somewhere within the first subset. The new releases can be seeded at the very top of the list, at the bottom of the list of high probability songs, or somewhere in between. For the purposes of the search, the initial location does not matter, because the ranking converges over time to reflect the true level of interest.
In an alternative embodiment, the search is performed in the order of the recency rankings and is terminated when a sound_ID score exceeds a predetermined threshold value. This is equivalent to the above method in which each segment contains one sound_ID only. Experiments show that the score of a winning sound is much higher than scores of all other sound files, and so a suitable threshold can be chosen with minimal experimentation. One way to implement this embodiment is to rank all sound_IDs in the database index according to recency, with arbitrary tie-breaking in the case of identical scores. Because each recency ranking is unique, there is a one-to-one mapping between the recency score and the sound_ID. The ranking can then be used instead of the sound_ID when sorting by sound_ID to form the list of candidate Sound_IDs and associated scatter lists (
Alternatively, the rankings can be bound later in the process. Once the scatter lists are created, a ranking can be associated with each sound_ID. The sets are then sorted by ranking. In this implementation, only the pointers to the scatter lists need to be modified; the grouping into scatter lists does not need to be repeated. The advantage of later bindings is that the entire database index does not need to be recreated each time the rankings are updated.
Note that the popularity ranking may itself be of interest as an object of economic value. That is, the ranking reflects the desirability of consumers to obtain an identification of an unknown sound sample. In many cases, the query is prompted by a desire to purchase a recording of the song. In fact, if demographic information about the user is known, then alternative ranking schemes can be implemented for each desired demographic group. A user's demographic group can be obtained from profile information requested when the user signs up for the recognition service. It can also be determined dynamically by standard collaborative filtering techniques.
In a real-time system, the sound is provided to the recognition system incrementally over time, enabling pipelined recognition. In this case, it is possible to process the incoming data in segments and to update the sample index set incrementally. After each update period, the newly augmented index set is used to retrieve candidate library sound recordings using the searching and scanning steps above. The database index is searched for fingerprints matching newly obtained sample fingerprints, and new (landmarkk, landmark*j, sound_IDj) triplets are generated. New pairs are added to the scatter lists, and the histograms are augmented. The advantage of this approach is that if sufficient data has been collected to identify the sound recording unambiguously, e.g., if the number of points in an offset bin of one of the sound files exceeds a high threshold or exceeds the next highest sound file score, then data acquisition can be terminated and the result announced.
Once the correct sound has been identified, the result is reported to a user or system by any suitable method. For example, the result can be reported by a computer printout, email, web search result page, SMS (short messaging service) text messaging to a mobile phone, computer-generated voice annotation over a telephone, or posting of the result to a web site or Internet account that the user can access later. The reported results can include identifying information of the sound such as the name and artist of a song; the composer, name, and recording attributes (e.g., performers, conductor, venue) of a classical piece; the company and product of an advertisement; or any other suitable identifiers. Additionally, biographical information, information about concerts in the vicinity, and other information of interest to fans can be provided; hyperlinks to such data may be provided. Reported results can also include the absolute score of the sound file or its score in comparison to the next highest scored file.
One useful outcome of the recognition method is that it does not confuse two different renditions of the same sound. For example, different performances of the same piece of classical music are not considered to be the same, even if a human cannot detect a difference between the two. This is because it is highly unlikely that the landmark/fingerprint pairs and their time evolution exactly match for two different performances. In a current embodiment, the landmark/fingerprint pairs must be within about 10 ms of one another for a linear correspondence to be identified. As a result, the automatic recognition performed by the present invention makes it possible for the proper performance/soundtrack and artist/label to be credited in all cases.
Example Implementation
A preferred implementation of the invention, continuous sliding window audio recognition, is described below. A microphone or other source of sound is continually sampled into a buffer to obtain a record of the previous N seconds of sound. The contents of the sound buffer are periodically analyzed to ascertain the identity of the sound content. The sound buffer can have a fixed size or it can grow in size as the sound is sampled, referred to herein as sequentially growing segments of the audio sample. A report is made to indicate the presence of identified sound recordings. For example, a log file can be collected, or a display can be shown on a device indicating information about the music, such as title, artist, album cover art, lyrics, or purchase information. To avoid redundancy, a report can be made only when the identity of recognized sound changes, for example, after a program change on a jukebox. Such a device can be used to create a list of music played from any sound stream (radio, internet streaming radio, hidden microphone, telephone call, etc.). In addition to the music identity, information such as the time of recognition can be logged. If location information is available (e.g., from GPS), such information can also be logged.
To accomplish the identification, each buffer can be identified de novo. Alternatively, sound parameters can be extracted, for example, into fingerprints or other intermediate feature-extracted forms, and stored in a second buffer. New fingerprints can be added to the front of the second buffer, with old fingerprints being discarded from the end of the buffer. The advantage of such a rolling buffer scheme is that the same analysis does not need to be performed redundantly on old overlapping segments of sound samples, thus saving computational effort. The identification process is periodically carried out on the contents of the rolling fingerprint buffer. In the case of a small portable device, the fingerprint analysis can be carried out in the device and the results transmitted to a recognition server using a relatively low-bandwidth data channel, since the fingerprint stream is not very data-intensive. The rolling fingerprint buffer may be held on the portable device and transferred to the recognition server each time, or it may be held at the recognition server, in which case a continuing recognition session is cached on the server.
In such a rolling buffer recognition system, new sound recordings can be recognized as soon as sufficient information is available for recognition. Sufficient information may take up less than the length of the buffer. For example, if a distinctive song can be recognized uniquely after one second of play, and the system has a one-second recognition periodicity, then the song can be recognized immediately, although the buffer may have a 15-30 second length. Conversely, if a less distinctive song requires more seconds of sample to recognize, the system must wait a longer period before declaring the identity of the song. In this sliding window recognition scheme, sounds are recognized as soon as they can be identified.
It is important to note that while the present invention has been described in the context of a fully functional recognition system and method, those skilled in the art will appreciate that the mechanism of the present invention is capable of being distributed in the form of a computer-readable medium of instructions in a variety of forms, and that the present invention applies equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of such computer-accessible devices include computer memory (RAM or ROM), floppy disks, and CD-ROMs, as well as transmission-type media such as digital and analog communication links.
It will be clear to one skilled in the art that the above embodiments may be altered in many ways without departing from the scope of the invention. Accordingly, the scope of the invention should be determined by the following claims and their legal equivalents.
1-106. (canceled)
107. A method for constructing database index for a database of media samples, comprising:
- landmarking each media sample to generate a list of timepoints;
- computing a fingerprint at or near each landmark, the finger print and corresponding landmark forming a landmark/fingerprint pair; and
- generating an index set for the media sample, the index set including a list of at least one of the landmark/fingerprint pairs.
108. The method of claim 107 further comprising:
- appending a corresponding sound_ID to each of the landmark/fingerprint pairs to form a list of triplets, each triplet including the landmark, the fingerprint, and the sound_ID.
109. The method of claim 108 further comprising:
- collecting the list of triplets in an index list; and
- sorting the index list according to the fingerprints.
110. The method of claim 109, further comprising:
- segmenting the index list such that at least one of the fingerprints for each media sample is collected into a master index list, where each entry in the mast index list contains a fingerprint and a pointer to a list of landmark, sound_ID pairs.
111. The method of claim 110, further comprising:
- constructing a master index list by inserting each triplet in said list of triplets into a B-tree.
112. The method of claim 110, further comprising:
- updating the database index by inserting newly added fingerprints into the master index list, such that when the master index list already contains the newly added fingerprint, then the corresponding landmark, sound_ID pair is added to the entry containing the fingerprint.
113. The method of claim 107 wherein the landmarking is independent of the fingerprinting.
114. The method of claim 107 wherein the landmarking and fingerprinting are performed simultaneously.
115. The method of claim 107 wherein the fingerprinting is performed over a timeslice associated with each landmark, the timeslice formed by adding a set of time offsets to the timepoint associated with the landmark, the resulting fingerprint being a spectral slice fingerprint.
116. The method of claim 115 wherein the set of time offsets are variable offsets.
117. The method of claim 107 wherein the landmarks and fingerprints are computed from a spectrogram of the media sample.
118. A method for recognizing a media entity from a media sample, comprising:
- generating correspondences between landmarks of the media sample and corresponding landmarks in a database index, the database index including landmarks and fingerprints for a plurality of media entities, wherein the landmarks of the media sample and the corresponding landmarks of database index have equivalent fingerprints; and
- identifying a particular media entity from the plurality of media entities which matches the media sample, if a plurality of said correspondences between the media sample and the particular media entity have a relationship.
119. The method of claim 118 wherein the relationship is a linear relationship.
120. The method of claim 118 wherein generating the correspondences comprises:
- comparing the fingerprints of the media sample with the fingerprints in the database index; and
- retrieving from the data index the landmarks and IDs associated with the fingerprints from the data index that match the fingerprints from the media sample.
121. The method of claim 118 further comprising computing landmarks and fingerprints for the media sample before generating the correspondences.
122. A method of recognizing a media sample, comprising:
- identifying media files that have file landmarks that are substantially linearly related to sample landmarks of the media sample;
- wherein the file landmarks and the sample landmarks have equivalent fingerprints; and
- wherein the file landmarks the said sample landmarks have a correspondence.
123. The method of claim 122 wherein the correspondence is a linear relationship.
124. The method of claim 122 wherein the file landmarks are stored in a database index, the database index storing fingerprint and landmark information for a plurality of media files.
125. The method of claim 122 further comprising computing landmarks and fingerprints for the media sample before identifying the media files that have file landmarks.
Patent History
Type: Application
Filed: Jan 23, 2006
Publication Date: Jun 8, 2006
Patent Grant number: 7346512
Inventors: Avery Li-Chun Wang (Palo Alto, CA), Julius Smith (Palo Alto, CA)
Application Number: 11/337,450
International Classification: G10L 21/00 (20060101);


text:
Travelling if you have a medical condition can be daunting but most of the time you can travel without doing anything any differently. Sometimes you may need to take precautions and this information will help you understand what you need to be aware of.
We also recommend you buy suitable medical insurance as medical charges and repatriation costs can be very expensive depending on the country you are visiting. We offer you the opportunity to buy travel insurance as part of your flight booking but it is only available for some countries. If it's available you will see the option when you are confirming and paying for your flights.
Some medical conditions mean you need to talk to us before your flight so we can make sure you are fit to fly.
Conditions that may require medical clearance are:
You will need to complete part one of our MEDIF form and ask your doctor to complete part two. Once you have sent the form to our Passenger Medical Clearance Unit (PMCU) we will be able to consider your request and tell you whether you are fit to fly.
Download the MEDIF form (pdf, 650kb, English only)
We assess your fitness based on internationally accepted criteria so we can be sure you have a safe and comfortable flight. In some cases we may ask for additional information or ask you to travel with a medical escort or supplementary oxygen.
World Health Organisation fitness to fly information (pdf, 84kb, English only)
British Airways and OpenSkies have a dedicated Passenger Medical Clearance team who process all completed medical paperwork. They will assess your fitness to fly and advise accordingly.
|+ 44 (0) 20 8738 5444
|+ 44 (0) 20 8738 9644
|Email the Passenger Medical Clearance Unit
If your medical equipment contains batteries there may be restrictions that apply. British Airways has a dedicated Safety Team that will advise whether your electrical medical equipment can be carried on the aircraft. If you're flying on OpenSkies, please contact OpenSkies direct.
|+ 44 (0) 20 8738 8357
|+ 44 (0) 20 8738 9313
You need to be very careful if you're considering flying after an operation or illness. Please consult with your doctor before booking your flight to confirm they're happy for you to fly.
The details below are a guide to the minimum time you must leave before you can travel and also whether you need to tell us about your condition; if you are in any doubt, please contact us.
|Medical condition
|You can travel after:
|Do you need to contact us?
|Major chest, abdominal or cranial surgery. Middle ear surgery.
|10 days
|Cataract surgery and corneal laser surgery.
|1 day
|Other eye surgery.
|At least 6 days
|If you have had gas introduced into your eye (e.g. for treatment of detached retina) please
contact our PMCU* who may require reports from your treating doctor.
|6 days
|Appendectomy or abdominal keyhole surgery.
|4 days
|Heart conditions
|You can usually fly after 3 to 5 days if the procedure went well.
|Contact our PMCU*
|Heart surgery.
|If you feel well you can travel after 10 days but we suggest you wait until after 4 weeks if possible.
|Heart attack.
|You should not fly within 7 days and then only fly if it's essential to do so. We suggest you are better to wait until after 4 weeks.
|Angina sufferers.
|If you don't have regular attacks you can fly at any time but always carry your medication in your hand baggage.
|Chest conditions
|Stable asthma.
|You can travel at any time but always carry your inhalers with you in your hand baggage.
|Chronic bronchitis, emphysema or other forms of chronic obstructive pulmonary disease.
|If you can walk 50m, without oxygen and getting breathless, you should be fit to fly.
If you can't walk this far you may need supplementary oxygen in flight which must be pre-booked.
|Even if you are intending to use your own POC, please contact our PMCU*.
|Pneumothorax (deflated lung).
|You cannot fly unless the condition is fully resolved for at least 7 days.
|Contact our PMCU* if you've suffered this condition within a month of the date you want to fly.
|Neurological conditions
|If you are feeling well enough and your symptoms are stable or improving you can fly after 3 days.
|Contact our PMCU* if you've had a stroke within 10 days of the date you want to fly.
|You should not travel within 24 hours of a grand mal fit (seizure).
|Ear conditions
|Ear or sinus infection.
|Do not fly if your ears or sinuses feel blocked.
You may suffer severe pain or perforate your eardrum causing long term damage. The air in your middle ear and sinuses needs to be able to stabilise when you fly by allowing your ears to pop.
|Other conditions
|Broken bone.
If you suffer a broken bone and have a plaster cast fitted you cannot fly within:
If you have a full leg cast you can travel in our First and Club World cabin.
In some circumstances these restrictions may not apply but you need to contact our PMCU* to discuss your individual case.
|If your haemoglobin is below 7.5g/dl please let us know.
|Contact our PMCU*
|Infectious disease.
|International Health Regulations stop us carrying you if you are suffering from an infectious disease while it is still contagious.
|Contact your doctor or contact our PMCU* to find out the infectivity period of your illness.
|Travelling with a medical escort.
|Sometimes, even if your medical condition is serious, you can still travel but it must be with medical escort. We recommend you book this through a recognised medical assistance company who specialise in this type of work.
|*Passengers Medical Clearance Unit
If you need to use oxygen on board you must book it in advance. We can only provide oxygen to one passenger per flight so availability may be restricted. The medical information form needs to be completed by you and your doctor before we can clear you to travel. We cannot provide oxygen on the ground at any airports.
British Airways has introduced the Avia Technique Pulse dose cylinder onboard our A380 and B787 aircrafts. The Pulse dose uses less oxygen as it is provided 'on demand'. Please ensure that your doctor completes Part 2 of the MEDIF form to confirm that you can use the pulsed oxygen system.
If you have any additional questions please contact our PMCU.
You can use a battery-operated nebuliser on board except during taxi, take-off, descent and landing. It is not possible to supply mains power.
Most of the time you can take this equipment on board or pack it in your checked baggage. If this means you will exceed your free baggage allowance, contact our PMCU otherwise you may be charged at the airport for your overweight bag.
A portable oxygen concentrator (POC) can be carried on board as part of your hand baggage allowance if it is approved by the Federal Aviation Administration (FAA). If you think that you'll need to use your portable oxygen concentrator during the flight, please contact PMCU to obtain medical clearance before you fly.
You should carry sufficient back up battery supply to cover a minimum of 150% of the planned flight (including transiting time).
If you need to dispose of needles, lancets, syringes or empty insulin cartridges on board please ask the cabin crew for the sharps box; do not leave the items in the toilets or seat pockets.
Traveller's thrombosis or deep venous thrombosis (DVT) is a blood clot that forms in a vein, usually in the lower legs. Research has confirmed that if you are sitting in an aircraft, car, bus or train for more than four hours the risk of a blood clot forming may increase.
Factors increasing the risk of DVT include:
If you think any of the factors above may affect you, seek medical advice before travelling. You may be advised that compression stockings or anti-coagulant medication may help to avoid the possibility of DVT.
You can reduce the risk of DVT by:
We understand that pregnancy is not a medical condition but for your safety, and your baby's, you cannot fly after:
After 28 weeks you must carry confirmation from your doctor or midwife (such as a letter or certificate, in addition to your pregnancy record) confirming your approximate due date and that there are no complications with your pregnancy.
If your diabetes is stable you can fly with no restrictions, however you need to take care that you look after yourself during your trip.
Food allergies vary by type and severity. Common allergies include peanuts, tree nuts, gluten, dairy, shellfish and strawberries. You can request a special or medical meal to exclude a variety of potential allergens e.g. seafood, dairy and gluten.
Travelling with food allergies
Special meals we can offer you
Severe allergic reactions on board are rare, but if you suffer from a severe allergy you may want to consider the following precautions before you fly.
We cannot guarantee a nut free cabin, or prevent other passengers from bringing their own food on board. We use the recommendations of the International Air Transport Association (IATA) for allergen sensitive passengers to make sure your flight is as comfortable as we can make it.
Always speak to your doctor before you book to travel to discuss the potential risks and how you can minimise becoming ill on your trip. If you have been prescribed an epinephrine/adrenaline auto injector like Epipen, Anapen, Twinject or Jext make sure you carry this with you in your hand baggage, clearly labelled and accessible throughout the flight in the seat pocket or on you personally. We also recommend you tell the people around you where you have placed the medication and what to do in an emergency just in case.
Please talk to your doctor about the many things you can do to be prepared in case you come into contact with an allergen.
Here are a few examples to think about:
British Airways are unable to heat or cold store any food items you might bring with you, so if you do prefer to consume your own food, non-perishable food is best. You should also check the different quarantine laws of your transit and/or destination with respect to food types permitted into the country.
We are required by the World Health Organisation (WHO) to spray the aircraft cabin on arrival into certain destinations to prevent the risk of insects spreading highly dangerous disease, such as malaria and dengue fever.
On routes where we are required to spray, cabin crew will read out a brief statement advising you that spraying is about to take place. This will give you the opportunity to cover your eyes and nose if you wish.
The spray clears from the aircraft in a few minutes.
Contents of the insecticides
The sprays contain synthetic pyrethroids, which are widely used.
The World Health Organisation (WHO) assesses the safety of insecticides and recommends the use of the following synthetic pyrethroids:
N.B. Aircraft entering Australia and New Zealand need to be sprayed twice - initially with Permethrin residual insecticide and then with a Phenothrin spray.
|BA flights arriving into the UK
|Flights departing from
|Buenos Aires
|Rio de Janeiro, Sao Paolo
|Beijing, Chengdu, Hong Kong, Shanghai
|Dominican Republic
|Punta Cana
|Bangalore, Chennai, Delhi, Hyderabad, Mumbai
|Korea, Republic of
|Kuala Lumpur
|Cancun, Mexico City
|Abuja, Lagos
|Saudi Arabia
|Riyadh, Jeddah
|South Africa
|Cape Town, Johannesburg
|BA flights departing from the UK
|Flights to:
|Flights arriving at:
|Buenos Aires
|Bangalore, Chennai, Delhi, Hyderabad, Mumbai
|BA shuttle routes outside the UK
|Flights departing from:
|Flights arriving at:
|St Lucia
|Abu Dhabi
|Port of Spain
|St Lucia
|St Lucia
|St Lucia
|Port of Spain
Our preferred travel partner for health services is MASTA (Medical Advisory Services for Travellers Abroad). As a health provider they have a network of travel clinics across the UK. They provide expert travel medicine advice and treatment including a comprehensive immunisation service and a wide range of anti-malarial drugs.
Useful information about their central London clinic
More about MASTA and their network of clinics
BA Travel Clinics vaccination records
If you were vaccinated at one of our BA Travel Clinics before they closed in August 2006, we may have copies of your vaccination records. If you need a letter confirming these, please write to the address below stating your name, address, data of birth, contact number and enclose a stamp addressed envelope. Please note that information will only be traced back as far as 2002.
However, we do provide duplicate current Yellow Fever certificates. Please write to the address below stating your name, address, date of birth, contact telephone number, month and year of your Yellow Fever vaccination and enclose a stamp addressed envelope. An administrative charge of £10 is made for this service which should be paid by cheque made payable to British Airways Health Services.
British Airways Health Services - Travel Clinic records
British Airways Plc
Europe House
Waterside (HMAG)
PO Box 365
Harmondsworth UB7 0GB
Visit the IATA website for vaccination requirements and information regarding your country of travel and any medical information that you need to know about before you fly.

subset: commoncrawl


text:
OpenCL: Parallel programmers' new best friend
Apple's Snow Leopard hit the streets friday as the first major OS to support OpenCL. OpenCL, the Open Computing Language, was originally proposed by Apple to support parallel programming on GPUs and handed over to the Khronos Group, the same independent standards organization that manages the OpenGL standard for 3D rendering. Support for OpenCL may start with Snow Leopard but it will go well beyond that. AMD and Nvidia will have OpenCL drivers for their GPUs under Windows and Linux. AMD and Intel will support OpenCL on their CPUs (including Intel's Larrabee). AMD has already shipped its first OpenCL implementation for its Athlon and Opteron processors. For those folks with OpenCL already up and running on their Apple computers under Snow Leopard, there are two benchmark applications out, so you can see just what OpenCL can do for you.


text:
Interior. Friday , November 03rd , 2017 - 18:22:56 PM
Quote from Guidelines for the Repair and Replacement of Slate Roof :
Just in case that you have that old type of slate roof in your building, you may need to know about the best ways in term of its repair and replacement. The fact that this particular type of roof is old and classic means that you may need to consider certain things in order to get the repair or replacement done in the proper ways. So, before attempting to do repair or even replace this particular type of roof, be sure to understand these following things first for the best end result.
One common problem in dealing with the repair of this type of roof is the missing pieces of it. Thus you have to consider the number of those missing pieces if you want to look for the replacement. Furthermore you should also think of the damaged parts of the roof. Calculate the damaged parts and the missing pieces at first. If the number is below 20% of the roof, it will be okay for you just to repair the roof by adding pieces to replace the missing ones and replacing the damaged pieces. It means that you do not need to replace the entire roof.
Another thing that could also be a popular problem of a roof is leak. You should check whether there are leaks or not that you have to repair. Just in case that you find leaks, you cannot assume that the source is the slate itself. It could just be a kind of false leak caused by moisture condensation thing right in the attic. Observe carefully to know the actual problem which will lead to the proper repair for such problem that you face.
Meanwhile you may also need to check the flashings of the roof. It is true that slate is durable but the flashings of the room are made of metal that could be damaged over its years of use. Thus be sure to examine the flashings and do the necessary things either replacing certain flashings or just repairing them. One more thing to consider is whether or not the replacement roof is available. You may still need to repair the existing roof at first. This is due to the fact that you may need to order the slate first. Thus if you are planning to replace the slate roof that you have, you can start the entire processes by observing the roof itself carefully.
About ♦ Contact ♦ Privacy ♦ TOS ♦ Copyright
Copyright © 2016. Designcommotion.com. All Rights Reserved.
Any content, trademark/s, or other material that might be found on this site that is not this site property remains the copyright of its respective owner/s. In no way does Designcommotion.com claim ownership or responsibility for such items, and you should seek legal consent for any use of such materials from its owner.


text:
Integral Courier USB 3.0 Flash Drive 8GB
Product code: FTINFD8GBCOU3.0
OEM Part Number: INFD8GBCOU3.0
- Brand: Integral
- Storage Capacity: 8 GB
- Subcategory: USB Drives
- Grades: Consumer
- Connection: USB 3.0
- Write Speed: 80MB/s
- Read Speed: 180MB/s
- Colour: Blue
Product Overview
Integral Courier USB 3.0 Flash Drive combines a great-value price with a SuperSpeed data transfer rate, that is up to 10x faster than an equivalent USB 2.0 drive. Now you can backup, transfer and access your digital content faster than ever.
- Best combination of value and performance in the Integral USB range
- Spend less time waiting, and more time enjoying your content
- Ideal for large files, HD movies, backups and upgrading PC systems
- Transfer an entire DVD quality movie in less than a minute
- Backwards compatible with USB 2.0 systems
- Great accessory for a new Ultrabook with USB 3.0 connectivity
- USB 3 SuperSpeed is up to 10x faster than USB 2
- Read speed up to 180 MB/s*, and a Write speed up to 45 MB/s*
- USB 3.0 works in USB 2.0 compatible computers (at USB 2.0 transfer speed)
- PC and Mac compatible
- Up to 100 MB/s* Read / 12 MB/s* Write (8 GB)
- Up to 180 MB/s* Read / 22 MB/s* Write (16 GB)
- Up to 180 MB/s* Read / 45 MB/s* Write (32 GB)
- Up to 180 MB/s* Read / 45 MB/s* Write (64 GB)
- 2 year warranty
System Requirements
- USB 3.0 port for SuperSpeed (USB 2.0 compatible, at USB 2.0 transfer speed)
- Windows XP / Vista / 7 / 8
- Mac OS X (10.2.8) and above
*Based on internal testing, performance may vary based on system configuration.
60-Day Returns Policy
Not 100% happy with your order then return it to us under our No Quibble 60 Day Money Back Guarantee.
Our 60-Day return policy gives you plenty of time to consider your purchase. You can return any item in its original condition within 60 days of the date of shipment for a refund or exchange. We will also provide you a Freepost label to return the memory which ensures that there is no cost to our customers.
Lifetime Warranty
Feel confident that your memory will last a lifetime. Our lifetime warranty guarantees that if your memory should ever fail we will replace or repair the product free of charge. Please note that the lifetime warranty refers only to memory modules and not flash memory or storage products. Please see the individual 'product details' for warranties specific to each product. For complete warranty details please see our Terms and Conditions
Transcend - First and Largest UK Distributor
OFFTEK is proud to be one of the first and largest distributors of Transcend products in the UK, a relationship which first began in 1996.
Transcend is a global company with offices around the world. Their overseas offices were opened in California, USA (1990), Germany (1992), The Netherlands (1996), Japan (1997), Hong Kong (2000), China (2000), UK (2005) and Maryland, USA (2005). Transcend is a strategically integrated Hi-Tech company, that not only designs, develops, and manufactures their branded products, but also market and sell their own devices.
The corporate culture that exists within Transcend is one of professionalism and teamwork. As a declaration of their commitment to quality they implemented the Total Quality Control concept throughout the company, and became the first memory module manufacturer in Taiwan and the second in the world to receive ISO 9001 Certification. Transcend's Advanced R&D Teams have over 17 years of experience in developing quality state-of-the-art Hi-Tech products that are at the very cutting edge of technology. Their commitment to R&D ensures that we will continue to produce superior quality innovative products keeping us at the forefront of our industry and leaving the competition far behind.
As a company Transcend can best be described as, a World-Class leader in the field of memory and consumer electronics, which brings you Tomorrow's World, Today.
Integral Memory
Integral is a brand of Integral Memory plc, a company born in the UK as the PC era was just beginning in 1989. They began by supplying memory for very early PCs and data systems. Later in 1999 integral began producing some of the very first memory cards and USB drives for the fast growing digital market.
Today, Integral Memory produces a wide range of memory and storage products including; DRAM, memory cards, USB drives, Solid-State-Drives (SSD) and Industrial memory solutions.
Integral's passion is to bring you the latest memory products built on quality, reliability and great prices including; SDXC memory cards, 256-bit encrypted USB drives and high capacity SSDs.
£11.30 inc. VAT
Want it by Wednesday?
Order by Tuesday 16:00 and select Express Delivery.
Delivery Options
We monitor the prices of our competitors twice daily, giving you the peace of mind that our prices are the lowest online.Find Out More
Example Storage Capacity
|Photos (based on 12MP)
|Minutes of Video (based on 12Mb/s)
|MP3 Files
|MP4 Files
Similar Products
Below are listed products with a similar specification:View all of our USB


text:
The domain name tuc.co.uk is a domain name from our extensive portfolio of essential UK e-commerce domains including a number of website addresses formerly operated under the LateRooms and Easycover group of companies. We have decided to offer them for sale. This domain has been in our possession since its first registration.
Offers from interested parties can be submitted from this page and the highest 3 offers will be displayed anonymously with an ID and active date.
We intend to run this sale for an unspecified period to give all interested parties chance to become aware of the sale. It is not a time limited auction, but a way for us to field multiple offers efficiently. We will sell it on a highest offer basis at our discretion if we are satisfied and decide to accept the current highest offer.
The sale once agreed will be processed by escrow.com at our expense, or by bank transfer depending on the value of the sale. We reserve the right to cancel the sale without notice (subject to escrow.com terms if the escrow process has been started).
If payment is not received promptly we will cancel the escrow process and sale and offer the name to the next highest bidder and so on.
All UK domains (.co.uk) include the rights to the .uk version.
Business references can be supplied. Thank you for your interest in tuc.co.uk and good luck!
Paul Walsh
Enter your offer below in GBP. Your offer may be for any amount and is validated by email. You can change or cancel (enter 0) your offer at any time. Your personal details will not be disclosed. We will remove any offers which we do not consider genuine.