Voice signal noise reduction method and device, storage medium and electronic equipment
By calculating the steering vector and covariance matrix of the wake-up speech signal, a spatial filter is generated, which solves the problem of poor speech signal denoising effect in high reverberation and low signal-to-noise ratio environments and achieves more efficient speech signal denoising.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SHENZHEN TCL NEW-TECH CO LTD
- Filing Date
- 2022-12-06
- Publication Date
- 2026-07-10
AI Technical Summary
Existing speech noise reduction methods often result in poor speech noise reduction performance due to incorrect sound source localization or insufficient utilization of wake-up speech signal information in environments with high reverberation and low signal-to-noise ratio.
By calculating the steering vector and covariance matrix of the wake-up speech signal, a spatial filter is generated. The steering vector, covariance matrix of the speech signal, and orthogonal basis vectors are used for spatial filtering to generate the first and second beams. Adaptive filtering is then used to obtain the denoised speech signal.
By making full use of wake-up voice signal information, the reliability and effectiveness of voice signal noise reduction are improved, and the noise reduction performance of voice signals is effectively enhanced.
Smart Images

Figure CN117133300B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, specifically to a method, apparatus, storage medium, and electronic device for denoising speech signals. Background Technology
[0002] Existing speech signal denoising methods include some that perform sound source localization on the wake-up speech signal and use the localization information to further denoise the speech signal to be denoised. However, sound source localization is prone to errors in environments with high reverberation and low signal-to-noise ratio, resulting in poor speech signal denoising performance. Other methods extract simple information from the wake-up speech signal to denoise the speech signal to be denoised, but do not make full use of the signal information of the wake-up speech signal, which also leads to poor speech signal denoising performance. Summary of the Invention
[0003] This application provides a solution that can effectively improve the noise reduction effect of voice signals.
[0004] The embodiments of this application provide the following technical solutions:
[0005] According to one embodiment of this application, a speech signal denoising method includes: calculating a steering vector based on a transfer function for a wake-up speech signal, and calculating a speech signal covariance matrix for the wake-up speech signal; performing spatial filtering based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised, to generate a first beam; performing spatial filtering based on the steering vector, the speech signal covariance matrix, and the orthogonal basis vectors of the steering vector, to generate a second beam; and obtaining a denoised speech signal corresponding to the speech signal to be denoised based on the first beam and the second beam.
[0006] In some embodiments of this application, the step of calculating the steering vector based on the transfer function for the wake-up voice signal includes: obtaining the frequency domain signal of the wake-up voice signal at each frequency point; for each frequency point, calculating the multi-channel frequency point signal at each frequency point using the transfer function between the multi-channels to obtain the multi-channel values at each frequency point; and using the multi-channel values at each frequency point as vector elements at each frequency point to obtain the steering vector at each frequency point.
[0007] In some embodiments of this application, calculating the speech signal covariance matrix of the wake-up speech signal includes: obtaining the frequency point signals of the frequency domain signal of the wake-up speech signal at each frequency point; calculating the frequency point signals between each pair of channels at each frequency point to obtain the calculation results between each pair of channels at each frequency point; and using the calculation results between each pair of channels at each frequency point as matrix elements at each frequency point to obtain the speech signal covariance matrix at each frequency point.
[0008] In some embodiments of this application, the step of generating a first beam by performing spatial filtering based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised includes: calculating a spatial filter based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised to obtain a first spatial filter; and multiplying the frequency domain signal of the speech signal to be denoised with the first spatial filter to obtain the first beam.
[0009] In some embodiments of this application, the step of calculating a spatial filter based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised, to obtain a first spatial filter, includes: multiplying the reciprocal of the scattered noise field covariance matrix with the steering vector to obtain a first result; multiplying the conjugate transpose of the steering vector, the reciprocal of the scattered noise field covariance matrix, and the steering vector to obtain a second result; and dividing the first result by the second result to obtain the first spatial filter.
[0010] In some embodiments of this application, the step of generating a second beam by performing spatial filtering based on the steering vector, the speech signal covariance matrix, and the orthogonal basis vectors of the steering vector includes: merging the steering vector with the orthogonal basis vectors of the steering vector to obtain a steering matrix; calculating a spatial filter based on the steering matrix and the speech signal covariance matrix to obtain a second spatial filter; and multiplying the frequency domain signal of the speech signal to be denoised with the second spatial filter to obtain the second beam.
[0011] In some embodiments of this application, the step of calculating a spatial filter based on the steering matrix and the speech signal covariance matrix to obtain a second spatial filter includes: multiplying the reciprocal of the speech signal covariance matrix with the steering matrix to obtain a third result; multiplying the conjugate transpose of the steering matrix, the reciprocal of the speech signal covariance matrix, and the steering matrix to obtain a fourth result; and dividing the third result by the fourth result to obtain the second spatial filter.
[0012] In some embodiments of this application, obtaining the denoised speech signal corresponding to the speech signal to be denoised based on the first beam and the second beam includes: performing adaptive filtering based on the first beam and the second beam to obtain a filtered signal; and converting the filtered signal to the time domain to obtain the denoised speech signal corresponding to the speech signal to be denoised.
[0013] In some embodiments of this application, the step of performing adaptive filtering based on the first beam and the second beam to obtain the filtered signal includes: multiplying the historical buffer value of the second beam and the adaptive filter coefficients corresponding to the historical buffer value to obtain the adjusted second beam; and subtracting the adjusted second beam from the first beam to obtain the filtered signal.
[0014] According to one embodiment of this application, a speech signal noise reduction device includes: a wake-up speech processing module, configured to calculate the steering vector of the transfer function of the wake-up speech signal and calculate the covariance matrix of the wake-up speech signal; a first beamforming module, configured to perform spatial filtering based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised, to generate a first beam; a second beamforming module, configured to perform spatial filtering based on the steering vector, the speech signal covariance matrix, and the orthogonal basis vector of the steering vector, to generate a second beam; and a generation module, configured to obtain the denoised speech signal corresponding to the speech signal to be denoised based on the first beam and the second beam.
[0015] According to another embodiment of this application, a storage medium stores a computer program thereon, which, when executed by a computer's processor, causes the computer to perform the methods described in the embodiments of this application.
[0016] According to another embodiment of this application, an electronic device may include: a memory storing a computer program; and a processor reading the computer program stored in the memory to execute the methods described in the embodiments of this application.
[0017] According to another embodiment of this application, a computer program product or computer program includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the methods provided in the various optional implementations described in the embodiments of this application.
[0018] In this embodiment, a steering vector based on a transfer function is calculated for the wake-up speech signal, and a speech signal covariance matrix is calculated for the wake-up speech signal; spatial filtering is performed based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised to generate a first beam; spatial filtering is performed based on the steering vector, the speech signal covariance matrix, and the orthogonal basis vectors of the steering vector to generate a second beam; and the denoised speech signal corresponding to the speech signal to be denoised is obtained according to the first beam and the second beam.
[0019] In this way, the signal information of the wake-up voice signal can be fully utilized to reliably denoise the voice signal to be denoised, and the denoised voice signal corresponding to the voice signal to be denoised can be obtained, effectively improving the denoising effect of the voice signal. Attached Figure Description
[0020] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0021] Figure 1 A flowchart of a speech signal noise reduction method according to an embodiment of this application is shown.
[0022] Figure 2 A block diagram of a speech signal noise reduction apparatus according to an embodiment of this application is shown.
[0023] Figure 3 A block diagram of an electronic device according to an embodiment of this application is shown. Detailed Implementation
[0024] 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 without creative effort are within the scope of protection of this application.
[0025] Figure 1 A flowchart illustrating a speech signal noise reduction method according to an embodiment of this application is shown schematically. The subject performing this speech signal noise reduction method can be any device, such as a mobile phone, tablet computer, or computer.
[0026] like Figure 1 As shown, the speech signal noise reduction method may include steps S110 to S140.
[0027] Step S110: Calculate the steering vector based on the transfer function for the wake-up speech signal, and calculate the speech signal covariance matrix for the wake-up speech signal; Step S120: Perform spatial filtering based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised to generate a first beam; Step S130: Perform spatial filtering based on the steering vector, the speech signal covariance matrix, and the orthogonal basis vector of the steering vector to generate a second beam; Step S140: Obtain the denoised speech signal corresponding to the speech signal to be denoised based on the first beam and the second beam.
[0028] The wake-up voice signal is the voice signal corresponding to the voice that successfully wakes up the device, and the voice signal to be denoised is the voice signal corresponding to the voice that needs to be denoised. Specifically, the wake-up voice signal and the voice signal to be denoised can be multi-channel (at least 2 channels), that is, the wake-up voice signal and the voice signal to be denoised are multi-channel voice signals collected by multiple microphones (at least 2 microphones).
[0029] Based on steps S110 to S140, the signal information of the wake-up voice signal can be fully utilized to reliably reduce the noise of the voice signal to be denoised, thereby obtaining the denoised voice signal corresponding to the voice signal to be denoised, effectively improving the noise reduction effect of the voice signal.
[0030] The following description Figure 1 Further optional specific embodiments are provided for each step performed during speech signal noise reduction in the embodiments.
[0031] In one embodiment, step S110, calculating the steering vector based on the transfer function for the wake-up voice signal, includes: obtaining the frequency point signals of the multi-channel frequency domain signal of the wake-up voice signal at each frequency point; for each frequency point, calculating the multi-channel frequency point signals at each frequency point using the transfer function between the multi-channels to obtain the multi-channel values at each frequency point; and using the multi-channel values at each frequency point as vector elements at each frequency point to obtain the steering vector at each frequency point.
[0032] Specifically, the L of the wake-up voice for M channels is cached. t The frame speech signal is used to obtain the wake-up speech signal x0, x0 = [x0(1), x0(2), ..., x0(l), ..., x0(L)]. t )],in,
[0033] Frame segmentation, windowing, and Fast Fourier Transform (FFT) are performed on x0 to obtain the frequency domain signal X0(k) corresponding to the wake-up speech signal x0 = [X0(1,k),X0(2,k),...,X0(l,k),...,X0(L)].f ,k)],L f This represents the number of frames in the frequency domain signal.
[0034] in, K is the number of points in the frequency domain signal, k is the kth frequency point, and X0(l,k) is the frequency point signal of the M channels under the kth frequency point.
[0035] The steering vector A0 is obtained using the frequency domain signal X0. The steering vector at the k-th frequency point is:
[0036] Based on formula For the k-th frequency point, the transfer function between multiple channels can be used to calculate the value A of the n-th channel at the k-th frequency point. 0,n (k), where n = 1, 2, ..., M, (·)′ is for finding the conjugate, m is the m-th channel, and n is the n-th channel.
[0037] Therefore, the values A of the M channels at the k-th frequency point can be obtained. 0,1 (k); A 0,2 (k); ...; A 0,n (k); ...; A 0,M (k), taking the values of the M channels at the k-th frequency point as vector elements at the k-th frequency point, to obtain the steering vector A0(k) at the k-th frequency point.
[0038] In one embodiment, calculating the speech signal covariance matrix of the wake-up speech signal includes: obtaining the frequency point signals of the frequency domain signal of the wake-up speech signal at each frequency point; calculating the frequency point signals between each pair of channels at each frequency point to obtain the calculation results between each pair of channels at each frequency point; and using the calculation results between each pair of channels at each frequency point as matrix elements at each frequency point to obtain the speech signal covariance matrix at each frequency point.
[0039] Specifically, the covariance matrix R of the wake-up speech signal is calculated from the frequency domain signal X0. xx Wherein, the covariance matrix R of the speech signal at the k-th frequency point xx (k) is an M×M matrix.
[0040] in,
[0041] The element in the nth row and mth column of this M×M matrix Based on formula It can be based on the frequency signal X between each pair of channels (channels m and n) at the k-th frequency point.0,n (l,k) and X 0,m The calculation is performed using (l,k) to obtain the calculation results between each pair of channels (m and n) at the k-th frequency point.
[0042] Furthermore, the calculation results between each pair of channels at the k-th frequency point are used as matrix elements at the k-th frequency point to obtain the aforementioned speech signal covariance matrix R at the k-th frequency point. xx (k).
[0043] In some embodiments, the step of generating a first beam by performing spatial filtering based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised includes: calculating a spatial filter based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised to obtain a first spatial filter; and multiplying the frequency domain signal of the speech signal to be denoised with the first spatial filter to obtain the first beam.
[0044] By picking up the speech signal x1 from M channels to be denoised, performing frame segmentation, windowing, and Fast Fourier Transform (FFT) on it, the frequency domain signal X1(l,k) = [X1(l,k)] corresponding to the speech signal x1 to be denoised is obtained. 1,1 (l,k); X 1,2 (l,k); ...; X 1,m (l,k); ...; X 1,M (l,k)].
[0045] The covariance matrix of the scattered noise field corresponding to the speech signal to be denoised l a,b It is the distance from the microphone corresponding to channel a to the microphone corresponding to channel b. c is the speed of sound, c = 342 m / s, F s It is the sampling frequency.
[0046] Using a preset formula, a spatial filter can be calculated based on the steering vector A0(k) and the covariance matrix Γ(k) of the scattered noise field corresponding to the speech signal to be denoised, thus obtaining the first spatial filter W1(k).
[0047] Furthermore, based on the formula B1(l,k)=X1(l,k)W1 H (k) can be the frequency domain signal X1(l,k) of the speech signal to be denoised and the transpose W1 of the first spatial domain filter W1(k). H Multiplying (k) yields the first beam B1(l,k), W1 H (k) is the conjugate transpose of W1(k).
[0048] In some embodiments, the step of calculating a spatial filter based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised, to obtain a first spatial filter, includes: multiplying the reciprocal of the scattered noise field covariance matrix with the steering vector to obtain a first result; multiplying the conjugate transpose of the steering vector, the reciprocal of the scattered noise field covariance matrix, and the steering vector to obtain a second result; and dividing the first result by the second result to obtain the first spatial filter.
[0049] Specifically, based on the formula A spatial filter can be calculated using the steering vector A0(k) at the k-th frequency point and the covariance matrix Γ(k) of the scattered noise field corresponding to the speech signal to be denoised, to obtain the first spatial filter W1(k), where the reciprocal Γ(k) of the scattered noise field covariance matrix Γ(k) is used. -1 Multiplying (k) by the guiding vector A0(k) yields the first result Γ. -1 (k)A0(k), the conjugate transpose A0 of the guiding vector. H (k) The second result A0 is obtained by multiplying the reciprocal of the covariance matrix of the scattered noise field and the steering vector A0(k). H (k)Γ -1 (k)A0(k).
[0050] In some embodiments of this application, the step of generating a second beam by performing spatial filtering based on the steering vector, the speech signal covariance matrix, and the orthogonal basis vectors of the steering vector includes: merging the steering vector with the orthogonal basis vectors of the steering vector to obtain a steering matrix; calculating a spatial filter based on the steering matrix and the speech signal covariance matrix to obtain a second spatial filter; and multiplying the frequency domain signal of the speech signal to be denoised with the second spatial filter to obtain the second beam.
[0051] Specifically, the guiding vector A0(k) is merged with the orthogonal basis vector A1(k) of the guiding vector to obtain the guiding matrix A(k) = [A1(k), A0(k)].
[0052] Using a preset formula, it is possible to determine the relationship between the steering matrix A(k)=[A1(k),A0(k)] and the speech signal covariance matrix R. xx (k) Calculate the spatial filter to obtain the second spatial filter W2(k).
[0053] Furthermore, according to the formula The frequency domain signal X1(l,k) of the speech signal to be denoised is transposed with the second spatial domain filter W2(k). Multiplying these together yields the second beam B2(l,k).
[0054] In some embodiments of this application, the step of calculating a spatial filter based on the steering matrix and the speech signal covariance matrix to obtain a second spatial filter includes: multiplying the reciprocal of the speech signal covariance matrix with the steering matrix to obtain a third result; multiplying the conjugate transpose of the steering matrix, the reciprocal of the speech signal covariance matrix, and the steering matrix to obtain a fourth result; and dividing the third result by the fourth result to obtain the second spatial filter.
[0055] Specifically, using the formula It can be based on the steering matrix A(k)=[A1(k),A0(k)] and the speech signal covariance matrix R xx (k) Calculate the spatial domain filter to obtain the second spatial domain filter W2(k). Where σ = [1; 0], the inverse of the covariance matrix of the speech signal... Multiplying by the guiding matrix A(k) yields the third result. Transpose A of the guiding matrix H (k) The reciprocal of the covariance matrix of the speech signal And by multiplying the guiding matrix A(k), we obtain the fourth result.
[0056] In some embodiments of this application, obtaining the denoised speech signal corresponding to the speech signal to be denoised based on the first beam and the second beam includes: performing adaptive filtering based on the first beam and the second beam to obtain a filtered signal; and converting the filtered signal to the time domain to obtain the denoised speech signal corresponding to the speech signal to be denoised.
[0057] Using the second beam as the input signal and the first beam as the target signal, adaptive filtering can be performed based on the first and second beams to obtain the filtered signal. The filtered signal is a frequency domain signal. Converting the filtered signal to the time domain yields the denoised speech signal corresponding to the speech signal to be denoised.
[0058] In some embodiments of this application, the step of performing adaptive filtering based on the first beam and the second beam to obtain the filtered signal includes: multiplying the historical buffer value of the second beam and the adaptive filter coefficients corresponding to the historical buffer value to obtain the adjusted second beam; and subtracting the adjusted second beam from the first beam to obtain the filtered signal.
[0059] Specifically, using the second beam B2(l,k) as the input signal and the first beam B1(l,k) as the target signal, adaptive filtering is performed based on the first beam and the second beam. Specifically, this can be achieved using the formula E(l,k) = B1(l,k) - B2(l,k)G(l,k) represents the historical cached value of the second beam B2(l,k). B 2(l,k) and historical cache values B Multiplying the adaptive filter coefficients G(l,k) corresponding to 2(l,k) yields the adjusted second beam. B 2(l,k)G(l,k), then subtract the adjusted second beam from the first beam B1(l,k). B 2(l,k)G(l,k) is used to obtain the filtered signal E(l,k), where E(l,k) is the error signal. B 2(l,k)=[B2(l,k),B2(l-1,k),...,B2(l-ORD+1,k)], where ORD is the number of frames buffered. μ is the step size adjustment factor.
[0060] To facilitate better implementation of the speech signal denoising method provided in this application, this application also provides a speech signal denoising device based on the above-described speech signal denoising method. The meanings of the terms used are the same as in the speech signal denoising method described above, and specific implementation details can be found in the descriptions within the method embodiments. Figure 2 A block diagram of a speech signal noise reduction apparatus according to an embodiment of this application is shown.
[0061] like Figure 2 As shown, the voice signal noise reduction device 200 may include a wake-up voice processing module 210, a first beamforming module 220, a second beamforming module 230, and a generation module 240.
[0062] A wake-up speech processing module is used to calculate the steering vector of the transfer function of the wake-up speech signal and to calculate the covariance matrix of the wake-up speech signal; a first beamforming module is used to perform spatial filtering based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised, and generate a first beam; a second beamforming module is used to perform spatial filtering based on the steering vector, the covariance matrix of the speech signal and the orthogonal basis vector of the steering vector, and generate a second beam; a generation module is used to obtain the denoised speech signal corresponding to the speech signal to be denoised based on the first beam and the second beam.
[0063] In some embodiments of this application, the wake-up voice processing module includes a steering vector calculation unit, configured to: acquire the frequency domain signal of the wake-up voice signal at each frequency point; calculate the multi-channel frequency point signal at each frequency point using the transfer function between multiple channels to obtain the multi-channel value at each frequency point; and use the multi-channel value at each frequency point as the vector element at each frequency point to obtain the steering vector at each frequency point.
[0064] In some embodiments of this application, the wake-up voice processing module includes a covariance matrix calculation unit, configured to: acquire the frequency domain signal of the wake-up voice signal at each frequency point; calculate the frequency point signals between each pair of channels at each frequency point to obtain the calculation results between each pair of channels at each frequency point; and use the calculation results between each pair of channels at each frequency point as matrix elements at each frequency point to obtain the voice signal covariance matrix at each frequency point.
[0065] In some embodiments of this application, the first beamforming module is configured to: calculate a spatial domain filter based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised, to obtain a first spatial domain filter; and multiply the frequency domain signal of the speech signal to be denoised with the first spatial domain filter to obtain the first beam.
[0066] In some embodiments of this application, the first beamforming module is configured to: multiply the reciprocal of the scattered noise field covariance matrix with the steering vector to obtain a first result; multiply the conjugate transpose of the steering vector, the reciprocal of the scattered noise field covariance matrix, and the steering vector to obtain a second result; and divide the first result by the second result to obtain the first spatial filter.
[0067] In some embodiments of this application, the second beamforming module is configured to: merge the guide vector with the orthogonal basis vector of the guide vector to obtain a guide matrix; calculate a spatial domain filter based on the guide matrix and the covariance matrix of the speech signal to obtain a second spatial domain filter; and multiply the frequency domain signal of the speech signal to be denoised with the second spatial domain filter to obtain the second beam.
[0068] In some embodiments of this application, the second beamforming module is configured to: multiply the reciprocal of the speech signal covariance matrix by the steering matrix to obtain a third result; multiply the conjugate transpose of the steering matrix, the reciprocal of the speech signal covariance matrix, and the steering matrix to obtain a fourth result; and divide the third result by the fourth result to obtain the second spatial filter.
[0069] In some embodiments of this application, the generation module is configured to: perform adaptive filtering based on the first beam and the second beam to obtain a filtered signal; and convert the filtered signal to the time domain to obtain a denoised speech signal corresponding to the speech signal to be denoised.
[0070] In some embodiments of this application, the generation module is configured to: multiply the historical cache value of the second beam and the adaptive filter coefficients corresponding to the historical cache value to obtain the adjusted second beam; and subtract the adjusted second beam from the first beam to obtain the filtered signal.
[0071] It should be noted that although several modules or units for the device used to perform actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to the embodiments of this application, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.
[0072] Furthermore, embodiments of this application also provide an electronic device, which can be a terminal or a server, such as... Figure 3 As shown, it illustrates a structural schematic diagram of the electronic device involved in the embodiments of this application, specifically:
[0073] The electronic device may include components such as a processor 301 with one or more processing cores, a memory 302 with one or more computer-readable storage media, a power supply 303, and an input unit 304. Those skilled in the art will understand that... Figure 3 The electronic device structure shown does not constitute a limitation on the electronic device and may include more or fewer components than shown, or combine certain components, or have different component arrangements. Wherein:
[0074] The processor 301 is the control center of the electronic device. It connects to various parts of the computer device via various interfaces and lines. By running or executing software programs and / or modules stored in the memory 302, and by calling data stored in the memory 302, it performs various functions of the computer device and processes data, thereby providing overall monitoring of the electronic device. Optionally, the processor 301 may include one or more processing cores; preferably, the processor 301 may integrate an application processor and a modem processor, wherein the application processor mainly handles the operating system, user page, and applications, and the modem processor mainly handles wireless communication. It is understood that the modem processor may not be integrated into the processor 301.
[0075] The memory 302 can be used to store software programs and modules. The processor 301 executes various functional applications and data processing by running the software programs and modules stored in the memory 302. The memory 302 may mainly include a program storage area and a data storage area. The program storage area may store the operating system, application programs required for at least one function (such as sound playback function, image playback function, etc.), etc.; the data storage area may store data created according to the use of the computer device, etc. In addition, the memory 302 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other volatile solid-state storage device. Accordingly, the memory 302 may also include a memory controller to provide the processor 301 with access to the memory 302.
[0076] The electronic device also includes a power supply 303 that supplies power to various components. Preferably, the power supply 303 can be logically connected to the processor 301 through a power management system, thereby enabling functions such as charging, discharging, and power consumption management through the power management system. The power supply 303 may also include one or more DC or AC power supplies, recharging systems, power fault detection circuits, power converters or inverters, power status indicators, and other arbitrary components.
[0077] The electronic device may also include an input unit 304, which can be used to receive input digital or character information and generate keyboard, mouse, joystick, optical or trackball signal inputs related to user settings and function control.
[0078] Although not shown, the electronic device may also include a display unit, etc., which will not be described in detail here. Specifically, in this embodiment, the processor 301 in the electronic device loads the executable files corresponding to the processes of one or more computer programs into the memory 302 according to the following instructions, and the processor 301 runs the computer programs stored in the memory 302, thereby realizing the various functions in the foregoing embodiments of this application. For example, the processor 301 can perform the following steps:
[0079] A steering vector based on a transfer function is calculated for the wake-up speech signal, and a speech signal covariance matrix is calculated for the wake-up speech signal; spatial filtering is performed based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised to generate a first beam; spatial filtering is performed based on the steering vector, the speech signal covariance matrix, and the orthogonal basis vectors of the steering vector to generate a second beam; and the denoised speech signal corresponding to the speech signal to be denoised is obtained according to the first beam and the second beam.
[0080] In some embodiments of this application, the step of calculating the steering vector based on the transfer function for the wake-up voice signal includes: obtaining the frequency domain signal of the wake-up voice signal at each frequency point; for each frequency point, calculating the multi-channel frequency point signal at each frequency point using the transfer function between the multi-channels to obtain the multi-channel values at each frequency point; and using the multi-channel values at each frequency point as vector elements at each frequency point to obtain the steering vector at each frequency point.
[0081] In some embodiments of this application, calculating the speech signal covariance matrix of the wake-up speech signal includes: obtaining the frequency point signals of the frequency domain signal of the wake-up speech signal at each frequency point; calculating the frequency point signals between each pair of channels at each frequency point to obtain the calculation results between each pair of channels at each frequency point; and using the calculation results between each pair of channels at each frequency point as matrix elements at each frequency point to obtain the speech signal covariance matrix at each frequency point.
[0082] In some embodiments of this application, the step of generating a first beam by performing spatial filtering based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised includes: calculating a spatial filter based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised to obtain a first spatial filter; and multiplying the frequency domain signal of the speech signal to be denoised with the first spatial filter to obtain the first beam.
[0083] In some embodiments of this application, the step of calculating a spatial filter based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised, to obtain a first spatial filter, includes: multiplying the reciprocal of the scattered noise field covariance matrix with the steering vector to obtain a first result; multiplying the conjugate transpose of the steering vector, the reciprocal of the scattered noise field covariance matrix, and the steering vector to obtain a second result; and dividing the first result by the second result to obtain the first spatial filter.
[0084] In some embodiments of this application, the step of generating a second beam by performing spatial filtering based on the steering vector, the speech signal covariance matrix, and the orthogonal basis vectors of the steering vector includes: merging the steering vector with the orthogonal basis vectors of the steering vector to obtain a steering matrix; calculating a spatial filter based on the steering matrix and the speech signal covariance matrix to obtain a second spatial filter; and multiplying the frequency domain signal of the speech signal to be denoised with the second spatial filter to obtain the second beam.
[0085] In some embodiments of this application, the step of calculating a spatial filter based on the steering matrix and the speech signal covariance matrix to obtain a second spatial filter includes: multiplying the reciprocal of the speech signal covariance matrix with the steering matrix to obtain a third result; multiplying the conjugate transpose of the steering matrix, the reciprocal of the speech signal covariance matrix, and the steering matrix to obtain a fourth result; and dividing the third result by the fourth result to obtain the second spatial filter.
[0086] In some embodiments of this application, obtaining the denoised speech signal corresponding to the speech signal to be denoised based on the first beam and the second beam includes: performing adaptive filtering based on the first beam and the second beam to obtain a filtered signal; and converting the filtered signal to the time domain to obtain the denoised speech signal corresponding to the speech signal to be denoised.
[0087] In some embodiments of this application, the step of performing adaptive filtering based on the first beam and the second beam to obtain the filtered signal includes: multiplying the historical buffer value of the second beam and the adaptive filter coefficients corresponding to the historical buffer value to obtain the adjusted second beam; and subtracting the adjusted second beam from the first beam to obtain the filtered signal.
[0088] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be performed by a computer program, or by a computer program controlling related hardware. The computer program can be stored in a computer-readable storage medium and loaded and executed by a processor.
[0089] Therefore, embodiments of this application also provide a storage medium storing a computer program that can be loaded by a processor to execute the steps in any of the methods provided in embodiments of this application.
[0090] The storage medium may include: read-only memory (ROM), random access memory (RAM), disk or optical disk, etc.
[0091] Since the computer program stored in the storage medium can execute the steps of any of the methods provided in the embodiments of this application, the beneficial effects that the methods provided in the embodiments of this application can achieve can be realized. For details, please refer to the previous embodiments, which will not be repeated here.
[0092] Other embodiments of this application will readily occur to those skilled in the art upon consideration of the specification and practice of the embodiments disclosed herein. This application is intended to cover any variations, uses, or adaptations of this application that follow the general principles of this application and include common knowledge or customary techniques in the art not disclosed herein.
[0093] It should be understood that this application is not limited to the embodiments described above and shown in the accompanying drawings, but various modifications and changes can be made without departing from its scope.
Claims
1. A method for denoising speech signals, characterized in that, include: Calculate the steering vector based on the transfer function for the wake-up speech signal, and calculate the speech signal covariance matrix for the wake-up speech signal; Based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised, a spatial filter is calculated to obtain the first spatial filter. The frequency domain signal of the speech signal to be denoised is multiplied by the first spatial domain filter to obtain the first beam; The guidance vector is combined with its orthogonal basis vector to obtain the guidance matrix; A spatial filter is calculated based on the steering matrix and the speech signal covariance matrix to obtain a second spatial filter. The frequency domain signal of the speech signal to be denoised is multiplied by the second spatial domain filter to obtain the second beam; Adaptive filtering is performed based on the first beam and the second beam to obtain the filtered signal; The filtered signal is converted to the time domain to obtain the denoised speech signal corresponding to the speech signal to be denoised.
2. The method according to claim 1, characterized in that, The calculation of the steering vector based on the transfer function for the wake-up voice signal includes: Obtain the frequency domain signal of the wake-up voice signal at each frequency point in multiple channels; For each frequency point, the multi-channel frequency signals at each frequency point are calculated using the transfer function between multiple channels to obtain the values of the multiple channels at each frequency point; The values of the multiple channels at each frequency point are used as vector elements at each frequency point to obtain the steering vector at each frequency point.
3. The method according to claim 1, characterized in that, The calculation of the speech signal covariance matrix for the wake-up speech signal includes: Obtain the frequency domain signal of the wake-up voice signal at each frequency point in multiple channels; For each frequency point, calculations are performed based on the frequency signals between each pair of channels at each frequency point to obtain the calculation results between each pair of channels at each frequency point. The calculation results between each pair of channels at each frequency point are used as matrix elements at each frequency point to obtain the covariance matrix of the speech signal at each frequency point.
4. The method according to claim 1, characterized in that, The step of calculating the spatial domain filter based on the steering vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised, to obtain the first spatial domain filter, includes: Multiply the reciprocal of the covariance matrix of the scattered noise field by the steering vector to obtain the first result; The second result is obtained by multiplying the conjugate transpose of the steering vector, the reciprocal of the covariance matrix of the scattered noise field, and the steering vector. Divide the first result by the second result to obtain the first spatial filter.
5. The method according to claim 1, characterized in that, The step of calculating the spatial domain filter based on the steering matrix and the speech signal covariance matrix to obtain the second spatial domain filter includes: Multiply the reciprocal of the covariance matrix of the speech signal by the steering matrix to obtain the third result; Multiplying the conjugate transpose of the steering matrix, the reciprocal of the speech signal covariance matrix, and the steering matrix together yields the fourth result; Divide the third result by the fourth result to obtain the second spatial filter.
6. The method according to claim 1, characterized in that, The adaptive filtering based on the first beam and the second beam to obtain the filtered signal includes: Multiply the historical cache value of the second beam by the adaptive filter coefficients corresponding to the historical cache value to obtain the adjusted second beam; The filtered signal is obtained by subtracting the adjusted second beam from the first beam.
7. A speech signal noise reduction device, characterized in that, include: The wake-up voice processing module is used to calculate the steering vector of the transfer function of the wake-up voice signal and to calculate the voice signal covariance matrix of the wake-up voice signal. The first beamforming module is used to calculate a spatial filter based on the guide vector and the covariance matrix of the scattered noise field corresponding to the speech signal to be denoised, and obtain a first spatial filter; and multiply the frequency domain signal of the speech signal to be denoised with the first spatial filter to obtain a first beam. The second beamforming module is used to merge the guide vector with the orthogonal basis vector of the guide vector to obtain a guide matrix; calculate a spatial domain filter based on the guide matrix and the covariance matrix of the speech signal to obtain a second spatial domain filter; and multiply the frequency domain signal of the speech signal to be denoised with the second spatial domain filter to obtain a second beam. The generation module is used to perform adaptive filtering based on the first beam and the second beam to obtain the filtered signal; The filtered signal is converted to the time domain to obtain the denoised speech signal corresponding to the speech signal to be denoised.
8. A storage medium, characterized in that, It stores a computer program that, when executed by the computer's processor, causes the computer to perform the method described in any one of claims 1 to 6.
9. An electronic device, characterized in that, include: Memory, which stores computer programs; A processor reads a computer program stored in memory to perform the method described in any one of claims 1 to 6.