Patent Publication Number: US-2021192033-A1

Title: Detection of replay attack

Description:
TECHNICAL FIELD 
     Embodiments described herein relate to methods and devices for detecting a replay attack on a voice biometrics system. 
     BACKGROUND 
     Voice biometrics systems are becoming widely used. In such a system, a user trains the system by providing samples of their speech during an enrolment phase. In subsequent use, the system is able to discriminate between the enrolled user and non-registered speakers. Voice biometrics systems can in principle be used to control access to a wide range of services and systems. 
     One way for a malicious party to attempt to defeat a voice biometrics system is to obtain a recording of the enrolled user&#39;s speech, and to play back the recording in an attempt to impersonate the enrolled user and to gain access to services that are intended to be restricted to the enrolled user. 
     This is referred to as a replay attack, or as a spoofing attack. 
     SUMMARY 
     According to an aspect of the present invention, there is provided a method of detecting a replay attack on a voice biometrics system. The method comprises: receiving a speech signal; forming an autocorrelation of at least a part of the speech signal; and identifying that the received speech signal may result from a replay attack based on said autocorrelation. 
     Identifying that the received speech signal may result from a replay attack may comprise: comparing the autocorrelation with a reference value; and identifying that the received speech signal may result from a replay attack based on a result of the comparison of the autocorrelation with the reference value. In that case, the reference value may be an autocorrelation obtained from a user during enrolment, or the reference value may be a property of autocorrelations obtained from multiple users. 
     Identifying that the received speech signal may result from a replay attack may comprise: supplying the autocorrelation to a neural network trained to distinguish autocorrelations formed from speech signals resulting from replay attacks from autocorrelations formed from speech signals not resulting from replay attacks. 
     The received speech signal may include speech segments and non-speech segments, and the method may then comprise: selecting the speech segments of the speech signal; and forming an autocorrelation of the selected speech segments of the speech signal. 
     The received speech signal may include voiced speech segments and unvoiced speech segments, and the method may then comprise: selecting the voiced speech segments of the speech signal; and forming an autocorrelation of the selected voiced speech segments of the speech signal. 
     Forming an autocorrelation of at least a part of the speech signal may comprise: dividing the speech signal into frames of data; forming a respective partial autocorrelation of each of the frames of data; and averaging said partial autocorrelations to form said autocorrelation. 
     According to another aspect of the present invention, there is provided a system for detecting a replay attack on a voice biometrics system, the system being configured for: receiving a speech signal; forming an autocorrelation of at least a part of the speech signal; and identifying that the received speech signal may result from a replay attack based on said autocorrelation. 
     Identifying that the received speech signal may result from a replay attack may comprise: comparing the autocorrelation with a reference value; and identifying that the received speech signal may result from a replay attack based on a result of the comparison of the autocorrelation with the reference value. 
     The reference value may be an autocorrelation obtained from a user during enrolment. 
     The reference value may be a property of autocorrelations obtained from multiple users. 
     Identifying that the received speech signal may result from a replay attack may comprise: supplying the autocorrelation to a neural network trained to distinguish autocorrelations formed from speech signals resulting from replay attacks from autocorrelations formed from speech signals not resulting from replay attacks. 
     When the received speech signal includes speech segments and non-speech segments, the system may be configured for: selecting the speech segments of the speech signal; and forming an autocorrelation of the selected speech segments of the speech signal. 
     When the received speech signal includes voiced speech segments and unvoiced speech segments, the system may be configured for: selecting the voiced speech segments of the speech signal; and forming an autocorrelation of the selected voiced speech segments of the speech signal. 
     Forming an autocorrelation of at least a part of the speech signal may comprise: dividing the speech signal into frames of data; forming a respective partial autocorrelation of each of the frames of data; and averaging said partial autocorrelations to form said autocorrelation. 
     According to another aspect of the present invention, there is provided a device comprising such a system. The device may comprise a mobile telephone, an audio player, a video player, a mobile computing platform, a games device, a remote controller device, a toy, a machine, or a home automation controller or a domestic appliance. 
     According to a second aspect of the present invention, there is provided a method of speaker identification, comprising:
         receiving a speech signal;   forming an autocorrelation of at least a part of the speech signal;   comparing at least a part of the autocorrelation with at least one previously stored autocorrelation; and   identifying a speaker based on said comparison.       

     The received speech signal may include speech segments and non-speech segments, and the method may then comprise:
         selecting the speech segments of the speech signal; and   forming an autocorrelation of the selected speech segments of the speech signal.       

     The received speech signal may include voiced speech segments and unvoiced speech segments, and the method may then comprise:
         selecting the voiced speech segments of the speech signal; and   forming an autocorrelation of the selected voiced speech segments of the speech signal.       

     Forming an autocorrelation of at least a part of the speech signal may comprise:
         dividing the speech signal into frames of data;   forming a respective partial autocorrelation of each of the frames of data; and   averaging said partial autocorrelations to form said autocorrelation.       

     Comparing at least a part of the autocorrelation with at least one previously stored autocorrelation may comprise:
         comparing a part of the autocorrelation over a range of lag values with at least one previously stored autocorrelation.       

     The range of lag values may be a predetermined range of lag values. 
     The range of lag values may be determined based on said autocorrelation of at least a part of the speech signal. 
     The range of lag values may exclude lag values corresponding to lags shorter than a lag at which a first positive maximum in the autocorrelation occurs. 
     The previously stored autocorrelation may be an autocorrelation obtained from a user during enrolment. 
     According to a further aspect, there is provided a system for speaker identification, comprising:
         an input for receiving a speech signal; and   a processor configured for:   forming an autocorrelation of at least a part of the speech signal;   comparing at least a part of the autocorrelation with at least one previously stored autocorrelation; and   identifying a speaker based on said comparison.       

     There is also provided a device comprising such a system. 
     The device may comprise a mobile telephone, an audio player, a video player, a mobile computing platform, a games device, a remote controller device, a toy, a machine, or a home automation controller or a domestic appliance. 
     There is also provided a computer program product, comprising a computer-readable tangible medium, and instructions for performing a method according to the second aspect. 
     There is also provided a non-transitory computer readable storage medium having computer-executable instructions stored thereon that, when executed by processor circuitry, cause the processor circuitry to perform a method according to the second aspect. There is also provided a device comprising that non-transitory computer readable storage medium. 
     The device may comprise a mobile telephone, an audio player, a video player, a mobile computing platform, a games device, a remote controller device, a toy, a machine, or a home automation controller or a domestic appliance. 
     According to a third aspect of the present invention, there is provided a method of speaker verification, comprising:
         receiving a speech signal containing speech of a speaker;   forming an autocorrelation of at least a part of the speech signal;   performing a first comparison of at least one feature from a first range of lag values of the autocorrelation with a reference value obtained from at least one other autocorrelation;   identifying that the received speech signal may result from a replay attack based on said first comparison;   performing a second comparison of a part of the autocorrelation over a second range of lag values with at least one previously stored autocorrelation obtained from a user during enrolment; and   determining whether the speaker is said user based on said second comparison.       

     According to another aspect of the present invention, there is provided a computer program product, comprising a computer-readable tangible medium, and instructions for performing a method according to the first, second, or third aspect. 
     According to another aspect of the present invention, there is provided a non-transitory computer readable storage medium having computer-executable instructions stored thereon that, when executed by processor circuitry, cause the processor circuitry to perform a method according to the first, second, or third aspect. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       For a better understanding of the present invention, and to show how it may be put into effect, reference will now be made to the accompanying drawings, in which:— 
         FIG. 1  illustrates a smartphone; 
         FIG. 2  is a schematic diagram, illustrating the form of the smartphone; 
         FIG. 3  illustrates a situation in which a replay attack is being performed; 
         FIG. 4  is a flow chart illustrating a method of detecting a replay attack; 
         FIG. 5  illustrates a system for detecting a replay attack; 
         FIG. 6  illustrates a detectable effect of a replay attack; 
         FIG. 7  illustrates features that can be extracted from results; 
         FIG. 8  illustrates a system for detecting a replay attack and performing a speaker recognition process; and 
         FIG. 9  is a flow chart illustrating a method of speaker identification. 
     
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
     The description below sets forth example embodiments according to this disclosure. Further example embodiments and implementations will be apparent to those having ordinary skill in the art. Further, those having ordinary skill in the art will recognize that various equivalent techniques may be applied in lieu of, or in conjunction with, the embodiments discussed below, and all such equivalents should be deemed as being encompassed by the present disclosure. 
       FIG. 1  illustrates a smartphone  10 , having a microphone  12  for detecting ambient sounds. In normal use, the microphone is of course used for detecting the speech of a user who is holding the smartphone  10 . 
       FIG. 2  is a schematic diagram, illustrating the form of the smartphone  10 . 
     Specifically,  FIG. 2  shows various interconnected components of the smartphone  10 . It will be appreciated that the smartphone  10  will in practice contain many other components, but the following description is sufficient for an understanding of the present invention. 
     Thus,  FIG. 2  shows the microphone  12  mentioned above. In certain embodiments, the smartphone  10  is provided with multiple microphones  12 ,  12   a ,  12   b , etc. 
       FIG. 2  also shows a memory  14 , which may in practice be provided as a single component or as multiple components. The memory  14  is provided for storing data and program instructions. 
       FIG. 2  also shows a processor  16 , which again may in practice be provided as a single component or as multiple components. For example, one component of the processor  16  may be an applications processor of the smartphone  10 . 
       FIG. 2  also shows a transceiver  18 , which is provided for allowing the smartphone  10  to communicate with external networks. For example, the transceiver  18  may include circuitry for establishing an internet connection either over a WiFi local area network or over a cellular network. 
       FIG. 2  also shows audio processing circuitry  20 , for performing operations on the audio signals detected by the microphone  12  as required. For example, the audio processing circuitry  20  may filter the audio signals or perform other signal processing operations. 
     In this embodiment, the smartphone  10  is provided with voice biometric functionality, and with control functionality. Thus, the smartphone  10  is able to perform various functions in response to spoken commands from an enrolled user. The biometric functionality is able to distinguish between spoken commands from the enrolled user, and the same commands when spoken by a different person. Thus, certain embodiments of the invention relate to operation of a smartphone or another portable electronic device with some sort of voice operability, for example a tablet or laptop computer, a games console, a home control system, a home entertainment system, an in-vehicle entertainment system, a domestic appliance, or the like, in which the voice biometric functionality is performed in the device that is intended to carry out the spoken command. Certain other embodiments relate to systems in which the voice biometric functionality is performed on a smartphone or other device, which then transmits the commands to a separate device if the voice biometric functionality is able to confirm that the speaker was the enrolled user. 
     In some embodiments, while voice biometric functionality is performed on the smartphone  10  or other device that is located close to the user, the spoken commands are transmitted using the transceiver  18  to a remote speech recognition system, which determines the meaning of the spoken commands. For example, the speech recognition system may be located on one or more remote server in a cloud computing environment. Signals based on the meaning of the spoken commands are then returned to the smartphone  10  or other local device. 
     One attempt to deceive a voice biometric system is to play a recording of an enrolled user&#39;s voice in a so-called replay or spoof attack. 
       FIG. 3  shows an example of a situation in which a replay attack is being performed. Thus, in  FIG. 3 , the smartphone  10  is provided with voice biometric functionality. In this example, the smartphone  10  is in the possession, at least temporarily, of an attacker, who has another smartphone  30 . The smartphone  30  has been used to record the voice of the enrolled user of the smartphone  10 . The smartphone  30  is brought close to the microphone  12  inlet of the smartphone  10 , and the recording of the enrolled user&#39;s voice is played back. If the voice biometric system is unable to determine that the enrolled user&#39;s voice that it recognises is a recording, the attacker will gain access to one or more services that are intended to be accessible only by the enrolled user. 
     It is known that smartphones, such as the smartphone  30 , are typically provided with loudspeakers that are of relatively low quality. Thus, the recording of an enrolled user&#39;s voice played back through such a loudspeaker will not be a perfect match with the user&#39;s voice, and this fact can be used to identify replay attacks. For example, many loudspeakers may have certain frequency characteristics, in which the bass response is limited by the size of the loudspeaker diaphragm. In particular, many loudspeakers may have a poor frequency response at frequencies that are contained in the speech of typical speakers. 
     A human voice can be regarded as having a fundamental frequency, which is dependent on the physiology of the speaker. The fundamental frequency is the inverse of the “glottal pulse period”, which depends on physical properties of the speaker&#39;s vocal tract. For example, a typical adult male might have a fundamental frequency in the range of from 85-155 Hz, while a typical adult female might have a fundamental frequency in the range of from 165-255 Hz. However, the speech of both typical male speakers and typical female speakers contains components at frequencies that are poorly reproduced by smartphone loudspeakers, for example below 100 Hz. 
     Speech is a mixture of voiced and unvoiced speech. Voiced speech can be regarded as a series of pulses at this fundamental frequency, which are passed through a filter formed by the shape of the speaker&#39;s tongue, palate, lips, etc. This produces speech with a spectrum that contains components at the fundamental frequency, plus harmonic components at multiples of the fundamental frequency. 
     A relatively low quality loudspeaker may have a poor frequency response at the fundamental frequency of a speaker&#39;s voice. Methods described herein determine when a speaker&#39;s voice has been recorded and replayed through such a loudspeaker. 
       FIG. 4  is a flow chart, illustrating a method of detecting a replay attack on a voice biometrics system, and  FIG. 5  is a block diagram illustrating functional blocks in the voice biometrics system. 
     Specifically, in step  50  in the method of  FIG. 4 , a speech signal is received on an input  70  of the system shown in  FIG. 5 . 
     The speech signal is passed to a detector  72 , which in some embodiments selects a part of the speech signal. 
     The method disclosed herein detects properties of the user&#39;s speech that are particularly evident when the speaker is forming voiced speech (for example vowel sounds). Therefore, in some embodiments, the detector  72  identifies speech segments of the speech signal (that is, segments of the speech signal that represent times when the user is speaking). In other embodiments, the detector  72  identifies voiced speech segments of the speech signal (that is, segments of the speech signal that represent times when the user is forming voiced sounds, as opposed to unvoiced or voiceless sounds). 
     In step  52  in the method of  FIG. 4 , an autocorrelation of at least a part of the speech signal is formed. 
     The received speech signal is passed to an autocorrelation function block  74 . 
     If the detector  72  is present, then the autocorrelation function block  74  may be activated only during the selected segments of the speech signal. That is, the autocorrelation function block  74  may be activated only during the identified speech segments of the speech signal, or only during the identified voiced speech segments of the speech signal. 
     The autocorrelation function block  74  operates on digital signals and so, if the received speech signal is in analog form, it is converted to digital form. The received speech signal, or the selected segments of the speech signal, are then divided into frames. Each frame may for example have a length in the range of 10-30 ms, and the frames may overlap. That is, with a frame length of 20 ms, each frame may start 10 ms after the start of the previous frame, for example. 
     Within each frame, an autocorrelation function is performed in a conventional manner. That is, the sequence of samples in the frame is correlated with a delayed copy of itself, for a range of delay (or lag) values. In practice, as is known, the autocorrelation may be obtained using a Fast Fourier Transform. Specifically, the autocorrelation R xx [n] of the signal x[m], as a function of the lag, i.e. number of samples, n, by which the copy is delayed, is given by: 
     
       
         
           
             
               
                 R 
                 xx 
               
                
               
                 [ 
                 n 
                 ] 
               
             
             = 
             
               
                 ∑ 
                 
                   m 
                   = 
                   
                     - 
                     ∞ 
                   
                 
                 ∞ 
               
                
               
                 
                   
                     x 
                     * 
                   
                    
                   
                     [ 
                     m 
                     ] 
                   
                 
                  
                 
                   
                     x 
                      
                     
                       [ 
                       
                         n 
                         + 
                         m 
                       
                       ] 
                     
                   
                   . 
                 
               
             
           
         
       
     
     Thus, with zero lag, there is a perfect correlation. For other lag values that degree of correlation will be a function of the lag, which can conveniently be measured by the number of sample periods by which the delayed version has been delayed. 
     Conventionally, the size of the correlation for any lag value is normalised against the size of the correlation at zero lag, i.e. R xx [0], which is taken to be 1. 
     This picks out frequencies which are contained in the received signal. When a received signal contains a component at a frequency f, the autocorrelation function will typically include a peak at the number of sample periods that corresponds to the inverse of that frequency 1/f. 
       FIG. 6  illustrates the results of performing the autocorrelation function on speech signals received from three different speakers. Thus, In  FIGS. 6( a ), 6( b ), and 6( c )  respectively, the lines  100 ,  102 ,  104  represent the autocorrelation function. In these cases, the autocorrelation function is calculated for the first  200  lags. In general, the autocorrelation can be calculated for the number of lags that is sufficient to show the features of the autocorrelation function that are used in the analysis stage. 
       FIG. 6  also illustrates the results of performing the autocorrelation signal on the same speech signals after these signals have been high-pass filtered, which is equivalent to the effect of replaying the signals through a relatively low quality loudspeaker which has a poor low frequency response (for example below 300 Hz). Thus, In  FIGS. 6( a ), 6( b ), and 6( c )  respectively, the lines  110 ,  112 ,  114  represent the autocorrelation function obtained from the filtered signals. 
     It can be seen that the autocorrelation functions obtained from the filtered signals are significantly different from the autocorrelation functions obtained from the unfiltered signals. For example, the autocorrelation functions obtained from the filtered signals have more prominent swings between the positive peaks (the maxima) and the negative peaks (the minima). 
     This difference between the autocorrelation functions can be used to identify when the autocorrelation function has been obtained from a signal generated during a replay attack. 
     In the system of  FIG. 5 , the output of the autocorrelation function block  74  is passed to an analysis block  76 , which selects at least one feature of the autocorrelation function that has been obtained. 
       FIG. 7  illustrates possible features that can be selected. 
       FIGS. 7( a ), 7( b ), and 7( c )  are each a copy of the results shown in  FIG. 6( b ) , namely the results of performing the autocorrelation signal on speech signals received from three different speakers. Thus, In  FIGS. 7( a ), 7( b ), and 7( c ) , the lines  102  represent the result of performing the autocorrelation function on the speech signal, and the lines  112  represent the result of performing the autocorrelation function on the same speech signal after it has been high-pass filtered. 
       FIG. 7( a )  then illustrates one particular feature that can be selected, namely the difference between the value of the autocorrelation function at the first minimum and the value of the autocorrelation function at the first maximum. In the case of the autocorrelation function  102 , this is the difference between the first minimum value at the point  120  and the first maximum value at the point  122 , and this is shown in  FIG. 7( a )  as the difference D 1 . In the case of the autocorrelation function  112 , this is the difference between the first minimum value at the point  124  and the first maximum value at the point  126 , and this is shown in  FIG. 7( a )  as the difference D 2 . 
     It can be seen that D 2  is considerably larger than D 1 , and that this would be true whichever of the results shown in  FIG. 6  had been chosen for the purposes of illustration. 
       FIG. 7( b )  illustrates an alternative feature that can be selected, namely the absolute value of the autocorrelation function at the first minimum. In the case of the autocorrelation function  102 , the first minimum value is −H 1 , and so the absolute value is H 1 . In the case of the autocorrelation function  112 , the first minimum value is −H 2 , and so the absolute value is H 2 . 
     It can be seen that H 2  is considerably larger than H 1 , and that this would be true whichever of the results shown in  FIG. 6  had been chosen for the purposes of illustration. 
       FIG. 7( c )  illustrates a further alternative feature that can be selected, namely the area underneath the autocorrelation function up to the first minimum. In the case of the autocorrelation function  102 , this area is shown in  FIG. 7( c )  as A 1 . In the case of the autocorrelation function  112 , this area is shown in  FIG. 7( c )  as A 2 . 
     It can be seen that A 2  is considerably larger than A 1 , and that this would be true whichever of the results shown in  FIG. 6  had been chosen for the purposes of illustration. 
     It is mentioned above that the autocorrelation function might be calculated for each frame in a series of frames. As an alternative, a single autocorrelation function can be calculated for a longer time period, for example for an entire utterance, rather than for each frame of the utterance. For clarity of illustration and explanation,  FIGS. 6 and 7  show the results of performing the autocorrelation function on the sequence of samples in one utterance, for example lasting from 1-5 seconds. However, the autocorrelation function may be performed on the sequence of samples in one frame, and then performed on the sequence of samples in a second frame, and so on, for example for at least ten frames. 
     Then, the resulting autocorrelation functions can be averaged to form a cumulative average autocorrelation function that is recalculated after each new frame. In another embodiment, a running average of a certain number of the most recently calculated autocorrelation functions can be formed, for example by taking a simple average of the calculated autocorrelation functions from a certain number of frames, (such as the three, or five, most recent frames). 
     In the optional step  54  in the method of  FIG. 4 , the selected feature or features of the autocorrelation function (which may be the average autocorrelation function as mentioned above) is or are compared with at least one reference value. 
     The selected feature or features of the autocorrelation function is passed to a comparison block  78 , and a reference value  80  is passed to another input of the comparison block  78 . In other embodiments, the reference value may be stored permanently or temporarily in the comparison block  78 . 
     In step  56  in the method of  FIG. 4 , it is identified based on the autocorrelation whether the received speech signal may result from a replay attack. In some embodiments, in which step  54  has been performed, this determination is based on a result of the comparison of the autocorrelation with the reference value. When multiple autocorrelation functions are calculated as described above, for example once per frame, the comparison can also be made once per frame, or the multiple autocorrelation functions can be averaged and the comparison can be made using the average. 
     In some embodiments, the reference value  80  is specific to the enrolled user of the system who is assumed to be speaking. In other embodiments, the reference value  80  is a threshold value or a property that is used for all speakers. 
     When the reference value  80  is specific to the enrolled user of the system who is assumed to be speaking, an autocorrelation function of the user&#39;s speech is obtained during the enrolment process, and one or more property or feature of that autocorrelation function is extracted. 
     When the reference value  80  is a threshold value or a property that is used for all speakers, a suitable value or property can be obtained from analysis of the autocorrelation functions obtained from a large number of speakers, and from a large number of replay attacks. 
     For example, as mentioned above with reference to  FIG. 7( b ) , the absolute value of the first minimum value of the autocorrelation function can be used as a property that is used in determining whether the speech signal is genuine or results from a replay attack. 
     When the reference value  80  is specific to the enrolled user of the system who is assumed to be speaking, an autocorrelation function of the user&#39;s speech is obtained during the enrolment process, and the relevant property or feature of that autocorrelation function is extracted. Thus,  FIG. 6( a )  shows that the value of the first minimum value of the autocorrelation function  100  obtained from a genuine recording of one particular speaker is about −0.2. This can be used to set a threshold value for the absolute value of, say, 0.3. Then, whenever an autocorrelation function obtained from that user&#39;s speech signal has an absolute value of the first minimum value that is above the threshold value of 0.3, this can be used as an indication that the speech signal results from a replay attack. A similar analysis of the speech signals obtained from other users during enrolment will allow an individual threshold to be set for each speaker. 
     When the reference value  80  is a threshold value or a property that is used for all speakers, a suitable value or property can be obtained from analysis of the autocorrelation functions obtained from a large number of speakers, and from a large number of replay attacks. Thus,  FIG. 6  shows that the absolute value of the first minimum value of the autocorrelation function obtained from each of the genuine recordings is smaller than 0.5, while the absolute value of the first minimum value of the autocorrelation function obtained from each of the filtered recordings is greater than 0.5. 
     This can be used to set a threshold value of 0.5. Then, whenever an autocorrelation function obtained from a user&#39;s speech signal has an absolute value first minimum value that is above the threshold value of 0.5, this can be used as an indication that the speech signal results from a replay attack. This avoids the need to perform an autocorrelation on the speech signal obtained from every user during enrolment. 
     Rather than set a single threshold value, a more complex vector of features can be obtained from an autocorrelation function, and compared with similar feature vectors extracted from the autocorrelation functions obtained from a large number of genuine speech signals, and from a large number of replay attacks. A conventional method, for example using a Gaussian Mixture Model (GMM), can then be used to determine whether it is more likely that the newly obtained autocorrelation function is more similar to the autocorrelation functions obtained from the genuine speech signals, or from the replay attacks. This determination can then be used to identify whether the newly received speech signal may result from a replay attack. 
     In the embodiment shown in  FIG. 4  above, the autocorrelation function is compared with at least one reference value in step  54  of the method, and it is identified based on the comparison of the autocorrelation with the reference value whether the received speech signal may result from a replay attack. As mentioned above, when multiple autocorrelation functions are calculated, for example once per frame, each calculated autocorrelation function can be compared with the reference value, and it can be determined that the received speech signal may result from a replay attack if any one of these comparisons gives a suitable result. Alternatively, the multiple calculated autocorrelation functions can be averaged and the comparison can be made using the average. 
     In some other embodiments, the determination whether the received speech signal may result from a replay attack is carried out using a neural network. Specifically, a neural network may be trained using training data comprising (a) autocorrelations formed from speech signals resulting from replay attacks, and (b) autocorrelations formed from speech signals not resulting from replay attacks. 
     Then, when the autocorrelation formed from at least a part of the received speech signal is sent to the neural network, the neural network is able to judge whether the received speech signal may result from a replay attack, based on the autocorrelation. In this case, it is useful to compress the autocorrelation before sending it to the neural network. For example, the compression may be performed by calculating the discrete cosine transform (DCT) of the autocorrelation, or the average autocorrelation as described above, and keeping the most significant terms (for example the  10  bottom, i.e. the  10  most significant) terms, and passing these to the neural net, which will have been trained on similarly compressed data obtained from (a) autocorrelations formed from speech signals resulting from replay attacks, and (b) autocorrelations formed from speech signals not resulting from replay attacks. 
       FIG. 8  is a block diagram illustrating functional blocks in an alternative voice biometrics system, and  FIG. 9  is a flow chart illustrating a method of operation of the system for performing speaker identification. The system shown in  FIG. 8  is similar in some respects to the system shown in  FIG. 5 . 
     At step  130  of the process shown in  FIG. 9 , a speech signal is received from a microphone  140 . The speech signal is passed to a detector  142 , which in some embodiments selects a part of the speech signal. 
     The method disclosed herein detects properties of the user&#39;s speech that are particularly evident when the speaker is forming voiced speech (for example vowel sounds). Therefore, in some embodiments, the detector  142  identifies speech segments of the speech signal (that is, segments of the speech signal that represent times when the user is speaking). In other embodiments, the detector  72  identifies voiced speech segments of the speech signal (that is, segments of the speech signal that represent times when the user is forming voiced sounds, as opposed to unvoiced or voiceless sounds). 
     The received speech signal is passed to an autocorrelation function block  144 , and at step  132  of the process shown in  FIG. 9  an autocorrelation is performed. 
     If the detector  142  is present, then the autocorrelation function block  144  may be activated only during the selected segments of the speech signal. That is, the autocorrelation function block  144  may be activated only during the identified speech segments of the speech signal, or only during the identified voiced speech segments of the speech signal. 
     The autocorrelation function block  144  operates on digital signals and so, if the microphone  140  is an analog microphone generating a received speech signal in analog form, it is converted to digital form. The received speech signal, or the selected segments of the speech signal, are then divided into frames. 
     Within each frame, an autocorrelation function is performed in a conventional manner. That is, the sequence of samples in the frame is correlated with a delayed copy of itself, for a range of delay (or lag) values. Specifically, the autocorrelation R xx [n] of the signal x[m], as a function of the lag, i.e. number of samples, n, by which the copy is delayed, is given by: 
     
       
         
           
             
               
                 R 
                 xx 
               
                
               
                 [ 
                 n 
                 ] 
               
             
             = 
             
               
                 ∑ 
                 
                   m 
                   = 
                   
                     - 
                     ∞ 
                   
                 
                 ∞ 
               
                
               
                 
                   
                     x 
                     * 
                   
                    
                   
                     [ 
                     m 
                     ] 
                   
                 
                  
                 
                   
                     x 
                      
                     
                       [ 
                       
                         n 
                         + 
                         m 
                       
                       ] 
                     
                   
                   . 
                 
               
             
           
         
       
     
     Thus, with zero lag, there is a maximum correlation. For other lag values that degree of correlation will be a function of the lag, which can conveniently be measured by the number of sample periods by which the delayed version has been delayed. Conventionally, the size of the correlation for any lag value is normalised against the size of the correlation at zero lag, which is taken to be 1. 
     This picks out frequencies which are contained in the received signal. When a received signal contains a component at a frequency f, the autocorrelation function will typically include a peak at the number of sample periods that corresponds to the inverse of that frequency 1/f. 
     The result of performing the autocorrelation function may be analysed in a spoof check block  146  and/or a biometric identification block  148 . 
     The spoof check block  146  operates in a similar way to the system shown in  FIG. 5 . That is, a first lag range, A, is defined, and the autocorrelation obtained over that lag range of the function is examined. 
     The lag range A may be predetermined. For example, in the case of the autocorrelation functions shown in  FIGS. 6 and 7 , the lag range A might be the range from 0-50 samples. This is enough to allow the features of the first minimum and the first maximum to be examined, as desired. 
     As an alternative, the lag range A might be determined based on the shape of the autocorrelation function itself. For example, the lag range A might be the range from zero samples up to the location of the first positive peak +10%, or might be the range of 10 samples either side of the first positive peak, or might be the range from 10 samples below the first negative peak to 10 samples above the first positive peak, or any range that covers. 
     For example, as described with reference to  FIG. 7( a ) , the selected feature may be the difference between the value of the autocorrelation function at the first minimum and the value of the autocorrelation function at the first maximum; as described with reference to  FIG. 7( b ) , the selected feature may be the absolute value of the autocorrelation function at the first minimum; as described with reference to  FIG. 7( c ) , the selected feature may be the area underneath the autocorrelation function up to the first minimum. 
     The selected feature can be compared with an appropriate threshold value, in order to determine whether the received signal should be considered to be a result of a replay attack. 
     In addition to, or as an alternative to, the determination as to whether the received signal should be considered to be a result of a replay attack, the received signal may also be passed to a biometric identification block  148 . 
     The biometric identification block  148  operates on the recognition that the shapes  100 ,  102 ,  104  of the autocorrelation functions shown in  FIG. 6 , which illustrate the results of performing the autocorrelation function on speech signals received from three different speakers (User1, User2, and User3), differ significantly from each other. 
     Thus, the shape of the autocorrelation function can be used to determine which person is speaking. 
     This can in principle be used for any speech, but is particularly useful as a text dependent biometric where the user is expected to be speaking a specific known phrase, or one of a small number of known phrases. 
     The use of the autocorrelation function means that the system is robust against the influence of noise. 
     A second lag range, B, is defined, and the autocorrelation obtained over that lag range of the function is examined. The lag range B may extend over some or all of the total number of samples covered by the autocorrelation function. 
     The lag range B may be predetermined. For example, in the case of the autocorrelation functions shown in  FIGS. 6 and 7 , the lag range B might be the range from 50-150 samples. 
     As an alternative, the lag range B might be determined based on the shape of the autocorrelation function itself. For example, the lag range B might be the range above the location of the first positive peak +10%, or might be the range more than 20 samples above the first positive peak, or any other suitable range. 
     The lag range A and the lag range B are typically different, with the lag range A generally extending over shorter lags than the lag range B. The lag range A and the lag range B may overlap. In other embodiments, the upper end point of the lag range A is the lower end point of the lag range B. In still further embodiments, there is a gap between the lag range A and the lag range B. 
     A storage block  150  contains stored autocorrelation functions, or parts of autocorrelation functions, obtained from the speech of one or more enrolled user. In a text dependent system, the storage block  150  may contain the autocorrelation function derived from a user speaking a predetermined phrase. Where more than user is enrolled, the storage block  150  may contain the autocorrelation functions derived from those multiple users speaking the predetermined phrase, or speaking respective different predetermined phrases. 
     Thus, in step  134  of the process shown in  FIG. 9 , a comparison is made between at least a part of the autocorrelation and at least one previously stored autocorrelation. Specifically, in one example, a comparison can then be made between the autocorrelation function in the lag range B and one or more autocorrelation function retrieved from the storage block  150 . When multiple autocorrelation functions are calculated as described above, for example once per frame of the received signal, this comparison can also be made once per frame, or the multiple autocorrelation functions can be averaged and the comparison can be made using the average. 
     Then, in step  136  of the process shown in  FIG. 9 , a speaker can be identified based on the comparison. Specifically, in one example, if the user has indicated their identity, the appropriate autocorrelation function can be retrieved from the storage block  150 , and a speaker verification may be performed by comparing the two autocorrelation functions. If the degree of similarity is sufficient, it can be determined that there is a high probability that the identity indicated by the speaker is correct, and if the degree of similarity is below a threshold, it can be determined that there is a high probability that the identity indicated by the speaker is not correct. The degree of similarity can be assessed by the use of a trained neural network, or by directly comparing the functions, for example by determining the difference between the functions at each lag value, and summing these differences over the whole of lag range B. 
     If the user has not indicated their identity, all stored autocorrelation functions can be retrieved from the storage block  150 , and a speaker identification may be performed by comparing the recently calculated autocorrelation function with the retrieved autocorrelation functions. The retrieved autocorrelation function that is closest to the recently calculated autocorrelation function can be determined to indicate the enrolled speaker who was speaking, provided that the degree of similarity meets some threshold test. 
     If the autocorrelation function derived from the received signal is analysed both in a spoof check block  146  and in a biometric identification block  148 , the results of these analyses can be combined in a decision block  152 . 
     Thus, the decision block  152  can generate an output that allows the received signal to be processed further only if the spoof check block  146  determines that the received signal does not result from a replay attack and if the biometric identification block  148  determines that the speech in the received signal was spoken by the purported speaker. 
     The skilled person will recognise that some aspects of the above-described apparatus and methods may be embodied as processor control code, for example on a non-volatile carrier medium such as a disk, CD- or DVD-ROM, programmed memory such as read only memory (Firmware), or on a data carrier such as an optical or electrical signal carrier. For many applications embodiments of the invention will be implemented on a DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array). Thus the code may comprise conventional program code or microcode or, for example code for setting up or controlling an ASIC or FPGA. The code may also comprise code for dynamically configuring re-configurable apparatus such as re-programmable logic gate arrays. Similarly the code may comprise code for a hardware description language such as Verilog™ or VHDL (Very high speed integrated circuit Hardware Description Language). As the skilled person will appreciate, the code may be distributed between a plurality of coupled components in communication with one another. Where appropriate, the embodiments may also be implemented using code running on a field-(re)programmable analogue array or similar device in order to configure analogue hardware. 
     Note that as used herein the term module shall be used to refer to a functional unit or block which may be implemented at least partly by dedicated hardware components such as custom defined circuitry and/or at least partly be implemented by one or more software processors or appropriate code running on a suitable general purpose processor or the like. A module may itself comprise other modules or functional units. A module may be provided by multiple components or sub-modules which need not be co-located and could be provided on different integrated circuits and/or running on different processors. 
     Embodiments may be implemented in a host device, especially a portable and/or battery powered host device such as a mobile computing device for example a laptop or tablet computer, a games console, a remote control device, a home automation controller or a domestic appliance including a domestic temperature or lighting control system, a toy, a machine such as a robot, an audio player, a video player, or a mobile telephone for example a smartphone. 
     It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim, “a” or “an” does not exclude a plurality, and a single feature or other unit may fulfil the functions of several units recited in the claims. Any reference numerals or labels in the claims shall not be construed so as to limit their scope.