Electronic devices employing loudspeakers (e.g., personal electronic devices, such as cell phones) may include frequency control (e.g., bass, mid-range, and treble frequency control) to adjust audio output from the loudspeakers to improve the quality of experience (QoE) of content involving audio or speech. Audio signals may comprise different classes of audio content, such as music, voice, and movie content, for example, where each class may require different frequency control for optimizing QoE.
In the following detailed description, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific examples in which the disclosure may be practiced. It is to be understood that other examples may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims. It is to be understood that features of the various examples described herein may be combined, in part or whole, with each other, unless specifically noted otherwise.
Electronic devices (e.g., personal electronic devices, such as cell phones) typically include loudspeakers for playing audio content. Such electronic devices may include a number of audio control presets for adjusting elements of the audio reproduced by the loudspeakers (e.g., bass, mid-range, and treble frequency presets) so as to improve the quality of experience (QoE) of audio content for a user.
Audio signals may be of a number of different classes of audio content, such as music, voice, and cinema (movie) content, for example, where each audio class may require control of different audio control presets for optimizing QoE for a user. For example, the type of presets may be different for each class of audio signals, with one class requiring three presets (e.g., bass, mid-range, and treble presets) and another class requiring four or more presets (e.g., bass-1, bass-2, mid-range, and treble presets), for instance. Also, classes of audio content using a same set of presets may require different values for each preset.
Electronic devices often include one or more sets of pre-programmed audio presets for controlling elements of audio output (e.g. bass, mid-range, and treble frequency). For example, some electronic devices enable a user to select one of three pre-programmed sets of presets, one each for music, voice and cinema content. Often, a user is not aware that the pre-programmed sets presets even exist, such that the default preset being used by the device may or may not correspond to the class of audio content being reproduced. Additionally, even if a user is aware of the pre-programmed sets of presets, the user needs to manually select the appropriate set of presets, and manually select an appropriate value for each preset of the set of presets each time different audio content is being reproduced. Such a process in inherently error prone due to a user potentially not being aware of the presets, a user forgetting to apply presets, and a user applying the wrong set of presets and/or wrong preset values to the audio content.
The present disclosure provides an automated audio signal classifier that can be employed by electronic devices to classify an audio signal as one of a plurality of types or classes of audio content (e.g., voice, music, cinema etc.). The classification of the audio signal is then used to automatically identify and apply proper audio presets to control the audio content being reproduced by the loudspeakers. Such process ensures that optimal audio presets are applied so as to provide an optimal QoE for a user.
In one example, as will be described in greater detail below, an audio signal classifier, in accordance with the present disclosure, uses features of the audio signal included in metadata of the audio signal or stream to classify the audio signal as one of a plurality of audio signal classifications or types using a trained machine learning model (e.g., a neural network). In one example, among other features, the features include a duration of the audio signal, with the trained machine learning model being trained to classify audio signals based, in part, on the duration of the audio signal.
In one example, feature extractor 104 generates a feature vector, X, for audio signal 106, as indicated at 112, where feature vector X includes a plurality of audio features, indicated as audio features X1 to XN (X={X1, . . . , XN}) selected from the metadata of audio signal 106. In one example, the selected audio features at least include the duration of the audio signals in seconds. In one instance, where metadata for audio signal 106 does not explicitly include a duration of the audio signal, feature extractor 104 generates and includes duration feature in feature vector X based on the file size and bitrate features (e.g., file size (kilobytes)/bitrate (bits/second)). The file-size information can be obtained from the file-data and duration can be computed using file-size/bitrate of the content, or can be determined by computing the difference in the beginning and end time-stamps of the file or stream. In one example, feature vector X includes six features (i.e., X={X1, . . . , X6}), the six selected features being: duration of the audio signal in seconds, sample rate of the audio in kHz (e.g., 16, 44.1, 48), bit-depth in bits/sample (e.g., 16, 20, 24), presence or absence of video content (video-bit 0 or 1), audio channel count (e.g., 1, 2, 6, 8), and presence object-based audio or channel-based audio (e.g., {0, 1}).
According to one example, trained machine learning model 104 is trained to classify audio signal 106 as one of a plurality of predefined audio classes based on feature vector X. In one example, trained machine learning model is trained to classify audio signal as being one of three classes of audio signals (i.e., voice, music, and cinema). In one example, as described in greater detail below, trained machine learning model 104 is trained using training or sample vectors X constructed to represent a statistical distribution of actual audio content.
In one example, trained machine learning model 104 receives feature vector X, and, based on the values of features X1 to XN, provides a plurality of class output values CV, as indicated at 114, and illustrated as CV1 to CVX, (e.g., CV={CV1, . . . , CVX}), where each class output value CV1 to CVX corresponds to different one of the plurality of audio classes. According to one example, classes are substantially non-overlapping due to the choice of feature vector, but may be partially overlapping depending on whether new features are added or deleted from the feature vector set, and the output values CV1 to CVX are substantially separable based on a threshold criteria. In one example, as described above, trained machine learning model 104 provides three class output values, CV1 to CV3, respectively corresponding to voice, music, and cinema audio classes.
According to one example, the plurality of class values CV1 to CVX together are indicative of the class of the audio signal. In one example, as will be described in greater detail, the class of the audio signal, as automatically identified by audio signal classifier 100, is used to automatically identify and apply proper audio presets to control the audio content being reproduced by the loudspeakers of an audio system so as to optimize QoE for a user.
In one example, machine learning model 104 includes an input layer 120 having six input neurons 122, one input neuron 122 corresponding to a different one of the six audio features of feature vector X as described above (i.e., duration, sample rate, bit-depth, presence or absence of video content, audio channel count, and presence of object-based audio or channel-based audio), an output layer 124 including three output neurons 126, one output neuron 126 corresponding to a different one of the three audio classes described above (i.e., voice, music, and cinema classes), and two hidden layers, such as hidden layers 132 and 134, where each hidden layer includes 10 hidden neurons.
In one example, machine learning model 104 includes an input layer 120 having six input neurons 122, one input neuron 122 corresponding to a different one of the six audio features of feature vector X as described above (i.e., duration, sample rate, bit-depth, presence or absence of video content, audio channel count, and presence of object-based audio or channel-based audio), an output layer 124 including three output neurons 126, one output neuron 126 corresponding to a different one of the three audio classes described above (i.e., voice, music, and cinema classes), and two hidden layers, such as hidden layers 132 and 134, where each hidden layer includes 10 hidden neurons.
In one example, trained machine learning model 104 may employ any of a number of processing techniques such as, for example, a Bayesian Classifier, MLP with gradient descent based learning, etc. Based on the input feature vector and the corresponding associated labeled class value the output neuron produces a value. The MLP is trained on the sum-squares errors (difference between the neuron outputs and the desired output). For example if the feature-vector corresponds to movie feature set, then the output class values will be CV1=1, CV2=−1, CV3=−1 (where CV1 corresponds to the neuron or output for movie). The error is computed from the output of the three output neurons and the weights are adapted using the gradient descent algorithm. The next feature vector is delivered to the network and the error computed based on the output of the neurons and the desired class output values and the weights adapted to minimize the error. The process is repeated for all feature vectors and the feature vectors are repeatedly presented multiple times until the error is minimized (example of the error plot is shown in
In contrast to trained machine learning model 104, which classifies audio signal 106 based on metadata from audio signal 106, trained deep learning model 154 classifies audio signal 106 based on decoded audio frames from audio signal 106 (e.g. time-domain frames and/or time frequency data computed using short-time Fourier transforms (STFT) over frames (e.g., 20 ms of audio data)). In one example, trained deep learning model 154 comprises a neural network employing multi-stage classifiers. In one example, trained deep learning model 154 is trained on frames of labeled audio data such as, for example, explosions, applause, Foley (i.e., reproduced sound effects), music, etc. Based on the decoded audio frames, trained deep learning model 154 outputs a plurality of output class values, CV′, with each class value corresponding to a different class of the plurality of audio classes (e.g., voice, music, and cinema), and the plurality of output class values together indicating the class of audio signal 106.
Examples of the operation of audio signal classifier 100 of
According to the example of
Continuing with the operation of audio signal classifier 100, when robustness value D=0, feature extractor 102 provides feature vector X to trained machine learning model 104. In response, trained machine learning module 104 provides the plurality of output class values CV (e.g., one class value for each class of a plurality of audio classes) to reliability evaluator 142 and to a corresponding MLM (machine learning model) decision model 148. Additionally, it is noted that audio input controller 146 does not pass decoded audio frames 144 to trained deep learning model 154 in response to robustness value D being “0”.
In one example, upon receiving output class values CV, reliability evaluator 142 generates a reliability index, α, which is indicative of the reliability of output class values CV (i.e., how reliable or accurate will the resulting classification be based on such output class values). In one case, the reliability index, α, is based on an amount of separation between the class values CV. In one example, reliability index a is the root mean square error between each of the output class values CV. In one example, if the reliability index α is greater than or equal to a threshold value, T, the output class values CV are deemed to be reliable, and reliability evaluator 142 provides a reliability value, β, having a value of “1” (β=1). Conversely, if the reliability index a is less than the threshold value, T, reliability evaluator 142 provides a reliability value, β, having a value of “1” (β=0), indicating that class values CV are deemed to be unreliable.
In a scenario where the β=1 (meaning that output class values CV are reliable), audio input controller 146 does not pass decoded audio frames 144 to trained deep learning model 154. Additionally, with β=1, MLM decision model 148 determines the class of audio signal 106 based on the plurality of output class values CV. In one case, MLM decision model 148 classifies audio signal 106 as belonging to the audio class corresponding to the class value of the plurality of class values CV having the highest value. For example, in a case where the plurality of audio classes are {movie, music, voice} and the corresponding CV values are CV={−1,+1,−1}, MLM decision model 148 will classify audio signal 106 as “music”, since music has the highest corresponding class value (i.e. “+1”). According to this scenario, where β=1, MLM decision model 148 passes the determined audio class (e.g., “movie”) to global decision model 150 which, in this case, acts as a “pass-thru” and provides the identified audio class received from MLM decision model 148 as output audio class 152. In one example, output audio class 152 is used to select audio presets to adjust an audio output of loudspeakers (e.g., see
In a case where the β=0 (meaning that output class values CV are not reliable), rather than determining the audio class of audio signal 106 and providing an identified audio class to global decision model 150, MLM decision model 148 instead passes the plurality of output class values CV to global decision model 150. An example of this is a case when the CV values are distributed as {0.2, −0.1, −0.7} where the separation between movie and music class values are not significant (significance being determined based on pairwise error computation between class values). Additionally, with β=0, audio input controller 146 passes decoded audio frames 144 to trained deep learning model 154. In response, trained deep learning model 154 generates and provides a plurality of output class values CV′ to a DLM decision model 156 corresponding to trained deep learning model 154, where each output class value corresponds to a different class of the plurality of audio classes. With β=0, rather than determining the audio class of audio signal 106 and providing an identified audio class to global decision model 150, DLM decision model 156 passes the plurality of output class values CV′ to global decision model 150.
In response to receiving the plurality of output class values CV and the plurality of output class values CV′, global decision model 150 does not act as a pass-thru, but instead determines an audio class for audio signal 106 based on the two sets of output class values. Global decision model 150 may employ any number of techniques for determining an audio class for audio signal 106. In one case, global decision model 50 simply classifies audio signal 106 as belonging to the audio class corresponding the class values having the largest sum. For example, in a case where the plurality of audio classes are {movie, music, voice} and the corresponding CV values are CV={0.5, 0.4, 0.1} and CV′ values are CV′={0.6, 0.1, 0.3}, global decision model 150 will designate audio signal 106 as a “movie” since the sum of the corresponding class values has the highest value (i.e., {movie, music, voice}={1.1, 0.5, 0.4}).
In another example, global decision model 150 may employ a linear weighted average. For example, global decision model 150 may apply a “weight1” to the plurality of class values CV, and a “weight2” to the plurality of class values CV, such that movie=((0.5*weight1+0.6*weight2)/(weight130 weight2)); music=((0.4*weight1+0.1*weight2)/(weight1+weight2)); and voice=((0.1*weight1+0.3*weight2)/(weight1+weight2)). If weight1=0.5 and weight2=1, then {movie, music, voice}={0.57, 0.2, 0.23}, such that global decision model 150 will designate audio signal 106 as a “movie”.
Returning to feature evaluator 140, in a scenario where robustness value, D, has a value of “1” (D=1), meaning that metadata has been deemed to be unreliable, audio input controller 146 will pass decoded audio frames 144 to trained deep learning model 154. However, since trained machine learning model 104 is not trained on unreliable metadata (i.e., unreliable feature values), feature extractor 102 does not provide feature vector X to trained deep learning model 104.
In such scenario, upon receiving decoded audio frames 144 via audio input controller 146, trained deep learning model 154 generates and provides the plurality of output class values CV′ to DLM decision model 156. With D=1, DLM decision model 156 determines the class of audio signal 106 based on the plurality of output class values CV′. In one case, DLM decision model 156 classifies audio signal 106 as belonging to the audio class corresponding to the class value of the plurality of class values CV′ having the highest value. For example, in a case where the plurality of audio classes are {movie, music, voice} and the corresponding CV′ values are CV′={−1,+1,−1}, DLM decision model 156 will classify audio signal 106 as “music”, since music has the highest corresponding class value (i.e. “+1”). DLM decision model 156 passes the determined audio class (e.g., “movie”) to global decision model 150 which, in this case (D=1), acts as a “pass-thru” and provides the identified audio class received from DLM decision model 156 as output audio class 152.
In view of the above, when D=0 and β=0, audio classifier 100 of
To employ the duration feature of an audio signal as a classifying feature, since content length can vary significantly, the duration of the audio signal is modeled. According to one example, statistical distributions are used to model duration for audio content (e.g., voice, music and cinema).
Similarly, content distributions of durations for publically available YouTube content are shown in
Distributions for durations of YouTube content for music, entertainment, comedy, and sports, as described above, are illustrated by
A modeled Gaussian distribution of YouTube sports broadcast content is illustrated by
In one example, samples generated from distribution modeling of the duration were permuted with other features of the feature vector (e.g., sample rate, bit depth, number of channels, video presence) to create 500 training feature vectors in a meaningful way based on how typical audio content is encoded an exists. In one example, the training feature vectors were randomized before applying them to machine learning model 104, with the training be done to minimize the sum-squares error (e.g., the difference between actual output of the output neuron for each class and a value labeled for a target class, either a −1 or a+1 for a hyperbolic tangent transfer function of the output neuron) over all outputs and training samples using the Levenberg-Marquart algorithm for updating the synapse weights of the machine learning model. It is noted that a sigmoid with output values ∈[0,1] does not change classification accuracy.
Exemplary classification results for several actual cinematic, sports (voice), and music videos using the above-described trained machine learning model 104 are described below. For the movie “Edge of Tomorrow” having a duration of 6,780 seconds, a sample rate of 48 kHz, an audio channel count of 8, a bit-depth of 24, a video bit=1, and an object bit=0, trained machine learning model provided class output values of +1.0 for the movie class, −0.99 for the music class, and −1.0 for the voice class. Based on maxima, the trained machine learning model 104 correctly identified the audio signal as being of the movie class.
As another example, for the movie “Batman (The Dark Knight Rises)” having a duration of 9,900 seconds, a sample rate of 48 kHz, an audio channel count of 6, a bit-depth of 24, a video bit=1, and an object bit=0, trained machine learning model 104 provided class output values of +1.0 for the movie class, −1.0 for the music class, and −1.0 for the voice class. Based on maxima, the trained machine learning model 104 correctly identified the audio signal as being of the movie class.
As another example, for a “YouTube music video for Maroon-5” having a duration of 61 seconds, a sample rate of 44.1 kHz, an audio channel count of 2, a bit-depth of 16, a video bit=1, and an object bit=0, trained machine learning model 104 provided class output values of −1.0 for the movie class, +1.0 for the music class, and −1.0 for the voice class. Based on maxima, the trained machine learning model 104 correctly identified the audio signal as being of the music class.
As another example, for a “YouTube sports video of a Georgia vs. North Carolina football game” having a duration of 9440 seconds, a sample rate of 44.1 kHz, an audio channel count of 2, a bit-depth of 16, a video bit=1, and an object bit=0, the trained machine learning model 104 provided class output values of −1.0 for the movie class, −1.0 for the music class, and+1.0 for the voice class. Based on maxima, the trained machine learning model 104 correctly identified the audio signal as being of the voice class.
At 204, a feature vector is generated which includes selected features of the audio signal, the selected features including a duration of the audio signal, each selected feature having a feature value, such feature extractor 102 generating a feature vector X from metadata of audio signal 106 as illustrated and described by
At 206, method 200 includes generating a plurality of class values based on the feature values of the feature vector using a trained machine learning model, such as trained machine learning model 104 generating output class values CV, as described with respect to
At 224, it is queried whether the extracted metadata is reliable (e.g. the metadata is not corrupt, metadata is not missing, metadata does not have atypical values), such as feature evaluator 140 determining a robustness value, D, as illustrated above with respect to
At 226, a feature vector is generated from the metadata, the feature vector including selected features of the audio signal, including a duration of the audio signal, each selected feature having a feature value, such as feature extractor 102 generating feature vector X from metadata extracted from audio signal 106. In one example, in addition to a duration of the audio signal, the feature vector includes a plurality of additional features, such as a sample rate, a bit-depth, a presence or absence of video data, an audio channel count, and presence or absence of object-based audio or channel-based audio, for example.
At 228, method 220 includes employing a trained machine learning model to generate from the feature vector a plurality of output class values based on the feature values, with each output class value corresponding to one class of the plurality of audio signal classes (e.g., voice, music, cinema), such as trained machine learning model 104 of
At 230, it is queried whether the first plurality of output class values generated by the trained machine learning model is reliable, such as reliability evaluator 142 evaluating whether the plurality of output values CV generated by trained machine learning model 104 are valid via generation of validity value, β, as illustrated and described with respect to
At 232, an audio class is determined for the audio signal based on the values of the first plurality of class values generated by the trained machine learning model at 230, such as MLM decision model 148 determining an audio class to which input signal 106 belongs based on the plurality of output class values CV generated by trained machine learning model 104, as described above with respect to
Returning to 230, if the answer to the query at 230 is “no”, meaning that the output class values generated by the trained machine learning model are not reliable, method 220 proceeds to 234. At 234, a trained deep learning model generates a second plurality of output class values based on audio frames extracted from the audio signal, such as trained deep learning model 154 generating a set of output class values CV′ based on audio frames 144, as illustrated and described by
At 236, a class of the audio signal is determined from the first set of output class values generated by the trained machine learning model at 228 and on the second set of output class values generated by the trained deep learning model at 236, such as output class values CV generated by trained machine learning model 104 and output class values CV′ generated by trained deep learning model 154 as illustrated by
Returning to 224, if the query as to whether the metadata is reliable is “no”, method 220 proceeds to 238. At 238, a trained deep learning model generates a second plurality of output class values based on audio frames extracted from the audio signal, such as trained deep learning model 154 generating a set of output class values CV′ based on audio frames 144, as illustrated and described by
At 240, an audio class is determined for the audio signal based on the values of the second plurality of class values generated by the trained deep learning machine learning model, such as DLM decision model 156 of
In one example, audio signal classifier 100, including feature extractor 102 and trained machine learning model 104, may be implemented by a computing system. In such examples, audio signal classifier 100, including each of the feature extractor 102 and trained machine learning model 104, of the computing system may include any combination of hardware and programming to implement the functionalities of audio signal classifier 100, including global feature extractor 102 and trained machine learning model 104, as described herein in relation to any of
In one example, computing device 300 may include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in
System memory 304, removable storage 306, and non-removable storage 308 represent examples of computer storage media, including non-transitory computer readable storage media, storing computer executable instructions that when executed by one or more processors units of processing units 302 causes the one or more processors to perform the functionality of a system, such as audio signal classifier 100. For example, as illustrated by
In some examples, the computer executable instructions can be part of an installation package that, when installed, can be executed by at least one processing unit to implement the functionality of audio signal classifier 100. In such examples, the machine-readable storage medium may be a portable medium, such as a CD, DVD, or flash drive, for example, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, the computer executable instructions may be part of an application, applications, or component already installed on computing device 300, including the processing resource. In such examples, the machine readable storage medium may include memory such as a hard drive, solid state drive, or the like. In other examples, the functionality of audios signal classifier 100, including feature extractor 102 and trained machine learning model 104 may be implemented in the form of electronic circuitry.
Although specific examples have been illustrated and described herein, a variety of alternate and/or equivalent implementations may be substituted for the specific examples shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the specific examples discussed herein. Therefore, it is intended that this disclosure be limited only by the claims and the equivalents thereof.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2017/030213 | 4/28/2017 | WO | 00 |