Method and apparatus for automated voice dialing setup

A telecommunications device includes a voice dialer and a text-to-speech engine. The text-to-speech engine is configured to convert at least a portion of a user contact list information to speech and the voice dialer is configured to receive an audio input and perform a voice recognition, comparing said audio input to converted user contact list information.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to telecommunications systems and, in particular, to an improved system for voice dialing setup.

2. Description of the Related Art

Many modern cellular telephones have voice dialing capabilities. To enable voice dialing for a particular contact, users must typically browse through their lists of contacts using a graphical user interface and select the contact with whom the user wishes to establish voice dialing. The user must then speak the contact's name. The name is then recorded and stored as an audio file.

To dial, the user (or other party) can select a voice dialing control and speak the name of the person he wishes to call. The voice dialer will use one or more speech recognition algorithms to compare the newly-spoken name to the recorded names for speech dialing enabled contacts. If there is a match, the call is made.

While voice dialing is a useful feature, it is cumbersome to set up for each contact in a user's address book. This is especially the case when the user has a large number of contacts.

SUMMARY OF THE INVENTION

These and other drawbacks in the prior art are overcome in large part by a system and method according to embodiments of the present invention.

A method for use in a telecommunication system according to embodiments of the present invention includes providing contact information to a text-to-speech engine; using said text-to-speech engine to generate an audio file of at least some of said contact information; and providing said audio file to a voice recognition unit for use in determining a voice input corresponding to said audio file has been received. In some embodiments, the text-to-speech engine is contained within a wireless telephony device for use in voice dialing. In other embodiments, the text-to-speech engine is provided in association with a network server.

A telecommunications system according to an embodiment of the present invention includes a text-to-speech engine for performing a text-to-speech conversion of contact information; and a voice dialer configured to receive a voice input and perform a voice recognition on said voice input using a result of said text-to speech conversion. In certain embodiments, the text-to-speech engine and voice dialer are incorporated in a cellular telephone. In others, the text-to-speech engine and voice dialer are incorporated in network server remote from a user device. In some embodiments, a personal computer may be used to transmit contact information to the network server.

A telecommunications device according to embodiments of the present invention includes a voice dialer and a text-to-speech engine. The text-to-speech engine is configured to convert at least a portion of a user contact list information to speech and the voice dialer is configured to receive an audio input and perform a voice recognition, comparing said audio input to converted user contact list information. In certain embodiments, the telecommunications device includes a cellular transceiver. In some embodiments, the device includes an interface for receiving contact list information. In some embodiments, the telecommunications device is implemented as a server configured to receive said contact information from a personal computer. The server may be configured to perform voice dialing on behalf of a cellular telephone.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

Turning now to the drawings and, with particular attention toFIG. 1, a diagram schematically illustrating a system100according to an embodiment of the present invention is shown. The system100includes one or more contact lists102, a text-to-speech (TTS) engine104, a memory106for storing voice files106a, and a voice dialer110. The voice dialer110may receive a voice input108and output one or more commands112to call the appropriate party. As will be explained in greater detail below, the system100may be implemented in a cellular telephone or distributed among various devices.

In operation, a contact list102may be generated by a user. For example, the user may employ one or more keypad or other user interface controls to enter the contact information. The contact list may be a list of parties and contact information such as telephone numbers, stored in a convenient memory location. The contact list entries can be received at the TTS engine104, where they are converted to speech or audio files106a. The audio files106aare stored and associated with the corresponding contact information. When a user input108is received, the voice dialer110performs a speech recognition, comparing the spoken words to those of stored audio files corresponding to those users for whom voice dialing has been activated.

The text-to-speech engine104, which may be embodied as a conventional text-to-speech engine, can receive text from various sources and generate an audio file corresponding to the input text. As will be explained in greater detail below, in accordance with embodiments of the present invention, the text-to-speech engine104may operate to access user data or information and generate one or more audio files from the user data, to be used for voice dialing. In addition, for confirmation, in certain embodiments, a user may be able to select the audio file for playback; if he finds it unacceptable, he can speak the name, which can then be recorded as an audio file for use in speech recognition. The text-to-speech generator104may be implemented in hardware and/or software operating on one or more servers, computer systems, host or mainframe computers, workstations, etc. In some embodiments the text-to-speech generator104may be operating on some or all of the same device(s) as other components in the system100.

The contact list102may be a memory store for storing contact names and telephone numbers, as well as additional information. In certain embodiments, the contact list may be stored in the same memory106as the audio files. Typically, the contact list102may be accessed by other applications, such as a graphical user interface, and used for auto-dialing. In accordance with embodiments of the present invention, entries in the contact list may be provided to the TTS engine104for conversion of the names into audio files. In certain embodiments, the entries may be provided manually, or on an entry-by-entry basis. In other embodiments, the entire contact list may be “batch-converted,” i.e., several contacts selected at a time for TTS conversion and voice dialing setup. The generated voice audio file is then associated with the corresponding contact information. The contact list102may be implemented in hardware and/or software operating on one or more servers, computer systems, host or mainframe computers, workstations, etc. In some embodiments the contact list may be operating on some or all of the same device(s) as other components in the system100.

The memory106stores the voice files106aoutput from the TTS engine104. In some embodiments, the memory106may also store the contact list(s)102. The memory106may be implemented in hardware and/or software operating on one or more servers, computer systems, host or mainframe computers, workstations, etc. In some embodiments the memory may be operating on some or all of the same device(s) as other components in the system100.

The voice dialer110receives a user input at108. In response, the voice dialer110accesses the voice files106aand performs a speech recognition function or functions to determine if the input corresponds to one of the audio files106a. If so, the voice dialer110will access the corresponding number, e.g., from the contact list, and cause the call to be made. The memory106may be implemented in hardware and/or software operating on one or more servers, computer systems, host or mainframe computers, workstations, etc. In some embodiments the memory106may be operating on some or all of the same device(s) as other components in the system100.

In certain embodiments of the present invention, one or more of the components of the system100may be connected to or in communication with each other via a communication network. For example, turning now toFIG. 2, a system200including various components of the system100is illustrated, wherein some or all of the components are in communication via a network222. The network222may be or include the Internet, World Wide Web, a local area network, or some other public or private computer, cable, telephone, client/server, peer-to-peer, or communication network or intranet. In some embodiments, the communication network can also include other public and/or private wide area networks, local area networks, wireless networks, data communications networks, or connections, intranets, routers, satellite links, microwave links, cellular or telephone networks, radio links, fiber optic transmission lines, ISDN lines, T1 lines, DSL connections, etc. Moreover, as used herein, communications include those enabled by wired or wireless technology. In some embodiments, some or all of the network222may be implemented using a TCP/IP network and may implement voice or multimedia over IP using, for example, the Session Initiation Protocol (SIP).

Operation of an embodiment of the present invention is illustrated more particularly with reference toFIG. 3, in which a flowchart300is shown. The particular arrangement of elements in the flowchart300is not meant to imply a fixed order to the elements; embodiments can be practiced in any order that is practicable.

In a step302, a user or other party can input a contact name and his or her telephone number as or into the contact list(s)102. In certain embodiments, this can include the user typing in or otherwise directly entering the contact information using an alphanumeric keypad or graphical user interface to a telephony device. In other embodiments, the contact list102can be uploaded to a telephony device from an application program running on a personal computer; in still other embodiments, the contact list102can be uploaded from a telephony device or personal computer to a service provider, as will be explained in greater detail below.

Next, in a step304, either in response to a manual selection (individual or batch) or automatically, one or more contacts on the contact list102may be provided to the text-to-speech engine104. As noted above, in certain embodiments, the user can select one or more contacts from the contact list for use in speech dialing, typically by highlighting address book entries using a graphical user interface. In other embodiments, the system will automatically select all entries, or all entries not yet selected.

In a step306, the text-to-speech engine104will generate an audio file106afor each entry in the contact list102that has been selected for processing. The audio file106acan be stored in memory106in association with the identity of the corresponding contact.

Finally, in a step308, information can be provided to the voice dialer110indicating that the particular audio file has been generated and that the associated contact is available for voice dialing.

In addition, in certain embodiments, the user may be able to select one or more controls to play back the file. If he doesn't like it, he may be able to speak the name and record it for use in speech recognition, i.e., replace the speech-converted audio file with one directly recorded. In addition, in certain embodiments, the user may be able to “voice browse” the contact list. That is, in addition to seeing the list in a GUI, and hearing the voice name corresponding to a selected user, in certain embodiments, upon selection of a voice browse mode, the user could be allowed to hear the names of all voice dialing enabled contacts.

Operation of an embodiment of the present invention is illustrated more particularly with reference toFIG. 4, in which a flowchart400illustrating operation of an embodiment of the present invention is shown. The particular arrangement of elements in the flowchart400is not meant to imply a fixed order to the elements; embodiments can be practiced in any order that is practicable.

Initially, in a step402, a user can activate a voice dialing mode. For example, the user can select one or more activation keys on his telephone. Once the voice dialing mode has been activated, in a step404, the user can speak the name of the party he wishes to call. In a step406, the voice dialer110receives the input and accesses the memory for the corresponding audio file(s)106a. In a step408, the voice dialer110performs one or more speech recognition routines to identify the correct contact. Once the contact has been identified, the voice dialer110can make the call, in a step410.

As noted above, embodiments of the present invention may be implemented in a telephone, such as a wireless or cellular telephone. An exemplary cellular telephone500including voice dialing capabilities in accordance with an embodiment of the present invention is shown inFIG. 5. In some embodiments, the cellular telephone500may implement one or more elements of the methods disclosed herein. As shown, the cellular telephone includes control logic502and cellular transceiver504. The cellular transceiver504allows communication over a cellular telephone network, such as a GSM or GPRS based cellular telephone network. The control logic502generally controls operation of the cellular telephone and includes a voice dialer110and TTS engine104in accordance with embodiments of the present invention.

The control logic502interfaces to a memory518for storing, among other things, contact lists102and audio files106a. The control logic502also interfaces to a user interface(s)510. The user interface(s)510can include a keypad520, speaker522, microphone524, and display526. The keypad may include one or more “hard” keys and may be implemented in whole or in part as a cursor pointing device in association with one or more “virtual” keys on the display526. In general, a user may make use of the keypad520and display526to enter contact information, and may speak into the microphone to provide the audio input(s). It is noted that other interfaces, such as voice activated interfaces may be provided. Thus, the figure is exemplary only.

As noted above, in certain embodiments, the cell phone itself may implement the entire speech recognition-voice dialing system. In other embodiments, however, the TTS engine104and dialing functions may be removed from the cell phone and provided by a service provider. Such an implementation is shown with reference toFIG. 6. In particular,FIG. 6illustrates an exemplary service provider602, personal computer604, and cellular telephone606.

The cellular telephone606, which may be generally similar to the cellular telephone ofFIG. 5, may include an auto-dialer110aand store a contact list102b, although a TTS engine104is located at the server602. In the embodiment ofFIG. 6, the dialer110amay be a voice dialer or traditional keypad dialer that can allow the user to call a desired telephone number or code for contacting the service provider602, as will be explained in greater detail below. The contact list102bmay be similar to the contact list102ofFIG. 1andFIG. 5, but may be uploadable and/or downloadable to/from the service provider602and/or computer604.

The service provider, which may be implemented as an Internet server, may implement a contacts list102a, TTS engine104, a memory for storing text and audio files106a, and a voice dialer110. The service provider602may be adapted to receive contact list102aentries or files from the cell phone or the personal computer604.

The personal computer604may be implemented as a conventional personal computer employing, for example, a Pentium series processor and the Windows XP operating system. In addition, the personal computer604may be used to set up and store a contacts list102c, which may be transmitted to the cell phone606or the service provider602via, for example, an Internet connection, to be stored at the cell phone or service provider as contacts list102bor102a, respectively.

That is, depending on the embodiment, the user can enter his contacts into his contact list either at the cell phone or the personal computer, using a suitable interface. In the case of the personal computer, for example, this can include a Web browser used to connect to one or more web pages provided by the service provider602.

In certain embodiments, the user can transmit the entries from the cell phone or the personal computer to the service provider602. For example, the entries or files may be transmitted via an Internet connection. The service provider602will then function to convert the entries to audio files, in a manner similar to that discussed above. In certain embodiments, the server may accept contacts in a variety of data formats, e.g., text files, CSV files, Outlook dat files, xml, etc. In addition, in certain embodiments, the contact list is uploadable from the personal computer604to the cell phone606; the cell phone can then transmit its contacts to the service provider.

When the user of the cell phone wishes to make a voice call, he can dial in to a special number at the service provider (e.g., *001); when he speaks the name of the party he wishes to talk with, the service provider602will perform speech recognition functions using the TTS engine104. If the name is recognized, then the service provider602's voice dialer110will operate to call the other party and also connect the called party to the cell phone606.

This is illustrated more particularly with reference toFIG. 7, which is a flowchart700illustrating operation of an embodiment of the present invention. The particular arrangement of elements in the flowchart700is not meant to imply a fixed order to the elements; embodiments can be practiced in any order that is practicable.

In a step702, a user can enter one or more contacts into a contact list. For example, as discussed above, the user can employ a suitable user interface at either the cellular telephone or the personal computer, depending on the embodiment. In a step704, the user can log in to a web account provided by his service provider. For example, as noted above, the user can employ a personal computer with a web browser or a suitably equipped cellular telephone. In a step706, the user can upload one or more contact list entries or an entire contact list file. For example, the user interface provided by either the telephone or the personal computer may allow for selection of individual entries or a “batch” selection of multiple entries, or selection of a contact list file. In a step708, the voice dialer110at the service provider602stores the contact list (entries) and causes the TTS engine104to perform its conversions on the entries, which stores them as audio files106ain association with the contacts. Finally, in a step710, the files are made available to the voice dialer110.

Again, as in the case of the cell-phone only embodiment, the user may be able to access the audio file for confirmation playback. In such an embodiment, the user may be able to dial an access code to connect to the server and enter or access a confirmation mode or routine; the server will access the file and play it back for the user. If the user finds it unsuitable, the user may be given the option of speaking and recording the name, replacing the converted version.

Turning now toFIG. 8, a flowchart800illustrating operation of an embodiment of the present invention is shown. The particular arrangement of elements in the flowchart800is not meant to imply a fixed order to the elements; embodiments can be practiced in any order that is practicable.

In a step802, the user can dial the voice dial access number from his cellular telephone and connect to the server602using the public switched telephone network. As noted above, this can involve pressing one or more alphanumeric keys, or other controls, such as dedicated buttons on the cellular telephone606. In a step804, the system can identify the user; for example, the system could identify the phone the user is calling from, or the number dialed into. Alternatively, the system could prompt the user to enter or say an identification.

In a step806, once the voice dial system has been accessed, the user can speak the name of the party he is attempting to call. In a step808, the voice dialer110receives the input, and compares it against the names of parties for whom voice dialing is activated. That is, the voice dialer110will access the audio files106aand perform one or more speech recognition functions. If the name is identified, then in a step810, the voice dialer110will cause the service provider602to make a call to the other party. Finally, the server602can connect the caller to the other party, in a step812.

FIG. 9is a diagram illustrating an exemplary server900according to embodiments of the present invention. The server900may be representative, for example, of the service provider ofFIG. 6. In some embodiments, the server900may include or operate a text-to-speech engine104, contacts lists102, voice dialer110, and audio files106a. The server900may be embodied as a single device or computer, a networked set or group of devices or computers, a workstation, mainframe or host computer, etc. In some embodiments, the server900may implement one more elements of the methods disclosed herein.

The server900may include a processor, microchip, central processing unit, or computer902that is in communication with or otherwise uses or includes one or more communication ports904for communicating with user devices and/or other devices. The communication ports904may include such things as local area network adapters, wireless communication devices, telephone network adapters, Bluetooth technology, etc. The server900also may include an internal clock element906to maintain an accurate time and date for the server900, create time stamps for communications received or sent by the server900, etc.

If desired, the server900may include one or more output devices908such as a printer, infrared or other transmitter, antenna, audio speaker, display screen or monitor, text to speech converter, etc., as well as one or more input devices910such as a bar code reader or other optical scanner, infrared or other receiver, antenna, magnetic stripe reader, image scanner, roller ball, touch pad, joystick, touch screen, microphone, computer keyboard, computer mouse, etc.

In addition to the above, the server900may include a memory drive or data storage device920to store information, software, databases, documents, communications, device drivers, etc. The memory or data storage device920may be implemented as an appropriate combination of magnetic, optical and/or semiconductor memory, and may include, for example, Read-Only Memory (ROM), Random Access Memory (RAM), a tape drive, flash memory, a floppy disk drive, a Zip™ disk drive, a compact disc and/or a hard disk. The server900also may include memory914, such as ROM919and RAM919.

The processor902and the data storage device920in the server900each may be, for example: (i) located entirely within a single computer or other computing device; or (ii) connected to each other by a remote communication medium, such as a serial port cable, telephone line or radio frequency transceiver. In one embodiment, the server900may be implemented as one or more computers that are connected to a remote server computer for maintaining databases.

A conventional personal computer or workstation with sufficient memory and processing capability may be used as the server900. The server900may be capable of high volume transaction processing, performing a significant number of mathematical calculations in processing communications and database searches. A Pentium™ microprocessor such as the Pentium III™ or IV™ microprocessor, manufactured by Intel Corporation may be used for the processor902. Other suitable processors may be available from Motorola, Inc., AMD, or Sun Microsystems, Inc. The processor902also may be embodied as one or more microprocessors, computers, computer systems, etc.

Software may be resident and operating or operational on the server900. The software may be stored on the data storage device920and may include a control program922for operating the server, databases, etc. The control program922may include or interface to the text-to-speech engine104, voice dialer110, contacts lists102, and audio files106a.

The control program and control units may control the processor902. The processor902may perform instructions of the control programs, and thereby operate in accordance with the methods described in detail herein. The control program and control units may be stored in a compressed, uncompiled and/or encrypted format. The control program and control units furthermore includes program elements that may be necessary, such as an operating system, a database management system and device drivers for allowing the processor902to interface with peripheral devices, databases, etc. Appropriate program elements are known to those skilled in the art, and need not be described in detail herein.

According to some embodiments, the instructions of the control program may be read into a main memory from another computer-readable medium, such as from the ROM916to the RAM918. Execution of sequences of the instructions in the control program causes the processor902to perform the process elements described herein. In alternative embodiments, hard-wired circuitry may be used in place of, or in combination with, software instructions for implementation of some or all of the methods described herein. Thus, embodiments are not limited to any specific combination of hardware and software.

The processor902, communication ports904, clock906, output device908, input device910, data storage device920, ROM919, and RAM919may communicate or be connected directly or indirectly in a variety of ways. For example, the processor902, communication ports904, clock906, output device908, input device910, data storage device920, ROM919, and RAM919may be connected via a bus934.

While specific implementations and hardware/software configurations for the server900have been illustrated, it should be noted that other implementations and hardware configurations are possible and that no specific implementation or hardware/software configuration is needed. Thus, not all of the components illustrated inFIG. 9may be needed for the server900implementing the methods disclosed herein.

The methods described herein may be embodied as a computer program developed using an object oriented language that allows the modeling of complex systems with modular objects to create abstractions that are representative of real world, physical objects and their interrelationships. However, it would be understood by one of ordinary skill in the art that the invention as described herein could be implemented in many different ways using a wide range of programming techniques as well as general-purpose hardware systems or dedicated controllers. In addition, in some embodiments, many, if not all, of the elements for the methods described above are optional or can be combined or performed in one or more alternative orders or sequences and the claims should not be construed as being limited to any particular order or sequence, unless specifically indicated.

Each of the methods described above can be performed on a single computer, computer system, microprocessor, etc. In addition, in some embodiments, two or more of the elements in each of the methods described above could be performed on two or more different computers, computer systems, microprocessors, etc., some or all of which may be locally or remotely configured. The methods can be implemented in any sort or implementation of computer software, program, sets of instructions, programming means, code, ASIC, or specially designed chips, logic gates, or other hardware structured to directly effect or implement such software, programs, sets of instructions, programming means or code. The computer software, program, sets of instructions or code can be storable, writeable, or savable on any computer usable or readable media or other program storage device or media such as a floppy or other magnetic or optical disk, magnetic or optical tape, CD-ROM, DVD, punch cards, paper tape, hard disk drive, Zip™ disk, flash or optical memory card, microprocessor, solid state memory device, RAM, EPROM, or ROM.

The foregoing description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The drawings and description were chosen in order to explain the principles of the invention and its practical application. The drawings are not necessarily to scale and illustrate the device in schematic block format. It is intended that the scope of the invention be defined by the claims appended hereto, and their equivalents