FIELD OF INVENTIONThe present invention is in the field of communication devices such as telephones and, in particular, to voice mail systems for receiving messages for telephones.
BACKGROUNDTelephones typically represent one of the primary ways an individual can communicate with another person or an organization such as a business or governmental agency. Typically, a user must dial a telephone number to establish a connection with another telephone associated with that telephone number. Answering machines and voice mail systems provide a well-established way for a user to leave a message for another user if the calling user is unable to reach another user. A user may attempt to call another and, if the recipient is unable or unwilling to answer their phone, a voice mail system may provide the calling user with the opportunity to leave a voice mail message for the recipient. The recipient may, at a later time, review their voice mail messages and may return missed phone calls based on the recorded messages.
Often, a person leaving a voice mail message will leave their phone number in the message so that the recipient will know how to reach them to return their call. In these cases, the person may leave a verbal message that says something to the effect of “call me back at 512-555-1212”, where 512-555-1212 is the phone number the person used to call. In many other cases, the person leaving the message will leave alternate and/or multiple phone numbers if a single phone number will not suffice. The caller may leave a message, for example, that says “call me back at 512-555-1212 before 5 pm, but I'm out next week, so call Steve at 512-555-1234 next week”. Users have great flexibility in what kind of information they leave in a voice mail message, resulting in a myriad of possibilities for the content and form of voice mail messages.
The recipient who is listening to voice mail message will often want to record phone numbers left in a message, particularly if the caller is someone for which the recipient does not yet have contact information. When the recipient listens to the voice mail message, they often have to scramble to get a pen to write down the phone numbers or open up a text editor to make a note of the phone numbers left in the voice mail message so that they can return a call. These solutions can be unsatisfactory when the recipient does not have a pen handy, has to re-listen to the message after missing some of the numbers, or is not ready to start manually recording the numbers. These solutions can also be unsatisfactory when the speaker is hard to understand, such as the caller talks fast, slurs, or is not speaking in their native language. These problems can be exacerbated if the recipient is otherwise distracted, such as if they are checking their voice mail messages from a mobile phone while they are driving. For a recipient who is checking messages while driving, having to manually write down phone numbers in a message can be very inconvenient and even dangerous. There is, therefore, a need for an effective and efficient solution for extracting phone numbers from voice mail messages.
SUMMARY OF THE INVENTIONThe problems identified above are in large part addressed by methods, apparatuses, and media for extracting phone numbers from voice mail messages. Embodiments may include a method for determining a phone number in a voice mail message. The method may include analyzing a voice mail message and determining one or more phone numbers associated with the voice mail message based on the analysis of the voice mail message. Embodiments of the method may also include generating a macro based on the determined phone number(s) and performing a macro action for at least one generated macro. In some embodiments, analyzing the message and determining one or more phone numbers associated with the message may include detecting a trigger word and parsing words in the voice mail message after the detected trigger word. In other embodiments, analyzing the message and determining one or more phone numbers associated with the message may include analyzing a voice-to-number dictionary and determining phone numbers based on the dictionary. The macro action may include dialing, storing, deleting, etc. a phone number.
Another embodiment provides a machine-accessible medium containing instructions effective, when executing in a data processing system, to cause the system to perform a series of operations for determining a phone number in a voice mail message. The series of operations generally includes analyzing a voice mail message and determining one or more phone numbers associated with the voice mail message based on the analysis of the voice mail message. Embodiments may also include a series of operations for generating a macro based on the determined phone number(s) and performing a macro action for at least one generated macro.
A further embodiment provides a number extractor module to determine phone numbers in a voice mail message. The number extractor module may include a phone number determination module and a voice mail system interface, where the voice mail system interface receives a voice mail message from a voice mail system. The phone number determination module may include a voice mail parser to analyze the voice mail message to determine a phone number associated with the voice mail message. The phone number determination module may also include a macro generator to generate a macro based on the phone number determined by the voice mail parser. In some embodiments, the voice mail parser analyzes the voice mail message by analyzing a voice-to-number dictionary associated with the voice mail message. In other embodiments, the voice mail parser analyzes the voice mail message by detecting a trigger word in the voice mail and parsing words in the voice mail message after the detected trigger word.
BRIEF DESCRIPTION OF THE DRAWINGSAspects of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings in which, like references may indicate similar elements:
FIG. 1 depicts an environment for a phone number extraction system having a communication device and a voice mail system server with a number extractor according to one embodiment;
FIG. 2 depicts an environment for an enhanced phone number extraction system having voice-to-number dictionary capability according to one embodiment;
FIG. 3 depicts a conceptual illustration of software components of a number extractor according to one embodiment;
FIG. 4 depicts an example of a flow chart for determining a phone number in a voice mail message and performing a macro action based on the determined phone number according to one embodiment; and
FIG. 5 depicts an example of a flow chart for determining a phone number in a voice mail message based on a voice-to-number dictionary and performing a macro action based on the determined phone number according to one embodiment.
DETAILED DESCRIPTION OF EMBODIMENTSThe following is a detailed description of example embodiments of the invention depicted in the accompanying drawings. The example embodiments are in such detail as to clearly communicate the invention. However, the amount of detail offered is not intended to limit the anticipated variations of embodiments; on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims. The descriptions below are designed to make such embodiments obvious to a person of ordinary skill in the art.
Generally speaking, methods, apparatuses, and media for extracting phone numbers from voice mail messages are disclosed. Embodiments may include a method for determining a phone number in a voice mail message that includes analyzing a message and determining phone number(s) associated with the message based on the analysis. Embodiments of the method may also include generating a macro based on the determined phone number(s) and performing a macro action for at least one generated macro. In some embodiments, analyzing the message and determining phone number(s) associated with the message may include detecting a trigger word and parsing words in the message after the detected trigger word. In other embodiments, analyzing the message and determining one or more phone numbers associated with the message may include analyzing a voice-to-number dictionary and determining phone number(s) based on the dictionary. The macro action may include dialing, storing, deleting, etc. a phone number.
As will be described in more detail subsequently, the methodology of the disclosed embodiments may provide for an efficient and effective mechanism for determining phone numbers left in a voice mail message. By utilizing the disclosed methodology, a person receiving voice mail messages may extract any voice numbers embedded in the voice mail message. Embedded phone numbers may include numbers verbally left by the caller or, in some embodiments, phone numbers received via other means such as transmitting a voice-to-number dictionary. The disclosed methodology may also include the option of calling one of the extracted numbers or performing other action, providing additional convenience and functionality to the user. Accordingly, the person receiving voice mail messages may avoid having to manually write down, type, or memorize phone numbers left in a voice mail message, avoiding the wasted time, inconvenience, and, in some cases, increased risk from the distraction of manually recording phone numbers.
In general, the routines executed to implement the embodiments of the invention, may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions. The computer program of the present invention typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described herein may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature herein is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
While specific embodiments will be described below with reference to particular configurations of hardware and/or software, those of skill in the art will realize that embodiments of the present invention may advantageously be implemented with other substantially equivalent hardware and/or software systems. The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but it not limited to firmware, resident software, microcode, etc.
Aspects of the invention described herein may be stored or distributed on computer-readable medium as well as distributed electronically over the Internet or over other networks, including wireless networks. Data structures and transmission of data (including wireless transmission) particular to aspects of the invention are also encompassed within the scope of the invention. Furthermore, the invention can take the form of a computer program product accessible from a computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium may be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD.
Each software program described herein may be operated on any type of data processing system, such as a personal computer, server, etc. A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements may include local memory employed during execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output (I/O) devices (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices though intervening private or public networks, including wireless networks. Modems, cable modems and Ethernet cards are just a few of the currently available types of network adapters.
Turning now to the drawings,FIG. 1 depicts an environment for a phone number extraction system having a communication device and a voice mail system server with a number extractor according to one embodiment. The disclosed phonenumber extraction system100 includes one ormore communication devices102 in communication with a voicemail system server106 viacommunication network104. The voicemail system server106 may includevoice mail storage108, which may be either external or internal to voicemail system server106. As will be described in more detail, users of a voice mail system implemented on a voicemail system server106 may request extraction of phone numbers from a recorded voice mail message via theircommunication device102 and then receive an indication of phone numbers spoken in or otherwise associated with the voice mail message. A user may then request an action related to the extracted phone numbers, such as dialing a phone number, saving the phone number for later use, etc. The user may thus advantageously avoid having to manually record a phone number left in a voice mail message.
Communication devices102 may include any devices adapted to communicate with a voice mail system. In some embodiments, acommunication device102 may be adapted to communicate via a phone connection (i.e., voice connection) of acommunication network104 with a voicemail system server106. In other embodiments, acommunication device102 may communicate with a remote voicemail system server106 via an Internet connection ofother communication network104 without using a phone connection, while in other embodiments acommunication device102 may include its own voice mail system, such as a personal computer implemented with Voice over Internet Protocol (VoIP) or other Internet telephony communication capabilities.Example communication devices102 include mobile phones (such as cellular phones, satellite phones, or car phones) or traditional telephones (that connect to a telephone jack). Otherexample communication devices102 may also include a personal computer with an Internet or other network connection that is adapted to allow voice communications, such as using a VoIP or other Internet telephony connection, or a voice communication-enabled personal digital assistant (PDA), automobile-based wireless device, wearable computer system, or other wireless communication device.
Thecommunication network104 may include any data communication channel (or combinations of channels) that allows voice communication between acommunication device102 and a voice mail system such as a voicemail system server106.Example communication networks104 include the Internet, an intranet, a local area network (LAN), a wide area network (WAN), an Ethernet network, wireless network, or telephone network (such as a cellular network). In one example wherecommunication network104 includes a cellular network, thecommunication device102 may be in wireless communication with a base station as part of thecommunication network104, which in turn may be in communication with a mobile switching center, gateway mobile switching center (GMSC), or other elements of a cellular network (and all part of the communication network104). In some embodiments, acommunication network104 may include both a wireless network and a telephone network in communication via a GMSC. In yet other embodiments,communication network104 may include a bus or other physical connection to facilitate communication between acommunication device102 and voice mail system implemented on the same device, such as a personal computer system. Those skilled in the art will recognize, however, that other types of data communication channels included in thecommunication network104 without departure from the scope and spirit of the invention.
Voicemail system server106 may be a server or other computer system that executes all or part of a voice mail system and is adapted to communicate with one ormore communication devices102. The voicemail system server106 may provide voice mail services to a plurality ofremote communication devices102 viacommunication network104. The voicemail system server106 may be one or more of any type of computer system, including servers, personal computers, workstations, mainframe computers, desktop computers, or the like. In one embodiment, the voicemail system server106 is an International Business Machines (IBM) IBM® eServer or similar server having one or more processors, or threads of processors, executing software and/or one or more state machines coupled with data storage devices such as random access memory (RAM), read only memory (ROM), flash memory, compact disk drives, hard drives, and the like. The voicemail system server106 may include one or more software programs to implement a voice mail system, including the ability to receive voice mail messages, store voice mail messages in storage such asvoice mail storage108, and to playback voice mail messages to users via acommunication device102.Voice mail storage108 may be any type of volatile or non-volatile storage to store recorded voice mail messages, such as a storage server or network attached storage (NAS), and may be implemented as part of the voicemail system server106 or separately.
The voicemail system server106 may also include anumber extractor110 in addition to a voice mail system. As will be described in more detail subsequently, thenumber extractor110 may determine phone numbers for recorded voice mail messages to effectively extract those numbers from the recorded messages. In some embodiments, thenumber extractor110 may analyze recorded voice mail messages by parsing the recorded messages to detect spoken phone numbers and generate macros to perform an action on the extracted phone numbers. If a caller spoke two alternative phone numbers while leaving a voice mail message, thenumber extractor110 may parse the two phone numbers from the message and generate macros corresponding to each extracted phone number. The user may then choose to call one of the phone numbers, store them for later use, delete the numbers, or perform other actions. In other embodiments, thenumber extractor110 may access a voice-to-number dictionary associated with a recorded voice mail message to determine the phone numbers associated with the voice mail message so that it may generate the appropriate macros. Thenumber extractor110 may receive the voice-to-number dictionary before, during, or after the recording of its associated voice mail message. Thenumber extractor110 may use either or both of the message parsing or voice-to-number dictionary embodiments to determine phone numbers for a particular voice mail message. Thenumber extractor110 may thus provide phone numbers associated with a voice mail message to users of acommunication device102.
FIG. 2 depicts an environment for an enhanced phone number extraction system having voice-to-number dictionary capability according to one embodiment. The enhanced phonenumber extraction system200 may include many of the same or similar components as the phonenumber extraction system100 ofFIG. 1 and the description of these components will not be repeated in the interest of brevity. The disclosed enhanced phonenumber extraction system200 may include different and improved functionality when compared to the phonenumber extraction system100 ofFIG. 1. The disclosed enhanced phonenumber extraction system200 includes one or moretransmitting communication devices202, one or morerecipient communication devices204, and a voicemail system server106 in communication with each other viacommunication network104. The voicemail system server106 may includevoice mail storage108, which may be either external or internal to voicemail system server106.
As will be described in more detail, a user of a transmittingcommunication device202 may attempt to call another user of arecipient communication device204. If they are unable to establish a call (i.e., the user of therecipient communication device204 does not answer) their call may be redirected to the voicemail system server106 so that the user may leave a voice mail message. The transmittingcommunication device202 of the enhanced phonenumber extraction system200 may also transmit a voice-to-number dictionary to the voicemail system server106 for storage. The voice-to-number dictionary may include an indication of phone numbers and associated words for the recipient to speak. When a user of arecipient communication device204 reviews their voice mail message at a later time, they may speak one of the associated words and the associated phone number will be determined, providing the user with the opportunity of calling, storing, deleting, or performing other action with the phone number.
The transmittingcommunication device202 may be a device similar to thecommunication device102 ofFIG. 1. The transmittingcommunication device202 may include a voice-to-number dictionary module206 to manage and transmit voice-to-number dictionaries. A voice-to-number dictionary may include an association between telephone numbers and spoken words. An example voice-to-number dictionary may include the words ‘call Steve’ associated with ‘1-512-555-9999’, the words ‘call me at home’ associated with ‘1-512-555-8888’, and so on. When the calling user leaves the voice message, they may explain to the recipient that, by speaking the appropriate words, different phone numbers may be reached. A typical voice mail message could indicate that the recipient could say ‘call me at home’ or ‘call him at home’ and the voice mail system would call the phone number associated with the words based on the voice-to-number dictionary.
The transmittingcommunication device202 may transmit the voice-to-number dictionary to thenumber extractor110 at any time. If the user of the transmittingcommunication device202 leaves a voice mail message on a voice mail system, the voice-to-number dictionary module206 may transmit the appropriate voice-to-number dictionary to thenumber extractor110 before, during, or after the voice mail is left. The extent of the voice-to-number dictionary that is transmitted may vary based on user preference. A calling user may manually select one or more voice-to-number dictionary entries to transmit (e.g., by entry of keys on a keypad of the transmitting communication device202), the entire dictionary to transmit, entries corresponding only to words spoken by the user during the voice mail message, or other methodologies. In some embodiments, the voice-to-number dictionary module206 may transmit the voice-to-number dictionary entries to anumber extractor110 via any method of transmitting non-voice information, such as modem-style beeping, over a separate protocol such as TCP/IP, or other methodology.
The voicemail system server106 ofFIG. 2 may be substantially similar to the voicemail system server106 ofFIG. 1 but having anumber extractor110 compatible with the voice-to-number dictionary module206 of the transmitting communication device. As described in more detail in relation toFIG. 3, thenumber extractor110 ofFIG. 2 may receive and store voice-to-number dictionaries (and an indication of the associated voice mail messages) received from any transmittingcommunication devices202. In some embodiments, the voice-to-number dictionaries may be stored in thevoice mail storage108 along with their associated voice mail messages.
Therecipient communication device204 may be a device similar to thecommunication device102 ofFIG. 1. A user of arecipient communication device204 may contact the voicemail system server106 to review any stored voice mail messages. In some embodiments, the person leaving the message may state instructions in the voice mail message describing what the recipient user must say in order to call different numbers. In the example above, the user of therecipient communication device204 may say ‘call Steve’ and thenumber extractor110 of the voicemail system server106 may dial the appropriate phone number. The user may have more than one choice, as described by the person leaving the message, giving the user reviewing the voice mail message flexibility in which phone number to call based on user preference, time of day, specific instructions, etc. In some embodiments, therecipient communication device204 need not be customized in any way as the voicemail system server106 andnumber extractor110 process the voice-to-number dictionary, the recipient's spoken words, dialing the associated phone number, etc. In other embodiments, therecipient communication device204 includes a voice mail system andnumber extractor110, and accordingly may interact directly with a transmittingcommunication device202.
FIG. 3 depicts a conceptual illustration of software components of a number extractor according to one embodiment. One or more of the software components of thenumber extractor110 may execute on a processor of a voicemail system server106. Alternatively, one or more of the software components of the number extractor may execute on therecipient communication device204 ofFIG. 2. As described previously (and in more detail in relation toFIGS. 4 and 5), thenumber extractor110 may determine one or more phone numbers associated with a recorded voice mail message and perform an action such as dialing on one of the determined phone numbers. Thenumber extractor110 may include a voicemail system interface302, a phonenumber determination module304, and an optional voice-to-number dictionary interface306. The voicemail system interface302 may facilitate communication and/or interaction between thenumber extractor110 and a voice mail system implemented on a voicemail system server106,recipient communication device204, or other system.
The phonenumber determination module304 may determine one or more phone numbers associated with a voice mail message. The phonenumber determination module304 may include avoice mail parser310, amacro generator312,macro storage314, a user interface module316, and amacro player318 according to the disclosed embodiment. Thevoice mail parser310 may analyze a voice mail message to detect spoken phone numbers within the message. In some embodiments, thevoice mail parser310 may use voice recognition software to search for trigger words in the voice mail message. Trigger words may be any words or combination of words that provide an indication that a spoken phone number may soon follow. An example trigger word would be ‘call me’, such as if someone leaves a message saying ‘call me at 512-555-7777’. In this example, thevoice mail parser310 may analyze the voice mail message until it finds the trigger word ‘call me’ and then continue to apply voice recognition analysis to detect the phone number spoken after ‘call me’. Other potential trigger words could be ‘phone’, ‘number’, or any other words a provider of anumber extractor110 may deem to be indications of an upcoming phone number. Using trigger words may reduce the possibility of mistake (e.g., spoken numbers that are not phone numbers) and may also provide an association to a name or location when multiple phone numbers are contained within the message. In other embodiments, thevoice mail parser310 may simply apply voice recognition analysis to the entire message to extract any spoken phone numbers without using trigger words. Thevoice mail parser310 may also recognize, analyze, and convert spoken phone numbers that utilize letters, such as 1-800-IBM-HELP or 1-800-GO-FEDEX. Recognition of spoken letters and words is known in the art and one of ordinary skill in the art will also recognize that thevoice mail parser310 may utilize algorithms presently known or later developed to parse letters, numbers, and words based on accents, different voices, dictionaries, etc.
In an alternative embodiment, thevoice mail parser310 may interact with the voice-to-number dictionary interface306 to access information stored in the voice-to-number dictionary for the stored voice mail message so as to use that information in determining phone numbers associated with the message. Thevoice mail parser310 may utilize either or both of voice recognition software to analyze the voice message or utilizing information contained in a voice-to-number dictionary interface. Thevoice mail parser310 may, for example, detect one phone number within the spoken voice mail message as well as a second phone number from the voice-to-number dictionary to determine two total phone numbers associated with the voice mail message.
Once one or more phone numbers have been determined, or extracted, from a voice mail message, themacro generator312 may generate one or more macros (also known as macro actions) based on the determined phone numbers and store the generated macros inmacro storage314. A macro for a particular phone number may dial the phone number, store the phone number for later use, delete the phone number from storage, or perform other action. The macro player319 may perform a macro, such as upon request by a user. A user may request, for example, to dial a particular phone number associated with the recorded voice mail message after they have finished reviewing the message. Themacro generator312 may generate the macros based on the determined phone number by utilizing the determined phone number in full or modifying the determined phone number in some way. Themacro generator312 of thenumber extractor110 may thus adjust the extracted numbers according to any dialing rules of the user or other methodologies, such as default settings. In one example, themacro generator312 may truncate a determined phone number of ‘1-512-555-8888’ if that number is a local number and the ‘1-512’ portion need not be dialed. In another example, themacro generator312 may add additional numbers to a determined phone number, such as by adding an area code, a leading ‘1’, a number such as ‘9’ to reach an outside line, a calling card code, etc.
The user interface module316 of the phonenumber determination module304 may provide for communications to and from a user. Communications to a user may include presenting a user with different macro options (either via voice or visual display), confirming a user's choice of macro or performance of a macro, etc. Communications from a user may include a request to perform a particular macro, which may be received via voice command, actuation of a button or user interface device, etc. In one example, the user interface module316 may present the user via a voice dialogue with the option of dialing three different phone numbers thevoice mail parser310 determined were associated with the voice mail message. An example voice dialogue may be “Please say ‘call home’, ‘call office’, or ‘call assistant’ to contact the sender.” The user interface module316 in this example may then receive a spoken command and pass an indication of that command to themacro player318 to dial the appropriate number. One of ordinary skill in the art will recognize that many different types and combinations of input and output are possible.
Theuser interface module304 may process inputs from a user, including commands or requests, and may also provide output to the user (via controller interface302). Output from theuser interface module304 may include requests for the user to repeat some or all of phone number, requests for approval to dial the number, providing an audible or visual indication of the spoken phone number, or any other information.
FIG. 4 depicts an example of aflow chart400 for determining a phone number in a voice mail message and performing a macro action based on the determined phone number according to one embodiment. The method offlow chart400 may be performed, in one embodiment, by a number extractor110 (and its components) or other components of a voice mail system, such as a phonenumber determination module304.Flow chart400 begins withelement402, where the voice mail system (such as a voice mail system server106) may receive a voice mail (VM) message from a caller. The voice mail system may record the voice mail message and store it invoice mail storage108. Thenumber extractor110 may, atoptional element404, receive a request to parse a voice mail message for any associated phone numbers. In some embodiments, thenumber extractor110 may receive such a request from a user or voice mail system, while in other embodiments thenumber extractor110 may automatically parse voice mail messages and need not receive a specific request.
The phonenumber determination module304 of thenumber extractor110, and its componentvoice mail parser310, may analyze the voice mail message by parsing the spoken words in the voice mail message atelement406. In some embodiments, thevoice mail parser310 may search for trigger words (as described previously) in the voice mail message, as depicted inelement408. Thevoice mail parser310 may then determine a phone number within the voice mail message by parsing a series of words after the trigger word atelement410.Elements408 and410 may be repeated until the entire voice mail message has been analyzed. Thevoice mail parser310 may parse the words after a trigger word in a variety of ways. In some embodiments, thevoice mail parser310 may utilize voice recognition techniques to parse the words to determine a phone number, which may be useful if the caller spells out a phone number. Thevoice mail parser310 may also determine a name associated with the phone number based on its parsing. In other embodiments, thevoice mail parser310 may parse a name and cross-reference the name with a name dictionary to see if the system has a phone number associated with that name. As an example, thevoice mail parser310 may parse a voice mail message that says ‘Please call me at 555-5555 or call Steve Johnson in Accounting’ by detecting the trigger word ‘call’ and associating the phone number ‘555-5555’ with the caller (because of ‘call me’) and may also detect the second trigger word of ‘call’ and parse the name ‘Steve Johnson’ by performing an information look-up in an internal corporate directory.
After determining one or more phone numbers, themacro generator312 may generate one or more macros for each determined phone number atelement412 and may also optionally store the generated macros inmacro storage314 atelement414. The process of determining phone numbers and generating macros may continue atdecision block416 until the entire voice mail message is parsed. Thevoice mail parser310 andmacro generator312 may thus step through a voice mail message to determine any phone numbers associated with the message and to generate a macro for each.
Theuser interface module318 may prompt a user for action atelement418 based on the generated macros. For example, theuser interface module318 may prompt a user about whether they would like to call any of the determined phone numbers after the user has finished reviewing a recorded voice mail message. In the above example, theuser interface module318 may communicate to a user (either by audio or visual cues) to ‘Press or say 1 to call the Sender and Press or say 2 to call Steve Johnson’. Theuser interface module318 may also optionally prompt a user for confirmation of the determined phone numbers atelement420 so that the user may ascertain whether the numbers were determined correctly. Atelement422, theuser interface module318 may receive a request for an action from a user and/or confirmation of the determined numbers (such as via button actuation, voice command, etc.). Themacro player318 may then perform any requested macro actions atelement424, after which the method terminates. In the above example, themacro player318 may dial either of the determined numbers, save the numbers for later usage, etc.
FIG. 5 depicts an example of aflow chart500 for determining a phone number in a voice mail message based on a voice-to-number dictionary and performing a macro action based on the determined phone number according to one embodiment. The method offlow chart500 may be performed, in one embodiment, by a number extractor110 (and its components) or other components of a voice mail system, such as a phonenumber determination module304 and voice-to-number dictionary interface306.Flow chart500 begins withelement502, where the voice mail system (such as a voice mail system server106) may receive a voice mail (VM) message from a caller. The voice mail system may record the voice mail message and store it invoice mail storage108. The voice-to-number dictionary interface306 may also receive a voice-to-number dictionary associated with the recorded voice mail message atelement504. The voice-to-number dictionary interface306 may receive the dictionary before, during, or after the time the voice mail message is recorded. The voice-to-number dictionary interface306 may receive the dictionary from the transmittingcommunication device202 ofFIG. 2, from an archive at a voicemail system server106 orvoice mail storage108, or other location. The voice-to-number dictionary interface306 may receive the voice-to-number dictionary in text form (for quicker transmission), in recorded voice form (for ease of translation), or other form or combination of forms. The voice-to-number dictionary interface306 may store the received voice-to-number dictionary (such as in voice mail storage108) atelement506.
Thenumber extractor110 may, atoptional element508, receive a request to parse a voice mail message for any associated phone numbers. In some embodiments, thenumber extractor110 may receive such a request from a user of a receivingcommunication device204 or voice mail system, while in other embodiments thenumber extractor110 may automatically parse voice mail messages and need not receive a specific request.
The phonenumber determination module304 of thenumber extractor110, and its componentvoice mail parser310, may analyze the voice mail message atelement510. Thevoice mail parser310 may analyze the voice mail message in conjunction with the voice-to-number dictionary interface306. Atelement512, the voice-to-number dictionary interface306 andvoice mail parser310 may determine the phone number(s) associated with a voice mail message by utilizing the received voice-to-number dictionary. In one example, the voice-to-number dictionary may include a phone number associated with Jim and a phone number associated with Steve. In this example, the caller who is leaving the message may tell the recipient to “Say ‘call Jim’ to call me and say ‘call Steve’ to call Steve” to provide the recipient with information as to what choices they will have. In other embodiments, the caller need not inform the recipient and the disclosed system may generate the necessary prompts.
After determining one or more phone numbers, themacro generator312 may generate one or more macros for each determined phone number atelement514 and may also optionally store the generated macros inmacro storage314 atelement516. The process of determining phone numbers and generating macros may continue atdecision block518 until the entire voice mail message is parsed. Thevoice mail parser310, voice-to-number dictionary interface306, andmacro generator312 may thus step through a voice mail message and the voice-to-number dictionary to determine any phone numbers associated with the message and to generate a macro for each.
Theuser interface module318 may prompt a user for action atelement520 based on the generated macros. For example, theuser interface module318 may prompt a user about whether they would like to call any of the determined phone numbers after the user has finished reviewing a recorded voice mail message. In the above example, theuser interface module318 may communicate to a user (either by audio or visual cues) to ‘Say Jim to call the Sender and Say Steve to call Steve’. In some embodiments (such as if the caller leaves specific instructions), theuser interface module318 need not communicate the options to the user. Atelement522, theuser interface module318 may receive a request for an action from a user (via spoken command in this example). Themacro player318 may then perform any requested macro actions atelement524, after which the method terminates. In the above example, themacro player318 may dial either of the determined numbers (based on the user request), save the numbers for later usage, etc.
The methodology offlow chart500 may provide additional precision when compared to the methodology offlow chart400 as the voice-to-number dictionary eliminates the need to perform voice recognition on the caller's recorded voice mail message.Flow chart500, however, may require an agreed upon protocol between the transmittingcommunication device202 and the voicemail system server106 so that the voice-to-number dictionary may be successfully transferred. The methodology offlow chart500 may be particular useful for VoIP providers as the infrastructure for transferring voice-to-number dictionaries may be readily available (i.e., Internet connection already established). Some providers may utilize both the methodologies offlow charts400 and500 to provide additional flexibility and accuracy for users of the system.
It will be apparent to those skilled in the art having the benefit of this disclosure that the present invention contemplates methods, systems, and media for determining a phone number in a voice mail message. It is understood that the form of the invention shown and described in the detailed description and the drawings are to be taken merely as examples. It is intended that the following claims be interpreted broadly to embrace all the variations of the example embodiments disclosed.