The present invention generally relates to identifying music and particularly relates to a robust mechanism for identifying musical pieces.
People often hear songs or other musical pieces of interest to them, but until recent years there has been no broadly available instant mechanism for identifying musical pieces on the fly. However, as always-on Internet connectivity has become nearly ubiquitous, and as smart phone usage and capabilities have commensurately increased, a number of mobile applications for music identification have entered the market.
By convention, these music identification applications work based on the concept of song “fingerprints.” More broadly, a song or any musical piece of sufficient duration will have a unique set of time-frequency values. This spectrographic “fingerprint” may be stored in a music database, along with like fingerprints for large numbers of other musical pieces. An unknown musical piece can be identified based on determining whether its spectrographic fingerprint matches—at some defined confidence level—one of the fingerprints in the music database.
Of course, the particular formulation of the spectrographic fingerprints is non-trivial, and some approaches are more accurate and robust than others, particular in cases where the unknown musical piece is fingerprinted in the presence of significant interfering or background noise. These cases are not insignificant when considering a typical smartphone-based music identification scenario. Often a person at a party, restaurant, mall, or other noisy place hears a song of interest and activates a music identification application on his or her smartphone.
In turn, the music identification application begins capturing audio, based on activating the smartphone microphone. The captured audio includes whatever portion of the song that was playing during the capture process—which usually lasts on the order of several seconds—along with whatever background or interfering noises were audible during the capture period. To the extent that the interfering noise is pervasive or is at significantly loud volume levels in relation to the song volume, the captured audio may be a poor representation of the song of interest. Poor playback quality, which is common in bars, malls, and other such venues, only exacerbates these capturing problems.
Beyond problems associated with cleanly capturing audio of sufficient quality, it is recognized herein that fingerprinting and fingerprint matching are computationally-intensive and data-intensive undertakings. For example, the music identification application may ship the captured audio to a remote server, using the cellular data connection of the smartphone, resulting in data charges to the user. On the other hand, if the music identification application does all or part of the spectrographic analysis, so that only the more compact fingerprint is shipped off to the remote server for matching, potentially significant processing power may be consumed at the smartphone during the analysis. It is recognized herein, loading the smartphone processor(s) or processing cores in this manner undesirably affects battery life.
In one aspect of the teachings herein, a wireless device is configured to obtain identification information for a musical piece. Advantageously, the wireless device is configured so that a user can provide a triggering input to the wireless device when the user hears a musical piece of interest being played back on an audio system that is external to the wireless device and proximate to the user. In response, the wireless device initiates communication with a server, which communication includes sending a generic identification request to the server. The server knows which musical piece is currently playing on the audio system, e.g., based on connectivity between the server and the audio system, and the server returns identification information for the currently playing musical piece. This approach obviates the need for the wireless device to capture and process audio data, or to use fingerprint information derived from captured audio data.
In one example embodiment, a method in a wireless device of obtaining identification information for a musical piece includes detecting a triggering input from a user of the wireless device and, responsive to the triggering input, initiating communication with a server. The communication initiation includes sending a generic identification request to the server that is interpreted by the server as an identification request for a musical piece currently being played back on an external audio system proximate to the user, and receiving a return response from the server that includes identification information for the musical piece. The method further includes storing the identification information in the wireless device, for identifying the musical piece to the user and/or a music application.
In another example embodiment, a wireless device is configured to obtain identification information for a musical piece. Here, the wireless device includes a user interface, a communication interface, and a processing circuit. The processing circuit is configured to detect a triggering input initiated by the user via the user interface and, responsive to the triggering input, initiate communication with a server via the communication interface.
In particular, the processing circuit is configured to send a generic identification request to the server that is interpreted by the server as an identification request for a musical piece currently being played back on an external audio system proximate to the user, and receive a return response from the server that includes identification information for the musical piece. Correspondingly, the processing circuit is configured to store the identification information in the wireless device, e.g., in a memory circuit or any other computer-readable medium included in the wireless device, for identifying the musical piece to the user and/or a music application. The music application may be on the wireless device, or may be on an external system that communicatively couples to the wireless device.
In yet another example embodiment, a computer-readable medium stores a computer program that comprises program instructions for execution by a processing circuit of a wireless device having a user interface and a communication interface. The stored computer program comprises program instructions to detect, via the user interface, a triggering input from a user of the wireless device and, in response to the triggering input, initiate communication with a server via the communication interface. The program instructions to initiate communication include program instructions to send a generic identification request to the server that is interpreted by the server as an identification request for a musical piece currently being played back on an external audio system proximate to the user, receive a return response from the server that includes identification information for the musical piece, and store the identification information in the wireless device, for identifying the musical piece to the user and/or a music application.
Of course, the present invention is not limited to the above features and advantages. Indeed, those skilled in the art will recognize additional features and advantages upon reading the following detailed description, and upon viewing the accompanying drawings.
The audio system 12 may be considered as being part of a “music system” 14, which may function as a “music jukebox.” The music system includes a server 16, which has digital processing circuitry referred to as a processing circuit 18, memory/storage 20 storing a computer program 22 and data 24, and a communication interface 26. The term “server” as used here does not necessarily denote a computer system or other processing node that provides potentially complex client-server software services, such as mail services and/or computational services. However, the term at least denotes a computer system or other processing node that provides music identification services to connecting wireless devices 10, as taught herein.
In one or more embodiments, the data 24 comprises a database of identification information for a plurality of musical pieces, e.g., song identifier, optionally along with other pertinent data, such as any one or more of artwork, lyrics, artist/album information, pricing, download and/or purchasing links, etc. In other embodiments, the data 24 is remote to the server but accessible via an IP link or other communication link. Correspondingly, in one or more embodiments, the communication interface 26 includes an Ethernet or other IP network interface. In at least one embodiment the communication interface 26 includes a BLUETOOTH transceiver or other short-range communication interface.
The processing circuit 18 in one or more embodiments comprises one or more microprocessor-based circuits or other computer circuitry that is specially adapted to provide the musical piece identification services described herein, based on the execution by that circuitry of the computer program instructions comprising the computer program 22. In that regard, the memory/storage 20 will be understood as comprising one or more types of computer-readable media that provide for non-transitory storage of the computer program 22. In other embodiments, the server 16 is configured using fixed circuitry rather than programmed circuitry and, in further embodiments, a mix of programmed and fixed circuitry is used to implement the server functionality.
In an example implementation, the server 16 is configured to track or otherwise obtain playback information for the audio system 12, such that the server 16 knows the identity of the musical piece currently being played back by the audio system 12. In one example, the audio system 12 operates under control of the server 16 and the server 16 therefore has deterministic knowledge of which piece of music is being played back by the audio system 12 at any given time. For example, the server 16 may offer a jukebox or party mode in which users may input song requests, etc. In other embodiments, the audio system 12 may operate autonomously, but here the server 16 at least has a communication link with the audio system 12—or an audio system controller—and thereby knows which musical piece is currently being played back by the audio system 12 at any given time.
Further, the server 16 in this example configuration is configured to communicatively link with the wireless device 10 and to interpret a “generic” identification request from the wireless device 10 as a request for the identity of the musical piece that is currently being played back by the audio system 12. The request is labeled “generic” because it does not include any song information, any captured audio data, or otherwise carry any information that is specific to any musical piece, much less any information that is specific to the musical piece currently playing from the audio system 12. Thus, the server is configured to determine, or it already knows, the identity of the musical piece that is being played back by the audio system 12 at the time it receives the generic identification request, and is further configured to send a return response—return information—to the requesting wireless device 10, in which the return response includes identification information for the musical piece.
Turning to the wireless device 10, the example shown in
The wireless device 10 further comprises a processing circuit 42, which includes or is associated with memory/storage 44. The processing circuit 42 comprises fixed or programmed circuitry, or a mix of fixed and programmed circuitry. More broadly, the processing circuit 42 comprises digital processing circuitry, such as one or more microprocessor-based circuits and/or circuitry comprising any one or more of DSPs, FPGAs or other programmable logic devices, and ASICs. In at least one embodiment, the processing circuit 42 is specially adapted to carry out the device-side processing disclosed herein, based on its execution of computer program instructions comprising a computer program 46. In this regard, the memory/storage 44 will be understood as including a computer-readable medium providing non-transitory storage for the program 46. For example, the memory/storage 44 includes FLASH or EEPROM, or other non-volatile memory circuits, and may further include working memory, such as SRAM.
Regardless of these implementation details, the wireless device 10 is configured to obtain identification information for a musical piece. As noted, the wireless device 10 includes the aforementioned user interface 30, communication interface 36, and processing circuit 42. The processing circuit 42 is configured to detect a triggering input initiated by the user via the user interface 30, and, responsive to the triggering input, initiate communication with a server 16 via the communication interface 36. Here, it will be understood that the server 16 may be as previously described.
For initiating communication with the server 16, the processing circuit 42 is configured to send a generic identification request to the server 16 that is interpreted by the server 16 as an identification request for a musical piece currently being played back on an external audio system 12 proximate to the user—see the example of
In one or more embodiments, the communication interface 36 comprises a short-range wireless communication circuit, e.g., the receiver 38 and the transmitter 40 are configured as short-range wireless communication circuits, and the processing circuit 42 is configured to initiate the communication with the server 16 by initiating at least one of discovery and pairing via short-range wireless communication. The discovery and/or pairing comprise, for example, the discovery and pairing operations defined by the BLUETOOTH protocols, and the processing circuit 42 is configured to initiate communication with the server 16 by initiating a BLUETOOTH session with the server. Correspondingly, the processing circuit 42 is configured to send the generic identification request after any discovery and pairing is completed.
In some embodiments, the processing circuit 42 is configured to detect a retrieval action via the user interface 30 and/or the communication interface 36, and to output the stored identification information from the wireless device 10 in response to detecting the retrieval action. For example, the processing circuit 42 is configured to perform at least one of: output signaling corresponding to the identification information, to a display unit 34 of the user interface 30, for displaying the identification information to the user; and output signaling corresponding to the identification information, via the communication interface 36, for receipt by an external device—not shown in
In the same or other embodiments, the processing circuit 42 is configured to detect a synchronization input from the user and to provide the identification information for the musical piece to a music application or external device—not shown in
Of course, the button 32 may be a physical actuator of essentially any type, e.g., momentary contact switch, slider contact, rotatable knob, etc., which may be interfaced with the processing circuit 42 directly or indirectly, e.g., through a transistor-based pull-up circuit that provides a voltage signal to a discrete input of the processing circuit 42 that alternates between high and low logic levels responsive to actuation of the button 32. On the other hand, the button 32 may be a virtual button, such as a soft button depicted on a display unit or a touchscreen button shown on a touchscreen-capable display unit—e.g., the display unit 34 shown in
With momentary reference to
In
Turning back to the context of
Because the contemplated device-side functionality can be implemented in a dedicated device, such as the pen of
According to the illustrated example, the method 200 is directed to obtaining identification information for a musical piece and “begins” with the wireless device 10 detecting (Block 202) a triggering input from a user of the wireless device 10. Here, “detecting” may comprise waiting in a low power or standby state, e.g., where the triggering input comprises or initiates an interrupt or wake-up signal. By way of example, the triggering input is detected by the user pressing the button 32, in response to hearing a song or other musical piece being played back by an audio system 12 proximate to the user.
If the triggering input is not detected (NO from Block 202), the method 200 may entail the wireless device 10 remaining in a standby or sleep state. If the triggering input is detected (YES from Block 202), the method 200 continues with initiating (Block 204) communication with a server (16). The communication initiation includes sending (Block 204A) a generic identification request to the server 16 that is interpreted by the server 16 as an identification request for a musical piece currently being played back on an external audio system 12 proximate to the user. Absent communication delays or other issues, the musical piece currently being played on the audio system 12 should be the same musical piece that prompted the user to make the triggering input to the wireless device 10.
Server communication further includes the wireless device 10 receiving (Block 204B) a return response from the server 16 that includes identification information for the musical piece. Correspondingly, the method 200 continues with storing (Block 206) the identification information in the wireless device 10, for identifying the musical piece to the user and/or a music application.
In some embodiments, the method 200 further comprises, in response to detecting (Block 208) a synchronization input, providing (Block 210) the identification information for the musical piece to a music application. In one or more such embodiments, detecting the synchronization input at Block 208 comprises detecting that the user has pressed and held the button 32 of the wireless device 10 for a defined duration that is longer than a duration used for detecting the triggering input.
The above teachings present an advantageous approach to providing users with music identification, while obviating the need for unreliable and/or expensive audio data capture and analysis, as is required for fingerprint-based music identification applications and services. In this regard, the wireless device 10 may have simple hardware—e.g., the pen-style implementation—or may be based on only simple, low-load processing and communications within a smartphone, tablet or other portable computing device. By seamlessly pairing with a server 16 responsive to a triggering input, where the server knows which musical piece is currently being played back, the wireless device 10 obtains reliable, robust music identification from the server 16.
In an example scenario, the server 16 is local to the audio system 12 that is playing the musical piece heard by the user of the wireless device 10. Thus, in response to the triggering input, the wireless device 10 performs discovery and pairing operations, by which it recognizes and connects to the server 16, and obtains identification information for the musical piece. Note that Machine Type Communications, MTC, may be used between the wireless device 10 and the server 16, or between the wireless device 10 and an external system to which the wireless device 10 may connect for synchronization purposes. In one example, the server 16 comprised is part of a music jukebox system that is configured for Machine-to-Machine, M2M, communications, thus allowing MTC-based signaling between the server 16 and the wireless device 10 or any other appropriately configured device.
In response to receiving the generic identification request from the wireless device 10, the server 16 generates a return response that includes identification information for the song or other musical piece currently being played back by the audio system 12, and it sends the return response to the wireless device 10. The wireless device 10 receives the return response from the server 16, which includes at least identification information for the musical piece, and it stores the returned information at least temporarily, for providing it to the user and/or a music application. The wireless device 10 may continue receiving and storing identification information from the server 16, for one or more musical pieces that are subsequently played back by the audio system 12.
Further, in response to detecting a synchronization input, which may occur shortly after receiving the return response, or some later time thereafter, the wireless device 10 carries out synchronization function processing, whereby it provides the identification information, and possibly other information such as purchase links, lyrics, etc., to a music application 50, which may be on the wireless device 10, or which may be on an external device 52, such as a PC or other device having ITUNES or another music application on it. Note, too, in some embodiments, the wireless device 10 is configured to perform synchronization periodically and/or automatically. For example, the wireless device 10 performs periodic synchronization for cases where the music application 50 is hosted on the wireless device 10 and thus locally accessible by way of API or other inter-application signaling within the wireless device 10. In another example, the wireless device 10 automatically performs synchronization responsive to a compatible external device 52 being communicatively coupled to the wireless device 10 or otherwise responsive to such a device being detected as available.
Still further, in some embodiments it is contemplated that the identification information and other information provided by the server 16 for one or more musical pieces is provided in an eXtensible Markup Language, WL, format. Even if the information return from the server 16 is not in XML format, the wireless device 10 in one or more embodiments stores such information as XML data, or at least converts such information to XML data, for outputting to the music application 50 and/or the external device 52.
The wireless device 10, e.g., by way of program instructions in the computer program 46, also may incorporate social media interactions. In some embodiments, detection of the trigger input causes the wireless device 10 to tweet a location and/or event information via the TWITTER messaging service. The tweet may be deferred until identification information is available, so that the tweet includes identification of the musical piece that cause the user to make the triggering input to the wireless device 10. In the same or other embodiments, the triggering input detection initiates one or more social media check-ins or updates, such as a FACEBOOK status update.
It will be appreciated that the wireless device in more sophisticated implementations may have TWITTER, FACEBOOK and other social media apps installed, such that the computer program 46 can interact with social media apps directly or through operating system hooks. In other embodiments, such as where the wireless device 10 has a pen-like or other minimalist implementation, social media interactions may be initiated by the wireless device 10 based on BLUETOOTH or communication link to a smartphone, tablet, or computer of the user.
Notably, modifications and other embodiments of the disclosed invention(s) will come to mind to one skilled in the art having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the invention(s) is/are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of this disclosure. Although specific terms may be employed herein
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/SE2014/050262 | 3/4/2014 | WO | 00 |