Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEMS AND METHODS FOR END-TO-END ARCHITECTURES FOR VOICE SPOOFING DETECTION
Document Type and Number:
WIPO Patent Application WO/2020/210186
Kind Code:
A1
Abstract:
Embodiments described herein provide for automatically detecting whether an audio signal is a spoofed audio signal or a genuine audio signal. A spoof detection system can include an audio signal transforming front end and a classification back end. Bothe the front end and the back end can include neural networks that can be trained using the same set of labeled audio signals. The audio signal transforming front end can include a one or more neural networks for per-channel energy normalization transformation of the audio signal, and the back end can include a convolution neural network for classification into spoofed or genuine audio signal. In some embodiments, the transforming audio signal front end can include one or more neural networks for bandpass filtering of the audio signals, and the back end can include a residual neural network for audio signal classification into spoofed or genuine audio signal.

Inventors:
LAKHDHAR KHALED (US)
NAGARSHETH PARAV (US)
CHEN TIANXIANG (US)
KHOURY ELIE (US)
Application Number:
PCT/US2020/026992
Publication Date:
October 15, 2020
Filing Date:
April 07, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PINDROP SECURITY INC (US)
International Classes:
G06F21/32; G06Q20/40; G10L17/02
Domestic Patent References:
WO2018049313A12018-03-15
Foreign References:
US20150269941A12015-09-24
US20140288928A12014-09-25
US20140214676A12014-07-31
US20180254046A12018-09-06
Other References:
CHENG-I LAI ET AL., ASSERT: ANTI-SPOOFING WITH SQUEEZE EXCITATION AND RESIDUAL NETWORKS'' IS ALSO RELEVANT
See also references of EP 3953843A1
Attorney, Agent or Firm:
SOPHIR, Eric et al. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A computer-implemented method for implementing an anti-spoofing end-to-end neural network architecture, the method comprising:

receiving, by a computer, a raw audio signal of a call purportedly associated with a verified speaker identity;

generating, by the computer executing a neural network architecture, a transformed representation of the raw audio signal, thereby resulting in a processed audio signal; and

generating, by the computer executing the neural network architecture, a prediction score for the processed audio signal, the prediction score indicating a likelihood the processed audio signal of the call is associated with a spoof of the verified speaker identity;

wherein the neural network architecture is trained according to a plurality of raw audio signals having at least one raw audio signal for at least one verified call associated with the verified speaker identity and at least one raw audio signal for at least one spoofed call.

2. The method according to claim 1, further comprising detecting, by the computer executing a classifier backend of the neural network architecture, that the received raw audio signal is a spoofed audio signal in response to determining that the prediction score fails to satisfy a threshold value.

3. The method according to claim 1, further comprising modifying, by the computer, one or more parameters of the neural network architecture based upon back-propagation.

4. The method according to claim 1 , wherein generating the transformed representation of the raw audio signal comprises:

transforming, by the computer executing a one-dimensional convolution neural network of a signal processing frontend of the neural network architecture, the raw audio signal into a time- frequency representation; and

filtering, by the computer executing the signal processing frontend, the time-frequency representation into frequency channels based upon a filter bank.

5. The method according to claim 4, wherein, for each respective audio signal, the computer executes a per-channel transformation neural network to generate the respective processed audio signal based upon the time-frequency representation of the audio signal.

6. The method according to claim 1, further comprising parsing, by the computer, the audio signal into a plurality of subframes, wherein each subframe has a fixed duration and overlaps in time with at least one adjacent subframe of the plurality of subframes, and wherein the computer generates the prediction score based upon the plurality of subframes.

7. The method according to claim 1, further comprising generating, by the computer executing a convolution neural network of a classifier backend of a neural network architecture, a L2 normalized vector based upon concatenation of mean and standard deviation of a last max pooling layer of the plurality of max-pooling layers.

8. The method according to claim 1 , wherein generating the transformed representation of the raw audio signal comprises:

generating, by the computer executing a convolution layer of a signal processing frontend of a neural network architecture, a two-dimensional matrix from the raw audio signal based upon a set of bandpass filter parameters.

9. The method according to claim 8, further comprising:

receiving, by the computer, from a computing device, an updated set of bandpass filter parameters, wherein computer generates the two-dimensional matrix and the prediction score based upon the updated set of bandpass filter parameters.

10. The method according to claim 8, wherein the computer executes a residual neural network of a classifier backend of the neural network architecture to generate the prediction score based upon the two-dimensional matrix and a set of residual neural network parameters.

11. The method according to claim 1, further comprising:

generating, by the computer executing a residual neural network of a classifier backend of the neural network architecture, a pooled feature map based upon a feature map generated by a statistics layer of the residual neural network; and executing, by the computer executing the residual neural network, two fully connected layers of the residual neural network using the pooled feature map.

12. The method according to claim 1, wherein the raw audio signal comprises at least one of speech and background noise.

13. A computer-implemented method for implementing an anti-spoofing end-to-end neural network architecture, the method comprising:

executing, by the computer, a neural network architecture on a plurality of audio signals having at least one audio signal associated with at least one spoofed call, the neural network architecture configured to process each audio signal and classify whether each audio signal is associated with a spoofed call; and

training, by the computer, a first set of parameters for signal processing based upon one or more loss functions generated for the audio signals.

14. The method according to claim 13, further comprising training, by the computer, a second set of parameters for classifying whether each audio signal is associated with a spoofed call.

15. The method according to claim 13, wherein training the first set of parameters further comprises:

modifying, by the computer, at least one set of parameters based upon back-propagation of executing one or more neural networks of the neural network architecture.

16. The method according to claim 13, wherein executing the neural network architecture on the plurality of audio signals further comprises, for each respective audio signal:

generating, by the computer executing a classifier backend, a loss function based upon a prediction score and a predetermined verification status of the respective audio signal, wherein the verification status indicates whether the respective audio signal is associated with a spoofed call.

17. The method according to claim 13, wherein executing the neural network architecture on the plurality of audio signals further comprises, for each respective audio signal:

generating, by the computer executing a signal processing frontend, a transformed audio signal based upon a raw audio signal of the audio signal and the first set of parameters.

18. The method according to claim 13, wherein executing the neural network architecture on the plurality of audio signals further comprises, for each respective audio signal:

generating, by the computer executing a classifier backend, a prediction score based upon the audio signal and a second set of parameters, wherein the prediction score indicates a likelihood the audio signal is associated with a spoofed call.

19. The method according to claim 18, wherein executing the neural network architecture on the plurality of audio signals further comprises, for each respective audio signal:

parsing, by the computer, the audio signal into a plurality of frames, wherein the computer generates the prediction score for the audio signal using the plurality of frames.

20. The method according to claim 13, wherein executing the neural network architecture on the plurality of audio signals further comprises, for each respective audio signal:

generating, by the computer executing a one-dimensional convolution layer of a signal processing frontend, a two-dimensional matrix of the audio signal and a set of bandpass filter parameters in the first set of parameters.

21. The method according to claim 13, wherein executing the neural network architecture on the plurality of audio signals further comprises, for each respective audio signal:

generating, by the computer executing a residual neural network of a classifier backend, a prediction score based upon a two-dimensional matrix of the audio signal and a set of residual neural network parameters in a second set of parameters, wherein the prediction score indicates a likelihood that the audio signal is a genuine audio signal.

22. The method according to claim 13, wherein executing the neural network architecture on the plurality of audio signals further comprises, for each respective audio signal:

generating, by the computer executing a residual neural network of a classifier backend, a loss function based upon a prediction score and a predetermined verification status of the audio signal.

23. The method according to claim 13, wherein training the first set of parameters for signal processing further comprises:

training, by the computer, a one-dimensional convolution layer and a residual neural network based upon each of the loss functions generated for the plurality audio signals, whereby the computer modifies a set of bandpass filter parameters in the first set of parameters and a set of residual neural network parameters in a second set of parameters for classifying whether each audio signal is associated with a spoofed call.

Description:
SYSTEMS AND METHODS FOR END-TO-END ARCHITECTURES

FOR VOICE SPOOFING DETECTION

TECHNICAL FIELD

[0001] This application generally relates to systems and methods of modeling and classifying incoming calls based on features extracted from audio signals and one or more machine-learning algorithms. It also relates generally to systems and methods for intelligent automated detection of spoofed audio signals and automated generation of models for such detection process.

BACKGROUND

[0002] Voice-based interactions are an increasingly common form for interactions between human and machines, and may even become the predominant mode of human- machine interface in the near-future. Voice interfaces implement various types of speech processing systems that identify, ingest, and respond to a user’s spoken command, such as automatic speaker verification (ASV), automatic speech recognition (ASR) systems. For security and privacy purposes, ASV systems aim to validate identity assertions from spoken utterances. In order to fully leverage the emergence of voice-based interfaces, particularly at various scales, ASV systems should not only be accurate when identifying and recognizing enrolled speakers, but they should also able to identify and reject spoofed or replayed utterances, which might, for example, purport to be commands of validated, enrolled speakers. What is therefore needed are reliable and efficient countermeasures for spoof detection in ASV implementations.

[0003] Although a lot of progress has been made to address“zero-effort” imposters and less-sophisticated attacks, existing ASV systems are often vulnerable to more sophisticated attacks perpetrated, for instance, by forging/spoofmg speech. Forged/spoofed speech can be obtained using speech synthesis systems (SS), using unit selection (US) algorithms, or by applying voice conversion (VC) to transform the imposter's speech so it resembles a target enrollee's voice. With the development and the proliferation of these and other audio manipulation and speech synthesis tools, voice spoofing presents a real threat to the efficacy of ASV systems, thereby limiting their usability in the context of security sensitive applications.

[0004] Some approaches utilize machine learning techniques to detect spoofed speech signals. For example, some approaches utilize front-end feature extraction, while other approaches focus on classifier architecture. These two approaches make some implied assumptions on the nature and form of discriminative features to be identified by the machine learning process. For example, some approaches determine constant Q cepstral coefficients (CQCCs) that are perceptually inspired time-frequency analysis acoustic features that are found to be powerful at detecting voice spoofing attacks. One reason for this is that the selected acoustic features may not be adapted to evolving spoofing attacks, thereby reducing their accuracy over time.

SUMMARY

[0005] Disclosed herein are systems and methods capable of addressing the above described shortcomings and may also provide any number of additional or alternative benefits and advantages. Embodiments described herein provide for systems and methods for end-to- end neural network systems for anti-spoofing processes, as well as other implementations involving processes for automatic speaker verification, caller identification and authentication, and the like. A computer executes software-based machine learning and/or artificial intelligence processes for programmatically training or otherwise generating classification models, which the same or different computer then use for automatically determining whether an audio signal is a spoofed audio signal or a genuine audio signal. The end-to-end neural network spoof detection processes may be configured to operate according to signal processing algorithms, including PCEN-Net and Sinc-ResNet.

[0006] In an embodiment, a computer-implemented method for implementing an anti spoofing end-to-end neural network architecture. The method comprises receiving, by a computer, a raw audio signal of a call purportedly associated with a verified speaker identity; generating, by the computer executing a neural network architecture, a transformed representation of the raw audio signal, thereby resulting in a processed audio signal; and generating, by the computer executing the neural network architecture, a prediction score for the processed audio signal, the prediction score indicating a likelihood the processed audio signal of the call is associated with a spoof of the verified speaker identity; wherein the neural network architecture is trained according to a plurality of raw audio signals having at least one raw audio signal for at least one verified call associated with the verified speaker identity and at least one raw audio signal for at least one spoofed call.

[0007] In another embodiment, a computer-implemented method for implementing an anti-spoofing end-to-end neural network architecture. The method comprises executing, by the computer, a neural network architecture on a plurality of audio signals having at least one audio signal associated with at least one spoofed call, the neural network architecture configured to process each audio signal and classify whether each audio signal is associated with a spoofed call; and training, by the computer, a first set of parameters for signal processing based upon one or more loss functions generated for the audio signals.

[0008] It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The present disclosure can be better understood by referring to the following figures. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the disclosure. In the figures, reference numerals designate corresponding parts throughout the different views.

[0010] FIG. 1 illustrates a system for detecting spoofed audio signals, according to an embodiment.

[0011] FIG. 2A illustrates a block diagram of a first example spoof detection subsystem, according to an embodiment.

[0012] FIG. 2B illustrates a block diagram of an example per-channel energy normalization (PCEN) front end of the first example spoof detection subsystem in the embodiment shown in FIG. 2A.

[0013] FIG. 3 illustrates a flowchart showing execution steps of a first example spoof detection process, according to an embodiment.

[0014] FIG. 4 illustrates an example of the structure of a neural network with a triplet network architecture for use in training, according to an embodiment.

[0015] FIG. 5A illustrates a second example spoof detection subsystem, according to an embodiment.

[0016] FIG. 5B illustrates a block diagram of a residual neural network (RNN) of the second example spoof detection subsystem in the embodiment shown in FIG. 5A. [0017] FIG. 6 illustrates a flowchart showing execution steps of an example spoof detection process, according to an embodiment.

D TATT/FD DESCRIPTION

[0018] Reference will now be made to the illustrative embodiments illustrated in the drawings, and specific language will be used here to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended. Alterations and further modifications of the inventive features illustrated here, and additional applications of the principles of the inventions as illustrated here, which would occur to a person skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of the invention.

[0019] Embodiments described herein provide for systems and methods for detecting whether an input audio signal is a spoofed audio signal or a genuine audio signal. As mentioned above, ASV systems are still vulnerable to the sophistication spoofing attacks. While some machine learning approaches are effective in detecting spoofed audio signals, such approaches require the designers to make assumptions on the discriminative features to be identified by the machine learning process. In contrast, the embodiments described herein include end-to-end systems that require little or no prior knowledge about the discriminative features. These embodiments employ neural networks for feature extraction. Further, these embodiments employ front ends that preprocess the audio signals before they are fed to the neural networks. The front ends themselves are trainable based on the same audio signals that are used to train the feature extracting neural networks. The end-to-end systems provide improved accuracy in detecting spoofed audio signals.

[0020] Components of an Illustrative System

[0021] FIG. 1 shows components of a system 100 for receiving and analyzing telephone calls, which includes detecting spoofed audio signals, according to an embodiment. The system 100 may comprise network infrastructures 101, 103a, 103b, including a call analysis system 101 and customer call centers 103a, 103b, as well as any number of caller devices 110. The call analysis system 101 comprises analytics server 102, central database 104, and analyst devices 110. Customer call centers 103a, 103b may comprise external servers 105a, 105b, external databases 107a, 107b, agent devices 109a, 109b, and data capture appliances 112a, 112b. It should be understood that the components of the system 100 are merely illustrative. Other embodiments may include additional or alternative components, or omit components, from the components in the system 100, but are still within the scope of this disclosure. It should be appreciated that FIG. 1 is merely one example of the devices of system 100. Although FIG. 1 only shows system 100 having only a few of the various components, it should be appreciated that other embodiments may comprise, be coupled to (via one or more networks), or otherwise implement any number of devices capable of performing the various features and tasks described herein.

[0022] The various components of the call analysis system 101 and call centers 103a,

103b may be interconnected with each other, internal and external to the network infrastructures, via hardware and software components of one or more networks. Examples of a network include, but are not limited to, Local Area Network (LAN), Wireless Local Area Network (WLAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), and the Internet. The communication over the network may be performed in accordance with various communication protocols, such as Transmission Control Protocol and Internet Protocol (TCP/IP), User Datagram Protocol (UDP), and IEEE communication protocols. Likewise, caller devices 110 may communicate with network infrastructures 101, 103a, 103b via telecommunications protocols, hardware, and software capable of hosting, transporting, and exchanging telephony-based audio signals associated with telephone calls.

[0023] It should be appreciated that FIG. 1 is merely one example of the devices of system 100. Although FIG. 1 shows system 100 having a few of the various components, configurations may include, may be coupled to (via one or more networks), or may otherwise implement any number of devices capable of performing the various features and tasks described herein. For example, some configurations may incorporate database 104 into analytics server 102, such that these features are integrated within a single device. In a similar example, some embodiments may incorporate an analyst device 106 into analytics server 102, such that a single computing device performs the features and tasks of such devices. Although only three devices are shown for illustrative purposes, the caller devices 110 in FIG. 1 may represent any number of distinct physical devices, which may originate any number of distinct telephone calls to various destinations respectively. Other embodiments may comprise additional or alternative devices, or may omit devices shown in FIG. 1, and that such alternative embodiments still fall within the scope of this disclosure.

[0024] The system 100 of FIG. 1 comprises various network infrastructures 101, 103a,

103b. Each network infrastructure 101, 103a, 103b may comprise computing devices that collect call data generated from phone calls between the caller devices 110 and the respective infrastructure 101, 103a, 103b, and store the call data into a machine-readable storage media, such as databases 104, 107a, 107b. Servers 102, 105a, 105b may then access the call data to execute various operations described herein, including, but not limited to: querying or updating a database 104, 107a, 107b; pre-processing or otherwise conditioning the call data; executing various analytics on call data; and exchanging call data with various devices of the system 100 via one or more networks.

[0025] Call analysis system 101 may be operated by an entity that offers call analytics services to call centers 103a, 103b, which may owned or operated by customers of the call analytics service or sub-components of a larger organization. The call analysis system 101 may comprise any number computing devices configured to collect from various data sources call data generated from phone calls involving caller devices 110 and store the call data into storage media, such as a central database 104. The devices of the call analysis system 101 may also execute various analytics processes on the call data, such as executing software processes for generating spoof detection classification models and executing software processes for the detecting spoofed calls.

[0026] Call analytics system 101 comprises an analytics server 102 that executes various operations described herein, such as, for example, querying or updating a central database 104 that stores the call data, pre-processing or otherwise conditioning the call data, executing various artificial intelligence and machine learning analytics on the call data, and performing certain actions based on the results of those analytics processes. In one configuration, the call analysis system 101 may provide anti-spoofing services to the call centers 103a, 103b. In this example, the call analysis system 101 generates spoof detection classification models that are trained on call data received from the call centers 103a, 103b. In some cases, the call analysis system 101 performs the spoof detection processes using the trained models. In some cases, the call analysis system 101 distributes global or tailored trained models to the call centers 103a, 103a, which in turn perform the spoof detection process themselves.

[0027] Call centers 103a, 103b may be owned and operated by customers of a call analysis service or in some cases may be sub-components of a larger organization. Call centers 103a, 103b may have external servers 105a, 105b, external databases 107a, 107b, agent devices 109a, 109b, and data appliances 112a, 112b. Devices of call centers 103a, 103b, such as data appliances 112a, 112b, may be configured to collect call data generated during phone calls between caller devices 110 and the particular call center 103a, 103b. Call data collected at the call centers 103a, 103b may be stored into external database 107a, 107b or external server 105a, 105b, which may transmit the call data to the call analysis system 101 or perform various analytics processes.

[0028] Call analysis system 101 comprises analytics server 102, central database 104, and analyst devices 110. Analytics server 102 comprises a spoof detection subsystem configured to receive and analyze call data to train spoof detection classification models and execute spoof detection processes using trained models. Analytics server 102 may be any kind of computing device comprising a processor, memory, and software configuring the analytics server 102 to execute various processes and tasks described herein. Non-limiting examples of the analytics server 102 may include a server computer, a desktop computer, a laptop computer, a tablet computer, a smartphone, and any other type of computing device. The analytics server 102 may be coupled to one or more databases 104 and analyst devices 106 via one or more networks, allowing the analytics server 102 to communicate call data, database queries, and execution instructions ( e.g ., execution parameters, triggering inputs, query parameters), among other machine-readable computer data and configurations, with other components of the system 100.

[0029] The analytics server 102 may execute various processes tasks on the call data accessible to the call analysis system 101. The analytics server 102 may transmit outputted data, such as spoof detection results, trained classification models, and other data updates, to various devices of the system 100, including call centers 103a, 103b. The analytics server 102 or another device of the call analysis system 101 may make the central database 104 available to devices of the call centers 103a, 103b to query and download various types of data; or may publish certain output data to a website, web portal, FTP site, or other externally accessible databank that is accessible to the call centers 103a, 103b. In some implementations, the call analysis system 101 may tailor some or all of the output data and processes to particular call centers 103a, 103b.

[0030] The analytics server 102 may receive call data containing an audio signal from phone calls involving caller devices 110, including calls that caller device 110 makes or receives to or from the call center 103a, 103a. The spoof detection subsystem may and extract certain forms of data from such audio signals. [0031] In some embodiments, the analytics server 102 can execute a training process for training one or more spoof detection subsystems, such as, for example, the first spoof detection subsystem 200 and the second spoof detection subsystem 500 discussed below. In particular, the analytics server 102 can train the spoof detection subsystem based on audio signals collected from phone calls involving caller deices 110 or analyst device 106. The analytics server 102 may also store in the database 104 audio signals with known verification statuses such as spoofed audio signals or genuine audio signals. The analytics server 102 can train the spoof detection subsystems using the audio signals with known verification statuses. Examples of such training is discussed below in relation to FIG. 3 and FIG. 6. The analytics server 102 also can execute spoof detection processes for detecting whether an audio signal associated with an ongoing call is a spoofed audio signal or a genuine audio signal. To detect spoofed or genuine audio signals the analytics server 102 can capture the audio signal of an ongoing phone call and provide the audio signal to a trained spoof detection subsystem. The trained spoof detection subsystem (as discussed below) can provide a prediction of whether the audio signal is a spoofed audio signal or a genuine audio signal. The analytics server 102 uses the prediction from the trained spoof detection subsystem to take further action, such as disconnect the call or execute additional authentication processes.

[0032] The central database 104 may store, update, manage, and query various types of data accessible to, and for use by, components of the system 100, including call data for phone calls. Database 104 may be hosted on any computing device comprising a processor, memory, and software capable of performing the various tasks and processes described herein. In some implementations, database 104 may be integrated into a single computing device with other components of the system 100, such as analytics server 102. And in some implementations, as illustrated in FIG. 1, database 104 may be hosted by a distinct computing device and may be in communication with analytics server 102 via one or more networks.

[0033] The central database 104 may store call data and audio signals related to calls for phones and operational data related to algorithmic classification models. Database 104 may also store output data results generated by the various processes. Non-limiting examples of the data stored in a database may include training audio signals with known verification status of spoofed call audio signal or genuine audio signal and trained parameters of spoof detection subsystems. The verification status of each of the audio signals can be stored as metadata associated with each of the plurality of audio signals. Alternatively, central database 104 can store data structures that identify the verification status of each of the audio signals as being a spoofed audio signal or a genuine audio signal. Central database 104 can include training and testin datasets corresponding to the respective functions to be performed with respect to the one or more neural networks.

[0034] As discussed further below in relation to a triplet loss function approach to training the one or more neural networks, the central database 104 can include audio signals that are designated as positive audio signals, negative audio signals, and anchor audio signals. The audio signals designated as positive audio signals and anchor audio signals can have the same verification status, such as, for example, a spoofed audio signal or a genuine audio signal. The negative audio signals, on the other hand, have a verification status that is different from the verification status of the positive audio signals and the anchor audio signals. For example, if the verification status of the positive and the anchor audio signals is“a spoofed audio signal,” then the verification status of the negative audio signals would be“a genuine audio signal.

[0035] Analyst device 106 may be operated by personnel of the call analysis system

101 (e.g., fraud analysis, administrators) to configure components of the system 100 such as the analytics server 102 and central database 104, to execute various analytics processes, generate data outputs, and manage various types of data. Analyst device 106 and agent devices 109a, 109b may be any computing device comprising memory, a processor, and software, and configured for various features and tasks described herein. Non-limiting examples may include a server computer, laptop computer, desktop computer, a tablet computer, and the like.

[0036] Analyst device 106 may be coupled via one or more networks to analytics server

102 and central databases 104, allowing analyst devices 106 to communicate instructions (e.g., database queries, modeling instructions) to analytics server 102, central databases 104, or other devices of the call analysis system 101. The analyst device 106 may transmit instructions and configuration parameters to analytics server 102 for executing certain processes and to central databases 104 for accessing (e.g., querying, updating) or otherwise managing call data for the system 100.

[0037] Agent devices 109a, 109b may be coupled via one or more networks to external servers 105a, 105b and external databases 105a, 105b, allowing agent devices 109a, 109b to communicate instructions (e.g., database queries, modeling instructions) to the analytics server 102 of the call analysis system 101 (e.g., via a web portal GUI) or to external servers 105a, 105b within the same call center 103a, 103b. The agent devices 109a, 109b may transmit instructions and configuration parameters to analytics server 102 or external servers 105a, 105b for executing training and/or classification processes and to external databases 105a, 105b for accessing (e.g., querying, updating) call data stored within the corresponding call center 103a, 103b

[0038] In some embodiments, the analyst device can configure the system 100 such that the spoof detection subsystems discussed herein can be executed in any one of the customer call centers 103a, 103b, the caller devices 110, or the call analysis system. In some embodiments, the analyst device 106 can configure the system such that the training of the spoof detection system is carried out at one location in the system 101 (e.g., at the analysis server 102) and the detection of spoofed audio signals in incoming audio calls is carried out at another location in the system 100 (e.g., at the caller device 110, the customer call centers 103a, 103b). In some embodiments, the analyst device 106 can receive requests from one or more components of the system 100 (e.g., the customer call center 103a, 103b) for trained detection models of the spoof detection subsystems. The analyst device 106 can in response transmit a trained spoof detection subsystem to the requesting component or transmit values of configuration parameters of the spoof detection subsystem to the requesting component to allow the requesting component to configure a local spoof detection system with the received configuration parameters.

[0039] Customer call centers 103a, 103b may comprise external servers 105a, 105b, external databases 107a, 107b, agent devices 109a, 109b, and data capture appliances 112a, 112b

[0040] The external server 105a, 105b can execute the spoof detection subsystems discussed herein in a manner similar to that discussed above in relation to the analytics server 102. For example, the external server 105a, 105b can carry out training of the spoof detection subsystem based on audio data stored in the external database 107a, 107b. Further, the external server 105a, 105b can carry out spoof detection by executing the spoof detection subsystem for incoming calls at the customer call center 103a, 103b. In some embodiments, as discussed above, the external server 105a, 105b can request configuration parameters of a spoof detection subsystem from the analytics server 102 or the analyst device 106. In some embodiments, the external server 105a, 105b can reconfigure or retrain the locally run spoof detection subsystem based on audio signals stored in the external database 107a, 107b.

[0041] The external database 107a, 107b can store audio signals, or configuration parameters of the spoof detection subsystems in a manner similar to that discussed above in relation to the database 104 of the call analysis system. For example, data stored by external databases 107a, 107b may include, without limitation, the audio signals generated from telephone calls received from caller devices 110, metadata associated with audio signals received via carrier networks and/or inputted by users (via an agent device 109a, 109b), and trained spoof detection models received from a call analysis system 101, among other forms of data.

[0042] The agent device 109a, 109b may execute an end application that may identify a caller and determine whether the call is a spoofed call. The end application may execute trained classification models that are stored in the external database 107a, 107b or stored locally on the agent device 109a, 109b.

[0043] In some embodiments, customer call center 103a, 103b may be equipped with the database capture appliance 112a, 112b. The data capture appliance 112a, 112b may receive, convert, and store audio signals, among other types of call data, received during telephone calls between the caller device 110 and the call center 103a, 103b.

[0044] Caller devices 110 may be any communications or computing device that callers can use to place a telephone call to a destination employing various processes and tasks described herein. Non-limiting examples of caller devices 110 may include mobile phones 110a or landline phones 110b. Caller devices 110 are not limited to telecommunications- oriented devices ( e.g ., telephones), but may also include devices implementing voice-over-IP (VoIP) protocols for telecommunications, such as computers 110c. A user or speaker may speak an utterance into a caller device 110 comprising a microphone and/or software (e.g., codec) for converting the uttered sound into an electrical audio signal. The caller device 110 may be a device capable of telecommunications, such as a telephone (e.g., cellular phone, landline phone) or other processor-based device capable of voice over internet (VoIP) communications (e.g., computer). The caller device 110 then transmits the audio signal according to one or more telephony protocols and networks to establish a telephone call with an agent of customer call center 103a, 103b.

[0045] The user’ s utterance, which is used to perform spoof detection, is received as an audio signal (sometimes referred to as the“recognition audio signal”). The recognition audio signal may be electrically transmitted from the caller device 110 to server 102, 105a, 105b executing a spoof detection subsystem. Although it is contemplated that the caller device 110 into which the recognition speech sample is spoken may be a telecommunication device (e.g., phone), this need not be the case. For instance, the caller device 110 may simply be a microphone located in close proximity to the server 102, 105a, 105b executing a spoof detection subsystem.

[0046] The results of the spoof detection analysis can be used by an end application of agent device 109a, 109b or analyst device 106 that needs to verify that the audio signal associated with a caller is a spoofed audio signal or a genuine audio signal. However, even though the implementations of the processes described herein can be used by applications designed to filter out malicious callers, the implementations are not limited to those types of applications. For instance, the processes described herein can be advantageously used in other applications, such as those where voice biometrics are used to authenticate and grant access to a computing resource or achieve physical entry.

[0047] It should be noted that various modifications can be made to the system illustrated in FIG. 1. For instance, the caller device 110 may transmit the recognition audio signal directly to an end application, which in turn relays the recognition audio signal to a server 102, 105a, 105b comprising a spoof detection subsystem. In this case, the end application may also receive some form of input from the user representing a self- identification. For instance, in case of performing a speaker identification task, the end application may request the user to identify him or herself (either audibly or by other forms of input) and send both the recognition audio signal and the user’s purported identity to the spoof detection subsystem for authentication. Furthermore, there is no limitation in regard to the respective locations of the various elements illustrated in FIG. 1. In certain situations, the end application may be remote from the user, thus requiring the use of telecommunications for the user to interact with the end application. Alternatively, the user (and the caller device 110) may be in close proximity to the end application at the time of use; for example, if the application controls a voice-activated security gate.

[0048] Spoof Detection Subsystem Implementing PCEN-Net

[0049] FIGS. 2A and 2B show components of a first spoof detection subsystem 200 installed and executed by a computing device (e.g., server computer) of a call analysis system, call center, or other network infrastructure. The first spoof detection subsystem 200 comprises hardware and/or software components that may be installed on any number of computing devices and is configured to execute various spoof detection processes and tasks described herein. It should be appreciated that each block represents any number of computing components (e.g., hardware and/or software) of the first spoof detection subsystem 200 that may be utilized to execute the various features and functions described by the blocks. It should be further appreciated that some embodiments may comprise additional or alternative components and still fall within the scope of this disclosure.

[0050] FIG. 2A shows a block diagram of the first spoof detection subsystem 200 that includes a per-channel energy normalization (PCEN) frontend 202, a conv-net feature extraction block 204, and a classifier 206. In operation, the first spoof detection subsystem 200 receives one or more audio signals as an input, which may be in any number of machine- readable data formats (e.g., .wav, .mp3). The PCEN frontend 202 processes an audio signal input and generates a per-channel energy transformed audio signal, as illustrated in FIG. 2B, for example. The per-channel energy transformed audio signal is processed by the conv-net feature extraction block 204, which determines a prediction score based on a set of parameters of a convolution neural network (CNN) executed by the conv-net feature extraction block 204. The classifier 206 can compare the prediction score to a threshold value to determine whether the audio signal is a spoofed audio signal or a genuine audio signal. The first spoof detection subsystem 200 is an end-to-end system, in that the first subsystem 200 determines the values of various parameters of the PCEN frontend 202 and the cov-net feature extraction block 204 based on input data. Such input data can include a plurality of audio signals that can be used to train and optimize the first subsystem 200.

[0051] FIG. 2B shows a block diagram of PCEN frontend 202 of the first spoof detection subsystem 200 shown in FIG. 2A, according to an embodiment. The PCEN frontend 202 includes a time-frequency conversion block 208, a filterbank 210, and a PCEN transformation block 212. The audio signal received by the time frequency conversion block 208 is in time domain. For example, the audio signal can be represented by a one dimensional array where each position in the array corresponds to a time unit, and each numerical entry represents a magnitude of the audio signal at the corresponding time unit. The time-frequency conversion block 208 transforms the time domain audio signal into a two dimensional time- frequency representation. For example, the time-frequency conversion block 208 can implement discrete Fourier transform to transform the one dimensional array corresponding to the time domain audio signal into a two dimensional matrix representing a combined time and frequency domain representation of the audio signal. [0052] In some embodiments, the time-frequency conversion block 208 can execute a one dimensional CNN for transforming the audio signal from time domain (one dimension) to time-frequency (two dimensions) representations. For instance, when a one dimensional signal is convolved using multiple convolutional one dimensional filters, an output gets an additional dimension (sometimes referred to as“channels”) that is equal to the number of filters. As an example, if a one-dimensional input signal has a dimension of 200, and the number of filters is 80, the resulting output size is 200x80. The one dimensional CNN can have an input layer, a plurality of hidden layers, a dense layer, and an output layer. The one dimensional CNN may also have a set of one dimensional CNN parameters that include, for example, the number of hidden layers, the kernel size, the weights at each layer, and bias values, among others. The one dimensional CNN accepts as input the one dimensional array representing the time domain audio signal. The input layer, and the plurality of hidden layers can utilize one dimensional kernels and feature maps to process data. As discussed further below, the one dimensional CNN can be trained using a plurality of audio signals (stored in machine-readable storage media of a computing device), to determine the values of the set of one dimensional CNN parameters.

[0053] The filterbank 210 of the PCEN front end 202 comprises software routines and processes that operate as a set of filters that filter the time-frequency representation of the audio signal into a plurality of channels in the frequency domain. The filterbank 210 can determine the number of the plurality of channels and the width of each channel. In some embodiments, the filterbank 210 can be implemented as a trainable linear transformation function that is positioned at an output of the one dimensional CNN discussed above.

[0054] The PCEN transformation block 212 transforms the filtered time-frequency representation of the audio signal output by the filterbank 210 into a per-channel energy normalized signal (PCEN) audio signal. The PCEN transformation block 212 uses a transformation function that generates the PCEN audio signal based on the filtered time- frequency representation of the audio signal and a time integration function. The transformation function carries out three component operations on the filtered time-frequency representation of the audio signal: temporal integration, adaptive gain control (AGC), and dynamic range compensation (DRC). The DRC operation can reduce the variance of foreground loudness in the audio signal, while the AGC operation can suppress stationary background noise. The temporal integration can combine audio information over time to improve detection and discrimination of audio artifacts in the audio signal. Beneficially, the transformation of the audio signal into a PCEN audio signal before providing the audio signals to the conv-net feature extraction block 204 improves the ability of the conv-net feature extraction block 204 to extract features that distinguish between spoofed audio signals and genuine audio signals. The transformation function executed by the PCEN transformation block 210 can include several parameters that can be trained using the plurality of audio signals, and can be optimized based on the plurality of audio signals.

[0055] In some embodiments, the time integration function can be implemented using a one time-step recurrent neural network (RNN). The RNN can perform the same task for every element of an input sequence, with the output being dependent on the previous computations, which is well suited for implementing an integration function. The input sequence can be a time domain sequence of audio samples corresponding to an audio signal. The RNN can perform the tasks on the input sequence in a moving window fashion, where the processing at a given window position in the input sequence is based on the portion of the input sequence within the window and the result of processing one or more previous positions of the window. The parameters of the RNN can be optimized based on the plurality of input audio signals.

[0056] The first spoof detection subsystem 200 can parse (sometimes referred to as

“slice”) the PCEN audio signals into subframes, where each subframe represents a duration of time. As an example, the PCEN front end 202 can parse the PCEN audio signals into subframes and provide the subframes to the feature extraction block 204. In some embodiments, the feature extraction block can include an input layer that parses the PCEN audio signals into subframes. Referring back to FIG. 2 A, each of the subframes can form an input to the conv- net feature extraction block 204. For example, the first spoof detection subsystem 200 can slice the PCEN audio signal into subframes of about 200 ms. In some embodiments, the number of subframes can be equal to the number of inputs of the feature extraction block 204. For example, the subframe duration can be equal to the duration of the audio signals in the time domain divided by the number of inputs of the feature extraction block 204. In some examples, a subframe can overlap in time with at least other adjacent subframe.

[0057] The feature extraction block 204, as mentioned above, can be a CNN which receives as inputs the various subframes of the PCEN audio signal. The CNN can be a standard CNN including an input layer, a plurality of convolution layers and a fully connected output layer. The output of the CNN can have a set of parameters that define the number of kernels, the size of the kernels, the weights of each layer, and the bias values. The CNN also can include pooling layers between two convolution layers that can pool the feature maps of previous convolution layers. The pooling layers can include, for example, max pooling layer, average pooling layer, etc. The output layer of the CNN can generate a prediction score, which indicates the likelihood that an audio signal is a spoofed audio signal or a genuine audio signal. In a non-limiting example, the CNN can include three hidden layers interleaved with max pooling layers of size 4x2, with a stride of 2x1 and non-linear activation. In another non limiting example, the three hidden convolution layers (first, second, and third) can include 16, 32, and 64 kernels respectively; the kernels in the first hidden convolution layer can have a height and width of 20 and 8, respectively; the kernels in the second hidden convolution layer can have a height and width of 10 and 4, respectively, and the third hidden convolution layer can have a height and width of 5 and 2, respectively.

[0058] The classifier 206 can compare the prediction score generated by the CNN to a threshold value to determine whether the predicted verification status of the audio signal is a spoofed audio signal or a genuine audio signal. As an example, the classifier can assign a value ‘O’ to a verification status of spoofed audio signal and a value‘G to the verification status of genuine audio signal. The classifier 206 also can set a threshold value of for example 0.5. If the prediction score is greater than 0.5, the classifier 206 can determine that the predicted verification status of the audio signal is a genuine audio signal. On the other hand, if the prediction score is less than 0.5, the classifier can determine that the predicted verification status of the audio signal is spoofed audio signal. Additionally or alternatively, in some embodiments, the classifier 206 can be a support-vector machine (SVM). For example, in some instances, an output vector of the CNN can be generated based on the pooling layer immediately preceding the fully connected layer of the CNN. The output vector can be provided to the SVM for a binary classification into a spoofed audio signal or a genuine audio signal.

[0059] The ability of the spoof detection subsystem 200 to predict the verification status of the audio signals is based in part on the values of the parameters selected for the PCEN frontend 202 and the feature extraction block 204.

[0060] FIG. 3 depicts a flowchart showing execution steps of a spoof detection process

300, according to an embodiment. The spoof detection process 300 includes training the various parameters of the spoof detection system and detecting the verification status of an audio signal fed to the trained spoof detection system. As the spoof detection subsystem is an end-to-end system, the same audio signals are used to train both the PCEN frontend and the feature extraction block, as well as a classification backend. It should be understood that the steps shown and described herein are merely illustrative and additional, alternative, and fewer number of steps should be considered to be within the scope of the disclosure.

[0061] In step 302, the process 300 includes training the PCEN front end. As discussed above, the PCEN frontend includes a time-frequency conversion block, the filter bank and the PCEN transformation block. Each one of these blocks can include trainable parameters, the values of which can be optimized based on the training on a plurality of audio signals. The time-frequency conversion block can be implemented as a one-dimensional CNN having one dimensional CNN parameters. Further, the filterbank can include trainable parameters that can determine the number and bandwidth of the frequency channels in the filterbank. Furthermore, the PCEN transformation block includes per-channel transformation neural network parameters that can include the parameter of the transformation function and the parameters of the RNN implementing the time integration function.

[0062] The training process can begin with feeding the PCEN front end with a plurality of audio signals, where each of the plurality of audio signals has a verification status of spoofed audio signal or genuine audio signal. The PCEN front end modifies each of the plurality of audio signal to generate corresponding PCEN audio signals. The PCEN front end can receive a back-propagated loss function determined by the feature extraction block (discussed in further detail below). The PCEN front end can utilize the backpropagated loss function to modify the trainable parameters of the PCEN frontend such that the magnitude of the loss function is minimized.

[0063] In a next step 304, the process 300 includes training the feature extraction neural network. The feature extraction block, as discussed above, can be implemented with a CNN. The CNN can be trained with the PCEN audio signals output by the PCEN frontend. In particular, each of the plurality of PCEN audio signals output by the PCEN frontend can be fed to the CNN of the feature extraction block to determine the loss function. In some embodiments, the process 300 can utilize a triplet loss approach for training the CNN, as discussed below. It should be understood that the triplet loss approach is only an example, and that other approaches for training the spoof detection system can be utilized.

[0064] FIG. 4 illustrates a specific example of the structure of a neural network with a triplet network architecture for use in training the feature extraction block and the PCEN frontend. Each of a first, second, and third feed-forward neural networks 412, 422, 432 may comprise a first convolutional layer connected to a max-pooling layer, a second convolutional layer followed by a second max pooling layer, a subsequent fully connected layer, and an output layer which comprises the embedding vector. Upon conclusion of training, however, the output layer of each of the feedforward neural networks 412, 422, 432 will be configured to produce a feature representation (e.g., a vector representation of the audio signal).

[0065] Also shown in FIG. 4 are the respective inputs 410, 420, 430 of the first, second, and third feed-forward neural networks 412, 422, 432. According to some embodiments, prior to being inputted into a respective one of the feed-forward neural networks 412, 422, 432, each of the audio signals can be preprocessed by the PCEN frontend to generate a two-dimensional representation (or“image”) of the audio signal. Also, as mentioned above, the PCEN audio signals can be sliced into a certain number of overlapping subframes or windows (W).

[0066] In a specific example of such pre-processing, which is not to be construed as limiting, an image may be generated for each audio signal by partitioning the underlying audio signal into windows of a 20 ms duration, with an overlap (or window shift) of 10 ms. Further, the image for each audio signal may include, e.g., five-hundred of the aforementioned overlapping windows (W= 500), with 40 Mel filterbank features (F = 40) being extracted from each window (thereby resulting in an image of a size 40x500 in each of the inputs 410, 420, 430). In this example, this would correspond to an audio signal with a duration of 5 seconds (with the 40-dimensional feature vector being extracted every 10ms). It should be appreciate that this is merely an example, and it should be noted that different audio signal durations, different numbers of windows, and different numbers and types of features may be used. For instance, different types of "images" may be applied to the CNN.

[0067] The images can be representations of the plurality of audio signals including a set of positive audio samples, a set of negative audio samples, and a set of anchor audio samples. The set of positive audio samples and the set of anchor audio samples have the same verification status. In particular, the images corresponding to the set of positive audio signals can be provided to the first neural network 412, the images corresponding to the set of anchor audio signals can be provided to the second neural network 422, and the images corresponding to the set of negative audio samples can be provided to the third neural network 432.

[0068] It should be noted that the aforementioned preprocessing may be performed either before or after relevant audio signals are stored in the memory device, which may be volatile or non-volatile storage (e.g., memory, RAM, disk). It is also contemplated that the caller device inputting audio signals, and other types of speech transmitting/recording devices that are used for inputting the positive and negative speech samples (e.g., agent devices, analyst device), may be configured to perform some or all of the operations of the aforementioned preprocessing.

[0069] Assuming that input signal is a preprocessed“image” of a size FxW as described above, a first convolutional layer of each of the first, second, and third feed-forward neural networks may comprise an appropriate number (Nc) of convolutional filters to process such an image. Further, each convolutional filter in this layer may be configured to process the features of a corresponding window, and thus have a size of FxWl neural units (or "neurons"). As such, each convolutional filter would have a height commensurate with the number of features F, and a width (Wl) that can be chosen based on various considerations, such as accounting for dynamics of speech and satisfying processing and memory requirements, among others.

[0070] In a specific non-limiting example of the configuration of the first convolutional layer in the feed-forward neural networks 412, 422, 432 of FIG. 4, the inputted“image” is preprocessed with a size (FxW) of 40x500 as mentioned above in connection with the previous non-limiting example regarding preprocessing, corresponding to 5 seconds of audio signal, with a 40-dimensional feature vector extracted every 10 ms. In this case, the first convolutional layer of each of the first, second, and third feed-forward neural networks may comprise two- hundred, fifty-six convolutional filters (Nc= 256), each filter having a height of 40 neurons (corresponding to the 40 features extracted from each window), and a width (Wf) not exceeding 5 neurons (e.g., 1 or 3 neurons). In this case, the depth of the first convolutional layer in FIG. 4 would be 256, the height of this layer would be 40, and the width of the layer would be wf < 5. Also, in this non-limiting example, the entry neurons in the first convolutional layer could be connected to multiple windows of the input image.

[0071] It should be noted that the above is a non-limiting example, and that the depth and height dimensions of the first convolutional layer may differ from the aforementioned 256 and 40, respectively. In this case, however, it is suggested that the depth (i.e., the number of convolutional filters Nc) would preferably be less than or equal to the number of overlapping windows in the inputted image, while the height would preferably be equal to the number of features (e.g., Mel filterbank features) extracted from each of the windows during preprocessing of the relevant speech sample. [0072] Subsequent to the first convolutional layer in each of the feed-forward neural networks 412, 422, 432, a one-dimensional max-pooling layer of a size (Sm) is provided. A max-pooling layer is a layer that computes a maximum value from a temporally input sequence. The results of the max-pooling layer are provided to a second convolutional layer, comprised of Nc convolutional filters. However, the size of these filters is not necessarily the same as those in the first convolutional layer. In a non-limiting example, the height and width of this second convolutional layer may be 1.

[0073] Furthermore, a final global max-pooling layer is applied across the entire time axis, to make the resulting embedding vector less sensitive to the duration of the inputted image. In some embodiments, each neural network can determine a mean and a standard deviation of the last max-pooling layer. The determined mean and standard deviation values can be concatenated to form a L2 normalized vector. The next layers are a fully connected layer and output layer; for example, connected with each of the Nc neurons. The output layer provides the embedding vector during training. Specifically, the output layers of the respective first, second, and third feed-forward neural networks 412, 422, 432 are what were previously referred to as the first, second, and third networks outputs 414, 424, 434 of the CNN.

[0074] For example, during training, when the image of an positive audio signal is fed through the first feed-forward neural network 412, the first network output 414 produces a result which may be symbolized as EVx+ , which stands for the embedded vector for the positive audio signal. Similarly, when the image of an anchor speech sample is fed through the second feed-forward neural network 422, the second network output 424 produces a result which may be symbolized as EVxa, which stands for the embedded vector for the anchor audio signal. Similarly, when the image of a negative speech sample is fed through the third feed forward neural network 432, the third network output 434 produces a result which may be symbolized as EVx-, which stands for the embedded vector for the negative audio signal.

[0075] After a given batch of training samples are processed, a loss function may be calculated based on the respective outputs 414, 424, 434 of the first, second, and third feed forward neural networks 412, 422, 432. The computed loss function may be used to train the respective neural networks 412, 422, 432 of the feature extraction block and the PCEN frontend using a backpropagation algorithm with a "stochastic gradient descent" optimizer, which aims at computing the gradient of the loss function with respect to all the weights in the respective neural networks (the PCEN frontend neural networks and the feature extraction block neural network). The goal of the optimizer is to update the weights, in order to minimize the loss function. However, it is also contemplated that other types of backpropagation algorithms may be used. In the example of FIG. 4, the loss function can be used to update the connection weights in each of the first convolutional layer, the second convolutional layer, and the fully connected layer.

[0076] Referring again to the process 300 in FIG. 3, after the training of the PCEN frontend 302 and the training of the feature extraction neural network 304, the process 300 proceeds to a next step 306, to generate transformation parameters for the PCEN frontend and the feature extraction block, and a verification vector.

[0077] After the PCEN frontend and the feature extraction block training is completed, the process 300 can proceed to a next step 308 of receiving an audio signal that is to be verified as being a spoof audio signal or a genuine audio signal. The received audio signal is processed through the PCEN frontend and the feature extraction neural network, as discussed above 310. The PCEN frontend generates a PCEN transformed audio signal based on the trained parameters of each of the time-frequency conversion block, the filterbank, and the PCEN transformation block. The output of the feature extraction block is then fed to a classifier to determine whether the audio signal is a spoof audio signal or a genuine audio signal 312. In some embodiments, the feature extraction neural network can generate a prediction score. The classifier can compare the prediction score to a threshold value to predict the verification status of the audio signal.

[0078] Spoof Detection Subsystem Implementing SincResNet

[0079] FIG. 5A illustrates a second spoof detection subsystem 500. The second spoof detection subsystem 500 can be implemented as an alternative to a PCEN-Net spoof detection subsystem, such as the spoof detection subsystem shown in FIG. 1. Similar to the embodiments discussed above, the second spoof detection subsystem 500 is also an end-to-end detection system. However, the second spoof detection subsystem 500 is based on a residual neural network and preprocessing the audio signal using sine filters before providing the signals to the residual neural network.

[0080] The second spoof detection subsystem 500 includes a sine convolution layer

502 and a residual neural network 504. In operation, the sine convolution layer 502 receives as an input an audio signal and outputs a two dimensional matrix. In some embodiments, the input audio signal can be an audio signal for which a verification status (spoofed audio signal or genuine audio signal) is to be determined. In some embodiments, during training of the second spoof detection subsystem 500, the audio signal can be one of a plurality of audio signals with known verification status. The sine convolution layer 502 can be implemented as a filter bank of rectangular bandpass filters. Each of the rectangular bandpass filters can have a two cut-off frequencies (low and high) defining the boundaries of the frequency band. The low and high cut-off frequencies of each bandpass filter can be trained based on a plurality of audio signals, and is discussed below in relation to FIG. 5A.

[0081] The sine convolution layer 502 can generate the two-dimensional matrix based on the audio signal and the parameters of bandpass filters of the filter bank. In some embodiments, the first dimension of the two dimensional matrix can correspond to the number of frequency bands in the filter bank, while the second dimension of the two dimensional matrix can be a function of the time duration of the audio signal and a window size of the convolution. As a non-limiting example, the sine convolution layer can generate a two dimensional matrix of size 128x200 for a two-second audio signal. Utilizing the sine convolution layer for preprocessing the audio signal can result in reduced number of parameters as compared to a similar convolution layer of a CNN. The reduced number of parameters, in turn, result in reduced time in converging to values for the parameters during training.

[0082] The residual neural network (RNN) 504 is used for feature extraction from the two dimensional matrices representing the plurality of audio signals preprocessed by the sine convolution layer 502. FIG. 5B shows an example block diagram of the RNN 504 shown in FIG. 5A. The RNN includes a plurality of convolution layers 512 and residual connections 510 between an output of a convolution block and an input of a subsequent convolution block. The RNN 504 includes a mean and standard deviation pooling layer 506 positioned between the last convolution layer and the fully connected layer 508. The mean and standard deviation pooling layer is a global pooling layer that pools the means and the standard deviations of the feature maps. In some embodiments, the RNN can include two fully connected layers 508, where each of the two fully-connected layers 508 include rectified linear activation. In some embodiments, the RNN 504 can further include a length normalization layer positioned after the fully-connected layers 508. The length normalization layer can generate a length normalized output based on parameters of the length normalization layer and the output of at least one of the two fully connected layers 508. In some embodiments, any one of ResNet-18, ResNet-34, or ResNet-56 can be used to implement the RNN 504. However, these ResNets are modified to remove the global average pooling layer and are replaced with mean and standard deviation pooling layers (sometimes referred to as“statistics layers”). The output of the mean and standard deviation pooling layers can be fed to the two fully-connected layers.

[0083] FIG. 6 depicts a flowchart showing execution steps of a second example spoof detection process 600. The second example spoof detection process 600 may correspond for illustrative purposes to a second spoof detection subsystem 500 shown in FIG. 5A. The process 600 includes training the various parameters of the second spoof detection system. As the second spoof detection subsystem is an end-to-end system, the same audio signals are used to train both the sine convolution layer and the RNN. It should be understood that the steps shown and described herein are merely illustrative and additional, alternative, and fewer number of steps should be considered to be within the scope of the disclosure.

[0084] In a first step 602, the process 600 includes training the sine convolution layer, and a next step 604, training the RNN. The training procedure can include inputting a plurality of audio signals to the sine convolution layer, where each of the plurality of audio signals includes a verification status of a spoof audio signal or a genuine audio signal. The sine convolution layer can generate a two dimensional matrix corresponding to each audio signal, where the two dimensional matrix is a result of processing the audio signal with a filterbank of bandpass filters with trainable high and low cut-off frequencies. The two dimensional matrix generated by the sine convolution layer is then fed to the RNN. The RNN processes the two dimensional matrix through the feed-forward neural network, such as the one shown in FIG. 5B, and generates a prediction score that indicates the likelihood that the respective audio signal is a genuine audio signal or a spoof audio signal. The RNN includes a set of RNN parameters, such as kernel size, number of kernels, feature map size, etc., that can be trained. The prediction score generated by the RNN is compared to the actual value of the audio signal. For example, the second spoof detection subsystem can assign a value‘O’ to the verification status spoof audio signal and a value‘ G to the verification status of genuine audio signal. The second spoof detection subsystem can then generate a loss function based on the prediction score and the value indicating the actual verification status of the audio signal. Similar to that discussed above in relation to process 300, the second spoof detection subsystem can back-propagate the loss function to each convolution layer as well as the sine convolution layer to train or modify the values of the parameters such that the magnitude of the loss function is reduced. In particular, the values of the low and high cut-off frequencies of the bandpass filters of the filterbank of the sine convolution layer can be modified as well as the RNN parameters of the various layers of the RNN can be modified until the value of the magnitude of the loss iuncuon is below a threshold value. In step 606, the modified RNN parameters and the filterbank frequencies can be used as bandpass filter parameters. These bandpass filter parameters can be used to generate a recognition vector.

[0085] In next step 608, the process 600 further includes the sine convolutional layer receiving an audio signal. Once the sine convolution layer and the RNN are trained, the trained second spoof detection subsystem 500 can be used to predict the verification status of input audio signals. In next step 610, the sine convolution layer generates a two dimensional matrix based on the bandpass filtering of the audio signal, where the parameters of the bandpass filters have already been trained. Further, the two dimensional matrix is then provided as an input to the RNN. The RNN processes the two dimensional matrix and generates a prediction function. The second spoof detection subsystem can compare the value of the prediction function with a preset threshold value to predict whether the audio signal has a verification status of spoof audio signal or a verification status of a genuine audio signal 612.

[0086] The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

[0087] Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suuaoie means including memory sharing, message passing, token passing, network transmission, etc.

[0088] The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware can be designed to implement the systems and methods based on the description herein.

[0089] When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed herein may be embodied in a processor- executable software module which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.

[0090] The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments snown nerein out is to be accorded the widest scope consistent with the following Claims ana the principles and novel features disclosed herein.

[0091] While various aspects and embodiments have been disclosed, other aspects and embodiments are contemplated. The various aspects and embodiments disclosed are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.