Audible proximity messaging

Methods, systems, and computer program products for providing audible proximity messaging are disclosed. A computer-implemented method may include receiving a message for communication to one or more users, receiving a keyword associated with a message, analyzing an audio track to determine whether the keyword exists in the audio track, matching the keyword to the audio track, identifying one or more locations of the keyword in the audio track, converting the message to an audible format, determine whether to provide the message to a user based on one or more conditions associated with the user, and providing the message to a user when the keyword is played during the audio track. In some examples, the message may be an audio message played when the keyword plays in the audio track based on one or more of a user preference, a user location, a current user activity, and/or other factors.

TECHNICAL FIELD

The present disclosure generally relates to computer systems and, more particularly, to providing audible proximity messaging using computer systems.

BACKGROUND

The convergence of portable computing devices, online and streaming music services, and seemingly ubiquitous internet access allows users to access audio content from around the world in virtually any location. In addition, wearable computing devices, such as wireless headphones and wireless earbuds, provide users with added convenience and continue to grow in popularity. As such, the consumption of audio content and the importance of audio content in the lives of users will continue to increase. Therefore, new and improved ways of communicating with users through audio content is of importance.

DETAILED DESCRIPTION

Systems, methods, and computer program products are disclosed for providing audible proximity messaging in audio and other types of content.

In an example, an audible message provider receives an audible message from a source seeking to provide the message to one or more users. The message provider further receives a keyword associated with the audible message for determining where to play the audible message in audio content of a user. The audible message provider analyzes an audio track to determine whether the keyword exists in the audio track, matches the keyword to content of the audio track, and identifies one or more locations of the keyword in the audio track.

In an example, the audible message provider may convert a non-audible message, such as a textual message, to an audible format capable of being played to a user. The audible message provider determines whether to provide an audible message to a user based on one or more of user preferences, user interests, user location, user needs, a current user activity, etc. The audible message provider then plays the audible message to a user when the keyword is played during the audio track. For example, the audio message provider may blend the audible message with an original audio track at a location where the keyword occurs. The audio message provider also may replace a portion of an original audio track with a selected audio message.

Accordingly, aspects of the present disclosure provide users with audio messages of interest during playing of an audio track based on content of the audio track and factors pertaining to user interests, location, and activity.

FIG. 1illustrates an exemplary system architecture100in which examples of the present disclosure may be implemented. System architecture100includes one or more server machine(s)110, one or more data store(s)180, one or more client machine(s)102A, one or more clients audio device(s)102N, and one or more message communicator(s)190connected via one or more network(s)104.

Network(s)104may be public networks (e.g., the Internet), private networks (e.g., local area networks (LANs) wide area networks (WANs)), or any combination thereof. In an example, network(s)104may include the Internet, one or more intranets, wired networks, wireless networks, and/or other appropriate types of communication networks. In one example, network(s)104may comprise wireless telecommunications networks (e.g., cellular phone network) adapted to communicate with other communication networks, such as the Internet. Network(s)104also may include one or more short-range wireless networks or beacon networks.

A beacon generally refers to a short-range communication device having a known or fixed location. A beacon usually provides a signal that can be detected by mobile devices within a certain proximity of the beacon. Various beacon types include radio frequency (RF) beacons (e.g., Bluetooth™ low energy (BLE) beacons), infrared beacons, and radio frequency identifier (RFID) tags. For example, BLE beacons may broadcast an RF signal that includes position coordinates (e.g., latitude, longitude, altitude), which can be detected by a mobile device. In some examples, a beacon also may advertise location-based services available on a beacon network. Generally, a beacon network usually encompasses a plurality of beacons in a geographic area.

In an example, when a mobile computing device first makes contact with a beacon in a beacon network, the beacon may transmit a list of unique identifiers of other beacons in the network and other information about the beacon network to the mobile computing device. Beacon networks may be located in any geographic area including businesses (e.g., shopping malls, retail stores, restaurants, etc.), landmarks (e.g., museums, airports, parks, entertainment venues, etc.), office buildings, government buildings, schools, universities, homes, and in any other environments where short-range communication and/or location-based services may be desired.

Data store(s)180refers to persistent storage capable of storing various types of data, such as text, audio, video, and image content. In some examples, data store(s)180may include a network-attached file server, while in other examples data store(s)180may include other forms of persistent storage such as an object-oriented database, a relational database, and so forth.

Client machine(s)102A may be personal computers (PC), laptops, mobile phones, tablet computers, server computers, wearable computing devices, or any other type of computing device. Client machine(s)102A may run an operating system (OS) that manages hardware and software of the client machine(s)102A. A browser (not shown) may run on the client machines (e.g., on the OS of the client machines). The browser may be a web browser that can access content and services provided by web server(s)120of server machine(s)110. Other types of computer programs and computer scripts also may run on client machine(s)102A.

Client machine(s)102A may include one or more audio device(s)106A, one or more forms or types of audio content108A (e.g., sound recordings, video with sound, streaming media with sound, etc.), one or more instances or copies of audio content108A tracks, and audible messaging system130A. Audible messaging system130A includes request processor module140A, audio analyzer module150A, message converter module160A, and message provider module170A.

In an example, an audible messaging system (e.g., audible messaging system130) may include one or more of a request processor module140, an audio analyzer module150, a message converter module160, and a message provider module170. In some examples, functionality associated with request processor module140, audio analyzer module150, message converter module160, and message provider module170may be combined, divided, and organized in various arrangements on one or more computing devices.

In an example, a client machine102A is coupled to one or more audio device(s)106A. Audio devices106A generally refer to any computing or non-computing device capable of playing audible information (e.g., sound, music, speech, etc.) to a user. Examples of audio device(s)106A generally may include speakers, earbuds, wired headphones, wireless headphones, sound systems, stereos, computer systems, musical instruments, self-contained audio devices, etc.).

Client machine(s)102A may be connected to one or more audio device(s)106A, for example, directly or wirelessly (e.g., via Bluetooth). Audio device(s)106A may include one or more external speakers (e.g., external computer speakers, external headphones coupled to a computing device, home theater system speakers, automobile stereo speakers, etc.). Client machine(s)102A also may include one or more internal audio device(s)106A that are embedded in, incorporated into, or manufactured as part of a computing device (e.g., internal speakers of a television, personal computer, laptop, tablet, smartphone, smart glasses, smart headphones, smart earbuds, “smart ear” devices (also sometimes referred to as “hearable devices”), and other various types of wearable computing devices, etc.). Audio device(s)106A also may include one or more microphones for recording and storing sound data.

Audio content108A generally refers to any content that includes or incorporates sound. For example, audio content108A may include sound recordings and audiovisual works that include sound. Audio content108A also may include content that has been or that can be converted to audible content. For example, audio content108A also may include text that has been or can be converted to sound, speech or some other form of audible content. In general, audio content108A may be recorded, transmitted to different locations, received, stored, played, converted to different formats, etc.

Audio content108A generally may be provided in one or more formats or types. General examples of audio content may include songs, albums, television programs, movies, airwave radio content, internet radio content, user sound or video recordings (e.g., available via a content sharing service or a social networking service), downloaded music, streaming music, downloaded video, streaming video, narration, audio books, audio magazines, text-to-speech content, high-definition content, standard definition content, encrypted content, unencrypted content, partially encrypted content, etc. In general, a specific instance or version of audio content108A managed by a user, or played by a user, may be referred to as an “audio track.” Audio tracks may be stored and played both locally or remotely by a user. A user also may play audio tracks streamed from a remote content source or other content provider.

Client audio device(s)102N include audible messaging system130N and audio content108N. Client audio device(s)102N generally refer to standalone devices capable of playing sound to a user. For example, client audio device(s)102N may play audio and/or various multimedia tracks to a user directly without relying on another computing device of the user. For example, smart headphones or smart earbuds may play locally stored audio tracks and/or audio tracks received directly over a network104. Other examples of client audio devices include, but are not limited to portable internet radio players, portable handheld game devices, etc. Thus, client audio device(s)102N generally are not tethered to, coupled to, or rely on a different local computing device (e.g., a desktop computer) as a source of audio content108N. As such, client audio device(s)102N generally are capable of storing, accessing, and/or receiving audio content108N on their own without assistance from other computing devices.

Message communicator(s)190include keyword(s)192, and message(s)194. Message communicators190generally describe one or more entities seeking to provide one or more messages to various users. For example, message communicators190may include one or more different users, for-profit entities, nonprofit entities, schools, universities, businesses, merchants, retailers, financial institutions, product providers, service providers, sports teams, charities, religious organizations, medical institutions, weather services, media outlets, public figures, celebrities, actors, actresses, music artists, online entities, social media outlets, politicians, local government organizations, state government organizations, federal government organizations, international government organizations, etc.

In an example, message communicators190seek to provide messages to a user based on one or more of an existing relationship between a message communicator190and the user, a likely relationship between a message communicator190and the user, a location of the user, an indicated interest of the user, a detected need of the user, a need indicated by the user, a detected activity of the user, an indicated activity of the user, etc. Message communicators190generally may send a message to one or more individuals or groups of individuals at one time or at various different times.

Keyword(s)192generally refers to one or more symbols, numbers, characters, words, and/or phrases that each respective message communicator190in a plurality of message communicators190wishes to associate with content (e.g., audio content108, audio content108A, audio content108N). Messages194generally refer to one or more text, audio, and/or video messages that a respective message communicator190wishes to provide to users of client machines102A and client audio devices102N.

Server machine(s)110may include one or more web server(s)120. Web server(s)120may provide text, audio, image, and video content from server machine(s)110or other sources (e.g., data store(s)180) to client machine(s)102A and client audio device(s)102N. Web server(s)120also may provide web-based application services, business logic, and updates to client machine(s)102A and client audio device(s)102N. Client machine(s)102A and client audio device(s)102N may locate, access, and consume various forms of content and services from web server(s)120using applications, such as a web browser, web servers, application servers, computer programs, etc. Web server(s)120also may receive text, audio, video, and image content from client machine(s)102A and client audio device(s)102N, for example, that is saved in data store(s)180for preservation and/or sharing of content.

In an example, a web server120is coupled to one or more application servers (not shown) that provide application services, data, and/or APIs to client machine(s)102A and client audio device(s)102N. In one example, web server(s)120may provide client machine(s)102A and client audio device(s)102N with access to one or more application services associated with a server-based audible messaging system130. Such functionality also may be provided, for example, as part of one or more different web applications, standalone applications, system, plug-ins, web browser extensions, and application programming interfaces (APIs). In some examples, plug-ins and extensions also may be referred to, individually or collectively, as “add-ons.”

In an example, some client machine(s)102A and client audio device(s)102N may include applications associated with a service provided by server machine(s)110(e.g., audible messaging system130) and/or content provided by server machine(s)110(e.g., audio content108). For example, one or more device types (e.g., smart phones, smart televisions, tablet computers, smart headphones, smart earbuds, smart wearable devices, smart home computer systems, etc.) may use applications to access content provided by, to issue commands to server machine(s)110, and/or to receive content from server machine(s)110without visiting or using web pages.

In an example, functions performed by server machine(s)110and/or web server(s)120also may be performed by the client machines102A-102N, in whole or in part. In addition, the functionality attributed to a particular component may be performed by different or multiple components operating together. Further, server machine(s)110may be accessed as a service provided to other systems or devices via appropriate application programming interfaces (APIs), and thus are not limited to use with websites.

For example, client machine(s)102A and client audio device(s)102N each may include respective audible messaging systems130A,130N and/or one or more client modules of a respective audible messaging system130A,130N for providing audible proximity message to a user. Server machine(s)110also may include respective audible messaging systems130and/or one or more server modules of a respective audible messaging system130.

In an example, a request processor module140,140A,140N of an audible messaging system130,130A,130N receives one or more keywords192from each of one or more message communicators190seeking to communicate with one or more users at a present or future time. In an example, keywords192refer to one or more numbers, symbols, characters, words, or phrases that a message communicator190uses to associate one or more messages194to various content available to and consumed by users. For example, keywords192(e.g., “blue”, “dog”, “food”, “shoes”, “jeans”, “glasses”, “sun”, “happy”, etc.) may be matched to one or more instances of literal, similar, or associated language, sound and imagery in various content, such as text, audio, image and video content.

In an example, a message communicator190sends a request processor module140,140A,140N of an audio messaging system130,130A,130N one or more keywords192to locate in one or more audio tracks. An audio messaging system130,130A,130N then may locate keywords192in various audio tracks and play one or more messages associated with respective keywords192to a user in one or more of the audio tracks (e.g., before, during or after a keyword192is played in an audio track).

In an example, a request processor module140,140A,140N of an audible messaging system130A,130N receives one or more messages194associated with a keyword192to provide to one or more different users. For example, a request processor module140,140A,140N may receive one or more messages194associated with various keywords192from one or more different message communicators190. In some examples, various audible messaging systems130,130A,130N may store messages194and transmit messages194to various other audible messaging systems130,130A,130N. Messages194may include any combination of audio, textual, image, and/or video messages.

In an example, message communicators190send keyword(s)192and one or more corresponding messages194together as the same time. Message communicators190also may send keywords192and associated messages194at different times, for example, in short succession as part of the same transaction, or across different transactions over a period of time. In one example, a message communicator190may send a keyword192to an audible messaging system130,130A,130N provider to have a keyword192matched to one or more audio tracks available to one or more users. Message communicators also may operate their own audible messaging system (e.g., audible messaging system130, for example, on a beacon network, Wi-Fi network, or other types of networks104).

In an example, message communicators190each may provide bids on keywords192. For example, bids may indicate an amount that message communicators190offer to pay an audible messaging system130,130A,130N provider for sending one or more message194to various client machines102A and client audio devices102N. In some examples, keyword192bids provided by a plurality of message communicators190are used to determine which message communicator190message194is to be provided to a user (e.g., highest bidder for a keyword, overall highest revenue generator for one or more periods, etc.).

In an example, an audio analyzer module150,150A,150N of an audible messaging system130,130A,130N analyzes content to identify keywords192used in or associated with the content. For example, an audio analyzer module150,150A,150N may analyze one or more sources of content (e.g., audio content, textual content, image content, video content, etc.) to determine whether an association exists between one or more keywords192and the content.

In an example, an audio analyzer module150,150A,150N determines whether one or more keywords192exist in an audio track (e.g., a song, an audio recording, a speech, music video, musical performance, etc.) by examining one or more aspects of the audio track. For example, an audio analyzer module150,150A,150N may analyze data or metadata associated with an audio track to identify one or more instances of keyword192in an audio track.

Audio track data may include, but is not limited to, audio track words, lyrics, transcripts, sounds. Audio track metadata may include, but is not limited to, data identifying and/or describing an audio track. Audio track metadata may include a title, an artist, a description, an index of words and/or concepts are used in the audio track, a mapping between where instances of words and/or concepts are used in an audio track, and corresponding timing information or location information about where specific keyword192matches occur in a track.

In an example, an audio analyzer module150,150A,150N matches keyword(s)192to at least one part of an audio track. For example, an audio analyzer module150,150A,150N may search audio track text and/or sound of an audio track (e.g., using speech or sound recognition) to find exact, similar, fuzzy, wild card, Soundex, phonetic, related, and/or synonymous keyword192matches within the audio track.

In an example, an audio analyzer module150,150A,150N identifies one or more locations where a keyword192match is found in an audio track. For example, audio analyzer module150,150A,150N may identify locations based on timing of where the keyword192match occurs in an audio track, such as one or more of audio track ID, a start time, a duration, and an end time of the keyword match (e.g., audio track three of six, start time at minute two (2:00) of audio track three, duration of three seconds (0:03), end time at minute two and three seconds (2:03) of audio track three).

An audio analyzer module150,150A,150N also may identify locations based on position of characters, words, phrases, sentences, paragraphs, and pages in relation to other characters, words, phrases, sentences, paragraphs and pages. (e.g., word 8 of sentence 3 of paragraph 2, on page 1). Such location information may be expressed and represented in various ways so as to identify a keyword192match present in an audio track. Further, an audio analyzer module150,150A,150N may keep a count of various keyword192matches and other related statistics, for example, to provide to message communicator(s)190or to perform valuation of various available audio tracks based on keywords sought for use by message communicators190.

In an example, a message converter module160,160A,160N of an audible messaging system130,130A,130N performs one or more different conversions involving message communicator190messages194. For example, a message converter module160,160A,160N may convert a message194between different formats, such as from text to sound, from sound to text, between languages, between different versions of content formats (e.g., text formats, audio formats, image formats, video formats), etc.

In some examples, a message converter module160,160A,160performs conversions involving one or more messages194prior to when a message194is played to a user (e.g., before content is presented to a user, before an audio track is played to a user). A message converter module160,160A,160also may perform conversions involving one or more messages194near or at a time when the message is played to the user (e.g., when content is being presented to a user, when an audio track is being played to a user). For example, message conversions may be performed in real-time or substantially in real-time (e.g., under a second, within one tenth of a second, within one hundredth of a second, etc.).

In an example, a message provider module170,170A,170N of an audible messaging system130,130A,130N provides one or more messages194from at least one message communicator190to a user when a keyword192match exists in an audio track. For example, a message provider module170,170A,170N may blend an audio message194with content of an audio track at a location corresponding to a keyword192match as the audio track is played to a user.

A message provider module170,170A,170N, for example, also may replace sound of the audio track when the audio message194plays during the audio track at a location corresponding to a keyword192match. In addition, a message provider module170,170A,170N may play an audio message194, for example, prior to or after a location of a keyword192match in an audio track. Thus, an audio message194generally may be played in relation to a location where a keyword192match occurs and is not limited to being played at an exact location or time of a keyword192match.

In an example, a message provider module170,170A,170N provides audio messages194to a user based on information provided by a message communicator190. For example, a message communicator190may indicate when to play audio messages194in an audio track (e.g., based on an artist or other individual in the audio track, based on an author of the audio track, based on a source of the audio track, based on a provider of the audio track, and/or based on various other aspects of the audio track), where to play audio messages194in an audio track (e.g., the first instance, the third instance, the final instance, during the first verse, during the second verse, during the final verse, during a chorus, during the first chorus, during the final chorus, at the beginning, at the end, etc.), and/or a minimum, recommended, or maximum number of times an audio message194is to be played during the audio track (once, twice, five times, unlimited, etc.).

In an example, a message provider module170,170A,170N selects a message194from a plurality of available messages194associated with the keyword192. For example, a message provider module170,170A,170N may select a message194from multiple messages192provided by a single message communicator190or different message communicators190. In one example, a message provider module170,170A,170N selects a message194for a keyword192sought by different message communicators190based on keyword192bids offered by message communicators190, based on predetermined priority of the message communicators190(e.g., according to a service level agreement, a contractual obligation, a partnership, etc.), or based on a priority assigned to a message194by a message communicator190(e.g., urgent, emergency, high, etc.). In one example, a message provider module170,170A,170N may alternate or rotate delivery of message communicator190messages194across one or more instances of use and/or different users.

In an example, a message provider module170,170A,170N determines whether to provide a message194to a user. For example, a message provider module170,170A,170may determine whether or not to provide a message194to a user based on one or more of indicated user preferences, detected user preferences, user feedback, indicated user needs, detected user needs, a previous location of the user, a current location of the user, a next location of the user, a live or virtual event attended by the user, and/or a current or detected activity of the user.

In an example, a message provider module170,170A,170N provides a message194to a user based on a location of the user. For example, a message provider module170,170A,170N associated with a merchant, retailer, or other business may send certain content or messages194(e.g., promotions, incentives, etc.) to a user detected or present at a location (e.g., store, kiosk, etc.). In one example, a message provider module170,170A,170N provides a message194relating to a specific message communicator190(e.g., merchant, retailer, etc.) when a user is detected (e.g., detected on network104such as a WiFi or beacon network104) or reports at a location of the message communicator190.

In some examples, a beacon network104or positioning information may indicate a particular aisle, floor, region, department, or other area where a user is located when the user is at or within a location of a message communicator190. In such examples, a message provider module170,170A,170N may provide certain content or messages relating to specific products or services available at or near a particular location (e.g., aisle, floor, region, department, etc.) within the location of a message communicator190. For example, a user detected in a television department of an electronics retailer may receive messages194relating to televisions instead of laptops, vacuums, other devices sold by the electronics retailer.

FIG. 2is a flow diagram for providing audible proximity messaging, according to an example of the present disclosure. The method200may be performed by processing logic that may comprise hardware (circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a general purpose computer system, dedicated machine, or processing device), firmware, or a combination thereof. Examples in the method200are described with respect to audible messaging system130for the sake of consistency and also generally apply to various other audible messaging system130A,130N examples discussed herein.

Method200begins at block202when request processor module140of audible messaging system130receives a keyword192associated with a message194. In an example, request processor model140receives one or more keywords192from a message communicator190seeking to communicate with a user. For example, a message communicator190may wish to inform a user about a promotion, offer, event, situation, or alert relating to the location or interests of the user. In an example, request processor module140receives one or more keywords192from message communicator190to locate in one or more audio tracks and/or other types of content.

In an example, request processor module140receives one or more keywords192and one or more messages194to be used in relation to the keywords192from a message communicator190together at the same time. Request processor module140also may receive keywords192and associated messages194at different times. For example, keywords192may be received first to perform keyword192matching on audio tracks. Associated messages194then may be received later, for example, when a message194is available, when a specific message194is determined for a user, or when a message194is substituted with a new or different version. Request processor module140may receive keywords192and messages194from message communicators190over any of one or more network(s)104, including beacon networks, Wi-Fi networks, or any other types of networks104.

At block204, audio analyzer module150of audible messaging system130matches the keyword192to at least one portion of an audio track. In an example, audio analyzer module150analyzes one or more tracks of audio content108to identify keywords192used in the audio content108. For example, audio analyzer module150may search for a keyword192match in the audio content108based on one or more of an exact match, a similar word search, a fuzzy search, a wild card search, a Soundex query, a phonetic comparison, a related word, a synonymous word, etc.

In an example, audio analyzer module150analyzes audio content108data and metadata to identify one or more instances of a keyword192matches in the audio content108. Audio analyzer module150may analyze a stored audio track, for example, before or when the stored audio track is played. Audio analyzer module150also may analyze an audio track streamed over a network104, for example, before or during transmission of a streamed audio track.

In an example, audio analyzer module150identifies one or more locations where a keyword192match occurs in an audio track for a keyword192. For example, audio analyzer module150may identify timing of one or more locations within an audio track where a keyword192match occurs in an audio track. In some examples, audio analyzer module150may insert a metadata placeholder into an audio track or associate metadata with an audio track, the metadata comprising information about one or more keyword192matches occurring at a particular location or throughout an audio track.

At block206, message provider module170of audible messaging system130provides the message194to a user when the matching keyword192is played in the audio track. In an example, message provider module170provides an audible message194associated with a keyword192match in an audio track to a client machine102A or a client audio device102N of a user. In some examples, an audible message provider module170may send an audible message to a user's smartphone, smart headphones, smart earbuds, or other type of computing device. Further, message provider module170may provide one or more messages194to a user in various forms including, but not limited to, audio messages, textual messages, multimedia messages, instant messages, push notifications, etc.

In an example, message provider module170sends one or more messages194from a message communicator190seeking to communicate with a user when a keyword192match occurs in an audio track played by the user. For example, a message provider module170may blend an audio message194with content of an audio track at a location of a keyword192match or replace a portion of an audio track with the audio message194at the location of the keyword192match.

In an example, a user may create and maintain one or more user profiles or preference settings that indicate information about a user's desire to receive audio messages194from message communicators190. For example, a user may have work, home, driving, exercising, shopping, sleeping, do not disturb, or other user profiles or preference settings. In one example, the user may indicate in work, exercising, sleeping, and do not disturb profiles or preference settings that the user does not wish to hear message communicator190messages194. Thus, message provider module170may filter or suppress message communicator190messages194based on one or more user profiles or preference settings. On the other hand, a user may indicate a desire to hear message communicator190messages194at home or when shopping, and message provider module170then passes such messages194along to the user accordingly.

FIG. 3is a flow diagram for providing audible proximity messaging during one or more locations of an audio track, according to an example of the present disclosure. The method300may be performed by processing logic that may comprise hardware (circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a general purpose computer system, dedicated machine, or processing device), firmware, or a combination thereof. Examples in the method300are described with respect to audible messaging system130for the sake of consistency and also apply to various other audible messaging system130A,130N examples discussed herein.

Method300begins at block302when request processor module140of audible messaging system130receives one or more audible messages194associated with a keyword. In an example, request processor model140receives one or more keywords192from a message communicator190seeking to provide a message194to a user. In one example, request processor module140receives one or more keywords192and one or more messages194from a message communicator190at the same time, or at different times. Request processor module140may receive keywords192and messages194from message communicators190over any of one or more network(s)104, including beacon networks, Wi-Fi networks, or other types of networks104. In some examples, request processor module140receives keywords192and messages194from a merchant seeking to communicate with one or more users at a shopping location.

At block304, audio analyzer module150of audible messaging system130analyzes one or more aspects of an audio track. In an example, audio analyzer module150searches one or more audio tracks to identify keywords192or keyword192matches within audio tracks. In an example, audio analyzer module determines whether one or more keywords192exist in an audio track by examining one or more aspects of the audio track. For example, audio analyzer module150may analyze data or metadata associated with an audio track to identify one or more instances of keyword192in the audio track. In some examples, keywords192may be provided by a merchant seeking to offer one or more products, services, promotions, advertisements, coupons, or other information to a user via an audible message194played to the user at an occurrence of a keyword192during an audio track.

At block306, audio analyzer module150of audible messaging system130matches the keyword192to at least one location of the audio track. In an example, audio analyzer module150matches a merchant-supplied keyword192to text, sound, imagery, data or metadata associated with one or more different types of content based on an exact match, a similar word search, a fuzzy search, a wild card search, a Soundex query, a phonetic comparison, a related word, a synonymous word, sound recognition, speech recognition, image recognition, etc.

In an example, audio analyzer module150identifies one or more locations or points within an audio track where keyword192matches are found. For example, audio analyzer module150may identify timing of locations of keyword192matches in an audio track. In some examples, audio analyzer module150records timing and other information associated with keyword192matches in an audio track, for example, in a timing index of keywords192in an audio track to provide efficient future reference and utilization of such information (e.g., in real-time or near real-time).

At block308, message provider module170of audible messaging system130determines whether to play one of the audible messages to a user. In an example, message provider module170determines whether to play in audible message194to a user based on one or more of user preferences, user feedback, user needs, user location, presence of a user at a live or virtual event, and/or based on an activity of a user. In one example, message provider170determines to play an audible message194from a merchant to a user at a location of the keyword192match in an audio track played by the user. For example, message provider170may play an audible message194to a user when the user is detected at a merchant location or on a wireless network104of a merchant, and the user is accepting audible messages194based on current user profile and preference settings.

At block310, message provider module170of audible messaging system130selects one of the audible messages194to play to the user. In an example, message provider module170analyzes one or more available audible messages194to play to a user during an audio track. For example, message provider module170may analyze one or more available audible messages194for the same keyword192or for different keywords192in an audio track. In one example, message provider module170selects one or more audible messages194to play to user based on user interests, user location, user needs, or current user activity. In some examples, message provider module170selects between one or more audible messages194based on a monetary bid offered by one or more message communicators to provide an audible message194to a user.

At block312, message provider module170of audible messaging system130plays the selected audible message to the user at a time when the keyword is to play the audio track. In an example, message provider module170inserts one or more audio messages194at various locations in an audio track where a related keyword192match occurs. For example, message provider module170may substitute a portion of the audio track with an audio message194at the time of a related keyword192match in an audio track. Message provider170also may perform a blending of both the associated audio message194and an original audio track (e.g., audio blending, mixing, overlaying, etc.) at the time of a related keyword192match in the audio track, for example, based on a message communicator190or user preference. In one example, message converter module160converts a textual content to an audible message194that message provider170plays to the user.

The exemplary computer system400includes a processing device (processor)402, a main memory404(e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDR SDRAM), or DRAM (RDRAM), etc.), a static memory406(e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device418, which communicate with each other via a bus430.

The computer system400also may include a network interface device408. The computer system400may further include a video display unit410(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device412(e.g., a keyboard), a cursor control device414(e.g., a mouse), and a signal generation device416(e.g., a speaker).

The data storage device418may include a computer-readable storage medium428on which is stored one or more sets of instructions422(e.g., software computer instructions) embodying any one or more of the methodologies or functions described herein. The instructions422also may reside, completely or at least partially, within the main memory404and/or within the processor402during execution thereof by the computer system400, the main memory404and the processor402also constituting computer-readable storage media. The instructions422may be transmitted or received over a network420via the network interface device408.

In one example, the instructions422include instructions for one or more modules of an audible messaging system (e.g., audible messaging system130ofFIG. 1) and/or a software library containing methods that call an audible messaging system. While the computer-readable storage medium428(machine-readable storage medium) is shown as an example to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” also may include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.

Numerous details are set forth in the foregoing description. However, it will be apparent to one of ordinary skill in the art having the benefit of this disclosure that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, to avoid obscuring the present disclosure.

Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. Here, an algorithm is generally conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.