Noise reduction method and device, computer equipment and storage medium
By performing frequency domain conversion and noise reduction processing on the sound signals in portable medical devices, combined with wind noise intensity level and data block information, the problem of poor noise reduction effect of existing equipment in wind noise environments is solved, and a lower The algorithm complexity and higher noise reduction effect.
Patent Information
- Application Number
- CN202310961292.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-01
- Publication Date
- 2025-02-14
AI Technical Summary
Existing portable medical devices have poor noise reduction effects in wind noise environments, and the existing algorithms are complex, the system computing resources are expensive, and the microphone consistency requirements are high.
By obtaining multiple data frames of the sound signal to be reduced, frequency domain conversion and frequency ranges are performed, and each frequency range is reduced based on the wind noise intensity level, and the noise reduction sound signal is obtained through time domain conversion, combined with adjacent ones Information of the data block determines the noise reduction sound signal of the overlapping data frames.
It reduces algorithm complexity, saves system computing resources, improves noise reduction effect, and reduces microphone consistency requirements.
Smart Images

Figure CN119446171A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of medical equipment technology, and in particular to a noise reduction method, device, computer equipment, storage medium and computer program product. Background Art
[0002] Existing portable medical devices, such as hearing aids or cochlear implants and other sound processing devices, inevitably face the problem of wind noise environment when picking up sound with the front-end microphone of the product. The effectiveness of wind noise reduction directly affects the user's listening experience. At the same time, wind noise reduction is increasingly being developed as a selling point of the product by major hearing aid and cochlear implant manufacturers.
[0003] From the public information, such as the scheme with publication number CN111757231A, it is disclosed that the level of wind noise is determined according to the coherence between the audio signals captured by the two microphones respectively, and the audio signal is mixed with the generated feedforward compensation signal at the ratio of the generated feedforward compensation signal to provide an acoustic output signal. Therefore, the existing wind noise reduction algorithms of hearing aids or cochlear implants mostly use dual-microphone input algorithms, which have high algorithm complexity and large system computing resource overhead. At the same time, it has high requirements for microphone consistency, occupies high system computing resources and has high power consumption overhead. Summary of the invention
[0004] Based on this, it is necessary to provide a noise reduction method, device, computer equipment, computer readable storage medium and computer program product to address the above technical problems, which can reduce algorithm complexity and save system computing resources.
[0005] In a first aspect, the present application provides a noise reduction method. The method comprises:
[0006] Acquire a plurality of data frames contained in the sound signal to be de-noised, wherein a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks;
[0007] For each data block, perform frequency domain conversion on the current data block to obtain the corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; obtain the wind noise intensity level, perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level, obtain the noise reduction processing results corresponding to each frequency range, splice the noise reduction processing results corresponding to each frequency range, and obtain the frequency domain signal after noise reduction; perform time domain conversion on the frequency domain signal after noise reduction to obtain the noise reduction sound signal corresponding to the current data block;
[0008] Based on the noise reduction sound signals corresponding to two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined.
[0009] In one embodiment, obtaining the wind noise intensity level includes:
[0010] Sum the signal energy at each frequency point in the frequency domain signal to obtain the full-band energy;
[0011] The signal energy at each frequency point within a preset range is summed to obtain the wind noise frequency band energy;
[0012] According to the full-band energy and the wind noise band energy, the wind noise energy ratio is obtained;
[0013] The first wind noise energy level table is searched to determine a target wind noise intensity level corresponding to the wind noise energy ratio, and the target wind noise intensity level is used as the wind noise intensity level.
[0014] In one embodiment, frequency domain signals corresponding to multiple frequency ranges are subjected to noise reduction processing respectively based on the wind noise intensity level, and noise reduction processing results corresponding to each frequency range are obtained, including:
[0015] Query the preset exponential constant table to determine the exponential constants corresponding to the multiple frequency ranges under the wind noise intensity level;
[0016] According to the wind noise energy ratio, the wind noise attenuation index is determined;
[0017] According to the wind noise attenuation index and the exponential constants corresponding to the multiple frequency ranges, the channel gains corresponding to the multiple frequency ranges are obtained;
[0018] For each frequency range, noise reduction processing is performed on the frequency domain signal corresponding to the current frequency range based on the channel gain corresponding to the current frequency range to obtain a noise reduction processing result corresponding to the current frequency range.
[0019] In one embodiment, performing noise reduction processing on a frequency domain signal corresponding to the current frequency range based on a channel gain corresponding to the current frequency range to obtain a noise reduction processing result corresponding to the current frequency range includes:
[0020] Obtain the previous channel gain corresponding to the current frequency range in the previous data block;
[0021] According to the previous channel gain and the preset smoothing factor, the channel gain corresponding to the current frequency range is smoothed to obtain the smoothed channel gain corresponding to the current frequency range;
[0022] The frequency domain signal corresponding to the current frequency range is multiplied by the smoothing channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range.
[0023] In one embodiment, determining the noise reduction sound signal of the overlapping data frame based on the noise reduction sound signals corresponding to each of two adjacent data blocks includes:
[0024] Determine a first noise-reduced sound signal corresponding to an overlapping data frame in a current data block and a second noise-reduced sound signal corresponding to an overlapping data frame in a previous data block;
[0025] The first noise-reduced sound signal and the second noise-reduced sound signal are integrated to obtain a noise-reduced sound signal of overlapping data frames.
[0026] In one embodiment, obtaining the wind noise intensity level includes:
[0027] Sum the signal energy at each frequency point in the frequency domain signal to obtain the full-band energy;
[0028] The second wind noise energy level table is searched to determine the target wind noise intensity level corresponding to the full-band energy, and the target wind noise intensity level is used as the wind noise intensity level.
[0029] In one embodiment, obtaining the wind noise intensity level includes:
[0030] receiving a wind noise intensity selection instruction triggered by a subject;
[0031] The wind noise intensity selection instruction is parsed to obtain the wind noise intensity level.
[0032] In a second aspect, the present application also provides a noise reduction device. The device comprises:
[0033] An acquisition module, used for acquiring a plurality of data frames contained in the sound signal to be de-noised, wherein a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks;
[0034] The noise reduction module is used to perform frequency domain conversion on the current data block for each data block to obtain the corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; obtain the wind noise intensity level, and perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level to obtain the noise reduction processing results corresponding to each frequency range, and splice the noise reduction processing results corresponding to each frequency range to obtain the noise-reduced frequency domain signal; perform time domain conversion on the noise-reduced frequency domain signal to obtain the noise-reduced sound signal corresponding to the current data block;
[0035] The determination module is used to determine the noise reduction sound signal of the overlapping data frame based on the noise reduction sound signals corresponding to each of the two adjacent data blocks.
[0036] In a third aspect, the present application further provides a computer device. The computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the following steps when executing the computer program:
[0037] Acquire a plurality of data frames contained in the sound signal to be de-noised, wherein a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks;
[0038] For each data block, perform frequency domain conversion on the current data block to obtain the corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; obtain the wind noise intensity level, perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level, obtain the noise reduction processing results corresponding to each frequency range, splice the noise reduction processing results corresponding to each frequency range, and obtain the frequency domain signal after noise reduction; perform time domain conversion on the frequency domain signal after noise reduction to obtain the noise reduction sound signal corresponding to the current data block;
[0039] Based on the noise reduction sound signals corresponding to two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined.
[0040] In a fourth aspect, the present application further provides a computer-readable storage medium. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the following steps are implemented:
[0041] Acquire a plurality of data frames contained in the sound signal to be de-noised, wherein a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks;
[0042] For each data block, perform frequency domain conversion on the current data block to obtain the corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; obtain the wind noise intensity level, perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level, obtain the noise reduction processing results corresponding to each frequency range, splice the noise reduction processing results corresponding to each frequency range, and obtain the frequency domain signal after noise reduction; perform time domain conversion on the frequency domain signal after noise reduction to obtain the noise reduction sound signal corresponding to the current data block;
[0043] Based on the noise reduction sound signals corresponding to two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined.
[0044] In a fifth aspect, the present application further provides a computer program product. The computer program product includes a computer program, and when the computer program is executed by a processor, the following steps are implemented:
[0045] Acquire a plurality of data frames contained in the sound signal to be de-noised, wherein a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks;
[0046] For each data block, perform frequency domain conversion on the current data block to obtain the corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; obtain the wind noise intensity level, perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level, obtain the noise reduction processing results corresponding to each frequency range, splice the noise reduction processing results corresponding to each frequency range, and obtain the frequency domain signal after noise reduction; perform time domain conversion on the frequency domain signal after noise reduction to obtain the noise reduction sound signal corresponding to the current data block;
[0047] Based on the noise reduction sound signals corresponding to two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined.
[0048] The above-mentioned noise reduction method, device, computer equipment, storage medium and computer program product obtain multiple data frames contained in the sound signal to be noise reduced, and a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames contained in each of the two adjacent data blocks; for each data block, the current data block is converted into the frequency domain to obtain the corresponding frequency domain signal; according to the number of channels supported by the sound processor, the frequency domain signal is divided into multiple frequency ranges; the wind noise intensity level is obtained, and the frequency domain signals corresponding to each of the multiple frequency ranges are respectively subjected to noise reduction processing based on the wind noise intensity level to obtain the noise reduction processing results corresponding to each frequency range, and the noise reduction processing results corresponding to each frequency range are spliced to obtain the frequency domain signal after noise reduction; the frequency domain signal after noise reduction is converted into the time domain to obtain the noise reduction sound signal corresponding to the current data block; based on the noise reduction sound signals corresponding to each of the two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined. In the above scheme, each data block is subjected to noise reduction processing separately to obtain the noise-reduced sound signal of the overlapping data frame. Since the noise-reduced sound signal is obtained by combining the sound signal information in the two data blocks, it is beneficial to reduce wind noise; the sound signal to be noise-reduced is converted into a frequency domain signal, and the frequency range of the frequency signal is divided according to the number of channels supported by the sound processor, and noise reduction processing is performed within the divided frequency range. The algorithm complexity is low and easy to implement; the method of using only the noise-reduced sound signal to be noise-reduced collected by a single microphone for noise reduction processing further reduces the algorithm complexity. BRIEF DESCRIPTION OF THE DRAWINGS
[0049] Figure 1 is a schematic flow chart of a noise reduction method in one embodiment;
[0050] Figure 2A schematic diagram of determining a noise-reduced audio signal of overlapping data frames in one embodiment;
[0051] Figure 3 A schematic diagram of implementing wind noise intensity level control in a manual mode in one embodiment;
[0052] Figure 4 Schematic diagram of the overall process of a noise reduction method in one embodiment;
[0053] Figure 5 A schematic diagram of a process of suppressing wind noise in one embodiment;
[0054] Figure 6 is a structural block diagram of a noise reduction device in one embodiment;
[0055] Figure 7 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION
[0056] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0057] In one embodiment, Figure 1 As shown, a noise reduction method is provided. This embodiment uses the method applied to a sound processor as an example. In some embodiments, the sound processor may be a hearing aid or a cochlear implant. It is understandable that the method may also be applied to a terminal or a server, or to a system including a terminal and a server, and implemented through the interaction between the terminal and the server. In this embodiment, the method includes the following steps:
[0058] Step 102, obtaining a sound signal to be reduced output by a single sound sensor, which includes multiple data frames, and preprocessing the data frames, specifically: forming a data block with a preset number of adjacent data frames, wherein there is at least one overlapping data frame in the data frames respectively included in two adjacent data blocks.
[0059] The sound signal to be reduced refers to the sound signal collected by the sound sensor. Exemplarily, the sound sensor may be a single microphone. In some embodiments, the sound signal collected by the single microphone is an analog signal, which is converted into a digital signal after analog-to-digital conversion, and the sound signal to be reduced refers to a digital sound signal. The sound signal to be reduced may be a sound signal collected in real time, or a historical sound signal stored in a sound processor or stored in a terminal, and the source of the sound signal is collected by a single microphone.
[0060] A preset number of adjacent data frames constitute a data block, and at least one overlapping data frame exists in the data frames respectively included in two adjacent data blocks. For example, the m-2th frame and the m-1th frame constitute the m-1th data block, the m-1th frame and the m-th frame constitute the m-th data block, the m-1th data block and the m-th data block are two adjacent data blocks, and the overlapping data frame existing in the data frames respectively included in the m-1th data block and the m-th data block is the m-1th frame data frame.
[0061] Step 104: for each data block, perform frequency domain conversion on the current data block to obtain a corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; obtain the wind noise intensity level, and perform noise reduction processing on the frequency domain signals corresponding to the multiple frequency ranges based on the wind noise intensity level to obtain the noise reduction processing results corresponding to each frequency range, and splice the noise reduction processing results corresponding to each frequency range to obtain the noise-reduced frequency domain signal; perform time domain conversion on the noise-reduced frequency domain signal to obtain the noise-reduced sound signal corresponding to the current data block.
[0062] Among them, frequency domain conversion refers to a conversion method that converts complex time signals or space signals into a structural form represented by frequency components. Common frequency domain conversions include Fourier transform, etc. Fourier transform is used to perform frequency domain conversion on the current data block, convert the signal to be denoised in the time domain space to the frequency domain space, and obtain the frequency domain signal of the current data block in the frequency domain space. The expression of frequency domain conversion is:
[0063] X(m,k)=FFT[[x(m-1,n),x(m,n)].*w(2N)]
[0064] n=0,1…,N-1; k=0,1,…,N.
[0065] Wherein, X(m,k) represents the frequency domain signal, FFT[·] represents Fourier transform, the number of FFT frequency points is 2N, m represents the number of input data frame, the data frame length is N, and exemplarily, the adjacent m-1th frame and m-th frame data frames are used as the input of FFT, x(m,n) represents the m-th frame data frame, x(m-1,n) represents the m-1th frame data frame, and w(2N) represents a window function with a length of 2N; .* represents multiplication and windowing, and k represents the frequency point number of the frequency domain signal. In some embodiments, w(2N) represents a Hamming window function with a length of 2N. Since directly adding a rectangular window to the signal will cause spectrum leakage, and the amplitude-frequency characteristic of the Hamming window is that the sidelobe attenuation is large, therefore, adding a Hamming window can improve the spectrum leakage.
[0066] The Hamming window formula is as follows:
[0067]
[0068] Among them, the window length is 2N=M+1.
[0069] The sound processor is a controller that processes the sound signal collected by the microphone. Channel refers to the filter in the sound processor that covers the corresponding sound frequency range. The number of channels supported by the sound processor can be single or multiple. The more channels the sound processor has, the more accurate the debugging can be, the finer the sound compensation can be, and the closer it will be to the original sound. According to the number of channels supported by the sound processor, the frequency domain signal is divided into multiple frequency ranges. For example, the number of channels supported by the hearing aid is 8, the sampling frequency is 16 kHz, and the frequency range of the frequency signal is 0 to 8 kHz. The frequency signal of 0-8 kHz is divided into multiple frequency ranges by 8 channels, and each channel corresponds to a frequency range. The frequency point number of channel 0 is 2-5, and the corresponding frequency range is 125-312.5 Hz. The frequency point number of channel 5 is 30-37, and the corresponding frequency range is 1837.5-2312.5 Hz.
[0070] The wind noise intensity level refers to the level data for wind noise intensity. In some embodiments, the wind noise intensity level includes no wind, weak wind, moderate wind and strong wind.
[0071] Noise reduction processing refers to reducing wind noise interference in the sound signal to be reduced, that is, wind noise suppression, which is used to improve sound quality. Based on the wind noise intensity level, the frequency domain signals corresponding to multiple frequency ranges are noise-reduced separately to obtain the noise reduction processing results corresponding to each frequency range, and the noise reduction processing results corresponding to each frequency range are spliced to obtain the frequency domain signal after noise reduction. This fine classification of wind noise intensity is conducive to the use of different noise reduction methods under different wind noise intensity levels, which is conducive to reducing wind noise and improving sound instructions while ensuring less sound distortion.
[0072] Time domain conversion refers to the conversion method of converting the signal in the frequency domain space to the time domain space. Time domain conversion methods include inverse Fourier transform, etc. The inverse Fourier transform is performed on the denoised frequency domain signal to obtain the denoised sound signal corresponding to the current data block. The expression of time domain conversion is:
[0073]
[0074] n=0,2…,2N-1.
[0075] Among them, IFFT[·] represents inverse Fourier transform, the number of frequency points of IFFT is 2N, conj represents conjugation, fliplr represents horizontal flipping of the target sequence, represents the frequency domain signal after noise reduction, Indicates a noise-reduced sound signal.
[0076] Step 106: Determine the noise reduction sound signal of the overlapping data frame based on the noise reduction sound signals corresponding to the two adjacent data blocks.
[0077] Among them, since there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined based on the noise reduction sound signals corresponding to each of the two adjacent data blocks. This method combines the sound signal information in the two data blocks to obtain the noise reduction sound signal of the overlapping data frame, which can make the sound signals in the two data blocks transition smoothly, which is beneficial to reducing wind noise.
[0078] In the above-mentioned noise reduction method, by obtaining multiple data frames contained in the sound signal to be noise reduced, a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks; for each data block, the current data block is converted into the frequency domain to obtain the corresponding frequency domain signal; according to the number of channels supported by the sound processor, the frequency domain signal is divided into multiple frequency ranges; the wind noise intensity level is obtained, and the frequency domain signals corresponding to each of the multiple frequency ranges are respectively subjected to noise reduction processing based on the wind noise intensity level to obtain the noise reduction processing results corresponding to each frequency range, and the noise reduction processing results corresponding to each frequency range are spliced to obtain the frequency domain signal after noise reduction; the frequency domain signal after noise reduction is converted into the time domain to obtain the noise reduction sound signal corresponding to the current data block; based on the noise reduction sound signals corresponding to each of the two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined. In the above scheme, each data block is subjected to noise reduction processing separately to obtain the noise-reduced sound signal of the overlapping data frame. Since the noise-reduced sound signal is obtained by combining the sound signal information in the two data blocks, it is beneficial to reduce wind noise; the sound signal to be noise-reduced is converted into a frequency domain signal, and the frequency range of the frequency signal is divided according to the number of channels supported by the sound processor, and noise reduction processing is performed within the divided frequency range. The algorithm complexity is low and easy to implement; the method of using only the noise-reduced sound signal to be noise-reduced collected by a single microphone for noise reduction processing further reduces the algorithm complexity.
[0079] In one embodiment, obtaining the wind noise intensity level includes: summing the signal energy at each frequency point in the frequency domain signal to obtain the full-band energy; summing the signal energy at each frequency point within a preset range among the frequency points to obtain the wind noise frequency band energy; obtaining a wind noise energy ratio based on the full-band energy and the wind noise frequency band energy; searching a first wind noise energy level table to determine a target wind noise intensity level corresponding to the wind noise energy ratio, and using the target wind noise intensity level as the wind noise intensity level.
[0080] The frequency domain signal is used to characterize the signal energy at each preset frequency point. The signal energy at each frequency point in the frequency domain signal is summed to obtain the full-band energy. The full-band energy is used to characterize the sum of the signal energy at all frequency points of the frequency domain signal.
[0081] In some embodiments, the expression for calculating the full-band energy is:
[0082]
[0083] Where k=0 represents the frequency point number of the DC frequency point, N represents the frequency point number of the Nyquist frequency, X(m,k) represents the frequency domain signal, and E A (m) represents the energy of the entire frequency band.
[0084] The frequency points in the preset range are used to characterize the frequency points where the wind noise is located. In some embodiments, the wind noise is in the low frequency range and the signal energy is large, and the frequency range between the DC frequency point and the low frequency cutoff frequency point is used as the preset range. The signal energy at the frequency points in the preset range among the various frequency points is summed to obtain the wind noise frequency band energy. The wind noise frequency band energy is used to characterize the signal energy sum of the frequency points where the wind noise is located in the frequency domain signal.
[0085] In some embodiments, the expression for calculating the wind noise frequency band energy is:
[0086]
[0087] Among them, Ch_L represents the frequency number of the low-frequency cutoff frequency point, which satisfies For example, the range of B is [300Hz,1000Hz], and the range of E is [300Hz,1000Hz]. L (m) represents the energy of wind noise frequency band.
[0088] The ratio of wind noise frequency band energy to full frequency band energy is taken as wind noise energy ratio. Wind noise energy ratio is used to characterize the energy ratio of wind noise in the frequency domain signal.
[0089] Among them, the expression of wind noise energy ratio R(m) is:
[0090]
[0091] The first wind noise energy level table stores the correspondence between wind noise intensity levels and wind noise energy ratios. The first wind noise energy level table is searched to determine the target wind noise intensity level corresponding to the wind noise energy ratio, and the searched target wind noise intensity level is used as the wind noise intensity level.
[0092] In some embodiments, the correspondence between the wind noise intensity level and the wind noise energy ratio is as follows:
[0093] No wind: R0 <R(m)≤R1
[0094] Light wind: R1 <R(m)≤R2
[0095] Stroke: R2 <R(m)≤R3
[0096] Strong wind: R(m)>R3
[0097] Among them, R0, R1, R2 and R3 respectively represent energy ratio thresholds at different wind noise intensity levels.
[0098] In this embodiment, the wind noise energy ratio is determined by the full-band energy of the frequency domain signal and the wind noise frequency band energy. According to the wind noise energy ratio, the wind noise intensity level is found in the first wind noise energy level table. This method of determining the wind noise intensity level by the wind noise energy ratio is conducive to improving the accuracy of the determined wind noise intensity level, making a fine division of the wind noise intensity, avoiding the problem of false detection or missed detection of wind noise intensity, and is conducive to achieving the best sound effect in an actual wind noise environment.
[0099] In one embodiment, frequency domain signals corresponding to multiple frequency ranges are respectively subjected to noise reduction processing based on the wind noise intensity level to obtain noise reduction processing results corresponding to each frequency range, including: querying a preset exponential constant table to determine the exponential constants corresponding to each of the multiple frequency ranges under the wind noise intensity level; determining the wind noise attenuation index according to the wind noise energy ratio; obtaining the channel gains corresponding to the multiple frequency ranges according to the wind noise attenuation index and the exponential constants corresponding to each of the multiple frequency ranges; for each frequency range, performing noise reduction processing on the frequency domain signal corresponding to the current frequency range based on the channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range.
[0100] The preset exponential constant table stores the corresponding relationship between different wind noise intensity levels, frequency ranges and exponential constants. Table 1 shows the preset exponential constant table of the hearing aid.
[0101] The preset exponential constant table is queried to determine the exponential constants corresponding to the multiple frequency ranges under the wind noise intensity level.
[0102] According to the wind noise energy ratio, the wind noise attenuation index is determined. The expression for calculating the wind noise attenuation index is:
[0103]
[0104] Among them, V exp (m) represents the wind noise attenuation index.
[0105] Table 1. Preset exponential constants for hearing aids
[0106]
[0107] According to the wind noise attenuation index and the exponential constants corresponding to the multiple frequency ranges, the channel gains corresponding to the multiple frequency ranges are obtained. The expression for calculating the channel gain is:
[0108]
[0109] Where i represents the frequency range number, the number of channels is M+1, C(m,i) represents the exponential constant, and G(m,i) represents the channel gain.
[0110] For each frequency range, the frequency domain signal corresponding to the current frequency range is subjected to noise reduction processing based on the channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range. In some embodiments, the channel gain corresponding to the current frequency range can be multiplied by the frequency domain signal corresponding to the current frequency range, and the signal after gain is obtained, which is the noise reduction processing result corresponding to the current frequency range.
[0111] In this embodiment, by querying the preset exponential constant table, the exponential constants corresponding to the multiple frequency ranges under the wind noise intensity level are determined, and then the channel gains corresponding to the multiple frequency ranges are calculated according to the wind noise energy ratio and the exponential constant, and the corresponding channel gains are applied to each frequency range to achieve noise reduction of the frequency domain signal. This method of dividing the frequency range of the frequency signal according to the number of channels supported by the sound processor and performing noise reduction processing by applying channel gains within the divided frequency range has low algorithm complexity and is easy to implement.
[0112] In one embodiment, noise reduction processing is performed on a frequency domain signal corresponding to the current frequency range based on the channel gain corresponding to the current frequency range to obtain a noise reduction processing result corresponding to the current frequency range, including: obtaining a previous channel gain corresponding to the current frequency range in a previous data block; smoothing the channel gain corresponding to the current frequency range according to the previous channel gain and a preset smoothing factor to obtain a smoothed channel gain corresponding to the current frequency range; and multiplying the frequency domain signal corresponding to the current frequency range by the smoothed channel gain corresponding to the current frequency range to obtain a noise reduction processing result corresponding to the current frequency range.
[0113] The previous data block refers to a previous data block adjacent to the current data block. A previous channel gain corresponding to the current frequency range in the previous data block is obtained.
[0114] According to the previous channel gain and the preset smoothing factor, the channel gain corresponding to the current frequency range is smoothed to obtain the smoothed channel gain corresponding to the current frequency range. The smoothing expression used is:
[0115] Gain(m,i)=(1-α)*G(m,i)+α*Gain(m-1,i),i=0to M.
[0116] Wherein, Gain(m-1,i) represents the previous channel gain, α represents the smoothing factor, and satisfies 0<α<1. Exemplarily, α=0.9 is set, and Gain(m,i) represents the smoothed channel gain.
[0117] The frequency domain signal corresponding to the current frequency range is multiplied by the smooth channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range. The noise reduction processing result is the signal after the smooth channel gain is applied to the frequency domain signal. The expression for applying the smooth channel gain is:
[0118]
[0119] Among them, p and q represent the boundary values of the current frequency range, respectively, satisfying Indicates the result of noise reduction processing.
[0120] In this embodiment, the channel gain corresponding to the current frequency range is smoothed by using the previous channel gain corresponding to the current frequency range in the previous data block and the preset smoothing factor, and the corresponding smoothed channel gain is applied to the frequency domain signal corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range. This method of smoothing the channel gain corresponding to the current data block in combination with the previous channel gain of the previous data block is conducive to the smooth transition of the voice signal between adjacent data blocks and improves the noise reduction effect.
[0121] In one embodiment, based on the noise reduction sound signals corresponding to each of two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined, including: determining a first noise reduction sound signal corresponding to the overlapping data frame in the current data block, and a second noise reduction sound signal corresponding to the overlapping data frame in the previous data block; integrating the first noise reduction sound signal with the second noise reduction sound signal to obtain the noise reduction sound signal of the overlapping data frame.
[0122] Since the current data block and the previous data block overlap data frames respectively, the first noise reduction sound signal corresponding to the overlapping data frame in the current data block and the second noise reduction sound signal corresponding to the overlapping data frame in the previous data block are integrated to obtain the noise reduction sound signal of the overlapping data frame. The noise reduction sound signal of the overlapping data frame is the time domain noise reduction sound signal finally output.
[0123] An example of integrating the first noise-reduced audio signal and the second noise-reduced audio signal, when the window function in the frequency domain conversion is a rectangular window, the first noise-reduced audio signal and the second noise-reduced audio signal are averaged to obtain the noise-reduced audio signal of the overlapping data frames.
[0124] Another example of integrating the first noise reduction sound signal and the second noise reduction sound signal is that when the window function in the frequency domain conversion is a Hamming window, the first noise reduction sound signal and the second noise reduction sound signal are summed to obtain the noise reduction sound signal of the overlapping data frame. Accordingly, the final output time domain noise reduction sound signal is:
[0125]
[0126] n=0,1…,N-1.
[0127] in, represents the final output time-domain noise-reduced sound signal, represents the first noise reduction sound signal, represents a second noise reduction sound signal.
[0128] like Figure 2 The figure shows a schematic diagram of determining the noise reduction audio signal of the overlapping data frame. Among them, the m-th frame and the m-1-th frame are the current data blocks, the m-1-th frame and the m-2-th frame are the previous data blocks, and the m-1-th frame is the overlapping data frame. The current data block is used as input data, and after FFT Fourier transform, noise reduction processing, and IFFT (inverse Fourier transform), the noise reduction audio signal corresponding to the m-1-th frame is output.
[0129] In this embodiment, the first noise reduction sound signal corresponding to the overlapping data frame in the current data block and the second noise reduction sound signal corresponding to the overlapping data frame in the previous data block are summed to obtain the final noise reduction sound signal of the overlapping data frame, which is beneficial to the smooth transition of two adjacent data blocks, thereby outputting the noise reduction sound signal of each data frame, improving the fidelity of the sound signal, and improving the noise reduction effect.
[0130] In one embodiment, in order to obtain the wind noise intensity level, the following method can also be used: summing the signal energy at each frequency point in the frequency domain signal to obtain the full-band energy; searching the second wind noise energy level table to determine the target wind noise intensity level corresponding to the full-band energy, and using the target wind noise intensity level as the wind noise intensity level.
[0131] The frequency domain signal is used to characterize the signal energy at each preset frequency point. The signal energy at each frequency point in the frequency domain signal is summed to obtain the full-band energy. The full-band energy is used to characterize the sum of the signal energy at all frequency points of the frequency domain signal.
[0132] In some embodiments, the expression for calculating the full-band energy is:
[0133]
[0134] Where k=0 represents the frequency point number of the DC frequency point, N represents the frequency point number of the Nyquist frequency, X(m,k) represents the frequency domain signal, and EA (m) represents the energy of the entire frequency band.
[0135] The second wind noise energy level table stores the correspondence between wind noise intensity level and full-band energy. The second wind noise energy level table is searched to determine the target wind noise intensity level corresponding to the full-band energy, and the searched target wind noise intensity level is used as the wind noise intensity level.
[0136] In some embodiments, the correspondence between the wind noise intensity level and the full-band energy is as follows:
[0137] No wind: 0 <E A (m)≤E0
[0138] Light wind: E0 <E A (m)≤E1
[0139] Stroke: E1 <E A (m)≤E2
[0140] Strong wind: E2 <E A (m)≤E3
[0141] Among them, E0, E1, E2 and E3 represent energy thresholds at different wind noise intensity levels respectively.
[0142] In this embodiment, the corresponding wind noise intensity level is searched in the second wind noise energy level table through the full-band energy. The wind noise intensity level can be determined according to the full-band energy of the frequency domain signal. Since the wind noise energy is often large, the full-band energy can reflect the wind noise intensity level to a certain extent, which is conducive to improving the accuracy of the determined wind noise intensity level, finely dividing the wind noise intensity, avoiding the problem of false detection or missed detection of wind noise intensity, and is conducive to achieving the best sound effect in an actual wind noise environment.
[0143] In one embodiment, in order to obtain the wind noise intensity level, a manual mode may also be used to obtain it, specifically: receiving a wind noise intensity selection instruction triggered by an object; parsing the wind noise intensity selection instruction to obtain the wind noise intensity level.
[0144] The method for determining the wind noise intensity level can also adopt a manual mode and be determined according to the triggering operation of the object. The object triggers the corresponding selection button or the corresponding selection area through the auxiliary accessories of the sound processing device, such as a remote control, an application or a smart bracelet, so as to generate a wind noise intensity selection instruction. Figure 3The figure shows a schematic diagram of implementing wind noise intensity level control in manual mode. The subject triggers the corresponding wind noise selection instruction by operating the remote control, application or smart bracelet. The sound processor responds to the wind noise selection instruction and parses the wind noise intensity selection instruction according to the parsing protocol corresponding to the wind noise intensity selection instruction to obtain the wind noise intensity level. In some embodiments, the triggered wind noise intensity selection instruction is a Bluetooth instruction, and the wind noise intensity selection instruction is parsed using the Bluetooth instruction parsing protocol. For example, if the wind noise intensity selection instruction is L0, the wind noise intensity level obtained by parsing is no wind; if the wind noise intensity selection instruction is L2, the wind noise intensity level obtained by parsing is stroke.
[0145] In this embodiment, by receiving the wind noise intensity selection instruction triggered by the object, the wind noise intensity selection instruction is parsed to obtain the wind noise intensity level. The noise reduction method of this solution supports manual mode. By receiving the wind noise selection instruction triggered by the object, the wind noise intensity level can be adjusted according to the actual feeling of the object, which is conducive to achieving the best noise reduction effect.
[0146] To explain the noise reduction method and effect in this solution in detail, a most detailed embodiment is described below:
[0147] For the noise reduction scenario where the sound processing device is a hearing aid or a cochlear implant, multiple data frames contained in the sound signal to be noise-reduced are obtained, a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames contained in each of two adjacent data blocks. Figure 4 The figure shows the overall process diagram of the noise reduction method. According to the low-frequency energy characteristics of wind noise, the signal to be noise-reduced is feature extracted, the wind noise intensity level is determined according to the wind noise characteristics and the dual threshold function, and the gain under different channels is determined according to the wind noise characteristics and the wind noise intensity level, so as to perform noise reduction processing.
[0148] 1) Frequency domain conversion
[0149] For each data block, the current data block is converted into the frequency domain to obtain the corresponding frequency domain signal. The expression of frequency domain conversion is:
[0150] X(m,k)=FFT[[x(m-1,n),x(m,n)].*w(2N)]
[0151] n=0,1…,N-1; k=0,1,…,N.
[0152] Wherein, X(m,k) represents a frequency domain signal, FFT[·] represents Fourier transform, the number of FFT frequency points is 2N, m represents the number of input data frames, the length of the data frame is N, and illustratively, the adjacent m-1th frame and m-th frame data frames are used as the input of FFT, x(m,n) represents the m-th frame data frame, x(m-1,n) represents the m-1th frame data frame, and w(2N) represents a window function with a length of 2N; .* represents multiplication and windowing, and k represents the frequency point number of the frequency domain signal. In some embodiments, w(2N) represents a Hamming window function with a length of 2N.
[0153] 2) Wind noise feature extraction
[0154] Wind noise characteristics include full-band energy, wind noise band energy, and wind noise energy ratio. Since wind noise is usually distributed in the low-frequency band and has high energy, the wind noise energy ratio is used for calculation, which has a simple algorithm.
[0155] Sum the signal energy at each frequency point in the frequency domain signal to obtain the full-band energy. The expression for calculating the full-band energy is:
[0156]
[0157] Where k=0 represents the frequency point number of the DC frequency point, N represents the frequency point number of the Nyquist frequency, X(m,k) represents the frequency domain signal, and E A (m) represents the energy of the entire frequency band.
[0158] The signal energy at each frequency point within the preset range is summed to obtain the wind noise frequency band energy. The expression for calculating the wind noise frequency band energy is:
[0159]
[0160] Among them, Ch_L represents the frequency number of the low-frequency cutoff frequency point, which satisfies For example, the range of B is [300Hz,1000Hz], and the range of E is [300Hz,1000Hz]. L (m) represents the energy of wind noise frequency band.
[0161] The wind noise energy ratio is obtained based on the full-band energy and the wind noise band energy. The wind noise energy ratio is used to characterize the energy ratio of wind noise in the frequency domain signal.
[0162] Among them, the expression of wind noise energy ratio R(m) is:
[0163]
[0164] 3) Determination of wind noise intensity level
[0165] The first wind noise energy level table is searched, and the target wind noise intensity level corresponding to the wind noise energy ratio is determined by using a double threshold judgment method, and the target wind noise intensity level is used as the wind noise intensity level. The first wind noise energy level table stores the correspondence between the wind noise intensity level and the wind noise energy ratio. The correspondence between the wind noise intensity level and the wind noise energy ratio is as follows:
[0166] No wind: R0 <R(m)≤R1
[0167] Light wind: R1 <R(m)≤R2
[0168] Stroke: R2 <R(m)≤R3
[0169] Strong wind: R(m)>R3
[0170] Among them, R0, R1, R2 and R3 respectively represent energy ratio thresholds at different wind noise intensity levels.
[0171] For example, R0 = 0.1, R1 = 0.4, R2 = 0.5, R3 = 0.8. The wind noise energy ratio is 0.2, and the corresponding wind noise intensity level is no wind.
[0172] In addition, the wind noise intensity level can also be determined based on the full-band energy. The second wind noise energy level table stores the correspondence between the wind noise intensity level and the full-band energy. The second wind noise energy level table is searched, and a dual threshold judgment method is used to determine the target wind noise intensity level corresponding to the full-band energy, and the target wind noise intensity level is used as the wind noise intensity level.
[0173] The corresponding relationship between wind noise intensity level and full-band energy is as follows:
[0174] No wind: 0 <E A (m)≤E0
[0175] Light wind: E0 <E A (m)≤E1
[0176] Stroke: E1 <E A (m)≤E2
[0177] Strong wind: E2 <E A (m)≤E3
[0178] Among them, E0, E1, E2 and E3 represent energy thresholds at different wind noise intensity levels respectively.
[0179] For example, E0 = 0.001, E1 = 0.004, E2 = 0.006, E3 = 0.008. The full-band energy is 0.005, and the corresponding wind noise intensity level is moderate.
[0180] 4) Channel gain
[0181] The frequency domain signal is divided into multiple frequency ranges according to the number of channels supported by the sound processor. For example, the number of channels supported by the hearing aid is 8, the sampling frequency is 16 kHz, and the frequency range of the frequency domain signal is 0 to 8 kHz. The 0-8 kHz frequency signal is divided into multiple frequency ranges by 8 channels, and each channel corresponds to a frequency range. The frequency point number of channel 0 is 2-5, and the corresponding frequency range is 125-312.5 Hz. The frequency point number of channel 5 is 30-37, and the corresponding frequency range is 1837.5-2312.5 Hz.
[0182] like Figure 5 The figure shows a flow chart of wind noise suppression. A preliminary estimation of channel gain is performed based on wind noise characteristics and wind noise intensity levels. Specifically, the wind noise intensity level obtained in step 3) is used to query a preset exponential constant table to determine the exponential constants corresponding to each of the multiple frequency ranges under the wind noise intensity level.
[0183] In addition, the exponential constant can also be queried and obtained in manual mode. Through the auxiliary accessories of the hearing aid or cochlear implant, such as a remote control, an application or a smart bracelet, the object triggers the corresponding selection button, or triggers the corresponding selection area, thereby generating a wind noise intensity selection instruction. The correspondence between the wind noise intensity selection instruction and the wind noise intensity level is preset to determine the corresponding wind noise intensity level. Based on the determined wind noise intensity level, the preset exponential constant table is queried to determine the exponential constants corresponding to each of the multiple frequency ranges under the wind noise intensity level.
[0184] According to the wind noise energy ratio, the wind noise attenuation index is determined. The expression for calculating the wind noise attenuation index is:
[0185]
[0186] Among them, V exp (m) represents the wind noise attenuation index.
[0187] According to the wind noise attenuation index and the exponential constants corresponding to the multiple frequency ranges, the channel gains corresponding to the multiple frequency ranges are obtained. The expression for calculating the channel gain is:
[0188]
[0189] Where i represents the frequency range number, the number of channels is M+1, C(m,i) represents the exponential constant, and G(m,i) represents the channel gain.
[0190] For each frequency range, obtain the previous channel gain corresponding to the current frequency range in the previous data block, and smooth the channel gain corresponding to the current frequency range according to the previous channel gain and the preset smoothing factor to obtain the smoothed channel gain corresponding to the current frequency range. The smoothing expression used is:
[0191] Gain(m,i)=(1-α)*G(m,i)+α*Gain(m-1,i),i=0to M.
[0192] Wherein, Gain(m-1,i) represents the previous channel gain, α represents the smoothing factor, and satisfies 0<α<1. Exemplarily, α=0.9 is set, and Gain(m,i) represents the smoothed channel gain.
[0193] The frequency domain signal corresponding to the current frequency range is multiplied by the smooth channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range. The expression for applying the smooth channel gain is:
[0194]
[0195] Among them, p and q represent the boundary values of the current frequency range, satisfying 0≤p <q≤N, Represents the frequency domain signal after noise reduction.
[0196] The noise reduction processing results corresponding to each frequency range are spliced to obtain the noise-reduced frequency domain signal, and the noise-reduced frequency domain signal is converted into time domain to obtain the noise-reduced sound signal corresponding to the current data block. The expression of time domain conversion is:
[0197]
[0198] n=0,2…,2N-1.
[0199] Among them, IFFT[·] represents inverse Fourier transform, the number of frequency points of IFFT is 2N, conj represents conjugation, fliplr represents horizontal flipping of the target sequence, represents the frequency domain signal after noise reduction, Indicates a noise-reduced sound signal.
[0200] Determine a first noise reduction sound signal corresponding to an overlapping data frame in a current data block and a second noise reduction sound signal corresponding to an overlapping data frame in a previous data block, integrate the first noise reduction sound signal with the second noise reduction sound signal, and obtain a noise reduction sound signal of the overlapping data frame. The noise reduction sound signal of the overlapping data frame is the final output time domain noise reduction sound signal, that is, the output of the m-1th frame.
[0201] When the window function in the frequency domain conversion is a Hamming window, the first noise reduction sound signal and the second noise reduction sound signal are summed to obtain the noise reduction sound signal of the overlapping data frame. Accordingly, the final output time domain noise reduction sound signal is:
[0202]
[0203] n=0,1…,N-1.
[0204] in, represents the final output time-domain noise-reduced sound signal, represents the first noise reduction sound signal, represents a second noise reduction sound signal.
[0205] When the next data block is subjected to noise reduction processing, the previous data frame in the next data block is updated to the mth data frame, that is, the previous data frame in the next data block is updated to:
[0206] x(m-1,n)=x(m,n),n=0,1…,127.
[0207] The above-mentioned noise reduction method obtains multiple data frames contained in the sound signal to be noise reduced, and a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks; for each data block, the current data block is converted into the frequency domain to obtain the corresponding frequency domain signal; according to the number of channels supported by the sound processor, the frequency domain signal is divided into multiple frequency ranges; the wind noise intensity level is obtained, and the frequency domain signals corresponding to each of the multiple frequency ranges are respectively subjected to noise reduction processing based on the wind noise intensity level to obtain the noise reduction processing results corresponding to each frequency range, and the noise reduction processing results corresponding to each frequency range are spliced to obtain the frequency domain signal after noise reduction; the frequency domain signal after noise reduction is converted into the time domain to obtain the noise reduction sound signal corresponding to the current data block; based on the noise reduction sound signals corresponding to each of the two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined. In the above scheme, each data block is subjected to noise reduction processing separately to obtain the noise-reduced sound signal of the overlapping data frame. Since the noise-reduced sound signal is obtained by combining the sound signal information in the two data blocks, it is beneficial to reduce wind noise; the sound signal to be noise-reduced is converted into a frequency domain signal, and the frequency range of the frequency signal is divided according to the number of channels supported by the sound processor, and noise reduction processing is performed within the divided frequency range. The algorithm complexity is low and easy to implement; the method of using only the noise-reduced sound signal to be noise-reduced collected by a single microphone for noise reduction processing further reduces the algorithm complexity.
[0208] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0209] Based on the same inventive concept, the embodiment of the present application also provides a noise reduction device for implementing the noise reduction method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in one or more noise reduction device embodiments provided below can refer to the limitations of the noise reduction method above, and will not be repeated here.
[0210] In one embodiment, Figure 6 As shown, a noise reduction device 100 is provided, comprising: an acquisition module 120, a noise reduction module 140 and a determination module 160, wherein:
[0211] The acquisition module 120 is used to acquire the sound signal to be reduced noise collected by the sound sensor. Exemplarily, the sound sensor can be a single microphone. The sound signal to be reduced noise includes multiple data frames, a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively included in two adjacent data blocks;
[0212] The noise reduction module 140 is used to perform frequency domain conversion on the current data block for each data block to obtain a corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; obtain the wind noise intensity level, and perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level to obtain the noise reduction processing results corresponding to each frequency range, and splice the noise reduction processing results corresponding to each frequency range to obtain the frequency domain signal after noise reduction; perform time domain conversion on the frequency domain signal after noise reduction to obtain the noise reduction sound signal corresponding to the current data block;
[0213] The determination module 160 is configured to determine the noise reduction sound signal of the overlapping data frame based on the noise reduction sound signals corresponding to the two adjacent data blocks.
[0214] The above-mentioned noise reduction device obtains multiple data frames contained in the sound signal to be noise reduced, and a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks; for each data block, the current data block is converted into the frequency domain to obtain the corresponding frequency domain signal; according to the number of channels supported by the sound processor, the frequency domain signal is divided into multiple frequency ranges; the wind noise intensity level is obtained, and based on the wind noise intensity level, the frequency domain signals corresponding to each of the multiple frequency ranges are respectively subjected to noise reduction processing to obtain the noise reduction processing results corresponding to each frequency range, and the noise reduction processing results corresponding to each frequency range are spliced to obtain the frequency domain signal after noise reduction; the frequency domain signal after noise reduction is converted into the time domain to obtain the noise reduction sound signal corresponding to the current data block; based on the noise reduction sound signals corresponding to each of the two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined. In the above scheme, each data block is subjected to noise reduction processing separately to obtain the noise-reduced sound signal of the overlapping data frame. Since the noise-reduced sound signal is obtained by combining the sound signal information in the two data blocks, it is beneficial to reduce wind noise; the sound signal to be noise-reduced is converted into a frequency domain signal, and the frequency range of the frequency signal is divided according to the number of channels supported by the sound processor, and noise reduction processing is performed within the divided frequency range. The algorithm complexity is low and easy to implement; the method of using only the noise-reduced sound signal to be noise-reduced collected by a single microphone for noise reduction processing further reduces the algorithm complexity.
[0215] In one embodiment, the wind noise intensity level is obtained, and the noise reduction module 140 also includes: a full-band energy acquisition module, a wind noise band energy acquisition module, a wind noise energy ratio acquisition module and a first search module. Among them, the full-band energy acquisition module is used to sum the signal energy at each frequency point in the frequency domain signal to obtain the full-band energy; the wind noise band energy acquisition module is used to sum the signal energy at each frequency point in a preset range among the frequencies to obtain the wind noise band energy; the wind noise energy ratio acquisition module is used to obtain the wind noise energy ratio based on the full-band energy and the wind noise band energy; the first search module is used to search the first wind noise energy level table, determine the target wind noise intensity level corresponding to the wind noise energy ratio, and use the target wind noise intensity level as the wind noise intensity level. In this embodiment, the noise reduction device has a first storage module that stores the first wind noise energy level table.
[0216] In one embodiment, based on the wind noise intensity level, the frequency domain signals corresponding to each of the multiple frequency ranges are subjected to noise reduction processing respectively to obtain the noise reduction processing results corresponding to each of the frequency ranges. The noise reduction module 140 also includes a second search module, an index determination module, a channel gain acquisition module and a processing result acquisition module. Among them, the second search module is used to query the preset exponential constant table to determine the exponential constants corresponding to each of the multiple frequency ranges under the wind noise intensity level; the index determination module is used to determine the wind noise attenuation index according to the wind noise energy ratio; the channel gain acquisition module is used to obtain the channel gain corresponding to each of the multiple frequency ranges according to the wind noise attenuation index and the exponential constants corresponding to each of the multiple frequency ranges; the processing result acquisition module is used to perform noise reduction processing on the frequency domain signal corresponding to the current frequency range based on the channel gain corresponding to the current frequency range for each frequency range to obtain the noise reduction processing result corresponding to the current frequency range. In this embodiment, the noise reduction device has a second storage module that stores a preset exponential constant table.
[0217] In one embodiment, based on the channel gain corresponding to the current frequency range, the frequency domain signal corresponding to the current frequency range is subjected to noise reduction processing to obtain the noise reduction processing result corresponding to the current frequency range. The noise reduction module 140 also includes: a previous gain acquisition module, a smoothing processing module and a gain application module. Among them, the previous gain acquisition module is used to obtain the previous channel gain corresponding to the current frequency range in the previous data block; the smoothing processing module is used to smooth the channel gain corresponding to the current frequency range according to the previous channel gain and the preset smoothing factor to obtain the smoothed channel gain corresponding to the current frequency range; the gain application module is used to multiply the frequency domain signal corresponding to the current frequency range by the smoothed channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range.
[0218] In one embodiment, based on the noise reduction sound signals corresponding to the two adjacent data blocks, the noise reduction sound signal of the overlapping data frame is determined, and the determination module 160 further includes: a signal determination module and a signal summing module. The signal determination module is used to determine the first noise reduction sound signal corresponding to the overlapping data frame in the current data block and the second noise reduction sound signal corresponding to the overlapping data frame in the previous data block; the signal summing module is used to integrate the first noise reduction sound signal and the second noise reduction sound signal to obtain the noise reduction sound signal of the overlapping data frame.
[0219] In one embodiment, the wind noise intensity level is obtained, and the noise reduction module 140 also includes: a signal energy summing module and a third search module. Among them, the signal energy summing module is used to sum the signal energy at each frequency point in the frequency domain signal to obtain the full-band energy; the third search module is used to search the second wind noise energy level table, determine the target wind noise intensity level corresponding to the full-band energy, and use the target wind noise intensity level as the wind noise intensity level. In this embodiment, the noise reduction device has a third storage module that stores the second wind noise energy level table.
[0220] In one embodiment, to obtain the wind noise intensity level, the noise reduction module 140 further includes: a receiving module and a parsing module. The receiving module is used to receive a wind noise intensity selection instruction triggered by an object; and the parsing module is used to parse the wind noise intensity selection instruction to obtain the wind noise intensity level.
[0221] Each module in the above noise reduction device can be implemented in whole or in part by software, hardware, or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute operations corresponding to each module.
[0222] In one embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as follows: Figure 7 As shown. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit and an input device. The processor, the memory and the input / output interface are connected via a system bus, and the communication interface, the display unit and the input device are connected to the system bus via the input / output interface. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a noise reduction method is implemented.
[0223] Those skilled in the art will understand that Figure 7 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0224] In one embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, the following steps are implemented:
[0225] Acquire multiple data frames contained in the sound signal to be denoised, wherein a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks; for each data block, perform frequency domain conversion on the current data block to obtain a corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; acquire the wind noise intensity level, perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level, obtain the noise reduction processing results corresponding to each frequency range, splice the noise reduction processing results corresponding to each frequency range, and obtain the frequency domain signal after noise reduction; perform time domain conversion on the frequency domain signal after noise reduction to obtain the noise reduction sound signal corresponding to the current data block; determine the noise reduction sound signal of the overlapping data frame based on the noise reduction sound signals corresponding to each of the two adjacent data blocks.
[0226] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0227] The signal energies at each frequency point in the frequency domain signal are summed to obtain the full-band energy; the signal energies at the frequency points in a preset range among the frequency points are summed to obtain the wind noise band energy; the wind noise energy ratio is obtained based on the full-band energy and the wind noise band energy; the first wind noise energy level table is searched to determine the target wind noise intensity level corresponding to the wind noise energy ratio, and the target wind noise intensity level is used as the wind noise intensity level.
[0228] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0229] Query the preset exponential constant table to determine the exponential constants corresponding to each of the multiple frequency ranges under the wind noise intensity level; determine the wind noise attenuation index according to the wind noise energy ratio; obtain the channel gains corresponding to the multiple frequency ranges according to the wind noise attenuation index and the exponential constants corresponding to each of the multiple frequency ranges; for each frequency range, perform noise reduction processing on the frequency domain signal corresponding to the current frequency range based on the channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range.
[0230] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0231] Obtain the previous channel gain corresponding to the current frequency range in the previous data block; smooth the channel gain corresponding to the current frequency range according to the previous channel gain and a preset smoothing factor to obtain the smoothed channel gain corresponding to the current frequency range; multiply the frequency domain signal corresponding to the current frequency range by the smoothed channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range.
[0232] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0233] Determine a first noise reduction sound signal corresponding to an overlapping data frame in a current data block and a second noise reduction sound signal corresponding to an overlapping data frame in a previous data block; integrate the first noise reduction sound signal with the second noise reduction sound signal to obtain a noise reduction sound signal of the overlapping data frame.
[0234] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0235] The signal energy at each frequency point in the frequency domain signal is summed to obtain the full-band energy; the second wind noise energy level table is searched to determine the target wind noise intensity level corresponding to the full-band energy, and the target wind noise intensity level is used as the wind noise intensity level.
[0236] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0237] A wind noise intensity selection instruction triggered by an object is received; the wind noise intensity selection instruction is parsed to obtain a wind noise intensity level.
[0238] In one embodiment, a computer readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:
[0239] Acquire multiple data frames contained in the sound signal to be denoised, wherein a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks; for each data block, perform frequency domain conversion on the current data block to obtain a corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; acquire the wind noise intensity level, perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level, obtain the noise reduction processing results corresponding to each frequency range, splice the noise reduction processing results corresponding to each frequency range, and obtain the frequency domain signal after noise reduction; perform time domain conversion on the frequency domain signal after noise reduction to obtain the noise reduction sound signal corresponding to the current data block; determine the noise reduction sound signal of the overlapping data frame based on the noise reduction sound signals corresponding to each of the two adjacent data blocks.
[0240] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0241] The signal energies at each frequency point in the frequency domain signal are summed to obtain the full-band energy; the signal energies at the frequency points in a preset range among the frequency points are summed to obtain the wind noise band energy; the wind noise energy ratio is obtained based on the full-band energy and the wind noise band energy; the first wind noise energy level table is searched to determine the target wind noise intensity level corresponding to the wind noise energy ratio, and the target wind noise intensity level is used as the wind noise intensity level.
[0242] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0243] Query the preset exponential constant table to determine the exponential constants corresponding to each of the multiple frequency ranges under the wind noise intensity level; determine the wind noise attenuation index according to the wind noise energy ratio; obtain the channel gains corresponding to the multiple frequency ranges according to the wind noise attenuation index and the exponential constants corresponding to each of the multiple frequency ranges; for each frequency range, perform noise reduction processing on the frequency domain signal corresponding to the current frequency range based on the channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range.
[0244] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0245] Obtain the previous channel gain corresponding to the current frequency range in the previous data block; smooth the channel gain corresponding to the current frequency range according to the previous channel gain and a preset smoothing factor to obtain the smoothed channel gain corresponding to the current frequency range; multiply the frequency domain signal corresponding to the current frequency range by the smoothed channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range.
[0246] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0247] Determine a first noise reduction sound signal corresponding to an overlapping data frame in a current data block and a second noise reduction sound signal corresponding to an overlapping data frame in a previous data block; integrate the first noise reduction sound signal with the second noise reduction sound signal to obtain a noise reduction sound signal of the overlapping data frame.
[0248] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0249] The signal energy at each frequency point in the frequency domain signal is summed to obtain the full-band energy; the second wind noise energy level table is searched to determine the target wind noise intensity level corresponding to the full-band energy, and the target wind noise intensity level is used as the wind noise intensity level.
[0250] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0251] A wind noise intensity selection instruction triggered by an object is received; the wind noise intensity selection instruction is parsed to obtain a wind noise intensity level.
[0252] In one embodiment, a computer program product is provided, comprising a computer program, which, when executed by a processor, implements the following steps:
[0253] Acquire multiple data frames contained in the sound signal to be denoised, wherein a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks; for each data block, perform frequency domain conversion on the current data block to obtain a corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; acquire the wind noise intensity level, perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level, obtain the noise reduction processing results corresponding to each frequency range, splice the noise reduction processing results corresponding to each frequency range, and obtain the frequency domain signal after noise reduction; perform time domain conversion on the frequency domain signal after noise reduction to obtain the noise reduction sound signal corresponding to the current data block; determine the noise reduction sound signal of the overlapping data frame based on the noise reduction sound signals corresponding to each of the two adjacent data blocks.
[0254] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0255] The signal energies at each frequency point in the frequency domain signal are summed to obtain the full-band energy; the signal energies at the frequency points in a preset range among the frequency points are summed to obtain the wind noise band energy; the wind noise energy ratio is obtained based on the full-band energy and the wind noise band energy; the first wind noise energy level table is searched to determine the target wind noise intensity level corresponding to the wind noise energy ratio, and the target wind noise intensity level is used as the wind noise intensity level.
[0256] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0257] Query the preset exponential constant table to determine the exponential constants corresponding to each of the multiple frequency ranges under the wind noise intensity level; determine the wind noise attenuation index according to the wind noise energy ratio; obtain the channel gains corresponding to the multiple frequency ranges according to the wind noise attenuation index and the exponential constants corresponding to each of the multiple frequency ranges; for each frequency range, perform noise reduction processing on the frequency domain signal corresponding to the current frequency range based on the channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range.
[0258] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0259] Obtain the previous channel gain corresponding to the current frequency range in the previous data block; smooth the channel gain corresponding to the current frequency range according to the previous channel gain and a preset smoothing factor to obtain the smoothed channel gain corresponding to the current frequency range; multiply the frequency domain signal corresponding to the current frequency range by the smoothed channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range.
[0260] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0261] Determine a first noise reduction sound signal corresponding to an overlapping data frame in a current data block and a second noise reduction sound signal corresponding to an overlapping data frame in a previous data block; integrate the first noise reduction sound signal with the second noise reduction sound signal to obtain a noise reduction sound signal of the overlapping data frame.
[0262] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0263] The signal energy at each frequency point in the frequency domain signal is summed to obtain the full-band energy; the second wind noise energy level table is searched to determine the target wind noise intensity level corresponding to the full-band energy, and the target wind noise intensity level is used as the wind noise intensity level.
[0264] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0265] A wind noise intensity selection instruction triggered by an object is received; the wind noise intensity selection instruction is parsed to obtain a wind noise intensity level.
[0266] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards of relevant countries and regions.
[0267] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.
[0268] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0269] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. A noise reduction method, characterized in that: The method comprises: Acquire a plurality of data frames contained in the sound signal to be de-noised, wherein a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks; For each data block, perform frequency domain conversion on the current data block to obtain a corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; obtain the wind noise intensity level, perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level, obtain the noise reduction processing results corresponding to each frequency range, splice the noise reduction processing results corresponding to each frequency range, and obtain the frequency domain signal after noise reduction; perform time domain conversion on the frequency domain signal after noise reduction to obtain the noise reduction sound signal corresponding to the current data block; The noise-reduced sound signal of the overlapping data frame is determined based on the noise-reduced sound signals corresponding to each of the two adjacent data blocks.
2. The method according to claim 1, characterized in that The obtaining of the wind noise intensity level includes: Sum the signal energy at each frequency point in the frequency domain signal to obtain the full-band energy; The signal energy at each frequency point within a preset range is summed to obtain the wind noise frequency band energy; Obtaining a wind noise energy ratio according to the full-band energy and the wind noise frequency band energy; A first wind noise energy level table is searched to determine a target wind noise intensity level corresponding to the wind noise energy ratio, and the target wind noise intensity level is used as the wind noise intensity level.
3. The method according to claim 2, characterized in that The performing noise reduction processing on the frequency domain signals corresponding to the multiple frequency ranges respectively based on the wind noise intensity level to obtain the noise reduction processing results corresponding to the respective frequency ranges includes: Querying a preset exponential constant table to determine exponential constants corresponding to each of the multiple frequency ranges at the wind noise intensity level; determining a wind noise attenuation index according to the wind noise energy ratio; Obtaining channel gains corresponding to the multiple frequency ranges according to the wind noise attenuation index and the exponential constants corresponding to the multiple frequency ranges; For each frequency range, noise reduction processing is performed on the frequency domain signal corresponding to the current frequency range based on the channel gain corresponding to the current frequency range to obtain a noise reduction processing result corresponding to the current frequency range.
4. The method according to claim 3, characterized in that The performing noise reduction processing on the frequency domain signal corresponding to the current frequency range based on the channel gain corresponding to the current frequency range to obtain the noise reduction processing result corresponding to the current frequency range includes: Obtain the previous channel gain corresponding to the current frequency range in the previous data block; According to the previous channel gain and the preset smoothing factor, the channel gain corresponding to the current frequency range is smoothed to obtain a smoothed channel gain corresponding to the current frequency range; The frequency domain signal corresponding to the current frequency range is multiplied by the smoothing channel gain corresponding to the current frequency range to obtain a noise reduction processing result corresponding to the current frequency range.
5. The method according to claim 1, characterized in that The step of determining the noise reduction sound signal of the overlapping data frame based on the noise reduction sound signals corresponding to the two adjacent data blocks includes: Determine a first noise-reduced sound signal corresponding to an overlapping data frame in the current data block and a second noise-reduced sound signal corresponding to an overlapping data frame in a previous data block; The first noise-reduced audio signal and the second noise-reduced audio signal are integrated to obtain the noise-reduced audio signal of the overlapping data frame.
6. The method according to claim 1, characterized in that The obtaining of the wind noise intensity level includes: Sum the signal energy at each frequency point in the frequency domain signal to obtain the full-band energy; The second wind noise energy level table is searched to determine the target wind noise intensity level corresponding to the full-band energy, and the target wind noise intensity level is used as the wind noise intensity level.
7. The method according to claim 1, characterized in that The obtaining of the wind noise intensity level includes: receiving a wind noise intensity selection instruction triggered by a subject; The wind noise intensity selection instruction is parsed to obtain a wind noise intensity level.
8. A noise reduction device, characterized in that: The device comprises: An acquisition module, used for acquiring a plurality of data frames contained in the sound signal to be de-noised, wherein a preset number of adjacent data frames constitute a data block, and there is at least one overlapping data frame in the data frames respectively contained in two adjacent data blocks; A noise reduction module is used to perform frequency domain conversion on the current data block for each data block to obtain a corresponding frequency domain signal; divide the frequency domain signal into multiple frequency ranges according to the number of channels supported by the sound processor; obtain a wind noise intensity level, and perform noise reduction processing on the frequency domain signals corresponding to each of the multiple frequency ranges based on the wind noise intensity level to obtain a noise reduction processing result corresponding to each frequency range, and splice the noise reduction processing results corresponding to each frequency range to obtain a noise-reduced frequency domain signal; perform time domain conversion on the noise-reduced frequency domain signal to obtain a noise-reduced sound signal corresponding to the current data block; The determination module is used to determine the noise reduction sound signal of the overlapping data frame based on the noise reduction sound signals corresponding to each of the two adjacent data blocks.
9. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.
11. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.
Citation Information
Patent Citations
Hearing device with active noise control based on wind noise
CN111757231A