Patent Publication Number: US-11646018-B2

Title: Detection of calls from voice assistants

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims priority to U.S. Provisional Application No. 62/823,503, filed Mar. 25, 2019, which is hereby incorporated by reference in its entirety. 
     This application is related to U.S. Pat. No. 10,141,009, entitled “System And Method For Cluster-Based Audio Event Detection,” filed May 31, 2017; U.S. Pat. No. 10,325,601, entitled “Speaker Recognition In The Call Center,” filed Sep. 19, 2017; and U.S. application Ser. No. 16/784,071, entitled “Systems And Methods Of Gateway Detection In A Telephone Network,” filed Feb. 6, 2020, each of which is hereby incorporated herein in its entirety. 
    
    
     TECHNICAL FIELD 
     This application generally relates to systems and methods of modeling and classifying incoming calls based on features extracted from the audio signals and one or more machine-learning algorithms. 
     BACKGROUND 
     Voice assistant software programs, such as Amazon Alexa®, Google Assistant®, and Apple Siri®, are becoming more prevalent in households as the software is integrated into an ever-increasing number of voice assistant devices, like Amazon Echo® and Google Home®. Voice assistant devices (sometimes called “smart speakers”) are intelligent, computing devices controlled by a voice assistant software program. These voice assistant devices execute programmatic routines (sometimes called “skills”) that perform and provide certain tasks and capabilities in response to a user&#39;s voice commands. The capabilities of voice assistant devices continue to improve and expand. One recently introduced functionality includes the capability of making telephone calls. Recent studies indicate an increasing amount of phone calls to call centers. With the increased number of calls being made to call centers, and the growth of voice assistant devices capable of placing telephone calls, there is likely to be a sharp increase in the number of phone calls to call centers originating from these types of devices. 
     Organizations and infrastructures, such as corporate call centers, often perform various processes or tasks that ingest and consider various types of data, associated with a caller, a caller device, or other information (e.g., carrier network metadata). For example, a call center may collect information about the caller for authentication purposes. In this example, the call center can use the caller&#39;s Automatic Number Identification (ANI) value (or phone number) to authenticate the caller. In other examples, the processes or tasks of the call center can ingest and evaluate the caller&#39;s voice, the type of device the caller is calling from, and other information. For certain types of caller-devices, a technical problem can arise when the type of the caller-device must be collected by call center systems in order to perform various tasks and processes. For instance, there may be technical challenge differentiating various types of devices that seemingly having the same phone number. When a user instructs a voice assistant device to initiate a telephone call, the voice assistant device utilizes the telephony functionality and/or the telephone number of a telecommunications device, which is usually a cellular or landline phone. In operation, the voice assistant device makes a Voice over Internet Protocol (VoIP) call to a Public Switched Telephone Network (PSTN), while the metadata associated with the call retains whichever phone number the user selects, which is typically the phone number registered to the user for the user&#39;s cellular or landline phone. While this configuration is convenient for the user, there is a mismatch between the device-type portrayed from the phone number (in the metadata of the call) and the actual device-type. As mentioned, the actual device-type, and the differences between the possible types of caller-devices, can be characterized by various audio attributes that can have a significant impact in a number of applications, including software applications or computing systems that analyze calls and make decisions based on audio and metadata of the calls. The systems implementing such software applications or computing systems need to be able to distinguish calls that originate from voice assistant device against calls that originate from cell phones, even when the devices convey the same phone number to the systems. 
     Speaker recognition applications or computing systems, for example, could take advantage of having prior knowledge of the device-type that provided an audio signal to be processed for calibration to improve accuracy. Additional examples where such device-type classification would be useful is in audio forensics, as well as any call-based, device-type identification applications or systems. 
     In view of the problems above, it would be beneficial for call center systems to be capable of automatically classifying and recognizing the types of devices being employed by callers. In particular, it would be beneficial to have a means for programmatically determining that a caller-device is a voice assistant device, a telephone (e.g., mobile/cellular phone), or a VoIP call (e.g., VoIP protocols implemented via software executed by a processor). Given the expected increase in voice assistant devices being employed, it would be particular beneficial to detect that a call has originated from such a device. 
     A technical hurdle is that are no datasets or known programmatic approaches for detecting voice assistant devices specifically. Device and channel characteristics can be used to detect calls from a certain caller. This can be extended to classifying International from domestic, and cell, landline and VoIP based calls from each other. But there are no known datasets, software tools, or other means of reliably and efficiently detecting and tracking calls that have originated from voice assistant devices. 
     What is therefore needed is a means for programmatically and automatically distinguishing incoming calls that have originated from voice assistant devices, and incoming calls that have originated from other types of devices, regardless of the mode of usage. 
     SUMMARY 
     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 a method or system that execute machine learning algorithms that programmatically trains (or otherwise generates) classification models based on the various types of features of an audio signal and call data. In some implementations, the classification models are used for determining whether an incoming telephone call has originated from a voice assistant device, such as Amazon Alexa® and Google Home®, or some other type of device. 
     In one embodiment, a computer-implemented method detects certain types of caller devices. The method comprises receiving, by a computer, call data for an incoming call, the call data comprising an audio signal and metadata; extracting, by a computer, one or more feature-types from the audio signal of the call data for the incoming call; generating, by the computer using a classifier model, a device-type score for the incoming call based upon the one or more feature-types and the metadata of the call data for the incoming call, wherein the classifier model is trained according to the call data for a plurality of calls; and determining, by the computer, that the incoming call originated from a voice assistant device in response to determining that the device-type score for the incoming call satisfies a threshold value. 
     In another embodiment, a computer-implemented method detects certain types of caller devices. The method comprises receiving, by a computer, call data for a plurality of calls, the call data for each respective call comprising an audio signal and metadata of the respective call, wherein the plurality of calls includes one or more voice assistant calls that involved one or more voice assistant devices, the call data for each voice assistant call indicates a device-type is a voice assistant device; for each respective call in the plurality of calls, extracting, by the computer, one or more feature-types from the audio signal of the call data; training, by the computer, a classification model based on the one or more feature-types extracted from the call data of the plurality of calls, wherein the classifier model is trained according to one or more machine-learning algorithms used for the one or more feature-types; generating, by the computer, one or more standardization parameters for the classification model, wherein each feature-type is normalized according to a corresponding standardization parameter; and storing, by the computer, the classification model in a machine-readable storage. 
     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 
       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. 
         FIG.  1    shows components of a system for receiving telephone calls, according to an embodiment. 
         FIG.  2    is a flowchart showing execution steps for training a classification model, according to an embodiment. 
         FIG.  3    is a flowchart showing execution steps for detecting voice assistant devices using a trained classification model, according to an embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     Reference will now be made to the exemplary 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. 
     Embodiments described herein provide for systems and methods for detecting phone calls that originated from voice assistant devices (e.g., Amazon Echo®, Google Home®). Voice assistant devices are smart speakers controlled by an intelligent voice assistant software program, where a key aspect of user-interface is through voice commands. A voice assistant device can be configured (or otherwise programmed) with specific programmatic routines to perform certain tasks and capabilities in response to user voice commands. One of these capabilities can include making phone calls using built-in microphones of a voice assistant device. Callers can now use voice assistant devices to place phone calls. As such, call centers (or other centralized system that handles a volume of telephone calls) will receive phone calls that have originated from voice assistant devices and typical telecommunications devices (e.g., landline phones, cellular phones). The type of caller-device can be used for various operational purposes, such as tracking caller behaviors and authentication. A problem is determining the type of device that was used to originate the call because such determination is not always accurate, or even possible, simply by listening with a human ear. Embodiments described herein may apply artificial intelligence and/or machine learning techniques both to identify and measure the differences between the audio of calls originating from various types of devices, and to later determine which type of caller-device has originated a later incoming call. In some implementations, the resulting detection models and/or the outputted detection results may be applied in various downstream processes, such as authentication. 
     Typical telephone calls placed from a user&#39;s cell phone or landline phone often differ from voice assistant calls in one or more ways that produce identifiable and measurable characteristics, which can be used by call center systems (e.g., servers) to detect various types of caller-devices. A typical telephone captures speech and produces an audio signal that have distinct features of various types, as compared against an audio signal produced by a voice assistant device. A computing system (e.g., server computer) of the call center can receive, measure, and evaluate the various features of a call&#39;s audio signals to generate a classification model for classifying a type of caller-device, or to implement such a classification. 
     In operation, a computing device (e.g., server computer) of a call center detects calls from voice assistant devices using a classifying model trained with features extracted from phone calls. The computer (or a data collection appliance in communication with the computer) executes various signal processing techniques to identify and extract features from the audio signals of prior calls and incoming calls. The computer may execute a machine learning algorithm to build a classifier around these features. 
     Examples of the types of features may include, without limitation: reverberation-based features, spectral-based features, noise-based features, and acoustic features, among others. Features may be extracted from segments (sometimes called “frames”) of the audio signal or from the entire or nearly-entire (e.g., substantially all of the) audio signal. Shown in Table 1 are non-limiting examples of feature-types and features that may be extracted and the source of the extraction. 
     
       
         
           
               
               
               
             
               
                 TABLE 1 
               
               
                   
               
               
                 Feature-Type 
                 Feature 
                 Source Of Extraction 
               
               
                   
               
             
            
               
                 Reverberation- 
                 Linear Predictive Coding 
                 Segments 
               
               
                 Based Features 
                 (LPC) Coding 
               
               
                 Spectral- 
                 Rolloff 
                 Entire or Near-Entire Signal 
               
               
                 Based Features 
                 Flatness 
                 Entire or Near-Entire Signal 
               
               
                   
                 Bandwidth 
                 Entire or Near-Entire Signal 
               
               
                   
                 Centroid 
                 Entire or Near-Entire Signal 
               
               
                   
                 Contrast 
                 Entire or Near-Entire Signal 
               
               
                   
                 Harmonic Mean Fast 
                 Entire or Near-Entire Signal 
               
               
                   
                 Fourier Transform 
               
               
                   
                 (FFT) 
               
               
                   
                 Custom Mel-Frequncy 
                 Entire or Near-Entire Signal 
               
               
                   
                 Cepstral Coefficients 
               
               
                   
                 (MFCCs) 
               
               
                 Noise- 
                 Signal-To-Noise Ratio 
                 Segments 
               
               
                 Based Features 
                 (SNR) 
               
               
                 Acoustic 
                 Short-Window Correlation 
                 Entire or Near-Entire Signal 
               
               
                 Features 
                 Cepstral Features 
                 Segments 
               
               
                   
               
            
           
         
       
     
     Reverberation-based features may include, for example, calculated statistics based on Linear Predictive Coding (LPC) residual value. The effect of reverberation is often exaggerated on voice assistant calls, which impacts the computed LPC residual that is identifiably distinct from calls originating from typical telephone devices. Oftentimes after a classifier has been trained, the reverberation-based features (e.g., LPC residual value) may provide an identifiable distinction between voice assistant calls and phone calls from other types of devices. 
     Spectral-based features may include values associated with the relative energy and/or frequency characteristics of the audio signal. There is difference in the spread of energy over the spectral bands between each classification of caller-device—telephone devices and voice assistant devices. The differences are often attributable to, for example, a larger number of microphones used in voice assistant devices, array configuration, differences in noise cancellation, and various speech enhancement techniques. Non-limiting examples of spectral feature values that may be implemented by the system for classification may include: rolloff, flatness, bandwidth, centroid, and contrast. The computing device may further calculate a harmonic mean Fast-Fourier Transform (FFT). The calculated spectral features may further include certain typical or customized mel-frequency cepstral coefficients (MFCCs). 
     Noise-based features may include signal-to-noise ratio (SNR) estimates calculated by the computing device. Calculated SNRs are oftentimes higher for voice assistant calls. As above, the differences in the SNR values are likely attributable to, for example, a larger number of microphones used in voice assistant devices, array configuration, differences in noise cancellation, and various speech enhancement techniques. 
     Acoustic features are values representing acoustic characteristics of audio signals. This may include, for example, short-window correlation, and statistical values for cepstral features extracted from an audio signal. 
     In some embodiments, a computer extracting the features can execute a voice activity detection software program. In such embodiments, the voice activity detection software generates or modifies, a new or existing computer file containing the audio signal having only portions of the audio signal containing speech, thereby producing a computer file with a reduced size. The voice activity detection software may generate the audio segments or some other software program executed by the computer may do so. 
     Components of a System Embodiment 
       FIG.  1    shows components of a system  100  for receiving and analyzing telephone calls, according to an embodiment. The system  100  may comprise a call analysis center  101 , any number of customer call centers  103   a ,  103   b , and caller devices  106 ,  108 . A call analysis center  101  comprises analytics server  102 , databases  104 , internal caller devices  106   a ,  108   a , and analyst devices  110 . Customer call centers  103   a ,  103   b  may comprise external servers  105   a ,  105   b , external databases  107   a ,  107   b , and agent devices  109   a ,  109   b . The system  100  may further comprise user devices  111  in networked communication with the call analysis system  101 . The caller devices  106 ,  108  may include any number of communication devices  106  and any number of voice assistant devices  108 . 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 a system  100 . Although  FIG.  1    only shows a 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. 
     The various components of the call analysis center  101  and call centers  103   a ,  103   b  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  106 ,  108  may communicate via telecommunications protocols, hardware, and software, used for hosting and transporting audio signals associated with telephone calls. 
     It should be appreciated that  FIG.  1    is merely one example of the devices of a system  100 . Although  FIG.  1    shows an illustrative 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 a database  104  into an analytics server  102 , such that these features are integrated within a single device. In a similar example, some embodiments may incorporate an analyst device  110  into an analytics server  102 , such that a single computing device performs the features and tasks of such devices. Although only two devices are shown for illustrative purposes, the caller devices  106 ,  108  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. 
     The system  100  of  FIG.  1    comprises various network infrastructures  101 ,  103   a ,  103   b . Each network infrastructure  101 ,  103   a ,  103   b  may comprise computing devices that collect call data generated from phone calls between the caller devices  106 ,  108  and the respective infrastructure  101 ,  103   a ,  103   b , and store the call data into a machine-readable storage media, such as a database  104 ,  107   a ,  107   b . Servers  102 ,  105   a ,  105   b  may then access the call data to execute various operations described herein, including, but not limited to: querying or updating a database  104 ,  107   a ,  107   b ; 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. 
     Customer call centers  103   a ,  103   b  may also offer the functionality of call analysis center  101  to offer call analytics services to other call centers, which may owned or operated by customers of the analytics service or in some cases may be sub-components of a larger organization. Call center  103   a ,  103   b  may have agent devices  109   a ,  109   b , or in some embodiments, data appliance  112   a ,  112   b  configured to collect call data generated during phone calls between calling devices  106 ,  108  and the particular call center  103   a ,  103   b . In some instances, call data collected at the call centers  103   a ,  103   b  is stored into an external database  107   a ,  107   b  and/or transmitted to an external server  105   a ,  105   b  to perform various analytics services. In some instances, the call data collected at the call centers  103   a ,  103   b  is transmitted to the call analysis center  101 , which may perform various analytics services and/or store the call data. 
     The call analysis center  101  may comprise any number computing devices configured to collect from various data sources call data generated from phone calls involving caller devices  106 ,  108  and store the call data into storage media, such as a central database  104 . The devices of the call analysis center  101  may also execute various analytics processes on the call data, such as executing software processes for training global or tailored classification models and executing software processes for the classification of various types of caller devices  106 ,  108 . For example, the illustrative call analytics center  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. 
     The analytics server  102  of call analysis center  101  may execute programmatic training routines that generate one or more classification models for classifying device-types of caller devices  106 ,  108  and based on historic call data stored in a database  104 , or otherwise received from various data sources. Additionally, the analytics server  102  may execute programmatic detection routines that apply a classification model against call data of incoming calls (also referred to as an “ongoing calls” or “recent calls”), in order to automatically determine the device-type of a caller device  106 ,  108  that originated an incoming call and to detect when the incoming call has originated from a voice assistant device  108 . The analytics server  102  may execute various processes and tasks on call data accessible to, or otherwise received by, the call analytics system  101 , such as call data received from call centers  103   a ,  103   b , call data received from devices internal to the analytics center  101 , and call data received from public user devices  111 . The analytics server  102  may transmit outputted data, such as, for example, analytics or classification results, global or tailored classification models, and other data updates, to each of the call centers  103   a ,  103   b  or otherwise publish outputted data over the Internet. Additionally or alternatively, the analytics server  102  or another device of the call analytics center  101  may make data stored in the central database  104  available to devices of the call centers  103   a ,  103   b  to permit queries, or the analytics server  102  may publish certain output data to a website, web portal, FTP site, or other externally accessible databank hosted by the analytics call center  101  and that is accessible to the call centers  103   a ,  103   b.    
     It should be appreciated that analytics server  102  may be any kind of computing device comprising a processor, memory, and software and capable of executing various processes and tasks described herein. Non-limiting examples of an 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. An analytics server  102  may be coupled to one or more databases  104  and agent devices via one or more networks, allowing the analytics server  102  to communicate (to and from other components of the system  100 ) various database queries, call data, execution instructions (e.g., execution parameters, triggering inputs, query parameters), and other forms of machine-readable computer data and configurations. 
     The analytics server  102  may receive call data for phone calls involving caller devices  106 ,  108 , including calls a caller device  106 ,  108  makes to or receives from a call analysis center  101 . In some instances, the analytics server  102  may receive some or all of the call data from another data source, such as a central database  104 , call centers  103   a ,  103   b , analyst devices  110 , user devices  111  or other third-party system (e.g., carrier node). And in some instances, the analytics server  102  may extract some or all of the call data from an audio signal and streaming data packets for a phone call, directly from a caller device  106 ,  108  or via a device of a customer call center  103   a ,  103   b . The call data may then be stored into a database  104  for later retrieval and processing. The call data may include an audio signal containing a recording of some or all of the audio that was streamed or otherwise received from the caller device  106 ,  108 , and various types of metadata fields (e.g., phone number, call timestamps, associated protocols, carrier information). It should be appreciated that “call data,” as used herein, includes data that could be characterized as metadata or data, based on various data specifications governing, for example, the devices, networking protocols, and telecommunications protocols, among others. 
     The analytics server  102  may execute various processes to extract features from the call data differently, according to the type of features to be extracted. For some types of features, the analytics server  102  extracts or otherwise generates the features based on substantially all of an audio signal in the call data. For some types of features, the analytics server  102  extracts or otherwise generates the features based on segments (sometimes referred to as “frames”) of an audio signal. In such cases, the analytics server  102  parses the audio signal into the segments. These segments may be stored in-memory (e.g., RAM) on the analytics server  102  for execution of one or more processes and/or in a database  104  for later reference. In some implementations, the analytics server  102  may execute an automatic speech recognition (ASR) software program on the audio signal. An ASR program automatically identifies the occurrence of spoken utterances in the audio signal. In some cases, when executing the ASR, the analytics server  102  may output an updated, revised, or new audio signal that contains an abridged version of the audio signal having only the portions of audio signal with spoken utterances. Additionally or alternatively, the ASR may also output the parsed segments. 
     As mentioned, the analytics server  102  executes training processes that train a classification model based on some corpus of prior calls (e.g., records of call data). The classification model may be trained by executing one or more supervised, unsupervised, or semi-supervised machine learning algorithms. Non-limiting examples of the various algorithms used for training may include: logistic regression, decision tree learning, linear regression, clustering, Gaussian matrix modelling, anomaly detection, convolutional neural network, and deep neural networks, among others. In operation, the analytics server  102  receives the call data from one or more sources (e.g., databases  104 , call centers  103   a ,  103   b , analyst devices  110 , user devices  111 ), then extracts features of various types from the call data. At least one of the prior calls in the corpus should be a voice assistant call that originated from a voice assistant device  108 , thereby allowing the analytics server  102  to ingest, and algorithmically model, call data associated with known voice assistant calls. In some implementations, the call data may be ingested by the analytics server  102  as one or more labelled sets or data fields that the analytics server  102  references when executing training processes. As an example, during a supervised learning process, an oracle (e.g., an administrative user) “label” field in the call data that indicates the device-type for each prior call and/or indicates whether a prior call was a voice assistant call. For unsupervised or semi-supervised implementations, the analytics server  102  may, for example, execute clustering algorithms and/or Gaussian matrix algorithms in order to algorithmically develop, generate, and identify numerical differences between the various features of voice assistant calls compared to features of non-voice assistant calls. When the classification model is trained, the analytics server  102  may store the trained classification model in memory or on a hard disk of the analytics server  102 , store the classification model in a central database  104  of the call analysis center  101 , and/or transmit the trained classification model to call centers  103   a ,  103   b  for local storage and implementation by external servers  105   a ,  105   b  and external databases  107   a ,  107   b.    
     As mentioned, in some embodiments, the call analysis center  101  may provide call analytics services to one or more external call centers  103   a ,  103   b  that are operated by organizational (e.g., corporate) customers of the call analysis center  101 . In such embodiments, components of the call analysis center  101 , such as analytics server  102  and databases  104 , may receive call data from devices of the call centers  103   a ,  103   b , such as external servers  105   a ,  105   b  or agent devices  109   a ,  109   b , and perform various processes and tasks on the call data received to generate a classification model. The analytics server  102  may employ a trained classification model to execute classification processes, and/or the analytics server  102  may transmit the trained classification model to various devices of the system  100 , such as external servers  105   a ,  105   b  of call centers  103   a ,  103   b.    
     In some implementations, the analytics server  102  may generate global classification models based on call data received from various data sources, where a global classification model is broadly applied to call data by any number of devices of the system  100 . For example, the analytics server  102  may train a global classification model using call data received from any number of call centers  103   a ,  103   b , and then distribute the global classification model to external servers  105   a ,  105   b  of the call centers  103   a ,  103   b , which may execute classification processes using the global classification model. In such implementations, the call analysis center  101  trains a global classification model once, before deploying the trained classification model for deployment by various devices of the system  100 , such as external servers  105   a ,  105   b . As such, the call analysis center  101  provides a ready-to-use (out-of-the-box) trained, global classification model. 
     Additionally, an external server  105   a  may be configured to collect call data for calls locally directed to a particular call center  103   a , and execute training processes described herein to further refine or tailor the global classification model. In such cases, the external server  105   a  may generate a tailored classification for the particular call center  103   a , based on call data received by that call center  103   a  or based on certain updates received from the central database  104 . In some implementations, in response to a customer&#39;s request, the analytics server  102  may generate a tailored classification model for the particular call center  103   a  using the call data received from that call center  103   a  or other data sources, and/or the analytics server may otherwise adjust the tailored classification model according to the customer request. 
     Call centers  103   a ,  103   b  may comprise external servers  105   a ,  105   b , external databases  107   a ,  107   b , agent devices  109   a ,  109   b , and data appliances  112   a ,  112   b . An external server  105   a ,  105   b  may communicate certain data (e.g., call data, classification models) with the call analysis center  101 , execute classification processes, and perform various programmatic processes. The external server  105   a ,  105   b  may be any computing device comprising a processor, memory, and software and configured to perform the various processes and tasks described herein. 
     In operation, the external server  105   a ,  105   b  executes classification processes that apply a trained classification model against call data for incoming calls. The external server  105   a ,  105   b  receives call data for an incoming call received from an agent device  109   a ,  109   b  or other data appliance  112   a ,  112   b . The incoming call may be received by an agent of a call center  103   a ,  103   b , where call data may be received by an agent device  109   a ,  109   b  and presented to the agent via a graphical user interface (GUI). A classification process may be automatically invoked when an incoming call or call data is received at the external server  105   a ,  105   b  or at the agent computer  109   a ,  109   b , or other device of the call center  103   a ,  103   b . The classification process may also be manually invoked when the agent enters a command into the GUI, which instructs the agent device  109   a ,  109   b  to transmit a process-invoking instruction to the external server  105   a ,  105   b . The agent computer  109   a ,  109   b  may also transmit or otherwise forward the call data for the incoming call, via one or more networks, to the external server  105   a ,  105   b  or to an analytics server  102  of an analysis center  101 . The external server  105   a ,  105   b  may extract, from the incoming call data, the various features used by a classification model stored in an external database  107   a ,  107   b  of the call center  103   a ,  103   b . The external server  105   a ,  105   b  may then apply the classification model to the feature-values extracted from the audio signal of the incoming call, which causes the external server  105   a ,  105   b  to produce a score predictive of the type of device that originated the incoming call. The outputted device-type score may, for example, represent the likelihood the extracted features (as modeled) come from a particular type of caller device  106 ,  108 . If the device-type score satisfies a certain threshold value, then the external server  105   a ,  105   b  determines that the call audio was produced by a voice assistant device  108 , and thus the external server  105   a ,  105   b  has detected a voice assistant call from the call data of the incoming call. 
     Although the illustrative system  100  mentions the classification processes as being executed by external servers  105   a ,  105   b , it should be appreciated that, in some embodiments, the analytics server  102  may execute the various classification processes described herein, in addition or as an alternative to the external servers  105   a ,  105   b . In such embodiments, a device of the call center  103   a ,  103   b  (e.g., an agent device  109   a ,  109   b ) may transmit or stream the call data for the incoming call to an analytics server  102  via one or more networks. 
     Databases  104 ,  107   a ,  107   b  are computing devices that store various types of data (e.g., call data, classification models, caller profiles) received from various devices of the system  100 . Data sources may include, for example, agent computers  109   a ,  109   b , analyst devices  110 , external servers  105   a ,  105   b , data capture appliances  112   a ,  112   b , user devices  111 , and various network devices (e.g., switches, trunks, routers), among other devices of a system  100 . Call data and the various other computing files may be stored in databases  104 ,  107   a ,  107   b  in any number of formats. The data stored in a central database  104  (e.g., global call data, classification models, caller profiles) may be accessible by analytics server  102  and/or analyst devices  110 . In some cases, certain data stored in the central database  104  may be accessible to call centers  103   a ,  103   b  according to a data sharing policy, whereby external databases  105   a ,  105   b  of the call centers are configured to exchange stored data (e.g., download, upload) with the central database  104  at a given interval or based on a triggering event, such as instructions from an agent device  109   a ,  109   b  or analyst device  110 . Each of the databases  104 ,  107   a ,  107   b  may be hosted on one or more computing devices comprising a processor, memory, and software, and capable of performing the various tasks and processes described herein. In some embodiments, a database  104 ,  107   a ,  107   b  may be integrated into a single computing device with other components of the same network infrastructure  101 ,  103   a ,  103   b , such as analytics server  102  or external server  105   a ,  105   b . And in some embodiments, like that of  FIG.  1   , each database  104 ,  107   a ,  107   b  may be hosted on a distinct computing device, and may be in communication with servers  102 ,  105   a ,  105   b  via one or more networks. 
     An analyst device  110  and agent devices  109   a ,  109   b  may be operated by personnel of the call analysis center  101  (e.g., fraud analysts, administrators) or call centers  103   a ,  103   b  to configure components of the system  100 , such as analytics servers  102  and central databases  104 , to execute various analytics processes, generate data outputs, and manage various types of data. Analyst device  110  and agent devices  109   a ,  109   b  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. Analyst device  110  may be coupled via one or more networks to analytics server  102  and central databases  104 , allowing analyst devices  110  to communicate instructions (e.g., database queries, modeling instructions) to analytics server  102 , central databases  104 , or other devices of the call analysis center  101 . The analyst device  110  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 . Agent devices  109   a ,  109   b  may be coupled via one or more networks to external servers  105   a ,  105   b  and external databases  105   a ,  105   b , allowing agent devices  109   a ,  109   b  to communicate instructions (e.g., database queries, modeling instructions) to the analytics server  102  of the call analysis center  101  (e.g., via a web portal GUI) or to external servers  105   a ,  105   b  within the same call center  103   a ,  103   b . The agent devices  109   a ,  109   b  may transmit instructions and configuration parameters to analytics server  102  or external servers  105   a ,  105   b  for executing training and/or classification processes and to external databases  105   a ,  105   b  for accessing (e.g., querying, updating) call data stored within the corresponding call center  103   a ,  103   b.    
     Analyst device  110  and agent devices  109   a ,  109   b  may have locally executed native software associated with the system  100  that communicates with components of the system  100 , such as analytics server  102  or external server  105   a ,  105   b . In some implementations, the analyst device  110  and/or agent devices  109   a ,  109   b  may interact with analytics server  102  or external servers  105   a ,  105   b  via a browser-based web-portal. Agent devices  109   a ,  109   b  may present a user with a GUI allowing an agent of the call center  103   a ,  103   b  to review and interact with call data about an ongoing or prior calls and interact with an external server  105   a ,  105   b  and/or analytics server  102 , and query an external database  105   a ,  105   b . The GUIs presented by analyst devices  110  and agent devices  109   a ,  109   b  may be configured to display various execution options for providing instructions and parameters to the analytics server  102 , as well as the various inputs and outputs transmitted to and received from the server  102  for executing various training processes, or to external servers  103   a ,  103   b  for executing various classification processes. In some cases, the GUI of an agent device  109   a ,  109   b  may present an indication that an ongoing call has originated from a voice assistant device  108  or a communication device  106  based on a classification model executed by an external server  105   a ,  105   b  or by the agent device  109   a ,  109   b . The GUI of the agent device  109   a ,  109   b  may also present results of various downstream processes of the external server  105   a ,  105   b , such as an authentication process, to an agent who may take action accordingly. 
     As mentioned, there are no existing datasets containing call data for calls that originated from voice assistant devices  108 . In some embodiments, an analytics server  102  may receive (or “crowdsource”) call data used for training a classification model from a variety of data sources. Call center agents may transmit training call data from the devices of the call centers  103   a ,  103   b  (e.g., external databases  107   a ,  107   b , agent devices  109   a ,  109   b ) to the analytics server  102  and/or database  104  of the call analysis center. When the agent devices  109   a ,  109   b  receive call data (e.g., calls serviced by the agents), some or all of the call data may be presented to the agents. Agents may enter, via a GUI, labels that indicate certain calls are confirmed to be originated from voice assistant devices  108 . In some cases, personnel of the call analysis center  101  may further contribute. In such cases, internal caller devices  106   a ,  108   a  associated with the call analysis center  101  may originate calls to a phone number of the call analysis center  101 . The new training call data is received by a device of the call analysis center  101  and is presented via a GUI of an analyst device  110  to a user who then enters, via the GUI, labels that indicate certain calls are confirmed to be originated from internal voice assistant devices  108   a . Additionally or alternatively, the call center  101  may facilitate public or semi-public participation. Public users would use various types of caller devices  106 ,  108  to place telephone calls to a phone number of the call analysis center  101 . The call data for those public call would then be generated and available to a public user via a web portal hosted by a webserver of the call analysis center  101 . The user would access the web portal using a public user device  111 . A GUI would be presented on the user device  111 , allowing the user to enter labels that indicate which of the user&#39;s calls were originated from a voice assistant device  108 . This annotated call data can be transmitted from the various data sources, as training data, to a central database  104  or directly to the analytics server  102  for executing training processes. During crowdsource training, the various users (e.g., call center agents, personnel of the call analysis center  101 , public users) may enter additional fields into the call data (to be used as the training data) based on the information available to the particular user. Non-limiting examples of such additional data fields may include make and model of the voice assistant device  108 , distance from caller to voice assistant device  108 , and mode-of-usage of a corresponding mobile phone during a call originating from a voice assistant device  108 . This information can be further employed to train the classification model, thus used to further discriminate between particular models of voice assistant devices  108 . 
     It should be appreciated that agent devices  109   a ,  109   b  and public user devices  111  may be any computing device comprising a processor, memory, and software and capable of performing the various tasks and processes described herein. Non-limiting examples of the agent devices  109   a ,  109   b  and user devices  111  may include desktop computers, laptop computers, mobile devices (e.g., smart phones), tablet computers, and the like. 
     It should also be appreciated that, in embodiments of this disclosure, certain functions and features described as being executed by analyst devices  110  or agent devices  109   a ,  109   b  may, in other embodiments, be executed by other devices, such as analytics server  102  or external server  105   a ,  105   b . Likewise, certain functions and features described as being executed by analytics server  102  or external server  105   a ,  105   b  may, in other embodiments, be executed by other devices, such as analyst device  110  or agent device  109   a ,  109   b . Moreover, in some embodiments, analytics server  102  or external server  105   a ,  105   b  and analyst device  110  or agent device  109   a ,  109   b  may be the same computing device. 
     In some embodiments, call centers  103   a ,  103   b  may comprise a data appliance  112   a ,  112   b  that is configured to collect and store call data generated from phone calls that originated from caller devices  106 ,  108 . The data appliance  112   a ,  112   b  may intercept or otherwise capture computing network traffic and/or telecommunications network traffic that contains certain portions of call data for calls involving the caller devices  106 ,  108 . The data appliance  112   a ,  112   b  then transmits the intercepted call data to an external server  105   a ,  105   b  or external database  107   a ,  107   b  of the same call center  103   a ,  103   b  monitored by the particular data appliance  112   a ,  112   b ; or the data appliance  112   a ,  112   b  may transmit the intercept network traffic containing the call data directly to devices of the call analysis center  101  (e.g., analytics server  102 , central database  104 ). 
     Caller devices  106 ,  108  (including internal caller devices  106   a ,  108   a ) may be any communications or computing device that callers can use to place a telephone call to a call analysis center  101  or other destination by employing various processes and protocols associated with telecommunications. As used herein, caller devices  106 ,  108  include communication devices  106  and voice assistant devices  108 . Caller devices may capture audible utterances from the speech of the caller and generate a machine-readable audio signal using a particular codec. 
     Communication devices  106  may be any device comprising telecommunications as an integrated design feature and/or additional software process. Non-limiting examples of a communication device  106  may include a landline telephone, a mobile/cellular phone, and a personal computer executing software implementing VoIP protocols (e.g., Skype®). 
     Voice assistant devices  108  are often (but not always) a “smart speaker” product (e.g., Amazon Echo®, Google Home®) or other “smart” product that functions according to a voice-based, intelligent assistant, operating system. A voice assistant device  108  may be any device having a processor that executes software routines that are responsive to a voice command interface. In the system  100 , a voice assistant device  108  is configured to execute software capable of utilizing the telecommunications features of a paired, or otherwise internetworked, device. For example, when making a telephone call to a call center  103   a ,  103   b  the voice assistant device  108  uses the phone number assigned to a telephone (e.g., cell phone, landline phone). In some cases, the telecommunications protocols are handled by the telephone and the telephone carrier. In such cases, the voice assistant device  108  operates as a mere interface between the caller and the telephone, whereby the audible inputs (caller&#39;s spoken utterances) and outputs (agent&#39;s utterances) are presented via the speaker of the voice assistant device  108 , yet the telecommunications exchange is performed by the telephone. The voice assistant device  108  may exchange the audible inputs/outputs with the telephone via a short-distance wireless protocol (e.g., Bluetooth®, WiFi®). The voice assistant device  108  may be configured with firmware and/or software that implements a VoIP protocol in order to place a voice assistant call, thereby enabling the voice assistant device  108  to communicate with the call centers  103   a ,  103   b  directly using telecommunications protocols. In such cases, the voice assistant device  108  may “borrow” the phone number assigned to the related telephone, which is exchanged via a short-distance wireless protocol, where the voice assistant device  108  employs the phone number assigned to the telephone in header data and other aspects of the VoIP protocol. In either case, the telephone number can be received at devices of a call center  103   a ,  103   b  as a caller identifier (caller ID), which is ordinarily used as an initial or superficial factor for identifying or authenticating the caller. 
     Typical calls placed from a communication device  106  (e.g., mobile phone, landline phone) may differ from voice assistant calls place from voice assistant devices  108  in one or more ways. These differences may result in identifiable and measurable characteristics that an analytics server  102  and/or external server  105   a ,  105   b  can extract, model, and evaluate to detect voice assistant calls. For example, a communication device  106 , such as a mobile phone, may use a different codec to capture, encode, and transmit audible utterances via one or more networks. These codecs are typically different from the codecs used by voice assistant devices  108  to capture and encode audible utterances. This is only an example, as other differences exist as well. 
     As mentioned, the call analysis center  101  may perform the classification tasks on the customer&#39;s behalf, or the customer call center  103   a ,  103   b  may comprise external server  105   a ,  105   b  configured to perform the classification task using the classification model received from the analytics server  102  of the call analysis center  101 . For example, in some implementations, after the analytics server  102  of the call analysis center  101  has generated the classification model for a particular customer, the server  102  may transmit, via one or more networks, the classification model to an external server  105   a ,  105   b  of the customer&#39;s external call center  103   a ,  103   b  infrastructure. In such implementations, the external servers  105   a ,  105   b  are configured to reference the generated classification model when executing various aspects of the classification algorithms described herein in order to classify a type of caller-device  106 ,  108  that has originated a call to that particular external call center  103   a ,  103   b . In these implementations, the customer performs the classification task. 
     As an alternative example, in some implementations, the call analysis center  101  may execute the classification processes on the customer&#39;s behalf. After the analytics server  102  of the call center  101  has generated the classification model for a particular customer, the classification model may be stored into a database  104  of the call analysis center  101  and associated with prior or incoming call data received from that particular customer&#39;s external call center  103   a ,  103   b . In such implementations, the analytics server  102  may receive instructions from an agent device  109   a ,  109   b  of the customer&#39;s external call center  103   a ,  103   b  infrastructure to execute a classification algorithm. The analytics server  102  may further receive, from the agent device  109   a ,  109   b , a dataset or data stream containing new call data for an incoming call, ongoing call, or recent call, in conjunction with the instructions to execute the classification algorithm. The analytics server  102  retrieves, from the central database  104  using one or more customer keys or identifiers (e.g., IP address, pre-stored credentials), the classification model associated with the particular customer&#39;s external call center  103   a ,  103   b  infrastructure, and then executes the classification algorithms utilizing the classification model. In these implementations, the call analysis center  101  performs the classification task on behalf of the customer, often in a cloud-based or web-application implementation hosted on a webserver of the call analysis center  101 . 
     Example Processes 
     Training Process 
       FIG.  2    is a flowchart showing execution steps for training a classifier model according to a process  200 . The process  200  may be executed by one or more computing devices of a call analysis service, such as a server or the like. Although the steps of the process  200  may be performed by multiple computing devices, the following description details a single computer implementing the steps. It should also 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 this disclosure. 
     In a first step  202 , the computer collects call data for any number of past calls. This call data is ingested or otherwise collected in order to execute processes for training a classification model. In some embodiments, the call analysis systems may implement a crowdsourcing effort, whereby the training call data is received from a variety of client computers, which may include any number of computing devices of any type capable of performing the various processes described herein (e.g., desktop computer, laptop computers, tablet computers, mobile devices). The training call data may include user-entered labels that indicate certain call data originated from a particular type of device (e.g., mobile phone, landline phone, voice assistant device). 
     In a next step  204 , the computer cleans the training call data. Cleaning the call data may include automated and/or manual user-implemented processes. For example, in some implementations, the computer may remove noise from the audio signals and a user may further refine that automated process. As another example, a user may review the accuracy of labels assigned to the call data to confirm the label accurately associate the call data with the correct device-types from which the call data originated. 
     As another example, the computer and/or client computers may implement a manual, user-guided scrubbing process to eliminate excess or inaccurate data points. Additionally or alternatively, the computer or user may review the spectrograms of calls from various device-types and listen to those calls, to confirm there are differences in the labels in view of the visual and audible differences. For instance, if an administrative review were to visually inspect the spectrograms and listen to the audio of calls from different types of devices, there should be some differences in the labels. If, for some reason, a user (e.g., call center agent, analyst of call analysis center, public user) entered call data for only a single type of device, then such errors could be identifiable by visual and audio inspection of the spectrograms and audio signals. 
     In some cases, trained classification models may exist in machine-readable storage, on the computer or on networked devices of a local network infrastructure that includes the computer (e.g., call analysis center, customer call center). In such cases, previously trained classification models can be updated or otherwise tailored with the incoming call data, or may the existing classification models may be employed as to generate or confirm the proximity of various calculations, feature extractions, or various other determinations. 
     In further examples, the computer may de-duplicate certain redundant data records to reduce processing requirements. The computer may also execute one or more application programmable interfaces (APIs) that programmatically convert, reformat, or otherwise translate incoming certain data records formatted according to a data source&#39;s specification, into a specification expected and implemented by the computer. Additionally or alternatively, the computer may clean and pre-process the incoming call data by converting, reformatting, or otherwise translating certain data records of the call data to satisfy a model specification that is valid for the classification model, and then feed that call data into the machine learning-based classification model. 
     After cleaning the data in present step  204 , the computer extracts features from the call data of the phone calls, in steps  206 ,  208 ,  209 . Some types of features are extracted from audio segments of an audio signal, as in later steps  206 ,  208 . Some types of features are extracted from substantially entire audio signals, as in later step  209 . Although the process  200  contemplates extracting features of both feature-types, it should be appreciated that other embodiments may extract features from either only audio segments or only an audio signal. It should also be appreciated that although the process  200  describes steps for extracting features in a certain order, as in steps  206 ,  208 ,  209 , no particular order of execution is required in various embodiments. 
     In step  206 , the computer parses the audio signals of the call data into audio segments (sometimes called “frames”). The training processes executed by the computer may parse the audio signal into segments having a fixed or variable length. In some embodiments, the computer may execute voice activity detection software that automatically detects instances of speech utterances in an audio signal. In such embodiments, the computer may generate audio segments from only those portions of the audio signal containing utterances. The computer may then store the audio segments into memory (e.g., RAM) or into a database. 
     In step  208 , the computer extracts features of one or more types using the audio segments that were parsed from audio signals of the prior call data. The feature-types extracted from the audio segments may include, without limitation, reverberation-based features, noise-based features, and acoustic features, among others. When extracting features, the computer calculates statistical and/or representational values for each of the features being extracted. As an example, for reverberation-based features, the computer executes a linear predictive coding (LPC) algorithm on the audio segments to generate one or more values characterizing the audio signal, which may include a residue or residual value. The computer may then execute a machine learning and/or statistical algorithm (e.g., logistic regression, linear regression) to output a statistical value for the audio signal (across the audio segments) for each particular feature or type of feature (e.g., reverberation feature). Additionally or alternatively, the computer may then execute a machine learning algorithm to output statistical value for various features that are numerically predictive of each type of device. It should be appreciated that computer may execute the same or different machine learning algorithms when extracting each of the various features. 
     In step  209 , the computer extracts features of one or more types from all (or nearly all) of audio signals of the prior calls. The feature-types extracted from a full audio signal may include, without limitation, spectral-based features and certain acoustic features, among others. In some implementations, the entire audio signal includes only those portions of the audio signal having speech. In such implementations, the computer may execute a voice activity detection software program that detects speech utterances in the audio signal. 
     Similar to the prior step  208 , when extracting features from whole audio signals in the current step  209 , the computer calculates statistical and/or representational values for each of the features being extracted. As an example, for spectral-based features, the computer executes algorithms that, for example, generate one or more values characterizing the spectrum (e.g., energy distribution) of the audio signal; these algorithms may include, for example, calculating values for the spectral rolloff, spectral centroid, bandwidth, flatness, and contrast of an audio signal. The computer may then execute a machine learning and/or statistical algorithm (e.g., logistic regression, linear regression) to output one or more spectral-based statistical values predictive of each type of device. It should be appreciated that the computer may execute the same or different machine learning algorithms when extracting each of the various features. 
     In step  210 , the computer aggregates the extracted features for each of the device-types (e.g., mobile phone, landline phone, voice assistant device) and performs one or more preprocessing routines on the aggregated data containing the extracted features. The computer may store, in memory and/or in a database, the aggregated data as new data records or as updates to the existing call data. The aggregated data may contain indicators or fields that correlate or otherwise associate the aggregated data to the respective device-types. 
     Additionally or alternatively, in some embodiments, the computer may execute preprocessing routines, such as normalizing or standardizing the extracted feature sets using the same of call data. In such embodiments, one or more standardizing parameters for the feature sets may be included with a classification model being trained by the process  200 , thereby allowing the computer to normalize the corresponding features extracted from later-ingested call data. In some implementations, an administrative user enters a standardizing parameter via a GUI of the computer or another device. And in some implementations, the computer automatically determines the standardizing parameter according to statistical algorithms that, for example, identify outlier values or otherwise output a standardizing parameter. 
     In step  212 , the computer trains the machine-learning classification model using the feature sets extracted from the call data. The classification model may be trained to ingest and evaluate the features, when extracted from call data (for a particular call), in order to detect when a call has originated from a voice assistant device or another type of device (e.g., a mobile phone, landline phone). Additionally or alternatively, the classification model could be used to determine more granular knowledge of the voice assistance device, such as the device model (e.g. Amazon Echo®). The training processes executed by the computer may be unsupervised, supervised, or semi-supervised. The call data includes the call data for at least one voice assistant call. For instance, in the process  200 , the computer may execute various logistic regression algorithms on one or more extracted features. The computer may organize or cluster the values of the extracted features and associate the various features with particular device-types. Any number of machine-learning algorithms may be employed in order to train the classification model. 
     In step  214 , the trained classification model is deployed for execution in production environments, which may include one or more network infrastructures (e.g., call analysis center, customer call centers). The computer may store the trained model in memory or into a database from which computers may receive the classification model for later executing classification processes against incoming calls. When deployed into a customer call center system, or other network infrastructure, computers of that system may receive incoming call data for an incoming calls, retrieve the trained classification model from a database of the same or different infrastructure, and then execute classification routines against the incoming call data using the trained classification model. 
     Classification Process 
       FIG.  3    is a flowchart showing execution steps for detecting voice assistant devices using a trained classifier model, according to a process  300 . The process  300  may be executed by one or more computing devices of a call center, such as a server or the like. In the illustrative process  300 , a computer may execute the steps below using a trained classification model generated by a computing device of a call analysis service, where the classification model is stored into (and retrieved from) a database of the same call center as the computer executing the illustrative process  300 . Although the steps of the process  300  may be performed by multiple computing devices, the following description details a single computer implementing the steps. It should also be understood that the steps shown and described herein are merely illustrative and that additional, alternative, and fewer steps should be considered to be within the scope of this disclosure. 
     In a first step  302 , a computer may receive call data for a call that is incoming, ongoing, or otherwise relatively recent (referred to herein as an “incoming call” for ease and brevity). The call data for the incoming call may be received from any number of devices of the call center system capable of capturing, generating, or otherwise receiving call data. Such devices may include a client computer operated by a call center agent, a data capture appliance configured to intercept and forward various forms of network traffic, or a database of the call center that provides call data in response to queries from the computer, among other potential devices. The call data of the incoming call includes an audio signal, which may be a machine-readable data format (e.g., .wav) that represents the speaker utterances and that was generated according to a codec of a caller device. The call data may also include metadata, which may be appended or otherwise transmitted with the audio signal by the caller device, a carrier network, or a client computer device. 
     In a next step  304 , the computer may perform an initial review of the metadata of the incoming call data to confirm whether the caller device is readily identifiable as a particular type of caller-device. If the computer determines, based upon the metadata, the device-type of the incoming call is a telephone (e.g., cellular phone, landline phone) or otherwise appears to be from a telephone, then the computer proceeds with the process  300  of classification. If the computer determines based on the metadata the call is not from a telephone, then the computer has determined the call is likely from a VoIP call, and so the computer waits to receive new call data for a new incoming call at prior step  302 . 
     A voice assistant device typically “borrows” or otherwise employs the telephone number assigned to a paired telephone. A VoIP call often does not; such VoIP calls often have assigned telephone numbers provided by a software developer or hosting service, and often do not rely upon telecommunications protocols of carrier systems. Functionally, VoIP call is often designed to mimic conventional telephone functionality and provide the familiar appearance and experience of telephone at the user-level, though technologically the VoIP calls often do not implement telecommunications protocols or technologies in the same way as telephones, if at all. As such, the metadata of an incoming call originated from a VoIP call will be relatively different from the metadata of incoming calls that originated from telephones and voice assistant devices. 
     After reviewing the metadata of the incoming call at present step  304 , the computer extracts features from the call data of the incoming call in later steps  306 ,  308 ,  309 . The features to be extracted are based upon the features utilized by the classification model employed by the computer. As before, some types of features are extracted from audio segments of an audio signal, as in later steps  306 ,  308 ; and some types of features are extracted from substantially entire audio signals, as in later step  309 . Although the process  300  contemplates extracting features of both feature-types, other embodiments may extract features from either only audio segments or only an audio signal. Although the process  300  describes steps for extracting features in a certain order, as in steps  306 ,  308 ,  309 , no particular order of execution is required in various embodiments. 
     In step  306 , the computer parses the audio signal of the incoming call data into audio segments (sometimes called “frames”). The classification processes executed by the computer may parse the audio signal into segments having a fixed or variable length. In some embodiments, the computer may execute voice activity detection software that automatically detects instances of speech utterances in the audio signal. In such embodiments, the computer may generate audio segments from only the portions of the incoming audio signal containing utterances. The computer may then store the audio segments into memory (e.g., RAM) or into a database. 
     In step  308 , the computer extracts the features from the audio segments, as required by the classification model. The feature-types extracted from the audio segments may include, without limitation, reverberation-based features, noise-based features, and acoustic features, among others. When extracting features, the computer calculates statistical and/or representational values for each of the features being extracted. As an example, for reverberation-based features, the computer executes a linear predictive coding (LPC) algorithm on the audio segments to generate one or more values characterizing the audio signal, which may include a residue or residual value. 
     In some implementations, the computer may then execute a statistical algorithm (e.g., logistic regression, linear regression) to output statistical value for the audio signal (across the audio segments) for the particular type of feature. Additionally or alternatively, the computer may execute a statistical algorithm to output a statistical value for the particular type feature that may be used as a score indicative of how “close” the value is to similar values in prior call data. The computer may execute the same or different statistical algorithms when extracting each of the various features. 
     In step  309 , the computer extracts features of one or more types from all (or nearly all) of the audio signal of the incoming call. The types of features extracted from a full audio signal may include, without limitation, spectral-based features and certain acoustic features, among others. In some implementations, the entire audio signal includes only those portions of the audio signal having speech. In such implementations, the computer may execute a voice activity detection software program that detects speech utterances in the audio signal. 
     Similar to the prior step  308 , when extracting features from whole audio signal in the current step  209 , the computer calculates statistical and/or representational values for each of the features being extracted. As an example, for spectral-based features, the computer executes algorithms that, for example, generate one or more values characterizing the spectrum (e.g., energy distribution) of the audio signal; these algorithms may include, for example, calculating values for the spectral rolloff, spectral centroid, bandwidth, flatness, and contrast of an audio signal. In some implementations, the computer may then execute a statistical algorithm (e.g., logistic regression, linear regression) to output one or more spectral-based statistical values indicative of the type of caller device. It should be appreciated that the computer may execute the same or different machine learning algorithms when extracting each of the various features. 
     In some cases, when extracting features of various types, in prior steps  306 ,  308 ,  309 , as the computer generates one or more statistical parameters for particular features (e.g., LPC residual, spectral rolloff, SNR, short-window correlation) or types of features (e.g., reverberation-based features, spectral-based features, noise-based features, acoustic features) of the audio signal, the computer may append each of the statistical features to a dataset of features for the incoming call that the computer stores in-memory (e.g., RAM), which the computer may reference to, for example, execute one or more later steps  310 ,  312 ,  314  of the classification process  300 ; store into a database for later training or re-training processes; and/or reference when executing other downstream processes requiring the dataset. 
     In step  310 , the computer executes one or more preprocessing routines that, for example, standardize the extracted features for the incoming call according to a standardizing parameter stored and associated with the classification model. The computer executing the deployed classification model standardizes the features before executing the classification routines. 
     In step  312 , the computer executes the classification routines that employ the trained classification model. The standardized features are fed into the classification model, which in turn, causes the computer to generate a score predicting or otherwise indicating the likelihood of the type of caller-device that originated the incoming call. 
     In step  314 , the computer generates the final score, which the computer or other device of the call center system uses to determine whether, based on some predictive likelihood threshold, the incoming call originated from a voice assistant device. If the computer determines the score satisfies the threshold, then the computer has detected a voice assistant device. 
     The computer may be programed to execute one or more downstream processes based upon detecting a voice assistant call. In some embodiments, the incoming call may be authenticating or the authentication may fail, based on whether the caller-device type must be a particular predetermined type of device. Additionally or alternatively, the computer or other devices of the call center system may execute certain downstream processes that track and update a caller profile data record in a database. These processes may include, for example, caller behavior profiling for marketing or behavioral tracking purposes, or authentication profiling where pre-stored information about the (e.g., registered/expected caller-device types) may be referenced during an authentication process. The computer may reference, update, or otherwise manage profile record data for a caller based on detecting that a present/recent incoming call originated from a voice assistant device. 
     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. 
     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 suitable means including memory sharing, message passing, token passing, network transmission, etc. 
     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. 
     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. 
     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 shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein. 
     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.