Managing audio in a multi-source audio environment

Methods, systems, and computer-readable media provide for the management of an audio environment with multiple audio sources. According to various embodiments described herein, real-time audio from multiple sources is received. A speaker is identified for each of the audio sources. Upon detecting a change from a first audio source to a second audio source, an identification of the speaker associated with the second audio source is provided. According to various embodiments, a recording of the real-time audio may be made and descriptors inserted to identify each speaker as the audio source changes. Real-time feedback from the speakers regarding characteristics of the audio may be received and corresponding adjustments to the audio made.

TECHNICAL FIELD

This application relates generally to the field of managing audio content. More specifically, the disclosure provided herein relates to the management of an audio environment having multiple audio sources.

BACKGROUND

Conference calls and meetings are common practices throughout many types of businesses all over the world. A typical conference call may include multiple telephone lines corresponding to multiple business locations. At each business location, there may be multiple speakers in the room, each contributing to the conversation. When participating in a conference call, it may be difficult to identify the person that is speaking at any given time. This is particularly true when there are a large number of call participants and when the call participants are not all familiar with one another. Additionally, there is often a wide range of volume and audio quality levels associated with various call participants and telephone lines.

SUMMARY

Methods, systems, and computer-readable media are provided herein for managing audio from multiple sources. According to embodiments described herein, audio is received in real-time from multiple audio sources. A speaker associated with each of the audio sources is identified. When a change from an audio source to a new audio source is detected, an identification of the speaker associated with the new audio source is provided. According to various embodiments, an audio recording of the real-time audio is created. The audio recording may include descriptors identifying each speaker when a change in audio source is detected. The descriptors may be used to identify the current speaker and by a search engine to locate requested audio portions from a repository. Additionally, real-time feedback from the speakers regarding characteristics of the audio may be received and corresponding adjustments to the audio made.

DETAILED DESCRIPTION

The following detailed description is directed to methods, systems, and computer-readable media for managing audio content having multiple audio sources. While the subject matter described herein is presented in the general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of program modules.

Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the subject matter described herein may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.

The subject matter described herein may be practiced in a distributed computing environment where tasks are performed by remote processing devices that are linked through a communications network and wherein program modules may be located in both local and remote memory storage devices. It should be appreciated, however, that the implementations described herein may also be utilized in conjunction with stand-alone computer systems and other types of computing devices.

As discussed briefly above, recognizing the identity of the current speaker during a conference call can be difficult. This is particularly true when the speaker is just one of multiple call participants in a single location utilizing a speaker phone. When utilizing a speaker phone, call participants may be located at various distances from the phone and speak at different volume levels, creating inconsistencies in the audio volume coming from the telephone line associated with the speaker phone. Adding to the audio problems associated with the speaker phone, speaker phones generally pick up ambient noises within the room in addition to the speaker's voice, creating additional audio volume and quality problems.

Embodiments of the disclosure described herein allow for the identification of the current speaker in a conference call scenario. Additionally, embodiments allow for call participants to modify the volume and/or audio quality of the audio associated with any particular speaker during the call. A recording made of the conference call is tagged with descriptors that identify the current speaker and track various audio characteristics, including all modification requests and subsequent modifications to the audio associated with each speaker. The descriptors may be used by a search engine, allowing a user to search for and retrieve audio content corresponding to particular speakers. The descriptors additionally may be used to analyze audio content and create statistical data and related reports. It should be appreciated that for illustrative purposes, the disclosure presented herein describes the various embodiments in the context of a conference call. However, the present disclosure may be applied to any audio source or sources that contain multiple speakers, including but not limited to radio broadcasts, meetings, recorded audio, and any other media.

In the following detailed description, references are made to the accompanying drawings that form a part hereof, and which are shown by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements through the several figures, aspects of an audio management system will be described.FIG. 1shows various elements of an audio management system100according to embodiments described herein. The audio management system100includes speakers102A-102N, communications devices104A-104N, an audio management server106, and an audio repository108.

Each speaker102creates audio that is received by one or more communications device104. Each communications device104includes a microphone for receiving the audio from one or more speaker102. It should be appreciated that each communications device104may be any device capable of receiving audio from a speaker102and providing the audio to an audio management engine110within the audio management server106. The communications devices104A-104N may provide the audio to the audio management server106directly, or via telecommunications equipment. In the example audio management system100shown inFIG. 1, the communications devices104A-104N are wired telephones. In this example, the audio management server106would receive the audio from an element of a telecommunications network. Other examples of communication devices104A-104N include, but are not limited to cellular telephones, digital and tape recorders, and microphones connected directly to the audio management server106. Additionally, as will be described in greater detail below with respect toFIG. 2, each communications device104may include more than one microphone for receiving audio.

The audio management server106includes the audio management engine110and an audio search engine112. The audio management engine110may include software and/or hardware and is operative to identify the speakers102A-102N and further manipulate the corresponding audio in the various manners described below. While the audio management engine110is shown to be executing on the audio management server106, the audio management engine110may alternatively execute on one or more of the communications devices104A-104N, or in combination with an application on one or more of the communications devices104A-104N. The audio search engine112is responsive to user requests for audio data stored within the audio repository108. As will be described in greater detail below with respect toFIG. 4, the audio search engine112is operative to search for and retrieve partial or whole audio files116and management files118, according to descriptors placed within the audio files116and management files118by the audio management engine110.

The audio repository108may be a database or other mass storage device communicatively linked to the audio management server106. It should be appreciated that the audio repository108may be a part of the audio management server106, or may be locally or remotely connected to the audio management server106. The audio repository108includes identified voice prints114, audio files116and management files118. The identified voice prints114may include voice samples, as well as spectrograms or other voice analysis results corresponding to the speakers102A-102N. As will be described in detail below, the identified voice prints114are used by the audio management engine110to recognize and/or identify the speakers102A-102N through voice print comparison and formant analysis or other voice print analysis techniques.

The audio files116include audio recordings and portions of audio recordings. Each time a teleconference, meeting, or other multi-speaker audio environment is recorded, the audio management engine110stores the recording in the audio files116. Similarly, whenever any recording is manipulated to include descriptors or to enhance any portion of the associated audio, the modified audio recording is stored in the audio files116. The management files118include any data related to the analysis and manipulation of the audio files116, including raw data, statistics, and reports. Examples of the management files118and corresponding uses for the management files118will be given below.

It should be understood that the various elements of the audio management system100may communicate with one another via a network. The network may include a wireless network such as, but not limited to, a Wireless Local Area Network (WLAN) such as a WI-FI network, a Wireless Wide Area Network (WWAN), a Wireless Personal Area Network (WPAN) such as BLUETOOTH, a Wireless Metropolitan Area Network (WMAN) such a WiMAX network, a cellular network, or a satellite network. The network may also be a wired network such as, but not limited to, a wired Wide Area Network (WAN), a wired Local Area Network (LAN) such as the Ethernet, a wired Personal Area Network (PAN), or a wired Metropolitan Area Network (MAN).

Turning now toFIG. 2, an illustrative example of an audio environment200and examples of audio management techniques available according to various embodiments will be described. The audio environment200illustrates a real-time conference call between speakers102A-102F, located at three separate locations. The speaker102A is participating in the conference call from a first location via a telecommunications line1. The speaker102B is participating from a second location via a telecommunications line2. The remaining speakers102C-102F are co-located in a conference room202and are participating using a speaker phone204connected to the conversation via a telecommunications line3.

It should be appreciated that the telecommunications lines1,2, and3may include wired or wireless connections, directly or indirectly, to the audio management server106. The speaker phone204shown in the illustrative audio environment200includes three microphones206,208, and210. Alternatively, the speaker phone204may be a conventional telephone that includes a single microphone, or may include any number of microphones. As will be described below, having multiple microphones206,208, and210improves the ability of the audio management engine110to determine the location of the speakers102C-102F, and therefore the identity of the speakers102C-102F, as each of them are speaking.

Throughout the various embodiments, the audio management engine110attempts to identify each of the speakers102A-102F as they are speaking. Generally, the identification is performed by creating an unidentified voice print of the current speaker102, and then comparing the created unidentified voice print to any number of identified voice prints114. If a match is found, then the speaker102associated with the unidentified voice print is assigned the identity associated with the matching identified voice print114. The creation of voice prints includes sampling the spoken audio of the speaker102. From the sample, the audio management engine110utilizes known speech analysis tools to create the unidentified voice print. For example, as described briefly above, the audio management engine110may create a spectrogram for illustrating formants within the speech sample that are unique or common to the associated speaker102. By comparing acoustic characteristics of the unidentified voice print to one or more identified voice prints114, the audio management engine110can verify or determine the identity of the speaker102.

According to one embodiment, the audio management engine110will first attempt to create identified voice prints114corresponding to each of the speakers102A-102F to use in the identification of the current speaker102each time the current speaker102changes during the course of the conference call. To create the identified voice prints114, speech samples are recorded from each of the speakers102A-102F. These speech samples may be recorded the first time that a new speaker102is detected by the audio management engine110. According to one embodiment, the audio management engine110prompts the speakers102A-102F to identify themselves and to provide a speech sample prior to connecting the speaker102to the conference call.

For example, conference call systems often provide for multiple participants to call a single telephone number and input a code corresponding to the specific conference call in which they would like to participate. Before connecting each participant to the conference call, the system100will prompt the participant to identify himself or herself so that the participant may be announced when connected to the other participants. Using the embodiments described herein, the audio management engine110may additionally prompt each participant to repeat a test phrase that contains an appropriate combination of sounds to allow the audio management engine110to create the identified voice print114associated with the speaker102.

In another embodiment in which the speakers102A-102F are not prompted for identities and voice samples prior to being connected to the conference call, each of the speakers102A-102F corresponds to a known or discovered telecommunications line and/or position within the conference room202with respect to one or more microphones206,208, and210. With this information, each time the speaker102changes during the conference call, the audio management engine110creates an unidentified voice print and compares the unidentified voice print to the identified voice print114associated with telecommunications line and/or position within the conference room202of the current speaker102to confirm the identity of the current speaker102. According to embodiments in which the speakers102A-102F are not associated with a particular telecommunications line1,2, or3, or associated with a particular position within the conference room202, then the unidentified voice prints are compared to all of the identified voice prints114stored within the audio repository108, or to any smaller sample of the identified voice prints114as possible.

As another example, looking atFIG. 2, assume the current speaker102changes from the speaker102B, identified as John Smith, to the speaker102A associated with telecommunications line1. As a result, the audio management engine110creates the unidentified voice print associated with the new audio. Because the audio management engine110has previously identified the speaker102A associated with telecommunications line1as Sally Jones (via voice sampling and identification prompting when Sally joined the conference call), and because the new audio is originating from the telecommunications line1, the audio management engine110compares the unidentified voice print to the identified voice print114associated with Sally Jones to confirm the identity of the new speaker102A as Sally Jones.

It should be appreciated that comparing the unidentified voice print with a single identified voice print114, or with as small a sample of identified voice prints114as possible, is beneficial because it decreases the processing time required for the audio management engine110to perform the analysis. Consequently, as mentioned above, the audio management engine110compares the unidentified voice print associated with the new speaker102to the identified voice print114associated with the particular telecommunications line1,2, or3that is the source of the new audio. However, when the telecommunications line3is associated with multiple speakers102C-102F, then the audio management engine110may additionally attempt to narrow down the sample of identified voice prints114to which the unidentified voice print must be compared by detecting the location of the new speaker102in the conference room202and comparing the unidentified voice print of the new speaker102to only those identified voice prints114associated with speakers102located proximate to the new speaker's102location.

Turning now toFIG. 3, an example showing how the audio management engine110detects a direction of the speaker102with respect to the speaker phone204according to one embodiment will be described. The speakers102C-102F are seated around a table within the conference room202. The speaker102C is currently speaking, creating a sound wave302. The dotted arrows represent the direction that the sound wave302is traveling. Each of the microphones206,208, and210are operative to detect the pressure associated with the initial contact with the sound wave302. The position on each microphone at which the initial contact is detected indicates the direction of the speaker102C that created the sound wave302. Additional methods for detecting the location or vicinity of each of the speakers102C-102F may be used by the audio management engine110.

According to another embodiment, the time of the initial receipt of the sound wave302at each of the microphones206,208, and210is determined and compared to calculate the order in which the microphones206,208, and210received the corresponding audio. The resulting order may be used to determine the proximity of the new speaker102to each of the microphones206,208, and210, and therefore narrow down the general direction in which the new speaker102is located with respect to the speaker phone204. As an example, because the microphone206receives the sound wave302prior to the microphones208and210, then the audio management engine110may determine that the new speaker102is to the left of the speaker phone204as viewed inFIG. 2, and will then compare the corresponding unidentified voice print to the identified voice prints114associated with the speakers102C and102D that are located to the left of the speaker phone204, without having to compare the unidentified voice print to the identified voice prints114associated with the speakers102E and102F. It should be appreciated that any number of microphones may be positioned at multiple locations throughout the conference room202. The greater the number of microphones, and the greater the distance apart from one another, the greater the accuracy of the location of the speaker102will be.

Turning now toFIG. 4, an illustrative routine400will be described for managing audio from multiple audio sources according to various embodiments presented herein. The routine400will be described with respect to the audio environment200shown inFIG. 2. It should be appreciated that the logical operations described herein are implemented (1) as a sequence of computer implemented acts or program modules running on the audio management server106and/or (2) as interconnected machine logic circuits or circuit modules within the audio management server106. The implementation is a matter of choice dependent on the performance requirements of the computing system. Accordingly, the logical operations described herein are referred to variously as operations, structural devices, acts, or modules. These operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination.

The routine400begins at operation402, where the audio management engine110receives multiple audio sources. In this example, the multiple audio sources include the telecommunications lines1,2, and3, as well as the locations of the speakers102C-102F utilizing the telecommunications line3. From operation402, the routine400continues to operation404, where the audio management engine110identifies the speakers102A-102F for each audio source.FIG. 5illustrates a sub-routine500for identifying the speakers102A-102F according to one embodiment. It should be appreciated that the sub-routine500may be used by the audio management engine110to identify the speakers102A-102F early in the conference call and to create identified voice prints114associated with the speakers102A-102F for comparison to unidentified voice prints associated with the current speaker102when the current speaker102in the conversation changes.

The sub-routine500begins at operation502, where the audio management engine110creates an unidentified voice print corresponding to the speaker102at a particular audio source. From operation502, the sub-routine500continues to operation504, where the audio management engine110determines whether there is an identified speaker102associated with the telecommunications line1,2, or3or location within the conference room202from which the audio is being received. For example, the audio management engine110may determine that the telephone number from which the speaker102B is calling from is associated with John Smith. The telephone number may be obtained through typical caller ID methods associated with a calling party. A contact list of speakers102associated with known telephone numbers or calling device identifiers may be stored with the management files118or elsewhere in the audio repository108and referenced by the audio management engine110when the telecommunications lines1,2, and3, are established.

If there is an identified speaker102associated with the audio source, then the sub-routine500proceeds to operation506, where the audio management engine110compares the unidentified voice print to an applicable subset of identified voice prints114. For example, if the audio corresponding to the unidentified voice print originates from the telecommunications line2, then the audio management engine110can determine via caller ID or via information stored in the audio repository108that John Smith is associated with the telecommunications line2. Then the audio management engine110will retrieve the identified voice print114associated with John Smith, if any, and will compare the unidentified voice print to the identified voice print114corresponding to John Smith to verify that the unidentified voice print belongs to John Smith. In this manner, the audio management engine110does not have to compare the unidentified voice print to all of the identified voice prints114stored in the audio repository108to find a match. From operation506, the sub-routine500continues to operation510and proceeds as described below.

However, if at operation504, the audio management engine110determines that there is not a speaker102associated with the audio source, then the sub-routine500proceeds to operation508, where the audio management engine110compares the unidentified voice print to all of the identified voice prints114stored in the audio repository108. The sub-routine500continues from operation508to operation510, where the audio management engine110determines whether the unidentified voice print matches any of the identified voice prints114to which it is compared. If a match is found, then the sub-routine500proceeds to operation516, where the audio management engine110identifies the speaker102associated with the unidentified voice print according to the identification of the speaker102of the matching identified voice print114and the sub-routine500ends and returns to the routine400.

However, if the audio management engine110determines at operation510that the unidentified voice print does not match an identified voice print114, then the sub-routine500continues to operation512, where the audio management engine110requests a new speaker identification corresponding to the speaker102. The audio management engine110may prompt the speaker102for an identification or may assign an identification such as “Speaker 1.” From operation512, the sub-routine500continues to operation514, where the audio management engine110tags the unidentified voice print with the new speaker identification to create an identified voice print114, and stores the identified voice print114in the audio repository108. Tagging the unidentified voice print may include inserting one or more descriptors into the unidentified voice print that identify the associated speaker102. The sub-routine continues to operation516, where the audio management engine110identifies the speaker102associated with the audio source according to the identification of the speaker102associated with the identified voice print114. From operation516, the sub-routine500ends and returns to the routine400.

Returning toFIG. 4, the routine400continues from operation404to operation406, where the audio management engine110begins recording the audio to create the audio file116. From operation406, the routine400continues to operation408, where the audio management engine110detects a change in audio sources. For example, the speaker102B may stop talking and the speaker102A may begin talking. This change may be detected through continuous analysis of the voice characteristics of the current speaker102, through detecting pauses and subsequent continuations in the audio, or by detecting a change in the audio from one telecommunications line to another or from one location in the conference room202to another, among other known methods for detecting changes in audio.

The routine400continues from operation408to operation410, where the audio management engine110identifies the current speaker102as described above with respect to the sub-routine500, and then tags the audio recording with the current speaker identification. By placing tags or descriptors within the audio recording at the location in the recording in which the speaker102changes, the audio search engine112may be used to search for a portion of the resulting audio file116attributed to a particular speaker102. According to various embodiments, in addition to placing tags or descriptors within the audio recording when the speaker102changes, the audio management engine110may send an icon, avatar, photograph, text, or any other visual and/or audible identifiers to one or more of the communications devices104for display or playback to the corresponding speakers102. From operation410, the routine400continues to operation412, where the audio management engine110determines whether one or more speakers102have requested an adjustment to the volume of one or more of the audio sources.

According to embodiments described herein, the audio management engine110may receive feedback from the speakers102A-102F during the conference call. As a result, the audio management engine110makes adjustments to all or portions of the audio. The feedback may be provided by the speakers102A-102F using a key press or combination of key presses on the applicable communications device104. At operation412, the audio management engine110determines whether a volume adjustment request has been received. According to one embodiment, the speakers102A-102F may press a key on the corresponding communications device104to adjust the volume of the audio associated with the current speaker102.

For example, assume the speaker102B is having difficulty hearing the speaker102A. The difficulty may be due to the low volume of the associated speech, due to problems with telecommunications line1associated with the speaker102A, or due to problems with telecommunications line2associated with the speaker102B. In any case, the speaker102B may press #2 on his telephone corresponding to a request to increase the volume of the incoming audio from the speaker102A. If it is necessary to reduce the volume of the incoming audio from the speaker102A, the speaker102B may press #0. The audio management engine110may respond to the feedback by increasing the incoming audio volume on the telecommunications line2whenever the audio management engine110detects that the speaker102A is the current speaker102.

Alternatively, the audio management engine110may instruct the communications device104corresponding to the speaker102B to adjust the volume of the incoming audio whenever the audio management engine110detects that the speaker102A is the current speaker102. As will be described below, the volume adjustment request may be stored and if a threshold number of speakers102from the total number of speakers102A-102F participating in the conference call request that the volume of the audio from the speaker102A be increased, the audio management engine110will increase the volume of all audio originating with telecommunications line1, or of all audio associated with the speaker102A in the current, or even future, conference calls.

Returning toFIG. 4, if the audio management engine110does not receive a request to adjust the volume of one or more audio sources at operation412, then the routine400proceeds to operation418and continues as described below. However, if at operation412, the audio management engine110determines that a volume adjustment request has been received, then the routine400continues to operation414, where the audio management engine110adjusts the applicable volume level and then data corresponding to the volume adjustment is stored with the management files118in the audio repository108at operation416for tracking and management purposes. From operation416, the routine400continues to operation418, where the audio management engine110determines whether one or more speakers102have requested an adjustment to the quality of one or more of the audio sources or provided any further feedback.

Similar to the volume adjustment request described above, embodiments described herein allow for the speakers102A-102F to provide virtually any type of feedback corresponding to the audio and/or another speaker102. As an example, the speakers102A and102B may have difficulty hearing the speakers102C-102F because of quality issues with the telecommunications line3. The audio management engine110receives a particular key press or combination of key presses from the speakers102A and102B corresponding to poor audio quality when the current speaker102is one of the speakers102C-102F in the conference room202. For example, the speakers102A and102B may both press #1 on their respective telephones to indicate poor audio quality when receiving audio from the conference room202. As a result, the audio management engine110applies quality control techniques, such as the using audio filters, aural exciters, amplifiers, as well as any other noise cancellation techniques, to the audio from the telecommunications line3.

Other feedback may include information requests. For example, a particular key on the communications devices104A-104N associated with the speakers102A-102F may be pressed to request the identity of the current speaker102. For example, when #3 is pressed, the audio management engine110determines the identity of the current speaker102through methods described above, and returns the identity to the requesting speaker102. The identity may be displayed on a display of the communications device104associated with the requesting speaker102in the form of a photograph, an icon, an avatar, a name, an identifying number, or a combination thereof. Alternatively, the identity of the current speaker102may be audibly stated via the communications device104. Keys on the communications devices104A-104N may also be programmed to provide any type of real-time statistics regarding the current conference call. Examples include but are not limited to pressing #4 for statistics regarding the speaker102that has spoken the most times, #5 for the speaker102that has spoken for the longest duration, and #6 for the speaker102that has participated the least, among others.

At operation418, if the audio management engine110determines that a quality complaint or other feedback has not been received, then the routine400proceeds to operation424and continues as described below. However, if at operation418, the audio management engine110determines that a quality complaint or other feedback has been received, then the routine400continues to operation420, and the audio management engine110modifies the audio or otherwise responds to the feedback as applicable. At operation422, the data regarding the modification is stored with the management files118or the audio repository108to be used for tracking and management purposes.

From operation422, the routine400continues to operation424, where the audio management engine110determines if the audio is complete. If the audio is not complete and the conference call continues, then the routine400returns to operation408and continues as described above. However, if the audio is complete and the conference call has ended, then the routine400continues from operation424to operation426, where the audio management engine110stores the audio recording as an audio file116in the audio repository108. Additionally, the audio management engine110may further analyze the recording to determine how, if at all, the audio was modified during the conference call and to make any necessary adjustments to the corresponding audio file116.

For example, the audio management engine110analyzes the audio recording and determines from inserted metadata that there were two requests during the conference call that the volume associated with the speaker102A be increased. Further, the audio management engine110determines that the speakers102A and102B both submitted feedback during the conference call corresponding to poor audio quality with respect to the telecommunications line3. The audio management engine110may determine that all audio associated with the speaker102A should be amplified in the current recording, in stored audio files116, and/or in future conference calls and audio in which the speaker102A is a participant. Similarly, the audio management engine110may search the audio repository108for descriptors within the audio files116corresponding to the conference room202as an audio source. The audio management engine110may then determine whether similar complaints have been made regarding the audio quality relating to the conference room202. If a threshold number of complaints have been made, then the audio management engine110may retroactively modify all of the applicable audio files116to improve the quality of the portions of the audio corresponding to audio from the conference room202.

The audio management engine110may further use the analysis to calculate statistics with respect to the audio and the corresponding speakers102A-102F. For example, as described briefly above, the audio management engine110may track how many times each speaker102talks, the duration time that each speaker102talks for the entire conference call, or any other statistical data that may be tracked and that may be useful in creating reports and metrics. This statistical data, and any subsequent reports and metrics may be stored in the management files118of the audio repository108. Returning toFIG. 4, the routine400continues from operation426to operation428, where the audio management engine110adjusts the audio file116of the conference call as applicable per the analysis described above and the routine400ends.

Turning now toFIG. 6, an illustrative routine600for searching for audio files116or portions of audio files116will be described. As described briefly above, embodiments of the disclosure presented herein allow for searches for applicable portions of audio files116. To locate the desired portions of the audio files116, the audio search engine112may search for the applicable descriptors inserted into the audio files116by the audio management engine110.

For example, using the embodiments described herein, a user may search the audio repository108for all audio files116in which the speaker102B was a participant. The audio search engine112will search the audio files116for a descriptor corresponding to the speaker102B. The audio search engine112may then provide a list of audio files116containing the descriptor corresponding to the speaker102B and retrieve any selected audio files116or even the applicable portions of the audio files116. It should be appreciated that any number and type of descriptors may be inserted into the audio files116by the audio management engine110during or after the audio files116were recorded. The descriptors may then be used by the audio management engine110to calculate statistical data and corresponding metrics, and by the audio search engine112to retrieve specific data.

The routine600begins at operation602, where the audio search engine112determines that a search request has been received. From operation602, the routine600continues to operation604, where the audio search engine112searches the audio repository108, including all tags and metadata within the audio files116, for the audio files116corresponding to the requested search terms. The results are provided at operation606, and the routine600ends. It should be understood that during subsequent playback of the requested audio files116or portions of audio files116, information corresponding to the descriptors, tags and any other metadata may be presented to the user according to the capabilities of the communications device104associated with the user. Using the above example, when the user plays back the audio files116that were retrieved by the audio search engine112, the user may see a visual indication such as an icon, avatar, or photo representing the speaker102B whenever the speaker102B is speaking.

Referring now toFIG. 7, an illustrative computer architecture for the audio management server106utilized in the various embodiments presented herein will be discussed. The computer architecture shown inFIG. 7illustrates a conventional desktop, laptop computer, or server computer. Specifically, the audio management server106illustrates the computer architecture associated with the audio management server106, but the architecture may also apply to the communication devices104in a distributed architecture. The computer architecture shown inFIG. 7includes a central processing unit702(CPU), a system memory708, including a random access memory (RAM)714and a read-only memory (ROM)716, and a system bus704that couples the memory to the CPU702. A basic input/output system (BIOS) containing the basic routines that help to transfer information between elements within the audio management server106, such as during startup, is stored in the ROM716. The audio management server106further includes a mass storage device710for storing an operating system718, application programs, and other program modules, which will be described in greater detail below.

The mass storage device710is connected to the CPU702through a mass storage controller (not shown) connected to the bus704. The mass storage device710and its associated computer-readable media provide non-volatile storage for the audio management server106. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the audio management server106.

According to various embodiments, the audio management server106may operate in a networked environment using logical connections to remote computers through the network720. As described above with respect toFIG. 1, the network720may include a wireless network such as, but not limited to, a WLAN such as a WI-FI network, a WWAN, a WPAN such as BLUETOOTH, a WMAN such a WiMAX network, a cellular network, or a satellite network. The network720may also be a wired network such as, but not limited to, a wired WAN, a wired LAN such as the Ethernet, a wired PAN, or a wired MAN. The network720may include the Internet such that the elements of the audio management system100communicate with one another via wireless or wired connections to the Internet. Through the network720, the audio management server106may connect with the communication devices104, including the various lines.

The audio management server106may connect to the network720through a network interface unit706connected to the bus704. It should be appreciated that the network interface unit706may also be utilized to connect to other types of networks and remote computer systems. The audio management server106may also include an input/output controller712for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown inFIG. 7). Similarly, an input/output controller may provide output to a display screen, a printer, or other type of output device (also not shown inFIG. 7).

As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device710and RAM714of the audio management server106, including the operating system718suitable for controlling the operation of a networked desktop or server computer, such as the WINDOWS XP or WINDOWS VISTA operating systems from MICROSOFT CORPORATION of Redmond, Wash. Other operating systems, such as the LINUX operating system or the OSX operating system from APPLE COMPUTER, INC. may be utilized. It should be appreciated that the implementations presented herein may be embodied using a desktop or laptop computer or any other computing devices or systems or combinations thereof.

The mass storage device710and RAM714may also store one or more program modules. In particular, the mass storage device710and the RAM714may store the audio management engine110, the audio search engine112, the voice prints114, the audio files116, and the management files118, as well as any other program modules described above with respect toFIG. 1. Based on the foregoing, it should be appreciated that apparatus, systems, methods, and computer-readable media for managing audio in a multi-source audio environment are provided herein. Although the subject matter presented herein has been described in language specific to computer structural features, methodological acts, and computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features, acts, or media described herein. Rather, the specific features, acts and mediums are disclosed as example forms of implementing the claims.