TITLE OF INVENTION
VOICE RECOGNITION METHOD AND APPARATUS USING DYNAMIC LINK LIBRARY
CROSS REFERENCE TO RELATED APPLICATIONS
This application hereby claims the benefit of U.S. provisional application serial number 60/227,471 filed August 24, 2000 and having the same title as that of the instant application.
BACKGROUND AND SUMMARY OF THE INVENTION
The present invention relates to voice recognition units or systems (VRUs) for enabling users to remotely obtain information in an efficient and accurate manner from a database using voice commands and/or responses over a telephone system. More particularly, the invention relates to a VRU system that enables users to obtain information regarding return, warranty, replacement and/or repair of previously purchased products from a product registration system, such as the type disclosed in U.S. Patent Nos. 5,978,774 and 6,018,719, the disclosures of which are incorporated by reference herein in their entirety. The instant VRU system may, however, be used in any suitable voice recognition application.
In the past, voice recognition systems have generally relied on a method known as "screen scraping" in order to obtain the desired data for use in the VRU process. Such screen scraping methods rely on a computer screen (such as an AS/400 screen) to display information. The VRU will send the query (such as a product serial number query) to the AS/400 screen and the VRU will copy the return information it sees on the screen. This information is converted and the appropriate information (such as date information relating to a previously purchased product) are read back to the caller.
Screen scraping is not always a reliable way to retrieve data because if any screen on the AS/400 is modified and/or fields are moved around, the VRU system needs to be retrained to know what the screens look like and what parts need to be scraped (i.e., what fields contain the desired data). Thus, improvements in VRU systems are desirable.
The instant invention overcomes the problems with screen scraping VRU systems by providing a VRU system which uses a dynamic link library (DLL) instead of screen scraping in order to improve the operation of the VRU system. By using a custom DLL, things can change in the background and these changes are seamless to the VRU. In other words, the
DLL method of the instant invention does not use an AS/400 screen or other computer screen. Instead, the product serial number query (or other information query) is sent via a customized DLL to a database servlet application using, for example, HTTP protocol. In the preferred embodiment, the application accesses a specified host system such as an Oracle database and retrieves product registration information of the type indicted in the above-referenced electronic product registration system (ER or ERS) patents. The servlet returns the product registration information (or other desired information) back to the DLL, which in turn returns it back to the VRU. The VRU converts the information and the appropriate dates (or other information) are read back to the caller. In accordance with a main aspect of the instant invention, there is provided a voice response system, including a dial-in voice system operable to prompt a caller for information and to load the information into at least one object storage location of the voice system. A dynamic link library is provided for receiving the information from the VRU, wherein the VRU contains at least one field corresponding to the at least one object. A database application operable to obtain information from the dynamic link library is provided which formulates a query to a database based on the information in the dynamic link library. A result of the query is loaded into the dynamic link library, and the voice system obtains the result from the dynamic link library and communicates the result back to the user through the voice system. In accordance with another aspect of the invention, a method of operating a voice response system is provided, which includes: prompting a caller using a dial-in voice system for information; loading the information into at least one object storage location of the voice system; copying the information to a dynamic link library that contains at least one field corresponding to the at least one object in the voice system; obtaining information from the dynamic link library using a database application; formulating a query to a database based on the information from the dynamic link library; passing a result of the query back to the dynamic link library; passing the result from the dynamic link library to the voice system; and communicating the result back to the user through the voice system.
In accordance with a more particular aspect of the invention, the user is prompted for a manufacturer and a serial number, and the dynamic link library includes a field for the manufacturer and serial number data received from the voice system, and further wherein the dynamic link library receives date information from the database which indicates a last date on which a product corresponding to the entered information from the caller can be returned. This
date information is then transferred to the voice system from the DLL for reply back to the caller through the voice system.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be further understood by review of the following detailed description of the invention when read in conjunction with the appended drawings, in which:
FIGURE 1 is an exemplary high-level flow chart illustrating the operation of the instant VRU system;
FIGURE 2 is a schematic diagram of the interaction between the VRU, DLL and database in accordance with a preferred embodiment of the instant invention. FIGURE 3 is a more detailed flow-chart illustrating a preferred embodiment of the operation of the instant VRU system;
FIGURE 4 is an exemplary block diagram illustrating the VRU watchdog feature of the instant invention; and
FIGURE 5 is an exemplary block diagram of the speech watchdog feature of the instant invention.
DETAILED DESCRIPTION OF THE DRAWINGS
The preferred embodiment of the instant invention will now be described with reference to the drawings. It is noted that this description of the invention is only exemplary and is not meant to limit the invention beyond the express scope of the appended claims. Referring now to Fig. 1, the high-level flow of the VRU system of the instant invention includes a first step 10 of greeting a caller who calls the VRU system. In this step, the VRU uses voice prompts to prompt the user to enter information through the telephone or other communication device needed in connection with the particular application in which the VRU system is employed. For example, when used in an Electronic Product Registration (ER) system, such as described in the above-referenced patents, the VRU prompts the user to enter information regarding the specific product that the user is calling about, such as the product serial number and manufacturer. The VRU includes a predefined object for each of the pieces of information that is requested by the VRU. The VRU then passes the information to a customized Dynamic Link Library (DLL) (Step 12). The DLL includes predefined fields corresponding to the objects in the VRU. The DLL also includes additional fields to be loaded
with information from the database to be passed back to the caller, as will be described in greater detail below.
Once the DLL has data passed to it by the VRU, a database application program uses the information in the DLL to formulate a query to a database, such as an Oracle® database or the like. The database is then queried (Step 14) to obtain information therefrom corresponding in some way to the information provided by the caller. The result of the query is then passed back to the DLL and is loaded into predefined fields in the DLL. The VRU then obtains the resulting information from the DLL and loads the information into corresponding objects in the VRU (Step 18). The VRU then provides the information back to the waiting caller, thereby providing the caller with the information that was requested (Step 20).
Fig. 2 shows the interaction between the VRU 22, DLL 24 and database 26 during an exemplary call from a user of the VRU system. In this example, the VRU system is designed to work in conjunction with an ER system, wherein the caller requests return or warranty information on a previously purchased product. As seen in Fig. 2, in this embodiment the VRU includes objects for Manufacturer, Serial No. and Zip Code. Thus, this is the information that is requested from the caller by the VRU. The DLL 24 includes predefined fields that correspond to these three VRU objects. Thus, the object data from the VRU is loaded directly into the predefined fields in the DLL. In this example, the Manufacturer and Serial No. are used by the database application program to formulate a first query to the database. In this example, the result of this first query is the last date for return and/or warranty repair for the product identified by the entered serial number. The database includes a product registration database that is established using, for example, the ER system described in the above-listed ER patents. However, any suitable database can be used depending on the particular application in which the invention is employed. The result of the first database query is loaded into a corresponding field of the DLL
(e.g., Return Date field). The VRU 22 then obtains the return date information from the DLL and stores it as a predefined return date object. The VRU then uses the date object to provide a voice response back to the caller to communicate the date information back to the caller. In this manner, the VRU system of this example enables the caller to enter product information and get return date information back from the system, thereby informing the user whether or not the product qualifies for return and/or warranty repair.
In the example of Fig. 2, the caller is given the option of obtaining information on service centers for the product by entering zip code information when prompted by the VRU.
As with the Manufacturer and Serial No. information, the Zip information is passed to the DLL and then used by the database application program to formulate a second query to the database. The second query uses the zip code information to obtain information on the three closest service centers for the product. This service center information is then passed back to the DLL and finally to the VRU in order to provide the service center information to the caller. This information is useful to the caller when, for example, the product no longer qualifies for return under qualification guidelines from the ER database.
Fig. 3 shows an overall flow chart of the exemplary VRU system of the instant invention and as described above in connection with Figs. 1 and 2. As shown in Fig. 3, when a call comes in to the VRU, the caller is greeted with the welcome message. The VRU then prompts the caller for initial information, such as the manufacturer of a purchased product. This step is preferably a speech recognition step and can recognize several manufacturers and product types associated with those manufacturers (i.e., NOA, SEGA, PHILIPS). If the manufacturer spoken is a registered client of the product registration system, the VRU prompts the caller to speak or key in the serial number of the product. After the caller provides the serial number, the custom DLL 24 takes that information and sends it via, for example, HTTP to a servlet, which in turn sends it to the Oracle table to query. After retrieving the serial number information, the DLL returns with the return and/or warranty dates. The VRU converts all of the DLL information into sentences, which is then played back to the caller. This whole process preferably takes about 3-5 seconds to complete. The VRU will then ask the caller if they want the information repeated or give options to lookup a service center (based on the specific product they looked up), get the 800# for the manufacturer, or try another serial number. If the caller chooses to lookup a service center, the VRU prompts the caller to speak or key in their zip code. Using another custom DLL, the VRU sends the product information and zip code to the servlet. The servlet works with an application, which assigns latitude and longitude and then provides the three closest locations to the zip code provided. The three closest service centers are sent back to the VRU and the VRU assigns the appropriate voice files to play according to the information given back by the DLL. This process preferably takes about 3-5 seconds to complete. The results are then played back to the caller asking which service center they would like information on. After the service center information is complete, the caller can repeat the information, try another zip code, or start over with another serial number.
Any known and suitable type of voice recognition system may be used to interact with the caller, and the details of such systems are well-known. Thus, additional details regarding the specific operation of the VRU itself are not provided herein.
As can be seen from the example above, the customized DLL acts as an interface between the VRU and the registration database. As can be seen in Fig. 3, the preferred embodiment includes a serial number lookup portion and a service center lookup portion. Further details on the DLL are provided below with respect to each of these portions of this embodiment.
In accordance with the serial number lookup portion, when someone calls the VRU, the caller is prompted for the manufacturer of the product. This step is only optional in this embodiment. Depending on the desires of the designer of the system, the manufacturing information could be omitted, as this information may be obtained directly from the serial number. After the caller speaks the manufacturer, the caller is prompted for the serial number. The caller speaks the serial number into the VRU. The VRU then loads the serial number and the manufacturer into the DLL. The DLL is sent to an application server and the information is given to a servlet. The servlet gathers the registration information and then loads the DLL with all of the registration related dates and information. The DLL returns to the VRU and the VRU converts the dates and information and then reads back the information to the caller. This completes the serial number lookup portion of this embodiment. In accordance with the service center lookup, after a serial number lookup is finished, the caller can choose to speak in their zip code to lookup the closest service center for that specific product. After a zip code is spoken, the DLL loads the zip code and the serial number (given by the first DLL). The DLL is sent to an application server and the information is given to a servlet. The servlet gathers the 3 closest service centers and loads them into the DLL. The DLL returns to the VRU and the VRU reads back the 3 locations that were provided by the DLL. This completes the service center lookup portion.
It is noted that a single customized DLL may be used or a plurality of customized DLLs may be used to implement the invention. In the less complex applications, such as described above, a single DLL can be used for both the serial number lookup portion and the service center lookup portion. It is further noted that the ER system application of the invention described above is only one example as to how the instant invention can be implemented. In accordance with the invention, the customized DLL can be used in connection with any suitable voice recognition and response system to improve the overall operation thereof.
In many VRU systems, it is important to assure that the system is operating properly by performing periodic tests of certain aspects of the VRU system. Figs. 4 and 5 show exemplary processes for testing the operation of the system. Fig. 4 shows a VRU watchdog process that can be used in accordance with the instant invention to check the overall operation of the VRU system. Fig. 5 shows a speech watchdog process that can be used in connection with the VRU watchdog of Fig. 4 to check the speech recognition server of the VRU system is operating properly. Each of these watchdog processes of Figs. 4 and 5 will be explained in greater detail below.
Referring now to Fig 4, the VRU watchdog process is used to check various parts of the system, including the serial number lookup DLL, the service center lookup DLL, local access to the database, the speech recognition server, as well as any other VRUs running in parallel to support sufficient traffic through the VRU system. As can be seen in Fig. 4, a first check is made to determine if the serial number lookup DLL is functional. If not, the system automatically pages or otherwise contacts the appropriate support personnel for the VRU system. If the serial number DLL is functional, then the system checks to see if the service center lookup DLL is functional. If not, the system automatically pages the appropriate support person. If the service center DLL is functional, the system checks to see if the local access to the database is operating. If not, the system automatically contacts the support person. If the local access is fine, the system checks the speech recognition server by calling the watchdog application of Fig. 5, which will be described in detail below in connection with Fig. 5. If the speech server is not operating properly, the support person is contacted. Finally, any other VRU systems operating in parallel to support the anticipated traffic to the VRU system is checked in the same manner as described above. Any errors that are found are logged by the system with a time and date stamp in a local access database. The VRU watchdog is preferably designed to run every 15 minutes and checks all of the DLL's, local databases, speech recognition server, and the other VRU(s), if any. In the preferred embodiment, there are at least two VRU's that have these watchdogs running. If there is a failure in any section of the testing, the VRU will page the VRU support team with the specific error that was encountered. The system will also create a log entry on the local database with the exact error, the date, and the time the error was encountered. Further details on the particular operation of this VRU watchdog are provided below.
As indicated above, the system checks all DLL's by sending a request to the servlet (to simulate a consumer calling on a specific serial number) and the watchdog expects specific
data to come back. If the data is not accurate or the DLL didn't send anything at all, the system sends out the page and creates the error log entry for the failed DLL. The watchdog then checks the local database by doing a quick query. If the database connection is not there, the system sends out the page to the support group. The next check for the watchdog is the speech recognition server. The watchdog places a call to the Speech Watchdog of Fig. 5 and speaks a sentence that has a high confidence. If the speech server is down, the speech watchdog handles the paging to the support group. The final check for the watchdog is calling any other VRUs running in parallel to the first VRU system. The watchdog places the call and if the other VRU doesn't answer it will page the support team and create an entry in the error log. After the checks are completed, the watchdog resets itself and waits 15 minutes and launches again. The watchdog process preferably only takes about 10 seconds to complete.
The specific operation of the speech watchdog will now be described in connection with Fig. 5. The speech watchdog waits for the VRU watchdog to call and then verifies the speech recognition server is up by recognizing prerecorded message that is guaranteed to be a certain confidence within the VRU system. In other words, the speech watchdog waits for the VRU Watchdog to call it. After receiving the call, the speech watchdog prompts for some speech. After the VRU watchdog speaks, the utterance is sent to the speech recognition server. If the speech wasn't recognized, the speech watchdog sends out a page to the support team and logs the error that the speech server is down. The speech watchdog then hangs up and waits for the watchdog to call back.
The instant invention is not limited to use in connection with electronic product registration systems (ERS), but can be used in any suitable voice recognition application in which fast, efficient and accurate processing is desired.
While the preferred forms and embodiment of the instant invention have been illustrated and described, it will be apparent to those of ordinary skill in the art that various modification and/or changes may be made to the exemplary embodiment described above. Thus, the exemplary embodiment described above is not meant to limit the scope of the invention beyond the express scope of the appended claims.