Abstract:
A speaker-verification digital signature system is disclosed that provides greater confidence in communications having digital signatures because a signing party may be prompted to speak a text-phrase that may be different for each digital signature, thus making it difficult for anyone other than the legitimate signing party to provide a valid signature.

Description:
PRIORITY INFORMATION 
       [0001]    The present application is a continuation of U.S. patent application Ser. No. 11/312,403, filed Dec. 21, 2005, the contents of which is herein claimed in its entirety. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    Using digital signatures is a convenient method for providing authentication in digital communications. Thus, new technology is needed to provide greater confidence in digital signatures. 
       SUMMARY 
       [0003]    A speaker-verification digital signature system is disclosed that provides greater confidence in communications having digital signatures because a signing party may be prompted to speak a text-phrase that may be different for each digital signature, thus making it difficult for anyone other than the legitimate signing party to provide a valid signature. For example, the text-phrase may be a set of words taken from a communication being transmitted by the signing party or generated spontaneously from a large corpus of text-phrases. 
         [0004]    For example, when a party desires to provide a speaker-verification digital signature for an email, the email may be sent to an authentication service that prompts the party to speak a text-phrase generated by the authentication service. When the party&#39;s speech is received, the authentication service may confirm the party&#39;s identity by comparing the speech against the text-phrase using speaker-independent speech-recognition. Additionally, the audio signal of the party&#39;s speech may be processed to extract features and compared against one or more voice-templates that were previously trained by the party. If both of the above tests exceed appropriate thresholds, then the authentication service may transmit a speaker-verification digital signature associated with the email to recipients of the email for confirmation of the party&#39;s authentication. 
         [0005]    The authentication service may provide a registration procedure for interested parties to register voice-templates for generating speaker-verification digital signatures. For example, the authentication service may perform a voice-template training process so that the interested parties may establish their identity by generating their voice-templates to be stored in a secured repository for use by the authentication service to generate speaker-verification digital signatures. Alternatively, voice-templates may be generated elsewhere such as by interested parties&#39; end-user systems and the voice-templates provided to the authentication service to be stored in the repository. 
         [0006]    Voice-templates may be one or more patterns, models, etc. Voice-templates may be generated by requesting a party to speak one or more text-phrases. Audio signals corresponding to the party&#39;s speech may be processed to extract voice features that may be used to generate a voice-template for text-independent speaker-verification. While speaker-independent speech-recognition may be used to decode the spoken words, voice-templates for a registered party may be used to enhance speech-recognition. In this way, the authentication service may provide speaker-verification digital signatures for recipients of digital communications from a registered party to authenticate the identity of the registered party as the source of the digital communication. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]    The invention is described in detail with reference to the following figures, wherein like numerals reference like elements, and wherein: 
           [0008]      FIG. 1  shows an exemplary speaker-verification digital signature system; 
           [0009]      FIG. 2  shows an exemplary end user system shown in  FIG. 1 ; 
           [0010]      FIG. 3  shows an exemplary block diagram of an authentication service system; 
           [0011]      FIG. 4  shows an exemplary data structure of a repository of voice-templates; 
           [0012]      FIG. 5  shows a flowchart of an exemplary authentication service process; 
           [0013]      FIG. 6  shows a flowchart of an exemplary end-user system process for requesting speaker-verification digital signatures; 
           [0014]      FIG. 7  shows a flowchart of an exemplary registration process of authentication service system; and 
           [0015]      FIG. 8  shows a flowchart of an exemplary end-user system process for receiving a communication having a speaker-verification digital signature. 
       
    
    
     DETAILED DESCRIPTION 
       [0016]      FIG. 1  shows an exemplary diagram of a speaker-verification digital signature system  100  that includes end-users systems  104 - 110 , authentication service system  112  and repository  114 . All of these components may be coupled together via network  102 . Network  102  may be any combination of networks such as the Internet, local area networks (LANs), wide area networks (WANs), wireless, wired, and/or optical networks, etc. 
         [0017]    End-users using end-user systems  104 - 110  may communicate with each other by sending email, facsimile, etc. When it is desired to provide authentication of the source of a digital communication such as a for a business contract, for example, the end-users may wish to provide speaker-verification digital signatures in connection with the digital communication so that receiving parties may have confidence that the source of the received digital communication is as claimed in the digital communication. 
         [0018]    When an end-user using end-user system  104  communicates with end-users of end-user systems  106 - 110  via email and desires to provide a speaker-verification digital signature, a request may be sent to authentication service system  112 . When the request is received, authentication service system  112  may generate a text-phrase and send the text-phrase to send-user system  104  which may prompt the end-user to speak the text-phrase to generate an audio signal. The audio signal may be sent to authentication service system  112 , along with the destination addresses from the email. The email may be sent to the destination addresses either independently of the authentication service system  112  or by the authentication service system  112 . If the email is sent independently of the authentication service system  112 , end-user system  104  must first add a session Identification (ID) to the email before sending. The speaker-verification digital signature sent to the destination addresses by authentication service system  112  will also be identified by the same session ID. The session ID may be generated so that it is unique for each destination address, unique for each requesting party, and/or unique for each communication. Separately sending the email and the speaker-verification digital signature may provide another added level of security since it would be more difficult to spoof the speaker-verification digital signature by capturing both the email and the speaker-verification digital signature and resending with tampered data. 
         [0019]    When the audio signal is received, authentication service system  112  may perform a speaker-independent speech recognition process on the received audio signal and compare decoded words from the audio signal against the prompted text-phrase. One or more voice-templates may be retrieved from repository  114  that corresponds to an identity claimed in the email (e.g., the “from” field in the email), and features extracted from the received audio signal may be compared against the retrieved one or more voice-templates to determine authenticity of the identity that is claimed to be the source of the email. 
         [0020]    The speaker-independent speech-recognition comparison makes it difficult for an impostor to use a recording of a person&#39;s voice to impersonate that person as a sender of the email, while the speaker-verification comparison positively identifies the identity of the speaking party. If results of these comparisons exceed one or more appropriate thresholds, then a match may be achieved, and authentication service system  112  may issue a speaker-verification digital signature that authenticates the claimed source. 
         [0021]    For example, authentication service system  112  may send the session ID to end-user system  104  that is added to the email, and generate a speaker-verification digital signature in the form of authentication information such as the session ID packaged with either a certificate of authentication confirming the claimed party as the source, or the comparison results in terms of a confidence level if the one or more appropriate thresholds were not exceeded. This authentication information may be sent to the one or more destination addresses identified in the email (e.g., the “To” list) such as one or more end-user systems  106 - 110 . 
         [0022]    When the speaker-verification digital signature and the email both arrive at the destinations, end-user systems  106 - 110  may save the speaker-verification digital signature until the receiving party opens the email. When the email is opened, end-user system  106 - 110  may display the authentication information based on the speaker-verification digital signature having the same session ID as in the email so that the receiving party may assess the authenticity of the email. 
         [0023]      FIG. 2  shows an exemplary end-user system  200  that may include a controller  202  such as a personal computer processor which may execute software to perform the processes discussed below, a display  204 , a keyboard  206 , a mouse  208 , speakers  210  and a microphone  212 , for example. An end-user may use end-user system  200  to compose a digital communications such as email, facsimile, file transfers, etc., for example. If a speaker-verification digital signature is desired for authentication, a request for generating the speaker-verification digital signature may be transmitted to authentication service system  112  via a network interface (not shown) of end-user system  200 . When received, authentication service system  112  may send a text-phrase to end-user system  200 . End-user system  200 , may display the text-phrase on display  204  together with a prompt for the end-user to speak the text-phrase into microphone  212  to generate an audio signal. When the audio signal is received, controller  202  may transmit the audio signal to authentication service system  112  for confirming authenticity of the speech of the sender and generating the speaker-verification digital signature. 
         [0024]      FIG. 3  shows an exemplary block diagram of authentication service system  112  that may include a controller  220 , am memory  222 , a voice-template  224 , a voice information comparator  226  and a network interface  228 . The above components may be coupled together via bus  230 . Although  FIG. 3  shows repository  114  stored in memory  222 , as an example, repository  114  may be stored elsewhere and authentication service system  112  may access repository  114  via network interface  228 , for example. Memory  222  may comprise one or more mass storage devices such as ROM, RAM, optical disk(s), hard disk(s), etc. 
         [0025]    While  FIG. 3  shows authentication service system  112  using a bus architecture, any type of hardware architecture, including wire, wireless and/or optical networks may be used based on implementation details. Components  222 - 228  may be connected to controller  220  via any number of methods including being connected via IO ports of controller  220 , via serial IO interface, via parallel high-speed backplane interface, etc., for example. Components  220 - 228  may be implemented using any available hardware technology such as FPGA, PAL, application-specific integrated circuits (ASICs), etc. Additionally, all of the functions performed by authentication service system  112  may be implemented partly or completely in software as programs executing on a general purpose or special purpose computer. 
         [0026]    When a request for speaker-verification digital signature is received via network interface  228 , controller  220  may generate a session ID and send the session ID to the requesting end-user system for inserting into a digital communication associated with the request. As noted above, the session ID may be unique in many different senses. For example, the session ID may be unique for each communication. However, is an under of session IDs becomes too large, the session IDs may be unique for different communications of the same party but may be the same as that of other parties, for example. If authentication service system  112  is sending the digital communication, the controller  220  inserts the session ID into the communication. 
         [0027]    Controller  220  may generate a text-phrase that would make it difficult to predict the contents of the text-phrase. For example, the text-phrase may be generated from a large corpus of phrases, a source of random words, or spontaneously from a prior communication, for example. The generated text-phrase which may include one or more words may be saved for each party requesting speaker-verification digital signature for later use or for guaranteeing that the phrases are not used again. The generated text-phrases may be deleted instead of being saved in repository  114  to avoid copying by imposters. 
         [0028]    Controller  220  may transmit the generated text-phrase to end-user system  104 - 110  that may display the text-phrase and prompt an end-user to speak the text-phrase. The audio signal generated by the end-user speech may be returned to authentication service system  112  via network  102  and network interface  228 . As an alternative, the audio signal may be converted into voice features and transmitted to authentication service system  112  to be used in the verification process. When the audio signal is received, controller  220  may command voice information comparator  226  to determine whether words spoken by the end-user match the text-phrase that was transmitted to end-user system  104 - 110 . 
         [0029]    Voice information comparator  226  may perform text-independent speaker-verification by first retrieving from repository  114  one or more voice templates that correspond to an identified party indicated in the request for the speaker-verification digital signature. The comparator may extract features from the retrieved audio signal and comparing the extracted features against the one or more voice templates. If the compare results exceed one or more appropriate thresholds, a text-independent match may be achieved. 
         [0030]    Voice information comparator  226  may perform speech-recognition on the received audio signal to extract one or more words spoken by the end-user. The extracted words may be compared against the text-phrase that was transmitted to end-user system  104 - 110  to determine whether the audio signal contains the text-phrase and to generate a compare result such as a percentage of match. If the percentage of match exceeds one or more appropriate thresholds, then a match is achieved. 
         [0031]    When the results from voice information comparator  226  are generated, controller  220  and may determine whether the identity claimed in the digital communication is authenticated based on a combination of the speech-recognition and the text-independent comparisons. For example, speech characteristics of end-users may vary across a broad range causing variability in the performance of voice recognition and extracted feature comparisons. If a particular end-user has poor pronunciation but easily recognizable voice features, the speaker-verification comparison may produce high confidence results while the speech-recognition comparison may produce low confidence results. Thus, the results of the speaker-verification comparison and the speech-recognition comparison may be individually weighted using different weights for different end-users. Depending on the outcome of the weighted results, controller  220  may determine whether a match is achieved. 
         [0032]    If a match is achieved, controller  220  may generate an authentication certificate and package the authentication certificate with the session ID as authentication information and transmit the authentication information to destination addresses indicated in the communication. The communication may be also transmitted either together with the authentication information or separately. If a match is not achieved, the transmitted authentication information may indicate the failure and may provide one or more confidence scores related to the speech-recognition and/or speaker-verification determinations, for example. 
         [0033]    If a party desires to register a voice-template, voice-template generator  224  of authentication service system  112  may transmit a text-phrase to the party&#39;s end-user system  104 - 110 , which, in turn, may display the text-phrase on a display and prompt the party to speak the text-phrase. Once audio signals of the party&#39;s speech are received, the party&#39;s end-user system  104 - 110  may send the audio signal to voice-template generator  224  for generating a voice-template for the party. When received via network interface  228 , for example, voice-template generator  224  may proceed with the voice-template generation process if a voice-template is not provided. If additional samples of the party&#39;s speech are required, voice-template generator  224  may request the party&#39;s end-user system  104 - 110  to again prompt the party to speak another text-phrase when the one or more voice-templates are generated, controller  220  may store the voice-templates in repository  114  together with recordation date and time, weights, etc., for example. 
         [0034]    Alternatively, the party&#39;s end-user system  104 - 110  may generate one or more voice-templates using a similar process as discussed above and forward the voice-templates to authentication service system  112  for storage in repository  114 . The authentication service system  112  may challenge the voice-templates by requesting the party to speak one or more text-phrases, as discussed above. The received audio signals may be matched against the provided voice-templates, and the challenge is successful if a match is achieved. If the challenge is successful, then the voice-templates may be stored in the repository together with the other associated information discussed above. 
         [0035]      FIG. 4  shows an exemplary data structure  240  of repository  114 . Data structure  240  may include rows  242  where each row corresponds to a party that has registered one or more voice-templates for generating speaker-verification digital signatures. Column  244  indicates an identification for each of the parties such as a name, for example. Column  246  includes various information types that may be recorded for each of the registered parties. For example, the data stored for each of the parties may be one or more voice-templates, the date that the voice-templates were recorded, various weights that may be used to determine a match of provided one or more audio signals against the voice-templates, a text-phrase log that records the text-phrases that have been used in the past for speaker-verification, historical data regarding any mismatches corresponding to any particular text-phrases, etc. As shown in  FIG. 4 , pointers may be used for many of the entries so that the data may be stored efficiently in appropriate data structures suitable for each of the data types. 
         [0036]      FIG. 5  shows a flowchart of an exemplary process of authentication service system  112 . In step  302 , the process determines whether a request for speaker-verification digital signature has been received. If a request has been received, the process goes to step  304 ; otherwise, the process returns to step  302 . In step  304 , the process generates a session ID, sends the session ID to the requesting end-user system, outputs a text-phrase to the requesting end-user system for displaying to the requesting party and prompting the requesting party to speak the text-phrase, and goes to step  306 , the process determines whether an audio signal is received. If the audio signal is received, the process goes to step  308 ; otherwise, the process goes to step  310 . In step  310 , the process increments a timer and goes to step  312 . In step  312 , the process determines whether a maximum amount of time has been exceeded. If exceeded, the process goes to step  314 ; otherwise, the process returns to step  306 . In step  314 , the process returns an error message to the requesting party indicating that the speaker-verification digital signature was not generated, and the process goes to step  322 . 
         [0037]    In step  308 , the process retrieves from repository  114 , for example, one or more voice-templates corresponding to a claimed identity indicated in the communication and goes to step  316 . In step  316 , the process determines whether the voice-templates are found. If the voice-templates are found, the process goes to step  318 ; otherwise the process goes back to step  314 . In step  318 , the process performs speech-recognition and speaker-verification between the received audio signal and the retrieved voice-templates. As discussed above, the speech-recognition performs recognition on the signal to determine whether the text-phrase is included in the speech; and the speaker-verification extracts from the audio signal and compares the features against the retrieved voice-templates to determine a degree of match. The results of the speaker-independent speech-recognition and speaker-verification may be weighted using an appropriate algorithm to determine whether a match has been achieved. 
         [0038]    If a match has been achieved, the process may generate an authentication certificate; otherwise, the process may generate a confidence score. After step  318 , the process proceeds to step  320 . In step  320 , the process packages the session ID with either the confidence score and/or the authorization certificate as authentication information and transmit the authentication information (and the communication if requesting party requested the communication to be transmitted together with the authentication information) to recipients indicated in the original request. For example, if the communication is an email, the recipients may be indicated in the “To” list of the email. After step  320 , the process goes to step  322 . In step  322 , the process determines whether another request has been received. If another request has been received, the process returns to step  304 ; otherwise, the process goes to step  324  and ends. 
         [0039]      FIG. 6  shows a flowchart  450  of an end-user system process for requesting a speaker-verification digital signature. In step  452 , the process generates a communication based on end-user inputs and goes to step  454 . In step  454 , the process determines whether the end-user desires to generate a speaker-verification digital signature. If a speaker-verification digital signature is desired, the process goes to step  458 ; otherwise, the process goes to step  456 . In step  456 , the process transmits the communication to communication recipients indicated in the communication and goes to step  474 . 
         [0040]    In step  458 , the process transmits a speaker-verification digital signature request to an authentication service system and goes to step  460 . In step  460 , the process determines whether a text-phrase and a session ID has been received. If the text-phrase and session ID has been received, the process goes to step  466 ; otherwise, the process goes to step  462 . In step  462 , the process determines whether a wait-time for receiving the text-phrase has expired. If the wait time has expired, the process goes to step  464 ; otherwise, the process returns to step  460 . In step  464 , the process generates a failure message indicating that the request for speaker-verification digital signature has failed and goes to step  474 . 
         [0041]    In step  466 , the process displays the received text-phrase and prompts the end-user to speak the text-phrase and goes to step  468 . In step  468 , the process determines whether the end-user speech has been received. If the end-user speech has been received, the process goes to step  470 ; otherwise, the process goes to step  472 . In step  472 , the process determines whether a wait time for receiving the end-user speech has expired. If the wait time has expired, the process goes to step  464 ; otherwise, the process returns to step  468 . In step  470 , the process sends the audio signal to the authentication service system, adds the session ID to the communication, transmits the communication having the session ID, and goes to step  474 . In step  474 , the process determines whether the end-user desires to prepare another communication. If another communication is desired, the process returns to step  452 ; otherwise, the process goes to step  476  and ends. 
         [0042]      FIG. 7  shows a flowchart  500  of a process for registering a party&#39;s voice-template. In step  502 , the process prompts a registering party to speak a text-phrase and goes to step  504 . In step  504 , the process determines whether an audio signal has been received from the registering party. If the audio signal has been received, the process goes to step  512 ; otherwise, the process goes to step  506 . In step  506 , the process increments a timer and goes to step  508 . In step  508 , the process determines whether a maximum time has been exceeded. If a maximum time has been exceeded, the process goes to step  510 ; otherwise, the process returns to step  504 . In step  510 , the process outputs a message indicating that the registration process has failed and goes to step  526  and ends. 
         [0043]    In step  512 , the process determines whether additional speech input from the registering party is needed. If additional speech input is needed, the process returns to step  502 ; otherwise, the process goes to step  514 . In step  514 , the process generates one or more voice-templates and goes to step  516 . In step  516 , the process determines whether voice-templates for the identified registering party are already stored in the repository. If voice-templates are in the repository, the process goes to step  520 ; otherwise, the process goes to step  518 . In step  518 , the process stores the voice-template in the repository and goes to step  526 . 
         [0044]    In step  520 , the process determines whether the new voice-template is substantially identical with the voice-template already in the repository. If substantially identical, the process goes to step  522 ; otherwise, the process goes to step  524 . In step  522 , the process resolves the two sets of voice-templates by combining the voice-templates, and storing the combined template in the repository and goes to step  526 . In step  524 , the process may resolve the apparent discrepancy by storing the latest voice template in the repository, for example, and goes to step  526 . 
         [0045]    When an end-user selects an email for viewing, end-user system  104 - 110  may first determine whether the selected email includes a session ID. If a session ID is found, end-user system  104 - 110  may search for received authentication information that includes the same session ID. If the authentication information is found, end-user system  104 - 110  may display the email and the authentication information to the end-user. If the authentication information for the same session ID is not found, end-user system  104 - 110  may wait for a preset amount of time, for example, to permit the authentication information sent by authentication service system  112  to arrive. If the authentication information is not received after the preset time has expired, end-user system  104 - 110  may display the email with an indication that expected authentication information has not been received. 
         [0046]      FIG. 8  shows a flowchart  550  of an exemplary end-user system process for receiving email that was signed with a speaker-verification digital signature. In step  552 , the process determines if an end-user desires to view email. If the end-user desires to view email, the process goes to step  554 ; otherwise the process returns to step  552 . In step  554 , the process retrieves a selected email and goes to step  556 . In step  556 , the process determines whether the retrieved email includes a session ID indicating that the email has been signed with a speaker-verification digital signature. If the email includes a session ID, the process goes to step  558 ; otherwise the process goes to step  566 . In step  566 , the process displays the retrieved email and goes to step  568 . 
         [0047]    In step  558 , the process determines whether authentication information that includes the same session ID as the selected email has been received. If the authentication information has been received, the process goes to step  564 ; otherwise, the process goes to step  560 . In step  560 , the process determines whether a preset wait time has expired. The wait time allows authentication service system  112  and network  102  adequate time to transmit the authentication information. If the wait time has expired, the process goes to step  562 ; otherwise, the process returns to step  558 . In step  562 , the process displays the selected email with an indication that the email was signed with a speaker-verification digital signature, but the authentication information has not been received, and the process goes to step  568 . In step  568 , the process determines whether the end-user selected another email. If another email is selected, the process returns to step  554 ; otherwise, the process goes to step  570  and ends. 
         [0048]    While the invention has been described in conjunction with exemplary embodiments, these embodiments should be viewed as illustrative, not limiting. Various modifications, substitutes or the like are possible within the spirit and scope of the invention.