Cumulative average spectral entropy analysis for pitch and speech classification

Through the cumulative average spectrum entropy analysis method, the problem of difficulty in tone recognition in degraded audio signals is solved, and more accurate and robust tone and speech classification is achieved, which improves the performance of call process analysis.

CN115956359BActive Publication Date: 2025-05-02GENESIS CLOUD SERVICES CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180039279.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-06-30
Filing Date
2021-06-30
Publication Date
2025-05-02
Estimated Expiration
2041-06-30

AI Technical Summary

Technical Problem

In the prior art, when analyzing a call process, it is difficult to accurately identify the tones in the degraded audio signal, resulting in poor call process analysis performance.

Method used

The cumulative average spectrum entropy analysis method is used to calculate the cumulative average entropy and the cumulative average power spectrum amplitude of the audio signal, and generate the cumulative average spectrum entropy metric to distinguish tone and speech.

Benefits of technology

Improves the accuracy of tone and voice classification under degraded audio signal conditions, and enhances the robustness and performance of call process analysis.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115956359B_ABST
    Figure CN115956359B_ABST
Patent Text Reader

Abstract

A contact center system for performing call progress analysis including pitch and voice classification according to an embodiment includes at least one processor and at least one memory, the at least one memory including a plurality of instructions stored thereon, the instructions, in response to being executed by the at least one processor, causing the contact center system to: determine a cumulative average of entropies of audio signals received by the contact center system; determine a cumulative average power spectral magnitude and a cumulative average spectral entropy of the audio signals; calculate a difference metric for the audio signals as a difference between the cumulative average of the entropies and the cumulative average spectral entropy; distinguish pitch from voice in the audio signals based on the difference metric; and, in response to identification of the one or more tones in the audio signals, process one or more tones of the audio signals.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to and the benefit of U.S. Provisional Application No. 63 / 045,908, filed on June 30, 2020, entitled “Cumulative Average Spectral Entropy Analysis for Tone and Speech Classification,” the contents of which are incorporated herein by reference in their entirety. Background Art

[0003] Call analysis or call progress analysis (CPA) is a term used for a set of signal processing algorithms that operate on audio signals (consisting of both tones and speech) during call setup in order to determine the outcome of the call. Humans can easily listen to and detect various tones (e.g., pre-dial tone, ringback, busy, answer, etc.). However, for a machine to be able to do the same thing with the same accuracy requires great care in its implementation (especially when human speech in network carrier messages must be distinguished from the various tones).

[0004] Telephony applications with outgoing calling capabilities require the ability to accurately and quickly interpret call progress tones (e.g., ringback and busy) delivered by the network to the calling entity. Although the International Telecommunication Union publishes recommended tone definitions for each country, which are largely followed, there is still no consistent, standard set of tone frequencies and patterns that all telephone providers use globally to indicate specific events, which complicates call progress analysis. Providers use a variety of methods to try to detect and identify the different tones involved in the process of analyzing call progress. However, most of the signal processing algorithms currently employed often fail to function adequately when the audio signal under analysis is degraded due to poor transmission networks or other reasons. Summary of the invention

[0005] One embodiment is directed to unique systems, components, and methods for cumulative average spectral entropy analysis for pitch and speech classification. Other embodiments are directed to apparatus, systems, devices, hardware, methods, and combinations thereof for cumulative average spectral entropy analysis for pitch and speech classification.

[0006] According to an embodiment, a contact center system for performing call progress analysis using pitch and voice classification may include at least one processor and at least one memory, the at least one memory including a plurality of instructions stored thereon that, in response to being executed by the at least one processor, cause the contact center system to: determine a cumulative average of entropies of audio signals received by the contact center system; determine a cumulative average power spectral magnitude of the audio signals and determine a cumulative average spectral entropy of the audio signals based on the cumulative average power spectral magnitude of the audio signals; calculate a difference metric for the audio signals as a difference between the cumulative average of the entropies of the audio signals and the cumulative average spectral entropy of the audio signals; distinguish pitch from voice of the audio signals based on the difference metric for the audio signals; and, in response to identification of one or more tones in the audio signals, process one or more tones of the audio signals.

[0007] In some embodiments, processing the one or more tones of the audio signal may include: identifying a call progress tone pattern in the one or more tones of the audio signal, and in response to the identification of the call progress tone pattern in the one or more tones of the audio signal, transferring the telephone call from the first system of the contact center system to the second system of the contact center system.

[0008] In some embodiments, processing the one or more tones of the audio signal may include connecting the outgoing call to an automated interactive voice response (IVR) system of the contact center system.

[0009] In some embodiments, processing the one or more tones of the audio signal may include connecting the outbound call to an agent of the contact center system.

[0010] In some embodiments, the one or more tones of the audio signal may include a call progress tone pattern.

[0011] In some embodiments, the call progress tone pattern may be a busy signal pattern, a ringback pattern, or a special information tone pattern.

[0012] In some embodiments, processing the one or more tones of the audio signal may include determining a corresponding frequency of each of the one or more tones of the audio signal.

[0013] In some embodiments, determining a cumulative average of the entropy of the audio signal may include calculating the entropy of the audio signal.

[0014] According to another embodiment, one or more non-transitory machine-readable storage media including a plurality of instructions stored thereon that, in response to execution by at least one processor, may cause a contact center system to: calculate entropy of an audio signal received by the contact center system; calculate a cumulative average of the entropy of the audio signal; calculate a cumulative average power spectral magnitude of the audio signal; calculate a cumulative average spectral entropy of the audio signal based on the cumulative average power spectral magnitude of the audio signal; calculate a difference measure of the audio signal as a difference between the cumulative average of the entropy of the audio signal and the cumulative average spectral entropy of the audio signal; classify a tone and speech of the audio signal based on the difference measure of the audio signal; and process one or more tones of the audio signal in response to identification of one or more tones in the audio signal.

[0015] In some embodiments, processing the one or more tones of the audio signal may include transferring the telephone call from the first system of the contact center system to the second system of the contact center system in response to identifying a call progress tone pattern in the one or more tones of the audio signal.

[0016] In some embodiments, processing the one or more tones of the audio signal may include connecting the outgoing call to an automated interactive voice response (IVR) system of the contact center system.

[0017] In some embodiments, processing the one or more tones of the audio signal may include connecting the outbound call to an agent of the contact center system.

[0018] In some embodiments, the one or more tones of the audio signal may include a call progress tone pattern.

[0019] In some embodiments, the call progress tone pattern may be a busy signal pattern, a ringback pattern, or a special information tone pattern.

[0020] In some embodiments, processing the one or more tones of the audio signal may include determining a corresponding frequency of each of the one or more tones of the audio signal.

[0021] According to yet another embodiment, a method for performing call progress analysis using pitch and voice classification in a contact center system may include: receiving, by a contact center system, an audio signal; determining, by the contact center system, an entropy of the audio signal received by the contact center system; determining, by the contact center system, a cumulative average of the entropy of the audio signal; determining, by the contact center system, a cumulative average power spectral magnitude of the audio signal; determining, by the contact center system, a cumulative average spectral entropy of the audio signal based on the cumulative average power spectral magnitude of the audio signal; determining, by the contact center system, a difference metric for the audio signal as a difference between the cumulative average of the entropy of the audio signal and the cumulative average spectral entropy of the audio signal; classifying, by the contact center system, a pitch and voice of the audio signal based on the difference metric for the audio signal; and processing, by the contact center system, the one or more tones of the audio signal in response to identification of the one or more tones in the audio signal.

[0022] In some embodiments, processing the one or more tones of the audio signal may include: identifying a call progress tone pattern in the one or more tones of the audio signal, and in response to identifying the call progress tone pattern in the one or more tones of the audio signal, transferring the telephone call from the first system of the contact center system to the second system of the contact center system.

[0023] In some embodiments, processing the one or more tones of the audio signal may include connecting the outbound call to one of an agent of a contact center system or an automated interactive voice response (IVR) system.

[0024] In some embodiments, the one or more tones of the audio signal may include a call progress tone pattern.

[0025] In some embodiments, processing the one or more tones of the audio signal may include determining a corresponding frequency of each of the one or more tones of the audio signal.

[0026] This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in limiting the scope of the claimed subject matter.Other embodiments, forms, features, and aspects of the present application will become apparent from the description and drawings provided herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0027] The concepts described herein are illustrated in the accompanying drawings by way of example and not by way of limitation. For simplicity and clarity of illustration, the elements shown in the drawings are not necessarily drawn to scale. Where deemed appropriate, reference numerals have been repeated in the drawings to indicate corresponding or similar elements.

[0028] Figure 1A to Figure 1BA simplified flow chart depicting at least one embodiment of a method for performing call progress analysis using pitch and voice classification;

[0029] Figure 2 is a simplified block diagram of at least one embodiment of a call center system;

[0030] Figure 3 is a simplified block diagram of at least one embodiment of a computing system;

[0031] Figure 4 is a spectrogram of an example audio signal containing both a tone signal and a speech signal;

[0032] Figure 5 is a graph of the spectral flatness of an audio signal during tones and speech;

[0033] Figure 6 is a graph of an entropy measure of an audio signal during audio and speech;

[0034] Figure 7 is a spectrogram of an example low-quality tone audio signal observed in a call center;

[0035] Figure 8 is a graph of an entropy measure of an audio tone signal;

[0036] Fig. 9 is a graph of three entropy measures for an audio signal having degraded tones; and

[0037] Fig.10 are graphs of three entropy measures for an audio signal during pitch and speech. DETAILED DESCRIPTION

[0038] Although the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, it should be understood that it is not intended to limit the concepts of the present disclosure to the specific forms disclosed, but on the contrary, it is intended to cover all modifications, equivalent forms and alternatives consistent with the present disclosure and the appended claims.

[0039] References in the specification to "one embodiment," "an embodiment," "an illustrative embodiment," and the like indicate that the described embodiment may include a particular feature, structure, or characteristic, but each embodiment may or may not necessarily include the particular feature, structure, or characteristic. Furthermore, such phrases do not necessarily refer to the same embodiment. It should also be understood that although reference to a "preferred" component or feature may indicate the desirability of a particular component or feature with respect to an embodiment, the present disclosure is not thereby limited with respect to other embodiments in which such a component or feature may be omitted. Furthermore, when a particular feature, structure, or characteristic is described in conjunction with an embodiment, it is considered to be within the knowledge of those skilled in the art to implement such feature, structure, or characteristic in conjunction with other embodiments, whether or not explicitly described. Furthermore, in various embodiments, the particular features, structures, or characteristics may be combined in any suitable combination and / or sub-combination.

[0040] Additionally, it should be understood that items included in a list in the format “at least one of A, B, and C” may mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C). Similarly, items listed in the format “at least one of A, B, or C” may mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C). Furthermore, with respect to the claims, the use of words and phrases such as “a,” “an,” “at least one,” and / or “at least a portion” should not be construed as limited to only one such element, unless specifically stated to the contrary, and the use of phrases such as “at least a portion” and / or “a portion” should be construed to cover both embodiments including only a portion of such elements and embodiments including the entire such elements, unless specifically stated to the contrary.

[0041] In some cases, the disclosed embodiments may be implemented in hardware, firmware, software, or a combination thereof. The disclosed embodiments may also be implemented as instructions carried or stored on one or more transient or non-transient machine-readable (e.g., computer-readable) storage media, which may be read and executed by one or more processors. A machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a machine-readable form (e.g., a volatile or non-volatile memory, a media disk, or other media device).

[0042] In the accompanying drawings, some structural or method features may be shown in a specific arrangement and / or ordering. However, it should be understood that such specific arrangement and / or ordering may not be required. On the contrary, in some embodiments, unless otherwise indicated, such features may be arranged in a different manner and / or order than shown in the illustrative figures. In addition, including structural or method features in a specific figure does not mean that such features are required in all embodiments, and in some embodiments, such features may not be included or may be combined with other features.

[0043] Providers use various methods to try to detect and identify the different tones involved in the process of analyzing call progress. For example, in some embodiments, the Goertzel algorithm or the Fast Fourier Transform (FFT) can be used, each of which exhibits different advantages and disadvantages. The detection and identification of tones are performed simultaneously with the Goertzel algorithm. That is, the algorithm not only detects the presence of tones, but also identifies which tone is being detected. However, when the FFT algorithm is used, the process is usually divided into two steps. In the first step, a general tone and voice classification is performed. In the second step, once it is known that a tone exists, its frequency is identified in order to explain the result of the call. The technology described herein improves the FFT algorithm by incorporating "cumulative average spectral entropy" into the analysis, which makes the process more robust when the audio signal is degraded by a poor transmission network.

[0044] Telephone networks are not standardized throughout the world. For example, in Europe, a single tone is mainly used to report events, and the ringback tone in most European countries is 425Hz. However, in North America, a dual tone is preferred because a 350Hz-440Hz dual tone is used to indicate a ringback. Therefore, any telephone provider who wants to provide its services to different countries usually needs to make relatively complex settings. The Goertzel algorithm and the FFT algorithm represent two methods for detecting and identifying tones.

[0045] The Goertzel algorithm is a technique used in digital signal processing (DSP) to efficiently evaluate a single term in a discrete Fourier transform (DFT), and the algorithm is used to calculate the kth DFT component of a signal {x(n), n = [0, N]}. The Goertzel algorithm analyzes a selectable frequency component from a discrete signal. Assume that the known frequency ω0 is specified by:

[0046]

[0047] Where N is the number of terms in the audio signal sequence (e.g., typically, N = 205). The Goertzel algorithm is defined by the basic equation, including a first stage of computing the intermediate sequence s[n] = x[n] + 2 cosω0s[n-1] - s[n-2] and applying a filter to s[n] to generate an output sequence The second stage is to iteratively calculate the values ​​of s[n] and y[n] until n=N.

[0048] It should be appreciated that the Goertzel algorithm is relatively simple and performs well in most situations. However, an important constraint of the Goertzel algorithm is that the specific target frequency must be known in advance. The target frequency is defined by the index k and is selected from the index number k∈{0,1,2,…,N-1}. Assuming the sampling frequency is 8000Hz (common in telephones), the frequency resolution Δf is given by:

[0049]

[0050] It should be understood that when the Goertzel algorithm is applied to a telephone to analyze certain specific frequency bands, the value f is usually used. s =8000 and N=205.

[0051] In telephony, the Goertzel algorithm can be used to detect dual-tone multi-frequency (DTMF) signals, where the meaning of the signaling is determined by two frequencies out of a total of eight frequencies present simultaneously. Because eight different frequencies are evaluated simultaneously as shown in Table 1 below, the Goertzel algorithm is used to evaluate each value of n eight times by defining different values ​​of k for the frequency ω0. Although the complexity of the Goertzel algorithm is higher than that of the FFT, it is still effective for calculating a small number of selected frequency components.

[0052] frequency 1209Hz 1336Hz 1477Hz 697Hz 1 2 3 770Hz 4 5 6 852Hz 7 8 9 941Hz * 0 #

[0053] Table 1: List of tones used in DTMF signaling

[0054] Other sound signals used in telephony include call progress tone patterns that indicate the progress or disposition of a telephone call. Busy signals, ringback, and special information tones (SITs) are all examples of such call progress tone patterns. In CPA, a large set of tones need to be distinguished so that the tone patterns can be classified. For example, in North America, up to 16 tone frequencies as shown in Table 2 below are used to create different tone patterns, where each tone pattern consists of one or more frequencies played at specific intervals. As mentioned above, when FFT is used for CPA, the process is divided into two steps: detecting the presence of a tone and identifying its frequency.

[0055]

[0056]

[0057] Table 2: List of North American tones supported by Call Progress Analysis

[0058] The spectral flatness metric and entropy metric can be calculated in the frequency domain of the audio signal. As described below, the spectral flatness and entropy metrics play a relatively good role in distinguishing between tones and speech. Specifically, the audio signal can be first segmented into overlapping frames. For example, in some embodiments, each frame can have a length of 0.03 seconds and be weighted by a Hamming window of the same length. The overlap used can be 2 / 3, so that the window advances 0.01 seconds at each time step. A 256-point FFT can be performed on each frame. In some embodiments, only half of the power spectrum amplitude coefficients X are used for subsequent analysis. k The index k∈[1,128] is retained because the power spectrum amplitude is symmetric for real signals. Figure 4 A spectrogram showing an example audio signal containing both a tone signal and a speech signal.

[0059] Spectral flatness or tonality is a metric used in DSP to characterize the audio spectrum. It provides a way to quantify how tonal a sound is versus how noise-like it is. The spectral flatness metric is calculated by dividing the geometric mean of the power spectrum by the arithmetic mean of the power spectrum according to the following formula:

[0060]

[0061] A high flatness value (i.e., a value close to 1.0) indicates that the spectrum has a similar amount of power in all spectral bands, which is likely noise, while a low spectral flatness value indicates that the spectral power is concentrated in a relatively small number of bands. Thus, a flatness value close to zero is more likely to be a pure tone. Figure 5 Examples of spectral flatness during tone and speech are shown.

[0062] In some embodiments, entropy can be used as a measure of randomness to distinguish between tones and speech. The definition of entropy can be expressed as a discrete set as follows:

[0063]

[0064] Without loss of generality, assume that p klog p k = 0 for p k = 0 and p k = 1, and the probability p is replaced by the normalized power amplitude spectrum k As a discrete set of , it will be appreciated that the entropy H(X) will have lower values ​​during tones and higher values ​​during speech, as Figure 6 Depicted.

[0065] Because both flatness and entropy measures typically vary significantly during speech (see Figure 5 to Figure 6 ), so the cumulative average is usually better than the instantaneous value. For entropy measures, for example, the cumulative average of entropy Given by:

[0066]

[0067] The parameter t b Indicates the starting point of the current audio signal block. Calculate the point t b Cumulative average of the entropy up to the current time t. During silence, the entropy and flatness values ​​may be set to zero.

[0068] However, in many cases, for example, poor audio quality due to a poor transmission network, this often results in poor performance of the CPA system. Figure 7 shows an example of a low quality tone audio signal observed in a call center, and Figure 8 Depiction Figure 7 The corresponding entropy measure of the audio signal of . Although it would be desirable for each block of the tonal signal to have the same approximation, Figure 8 It can be clearly seen in Figure 1 that low-quality tonal signals may result in each tonal signal block having a different entropy value, making it difficult to find a suitable threshold to distinguish between tonal signals and speech signals. Therefore, when faced with such poor audio signals, the CPA algorithm usually has difficulty in correctly classifying the tones.

[0069] As mentioned above, the cumulative average of the entropy measure that can be used to distinguish pitch from speech is given by

[0070]

[0071] However, as mentioned above Figure 8 Said, for example, by The values ​​given vary too much during the degradation of pitch to make them suitable for pitch and speech classification without improvement.

[0072] The improved technique described herein overcomes this problem caused by degraded audio signals by utilizing cumulative average spectral analysis to generate a cumulative average spectral entropy metric for distinguishing between tones and speech. In an illustrative embodiment, Define the cumulative average power spectrum amplitude:

[0073]

[0074] Then, the system uses the cumulative average power spectrum amplitude value (X t) Calculate the cumulative average spectral entropy metric

[0075]

[0076] Essentially, the cumulative average power frequency amplitude It is evaluating entropy In the illustrative embodiment, the cumulative average power spectrum magnitude is calculated only when an active audio signal is detected. Otherwise, the value is set to zero. The cumulative average power spectrum amplitude is in the interval [t b ,t], where t is the current frame index, and t b Marks the last position where the audio signal begins to be active.

[0077] Fig. 9 Depicting the instantaneous entropy metric for the same exemplary degraded tone signal under analysis Cumulative mean entropy measure Sum and Difference The difference metric D(t) for distinguishing between tones and speech greatly improves audio classification. and the cumulative average spectral metric The value of varies during the degraded tone, the difference measure D(t) remains relatively low. Fig. 9 As depicted, during tones (degraded or not), the difference metric D(t) is close to zero, indicating that the portion of the audio signal currently under analysis is most likely to be a tone. Fig.10 The same metric is depicted when analyzing a signal with both tones and speech. As shown, when the audio signal is speech ( Fig.10 ), the difference measure D(t) changes, but at the pitch ( Fig.10 The two audio signals on the left side of the image remain close to zero during the period.

[0078] In order to verify the performance and robustness of the improved technique and algorithm (i.e., the new method), a set of audio signals transmitted over a very poor transmission network was analyzed. More specifically, the audio files used to evaluate the system robustness were all audio signals from contact centers that were reported as having problems. In the first step, 525 files containing mainly tonal signals with occasional speech were analyzed using the new method, where the difference metric The classification is also performed using the Goertzel algorithm combined with the spectral flatness and average entropy metrics. The same files were analyzed using a method combined with classification (i.e., the old method). These files were also analyzed using a trained neural network (NN) model. The results are provided in Table 3 below, where "SMT" indicates speech that was marked / classified as tone, "TMS" indicates tone that was marked / classified as speech, and "CC" indicates a correct classification.

[0079] SMT TMS CC Old method 58 11 415 Neural Networks 20 26 438 New approach 16 10 458

[0080] Table 3: First comparison results of three different methods

[0081] As shown, the new method produces fewer classification errors than alternative methods, including outperforming the NN model by reducing errors by nearly 20% in the case where speech is labeled as tone and by 65% ​​in the case where tone is labeled as speech. Therefore, it should be understood that such results provide sufficient confidence in the feasibility of the new method / technique.

[0082] In the second step, 225 files containing mainly speech audio signals with incidental tones were analyzed using the same method. The results are provided in Table 4 below.

[0083] SMT TMS CC Old method 82 1 138 Neural Networks 48 1 172 New approach 12 2 207

[0084] Table 4: Second comparison results of three different methods Thus, the analysis of audio signals containing mainly speech with incidental tones yielded similar comparative results, where the new method / technique produced fewer classification errors than the other two methods analyzed.

[0085] Being able to accurately and efficiently detect when tones are present in an audio stream is a critical step in call progress analysis (CPA) systems. Given that the signal represents a tone, identifying a particular tone (e.g., as a 400 Hz tone or a 679 Hz tone) is generally relatively simple. The methods and techniques described herein involving cumulative average spectral analysis are robust in their ability to distinguish between tones and speech even when encountering degraded audio signals, and thus will be used to significantly improve the performance of CPA systems worldwide.

[0086] It should be understood that the audio signal may be provided by a contact center system (e.g., Figure 2 One or more devices of a contact center system (e.g., a contact center system) receive and / or analyze using the techniques described herein to distinguish tones and speech in audio signals, for example, to automatically interpret / process calls. For example, in some embodiments, the initiator of a call (e.g., an automatic outbound dialer system) wants to know whether the line is busy, whether someone answers, etc., in order to take the next appropriate action, such as connecting the outbound call to an agent or an automated interactive voice response (IVR) system.

[0087] Reference now Figure 1A to Figure 1BIn use, the system may perform the method 100 of performing call progress analysis using tone and voice classification. It should be understood that in some embodiments, the system may be embodied as a computing device (e.g., Figure 3 computing device 300) and / or a contact center system (e.g., Figure 2 It should be understood that unless otherwise stated, the specific blocks of method 100 are shown by way of example, and such blocks may be combined or divided, added or removed, and / or reordered in whole or in part according to a specific embodiment.

[0088] Illustrative method 100 from Figure 1A Beginning at block 102 of , a system (e.g., computing device 300 or contact center system 200) receives an audio signal. In block 104, the system determines the entropy of the received audio signal. In doing so, in block 106, the system may calculate the entropy of the received audio signal according to the following formula:

[0089]

[0090] In block 108, the system determines a cumulative average of the entropy of the audio signal. In doing so, in block 110, the system may calculate the cumulative average of the entropy of the audio signal according to the following formula:

[0091]

[0092] In block 112, the system determines the cumulative average power spectrum magnitude of the audio signal. In doing so, in block 114, the system may calculate the cumulative average power spectrum magnitude of the audio signal according to the following formula:

[0093]

[0094] exist Figure 1B In block 116 of , the system determines the cumulative average spectral entropy of the audio signal based on the cumulative average power spectrum amplitude of the audio signal. In doing so, in block 118, the system can calculate the cumulative average spectral entropy of the audio signal according to the following formula:

[0095]

[0096] In block 120, the system determines the difference measure of the audio signal as the difference between the cumulative average of the entropy of the audio signal and the cumulative average spectral entropy of the audio signal. In doing so, in block 122, the system may calculate the difference measure of the audio signal according to the following formula:

[0097]

[0098] In box 124, the system classifies pitch and speech based on the difference measure of the audio signal. For example, as described above, during pitch, the difference measure can be close to or approximately zero, indicating that if the difference measure is approximately zero, the portion (e.g., frequency range) of the audio signal under analysis may correspond to pitch. Therefore, in some embodiments, the system can use one or more thresholds to distinguish between the pitch and speech portions of the audio signal. Specifically, the system can identify the portion of the audio signal below a predetermined threshold as the pitch portion of the audio signal, and the portion of the audio signal above (or at least at) the predetermined threshold as the speech portion of the audio signal. In other embodiments, it should be understood that the system can distinguish / classify pitch and speech based on the difference measure of the audio signal.

[0099] In box 126, the system determines whether one or more tones are identified in the audio signal. If so, the method 100 proceeds to box 128, where the system processes (or attempts to process) one or more tones. Otherwise, the method 100 can terminate. In the case of identifying tones in the audio signal, it should be understood that the identified tones can be or can include one or more call progress tone patterns. For example, in some embodiments, the tones can include or represent a busy signal pattern, a ringback pattern, or a special information tone (SIT) pattern. It should be understood that the system can use any suitable technology and / or algorithm to process one or more tones, such as by determining the corresponding frequency of each of the tones identified in the audio signal. For example, in some embodiments, the system can identify a call progress tone pattern in one or more tones of the audio signal and transfer the telephone call to another entity. Specifically, in the context of a contact center system, a telephone call can be transferred from a first system of the contact center system to a second system of the contact center system. In another embodiment, the processing of the tones of the audio signal (e.g., the call progress tone pattern) can include connecting the outgoing call to an agent or an automatic interactive voice response (IVR) system of the contact center system.

[0100] Although blocks 102 - 128 are described in a relatively serial manner, it should be understood that in some embodiments, various blocks of method 100 may be performed in parallel.

[0101] Reference now Figure 2, showing a simplified block diagram of at least one embodiment of a communication infrastructure and / or content center system that can be used in conjunction with one or more of the embodiments described herein. The contact center system 200 can be embodied as any system capable of providing contact center services (e.g., call center services, chat center services, SMS center services, etc.) to end users and otherwise performing the functions described herein. The illustrative contact center system 200 includes a client device 205, a network 210, a switch / media gateway 212, a call controller 214, an interactive media response (IMR) server 216, a routing server 218, a storage device 220, a statistics server 226, an agent device 230A, an agent device 230B, an agent device 230C, a media server 234, a knowledge management server 236, a knowledge system 238, a chat server 240, a web server 242, an interactive (iXn) server 244, a general contact server 246, a report server 248, a media service server 249, and an analysis module 250. Although only one client device 205, one network 210, one switch / media gateway 212, one call controller 214, one IMR server 216, one routing server 218, one storage device 220, one statistics server 226, one media server 234, one knowledge management server 236, one knowledge system 238, one chat server 240, one iXn server 244, one universal contact server 246, one reporting server 248, one media service server 249 and one analysis module 250 are in operation. Figure 2 , but the contact center system 200 may include multiple client devices 205, multiple networks 210, multiple switches / media gateways 212, multiple call controllers 214, multiple IMR servers 216, multiple routing servers 218, multiple storage devices 220, multiple statistics servers 226, multiple media servers 234, multiple knowledge management servers 236, multiple knowledge systems 238, multiple chat servers 240, multiple iXn servers 244, multiple universal contact servers 246, multiple reporting servers 248, multiple media service servers 249, and multiple analysis modules 250 in other embodiments. In addition, in some embodiments, one or more of the components described herein may be excluded from the system 200, one or more of the components described as independent may form part of another component, and / or one or more of the components described as forming part of another component may be independent.

[0102] It should be understood that the term "contact center system" is used herein to refer to Figure 2The systems and / or components thereof shown in the drawings are not limited to the term "contact center", while the term "contact center" is used more generally to refer to contact center systems, customer service providers that operate those systems, and / or organizations or businesses associated therewith. Thus, unless expressly limited otherwise, the term "contact center" generally refers to contact center systems (such as contact center system 200), associated customer service providers (such as a particular customer service provider that provides customer service through contact center system 200), and organizations or businesses that provide those customer service on its behalf.

[0103] On the backend side, customer service providers may provide a variety of types of services through contact centers. Such contact centers may be staffed with employees or customer service agents (or simply "agents"), where agents act as intermediaries between companies, businesses, government agencies, or organizations (hereinafter interchangeably referred to as "organizations" or "businesses") and individuals such as users, individuals, or customers (hereinafter interchangeably referred to as "individuals" or "customers"). For example, agents at a contact center may assist customers in making purchasing decisions, receiving orders, or resolving issues with products or services that have been received. Within a contact center, such interactions between contact center agents and external entities or customers may be conducted over a variety of communication channels, such as, for example, via voice (e.g., phone calls or voice over IP or VoIP calls), video (e.g., video conferencing), text (e.g., email and text chat), screen sharing, co-browsing, and / or other communication channels.

[0104] Operationally, contact centers generally strive to provide customers with high-quality services while minimizing costs. For example, one way contact centers operate is to handle each customer interaction with a live agent. While this approach may score well in terms of service quality, it may also be very expensive due to the high cost of agent labor. Therefore, most contact centers utilize some degree of automated processes to replace live agents, such as, for example, interactive voice response (IVR) systems, interactive media response (IMR) systems, Internet robots or "bots", automated chat modules or "chatbots" and / or other automated processes. In many cases, this has proven to be a successful strategy because automated processes can handle certain types of interactions very efficiently and effectively reduce the need for live agents. Such automation allows contact centers to use human agents for more difficult customer interactions, while automated processes handle more repetitive or routine tasks. In addition, automated processes can be built in a way that optimizes efficiency and promotes repeatability. Although a human agent or a live agent may forget to ask certain questions or follow up on specific details, such errors can usually be avoided by using automated processes. Although customer service providers are increasingly relying on automated processes to interact with customers, customers still use such technologies much less. Thus, while IVR systems, IMR systems, and / or robots are used to automate portions of the interaction on the contact center side of the interaction, actions on the customer side are still performed manually by the customer.

[0105] It should be understood that the contact center system 200 can be used by customer service providers to provide various types of services to customers. For example, the contact center system 200 can be used to participate in and manage the interaction of automated processes (or robots) or human agents with customer communications. It should be understood that the contact center system 200 can be an internal facility of a business or enterprise for performing sales and customer service functions relative to products and services available through the enterprise. In another embodiment, the contact center system 200 can be operated by a third-party service provider contracted to provide services for another organization. In addition, the contact center system 200 can be deployed on equipment dedicated to the enterprise or third-party service provider, and / or deployed in a remote computing environment, such as a private or public cloud environment with an infrastructure for supporting multiple contact centers for multiple enterprises. The contact center system 200 may include software applications or programs that can be executed on-site or remotely or in some combination thereof. It should also be understood that the various components of the contact center system 200 can be distributed in various geographical locations and are not necessarily contained in a single location or computing environment.

[0106] It should also be understood that, unless otherwise expressly limited, any of the computing elements of the present invention may also be implemented in a cloud-based or cloud computing environment. As used herein and further described below with reference to computing device 300, "cloud computing" (or simply "cloud") is defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be quickly configured via virtualization and released with minimal management effort or service provider interaction, and then expanded accordingly. Cloud computing can be composed of various features (e.g., on-demand self-service, extensive network access, resource pools, rapid elasticity, measurable services, etc.), service models (e.g., software as a service ("SaaS"), platform as a service ("PaaS"), infrastructure as a service ("IaaS"), and deployment models (e.g., private cloud, community cloud, public cloud, hybrid cloud, etc.). The cloud execution model is often referred to as a "serverless architecture," which typically includes a service provider that dynamically manages the allocation and configuration of remote servers to achieve the desired functionality.

[0107] It should be understood that relative to Figure 2 Any of the described computer-implemented components, modules, or servers may be implemented via one or more types of computing devices (such as, for example, Figure 3 As will be seen, the contact center system 200 generally manages resources (e.g., personnel, computers, telecommunications equipment, etc.) to enable the delivery of services via telephone, email, chat, or other communication mechanisms. Such services may vary depending on the type of contact center and may include, for example, customer service, help desk functions, emergency response, remote marketing, order taking, and / or other features.

[0108] A customer desiring to receive service from the contact center system 200 may initiate an inbound communication (eg, phone call, email, chat, etc.) to the contact center system 200 via the customer device 205. Figure 2 One such client device (i.e., client device 205) is shown, but it should be understood that there may be any number of client devices 205. Client device 205 may be, for example, a communication device such as a phone, a smart phone, a computer, a tablet computer, or a laptop computer. In accordance with the functionality described herein, a client may generally use client device 205 to initiate, manage, and conduct communications with contact center system 200, such as phone calls, emails, chats, text messages, web browsing sessions, and other multimedia transactions.

[0109] Inbound and outbound communications from and to client device 205 may traverse network 210, wherein the nature of the network generally depends on the type of client device used and the form of communication. For example, network 210 may include a communication network for telephone, cellular and / or data services. Network 210 may be a private or public switched telephone network (PSTN), a local area network (LAN), a private wide area network (WAN), and / or a public WAN such as the Internet. In addition, network 210 may include a wireless carrier network, including a code division multiple access (CDMA) network, a global system for mobile communications (GSM) network, or any wireless network / technology conventional in the art, including but not limited to 3G, 4G, LTE, 5G, etc.

[0110] The switch / media gateway 212 may be coupled to the network 210 for receiving and transmitting telephone calls between the customer and the contact center system 200. The switch / media gateway 212 may include a telephone switch or a communication switch configured to be used as a central switch for agent-level routing within the center. The switch may be a hardware switching system or implemented via software. For example, the switch 212 may include an automatic call distributor, a private branch exchange (PBX), an IP-based software switch, and / or any other switch with dedicated hardware and software configured to receive Internet-sourced interactions and / or telephone network-sourced interactions from the customer and route those interactions to, for example, one of the agent devices 230. Therefore, generally speaking, the switch / media gateway 212 establishes a voice connection between the customer and the agent by establishing a connection between the customer device 205 and the agent device 230.

[0111] As further shown, the switch / media gateway 212 may be coupled to a call controller 214, which serves as an adapter or interface between the switch and other routing, monitoring, and communication processing components of the contact center system 200, for example. The call controller 214 may be configured to handle PSTN calls, VoIP calls, and / or other types of calls. For example, the call controller 214 may include computer telephony integration (CTI) software for interfacing with the switch / media gateway and other components. The call controller 214 may include a Session Initiation Protocol (SIP) server for processing SIP calls. The call controller 214 may also extract data about incoming interactions, such as a customer's phone number, IP address, or email address, and then communicate this data to other contact center components when processing the interaction.

[0112] The interactive media response (IMR) server 216 may be configured to enable self-service or virtual assistant functionality. Specifically, the IMR server 216 may be similar to an interactive voice response (IVR) server, except that the IMR server 216 is not limited to voice and may also cover various media channels. In the example showing voice, the IMR server 216 may be configured with an IMR script for querying customers about their needs. For example, a bank's contact center may instruct customers via an IMR script to "press 1" if they wish to retrieve their account balance. By continuing to interact with the IMR server 216, customers can receive service without having to speak to an agent. The IMR server 216 may also be configured to find out why the customer contacted the contact center so that the communication can be routed to the appropriate resource. The IMR configuration may be performed using a self-service and / or assisted service tool, including a web-based tool (e.g., ) for developing IVR applications and routing applications that run in a contact center environment. Designer).

[0113] The routing server 218 may be used to route incoming interactions. For example, once it is determined that an inbound communication should be handled by a human agent, functionality within the routing server 218 may select the most appropriate agent and route the communication to it. This agent selection may be based on which available agent is best suited to handle the communication. More specifically, the selection of the appropriate agent may be based on a routing policy or algorithm implemented by the routing server 218. In doing so, the routing server 218 may query data related to the incoming interaction, such as data related to a particular customer, available agents, and interaction type, which data may be stored in a particular database as described herein. Once an agent is selected, the routing server 218 may interact with the call controller 214 to route (i.e., connect) the incoming interaction to the corresponding agent device 230. As part of this connection, information about the customer may be provided to the selected agent via its agent device 230. This information is intended to enhance the service that the agent is able to provide to the customer.

[0114] It should be understood that the contact center system 200 may include one or more mass storage devices (generally represented by storage device 220) for storing data in one or more databases related to the functions of the contact center. For example, the storage device 220 may store customer data maintained in a customer database. Such customer data may include, for example, customer profiles, contact information, service level agreements (SLAs), and interaction histories (e.g., details of previous interactions with a particular customer, including the nature of the previous interactions, disposition data, wait times, handling times, and actions taken by the contact center to resolve the customer's issues). As another example, the storage device 220 may store agent data in an agent database. The agent data maintained by the contact center system 200 may include, for example, agent availability and agent profiles, schedules, skills, handling times, and / or other related data. As another example, the storage device 220 may store interaction data in an interaction database. The interaction data may include, for example, data related to a number of past interactions between a customer and a contact center. More generally, it should be understood that, unless otherwise specified, the storage device 220 may be configured to include a database and / or store data related to any type of information described herein, wherein such database and / or data can be accessed by other modules or servers of the contact center system 200 in a manner that facilitates the functionality described herein. For example, a server or module of the contact center system 200 may query such a database to retrieve data stored therein or transfer data thereto for storage. For example, the storage device 220 may take the form of any conventional storage medium and may be locally housed or operated from a remote location. For example, the database may be a Cassandra database, a NoSQL database, or a SQL database and managed by a database management system such as Oracle, IBM DB2, Microsoft SQL Server, Microsoft Access, PostgreSQL.

[0115] The statistics server 226 can be configured to record and aggregate data related to the performance and operational aspects of the contact center system 200. Such information can be compiled by the statistics server 226 and made available to other servers and modules, such as the reporting server 248, which can then use the data to generate reports used to manage operational aspects of the contact center and perform automated actions in accordance with the functionality described herein. Such data can relate to the status of contact center resources, such as average wait time, abandonment rate, agent occupancy, and other data required for the functionality described herein.

[0116] The agent devices 230 of the contact center system 200 may be communication devices that are configured to interact with the various components and modules of the contact center system 200 in a manner that facilitates the functionality described herein. For example, the agent device 230 may include a phone suitable for conventional phone calls or VoIP calls. The agent device 230 may also include a computing device that is configured to communicate with the servers of the contact center system 200 in accordance with the functionality described herein, perform data processing associated with the operations, and interact with customers via voice, chat, email, and other multimedia communication mechanisms. Although Figure 2 Three such agent devices 230 are shown (ie, agent device 230A, agent device 230B, and agent device 230C), but it should be understood that any number of agent devices 230 may be present in particular embodiments.

[0117] The multimedia / social media server 234 may be configured to facilitate media interactions (other than voice) with the client device 205 and / or the server 242. Such media interactions may be related to, for example, email, voicemail, chat, video, text messaging, web, social media, co-browsing, etc. The multimedia / social media server 234 may take the form of any IP router conventional in the art having specialized hardware and software for receiving, processing, and forwarding multimedia events and communications.

[0118] The knowledge management server 236 may be configured to facilitate interaction between a client and a knowledge system 238. Generally, the knowledge system 238 may be a computer system capable of receiving questions or queries and providing answers in response. The knowledge system 238 may be included as part of the contact center system 200 or remotely operated by a third party. The knowledge system 238 may include an artificial intelligence computer system capable of answering questions posed in a natural language by retrieving information from information sources such as encyclopedias, dictionaries, newswire articles, literary works, or other documents submitted to the knowledge system 238 as reference material. For example, the knowledge system 238 may be embodied as IBM Watson or a similar system.

[0119] Chat server 240 can be configured to carry out, arrange and manage electronic chat communication with client.Generally speaking, chat server 240 is configured to realize and keep chat session and generate chat transcription.Such chat communication can be carried out by chat server 240 in the mode that client communicates with automatic chat robot, artificial seat or both.In exemplary embodiment, chat server 240 can be used as chat arrangement server, and this chat arrangement server schedules chat session between chat robot and available artificial seat.In such case, the processing logic of chat server 240 can be driven by rule, so as to utilize the intelligent workload distribution between available chat resources.Chat server 240 can also realize, manage and promote the user interface (UI) associated with chat feature, including those UI generated at client device 205 or seat device 230.Chat server 240 can be configured to transfer chat in single chat session between automation resource and human resources, so that for example chat session is transferred from chat robot to artificial seat or from artificial seat to chat robot. The chat server 240 may also be coupled to the knowledge management server 236 and the knowledge system 238 for receiving suggestions and answers to queries raised by customers during the chat, such that, for example, links to related articles may be provided.

[0120] The web server 242 may include such servers to provide site hosts for various social interaction sites (such as Facebook, Twitter, Instagram, etc.) to which customers subscribe. Although depicted as part of the contact center system 200, it should be understood that the web server 242 may be provided by a third party and / or remotely maintained. The web server 242 may also provide web pages for businesses or organizations being supported by the contact center system 200. For example, customers can browse web pages and receive information about the products and services of a particular business. Within such business web pages, mechanisms for initiating interactions with the contact center system 200, such as via web chat, voice, or email, may be provided. An example of such a mechanism is a desktop widget that may be deployed on a web page or website hosted on the web server 242. As used herein, a desktop widget refers to a user interface component that performs a specific function. In some specific implementations, a desktop widget may include a graphical user interface control that may be overlaid on a web page displayed to a customer via the Internet. The desktop widget may display information, such as in a window or text box, or include buttons or other controls that allow customers to access certain functions such as sharing or opening files or initiating communications. In some implementations, the desktop widget includes a user interface component having a portable portion of code that can be installed and executed within a separate web page without compilation. Some desktop widgets may include corresponding or additional user interfaces and may be configured to access a variety of local resources (e.g., calendar or contact information on a client device) or remote resources via a network (e.g., instant messaging, email, or social network updates).

[0121] Interactive (iXn) server 244 can be configured to manage the deferred activities of the contact center and their routing to the artificial seat for completion. As used herein, deferred activities can include background work that can be performed offline, such as replying emails, attending training, and other activities that do not require real-time communication with customers. For example, interactive (iXn) server 244 can be configured to interact with routing server 218 for selecting an appropriate seat to handle each deferred activity in the deferred activities. Once assigned to a specific seat, the deferred activity is pushed to the seat so that it appears on the seat device 230 of the selected seat. Deferred activities can appear in the workspace as tasks completed by the selected seat. The function of the workspace can be implemented by any conventional data structure, such as, for example, a linked list, an array, and / or other suitable data structures. Each seat device in the seat device 230 can include a workspace. For example, the workspace can be maintained in the buffer memory of the corresponding seat device 230.

[0122] Universal contact server (UCS) 246 may be configured to retrieve information stored in a customer database and / or transmit information thereto for storage therein. For example, UCS 246 may be used as part of a chat feature to facilitate maintaining a history of how chats with particular customers were handled, which may then be used as a reference for how future chats should be handled. More generally, UCS 246 may be configured to facilitate maintaining a history of customer preferences, such as preferred media channels and best contact times. To this end, UCS 246 may be configured to identify data related to each customer's interaction history, such as, for example, data related to comments from agents, customer communication history, and the like. Each of these data types may then be stored in customer database 222 or on other modules and retrieved as needed for the functionality described herein.

[0123] The reporting server 248 may be configured to generate reports from data compiled and aggregated by the statistics server 226 or other sources. Such reports may include near real-time reports or historical reports and relate to the status and performance characteristics of contact center resources, such as, for example, average wait time, abandonment rate, and / or agent occupancy. Reports may be generated automatically or in response to specific requests from requesters (e.g., agents, administrators, contact center applications, etc.). These reports may then be used to manage contact center operations in accordance with the functionality described herein.

[0124] The media service server 249 may be configured to provide audio and / or video services to support contact center features. Depending on the functionality described herein, such features may include prompts for IVR or IMR systems (e.g., playback of audio files), music on hold, voicemail / single-party recording, multi-party recording (e.g., multi-party recording of audio and / or video calls), speech recognition, dual-tone multi-frequency (DTMF) recognition, fax, audio and video transcoding, secure real-time transport protocol (SRTP), audio conferencing, video conferencing, tutorials (e.g., enabling a coach to listen to interactions between a customer and an agent and enabling the coach to provide comments to the agent without the customer hearing the comments), call analytics, keyword spotting, and / or other related features.

[0125] The analysis module 250 may be configured to provide systems and methods for performing analysis on data received from a plurality of different data sources, as may be required for the functionality described herein. According to an exemplary embodiment, the analysis module 250 may also generate, update, train, and modify predictors or models based on the collected data (such as, for example, customer data, agent data, and interaction data). The model may include a behavioral model of a customer or agent. The behavioral model may be used to predict, for example, the behavior of a customer or agent in various situations, thereby allowing embodiments of the present invention to customize interactions or allocate resources to prepare for the predicted characteristics of future interactions based on such predictions, thereby improving the overall performance and customer experience of the contact center. It should be understood that while the analysis module is described as part of the contact center, such behavioral models may also be implemented on a customer system (or, as also used herein, on the "customer side" of the interaction) and used for customer benefit.

[0126] According to an exemplary embodiment, the analysis module 250 can access data stored in the storage device 220, including a customer database and an agent database. The analysis module 250 can also access an interaction database, which stores data related to interactions and interaction content (e.g., transcriptions of interactions and events detected therein), interaction metadata (e.g., customer identifiers, agent identifiers, interaction media, interaction duration, interaction start and end times, departments, tagged categories), and application settings (e.g., interaction paths through the contact center). In addition, the analysis module 250 can be configured to retrieve data stored in the storage device 220 for use in developing and training algorithms and models, such as by applying machine learning techniques.

[0127] One or more of the included models may be configured to predict customer or agent behavior and / or aspects related to contact center operations and performance. In addition, one or more of the models may be used for natural language processing, and include, for example, intent recognition, etc. The model may be developed based on: known first principle equations describing the system; data that produces the empirical model; or a combination of known first principle equations and data. When developing models for use with embodiments of the present invention, since first principle formulas are generally not available or not easily derived, it may generally be preferred to build empirical models based on collected and stored data. In order to correctly capture the relationship between the manipulated / disturbance variables and the controlled variables of a complex system, in some embodiments, it may be preferred that the model is nonlinear. This is because nonlinear models may represent a curvilinear relationship between the manipulated / disturbance variables and the controlled variables rather than a straight-line relationship, which is common for complex systems such as those discussed herein. In view of the foregoing requirements, a method based on machine learning or a neural network is a preferred embodiment for implementing the model. For example, a neural network may be developed based on empirical data using an advanced regression algorithm.

[0128] The analysis module 250 may also include an optimizer. It should be understood that an optimizer may be used to minimize a "cost function" subject to a set of constraints, where the cost function is a mathematical representation of a desired objective or system operation. Since the model may be nonlinear, the optimizer may be a nonlinear programming optimizer. However, it is contemplated that the techniques described herein may be implemented using a variety of different types of optimization methods, either alone or in combination, including but not limited to linear programming, quadratic programming, mixed integer nonlinear programming, random programming, global nonlinear programming, genetic algorithms, particle / swarm techniques, and the like.

[0129] According to some embodiments, the model and optimizer can be used together within an optimization system. For example, the analysis module 250 can utilize the optimization system as part of an optimization process by which various aspects of contact center performance and operations are optimized or at least enhanced. For example, this can include features related to customer experience, agent experience, interaction routing, natural language processing, intent recognition, or other functions related to automated processes.

[0130] Figure 2 The various components, modules and / or servers of the system 200 (and other figures included herein) may each include one or more processors that execute computer program instructions and interact with other system components to perform the various functions described herein. Such computer program instructions may be stored in a memory implemented using standard storage devices (such as, for example, random access memory (RAM)), or in other non-transitory computer readable media (such as, for example, CD-ROMs, flash drives, etc.). Although the functionality of each server is described as being provided by a particular server, it should be recognized by those skilled in the art that the functionality of the various servers may be combined or integrated into a single server, or the functionality of a particular server may be distributed across one or more other servers without departing from the scope of the present invention. In addition, the terms "interaction" and "communication" are used interchangeably and generally refer to any real-time and non-real-time interaction using any communication channel, including but not limited to telephone calls (PSTN or VoIP calls), email, voicemail, video, chat, screen sharing, text messaging, social media messaging, WebRTC calls, etc. Access to and control of components of the contact center system 200 may be effected through a user interface (UI) that may be generated on the client device 205 and / or the agent device 230. As already noted, the contact center system 200 may operate as a hybrid system in which some or all components are remotely hosted, such as in a cloud-based or cloud computing environment. It should be understood that each of the devices of the contact center system 200 may be embodied as, include, or form a system similar to the one described below with reference to Figure 3 The computing device 300 is described as being a portion of one or more computing devices.

[0131] Reference now Figure 3 , a simplified block diagram of at least one embodiment of a computing device 300 is shown. The illustrative computing device 300 depicts at least one embodiment of each of the computing devices, systems, servers, controllers, switches, gateways, engines, modules, and / or computing components described herein (e.g., for simplicity of description, they may be collectively referred to as computing devices, servers, or modules interchangeably). For example, the various computing devices may be processes or threads running on one or more processors of one or more computing devices 300, which may execute computer program instructions and interact with other system modules to perform the various functions described herein. Unless otherwise expressly limited, the functions described with respect to multiple computing devices may be integrated into a single computing device, or the various functions described with respect to a single computing device may be distributed across several computing devices. In addition, with respect to the computing systems described herein (such as Figure 2 In some embodiments, the functions provided by the servers on the off-site computing devices may be accessed and provided through a virtual private network (VPN) as if such servers were on-site, or the functions may be provided using software as a service (SaaS) (accessed through the Internet using various protocols), such as by exchanging data via extensible markup language (XML) and JSON, and / or the functions may be accessed / utilized in other ways.

[0132] In some embodiments, computing device 300 may be embodied as a server, a desktop computer, a laptop computer, a tablet computer, a notebook, a netbook, an Ultrabook, or a laptop computer. TM , cellular telephones, mobile computing devices, smartphones, wearable computing devices, personal digital assistants, Internet of Things (IoT) devices, processing systems, wireless access points, routers, gateways, and / or any other computing devices, processing devices, and / or communication devices capable of performing the functions described herein.

[0133] The computing device 300 includes a processing device 302 that executes algorithms and / or processes data according to operating logic 308, an input / output device 304 that enables communication between the computing device 300 and one or more external devices 310, and a memory 306 that stores data received from the external device 310, for example, via the input / output device 304.

[0134] The input / output devices 304 allow the computing device 300 to communicate with external devices 310. For example, the input / output devices 304 may include a transceiver, a network adapter, a network card, an interface, one or more communication ports (e.g., a USB port, a serial port, a parallel port, an analog port, a digital port, VGA, DVI, HDMI, FireWire, CAT 5, or any other type of communication port or interface), and / or other communication circuitry. Depending on the particular computing device 300, the communication circuitry of the computing device 300 may be configured to use any one or more communication technologies (e.g., wireless or wired communications) and associated protocols (e.g., Ethernet, WiMAX, etc.) to achieve such communications. Input / output device 304 may include hardware, software, and / or firmware suitable for performing the techniques described herein.

[0135] The external device 310 can be any type of device that allows data to be input or output from the computing device 300. For example, in various embodiments, the external device 310 can be embodied as one or more of the devices / systems described herein, and / or a portion thereof. In addition, in some embodiments, the external device 310 can be embodied as another computing device, a switch, a diagnostic tool, a controller, a printer, a display, an alarm, a peripheral device (e.g., a keyboard, a mouse, a touch screen display, etc.), and / or any other computing device, processing device, and / or communication device capable of performing the functions described herein. In addition, in some embodiments, it should be understood that the external device 310 can be integrated into the computing device 300.

[0136] The processing device 302 may be embodied as any type of processor capable of performing the functions described herein. Specifically, the processing device 302 may be embodied as one or more single-core or multi-core processors, microcontrollers or other processors or processing / control circuits. For example, in some embodiments, the processing device 302 may include or be embodied as an arithmetic logic unit (ALU), a central processing unit (CPU), a digital signal processor (DSP), a graphics processing unit (GPU), a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC) and / or another suitable processor. The processing device 302 may be a programmable type, a dedicated hard-wired state machine or a combination thereof. In various embodiments, a processing device 302 with multiple processing units may utilize distributed, pipelined and / or parallel processing. In addition, the processing device 302 may be dedicated to performing only the operations described herein, or may be utilized in one or more additional applications. In an illustrative embodiment, the processing device 302 is programmable and executes algorithms and / or processes data according to the operating logic 308, as defined by programming instructions (such as software or firmware) stored in the memory 306. Additionally or alternatively, the operating logic 308 for the processing device 302 may be at least partially defined by hardwired logic or other hardware. Furthermore, the processing device 302 may include one or more components of any type suitable for processing signals received from the input / output device 304 or from other components or devices and providing desired output signals. Such components may include digital circuits, analog circuits, or a combination thereof.

[0137] The memory 306 may be one or more types of non-transitory computer-readable media, such as solid-state memory, electromagnetic memory, optical memory, or a combination thereof. Further, the memory 306 may be volatile and / or non-volatile, and in some embodiments, some or all of the memory 306 may be of a portable type, such as a disk, tape, memory stick, cassette, and / or other suitable portable memory. In operation, the memory 306 may store various data and software used during operation of the computing device 300, such as an operating system, applications, programs, libraries, and drivers. It should be understood that in addition to or in lieu of storing programming instructions that define the operating logic 308 of the processing device 302, the memory 306 may store data manipulated by the operating logic 308, such as, for example, data representing signals received from and / or sent to the input / output device 304. As shown in FIG. Figure 3 As shown, depending on the particular implementation, memory 306 can be included with and / or coupled to processing device 302. For example, in some implementations, processing device 302, memory 306, and / or other components of computing device 300 can form part of a system on a chip (SoC) and be incorporated on a single integrated circuit chip.

[0138] In some embodiments, various components of computing device 300 (e.g., processing device 302 and memory 306) may be communicatively coupled via an input / output subsystem, which may be embodied as circuits and / or components to facilitate input / output operations with processing device 302, memory 306, and other components of computing device 300. For example, the input / output subsystem may be embodied as or otherwise include a memory controller hub, an input / output control hub, a firmware device, communication links (i.e., point-to-point links, bus links, wires, cables, optical guides, printed circuit board traces, etc.), and / or other components and subsystems to facilitate input / output operations.

[0139] In other embodiments, computing device 300 may include other or additional components, such as those commonly found in typical computing devices (e.g., various input / output devices and / or other components). It should also be understood that one or more of the components of computing device 300 described herein may be distributed across multiple computing devices. In other words, the techniques described herein may be employed by a computing system that includes one or more computing devices. In addition, although only in the example of FIG. Figure 3 300, but it should be understood that in other embodiments, a particular computing device 300 may include multiple processing devices 302, I / O devices 304, and / or memories 306. In addition, in some embodiments, more than one external device 310 may communicate with the computing device 300.

[0140] The computing device 300 can be one of a plurality of devices connected to other systems / resources by a network or via a network. The network can be embodied as any one or more types of communication networks that can facilitate communication between various devices connected via network communication. Therefore, the network can include one or more networks, routers, switches, access points, hubs, computers, client devices, terminals, nodes and / or other intermediate network devices. For example, the network can be embodied as or otherwise include one or more cellular networks, telephone networks, local area networks or wide area networks, publicly available global networks (e.g., the Internet), self-organizing networks, short-range communication links or combinations thereof. In some embodiments, the network can include a circuit-switched voice or data network, a packet-switched voice or data network and / or any other network capable of carrying voice and / or data. Specifically, in some embodiments, the network can include a network based on Internet Protocol (IP) and / or based on asynchronous transfer mode (ATM). In some embodiments, the network can handle voice traffic (e.g., via a voice over IP (VOIP) network), web traffic and / or other network traffic depending on the specific implementation of the system communicating with each other and / or the device. In various embodiments, the network may include analog or digital wired and wireless networks (e.g., IEEE 802.11 networks, public switched telephone networks (PSTN), integrated services digital networks (ISDN), and digital subscriber lines (xDSL)), third generation (3G) mobile telecommunication networks, fourth generation (4G) mobile telecommunication networks, fifth generation (5G) mobile telecommunication networks, wired Ethernet networks, private networks (e.g., such as intranets), radio, television, cable, satellite, and / or any other delivery or tunneling mechanism for carrying data, or any suitable combination of such networks. It should be understood that the various devices / systems may communicate with each other via different networks depending on the source and / or destination devices.

[0141] It should be understood that the computing device 300 can communicate with other computing devices 300 via any type of gateway or tunneling protocol (such as secure socket layer or transport layer security). The network interface may include a built-in network adapter (such as a network interface card) that is suitable for joining the computing device to any type of network capable of performing the operations described herein. In addition, the network environment can be a virtual network environment in which various network components are virtualized. For example, various machines can be virtual machines implemented as software-based computers running on physical machines. The virtual machines can share the same operating system, or in other embodiments, different operating systems can be run on each virtual machine instance. For example, a "hypervisor" type of virtualization is used, in which multiple virtual machines run on the same host physical machine, and each virtual machine acts as if it has its own dedicated box. In other embodiments, other types of virtualization can be used, such as, for example, networks (e.g., via software-defined networking) or functions (e.g., via network function virtualization).

[0142] Thus, one or more computing devices 300 described herein may be embodied as or form part of one or more cloud-based systems. In a cloud-based embodiment, the cloud-based system may be embodied as a server-obfuscated computing solution that, for example, executes multiple instructions on demand, contains logic to execute instructions only when prompted by a specific activity / triggering event, and does not consume computing resources when not in use. That is, the system may be embodied as a virtual computing environment (e.g., a distributed network of devices) residing "on" a computing system, wherein various virtual functions (e.g., lambda functions, Azure functions, Google cloud functions, and / or other suitable virtual functions) may be executed corresponding to the functions of the system described herein. For example, when an event occurs (e.g., data is transferred to the system for processing), the virtual computing environment may be communicated (e.g., via a request to an API of the virtual computing environment), whereby the API may route the request to the correct virtual function (e.g., a specific server-obfuscated computing resource) based on a set of rules. Thus, when a user makes a request for a data transfer (e.g., via an appropriate user interface to the system), the appropriate virtual function may be executed to perform an action before the instance of the virtual function is eliminated.

Claims

1. A contact center system for performing call progress analysis using tone and voice classification, the contact center system comprising: at least one processor; and at least one memory including a plurality of instructions stored thereon that, in response to being executed by the at least one processor, cause the contact center system to: determining a cumulative average of entropy of an audio signal received by the contact center system; determining a cumulative average power spectral magnitude of the audio signal, and determining a cumulative average spectral entropy of the audio signal based on the cumulative average power spectral magnitude of the audio signal; calculating a difference measure for the audio signal as a difference between the cumulative mean of the entropy of the audio signal and the cumulative mean spectral entropy of the audio signal; distinguishing pitch and speech of the audio signal based on the difference measure of the audio signal; as well as In response to the identification of one or more tones in the audio signal, the one or more tones of the audio signal are processed.

2. The contact center system of claim 1 , wherein processing the one or more tones of the audio signal comprises: identifying a call progress tone pattern among the one or more tones of the audio signal; as well as Responsive to recognition of the call progress tone pattern in the one or more tones of the audio signal, a telephone call is transferred from a first system of the contact center system to a second system of the contact center system.

3. The contact center system of claim 1, wherein processing the one or more tones of the audio signal comprises connecting an outgoing call to an automated interactive voice response (IVR) system of the contact center system.

4. The contact center system of claim 1, wherein processing the one or more tones of the audio signal comprises connecting an outbound call to an agent of the contact center system.

5. The contact center system of claim 1, wherein the one or more tones of the audio signal comprise a call progress tone pattern.

6. The contact center system of claim 1, wherein the call progress tone pattern comprises one of a busy signal pattern, a ringback pattern, or a special information tone pattern. 7 . The contact center system of claim 1 , wherein processing the one or more tones of the audio signal comprises determining a corresponding frequency of each of the one or more tones of the audio signal. 8 . The contact center system of claim 1 , wherein determining the cumulative average of the entropy of the audio signal comprises calculating the entropy of the audio signal.

9. One or more non-transitory machine-readable storage media, the one or more non-transitory machine-readable storage media including a plurality of instructions stored thereon that in response to being executed by at least one processor cause a contact center system to: calculating entropy of an audio signal received by the contact center system; Calculating a cumulative average of the entropy of the audio signal; Calculating the cumulative average power spectrum amplitude of the audio signal; Calculating a cumulative average spectral entropy of the audio signal based on the cumulative average power spectral amplitude of the audio signal; calculating a difference measure for the audio signal as a difference between the cumulative mean of the entropy of the audio signal and the cumulative mean spectral entropy of the audio signal; classifying the pitch and speech of the audio signal based on the difference measure of the audio signal; as well as In response to the identification of one or more tones in the audio signal, the one or more tones of the audio signal are processed.

10. The one or more non-transitory machine-readable storage media of claim 9, wherein processing the one or more tones of the audio signal comprises: Responsive to identification of a call progress tone pattern in the one or more tones of the audio signal, a telephone call is transferred from a first system of the contact center system to a second system of the contact center system.

11. The one or more non-transitory machine-readable storage media of claim 9, wherein processing the one or more tones of the audio signal comprises connecting an outgoing call to an automated interactive voice response (IVR) system of the contact center system.

12. The one or more non-transitory machine-readable storage media of claim 9, wherein processing the one or more tones of the audio signal comprises connecting an outbound call to an agent of the contact center system.

13. The one or more non-transitory machine-readable storage media of claim 9, wherein the one or more tones of the audio signal comprise a call progress tone pattern.

14. The one or more non-transitory machine-readable storage media of claim 9, wherein the call progress tone pattern comprises one of a busy signal pattern, a ringback pattern, or a special information tone pattern.

15. The one or more non-transitory machine-readable storage media of claim 9, wherein processing the one or more tones of the audio signal comprises determining a corresponding frequency of each of the one or more tones of the audio signal.

16. A method for performing call progress analysis in a contact center system using tone and voice classification, the method comprising: receiving an audio signal by the contact center system; determining, by the contact center system, an entropy of the audio signal received by the contact center system; determining, by the contact center system, a cumulative average of the entropy of the audio signal; determining, by the contact center system, a cumulative average power spectrum magnitude of the audio signal; determining, by the contact center system, a cumulative average spectral entropy of the audio signal based on the cumulative average power spectral magnitude of the audio signal; determining, by the contact center system, a difference measure for the audio signal as a difference between the cumulative mean of the entropy of the audio signal and the cumulative mean spectral entropy of the audio signal; classifying, by the contact center system, the pitch and speech of the audio signal based on the difference metric of the audio signal; as well as In response to the identification of the one or more tones in the audio signal, the one or more tones of the audio signal are processed by the contact center system.

17. The method of claim 16, wherein processing the one or more tones of the audio signal comprises: identifying a call progress tone pattern among the one or more tones of the audio signal; as well as In response to identifying the call progress tone pattern in the one or more tones of the audio signal, a telephone call is transferred from a first system of the contact center system to a second system of the contact center system.

18. The method of claim 16, wherein processing the one or more tones of the audio signal comprises connecting an outbound call to one of an agent of the contact center system or an automated interactive voice response (IVR) system.

19. The method of claim 16, wherein the one or more tones of the audio signal comprise a call progress tone pattern.

20. The method of claim 16, wherein processing the one or more tones of the audio signal comprises determining a corresponding frequency of each of the one or more tones of the audio signal.

Citation Information

Patent Citations

  • System and method for fingerprinting datasets

    US20130259211A1

  • Voice detection method and apparatus, and storage medium

    US20180247662A1