Call quality detection method and device, electronic equipment and storage medium

By acquiring users' historical call data, calculating user feature vectors, and using clustering algorithms to identify call quality levels, this technology solves the problem of difficulty in judging long-term call quality in existing technologies, and achieves efficient user call quality assessment and personalized optimization suggestions.

CN122053750APending Publication Date: 2026-05-15XIAMEN XINGZONG DIGITAL TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-01-29
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

In existing technologies, there is a lack of effective means to judge the quality of users' long-term calls, which fails to reflect the characteristics of users' long-term call quality and leads to a poor user experience.

Method used

By acquiring users' historical call data, calculating user feature vectors, and using K-means clustering and DBSCAN clustering algorithms, users are identified and clustered into groups with different call quality levels, and users with abnormal calls are identified.

Benefits of technology

It enables effective assessment of users' long-term call quality, improves assessment efficiency, and can identify the long-term call quality of multiple users at once, providing personalized network optimization suggestions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122053750A_ABST
    Figure CN122053750A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a call quality detection method and device, electronic equipment and a storage medium, and is applied to the technical field of communication. The method provided by the embodiment of the invention is applied. The method comprises the following steps: acquiring a single call MOS value, a single call packet loss rate, single call average jitter, single call average delay, single call maximum jitter, a single call packet loss rate peak value, a single call codec type, a single call network type and a single call duration of each call of a user in a preset historical duration; and calculating the first data and constructing a user feature vector to obtain the user feature vector representing the call quality of the user. And respectively analyzing the feature vectors of the users through a K-means clustering algorithm and a DBSCAN clustering algorithm, identifying abnormal call users, and clustering the users, so that the users with the same or similar call quality are clustered in the same cluster. Therefore, the long-term call quality of the user is judged.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a method, apparatus, electronic device and storage medium for call quality detection. Background Technology

[0002] With the widespread adoption of VoIP (Voice over Internet Protocol), WebRTC (Web Real-Time Communication), and PBX (Private Branch Exchange), call quality directly impacts user experience. Different users perceive call quality differently, and when users report call quality issues, there are no intuitive metrics for reference. Current technologies typically assess call quality based on a single call or simple thresholds, failing to reflect long-term call quality characteristics. Therefore, a solution capable of determining a user's long-term call quality characteristics is urgently needed. Summary of the Invention

[0003] The purpose of this application is to provide a call quality detection method, apparatus, electronic device, and storage medium to determine the long-term call quality characteristics of a user. The specific technical solution is as follows: In a first aspect of this application, a call quality detection method is provided, the method comprising: Obtain the following data for each call made by a user within a preset historical time period: MOS value, packet loss rate, average jitter, average latency, maximum jitter, peak packet loss rate, codec type, network type, and call duration. For each user, based on the single-call MOS value, single-call packet loss rate, single-call average jitter, single-call average latency, single-call maximum jitter, single-call peak packet loss rate, single-call codec type, single-call network type, and single-call duration of each call, calculate the user's historical average MOS value, historical MOS standard deviation, percentage of historical MOS differences, historical average packet loss rate, historical maximum packet loss rate, percentage of historical packet loss rate differences, historical average jitter, historical maximum jitter, historical average latency, historical Wi-Fi percentage, historical cellular network percentage, and historical wired network percentage within the preset historical duration to obtain the first data set; Based on the first dataset, construct a user feature vector; Based on the user feature vectors, K-means clustering algorithm and DBSCAN clustering algorithm are used for analysis; The K-means clustering algorithm is used to cluster users into multiple clusters with different call quality levels, and the DBSCAN clustering algorithm is used to identify users with abnormal calls based on a subset of key features extracted from the user feature vectors. The subset of key features includes the following indicators: the proportion of historical MOS differences, the historical maximum packet loss rate, the historical maximum jitter, and the historical average latency.

[0004] In one possible implementation, the analysis using the K-means clustering algorithm based on the user feature vector includes: The user feature vectors of each user are combined to form a feature matrix; Based on the feature matrix, all users are clustered using the K-means clustering algorithm, and the cluster label of each user and the center vector of each cluster are output. Users are divided into multiple clusters based on the cluster labels. Users within the same cluster have similar long-term call quality characteristics, while different clusters correspond to different typical call quality levels. The center vector of the cluster is used to characterize the typical call quality characteristics of users in that cluster.

[0005] In one possible implementation, the analysis using the DBSCAN clustering algorithm based on the user feature vector includes: From the user feature vectors of each user, extract multiple preset key quality indicators to form a subset of key indicators; Based on a preset neighborhood radius and minimum neighbor count, the DBSCAN algorithm is used to perform cluster analysis on the subset of key indicators. In this cluster analysis, if a user's neighborhood contains a number of users not less than the minimum neighbor count, the user is identified as a core point. If a user's neighborhood contains a number of users less than the minimum neighbor count, but is located within the neighborhood of at least one core point, the user is identified as a boundary point. If a user is neither a core point nor a boundary point, the user is identified as an outlier. The users corresponding to the outliers are identified as users with abnormal calls.

[0006] In one possible implementation, after analyzing the user feature vector using the K-means clustering algorithm and the DBSCAN clustering algorithm, the method further includes: If the historical average MOS value corresponding to the center vector of the cluster is greater than or equal to 4, the historical MOS standard deviation is less than or equal to 0.3, the historical average packet loss rate is less than 1%, the historical average jitter is less than 50ms, and the historical average latency is less than 300ms, then the users of the cluster are identified as high-quality call users. If the historical average MOS value corresponding to the center vector of the cluster is greater than or equal to 3.5 and less than or equal to 4, the historical MOS standard deviation is greater than or equal to 0.3 and less than or equal to 0.5, the historical average packet loss rate is greater than or equal to 1% and less than or equal to 3%, the historical average jitter is greater than or equal to 50ms and less than or equal to 100ms, and the historical average delay is greater than or equal to 300ms and less than or equal to 600ms, the user of the cluster is identified as a quality user in the call. If the historical average MOS value corresponding to the center vector of the cluster is less than 3.5, the historical MOS standard deviation is greater than 0.5, the historical average packet loss rate is greater than 3%, the historical average jitter is greater than 100ms, and the historical average delay is greater than 600ms, the users of the cluster are identified as low-quality call users.

[0007] In one possible implementation, the step of clustering all users based on the feature matrix using the K-means clustering algorithm, and outputting the cluster label to which each user belongs and the center vector of each cluster, includes: One user feature vector is randomly selected from the feature matrix as the center of the first cluster; Calculate the distance from each user feature vector (excluding the center of the first cluster) to the center of the first cluster to obtain the first distance; For each user feature vector other than the center of the first cluster, the probability that the user feature vector is selected as the center of the second cluster is calculated based on the first distance, thus obtaining the first probability; According to the first probability, the user feature vector with the highest first probability is taken as the center of the second cluster; For each user feature vector other than the first cluster center and the second cluster center, calculate the distance from the user feature vector to the first cluster center and the second cluster center respectively, and determine the distance with the smallest value as the second distance; The probability that the user's feature vector is selected as the center of the third cluster is calculated based on the second distance, thus obtaining the second probability; According to the second probability, the user feature vector with the highest second probability is taken as the center of the third cluster; For each user feature vector, based on the distances of the user feature vector to the first cluster center, the second cluster center, and the third cluster center, it is clustered into the cluster containing the cluster center with the smallest distance; For each cluster, update the cluster center and return to the above steps: For each user feature vector, based on the distance of the user feature vector to the first cluster center, the second cluster center, and the third cluster center, cluster it into the cluster with the smallest distance, until the cluster centers converge, resulting in multiple clusters. Output the cluster label of each user and the center vector of each cluster.

[0008] In one possible implementation, the method further includes: For the user with high-quality call, a first network optimization suggestion will be sent to the client corresponding to the user with high-quality call, wherein the first network optimization suggestion is used to suggest that the user maintain the current network configuration; For the user with high call quality, a second network optimization suggestion is sent to the client corresponding to the user with high call quality. The second network optimization suggestion is used to suggest that the user use a more stable network configuration than the current network, or to suggest that the user avoid switching networks during the call. For users with low call quality, a third network optimization suggestion is sent to the corresponding client of the user with low call quality. The third network optimization suggestion is used to suggest that the user use a network configuration with a stronger network signal than the current network, or to suggest that the user upgrade the client version. For the user with the abnormal call, a fourth network optimization suggestion is sent to the corresponding client of the user with the abnormal call. The fourth network optimization suggestion is used to suggest that the user change the current network configuration, release the background resources of the client device, and start the jitter buffer mechanism of the client device.

[0009] In a second aspect of this application, a call quality detection device is provided, the device comprising: The user call information acquisition module is used to acquire the MOS value, packet loss rate, average jitter, average latency, maximum jitter, peak packet loss rate, codec type, network type, and call duration of each call made by the user within a preset historical time period. The first data calculation module is used to calculate, for each user, the historical average MOS value, historical MOS standard deviation, historical MOS difference ratio, historical average packet loss rate, historical maximum packet loss rate, historical packet loss rate peak value, historical jitter, historical maximum jitter, historical average latency, historical Wi-Fi ratio, historical cellular network ratio, and historical wired network ratio within the preset historical time period, based on the single call MOS value, single call packet loss rate, single call average jitter, single call average latency ... The user feature vector construction module is used to construct user feature vectors based on the first data set; The clustering analysis module is used to analyze the user feature vector using the K-means clustering algorithm and the DBSCAN clustering algorithm. The K-means clustering algorithm is used to cluster users into multiple clusters with different call quality levels, and the DBSCAN clustering algorithm is used to identify users with abnormal calls based on a subset of key features extracted from the user feature vectors. The subset of key features includes the following indicators: the proportion of historical MOS differences, the historical maximum packet loss rate, the historical maximum jitter, and the historical average latency.

[0010] In one possible implementation, the clustering analysis module includes: The feature matrix construction submodule is specifically used to assemble the user feature vectors of each user into a feature matrix. The K-means analysis submodule is specifically used to cluster all users based on the feature matrix using the K-means clustering algorithm, and output the cluster label of each user and the center vector of each cluster. The clustering submodule is specifically used to divide users into multiple clusters based on the cluster labels. Users within the same cluster have similar long-term call quality characteristics, while different clusters correspond to different typical call quality levels. The center vector of the cluster is used to characterize the typical call quality characteristics of users in that cluster.

[0011] In one possible implementation, the clustering analysis module includes: The key indicator extraction submodule is specifically used to extract multiple preset key quality indicators from the user feature vectors of each user to form a key indicator subset. The DBSCAN analysis submodule is specifically used to perform cluster analysis on the subset of key indicators based on a preset neighborhood radius and minimum neighbor count using the DBSCAN algorithm. In this cluster analysis, if a user's neighborhood contains a number of users not less than the minimum neighbor count, the user is identified as a core point; if a user's neighborhood contains a number of users less than the minimum neighbor count, but is located within the neighborhood of at least one core point, the user is identified as a boundary point; if a user is neither a core point nor a boundary point, the user is identified as an outlier. The call anomaly user identification submodule is specifically used to identify the user corresponding to the outlier as a call anomaly user.

[0012] In one possible implementation, the device further includes: The high-quality call user determination module is used to determine the users of the cluster as high-quality call users when the historical average MOS value corresponding to the center vector of the cluster is greater than or equal to 4, the historical MOS standard deviation is less than or equal to 0.3, the historical average packet loss rate is less than 1%, the historical average jitter is less than 50ms, and the historical average delay is less than 300ms. The call quality user determination module is used to determine the users of the cluster as call quality users when the historical average MOS value corresponding to the center vector of the cluster is greater than or equal to 3.5 and less than or equal to 4, the historical MOS standard deviation is greater than or equal to 0.3 and less than or equal to 0.5, the historical average packet loss rate is greater than or equal to 1% and less than or equal to 3%, the historical average jitter is greater than or equal to 50ms and less than or equal to 100ms, and the historical average delay is greater than or equal to 300ms and less than or equal to 600ms. The low-quality call user determination module is used to determine users in a cluster as low-quality call users when the historical average MOS value corresponding to the center vector of the cluster is less than 3.5, the historical MOS standard deviation is greater than 0.5, the historical average packet loss rate is greater than 3%, the historical average jitter is greater than 100ms, and the historical average delay is greater than 600ms.

[0013] In one possible implementation, the K-means analysis submodule includes: The first cluster center selection unit is specifically used to randomly select one user feature vector from the feature matrix as the first cluster center; The first distance calculation unit is specifically used to calculate the distance from each user feature vector to the first cluster center in each user feature vector except for the first cluster center, to obtain the first distance; The first probability calculation unit is specifically used to calculate the probability that each user feature vector other than the first cluster center is selected as the second cluster center based on the first distance, and obtain the first probability. The second cluster center selection unit is specifically used to select the user feature vector with the highest first probability as the second cluster center according to the first probability. The second distance calculation unit, specifically, calculates the distance from each user feature vector (excluding the first cluster center and the second cluster center) to the first cluster center and the second cluster center, and determines the distance with the smallest value as the second distance. The second probability calculation unit is specifically used to calculate the probability that the user's feature vector is selected as the center of the third cluster based on the second distance, and to obtain the second probability. The third cluster center selection unit is specifically used to select the user feature vector with the highest probability as the third cluster center according to the second probability. The user feature vector clustering unit is specifically used to cluster each user feature vector into the cluster where the cluster center with the smallest distance is located, based on the distance of the user feature vector to the first cluster center, the second cluster center and the third cluster center, respectively. The clustering convergence unit is specifically used to update the cluster center for each cluster and return to the above steps: For each user feature vector, based on the distance of the user feature vector to the first cluster center, the second cluster center, and the third cluster center, it is clustered into the cluster where the cluster center with the smallest distance is located, until the cluster centers converge, resulting in multiple clusters, and outputting the cluster label of each user and the center vector of each cluster.

[0014] In one possible implementation, the device further includes: The first network optimization suggestion module is specifically used to send a first network optimization suggestion to the client corresponding to the user with high-quality call, wherein the first network optimization suggestion is used to suggest that the user maintain the current network configuration; The second network optimization suggestion module is specifically used to send a second network optimization suggestion to the client corresponding to the user with high quality in the call. The second network optimization suggestion is used to suggest that the user use a more stable network configuration than the current network or to suggest that the user avoid switching networks during the call. The third network optimization suggestion module is specifically used to send a third network optimization suggestion to the client corresponding to the user with low call quality. The third network optimization suggestion is used to suggest that the user use a network configuration with a stronger network signal than the current network or to suggest that the user upgrade the client version. The call anomaly network optimization suggestion module is specifically used to send a fourth network optimization suggestion to the client corresponding to the call anomaly user. The fourth network optimization suggestion is used to suggest that the user change the current network configuration, release background resources of the client device, and start the jitter buffering mechanism of the client device.

[0015] In a third aspect of this application, an electronic device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the steps of the method as described in any of the first aspects of the embodiments of this application.

[0016] In another aspect of the embodiments of this application, a computer-readable storage medium is provided, characterized in that the computer-readable storage medium stores a computer program. When the computer program is executed by a processor, it implements the steps of the method as described in any of the first aspects of the embodiments of this application.

[0017] Compared with the prior art, the embodiments of this application have at least the following technical effects: This application provides a call quality detection method, apparatus, electronic device, and storage medium. By acquiring the single-call MOS value, single-call packet loss rate, single-call average jitter, single-call average delay, single-call maximum jitter, single-call peak packet loss rate, single-call codec type, single-call network type, and single-call duration of each call within a preset historical time period, the application calculates the first data and constructs a user feature vector, thus obtaining a user feature vector characterizing the user's call quality. The application analyzes each user feature vector using K-means clustering and DBSCAN clustering algorithms respectively, identifying users with abnormal calls and clustering each user into their respective clusters, ensuring that users with similar or identical call quality are grouped together. This enables the assessment of a user's long-term call quality, and by clustering multiple users, the long-term call quality of multiple users can be assessed simultaneously, improving the efficiency of call quality assessment.

[0018] Of course, implementing any method of the embodiments of this application does not necessarily require achieving all of the advantages described above at the same time. Attached Figure Description

[0019] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings.

[0020] Figure 1 A flowchart of a call quality detection method provided in an embodiment of this application; Figure 2 Another flowchart of the call quality detection method provided in the embodiments of this application; Figure 3 A schematic diagram of the call quality detection device provided in the embodiments of this application; Figure 4 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0021] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art based on this application are within the scope of protection of this application.

[0022] To determine the long-term call quality of a user, in a first aspect of this application, a call quality detection method is provided, the method comprising: Figure 1 The steps shown are as follows: Step S101: Obtain the following data for each call made by the user within a preset historical duration: MOS value, packet loss rate, average jitter, average latency, maximum jitter, peak packet loss rate, codec type, network type, and call duration.

[0023] Step S102: For each user, based on the single-call MOS value, single-call packet loss rate, single-call average jitter, single-call average latency, single-call maximum jitter, single-call peak packet loss rate, single-call codec type, single-call network type, and single-call duration of each call, calculate the user's historical average MOS value, historical MOS standard deviation, historical MOS difference ratio, historical average packet loss rate, historical maximum packet loss rate, historical packet loss rate difference ratio, historical average jitter, historical maximum jitter, historical average latency, historical Wi-Fi ratio, historical cellular network ratio, and historical wired network ratio within a preset historical duration to obtain the first data set.

[0024] Step S103: Construct user feature vectors based on the first data set.

[0025] Step S104: Analyze the user feature vectors using K-means clustering and DBSCAN clustering algorithms.

[0026] Among them, the K-means (K-Means Clustering) clustering algorithm is used to cluster users into multiple clusters with different call quality levels, and the DBSCAN (Density-Based Spatial Clustering of Applications with Noise) clustering algorithm is used to identify users with abnormal calls based on a subset of key features extracted from user feature vectors. The subset of key features includes the following indicators: the proportion of historical MOS differences, the historical maximum packet loss rate, the historical maximum jitter, and the historical average latency.

[0027] In this embodiment of the application, when acquiring relevant data for each user call (single call MOS value, single call packet loss rate, single call average jitter, single call average latency, single call maximum jitter, single call peak packet loss rate, single call codec type, single call network type, and single call duration), the user has been informed and their consent or authorization has been obtained. In one example, before the user initiates a call, a pop-up window appears on the user's client interface asking if they agree to acquire the aforementioned relevant call data for call quality assessment; the data is acquired only if the user agrees.

[0028] The preset historical duration is the range of time determined based on business needs for assessing the long-term call quality of users. In one example, this preset historical duration could be set to two weeks, one month, three months, or six months. Within this preset historical duration, the system records the following parameters for each user call: MOS value, packet loss rate, average jitter, average latency, maximum jitter, peak packet loss rate, codec type, network type, and call duration.

[0029] The Mean Opinion Score (MOS) is a subjective evaluation metric for measuring the quality of voice communication. It quantifies users' perceived clarity, naturalness, and overall experience of a call. The MOS score ranges from 1 to 5, where "5" indicates excellent call quality (the user perceives the voice as indistinguishable from a real person, natural and fluent, without any distortion); "4" indicates good call quality (the user perceives the voice as slightly mechanical or slightly distorted, but not affecting comprehension); "3" indicates average call quality (the user perceives the voice as noticeably unnatural, with perceptible distortion or noise, requiring concentration to understand); "2" indicates poor call quality (the user perceives severely distorted voice, intermittent or unclear speech, difficult to understand); and "1" indicates extremely poor call quality (the user perceives the voice as almost unrecognizable, completely masked by noise or interruptions). In practical applications, MOS values ​​can be obtained by recruiting listeners to manually judge speech quality; alternatively, algorithms or deep learning models such as PESQ (Perceptual Evaluation of Speech Quality), POLQA (Perceptual Objective Listening Quality Assessment), and NISQA (Non-Intrusive Speech Quality Assessment) can be used to analyze call speech and output MOS values.

[0030] The single-call packet loss rate represents the packet loss rate during a single user call. In real-time voice communication (such as VoIP, WeChat voice calls, etc.), the packet loss rate is the percentage of data packets lost due to network transmission anomalies out of the total number of data packets sent. A higher packet loss rate indicates poorer call quality.

[0031] Average jitter per call represents the average jitter during a single call. In real-time voice communication, average jitter refers to the fluctuation in the time interval between data packets arriving at the receiver relative to the average delay. A higher average jitter indicates poorer call quality.

[0032] Average call latency refers to the average delay of a single call. In real-time voice communication, average call latency is the average one-way time delay from when a voice data packet is sent by the sender to when it is fully received by the receiver. The higher the average call latency, the worse the call quality.

[0033] Maximum jitter in a single call refers to the maximum jitter value during the transmission and reception of data packets in a single call. Peak packet loss rate in a single call refers to the highest instantaneous packet loss rate (e.g., milliseconds) that occurs within a unit of time during a single real-time voice communication, reflecting extreme data packet loss events caused by sudden network failures (such as handover, congestion, or interference).

[0034] A single-call codec type refers to the encoder-decoder type used in a single user call to convert analog speech signals into digital data streams (encoding) and to restore the digital data streams to audible speech (decoding). As an example, a codec could be of codec types such as G.711, AMR-WB, EVS (Enhanced Voice Services Coding), or Opus.

[0035] The network type per call refers to the type of network used by the user during a single call. For example, the network type could be Wi-Fi (Wireless Fidelity), cellular, or wired. The duration of a single call refers to the length of time a user spends on a single call.

[0036] After obtaining the call-related data of each call within a preset historical time period, the user's first data (such as historical average MOS value, historical MOS standard deviation, historical MOS difference ratio, historical average packet loss rate, historical maximum packet loss rate, historical packet loss rate ratio, historical average jitter, historical maximum jitter, historical average latency, historical Wi-Fi percentage, historical cellular network percentage, and historical wired network percentage) can be calculated based on the above call-related data.

[0037] In one possible implementation, the relevant data for each call can be weighted and averaged to obtain the historical average call data, based on the weight coefficient of each call. For example, a higher weight coefficient can be set for calls with longer individual call durations.

[0038] The historical average MOS value refers to the weighted average of the MOS values ​​of each call within a preset historical period. The historical MOS standard deviation refers to the standard deviation of the MOS values ​​of each call within a preset historical period. The proportion of historical MOS differences refers to the percentage of MOS differences among all calls within a user's preset historical period. The MOS difference is a value pre-determined based on business requirements as a poor MOS value. For example, a MOS value less than 3 is considered a MOS difference. For instance, for a user with 6 calls within a preset period, and MOS values ​​of 2.5, 3, 2, 4, 5, and 4.5 for each call, there are 2 calls with MOS differences, making the user's historical MOS difference proportion 1 / 3.

[0039] The historical average packet loss rate is the weighted average of the packet loss rates of all user calls within a preset historical period. The historical maximum packet loss rate is the maximum packet loss rate of all user calls within a preset historical period, or a value obtained using the 95th percentile method. The percentage of differences in historical packet loss rates is the proportion of differences in the packet loss rates of all user calls within a preset period. This percentage is a value within a preset range determined based on business requirements. For example, a percentage of 3% or higher is considered a percentage of difference, or a percentage of 1% or higher is considered a percentage of difference.

[0040] Historical average jitter is the weighted average of the average jitter of each call within a preset historical period. Historical maximum jitter is the maximum average jitter of each call within a preset historical period, or a value obtained using the 95th percentile method. Historical average latency is the weighted average of the average latency of each call within a preset historical period.

[0041] The historical Wi-Fi percentage refers to the proportion of a user's calls within a preset historical period where the network type was Wi-Fi. The historical cellular network percentage refers to the proportion of a user's calls within a preset historical period where the network type was cellular. The historical wired network percentage refers to the proportion of a user's calls within a preset historical period where the network type was wired. For example, within a preset historical period, a user made ten calls, five of which used Wi-Fi, three used cellular, and two used wired. The corresponding historical Wi-Fi percentage, historical cellular network percentage, and historical wired network percentage for this user would be 1 / 2, 3 / 10, and 1 / 5, respectively.

[0042] In one possible implementation, when constructing a user feature vector based on the first data set, each first data in the first data set can be normalized using Min-MAX (Minimum-Maximum) to obtain the user feature vector corresponding to that user.

[0043] When analyzing user feature vectors using K-means clustering and DBSCAN clustering algorithms, K-means clustering can group users with similar or identical call quality levels into the same cluster; DBSCAN clustering can identify users with abnormal call quality. Specifically, when identifying users with abnormal call quality using DBSCAN, key feature data is first extracted from the user feature vectors to form a key feature subset. This key feature subset is then used to cluster the user feature vectors to identify users with abnormal call quality. The key feature subset includes at least: the proportion of historical MOS differences, the historical maximum packet loss rate, the historical maximum jitter, and the historical average latency.

[0044] Applying the method of this application embodiment, the first data and user feature vectors are calculated and constructed by acquiring the single-call MOS value, single-call packet loss rate, single-call average jitter, single-call average latency, single-call maximum jitter, single-call peak packet loss rate, single-call codec type, single-call network type, and single-call duration of each call within a preset historical duration. This yields user feature vectors characterizing the user's call quality. K-means clustering and DBSCAN clustering algorithms are used to analyze each user feature vector, identifying users with abnormal calls and clustering them into clusters, ensuring that users with similar or identical call quality are grouped together. This enables the assessment of a user's long-term call quality, and by clustering multiple users, the long-term call quality of multiple users can be assessed simultaneously, improving the efficiency of call quality assessment.

[0045] In one possible implementation, step S104 can be achieved by using the K-means clustering algorithm to analyze the user feature vector through the following steps: Step 1: Combine the user feature vectors of each user into a feature matrix.

[0046] In practical applications, the user feature vectors of each user can be concatenated to obtain a feature matrix. In one example, the resulting feature matrix is ​​as follows:

[0047] Where X represents the feature matrix; n represents the number of users, [x 1,1 x 1,2 , ..., x1,12 ] represents the user feature vector of the first user, and so on, [x 2,1 x 2,2 , ..., x 2,12 [x] represents the user feature vector of the second user; n,1 x n,2 , ..., x n,12 [] represents the user feature vector of the nth user. Taking a user feature vector comprising 12 primary data points—historical average MOS value, historical MOS standard deviation, percentage of historical MOS differences, historical average packet loss rate, historical maximum packet loss rate, percentage of historical packet loss rate differences, historical average jitter, historical maximum jitter, historical average latency, historical Wi-Fi percentage, historical cellular network percentage, and historical wired network percentage—as an example, x i,,j This represents the j-th type of first data for the i-th user.

[0048] Step 2: Based on the feature matrix, cluster all users using the K-means clustering algorithm, and output the cluster label of each user and the center vector of each cluster.

[0049] Step 3: Divide users into multiple clusters based on cluster labels.

[0050] Users within the same cluster share similar long-term call quality characteristics, while different clusters correspond to different typical call quality levels. The center vector of a cluster is used to characterize the typical call quality characteristics of users in that cluster.

[0051] The number of clusters can be preset. In one example, K=3 is preset, meaning users are clustered into 3 clusters, such as clustering users into clusters representing high-quality, medium-quality, and low-quality calls. In another example, K=5 is set, meaning users are clustered into 5 clusters, such as clustering users into clusters representing high-quality, relatively high-quality, medium-quality, relatively low-quality, and very low-quality calls. The value of K can be set according to actual business needs.

[0052] In one possible implementation, taking K=3 as an example, the K-means clustering process in step two can be achieved through the following steps: Step 1: Randomly select one user feature vector from the feature matrix as the center of the first cluster.

[0053] Step 2: Calculate the distance from each user feature vector (excluding the center of the first cluster) to the center of the first cluster to obtain the first distance.

[0054] In one example, the first cluster center can be initialized first, that is, from all user vectors {x1,x2,…,x}. n A sample is randomly selected from the samples in the first cluster, c1=x. r The center of the first cluster is the user feature vector {x} of the r-th user. r,1 ,x r,2 ,…,x r,12 Then, the second cluster center c2 is initialized for each user x. i Calculate its distance to the nearest existing center c1, i.e., the first distance: .

[0055] Step 3: For each user feature vector other than the center of the first cluster, calculate the probability that the user feature vector is selected as the center of the second cluster based on the first distance, and obtain the first probability.

[0056] When calculating the first probability, it can be constructed based on the squared distance, i.e., the first probability can be calculated using the following formula: ; in, This represents the first probability that the i-th user feature vector is selected as the center of the second cluster. This represents the square of the first distance from the i-th user feature vector to the center of the first cluster; This represents the sum of squares of the first distances from each user's feature vector to the center of the first cluster.

[0057] Step 4: According to the first probability, take the user feature vector with the highest first probability as the center of the second cluster.

[0058] Step 5: For each user feature vector other than the first cluster center and the second cluster center, calculate the distance from the user feature vector to the first cluster center and the second cluster center respectively, and determine the distance with the smallest value as the second distance.

[0059] Similar to steps 2-3, in one example, the second distance can be calculated using the following formula: ,in, This represents the second distance between the feature vectors of the i-th user. This represents the m-th cluster center.

[0060] Step 6: Calculate the probability that the user's feature vector is selected as the center of the third cluster based on the second distance, and obtain the second probability.

[0061] Accordingly, the second probability can be calculated using the following formula: ; in, This represents the second probability that the i-th user feature vector is selected as the center of the third cluster. It represents the square of the second distance corresponding to the feature vector of the i-th user; This represents the sum of squares of the second distances corresponding to the feature vectors of each user.

[0062] Step 7: According to the second probability, take the user feature vector with the highest second probability as the center of the third cluster.

[0063] Step 8: For each user feature vector, based on the distances of the user feature vector to the first cluster center, the second cluster center, and the third cluster center, cluster it into the cluster containing the cluster center with the smallest distance.

[0064] In one example, the distances from a user's feature vector to the centers of the first, second, and third clusters can be calculated using the following formula: ; in, This represents the distance from the i-th user's feature vector to the m-th cluster center. It can be expressed as a cluster (...). ) = argmin This is used to categorize user feature vectors into the cluster containing the cluster center with the smallest distance.

[0065] Step 9: For each cluster, update the cluster center and return to the above steps: For each user feature vector, based on the distance of the user feature vector to the first cluster center, the second cluster center, and the third cluster center, cluster it into the cluster with the smallest distance, until the cluster centers converge, resulting in multiple clusters. Output the cluster label of each user and the center vector of each cluster.

[0066] In practical applications, after clustering is completed, verification can be performed to determine whether the cluster centers are still in their original positions after clustering. If they are not, the cluster centers need to be updated, and the clustering process needs to be repeated until the cluster centers converge. In one example, the cluster centers can be updated using the following formula; .

[0067] When the cluster centers no longer change or the range of change is less than a preset change threshold, and / or when the number of iterations reaches a preset iteration threshold, the cluster centers can be considered to have converged, resulting in the final clustered clusters. Each user feature vector is labeled, representing the cluster label to which that user feature vector belongs. After clustering is complete, the cluster label for each user and the center vector of each cluster will be output.

[0068] Users within the same cluster have similar and / or identical long-term call quality characteristics, while different clusters correspond to different typical call quality levels. The cluster center vector (i.e., the user feature vector corresponding to the cluster center) is used to characterize the typical call quality characteristics of users in that cluster, and it is assumed that the call quality characteristics of users in that cluster are the same as the call quality characteristics represented by the cluster center.

[0069] Applying the method of this application embodiment, the first data is calculated and a user feature vector is constructed by acquiring the single-call MOS value, single-call packet loss rate, single-call average jitter, single-call average latency, single-call maximum jitter, single-call peak packet loss rate, single-call codec type, single-call network type, and single-call duration of each call within a preset historical duration. This yields a user feature vector characterizing the user's call quality. The K-means clustering algorithm is then used to cluster users into different clusters, ensuring that users with similar or identical call quality are grouped together. This enables the assessment of a user's long-term call quality, and by clustering multiple users, the long-term call quality of multiple users can be assessed simultaneously, improving the efficiency of call quality assessment.

[0070] In one possible implementation, after dividing users into three clusters using K-means clustering, call quality can be assessed based on the center vector corresponding to the center of each cluster. For example, if the historical average MOS value corresponding to the center vector of a cluster is greater than or equal to 4, the historical MOS standard deviation is less than or equal to 0.3, the historical average packet loss rate is less than 1%, the historical average jitter is less than 50ms, and the historical average latency is less than 300ms, then users in that cluster are identified as high-quality call users. Users in a cluster are identified as quality users in a call if the historical average MOS value corresponding to the center vector of the cluster is greater than or equal to 3.5 and less than or equal to 4, the historical MOS standard deviation is greater than or equal to 0.3 and less than or equal to 0.5, the historical average packet loss rate is greater than or equal to 1% and less than or equal to 3%, the historical average jitter is greater than or equal to 50ms and less than or equal to 100ms, and the historical average latency is greater than or equal to 300ms and less than or equal to 600ms. If the historical average MOS value corresponding to the center vector of a cluster is less than 3.5, the historical MOS standard deviation is greater than 0.5, the historical average packet loss rate is greater than 3%, the historical average jitter is greater than 100ms, and the historical average latency is greater than 600ms, then the users in that cluster are identified as low-quality call users.

[0071] In practical applications, judgments can also be made based on historical Wi-Fi usage percentage, historical cellular network usage percentage, and historical wired network usage percentage. For example, if the historical wired network usage percentage is higher than a preset high-quality threshold, the user's call quality is considered high-quality. In another example, if the stable Wi-Fi usage percentage is higher than a preset high-quality threshold, the user's call quality is considered high-quality. Stable Wi-Fi refers to Wi-Fi networks where signal strength, latency, jitter, packet loss rate, and other data are within a preset stable value range.

[0072] Accordingly, users whose historical Wi-Fi percentage and / or historical cellular network percentage fall within a preset medium quality range can be considered to have medium call quality. Users whose historical Wi-Fi percentage and / or historical cellular network percentage fall within a preset low quality range can be considered to have low call quality.

[0073] By applying the method of this application embodiment, the call quality of each user in the cluster can be judged by analyzing the various index data corresponding to the center vector of the cluster, thereby improving the efficiency of judging the long-term call quality of users.

[0074] In one possible implementation, the DBSCAN clustering process in step two can be achieved through the following steps: Step A: Extract multiple preset key quality indicators from the user feature vectors of each user to form a subset of key indicators.

[0075] Step B: Based on the preset neighborhood radius and minimum number of neighbors, perform cluster analysis on the key indicator subset using the DBSCAN algorithm.

[0076] In cluster analysis, if a user's neighborhood contains a number of users that are not less than the minimum number of neighbors, then the user is identified as a core point; if a user's neighborhood contains a number of users that are less than the minimum number of neighbors, but it is located in the neighborhood of at least one core point, then the user is identified as a boundary point; if a user is neither a core point nor a boundary point, then the user is identified as an outlier.

[0077] Step C: Identify the users corresponding to outliers as users with abnormal calls.

[0078] In practical applications, key quality indicators can be the proportion of historical MOS differences, historical maximum packet loss rate, historical maximum jitter, and historical average latency as described in the above embodiments. When setting the minimum number of neighbors, it can be set according to the number of users; for example, ln(N) can be set as the minimum number of neighbors, where N represents the number of users.

[0079] After setting the minimum number of neighbors (MinPts), you can set the neighborhood radius based on this number. In one example, for each point, you can calculate its distance to its MinPts nearest neighbor, sort them by distance in ascending order, and plot a curve. The "knee" of this curve corresponds to the neighborhood radius. In practical applications, if a user's historical maximum packet loss rate is greater than 10% and their historical maximum jitter is greater than 100ms, they are likely to be identified as outliers.

[0080] By applying the method of this application embodiment, key quality indicators are extracted from user feature vectors, a subset of key indicators is constructed, and users with abnormal calls can be identified through the DBSCAN algorithm, thereby facilitating the analysis of the communication quality of users with abnormal calls.

[0081] After clustering users into their respective clusters and identifying users with abnormal call activity, corresponding network optimization suggestions can be made for each user. In one possible implementation, the method of this application embodiment may further include the following steps: Step a: For users with high-quality calls, send the first network optimization suggestion to their corresponding client. This first network optimization suggestion is used to advise the user to maintain their current network configuration.

[0082] Step b: For users with high-quality calls, send a second network optimization suggestion to their corresponding client. This second network optimization suggestion recommends that the user use a more stable network configuration than the current one, or advises the user to avoid switching networks during a call.

[0083] Step c: For users with low call quality, send third-party network optimization suggestions to their respective clients. These suggestions may include recommending that the user use a network configuration with a stronger signal than currently available, or recommending that the user upgrade their client version.

[0084] Step d: For users experiencing call abnormalities, send the fourth network optimization suggestion to their corresponding client. This suggestion recommends that the user change their current network configuration, free up background resources on the client device, and activate the client device's jitter buffering mechanism.

[0085] For the cluster of users with high-quality calls, if the user profile of this cluster is considered to be clear and stable with almost no obvious problems, it can be suggested that users in this cluster maintain their current network and configuration during calls, and recommend that they continue to use wired networks or stable Wi-Fi networks.

[0086] For users in a particular call quality cluster, if the user profile of this cluster is that their calls are normal most of the time, but occasionally the call experience deteriorates, it can be suggested that users in this cluster avoid switching networks during calls and prioritize using stable Wi-Fi or wired networks.

[0087] For the cluster of users with low call quality, it is believed that the user profile of this cluster is characterized by consistently poor call quality, and this problem is persistent. It is recommended that users in this cluster prioritize switching to wired networks or stronger Wi-Fi networks during calls, and that they upgrade their client software to improve device performance.

[0088] For users in a cluster with abnormal calls, if their call behavior is not similar to that of other users with normal calls, it can be suggested that they change their network environment, i.e., change their current network configuration, close background resources used by the client, release background resources, and enable FEC (Forward Error Correction) or jitter buffering mechanism.

[0089] like Figure 2 The diagram shows another flowchart of the call quality detection method according to an embodiment of this application. First, data is collected, i.e., data acquisition is performed according to step S101. Then, user feature vectors are constructed based on the acquired data, i.e., steps S102-S103 are executed. After that, K-means clustering algorithm and DBSCAN clustering algorithm are used for analysis (i.e., step S104). The K-means clustering algorithm analysis and DBSCAN clustering algorithm analysis have no order and can be executed simultaneously or sequentially.

[0090] Users are categorized into different clusters using K-means and DBSCAN clustering algorithms, and users with abnormal call activity are identified. Optimization suggestions are then sent to each user to help them improve their call quality.

[0091] By applying the method of this application embodiment, corresponding optimization suggestions are selected and pushed to each user's client device according to the call quality of each user, which can remind users to optimize the network and thus improve the user's call experience.

[0092] In a second aspect of this application, a call quality detection device is provided, the device comprising: Figure 3 The structure shown is as follows: The user call information acquisition module 301 is used to acquire the MOS value, packet loss rate, average jitter, average delay, maximum jitter, peak packet loss rate, codec type, network type, and call duration of each call made by the user within a preset historical time period.

[0093] The first data calculation module 302 is used to calculate, for each user, the historical average MOS value, historical MOS standard deviation, historical MOS difference ratio, historical average packet loss rate, historical maximum packet loss rate, historical packet loss rate peak value, historical codec type, historical network type, and historical wired network ratio within a preset historical time period, based on the single call MOS value, single call packet loss rate, single call average jitter, single call average latency, single call maximum jitter, single call peak packet loss rate, single call codec type, single call network type, and single call duration of each call, to obtain the first data set.

[0094] User feature vector construction module 303 is used to construct user feature vectors based on the first data set.

[0095] The clustering analysis module 304 is used to perform analysis based on user feature vectors using the K-means clustering algorithm and the DBSCAN clustering algorithm.

[0096] Among them, the K-means clustering algorithm is used to cluster users into multiple clusters with different call quality levels, and the DBSCAN clustering algorithm is used to identify users with abnormal calls based on a subset of key features extracted from user feature vectors. The subset of key features includes the following indicators: the proportion of historical MOS differences, the historical maximum packet loss rate, the historical maximum jitter, and the historical average latency.

[0097] In one possible implementation, the clustering analysis module 304 includes: The feature matrix construction submodule is specifically used to assemble the user feature vectors of each user into a feature matrix.

[0098] The K-means analysis submodule is specifically used to cluster all users based on the feature matrix using the K-means clustering algorithm, and outputs the cluster label to which each user belongs and the center vector of each cluster.

[0099] The clustering submodule is specifically used to divide users into multiple clusters based on cluster labels. Users within the same cluster have similar long-term call quality characteristics, while different clusters correspond to different typical call quality levels.

[0100] The center vector of a cluster is used to characterize the typical call quality characteristics of users in that cluster.

[0101] In one possible implementation, the clustering analysis module includes: The key indicator extraction submodule is specifically used to extract multiple preset key quality indicators from the user feature vectors of each user, forming a subset of key indicators.

[0102] The DBSCAN analysis submodule is specifically used to perform cluster analysis on a subset of key indicators based on a preset neighborhood radius and minimum neighbor count using the DBSCAN algorithm. Specifically, in the cluster analysis, if a user's neighborhood contains at least as many users as the minimum neighbor count, that user is identified as a core point; if a user's neighborhood contains fewer than the minimum neighbor count, but is located within the neighborhood of at least one core point, that user is identified as a boundary point; and if a user is neither a core point nor a boundary point, that user is identified as an outlier.

[0103] The Call Abnormal User Identification Submodule is specifically used to identify users corresponding to outliers as call abnormal users.

[0104] In one possible implementation, the apparatus of this application embodiment further includes: The high-quality call user identification module is used to identify users in a cluster as high-quality call users if the historical average MOS value corresponding to the center vector of the cluster is greater than or equal to 4, the historical MOS standard deviation is less than or equal to 0.3, the historical average packet loss rate is less than 1%, the historical average jitter is less than 50ms, and the historical average latency is less than 300ms.

[0105] The call quality user determination module is used to determine users in a cluster as call quality users if the historical average MOS value corresponding to the center vector of the cluster is greater than or equal to 3.5 and less than or equal to 4, the historical MOS standard deviation is greater than or equal to 0.3 and less than or equal to 0.5, the historical average packet loss rate is greater than or equal to 1% and less than or equal to 3%, the historical average jitter is greater than or equal to 50ms and less than or equal to 100ms, and the historical average delay is greater than or equal to 300ms and less than or equal to 600ms.

[0106] The low-quality call user identification module is used to identify users in a cluster as low-quality call users if the historical average MOS value corresponding to the center vector of the cluster is less than 3.5, the historical MOS standard deviation is greater than 0.5, the historical average packet loss rate is greater than 3%, the historical average jitter is greater than 100ms, and the historical average delay is greater than 600ms.

[0107] In one possible implementation, the K-means analysis submodule includes: The first cluster center selection unit is specifically used to randomly select one user feature vector from the feature matrix as the first cluster center.

[0108] The first distance calculation unit is specifically used to calculate the distance from each user feature vector to the first cluster center, excluding the center of the first cluster, to obtain the first distance.

[0109] The first probability calculation unit is specifically used to calculate the probability that each user feature vector other than the center of the first cluster is selected as the center of the second cluster based on the first distance, so as to obtain the first probability.

[0110] The second cluster center selection unit is specifically used to select the user feature vector with the highest first probability as the second cluster center according to the first probability.

[0111] The second distance calculation unit, specifically, calculates the distance from each user feature vector (excluding the first cluster center and the second cluster center) to the first cluster center and the second cluster center, and determines the distance with the smallest value as the second distance.

[0112] The second probability calculation unit is specifically used to calculate the probability that the user's feature vector is selected as the center of the third cluster based on the second distance, thus obtaining the second probability.

[0113] The third cluster center selection unit is specifically used to select the user feature vector with the highest second probability as the third cluster center according to the second probability.

[0114] The user feature vector clustering unit is specifically used to cluster each user feature vector into the cluster containing the cluster center with the smallest distance, based on the distances of the user feature vector to the first cluster center, the second cluster center, and the third cluster center.

[0115] The clustering convergence unit is specifically used to update the cluster center for each cluster and return to the above steps: For each user feature vector, based on the distance of the user feature vector to the first cluster center, the second cluster center, and the third cluster center, it is clustered into the cluster with the smallest distance, until the cluster centers converge, resulting in multiple clusters. The cluster label of each user and the center vector of each cluster are output.

[0116] In one possible implementation, the apparatus of this application embodiment may further include: The first network optimization suggestion module is specifically used to send the first network optimization suggestion to the corresponding client of the user with high-quality call. The first network optimization suggestion is used to suggest that the user maintain the current network configuration.

[0117] The second network optimization suggestion module is specifically used to send second network optimization suggestions to the corresponding client of the user with high call quality. The second network optimization suggestion is used to suggest that the user use a more stable network configuration than the current network, or to suggest that the user avoid switching networks during the call.

[0118] The third network optimization suggestion module is specifically used to send third network optimization suggestions to the corresponding client of users with low call quality. These suggestions may include recommending that users use a network configuration with a stronger signal than the current one, or recommending that users upgrade their client version.

[0119] The call anomaly network optimization suggestion module is specifically used to send a fourth network optimization suggestion to the corresponding client of the user experiencing a call anomaly. This fourth network optimization suggestion is used to advise the user to change the current network configuration, release background resources of the client device, and activate the jitter buffering mechanism of the client device.

[0120] The apparatus of this application calculates first data and constructs user feature vectors by acquiring the single-call MOS value, single-call packet loss rate, single-call average jitter, single-call average latency, single-call maximum jitter, single-call peak packet loss rate, single-call codec type, single-call network type, and single-call duration of each call within a preset historical time period. This results in a user feature vector characterizing the user's call quality. K-means clustering and DBSCAN clustering algorithms are used to analyze each user feature vector, identifying users with abnormal calls and clustering them into clusters, ensuring that users with similar or identical call quality are grouped together. This enables the assessment of a user's long-term call quality, and by clustering multiple users, the long-term call quality of multiple users can be assessed simultaneously, improving the efficiency of call quality assessment.

[0121] A third aspect of the embodiments of this application provides an electronic device, such as... Figure 4 As shown, it includes a memory 401, a processor 402, and a computer program stored in the memory and executable on the processor. When processor 402 executes a computer program, it implements the steps of any of the methods described in the first aspect of the embodiments of this application.

[0122] In a fourth aspect of this application, a computer-readable storage medium is provided, which stores a computer program. When a computer program is executed by a processor, it implements the steps of any of the methods of the first aspect of the embodiments of this application.

[0123] Electronic devices can be computing devices such as desktop computers, laptops, handheld computers, and cloud servers. Those skilled in the art will understand that... Figure 4 This is merely an example of an electronic device and does not constitute a limitation on electronic devices. It may include more or fewer components than shown in the illustration, or combinations of certain components, or different components. For example, it may also include input / output devices, network access devices, etc.

[0124] The processor can be a Central Processing Unit (CPU), but it can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor can be a microprocessor or any conventional processor.

[0125] In some embodiments, the memory can be an internal storage unit, such as a hard disk or RAM. The memory can be a removable / non-removable, volatile / non-volatile computer system storage medium; for example, the memory is a non-volatile memory used for reading and writing non-volatile magnetic media. In other embodiments, the memory can also be an external storage device, such as a plug-in hard disk, smart media card (SMC), secure digital card (SD) card, flash card, etc., found in electronic devices. The memory is used to store operating systems, applications, bootloaders, data, and other programs, such as program code for computer programs. The memory can also be used to temporarily store data that has been output or will be output.

[0126] It should be noted that the information interaction and execution process between the above-mentioned devices / units are based on the same concept as the method embodiments of this application. For details on their specific functions and technical effects, please refer to the method embodiments section, and they will not be repeated here.

[0127] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the above-described division of functional units and modules is merely an example. In practical applications, the above functions can be assigned to different functional units and modules as needed, that is, the internal structure of the system can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit. Furthermore, the specific names of the functional units and modules are only for easy differentiation and are not intended to limit the scope of protection of this application. The specific working process of the units and modules in the above system can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.

[0128] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application, and should all be included within the protection scope of this application.

[0129] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate to describe embodiments of this application, for example, those that can be implemented in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatuses.

[0130] It should be understood that in this application, "at least one (item)" means one or more, and "more than" means two or more. "And / or" is used to describe the relationship between related objects, indicating that three relationships can exist. For example, "A and / or B" can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.

[0131] In the description of the embodiments of this application, "multiple" means two or more, "greater than", "less than", "exceeding" etc. are understood to exclude the number itself, and "above", "below", "within" etc. are understood to include the number itself.

[0132] It should be understood that although arrows indicate various operation steps in the flowcharts of this application's embodiments, the order in which these steps are implemented is not limited to the order indicated by the arrows. Unless explicitly stated herein, in some implementation scenarios of this application's embodiments, the implementation steps in each flowchart can be executed in other orders as required. Furthermore, some or all steps in each flowchart, based on the actual implementation scenario, may include multiple sub-steps or multiple stages. Some or all of these sub-steps or stages can be executed at the same time, and each sub-step or stage can also be executed at different times. In scenarios where execution times differ, the execution order of these sub-steps or stages can be flexibly configured according to requirements, and this application's embodiments do not limit this.

Claims

1. A method for detecting call quality, characterized in that, The method includes: Obtain the following data for each call made by a user within a preset historical time period: MOS value, packet loss rate, average jitter, average latency, maximum jitter, peak packet loss rate, codec type, network type, and call duration. For each user, based on the single-call MOS value, single-call packet loss rate, single-call average jitter, single-call average latency, single-call maximum jitter, single-call peak packet loss rate, single-call codec type, single-call network type, and single-call duration of each call, calculate the user's historical average MOS value, historical MOS standard deviation, percentage of historical MOS differences, historical average packet loss rate, historical maximum packet loss rate, percentage of historical packet loss rate differences, historical average jitter, historical maximum jitter, historical average latency, historical Wi-Fi percentage, historical cellular network percentage, and historical wired network percentage within the preset historical duration to obtain the first data set; Based on the first dataset, construct a user feature vector; Based on the user feature vectors, K-means clustering algorithm and DBSCAN clustering algorithm are used for analysis; The K-means clustering algorithm is used to cluster users into multiple clusters with different call quality levels, and the DBSCAN clustering algorithm is used to identify users with abnormal calls based on a subset of key features extracted from the user feature vectors. The subset of key features includes the following indicators: the proportion of historical MOS differences, the historical maximum packet loss rate, the historical maximum jitter, and the historical average latency.

2. The method according to claim 1, characterized in that, Based on the user feature vector, the analysis using the K-means clustering algorithm includes: The user feature vectors of each user are combined to form a feature matrix; Based on the feature matrix, all users are clustered using the K-means clustering algorithm, and the cluster label of each user and the center vector of each cluster are output. Users are divided into multiple clusters based on the cluster labels. Users within the same cluster have similar long-term call quality characteristics, while different clusters correspond to different typical call quality levels. The center vector of the cluster is used to characterize the typical call quality characteristics of users in that cluster.

3. The method according to claim 1, characterized in that, Based on the user feature vector, the analysis using the DBSCAN clustering algorithm includes: From the user feature vectors of each user, extract multiple preset key quality indicators to form a subset of key indicators; Based on a preset neighborhood radius and minimum neighbor count, the DBSCAN algorithm is used to perform cluster analysis on the subset of key indicators. In this cluster analysis, if a user's neighborhood contains a number of users not less than the minimum neighbor count, the user is identified as a core point. If a user's neighborhood contains a number of users less than the minimum neighbor count, but is located within the neighborhood of at least one core point, the user is identified as a boundary point. If a user is neither a core point nor a boundary point, the user is identified as an outlier. The users corresponding to the outliers are identified as users with abnormal calls.

4. The method according to claim 1, characterized in that, After analyzing the user feature vector using the K-means clustering algorithm and the DBSCAN clustering algorithm, the method further includes: If the historical average MOS value corresponding to the center vector of the cluster is greater than or equal to 4, the historical MOS standard deviation is less than or equal to 0.3, the historical average packet loss rate is less than 1%, the historical average jitter is less than 50ms, and the historical average latency is less than 300ms, then the users of the cluster are identified as high-quality call users. If the historical average MOS value corresponding to the center vector of the cluster is greater than or equal to 3.5 and less than or equal to 4, the historical MOS standard deviation is greater than or equal to 0.3 and less than or equal to 0.5, the historical average packet loss rate is greater than or equal to 1% and less than or equal to 3%, the historical average jitter is greater than or equal to 50ms and less than or equal to 100ms, and the historical average delay is greater than or equal to 300ms and less than or equal to 600ms, the user of the cluster is identified as a quality user in the call. If the historical average MOS value corresponding to the center vector of the cluster is less than 3.5, the historical MOS standard deviation is greater than 0.5, the historical average packet loss rate is greater than 3%, the historical average jitter is greater than 100ms, and the historical average delay is greater than 600ms, the users of the cluster are identified as low-quality call users.

5. The method according to claim 2, characterized in that, Based on the feature matrix, all users are clustered using the K-means clustering algorithm, outputting the cluster label for each user and the center vector of each cluster, including: One user feature vector is randomly selected from the feature matrix as the center of the first cluster; Calculate the distance from each user feature vector (excluding the center of the first cluster) to the center of the first cluster to obtain the first distance; For each user feature vector other than the center of the first cluster, the probability that the user feature vector is selected as the center of the second cluster is calculated based on the first distance, thus obtaining the first probability; According to the first probability, the user feature vector with the highest first probability is taken as the center of the second cluster; For each user feature vector other than the first cluster center and the second cluster center, calculate the distance from the user feature vector to the first cluster center and the second cluster center respectively, and determine the distance with the smallest value as the second distance; The probability that the user's feature vector is selected as the center of the third cluster is calculated based on the second distance, thus obtaining the second probability; According to the second probability, the user feature vector with the highest second probability is taken as the center of the third cluster; For each user feature vector, based on the distances of the user feature vector to the first cluster center, the second cluster center, and the third cluster center, it is clustered into the cluster containing the cluster center with the smallest distance; For each cluster, update the cluster center and return to the above steps: For each user feature vector, based on the distance of the user feature vector to the first cluster center, the second cluster center, and the third cluster center, cluster it into the cluster with the smallest distance, until the cluster centers converge, resulting in multiple clusters. Output the cluster label of each user and the center vector of each cluster.

6. The method according to any one of claims 4, characterized in that, The method further includes: For the user with high-quality call, a first network optimization suggestion will be sent to the client corresponding to the user with high-quality call, wherein the first network optimization suggestion is used to suggest that the user maintain the current network configuration; For the user with high call quality, a second network optimization suggestion is sent to the client corresponding to the user with high call quality. The second network optimization suggestion is used to suggest that the user use a more stable network configuration than the current network, or to suggest that the user avoid switching networks during the call. For users with low call quality, a third network optimization suggestion is sent to the corresponding client of the user with low call quality. The third network optimization suggestion is used to suggest that the user use a network configuration with a stronger network signal than the current network, or to suggest that the user upgrade the client version. For the user with the abnormal call, a fourth network optimization suggestion is sent to the corresponding client of the user with the abnormal call. The fourth network optimization suggestion is used to suggest that the user change the current network configuration, release the background resources of the client device, and start the jitter buffer mechanism of the client device.

7. A call quality detection device, characterized in that, The device includes: The user call information acquisition module is used to acquire the MOS value, packet loss rate, average jitter, average latency, maximum jitter, peak packet loss rate, codec type, network type, and call duration of each call made by the user within a preset historical time period. The first data calculation module is used to calculate, for each user, the historical average MOS value, historical MOS standard deviation, historical MOS difference ratio, historical average packet loss rate, historical maximum packet loss rate, historical packet loss rate peak value, historical jitter, historical maximum jitter, historical average latency, historical Wi-Fi ratio, historical cellular network ratio, and historical wired network ratio within the preset historical time period, based on the single call MOS value, single call packet loss rate, single call average jitter, single call average latency ... The user feature vector construction module is used to construct user feature vectors based on the first data set; The clustering analysis module is used to analyze the user feature vector using the K-means clustering algorithm and the DBSCAN clustering algorithm. The K-means clustering algorithm is used to cluster users into multiple clusters with different call quality levels, and the DBSCAN clustering algorithm is used to identify users with abnormal calls based on a subset of key features extracted from the user feature vectors. The subset of key features includes the following indicators: the proportion of historical MOS differences, the historical maximum packet loss rate, the historical maximum jitter, and the historical average latency.

8. The apparatus according to claim 7, characterized in that, The clustering analysis module includes: The feature matrix construction submodule is specifically used to assemble the user feature vectors of each user into a feature matrix. The K-means analysis submodule is specifically used to cluster all users based on the feature matrix using the K-means clustering algorithm, and output the cluster label of each user and the center vector of each cluster. The clustering submodule is specifically used to divide users into multiple clusters based on the cluster labels. Users within the same cluster have similar long-term call quality characteristics, while different clusters correspond to different typical call quality levels. The center vector of the cluster is used to characterize the typical call quality characteristics of users in that cluster.

9. An electronic device, characterized in that, Includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the steps of the method as described in any one of claims 1 to 6.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program. When the computer program is executed by a processor, it implements the steps of the method as described in any one of claims 1 to 6.