A voiceprint data processing method and system
By iteratively updating and adjusting the code word positions, the problem of large voiceprint recognition errors in existing technologies has been solved, achieving more accurate voiceprint data recognition results.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- GUANGZHOU JIUSI INTELLIGENT TECH CO LTD
- Filing Date
- 2026-05-11
- Publication Date
- 2026-07-14
AI Technical Summary
In existing technologies, vector quantization clustering algorithms cannot accurately reflect the voiceprint speech features of different speakers, resulting in large errors when recognizing cross-groups and failing to form an accurate codebook to describe the features in the speech data.
By calculating the sample density and clustering degree of speech data points, the codeword positions are iteratively updated to tend towards higher density areas, and a secondary adjustment is made to ensure uniform codeword distribution. A global codebook is constructed to reflect the clustering results of different types of feature vectors.
It improves the accuracy of voiceprint data recognition, reduces quantization error, ensures that codebook resources match feature distribution, and achieves more comprehensive and accurate matching results.
Smart Images

Figure CN122392541A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of data processing technology, and in particular to a method and system for voiceprint data processing. Background Technology
[0002] Voiceprints are determined by the physiological structure of the human vocal organs and possess high individual specificity. As an important branch of biometric technology, voiceprint recognition achieves identity verification by analyzing individual characteristics in human speech and can be applied in fields such as security, finance, and intelligent interaction. Accurate identification and matching of voiceprint data is the core prerequisite for ensuring the effectiveness of this technology. Insufficient identification and matching accuracy may lead to misauthorization (such as an imposter passing voiceprint verification) or the rejection of legitimate users (such as voiceprint changes after a cold causing verification failure).
[0003] In the process of extracting and identifying a speaker's voiceprint data, existing technologies mostly use the Vector Quantization (VQ) clustering algorithm to randomly split high-dimensional speech feature vectors into a limited number of codewords, forming a codebook and performing recognition and matching to determine the speaker's identity corresponding to the voiceprint data.
[0004] However, the speech features of different groups may have a multimodal distribution. The codewords in the randomly constructed codebook cannot be classified specifically based on the speech feature data in the training dataset. They may be concentrated in a local area of the data distribution, which may result in a large error when recognizing across groups.
[0005] Therefore, how to determine the position of each codeword based on the distribution characteristics of speech data, so as to accurately form a codebook that can accurately describe the features in the speech data, is a problem that urgently needs to be solved. Summary of the Invention
[0006] To address the technical problem of determining the position of each codeword based on the distribution characteristics of speech data, thereby accurately forming a codebook that can accurately describe the features in the speech data, this invention provides a voiceprint data processing method and system.
[0007] In a first aspect, the present invention provides a voiceprint data processing method, which adopts the following technical solution: A method for processing voiceprint data includes the following steps: The process involves: acquiring speech data points and the feature dimensions of MFCC from the speaker dataset; calculating the sample density of a speech data point based on the number of speech data points in its preset neighborhood, the distance between each neighboring speech data point and the given speech data point, and the bandwidth of the global Gaussian kernel density function; determining the position of each codeword from the speech data points based on the range of each feature dimension; moving a codeword to the location with the maximum sample density in its neighborhood if no other codeword is found there; and repeating this process until the codewords stop moving, thus obtaining the iteration termination position of each codeword; calculating the clustering degree of a codeword based on the distance between its iteration termination positions and other codewords; moving the codewords based on the comparison between the clustering degree and the clustering threshold to obtain the target position of the codewords in the speaker dataset; and obtaining the speaker recognition result based on the matching result between the speech data to be recognized and the target position of the codewords in the speaker dataset.
[0008] This invention constructs codewords in a codebook for both the voiceprint dataset and the speech data to be recognized. This allows for mapping the speech features of different speakers to the same codebook for matching, thereby accurately obtaining the speaker's voiceprint recognition results. During codebook construction, this invention considers that the random codeword construction method used in conventional VQ clustering algorithms cannot accurately reflect the voiceprint speech features of different speakers. Therefore, this invention iteratively updates the position of the initial codewords by calculating their density distribution, causing the codewords to tend towards higher density areas, thus obtaining the iteration termination position and accurately reflecting the clustering results of different types of feature vectors. After iteratively updating the codewords to higher density areas, this invention also considers that codeword clustering in local regions may lead to duplicate classification results for different codewords. Therefore, this invention further adjusts the codeword positions a second time based on the clustering situation at the iteration termination position, forcing codeword dispersion to match the codebook resources with the feature distribution, reducing quantization errors, and thus obtaining more comprehensive and accurate matching results, effectively improving the accuracy of voiceprint data recognition results.
[0009] According to a voiceprint data processing method provided by the present invention, the step of obtaining speech data points and MFCC feature dimensions in the voiceprint dataset includes: collecting speech data frames from the speech data of multiple speakers, taking each speech data frame as a speech data point, and constructing a voiceprint dataset; extracting MFCC features from all speech data points to obtain feature values of each feature dimension of the speech data points, wherein the voiceprint dataset includes at least the speech data of the speaker corresponding to the speech data to be identified.
[0010] According to a voiceprint data processing method provided by the present invention, a method for obtaining the neighborhood of voice data points includes: calculating the neighborhood size of voice data points based on the standard deviation of each feature dimension of all voice data points, wherein the neighborhood size is positively correlated with the standard deviation of each feature dimension.
[0011] This invention obtains the standard deviation of each feature dimension in the voiceprint dataset, and can accurately calculate the neighborhood size of each speech data point in the voiceprint dataset based on the discreteness of each feature dimension in the voiceprint dataset, thereby accurately reflecting the density distribution around the speech data point.
[0012] According to a voiceprint data processing method provided by the present invention, the calculation of the sample density of the voice data point includes: calculating the sample density of the voice data point based on the number of voice data points in the neighborhood of the voice data point, the bandwidth of a preset global Gaussian kernel density function, and the distance between the voice data point and each voice data point in its neighborhood; the sample density is negatively correlated with the distance between the voice data point and each voice data point in its neighborhood, and positively correlated with the number of voice data points in the neighborhood and the bandwidth of the preset global Gaussian kernel density function.
[0013] According to a voiceprint data processing method provided by the present invention, the step of determining the position of each codeword from the speech data points based on the range of each feature dimension includes: uniformly acquiring the feature values of a preset number of codewords in each feature dimension within the range of each feature dimension, randomly combining the feature values of each feature dimension to obtain the feature values of each feature dimension of the codeword, and forming the position of the codeword.
[0014] This invention obtains the position of codewords through random combinations without replacement, so that the obtained codeword positions contain as many random cases as possible, thereby reducing the computational load of subsequent position iteration updates and improving operating efficiency.
[0015] According to a voiceprint data processing method provided by the present invention, the step of calculating the clustering degree of a codeword based on the distance between the codeword and the iteration termination position of other codewords includes: obtaining a preset number of observed codewords based on the distance between the codeword and the iteration termination position of other codewords; calculating the clustering degree of the codeword based on the distance and value between the codeword and its observed codewords and the range of each feature dimension of all codewords; the clustering degree is negatively correlated with the distance and value between the codeword and its observed codewords, and positively correlated with the range of each feature dimension of all codewords.
[0016] This invention provides a precise method for calculating the clustering degree of codewords. By analyzing the ratio between the distance between each codeword and its surrounding observed codewords and the average distance between codewords, the local clustering of the iteration termination position of each codeword can be accurately obtained. This allows for subsequent accurate secondary adjustments to the iteration termination position of the codewords, enabling the target position of the obtained codewords to more accurately reflect the actual distribution of the voiceprint dataset.
[0017] According to a voiceprint data processing method provided by the present invention, the step of moving codewords based on the comparison result of the clustering degree of codewords and the clustering threshold to obtain the target position of codewords in the voiceprint dataset includes: if the clustering degree of any codeword is greater than the clustering threshold, then obtaining the codewords corresponding to the maximum and minimum clustering degrees, taking the codeword closest to the codeword corresponding to the maximum clustering degree as the codeword to be moved, moving it around the codeword corresponding to the minimum clustering degree, and recalculating the codeword clustering degree to determine the comparison result of the clustering threshold; otherwise, obtaining the target position of codewords in the voiceprint dataset.
[0018] This invention gradually moves other codewords around codewords in areas with high clustering to areas with lower clustering, making the distribution of codewords more uniform and closer to the real distribution, ensuring that each codeword represents a real feature subcluster, and effectively avoiding the possibility of local optima.
[0019] According to a voiceprint data processing method provided by the present invention, the step of taking the codeword closest to the codeword corresponding to the maximum clustering degree as the codeword to be moved and moving it to the vicinity of the codeword corresponding to the minimum clustering degree includes: obtaining the maximum distance between the codeword corresponding to the minimum clustering degree and its observed codeword as the radius of the codeword corresponding to the minimum clustering degree; calculating the sum of distances between each speech data point within the radius and each observed codeword of the codeword corresponding to the minimum clustering degree; and moving the codeword to be moved to the position of the speech data point corresponding to the maximum sum of distances.
[0020] According to a voiceprint data processing method provided by the present invention, the step of obtaining a voiceprint data recognition result based on the matching result of the target position of the codeword in the voiceprint dataset and the speech data to be recognized includes: taking the target position of each codeword in the voiceprint dataset as a global codebook; using the global codebook to convert the speech data of each speaker in the voiceprint dataset and the speech data to be recognized into codeword index sequences respectively, so as to construct histograms respectively; obtaining the speaker corresponding to the minimum mean square error of the histogram of the speech data to be recognized and the histogram of the speech data of each speaker in the voiceprint dataset, as the speaker to which the speech data to be recognized belongs.
[0021] Secondly, the present invention provides a voiceprint data processing system, which adopts the following technical solution: A voiceprint data processing system includes a processor and a memory, wherein the memory stores computer program instructions, and when the computer program instructions are executed by the processor, the aforementioned voiceprint data processing method is implemented.
[0022] By adopting the above technical solution, a computer program is generated from the above voiceprint data processing method and stored in a memory so that it can be loaded and executed by a processor. This allows for the creation of a terminal device based on the memory and processor, making it convenient to use.
[0023] The present invention has the following technical effects: Based on the above technical solution, the present invention provides a voiceprint data processing method and system. By constructing codewords in a codebook for the voiceprint dataset and the speech data to be recognized, the speech features of different speakers can be mapped to the same codebook for matching, thereby accurately obtaining the speaker's voiceprint recognition result. In the process of constructing the codebook, the present invention considers that the random codeword construction method used by conventional VQ clustering algorithms cannot accurately reflect the voiceprint speech features of different speakers. Therefore, the present invention iteratively updates the position of the initial codewords by calculating the density distribution of the initial codewords, causing the codewords to tend towards higher density areas, thus obtaining the iteration termination position of the codewords, thereby accurately reflecting the clustering results of different types of feature vectors. After iteratively updating the codewords to higher density areas, the present invention also considers that the clustering of codewords in local areas may lead to duplicate classification results for different codewords. Therefore, the present invention further adjusts the codeword positions a second time according to the clustering situation of the iteration termination position of the codewords, forcing codeword dispersion, making the codebook resources match the feature distribution, reducing quantization error, thereby obtaining matching results more comprehensively and accurately, and effectively improving the accuracy of voiceprint data recognition results. Attached Figure Description
[0024] Figure 1 This is a flowchart illustrating a voiceprint data processing method provided in an embodiment of the present invention. Detailed Implementation
[0025] The technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are some embodiments of the present invention, but not all embodiments.
[0026] This invention discloses a voiceprint data processing method. In the process of voiceprint recognition based on VQ clustering algorithm, the method analyzes the density distribution of codewords and iteratively updates the codeword positions, so that the final codebook can accurately reflect the characteristics of the training dataset as a global codebook, thereby effectively improving the accuracy of voiceprint data recognition.
[0027] Please see details. Figure 1 As shown, Figure 1This is a flowchart illustrating a voiceprint data processing method provided in an embodiment of the present invention. The method specifically includes the following steps: S1: Obtain the speech data points and MFCC feature dimensions from the voiceprint dataset.
[0028] For example, in an embodiment of the present invention, obtaining speech data points and MFCC feature dimensions in a voiceprint dataset includes: collecting speech data frames from the speech data of multiple speakers, taking each speech data frame as a speech data point, and constructing a voiceprint dataset; extracting MFCC features from all speech data points to obtain feature values of each feature dimension of the speech data points, wherein the voiceprint dataset includes at least the speech data of the speaker corresponding to the speech data to be identified.
[0029] Specifically, the speech data of multiple speakers to be identified is collected, and 300 speech data frames for each speaker are generated with a frame length of 25ms and a frame shift of 10ms. These frames are recorded as the training data for that speaker. The collection of training data from several speakers is used to acquire the speech data frames.
[0030] The frame length, frame shift, number of speakers, etc., can be set according to actual needs, and the embodiments of the present invention do not impose too many restrictions here.
[0031] It should be noted that each speaker has their own unique voiceprint features. MFCC extracts features from all speech data points and performs feature normalization. This process converts the original speech signal into a sequence of feature vectors suitable for machine recognition, in order to extract feature parameters that can represent information such as speaker identity, speech content, or emotion. This allows subsequent classification of voiceprint feature values through VQ clustering, thereby constructing codewords in the global codebook. All speech feature vectors can be approximated by codewords with minimum error, and the number of feature dimensions for each extracted speech data point is the same.
[0032] The feature dimension of MFCC can be set to 39 dimensions, which can be set according to actual needs.
[0033] Understandably, conventional VQ clustering for voiceprint feature classification uses the splitting of single codewords to construct codewords, which cannot perform targeted analysis based on the distribution of the training data. However, during codeword construction, if the final iteration position of a codeword is located in a cluster of voiceprint data, it indicates that the codeword's surroundings can form a cluster, thus achieving accurate classification. Therefore, this embodiment of the invention can preset the initial position of the codewords and iteratively update the codeword positions by analyzing the density distribution around each codeword, so that the codewords eventually reach the point of maximum density, thereby accurately constructing the codebook of voiceprint features in the voiceprint dataset, and then proceeding to the following steps.
[0034] S2: Calculate the sample density of the speech data point based on the number of speech data points in the preset neighborhood of the speech data point, the distance between each speech data point in the neighborhood and the speech data point, and the bandwidth of the global Gaussian kernel density function.
[0035] The distance can be Euclidean distance.
[0036] It should be noted that the neighborhood of each speech data point needs to effectively represent the density distribution of speech data points around it. If the neighborhood is too large, it may contain a large number of dissimilar spectral features, leading to an overestimation of density. Conversely, if the neighborhood is too small, it may fail to capture sufficient temporal variation patterns, resulting in an underestimation of density.
[0037] Based on this, in the embodiments of the present invention, when obtaining the neighborhood size of a speech data point, the neighborhood size can be calculated according to the data dispersion of each dimension of all speech data points in the speaker dataset. If the data dispersion of each dimension of the speech data point is large, the neighborhood of the corresponding speech data point should also be larger to ensure that more temporal change patterns are included.
[0038] For example, in an embodiment of the present invention, the neighborhood size of a speech data point is calculated based on the standard deviation of each feature dimension of all speech data points. The neighborhood size is positively correlated with the standard deviation of each feature dimension, specifically including: ; The neighborhood size of the speech data points. The number of feature dimensions for the speech data points. Let be the standard deviation of the j-th feature dimension for all speech data points.
[0039] In the above formula, the larger the standard deviation of the j-th feature dimension of all speech data points, the higher the data dispersion of that dimension, and the larger the corresponding neighborhood should be.
[0040] The scaling factor, by reducing the neighborhood radius, forces a focus on local high-density regions, ensuring that density calculations only reflect the true local clustering characteristics, rather than global dispersion.
[0041] Specifically, when constructing the neighborhood of a speech data point, the current speech data point can be used as the center, and the neighborhood of the current speech data point can be constructed with the size of the neighborhood as the radius. Other speech data points within the radius of the current speech data point are the speech data points in the neighborhood of the current speech data point.
[0042] For example, the sample density of a speech data point is calculated based on the number of speech data points in its neighborhood, the bandwidth of a preset global Gaussian kernel density function, and the distance between the speech data point and each speech data point in its neighborhood. The sample density is negatively correlated with the distance between the speech data point and each speech data point in its neighborhood, and positively correlated with the number of speech data points in its neighborhood and the bandwidth of the preset global Gaussian kernel density function.
[0043] For example, in an embodiment of the present invention, calculating the sample density of speech data points includes: ; For the first Sample density of each speech data point For the first The number of speech data points in the neighborhood of each speech data point For the first The i-th speech data point and its neighborhood i-th The distance between each voice data point The average number of speech data points in the neighborhood of all speech data points. The bandwidth of the preset global Gaussian kernel density function. It is an exponential function with base e.
[0044] in, , denoted as the total number of speech data points in the speaker dataset. The width of the Gaussian kernel determines the range of contribution of each sample point to the density estimation. Its exponential decay characteristic makes the contribution of nearest neighbors to the density much greater than that of distant neighbors. By adjusting the bandwidth, continuous regions of similar speech can be regarded as high-density regions, and dissimilar speech can be regarded as low-density regions, so that different speech patterns can be effectively distinguished and the codeword positions can be accurately determined.
[0045] In the above formula, the first The i-th speech data point and its neighborhood i-th The smaller the distance between each voice data point, the better. The larger the ratio of the number of speech data points in the neighborhood of a given speech data point to the average number of speech data points in the neighborhoods of all speech data points, the greater the probability that the number of speech data points in the neighborhood of the given speech data point is. The more speech data points in the neighborhood of a given speech data point and the smaller their distance, the better the effect of the first speech data point's effect. The higher the density of speech data points in the neighborhood of a speech data point, the greater the corresponding sample density. Used to normalize the sum of sample densities.
[0046] The sample density of each speech data point can be obtained based on the above formula.
[0047] Understandably, during the position iteration process based on the density distribution of codewords, if the density of speech data points in the codeword's neighborhood is low while the density at the codeword's location is high, it indicates that the codeword is in a high-density area, and the codeword can be retained in that high-density location. Conversely, if the density of speech data points in the codeword's neighborhood is high while the density at the codeword's location is low, and there are no other codewords in the high-density area, the codeword can be moved to a high-density region in its neighborhood. This allows the codewords to gradually approach the maximum density in each iteration, thus obtaining the iteration termination position for each codeword, and continuing with the following steps.
[0048] S3: Determine the position of each codeword from the speech data points based on the range of each feature dimension. In response to the absence of other codewords at the maximum sample density in the codeword's neighborhood, move the codeword to the maximum sample density in the neighborhood. Continue to obtain the maximum sample density in the neighborhood of the moved codeword, and repeat this process until the position of each codeword stops moving, thus obtaining the iteration termination position of each codeword.
[0049] For example, in an embodiment of the present invention, determining the position of each codeword from speech data points based on the range of each feature dimension includes: uniformly acquiring the feature values of a preset number of codewords for each feature dimension within the range of each feature dimension, randomly combining the feature values of each feature dimension to obtain the feature values of each feature dimension of the codeword, and forming the position of the codeword.
[0050] The number of codewords can be preset to 256, but the specific number can be set according to actual needs. The random combination method is a non-replacement random combination.
[0051] It is understood that the neighborhood construction method for codewords is similar to that for speech data points, and will not be elaborated upon here in this embodiment of the invention. Some codewords may contain other codewords in their neighborhood; therefore, the sample density of the codewords needs to be calculated before performing density comparisons.
[0052] For example, in an embodiment of the present invention, when calculating the sample density of codewords, please refer to the following relationship: ; For the first Sample density of each codeword For the first The number of speech data points in the neighborhood of each codeword For the first The i-th speech data point and its neighborhood i-th The distance between each voice data point The average number of speech data points in all codeword neighborhoods. The bandwidth of the preset global Gaussian kernel density function. It is an exponential function with base e, where e is the natural constant.
[0053] Based on the above formula, the sample density of each codeword can be obtained. The calculation principle is similar to that of the sample density calculation principle of speech data points, and will not be elaborated here in the embodiments of the present invention.
[0054] It is understandable that when the positions of all codewords stop moving, it indicates that all codewords are located in a high-density region. This embodiment of the invention iteratively updates the positions of the codewords, ensuring that the iteration termination position of each codeword is located where the voiceprint dataset is clustered, thereby forming multiple clusters and achieving accurate classification.
[0055] However, if clustering is performed directly based on the iteration termination position obtained from the above steps, there may be cases where codewords are highly clustered in one region while there are no codewords in other regions. Based on this, the embodiments of the present invention can make secondary adjustments to the iteration termination position of the codewords according to the degree of clustering, so that the codewords in the codebook can cover all speech data points in the voiceprint dataset as much as possible, thereby better fitting the probability density distribution of the original speech data and reducing distortion in the quantization process, i.e., performing the following steps.
[0056] S4: Calculate the clustering degree of the codeword based on the distance between the codeword and the termination position of other codeword iterations; move the codeword according to the comparison result of the clustering degree of the codeword and the clustering threshold to obtain the target position of the codeword in the voiceprint dataset.
[0057] It is understandable that, regarding the distribution of codewords, if codewords are clustered in some areas, the classification results may be duplicated. Conversely, for areas with low codeword clustering, there may be a lack of codewords for classification reference. Therefore, it is necessary to adjust the iteration termination position of codewords according to the degree of codeword clustering.
[0058] For example, in an embodiment of the present invention, calculating the clustering degree of a codeword based on the distance between the codeword and the iteration termination position of other codewords includes: obtaining a preset number of observed codewords based on the distance between the codeword and the iteration termination position of other codewords; calculating the clustering degree of the codeword based on the distance and value between the codeword and its observed codewords and the range of each feature dimension of all codewords; the clustering degree is negatively correlated with the distance and value between the codeword and its observed codewords, and positively correlated with the range of each feature dimension of all codewords.
[0059] The number of observation codewords can be set to 3; the specific number of observation codewords for each codeword can be set according to actual needs, and this embodiment of the invention does not impose too many restrictions here.
[0060] Specifically, when obtaining the observed codeword of a codeword based on the distance between the codeword and the iteration termination position of other codewords, the Euclidean distances between the current codeword and the iteration termination positions of other codewords can be obtained in ascending order, with the Euclidean distances increasing sequentially from left to right; other codewords corresponding to a preset number of Euclidean distances are obtained starting from the leftmost position based on a preset number, and used as the observed codewords of the current codeword.
[0061] Here's an example illustrating the steps for obtaining the observed codewords: If the Euclidean distances between the current codeword and other codewords are arranged in ascending order as {1.1, 1.2, 1.3, 1.4}, then the other codewords corresponding to 1.1, 1.2, and 1.3 can be used as the observed codewords for the current codeword. In other words, the observed codewords are those that are closest to the current codeword.
[0062] For example, in an embodiment of the present invention, calculating the clustering degree of codewords includes: ; Let i be the clustering degree of the i-th codeword. The total number of characters. The number of feature dimensions for the speech data points. Let j be the range of the j-th feature dimension of all codewords. Let be the sum of the distances between the i-th codeword and its observed codewords.
[0063] In the above formula, the range represents the data range of that feature dimension. This is the ratio of the range to the total number of codewords, i.e., the average distance between codewords. It involves obtaining the sum of the average distances of the three observed codewords and the ratio of the sum of the distances between the i-th codeword and its observed codewords. The larger the ratio, the more clustered the surrounding codewords are, and the higher the degree of clustering of the codeword.
[0064] The degree of clustering for each codeword can be obtained based on the above formula.
[0065] For example, in an embodiment of the present invention, moving codewords according to the comparison result of the clustering degree of codewords and the clustering threshold to obtain the target position of codewords in the voiceprint dataset includes: if the clustering degree of any codeword is greater than the clustering threshold, then obtaining the codewords corresponding to the maximum and minimum clustering degrees, taking the codeword closest to the codeword corresponding to the maximum clustering degree as the codeword to be moved, moving it around the codeword corresponding to the minimum clustering degree, and recalculating the codeword clustering degree to determine the clustering threshold comparison result; otherwise, obtaining the target position of codewords in the voiceprint dataset.
[0066] The aggregation threshold can be set to 1.2; the specific aggregation threshold can be set according to actual needs.
[0067] It is understandable that if the degree of clustering at the termination position of any codeword iteration is higher than the clustering threshold, it means that the degree of clustering of the codeword at this point is too high. Other codewords that are closer to this codeword need to be moved to areas with lower clustering to make the distribution of codewords more uniform and more in line with the actual data distribution.
[0068] For example, in an embodiment of the present invention, the codeword closest to the codeword corresponding to the maximum clustering degree is taken as the codeword to be moved and moved to the vicinity of the codeword corresponding to the minimum clustering degree. This includes: obtaining the maximum distance between the codeword corresponding to the minimum clustering degree and its observed codeword as the radius of the codeword corresponding to the minimum clustering degree; calculating the sum of distances between each speech data point within the radius and each observed codeword of the codeword corresponding to the minimum clustering degree; and moving the codeword to be moved to the position of the speech data point corresponding to the maximum sum of distances.
[0069] In this way, by continuously iterating and adjusting the iteration termination position of the codewords until the degree of aggregation at all codewords is no greater than the aggregation threshold, the final target position of all codewords can be obtained, thereby accurately obtaining the codebook in the voiceprint dataset.
[0070] S5: Based on the matching results between the speech data to be recognized and the target positions of the codewords in the voiceprint dataset, the voiceprint data recognition result is obtained.
[0071] It should be noted that the original features of the speech to be recognized must be converted into codeword indices in the codebook through quantization before they can be compared with the histogram statistical model of the voiceprint dataset. Therefore, in this embodiment of the invention, the speech data to be recognized can be quantized before obtaining the matching result.
[0072] For example, in an embodiment of the present invention, the voiceprint data recognition result is obtained based on the matching result between the target position of the codeword in the voiceprint dataset and the voiceprint data to be recognized, including: taking the target position of each codeword in the voiceprint dataset as a global codebook, using the global codebook to convert the voice data of each speaker in the voiceprint dataset and the voice data to be recognized into codeword index sequences respectively, so as to construct histograms respectively; obtaining the speaker corresponding to the minimum mean square error between the histogram of the voice data to be recognized and the histogram of the voice data of each speaker in the voiceprint dataset, as the speaker to which the voice data to be recognized belongs.
[0073] It is understandable that although the speech features of different speakers are mapped to the same codebook, the frequency distribution or sequence pattern of the codewords used are different, so there will be differences in the constructed histograms. The final matching result, i.e., the voiceprint data recognition result, is the histogram of the speech data to be recognized and the histogram corresponding to the minimum mean square error in the voiceprint dataset.
[0074] As can be seen, in this embodiment of the invention, when obtaining the voiceprint data recognition result, the speech data points and the feature dimensions of MFCC in the voiceprint dataset can be obtained; the sample density of the speech data point is calculated based on the number of speech data points in the preset neighborhood of the speech data point, the distance between each speech data point in the neighborhood and the speech data point, and the bandwidth of the global Gaussian kernel density function; the position of each codeword is determined from the speech data points based on the range of each feature dimension; in response to the absence of other codewords at the maximum sample density in the neighborhood of the codeword, the codeword is moved to the maximum sample density in the neighborhood, and the maximum sample density in the neighborhood of the moved codeword is obtained again, and this process is repeated until the position of each codeword stops moving, thus obtaining the iteration termination position of each codeword; the clustering degree of the codeword is calculated based on the distance between the codeword and the iteration termination position of other codewords; the codeword is moved based on the comparison result of the clustering degree of the codeword and the clustering threshold to obtain the target position of the codeword in the voiceprint dataset; and the voiceprint data recognition result is obtained based on the matching result between the speech data to be recognized and the target position of the codeword in the voiceprint dataset, which effectively improves the accuracy of voiceprint data recognition.
[0075] This invention also discloses a voiceprint data processing system, including a processor and a memory. The memory stores computer program instructions, which, when executed by the processor, implement a voiceprint data processing method provided by this invention.
[0076] The system also includes other components well known to those skilled in the art, such as communication buses and communication interfaces, the settings and functions of which are known in the art and will not be described in detail here.
[0077] In this invention, the aforementioned memory can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0078] The above are all preferred embodiments of the present invention and are not intended to limit the scope of protection of the present invention. Therefore, all equivalent changes made in accordance with the structure, shape and principle of the present invention should be covered within the scope of protection of the present invention.
Claims
1. A method for processing voiceprint data, characterized in that, include: Obtain the speech data points and MFCC feature dimensions from the speakerprint dataset; The sample density of a speech data point is calculated based on the number of speech data points in the preset neighborhood of the speech data point, the distance between each speech data point in the neighborhood and the speech data point, and the bandwidth of the global Gaussian kernel density function. The position of each codeword is determined from the speech data points based on the range of each feature dimension. In response to the fact that there is no other codeword at the maximum sample density in the neighborhood of the codeword, the codeword is moved to the maximum sample density in the neighborhood. The maximum sample density in the neighborhood of the moved codeword is then obtained. This process is repeated until the position of each codeword stops moving, and the iteration termination position of each codeword is obtained. The degree of clustering of a codeword is calculated based on the distance between the codeword and the termination position of its iteration with other codewords; Based on the comparison between the clustering degree of the codewords and the clustering threshold, the codewords are moved to obtain the target position of the codewords in the voiceprint dataset; The voiceprint recognition result is obtained based on the matching result between the speech data to be recognized and the target position of the codeword in the voiceprint dataset.
2. The voiceprint data processing method according to claim 1, characterized in that, The acquisition of speech data points and MFCC feature dimensions from the speakerprint dataset includes: Speech data frames are collected from the speech data of multiple speakers, and each speech data frame is used as a speech data point to construct a voiceprint dataset. MFCC features are extracted from all speech data points to obtain the feature values of each feature dimension of the speech data points. The voiceprint dataset includes at least the speech data of the speaker corresponding to the speech data to be identified.
3. The voiceprint data processing method according to claim 1, characterized in that, Methods for obtaining the neighborhood of voice data points include: The neighborhood size of each speech data point is calculated based on the standard deviation of each feature dimension. The neighborhood size is positively correlated with the standard deviation of each feature dimension.
4. The voiceprint data processing method according to claim 1, characterized in that, The calculation of the sample density of the speech data point includes: The sample density of a speech data point is calculated based on the number of speech data points in its neighborhood, the bandwidth of the preset global Gaussian kernel density function, and the distance between the speech data point and each speech data point in its neighborhood. The sample density is negatively correlated with the distance between the speech data point and each speech data point in its neighborhood, and positively correlated with the number of speech data points in the neighborhood and the bandwidth of the preset global Gaussian kernel density function.
5. The voiceprint data processing method according to claim 1, characterized in that, The method of determining the position of each codeword from the speech data points based on the range of each feature dimension includes: Within the range of each feature dimension, the feature values of the preset number of codewords for each feature dimension are uniformly obtained. The feature values of each feature dimension are randomly combined to obtain the feature values of each feature dimension of the codeword, and the position of the codeword is formed.
6. The voiceprint data processing method according to claim 1, characterized in that, The calculation of the clustering degree of a codeword based on the distance between the codeword and the termination position of its iteration with other codewords includes: The codeword is observed by a predetermined number of codewords based on the distance between the codeword and the termination position of the iteration of other codewords. The clustering degree of the codeword is calculated based on the distance and value between the codeword and its observed codewords and the range of each feature dimension of all codewords. The clustering degree is negatively correlated with the distance and value between the codeword and its observed codewords and positively correlated with the range of each feature dimension of all codewords.
7. The voiceprint data processing method according to claim 1, characterized in that, The step of moving codewords based on the comparison result of the clustering degree and the clustering threshold to obtain the target position of codewords in the voiceprint dataset includes: If the clustering degree of any codeword is greater than the clustering threshold, the codewords corresponding to the maximum and minimum clustering degrees are obtained. The codeword closest to the codeword corresponding to the maximum clustering degree is taken as the codeword to be moved and moved to the vicinity of the codeword corresponding to the minimum clustering degree. The clustering degree of the codewords is recalculated and the clustering threshold comparison result is determined. Otherwise, the target position of the codeword in the voiceprint dataset is obtained.
8. The voiceprint data processing method according to claim 7, characterized in that, The step of selecting the codeword closest to the codeword with the maximum clustering degree as the codeword to be moved, and moving it to the vicinity of the codeword with the minimum clustering degree, includes: The maximum distance between the codeword corresponding to the minimum clustering degree and its observed codeword is obtained as the radius of the codeword corresponding to the minimum clustering degree. The sum of distances between each speech data point within the radius and each observed codeword of the codeword corresponding to the minimum clustering degree is calculated. The codeword to be moved is then moved to the position of the speech data point corresponding to the maximum sum of distances.
9. The voiceprint data processing method according to claim 1, characterized in that, The process of obtaining voiceprint data recognition results based on the matching results between the speech data to be recognized and the target positions of codewords in the voiceprint dataset includes: The target position of each codeword in the voiceprint dataset is used as the global codebook. The global codebook is used to convert the speech data of each speaker in the voiceprint dataset and the speech data to be recognized into codeword index sequences, so as to construct histograms respectively. The speaker corresponding to the minimum mean square error of the histogram of the speech data to be recognized and the histogram of the speech data of each speaker in the speaker data dataset is identified as the speaker to which the speech data to be recognized belongs.
10. A voiceprint data processing system, characterized in that, include: A processor and a memory, the memory storing computer program instructions that, when executed by the processor, implement a voiceprint data processing method according to any one of claims 1-9.