Method and device for spreading spectrum

文档序号:1600029 发布日期:2020-01-07 浏览:14次 中文

阅读说明:本技术 一种扩频的方法及装置 (Method and device for spreading spectrum ) 是由 邵纬航 于 2018-06-29 设计创作,主要内容包括:本申请实施例公开了一种扩频的方法及装置,该方法包括:确定数据帧的截止频率;根据截止频率确定低频带范围[f<Sub>1</Sub>,f<Sub>2</Sub>]和待扩充频带范围[f<Sub>3</Sub>,f<Sub>4</Sub>];根据低频带范围确定目标滤波器,利用目标滤波器对数据帧进行滤波处理,得到第一低频信息;对第一低频信息作非线性处理,处理结果包含第二低频信息和高频信息;对处理结果和数据帧进行快速傅里叶变换FFT,分别得到第一FFT结果和第二FFT结果;对第二FFT结果在[f<Sub>3</Sub>,f<Sub>4</Sub>]内的信息,用第一FFT结果在[f<Sub>3</Sub>,f<Sub>4</Sub>]内的信息进行替换,得到扩频后的第二FFT结果。采用本申请,可自适应的对各种类型的音频序列进行扩频,得到良好的扩频效果。(The embodiment of the application discloses a method and a device for spreading spectrum, wherein the method comprises the following steps: determining a cutoff frequency of the data frame; determining a low frequency band range [ f ] from a cut-off frequency 1 ,f 2 ]And the band range to be extended [ f 3 ,f 4 ](ii) a Determining a target filter according to the low-frequency band range, and performing filtering processing on the data frame by using the target filter to obtain first low-frequency information; carrying out nonlinear processing on the first low-frequency information, wherein the processing result comprises second low-frequency information and high-frequency information; performing Fast Fourier Transform (FFT) on the processing result and the data frame to respectively obtain a first FFT result and a second FFT result; for the second FFT result at f 3 ,f 4 ]Information in [ f ] using the first FFT result 3 ,f 4 ]And replacing the internal information to obtain a second FFT result after the frequency spreading. By adopting the application, the pair can be self-adaptiveAnd various types of audio sequences are subjected to spread spectrum, so that a good spread spectrum effect is obtained.)

1. A method of spreading, the method comprising:

determining a cut-off frequency f of a data framec

Determining a low frequency band range [ f ] from the cut-off frequency1,f2]And the band range to be extended [ f3,f4]Wherein f is1、f2、f3Or f4Are all based on the fcA function of, and f1<f2≤f3<f4

Determining a target filter according to the low-frequency band range, and performing filtering processing on the data frame by using the target filter to obtain first low-frequency information, wherein the pass band range of the target filter corresponds to the low-frequency band range;

performing nonlinear processing on the first low-frequency information, wherein the processing result comprises second low-frequency information and high-frequency information, and the corresponding frequency band of the second low-frequency information is [ f1,f2]The high frequency information corresponds to a frequency band of [ f3,f4];

Performing Fast Fourier Transform (FFT) on the processing result and the data frame to respectively obtain a first FFT result and a second FFT result;

for the second FFT result at [ f3,f4]Information in [ f ] using said first FFT result3,f4]And replacing the internal information to obtain a second FFT result after the frequency spreading.

2. The method of claim 1, further comprising:

and performing inverse FFT processing on the second FFT result after the frequency spreading to obtain a data frame after the frequency spreading.

3. According to the rightThe method of claim 1, wherein said determining a low frequency band range [ f ] based on said cutoff frequency1,f2]And the band range to be extended [ f3,f4]The method comprises the following steps:

take f3=fc

If f isc≤2kHz:

f1=0kHz;f2=fc;f4=2fc

If 2kHz is less than or equal to fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

If f is less than or equal to 6kHzc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

If 8kHz is less than or equal to fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

If 9kHz is less than or equal to fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

If f is less than or equal to 12kHzc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz)。

4. The method of claim 1, wherein the determining a target filter from the low band range is performed according to:

[bp,ap]=butter(n,[fleft fright]/fs*2);

bp is the time domain input response coefficient of the filter, ap is the time domain output response coefficient of the filter, bp and ap are collectively called filter parameters, buttonr is a preset function of Butterworth filter parameters, and the independent variables of the preset function comprise: n is a pre-configured constant and is used for regulating and controlling the number of elements contained in the filter parameters bp and ap; frequency interval fleft,fright]Is the passband range of the filter, fleft=f1,fright=f2,fsIs the sampling frequency of the data frame.

5. The method of claim 1, wherein the non-linear processing comprises:

taking an absolute value, or taking a squared value, or constructing a polynomial about said first low frequency information, or processing according to the James Johnston function.

6. An apparatus for spreading spectrum, the apparatus comprising:

a determination unit for determining a cut-off frequency f of the data framec(ii) a Determining a low frequency band range [ f ] from the cut-off frequency1,f2]And the band range to be extended [ f3,f4]Wherein f is1、f2、f3Or f4Are all based on the fcA function of, and f1<f2≤f3<f4

The filtering unit is used for determining a target filter according to the low-frequency band range, and filtering the data frame by using the target filter to obtain first low-frequency information, wherein the pass band range of the target filter corresponds to the low-frequency band range;

a high frequency generating unit, for performing nonlinear processing on the first low frequency information, wherein the processing result includes second low frequency information and high frequency information, and the corresponding frequency band of the second low frequency information is [ f1,f2]The high frequency information corresponds to a frequency band of [ f3,f4];

A spectrum spreading unit for performing Fast Fourier Transform (FFT) on the processing result and the data frame to obtain a first FFT result and a second FFT result respectively(ii) a For the second FFT result at [ f3,f4]Information in [ f ] using said first FFT result3,f4]And replacing the internal information to obtain a second FFT result after the frequency spreading.

7. The apparatus of claim 5, wherein the spreading unit is further configured to:

and performing inverse FFT processing on the second FFT result after the frequency spreading to obtain a data frame after the frequency spreading.

8. The apparatus according to claim 5, characterized in that the low frequency band range [ f ] is determined according to the cut-off frequency1,f2]And the band range to be extended [ f3,f4]The determining unit is specifically configured to:

take f3=fc

If f isc≤2kHz:

f1=0kHz;f2=fc;f4=2fc

If 2kHz is less than or equal to fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

If f is less than or equal to 6kHzc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

If 8kHz is less than or equal to fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

If 9kHz is less than or equal to fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

If f is less than or equal to 12kHzc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz)。

9. The apparatus according to claim 5, wherein, when determining the target filter according to the low-band range, the filtering unit is specifically configured to:

[bp,ap]=butter(n,[fleft fright]/fs*2);

bp is a time domain input response coefficient of the filter, ap is a time domain output response coefficient of the filter, bp and ap are collectively called filter parameters, button is a preset function of the Butterworth filter parameters, and the independent variables of the preset function comprise: n is a pre-configured constant and is used for regulating and controlling the number of elements contained in the filter parameters bp and ap; frequency interval fleft,fright]Is the passband range of the filter, fleft=f1,fright=f2,fsIs the sampling frequency of the data frame.

10. The apparatus according to claim 5, wherein the high frequency generation unit is specifically configured to:

taking an absolute value, or taking a squared value, or constructing a polynomial about said first low frequency information, or processing according to the James Johnston function.

11. A spread spectrum device, the device comprising:

a processor, a memory and a bus, the processor and the memory being connected by the bus, wherein the memory is configured to store a set of program codes, and the processor is configured to call the program codes stored in the memory to perform the steps of any of claims 1-5.

12. A computer-readable storage medium having stored therein instructions which, when executed on a computer, cause the computer to perform the method of any one of claims 1-5.

Technical Field

The present invention relates to the field of audio technologies, and in particular, to a method and an apparatus for spreading spectrum.

Background

It is known from research on audio and video contents related to various large audio and video websites and mobile terminal applications that most audio and video sequences (audio sequences), i.e. various sound information such as voice, music, background sound, dialogue, etc., of audio and video contents are mostly compressed and encoded. In addition to audio-video websites, telephones, televisions, and some real-time online theaters, the transmitted audio signals are also compression coded for information transmission rates. Common audio sequence compression code rates include 48kbps, 64kbps, 96kbps, and 128kbps, among others. Compression coding of an audio sequence can cause loss of sound quality, and especially, high-frequency components of the audio sequence can be cut off, which causes insufficient frequency fullness of the audio sequence, and makes the user's listening feeling tedious. In addition, there are some audio sequences that are not enough high frequency components at the beginning due to the limitation of recording conditions, such as audio sequences in old recordings that are older, due to technical conditions.

Therefore, it is necessary to develop a spread spectrum technique to spread the data frames in the audio sequence, i.e. to expand or enrich the spectrum information of the data frames in the audio sequence, so as to improve the sound quality and listening feeling. The cut-off frequency of the audio sequence is at a distance (gap) of 20kHz from the upper limit of the audible frequency range of the human ear. Certain frequency components are filled in the gap, so that the sound quality and the listening feeling of the sequence can be improved. In the prior art, the encoding end compresses the audio sequence and records the original high-frequency component information of the audio sequence, and the decoding end restores the high-frequency components of the original audio sequence which are compressed and cut according to the information. The method must rely on the high-frequency component information provided by the encoding end, namely the encoding end is required to provide prior knowledge, a huge sample library is required to be constructed, and the adaptability is poor. In addition, some audio sequences are limited in recording conditions to have insufficient high frequency components at the beginning, and therefore cannot be extended with high frequency components.

Disclosure of Invention

The technical problem to be solved by the embodiments of the present application is to provide a method and an apparatus for spreading spectrum. The problem that various audio sequences cannot be subjected to adaptive spread spectrum is solved.

In a first aspect, an embodiment of the present application provides a method for spreading spectrum, including:

determining a cut-off frequency f of a data framec

According to the sectionStop frequency determining low band range f1,f2]And the band range to be extended [ f3,f4]Wherein f is1、f2、f3Or f4Are all based on the fcA function of, and f1<f2≤f3<f4

Determining a target filter according to the low-frequency band range, and performing filtering processing on the data frame by using the target filter to obtain first low-frequency information, wherein the pass band range of the target filter corresponds to the low-frequency band range;

performing nonlinear processing on the first low-frequency information, wherein the processing result comprises second low-frequency information and high-frequency information, and the corresponding frequency band of the second low-frequency information is [ f1,f2]The high frequency information corresponds to a frequency band of [ f3,f4];

Performing Fast Fourier Transform (FFT) on the processing result and the data frame to respectively obtain a first FFT result and a second FFT result;

for the second FFT result at [ f3,f4]Information in [ f ] using said first FFT result3,f4]And replacing the internal information to obtain a second FFT result after the frequency spreading.

In one possible embodiment, the method further comprises:

and performing inverse FFT processing on the second FFT result after the frequency spreading to obtain a data frame after the frequency spreading.

In a possible embodiment, the determination of the low frequency band range [ f ] is based on the cut-off frequency1,f2]And the band range to be extended [ f3,f4]The method comprises the following steps:

take f3=fc

If f isc≤2kHz:

f1=0kHz;f2=fc;f4=2fc

If 2kHz is less than or equal to fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

If f is less than or equal to 6kHzc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

If 8kHz is less than or equal to fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

If 9kHz is less than or equal to fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

If f is less than or equal to 12kHzc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz)。

In a possible embodiment, the determining the target filter according to the low-frequency band range is performed according to the following manner:

[bp,ap]=butter(n,[fleft fright]/fs*2);

bp is a time domain input response coefficient of the filter, ap is a time domain output response coefficient of the filter, bp and ap are collectively called filter parameters, button is a preset function of the Butterworth filter parameters, and the independent variables of the preset function comprise: n is a pre-configured constant and is used for regulating and controlling the number of elements contained in the filter parameters bp and ap; frequency interval fleft,fright]Is the passband range of the filter, fleft=f1,fright=f2,fsIs the sampling frequency of the data frame.

In one possible embodiment, the non-linear processing comprises:

taking an absolute value, or taking a squared value, or constructing a polynomial about said first low frequency information, or processing according to the James Johnston function.

In one possible embodiment, the determining the cutoff frequency of the data frame includes:

calculating the spectral energy of each frequency point of the data frame, and determining the spectral energy distribution;

iteratively matching a preset matching function with the spectrum energy distribution until the coincidence degree of a target matching function graph obtained after iteration and the spectrum energy distribution graph meets a preset requirement, wherein the preset matching function takes the frequency point sequence number as an independent variable;

and determining the cut-off frequency of the data frame according to the frequency point sequence number corresponding to the target matching function graph.

In a possible implementation, before the determining the cutoff frequency of the data frame, the method further includes:

splicing the data frame and a previous data frame of the data frame into a first composite frame;

windowing the first composite frame by using a preset windowing function;

the determining a cut-off frequency of the data frame includes:

determining a cut-off frequency of the windowed first composite frame;

performing Fast Fourier Transform (FFT) on the processing result and the data frame to respectively obtain a first FFT result and a second FFT result; for the second FFT result at [ f3,f4]Information in [ f ] using said first FFT result3,f4]And replacing the internal information to obtain a second FFT result after the spread spectrum, wherein the second FFT result comprises the following steps:

combining a processing result corresponding to the nonlinear processing of the data frame and a processing result corresponding to the nonlinear processing of the previous data frame of the data frame into a second composite frame;

windowing the second composite frame by using a preset windowing function;

performing Fast Fourier Transform (FFT) on the second composite frame and the first composite frame to respectively obtain a first FFT result and a second FFT result; to the firstTwo FFT results in3,f4]Information in [ f ] using said first FFT result3,f4]And replacing the internal information to obtain a second FFT result after the frequency spreading.

In one possible embodiment, the second FFT result is set at [ f [ ]3,f4]Information in [ f ] using said first FFT result3,f4]Before the information in the second FFT is replaced and the second FFT result after spreading is obtained, the method further includes:

calculating the first FFT result at [ f ]3,f4]A gain factor for enhancing the first FFT result at [ f [ ]3,f4]The portion within and the second FFT result are at [ f3,f4]Continuity of the outer portion;

at [ f ] for the second FFT result3,f4]Information in [ f ] using said first FFT result3,f4]When the information in the content is replaced, the method comprises the following steps:

for the second FFT result at [ f3,f4]Information in [ f ] using said first FFT result3,f4]The information in the table is multiplied by the gain factor and then replaced.

In one possible embodiment, said calculating said first FFT result is at f3,f4]Gain factors for information within, including:

calculating that the absolute value of the second FFT result is in the frequency band [ fc/2,3fc/4]Mean value of a1

Calculating that the absolute value of the second FFT result is in the frequency band [3fc/4,fc]Average value of and a2

Calculating the first FFT result at [ f ]3,f4]Average value a of absolute values of information in3

When a is2<=a1When according to g ═ a2*a2/a1/a3Calculating the gain factor;

when a is2>a1When according to g ═ a2/a3The gain factor is calculated.

In one possible embodiment, the method further comprises:

performing inverse FFT processing on the spread first composite frame;

windowing the first composite frame subjected to the inverse FFT processing by using the preset windowing function;

and overlapping and adding the first composite frame subjected to windowing processing and a next composite frame subjected to the same processing as the first composite frame, and outputting the first composite frame and the next composite frame, wherein the next composite frame is obtained by splicing the data frame and the next data frame of the data frame.

In a second aspect, an embodiment of the present application provides a spread spectrum apparatus, including:

a determination unit for determining a cut-off frequency f of the data framec(ii) a Determining a low frequency band range [ f ] from the cut-off frequency1,f2]And the band range to be extended [ f3,f4]Wherein f is1、f2、f3Or f4Are all based on the fcA function of, and f1<f2≤f3<f4

The filtering unit is used for determining a target filter according to the low-frequency band range, and filtering the data frame by using the target filter to obtain first low-frequency information, wherein the pass band range of the target filter corresponds to the low-frequency band range;

a high frequency generating unit, for performing nonlinear processing on the first low frequency information, wherein the processing result includes second low frequency information and high frequency information, and the corresponding frequency band of the second low frequency information is [ f1,f2]The high frequency information corresponds to a frequency band of [ f3,f4];

A spread spectrum unit, configured to perform fast fourier transform FFT on the processing result and the data frame to obtain a first FFT result and a second FFT result, respectively; for the second FFT result at [ f3,f4]Using the information in the first FFT result of [ 2]f3,f4]And replacing the internal information to obtain a second FFT result after the frequency spreading.

In a possible implementation, the spreading unit is further configured to:

and performing inverse FFT processing on the second FFT result after the frequency spreading to obtain a data frame after the frequency spreading.

In a possible embodiment, the low frequency band range [ f ] is determined in dependence on the cut-off frequency1,f2]And the band range to be extended [ f3,f4]The determining unit is specifically configured to:

take f3=fc

If f isc≤2kHz:

f1=0kHz;f2=fc;f4=2fc

If 2kHz is less than or equal to fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

If f is less than or equal to 6kHzc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

If 8kHz is less than or equal to fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

If 9kHz is less than or equal to fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

If f is less than or equal to 12kHzc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz)。

In a possible implementation, when determining the target filter according to the low-band range, the filtering unit is specifically configured to perform the following steps:

[bp,ap]=butter(n,[fleft fright]/fs*2);

bp is a time domain input response coefficient of the filter, ap is a time domain output response coefficient of the filter, bp and ap are collectively called filter parameters, button is a preset function of the Butterworth filter parameters, and the independent variables of the preset function comprise: n is a pre-configured constant and is used for regulating and controlling the number of elements contained in the filter parameters bp and ap; frequency interval fleft,fright]Is the passband range of the filter, fleft=f1,fright=f2,fsIs the sampling frequency of the data frame.

In a possible implementation, the high frequency generation unit is specifically configured to:

taking an absolute value, or taking a squared value, or constructing a polynomial about said first low frequency information, or processing according to the James Johnston function.

In a possible implementation, when determining the cut-off frequency, the determining unit is specifically configured to:

calculating the spectral energy of each frequency point of the data frame, and determining the spectral energy distribution;

iteratively matching a preset matching function with the spectrum energy distribution until the coincidence degree of a target matching function graph obtained after iteration and the spectrum energy distribution graph meets a preset requirement, wherein the preset matching function takes the frequency point sequence number as an independent variable;

and determining the cut-off frequency of the data frame according to the frequency point sequence number corresponding to the target matching function graph.

In a possible embodiment, the apparatus further comprises:

an overlap-add unit for splicing the data frame and a previous data frame of the data frame into a first composite frame;

windowing the first composite frame by using a preset windowing function;

the determining unit is specifically configured to:

determining a cut-off frequency of the windowed first composite frame;

the overlap-add unit is further configured to:

combining a processing result corresponding to the nonlinear processing of the data frame and a processing result corresponding to the nonlinear processing of the previous data frame of the data frame into a second composite frame;

windowing the second composite frame by using a preset windowing function;

the spreading unit is further configured to:

performing Fast Fourier Transform (FFT) on the second composite frame and the first composite frame to respectively obtain a first FFT result and a second FFT result; for the second FFT result at [ f3,f4]Information in [ f ] using said first FFT result3,f4]And replacing the internal information to obtain a second FFT result after the frequency spreading.

In a possible embodiment, the apparatus further comprises:

a gain calculation unit for calculating the first FFT result at [ f3,f4]A gain factor for enhancing the first FFT result at [ f [ ]3,f4]The portion within and the second FFT result are at [ f3,f4]Continuity of the inner portion in the frequency domain;

the spreading unit is specifically configured to:

for the second FFT result at [ f3,f4]Information in [ f ] using said first FFT result3,f4]The information in the table is multiplied by the gain factor and then replaced.

In a possible implementation, the gain calculating unit is specifically configured to:

calculating that the absolute value of the second FFT result is in the frequency band [ fc/2,3fc/4]Mean value of a1

Calculating that the absolute value of the second FFT result is in the frequency band [3fc/4,fc]Inside ofAverage value sum a2

Calculating the first FFT result at [ f ]3,f4]Average value a of absolute values of information in3

When a is2<=a1When according to g ═ a2*a2/a1/a3Calculating the gain factor;

when a is2>a1When according to g ═ a2/a3The gain factor is calculated.

In a possible implementation, the overlap-and-add unit is further configured to:

performing inverse FFT processing on the spread first composite frame;

windowing the first composite frame subjected to the inverse FFT processing by using the preset windowing function;

and overlapping and adding the first composite frame subjected to windowing processing and a next composite frame subjected to the same processing as the first composite frame, and outputting the first composite frame and the next composite frame, wherein the next composite frame is obtained by splicing the data frame and the next data frame of the data frame.

In a third aspect, an embodiment of the present application provides a spread spectrum device, including:

the processor, the memory and the interface circuit are connected through the bus and complete mutual communication, wherein the memory is used for storing a group of program codes, and the processor is used for calling the program codes stored in the memory and executing the steps according to the first aspect of the embodiments of the present application or any implementation manner of the first aspect.

In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, where instructions are stored in the computer-readable storage medium, and when the instructions are executed on a computer, the instructions cause the computer to perform a method according to the first aspect of the embodiment of the present application or any implementation manner of the first aspect.

Drawings

In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for the embodiments will be briefly described below.

Fig. 1 is a schematic system architecture diagram illustrating an application of a method for spreading spectrum according to an embodiment of the present application;

fig. 2 is a flowchart illustrating a method for spreading spectrum according to an embodiment of the present application;

fig. 3 is a schematic flowchart of a method for determining a cutoff frequency according to an embodiment of the present application;

fig. 4 is a flowchart illustrating another method for spreading spectrum according to an embodiment of the present application;

FIG. 5 is a schematic diagram of a speech spectrum of song segments with different compression code rates after being spread according to the method of the embodiment of the present application;

fig. 6 is a schematic diagram illustrating a spread spectrum apparatus according to an embodiment of the present application;

fig. 7 is a schematic composition diagram of a spreading device according to an embodiment of the present application.

Detailed Description

The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only a part of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.

Please refer to fig. 1, which is a schematic system architecture diagram of an application of a spreading method according to an embodiment of the present application; the system architecture includes an audio input interface, an audio processor, a memory, and an audio output interface.

An audio input interface 10 for retrieving audio sequences from a network server or local storage 30 and inputting them to an audio processor 20 for processing.

The audio processor 20 is configured to perform various processing on the audio sequence according to the written various audio processing algorithms, such as spread spectrum processing described in the embodiments of the present application, and may be an audio processing chip of various terminals, such as a smart phone, a tablet computer, a computer, or other intelligent electronic devices.

Memory 30 may be used to store local audio sequences and to cache audio sequences retrieved from a network server.

And an audio output interface 40 for outputting the audio sequence processed by the audio processor 20, which can be connected with a speaker or earphone interface of the terminal device.

The method for spreading spectrum in the embodiment of the present application may be written into an audio processor as an algorithm program to operate. The method can be applied to audio-related software such as conversation application, audio and video playing application, game application, voice navigation application and the like of smart phones, tablet computers, computers or other intelligent electronic devices.

The method and effect of spreading in the present application will be described in detail with reference to fig. 2 to 5.

Please refer to fig. 2, which is a flowchart illustrating a method for spreading spectrum according to an embodiment of the present application; in the embodiment of the application, the audio sequence is subjected to frame division, and each frame has N data points. For each frame of data, the following steps may be included:

s201, determining the cut-off frequency of the data frame.

Alternatively, when the specific cutoff frequency calculation is performed on the current data frame, the current data frame and its previous data frame may be spliced into a composite frame, and the cutoff frequency of the composite frame is calculated as the cutoff frequency of the current data frame.

Specifically, when the cutoff frequency of a certain frame is calculated, a commonly used artificial threshold setting method can be adopted. Specifically, a suitable threshold is artificially set, the spectral energy of the frame is calculated based on Fast Fourier Transform (FFT), and if the spectral energy at the mth frequency point of the current frame is not less than the threshold and the spectral energy between the mth frequency point and the nth/2 frequency point (or the nth frequency point if the cutoff frequency of the composite frame of two frames is calculated) after the mth frequency point is less than the threshold, the mth frequency point is the cutoff frequency point of the current frame.

Or, the purpose of determining the cut-off frequency can be achieved by recognizing (identifying) the target feature (falling edge) of the processing object (audio sequence spectral energy distribution), introducing/constructing a matching function with similar features, and then accurately approximating the target feature of the processing object, such as the cut-off frequency, by an iterative matching method. Of course, other cut-off frequency algorithms may be used for calculation, and the embodiment of the present application is not limited in any way.

S202, determining a low frequency band range [ f ] according to the cut-off frequency1,f2]And the band range to be extended [ f3,f4]。

Wherein f is1、f2、f3Or f4Are all based on the fcA function of, and f1<f2≤f3<f4.

Optionally, the two spread-spectrum related objects are functions based on the cut-off frequency, and the specific functional relationship may be set according to subjective requirements of a user, or may also be set according to a scene (outdoor, bedroom, hall, etc.) in which the audio sequence is played or a style type (dynamic, quiet, treble, bass, etc.) of the audio sequence, which is not limited in this embodiment of the application.

For the low band range f1,f2]And the band range to be extended [ f3,f4]:f1、f2、f3And f4Are all fcA function of (a); such as linear or polynomial functions that may be piecewise. Can be taken as follows:

f3=fc

if f isc≤2kHz:

f1=0kHz;f2=fc;f4=2fc(ii) a In this case no filter may be used, i.e. the filtered output is identical to the filtered input.

If 2kHz is less than or equal to fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

If f is less than or equal to 6kHzc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

If 8kHz is less than or equal to fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

If 9kHz is less than or equal to fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

If f is less than or equal to 12kHzc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz);

In the above functional relationship, f is usually taken3=fcIf special sound effects are considered, the functional relationship can be changed to fcIs not equal to f3Even a single band range to be extended [ f ]3,f4]The frequency band of (a) may be replaced by a plurality of frequency bands spaced apart from each other. In addition, the higher the frequency, e.g. near f4The frequency components on this side may be considered to be attenuated or blurred so that the high frequency components sound more comfortably and not too sharp. This part may be taken [ f ]3,f4]The last 20% of the band, i.e. [ f ]4–0.2*(f4–f3),f4]. The specific operation may be to make the energy of the part of the frequency band linearly decrease with the increase of the frequency.

Because the left and right boundary points of the low-frequency band range and the band range to be expanded are determined based on the cut-off frequency, the spread spectrum can be completed only after the cut-off frequency is determined, the communication with a coding end is not needed, any prior knowledge is not needed, a sample library is not needed to be constructed, and the calculation cost is low.

S203, determining a target filter according to the low-frequency band range, and performing filtering processing on the data frame by using the target filter to obtain first low-frequency information.

Wherein the passband range of the target filter corresponds to the low band range.

For the determination of the filter parameters:

the known filter difference equation is:

Figure BDA0001713906510000071

ap is the time domain output response coefficient of the filter, bp is the time domain input response coefficient of the filter, ap and bp are collectively called filter parameters, ap (0) is 1, and LinAnd LoutThe number of elements of bp and ap is respectively indicated, which is also called the order of the filter, wherein IN and OUT are respectively the time domain input response and the time domain output response of the filter, and l and j are natural numbers and represent time sequence numbers. In the embodiment of the present application, the low frequency band range may be determined according to the cut-off frequency, and then the low frequency band range is used as the pass band range of the filter, i.e., [ bp, ap ] as the filter parameter may be determined according to the cut-off frequency]=func(fc) Func is a pending function.

In the selection of the filter type, L can be takenin=LoutA 4 band pass butterworth filter, and when determining a target filter, the target filter may have the low band range as a pass band range,

the matlab code may be called, proceeding as follows:

[bp,ap]=butter(n,[fleft fright]/fs*2);

bp is a time domain input response coefficient of the filter, ap is a time domain output response coefficient of the filter, bp and ap are collectively called filter parameters, button is a determination function of the Butterworth filter coefficient, and the independent variables of the determination function comprise: n is a pre-configured constant, the number of elements contained in the parameters bp and ap of the filter can be intuitively controlled, the larger n is, the more the number of the elements contained in the bp and the ap is, the narrower the transition band between the pass band and the stop band of the filter is, the larger the stop band attenuation is, and the frequency interval [ fleft,fright]Is the passband range of the filter, fleft=f1,fright=f2,fsIs the sampling frequency of the data frame. [ bp, ap)]=butter(2,[fleft fright]/fs*2);

Because f is1And f2Is fcWhen taking fleft=f1,fright=f2Time, so the button (2, [ f)left fright]/fs2) is a given func (f)c)。

It should be noted that, in the embodiment of the present application, a butterworth filter is used for filtering, although other filters may also be used for filtering, and a functional relationship may also be established between the selection of the filter (including the type of the filter, specific frequency response characteristics such as transition band range and stop band attenuation, and the number of elements of bp and ap) and the cutoff frequency, which is not limited in any way in the embodiment of the present application.

And S204, carrying out nonlinear processing on the first low-frequency information, wherein the processing result comprises second low-frequency information and high-frequency information.

The second low-frequency information corresponds to a frequency band of [ f1,f2]The high frequency information corresponds to a frequency band of [ f3,f4];

Optionally, taking an absolute value, or taking a squared value, or constructing a polynomial about said first low frequency information, or processing according to the James Johnston function. Or other hardware circuit excitation methods can also be adopted.

S205, fast Fourier transform FFT is carried out on the processing result and the data frame, and a first FFT result and a second FFT result are obtained respectively.

S206, for the second FFT result, the second FFT result is in [ f3,f4]Information in [ f ] using said first FFT result3,f4]And replacing the internal information to obtain a second FFT result after the frequency spreading.

Optionally, the method further comprises:

and performing inverse FFT processing on the second FFT result after the frequency spreading to obtain a data frame after the frequency spreading. And finally, obtaining a spread spectrum result of the data frame output by the time domain.

In the embodiment of the application, the spreading is completed by determining the cut-off frequency of a data frame, determining a low-frequency band range and a to-be-extended frequency band range through the cut-off frequency, then determining a target filter based on the low-frequency band range and performing time-domain filtering on the data frame, taking out first low-frequency information of the data frame on the low-frequency band range in a time domain, performing nonlinear processing to obtain a processing result containing high-frequency components, performing FFT on the processing result and the data frame to obtain a first FFT result and a second FFT result respectively, and then replacing a part of the first FFT result on the to-be-extended frequency band range to a frequency band position corresponding to the second FFT result. The high-frequency component is obtained by processing the low-frequency component, the expanded high-frequency component and the original audio sequence coexist harmoniously, the connection transition is natural, the characteristics are similar, the music logic information of the original audio sequence can be clearly contained, the sound quality listening feeling of the audio sequence is practically improved, and no noise or strange sound is basically heard. In addition, the method does not need a priori knowledge provided by a coding end, has low calculation cost and is suitable for various types of audio sequences.

In order to obtain an accurate cut-off frequency, the cut-off frequency may be determined according to the method described in fig. 3.

Referring to fig. 3, a schematic flow chart of a method for determining a cutoff frequency according to an embodiment of the present application includes the following steps:

s301, calculating the spectrum energy of each frequency point of the data frame, and determining the distribution of the spectrum energy.

S302, performing iterative matching on a preset matching function and the spectrum energy distribution until the coincidence degree of a target matching function graph obtained after iteration and the spectrum energy distribution graph meets a preset requirement.

The preset matching function takes the frequency point sequence number as an independent variable. The frequency point sequence number can represent the number of the frequency points after being arranged in sequence, and can be used for representing the sequencing of the frequency points and the positions of the frequency points in a preset matching function graph or a spectrum energy distribution graph. For example, in the spectrum energy distribution diagram, the frequency point sequence number can be used as an abscissa, and the spectrum energy can be used as an ordinate; in the preset matching function graph, the frequency point sequence number can be used as an abscissa, and the function value of the preset matching function can be used as an ordinate.

It should be noted that the target matching function graph is a graph in which the frequency point sequence number is used as the abscissa and the function value of the target matching function is used as the ordinate, the position points corresponding to the number of the frequency points can be determined according to different frequency points and the corresponding function values thereof, and a smooth curve obtained by connecting the position points is the target matching function graph, and the graph or the image can also be called as a graph or an image of the target matching function, and is a concrete embodiment of the target matching function in a two-dimensional space, and the two have a corresponding relationship, and can be interchanged in the description of some scenes. Similarly, the spectrum energy distribution diagram is a graph with the frequency point sequence number as the abscissa and the spectrum energy as the ordinate, the position points corresponding to the frequency point number can be determined according to different frequency points and the corresponding spectrum energy values thereof, and a smooth curve obtained by connecting the position points is the spectrum energy distribution diagram, which can also be called a graph or an image of the spectrum energy distribution, is a concrete embodiment of the spectrum energy distribution on a two-dimensional space, and the two have a corresponding relationship, and can be interchanged in the description of some scenes.

The coincidence degree of the target matching function graph and the spectrum energy distribution graph meets the preset requirement, and can be understood that through iteration, the graph of the target matching function is more and more approximate to the graph of the spectrum energy distribution, and when most of the graphs of the target matching function and the spectrum energy distribution graph are overlapped, particularly when the graph part similar to a step shape in the target matching function is overlapped with the position of the falling edge of the spectrum energy, the coincidence degree of the target matching function and the spectrum energy distribution graph can be regarded as meeting the preset requirement.

And S303, determining the cut-off frequency of the data frame according to the frequency point sequence number corresponding to the target matching function graph.

When the coincidence degree of the two graphs reaches a preset requirement, the frequency point sequence number corresponding to the target matching function graph can be regarded as the estimation of the position of the center point of the spectral energy distribution falling edge; and outputting the frequency point serial number when the iterative matching is finished, and determining the cut-off frequency of the data frame according to the sampling frequency corresponding to the frequency point serial number.

Optionally, the preset matching function is:

Figure BDA0001713906510000091

wherein k represents a frequency point sequence number, A represents the amplitude of the preset matching function, L represents a frequency point sequence number corresponding to the symmetrical center point of the preset matching function, and alpha represents a falling edge inclination factor of the preset matching function; a and L are related to k and can also be understood as a function based on the argument k.

The iterative matching of the preset matching function and the spectrum energy distribution until the coincidence degree of the target matching function graph obtained after the iteration and the spectrum energy distribution graph meets the preset requirement specifically comprises the following steps:

the iteration is performed according to the following formula:

Figure BDA0001713906510000092

Figure BDA0001713906510000093

k(n+1)L=knR

k(n+1)R=Ln

wherein n is the number of iterative matching, knLThe left boundary point of the frequency point interval required in the nth iteration is also the minimum frequency point of the frequency point interval required in the nth iteration; k is a radical ofnRThe right boundary point of the frequency point interval required in the nth iteration is the maximum frequency point of the frequency point interval required in the nth iteration;

Figure BDA0001713906510000094

spectral energy of frequency point with frequency point number k, AnRepresenting the magnitude of said predetermined matching function at the nth iteration, AnAccording to the interval [ knL,knR]Calculating the average value of the internal frequency spectrum energy; l isnIs a cost function

Figure BDA0001713906510000095

Value of L at minimum, [ k ]down,kup]As a summation interval of the cost function, kupIs the maximum boundary value of the summation interval of the cost function, KdownThe minimum boundary value 0 of the summation interval of the cost function can be taken as k in calculationdown=knR

Figure BDA0001713906510000096

When the next iterative computation, i.e. the (n + 1) th iterative computation, needs to be carried out, k can be takendown=k(n+1)RN is the number of sampling frequency points of the data frame, and q is a norm; k is a radical of(n+1)LIs the left boundary point, k, of the frequency point interval required in the (n + 1) th iteration(n+1)RThe right boundary point of the frequency point interval required in the (n + 1) th iteration is set;

until | L is satisfiedn-Ln+1|<δ, where δ is the maximum allowable error.

The point (L) can be determinedn+1,s(Ln+1;An+1,α,Ln+1) Estimate the position of the center point of the falling edge of the spectral energy distribution; mixing L withn+1And the sequence number is used as the frequency point sequence number determined and output when the iterative matching is finished, and is used as the estimation of the position of the cut-off frequency of the data frame.

The cut-off frequency can then be calculated according to the following formula:

fc=Ln+1*fs/N

wherein f iscTo cut-off frequency, fsThe sampling frequency of the data frame is N, which is the number of sampling frequency points of the data frame, i.e. the total number of sampling points in the time domain of the data frame.

Alternatively, the point (L) may also be determinedn,s(Ln;An,α,Ln) Estimate the position of the center point of the falling edge of the spectral energy distribution; l isnAnd the sequence number is used as the frequency point sequence number determined and output when the iterative matching is finished, and is used as the estimation of the position of the cut-off frequency of the data frame. The examples of the present application are not intended to be limiting in any way.

If the spectral energy distribution has a cut-off frequency, i.e. has a falling edge, the fluctuation of the spectral energy distribution is ignored, and it is considered as a step shape. Therefore, in the embodiment of the present application, a matching function having a function pattern similar to a step shape is also used to match the spectral energy distribution. And (3) continuously approximating the function graph to the spectral energy distribution through continuous iterative calculation until the falling edge positions of the function graph and the spectral energy distribution are close enough or coincide, so that the cut-off frequency is determined.

The above-mentioned preset matching function is very effective for the purpose of accurately calculating the cutoff frequency. In particular, for the interval [ k ] used for the first iteration1L,k1R]In consideration of the present technical standards, the selection of (1) determines that the currently used audio sequence has a definite lower cut-off frequency limit finfSo long as k is satisfied1R<infAnd (4) finishing. Generally speaking, the lower limit of the cut-off frequency of the audio sequence of the voice call class is not less than 4kHz, and the lower limit of the cut-off frequency of the audio sequence of the music effect class is not less than 6kHz, which can be taken as

Figure BDA0001713906510000101

Wherein f issIs the sampling frequency of the audio sequence. As the iteration progresses, the interval knL,knR]Will be closer to the falling edge of the spectral energy distribution, and knL,knR]Mean value of spectral energy within AnThe spectral energy values near the left side of the falling edge of the spectral energy distribution are closer and closer. At the convergence/end of the iteration,

Figure BDA0001713906510000102

that is, with respect to the cost function (cost function) of L, the time when the minimum value is taken is when the positions of the falling edge of the matching function and the falling edge of the spectral energy distribution are sufficiently close to or coincide with each other.

Note that the interval [ k ]1L,k1R]May be according to the particular finfAnd (4) flexible selection. When k is1LThe choice is too small, since typically the low frequency energy of the audio sequence is larger than the high frequency energy, sometimes even much larger. k is a radical of1LToo little removal will result in A1Too large a value, through iteration AnIt may be difficult to approach the spectral energy value near the left side of the spectral energy distribution falling edge, which may affect the calculation accuracy. For known finfThe value is 4kHz, can be takenAnd

Figure BDA0001713906510000104

the ideal effect is obtained for a large number of audio sequence tests. For lower limit f of cut-off frequencyinfThe other values can be flexibly selected according to the test result, and the application is not limited at all.

For the value of α, Δ may be recorded as the width of the falling edge of the matching function, and Δ may also be used as a reference value of the coincidence degree of the target matching function map and the spectral energy distribution map. (see also the distance between the two vertical lines corresponding to the frequency point 15 and the frequency point 25 in fig. 4), it is clear that Δ is a function of α, and Δ also reflects the slope of the falling edge of the matching function. The gradient of the falling edge of the spectral energy distribution of each audio sequence has different magnitudes, but the calculation accuracy is slightly reduced if the delta is too large or too small through numerical tests. Usually, Δ may be set to a distance of about 10 frequency points, i.e., α is 0.85. A large number of audio sequence tests show that the method is ideal for processing audio data with a frame of 1024 frequency points. Correspondingly, the value of δ may be δ ≈ 6 ≈ Δ/2. It is reasonable to calculate that the error control is allowed within the width of the falling edge of the matching function with a radius of about 6. Such computational accuracy is sufficient for applications such as spread spectrum techniques, clipping processing, speech/scene recognition, audio artificial intelligence, etc. Of course, the above description is only exemplary, and the values of α and δ are not limited in any way in the present application.

Alternatively, if the slope factor of the falling edge of the preset matching function is not considered in order to reduce the calculation overhead, α can be regarded as positive infinity, and the preset matching function is a simple step function:

Figure BDA0001713906510000105

in order to further reduce the calculation overhead, the summation interval of the cost function may be narrowed, specifically according to the following formula:

kdown=max(L-mδ,knR),kupmin (L + m δ, N/2); or

kdown=max(L-mδ,knR),kup=min(kdown+2mδ,N/2);

Wherein k isupIs the maximum boundary value of the summation interval of the cost function, KdownSumming the minimum boundary value of the interval for the cost function; the natural number m is used to adjust the size of the summation interval. For example, for the case of N-1024, m may take 4.

Through a large number of sequence tests, the range of the summation interval of the cost function can be shrunk to the area near the falling edge of the preset matching function, namely, frequency points far away from the falling edge of the preset matching function are not considered, and the information of the frequency points has little influence on the calculation accuracy. In fact the focus of the matching is indeed also in the falling edge region. The calculation cost can be reduced by reducing the number of the calculated frequency points, so that the summation interval of the cost function can be shortened. But correspondingly, find LnThe cost function used is changed to:

Figure BDA0001713906510000111

since the total number of frequency points summed at this time is different for different L, there is a denominator kup-kdown+1 in order to average the number of bins. If get kup=kdown+2m δ is equal to the denominator being constant, and the denominator may not be divided. The summing interval range narrowing strategy may be flexible with the aim of reducing computational overhead while ensuring computational accuracy, including but not limited to the two approaches exemplified in the embodiments of the present application.

Furthermore, since α is a constant value and k and L are both natural numbers within a limited range in the iterative calculation, it is possible to perform the iterative calculation in a manner that is not limited to the above-described methodTo further save computational overhead, the matching functions may be exhaustive

Figure BDA0001713906510000112

All possible calculated values of the factors, which are stored in advance in a table. Thus, the calculation of this factor can be done by a look-up table method, thereby saving significant computational overhead.

In the iterative calculation, for LnIs required to calculate L at knR,N/2]And searching within the range. The searching can be performed based on 1 frequency point stepping each time, and in order to save the calculation overhead, the searching step length can be larger than 1 frequency point, for example, 3 or 5, and the like. The calculation is more accurate when the search step size satisfies δ or less, of course. In addition, if the upper limit information of the cutoff frequency is known, the frequency point corresponding to the upper limit can be searched, and N/2 does not need to be searched. The upper cut-off frequency limit of an audio sequence may often be 20kHz above the human audible range. Therefore, by changing the search step size and narrowing the search upper limit range, the calculation overhead can be further saved.

The choice of the number of iterations has been shown by a number of tests to be: the iteration end condition is not counted, and the falling edge of the spectral energy distribution can be accurately found within three iterations (including three times) when each frame of data is processed by the method. For some cases where the sidelobe on the right side of the falling edge is of a greater weight, the method may perform more than three iterations and eventually converge to the sidelobe region. Of course, large side lobes are also likely to be important frequency domain information and should be counted as the dominant frequency component. This does require looking at the specific application scenario. If the calculation overhead is effectively reduced, the influence of large side lobes is reduced, and excessive iteration is avoided, the total iterative calculation times of the method can be set to be not more than three times.

In addition, if the situation that the spectral energy distribution has no obvious falling edge and the full frequency band has obvious spectral energy distribution is met, the method can be converged without the falling edge. Note that this situation is equivalent to the audio sequence having a cut-off frequency of fs2 (1/2 for sampling frequency), can be expressed as fsThe spectral energy around/2 is forced to 0, so that the method converges to fs/2 attachAnd (4) approaching. For cutoff frequencies less than fsA/2 sequence, such operation does not affect the accuracy of the cut-off frequency calculation. In fact, the sampling frequency of the audio sequence which is common at present is basically 48kHz, and the upper limit of the audible range of the human ear is 20kHz, i.e. the frequency spectrum components which are higher than 20kHz are not significant, so that the spectral energy in the frequency band of 20kHz to 24kHz is not set to 0. Thus, for a "full-band" sequence, the iterative calculation of the method can converge to an artificial falling edge corresponding to 20kHz, informing the user that the cut-off frequency of the audio sequence is at least 20 kHz.

In the embodiment of the application, the cutoff frequency of the data frame and even the audio sequence is accurately calculated by a method of performing iterative matching by presetting a matching function and spectral energy distribution of the data frame, the cutoff frequency can be directly used without manually adjusting calculation parameters aiming at different audio sequences in advance, namely the cutoff frequency is generally suitable for various audio sequences, the use is convenient, the calculation cost is low, the calculation efficiency is high, the calculation result is accurate, and accurate reference data can be provided for processing various audio sequences such as spread spectrum and the like.

Referring to fig. 4, a flow chart of another method for spreading spectrum according to an embodiment of the present application is schematically shown, which includes the following steps:

s401, splicing a data frame and a previous data frame of the data frame into a first composite frame.

And if the data frame is the 2 nd data frame, the previous data frame is the 1 st data frame.

S402, windowing the first composite frame by using a preset windowing function to obtain y.

Since audio sequences are usually long, the time domain framing can be truncated for processing, but truncation can have negative effects such as distortion and noise. Therefore, the spread spectrum method of the application introduces an overlap-add method (overlap-add), so that the processing process is continuous and smooth, the negative effect caused by truncation is avoided, and the original sequence is basically not changed and damaged. The overlap-add method may be performed throughout the entire algorithm. The data frame may be a composite frame with a previous data frame (where the previous data frame is a data frame adjacent to the data frame) of the data frame, and the composite frame has 2N data points. The composite frame is then windowed (win), optionally with a half wave sine window:

of course, other windows (e.g., Hamming and Bartlett windows) may be used for windowing.

If the data frame is the first frame in the audio sequence, the previous data frame of the first frame may be set to an all-zero frame with a length of N. In addition, if 2N is not a power of 2, the end of the windowed composite frame is padded with a sufficient number of 0's to make the length equal to the power of 2 before FFT processing of the composite frame.

And S403, determining the cut-off frequency of the data frame.

When the overlap-add mode is adopted, the cut-off frequency of the windowed first composite frame is determined.

The specific determination process of the cut-off frequency can be described with reference to the embodiment shown in fig. 3, and the calculation result is more accurate because the first composite frame contains more data points than the cut-off frequency of the current data frame is directly calculated. The calculated cut-off frequency of the first composite frame may be regarded as the cut-off frequency of the current data frame. Which is the basis for subsequent spreading. Since the cutoff frequency calculation is performed for each frame of data, if the cutoff frequencies of two adjacent data frames are not much different (within 1 kHz), in order to minimize the occurrence of the skip noise, the next data frame of the current data frame may use the cutoff frequency of the current data frame, that is, use the same spreading strategy. If the cut-off frequencies of two adjacent data frames are changed significantly, the initial inputs of the filter may all be set to 0, and the filter parameters may be determined according to the currently calculated cut-off frequency.

Of course, the initial input to the filter may be set to 0 before spreading. And then determining the parameters of the target filter after determining the low-frequency band range according to the determined cut-off frequency. In general, various audio sequences at the same compression encoding rate have the same cut-off frequency. At this time, it is not necessary to detect the cutoff frequency every frame, and in order to reduce the amount of calculation and ensure the calculation accuracy, the cutoff frequencies of several frames may be calculated from the beginning, and the cutoff frequencies of the subsequent frames may take the median of all the calculated cutoff frequency values. The median can avoid selecting numerical values with large calculation errors to the maximum extent, and the confidence of the result is improved. Alternatively, the calculation result of the cut-off frequency of each frame may also take the median together with the calculation result of the previous frame as the final result.

S404, determining a low frequency band range [ f ] according to the cut-off frequency1,f2]And the band range to be extended [ f3,f4]。

Wherein f is1、f2、f3Or f4Are all based on the fcA function of, and f1<f2≤f3<f4

According to said cut-off frequency fcDetermining a low frequency band range [ f ]1,f2]And the band range to be extended [ f3,f4]Wherein f is1Is the left boundary point of the low band range, f2Is the right boundary point of the low band range, f3Is the left boundary point of the band range to be expanded, f4The right boundary point of the frequency band range to be expanded is taken as the right boundary point; f. of1、f2、f3And f4Are all fcSuch as linear or polynomial functions that may be piecewise, including:

f3=fc

if f isc≤2kHz:

f1=0kHz;f2=fc;f4=2fc(ii) a In this case no filter may be used, i.e. the filtered output is identical to the filtered input.

If 2kHz is less than or equal to fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

If f is less than or equal to 6kHzc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

If 8kHz is less than or equal to fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

If 9kHz is less than or equal to fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

If f is less than or equal to 12kHzc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz);

In the above functional relationship, f is usually taken3=fcIf special sound effects are considered, the functional relationship can be changed to fcIs not equal to f3Even a single band range to be extended [ f ]3,f4]The frequency band of (a) may be replaced by a plurality of frequency bands spaced apart from each other. In addition, the higher the frequency, e.g. near f4The frequency components on this side may be considered to be attenuated or blurred so that the high frequency components sound more comfortably and not too sharp. This part may be taken [ f ]3,f4]The last 20% of the band, i.e. [ f ]4–0.2*(f4–f3),f4]. The specific operation may be to make the energy of the part of the frequency band linearly decrease with the increase of the frequency.

S405, determining a target filter according to the low-frequency band range, and performing filtering processing on the data frame y by using the target filter to obtain first low-frequency information x.

Wherein the passband range of the target filter corresponds to the low band range.

Determining a target filter according to the low-frequency band range, and performing the following steps:

the known filter difference equation is:

Figure BDA0001713906510000131

ap is the time domain output response coefficient of the filter, bp is the time domain input response coefficient of the filter, ap and bp are collectively called filter parameters, ap (0) is 1, and LinAnd LoutThe number of elements of bp and ap is respectively indicated, which is also called the order of the filter, wherein IN and OUT are respectively the time domain input response and the time domain output response of the filter, and l and j are natural numbers and represent time sequence numbers. The invention makes the filter parameter be the cut-off frequency f of the data framecA function of, i.e. [ bp, ap ]]=func(fc) Func is the pending function.

The filter may employ a Butterworth (Butterworth) filter of which the order is limited, which is one of electronic filters. A characteristic of the butterworth filter is that the frequency response curve of the passband is smoothest. The method has good use effect and low calculation overhead. The determination of the filter parameters can be implemented by matlab software code: [ bp, ap)]=butter(n,[f1f2]/fs2), wherein fsThe sampling frequency of the data frame is n is a pre-configured constant, the number of elements which can be used for regulating and controlling filter parameters bp and ap specifically comprises can be 2 (corresponding to L)in=Lout4). Because f is1And f2Is fcSo, so button (n, [ f ]1f2]/fs2) is a given func (f)c)。

Correspondingly, the specific matlab code for obtaining x by performing the time-domain filtering processing on y may be:

persistent stateBP

stateBP=zeros(1,4,'single');

[x,stateBP(1,:)]=filter(bp,ap,y,stateBP(1,:));

or:

persistent stateBP

stateBP=zeros(2,2,'single');

[z,p,k]=tf2zpk(bp,ap);

[sos]=zp2sos(z,p,k);

H=dfilt.df2tsos(sos);

H.arithmetic='single';

sos=single([H.getsosmatrix]);

sos_size=single(size(sos,1));

x(:,1)=y(:,1);

for m=1:sos_size

[x(:,1),stateBP(m,:)]=filter(sos(m,1:3),sos(m,4:6),y(:,1),stateBP(m,:));

end

where stateBP is used to store the initial input (initial IN) for each filtering, which is a continuously passing variable. The tf2sos function of matlab in the latter implementation code decomposes the original filtering system into a series of second-order subsystems (L)in=Lout2) in cascade. Therefore, zero-pole pairing of the filtering system can be optimized, filtering stability is improved, and time span of initial IN (the time span of the former is L) can be reducedoutThe latter time span is L ═ 4out=2)。

Furthermore, for 2kHz ≦ fcIf the frequency is less than or equal to 8kHz, the frequency f can be taken correspondingly10 kHz; determining matlab code of filter parameter as [ bp, ap ]]=butter(4,f2/fs*2,'low')。

After the specific value of the cutoff frequency is determined, the corresponding low-frequency band range [ f1, f2] and the parameter of a time-domain Filter (Filter) can be selected according to the functional relationship, and the data frame is subjected to time-domain filtering according to the Filter parameter to obtain the information x of the data frame in the low-frequency band range, namely the low-frequency band range [ f1, f2 ].

The mathematical structure (time domain difference equation structure) of the various filters is the same, different filters represent different filter parameters, i.e. the coefficients of the filtered time domain difference equation. In contrast, the higher the cut-off frequency, the higher the frequency at which the corresponding suitable low frequency band is located.

S406, the first low-frequency information is subjected to nonlinear processing, and a processing result comprises second low-frequency information and high-frequency information.

The second low-frequency information corresponds to a frequency band of [ f1,f2]The high frequency information corresponds to a frequency band of [ f3,f4]。

Many methods for generating high frequency components, which are harmonics, nonlinearly include:

1) absolute value method xh=|x|;

2) Taking the square xh=x2Or constructing a polynomial about x;

3) james Johnston (James Johnston) function: x is the number ofh=x/(K|x|+1),1≤K≤5;

4) Some hardware circuit activation methods, etc.

These methods have limited effect, with the absolute value method being the simplest and most effective. In fact, any method other than the nonlinear method may be used as long as it is effective in generating a high-frequency component. The examples of the present application are not intended to be limiting in any way.

The cut-off frequency represents the amount of spectral information that an audio sequence possesses. In contrast, the lower the cut-off frequency, the less the frequency information contained in the audio sequence, and the less the original information provided to a spreading algorithm to speculate that its high frequency information components are generated, the less efficient the algorithm can spread out, i.e., the less useful, high frequency components. In this case, if a large number of high-frequency components are forcibly extracted, the "over-inference" is likely to occur, and distortion or noise is likely to occur. Moreover, the algorithm has greater difficulty in spreading. This is why the embodiment of the present application is to adaptively determine the parameter information required for spreading according to the cut-off frequency of the audio sequence. The spread spectrum effect can be made to be more excellent fundamentally, and distortion sound or noise can be effectively avoided from being spread. The lower the cut-off frequency, the wider the bandwidth f4–f3The smaller should be or the smaller should be the total amount of spreading, otherwise the risk of distortion or noise will increase. But for low cut-off frequency sequences, even if a small amount of high frequency is expanded upwards, the improvement of the hearing sense is obvious.

To is coming toThe spread spectrum effect is further regulated, and different nonlinear methods can be selected according to different cut-off frequencies when the high-frequency components are obtained. As can be to fcIn the case of ≦ 4kHz, the nonlinear method of 2) or 3) is used, andcthe case of > 4kHz is the case with the 1) non-linear method.

And S407, combining a processing result corresponding to the nonlinear processing of the data frame and a processing result corresponding to the nonlinear processing of the previous data frame of the data frame into a second composite frame.

S408, performing windowing processing on the second composite frame by using a preset windowing function;

and S409, performing Fast Fourier Transform (FFT) on the second composite frame and the first composite frame to respectively obtain a first FFT result and a second FFT result.

The step of performing FFT on the first composite frame Y to obtain Y — FFT (Y) may be executed at any position between step S402 and step S409, which is not limited in this embodiment.

S410, calculating the first FFT result to be in [ f3,f4]Information X inmGain factor g of (1).

The gain factor is used to enhance the first FFT result at [ f [ ]3,f4]The portion within and the second FFT result are at [ f3,f4]Continuity of the outer portion; the extended high frequency component can be made to be harmonious with the low frequency component of the original audio sequence.

Said calculating said first FFT result is at [ f ]3,f4]Gain factors for information within, including:

calculating that the absolute value of the second FFT result is in the frequency band [ fc/2,3fc/4]Mean value of a1

Calculating that the absolute value of the second FFT result is in the frequency band [3fc/4,fc]Average value of and a2

Calculating the first FFT result at [ f ]3,f4]Average value a of absolute values of information in3

When a is2<=a1When according to g ═ a2*a2/a1/a3Calculating the gain factor;

when a is2>a1When according to g ═ a2/a3The gain factor is calculated.

If the high frequency component is to be emphasized further, the gain g can be increased accordingly. In addition, any gain factor calculation method that can achieve the continuous purpose can be considered.

S411, the second FFT result is processed in [ f3,f4]Information in [ f ] using said first FFT result3,f4]Information X inmAnd multiplying the gain factor g, and then replacing to obtain a second FFT result after frequency spreading.

Wherein, the first FFT result of the second composite frame after FFT is X ═ FFT (X)h) Which is located at [ f3,f4]Is XmMixing g X XmReplacing the corresponding position in the second FFT result Y after the first composite frame is subjected to FFT, namely replacing the position [ f ] in Y3,f4]Part corresponding to the position in the spectrum, thereby obtaining the final spectrum Y after spread spectrumm

In addition, to [ f3,f4]When the frequency band is replaced, the frequency band can be additionally replaced by (2 f)s–f4,2fs–f3) The frequency bands are also replaced accordingly, where fsIs the sampling frequency of the audio sequence, thus ensuring the conjugate symmetry of the final spectrum.

And S412, performing inverse FFT processing on the second FFT result after the frequency spreading. Outputting the first composite frame after frequency spreading as IFFT (Y)m)。

And S413, performing windowing processing on the first composite frame subjected to the inverse FFT processing by using the preset windowing function.

And S414, overlapping and adding the first composite frame after windowing and the next composite frame after the same processing is carried out on the first composite frame and the first composite frame, and then outputting the composite frame.

For YmIFFT is obtained after IFFT (Y)m) Then, the window used in step S402 is added again to comply with the tradeAnd (3) a superposition addition method. The next data frame of the data frames will also get a pair IFFT (Y)m) As a result of the windowing, the final result of the overlap-add is: the final time domain output, which is the result of the processing of the data frame, is the IFFT (Y) obtained from the data framem) Last N data points + IFFT (Y) of the data frame next to the data framem+1) The first N data points of (a), where the addition is a point-to-point correspondence addition.

In addition, in response to the attention of the preceding FFT, if 2N is not the power of 2, then 0 is already filled before the preceding FFT, and then Y is processedmAfter the IFFT is finished, only the first 2N points are taken, and then subsequent operations such as windowing and the like are carried out.

The next composite frame processed in the same way as the first composite frame refers to a first composite frame composed of the data frame and the previous data frame when the original audio sequence is subjected to framing processing, the next composite frame is a composite frame composed of the data frame and the next data frame, and the next composite frame is processed in the same way as the first composite frame after the composite frame is subjected to the processing in steps S401 to S414.

In the embodiment of the application, the continuity and the smoothness of the processing are improved in an overlapping and adding mode, the function relation of cut-off frequency, a low-frequency band range and a to-be-expanded frequency band range is established to adaptively adjust and optimize the frequency expansion effect, and the method is suitable for various types of audio sequences; the high-frequency component is generated by adopting the low-frequency component of the data frame, the high-frequency component is supplemented in the frequency domain, the hearing of the audio sequence after the spread spectrum is natural and harmonious, no noise exists, the good spread spectrum effect is achieved, and the total calculation cost is low.

After the spread spectrum in the embodiment of the present application, a good treble effect can be obtained, specifically, refer to fig. 5, where fig. 5 is a schematic diagram of a spectrum of song segments with different compression code rates after being spread according to the method in the embodiment of the present application.

As shown in fig. 5, the speech spectrum of the song segments with the compression bit rates of 48kbps and 64kbps from left to right respectively is shown. The white frame is the high-frequency component obtained by the spread spectrum method according to the embodiment of the present application, and as can be seen from the figure, a very good high-frequency expansion effect can be obtained under different compression code rates. And the cut-off frequencies of the audio sequences with different compression code rates are different, and the cut-off frequencies represent the amount of spectral information possessed by one audio sequence. In the spreading algorithm of the embodiment of the application, matched spreading parameters are preferentially selected according to the self condition of the sequence, namely the cut-off frequency, so that the spreading effect is better, and distortion or noise is effectively avoided. Since the cut-off frequencies of the song segments with the compression code rates of 48kbps and 64kbps are different, the filter parameters, the low-band range and the band range to be extended determined according to the spreading method described in the embodiments of the present application are also different. Thus, the self-adaptive spread spectrum effect of the audio sequences with different cut-off frequencies can be realized. For the audio sequence with high compression code rate, the low-frequency information is rich, and the high-frequency components obtained by expansion can correspond to more than one audio sequence with low compression code rate. The spread spectrum algorithm of the application is directly calculated according to the existing information of the audio sequence, prior knowledge is not needed, the calculation cost is low, the performance is high, the expanded high-frequency component is coordinated with the original audio sequence, the voice music logic information of the original sequence is clearly contained, the sound quality listening feeling of the sequence is practically improved, and no murmurmur or strange sound is basically heard.

It should be noted that, in the adaptive spread spectrum strategy provided in the embodiment of the present application, the control standard is related to the cut-off frequency of the audio sequence, and the functional relationship between the specific control parameter and the cut-off frequency may be adjusted to adapt to a specific scene or different styles of audio sequence types, so that the flexibility is high. In the application scenario of speech feature recognition, spread spectrum may amplify the features of a certain target speech, making recognition easier. Further, as the cutoff frequency is lower, the number of effective high-frequency components that can be spread is relatively smaller, and the difficulty of spreading is higher. The method for spreading spectrum according to the embodiment of the present application can still adaptively and preferentially select/adjust the structure and parameters of the inferred model (for example, adjust the order of the filter model that may be used) for different cut-off frequencies, and can provide a reasonable data amount and data area (time domain or frequency domain) range to be used, and a frequency band (number, position, bandwidth width) to be finally spread, so that a better spreading effect can be obtained as much as possible under the condition that the existing information is limited. The method for adaptively and preferentially selecting or adjusting the spreading strategy according to the functional relationship between the cut-off frequency and the spreading parameter in the embodiment of the application can also be used in other spreading technologies.

Please refer to fig. 6, which is a schematic diagram illustrating a spread spectrum apparatus according to an embodiment of the present application; in this embodiment, the apparatus includes:

a determination unit 100 for determining a cut-off frequency f of a data framec(ii) a Determining a low frequency band range [ f ] from the cut-off frequency1,f2]And the band range to be extended [ f3,f4]Wherein f is1、f2、f3Or f4Are all based on the fcA function of, and f1<f2≤f3<f4

A filtering unit 200, configured to determine a target filter according to the low-frequency band range, and perform filtering processing on the data frame by using the target filter to obtain first low-frequency information, where a pass-band range of the target filter corresponds to the low-frequency band range;

a high frequency generating unit 300, configured to perform a non-linear processing on the first low frequency information, wherein a processing result includes second low frequency information and high frequency information, and the second low frequency information corresponds to a frequency band of [ f [1,f2]The high frequency information corresponds to a frequency band of [ f3,f4];

A spreading unit 400, configured to perform fast fourier transform FFT on the processing result and the data frame to obtain a first FFT result and a second FFT result, respectively; for the second FFT result at [ f3,f4]Information in [ f ] using said first FFT result3,f4]And replacing the internal information to obtain a second FFT result after the frequency spreading.

Optionally, the spreading unit 400 is further configured to:

and performing inverse FFT processing on the second FFT result after the frequency spreading to obtain a data frame after the frequency spreading.

Optionally, determining the low frequency band range [ f ] based on said cut-off frequency1,f2]And the band range to be extended [ f3,f4]Then, the determining unit 100 is specifically configured to:

take f3=fc

If f isc≤2kHz:

f1=0kHz;f2=fc;f4=2fc

If 2kHz is less than or equal to fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

If f is less than or equal to 6kHzc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

If 8kHz is less than or equal to fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

If 9kHz is less than or equal to fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

If f is less than or equal to 12kHzc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz)。

Optionally, when determining the target filter according to the low-band range, the filtering unit 200 is specifically configured to perform the following steps:

[bp,ap]=butter(n,[fleft fright]/fs*2);

wherein bp is the time domain input response coefficient of the filter, ap is the time domain output response coefficient of the filter, bp and ap are collectively called filter parameters, and button is the Butterworth filter parameterThe method comprises the following steps of presetting a function, wherein arguments of the preset function comprise: n is a pre-configured constant and is used for regulating and controlling the number of elements contained in the filter parameters bp and ap; frequency interval fleft,fright]Is the passband range of the filter, fleft=f1,fright=f2,fsIs the sampling frequency of the data frame.

Optionally, the high frequency generating unit 300 is specifically configured to:

taking an absolute value, or taking a squared value, or constructing a polynomial about said first low frequency information, or processing according to the James Johnston function.

Optionally, the apparatus further comprises:

the overlap-add unit 500 (not shown) is configured to perform processing in an overlap-add manner when processing data frames in an audio sequence, so as to improve continuity and smoothness of the processing.

In one embodiment of the apparatus of the present application, the apparatus may perform any of the methods described in fig. 2-4.

Referring to fig. 7, a schematic diagram of a spread spectrum device according to an embodiment of the present disclosure includes a processor 110, a memory 120, and a bus 130. The processor 110 and the memory 120 are connected by a bus 130, the memory 120 is used for storing instructions, and the processor 110 is used for executing the instructions stored by the memory 120 to realize any operation of the method described in fig. 2-4.

Further, the apparatus may also include an input port 140 and an output port 150. Wherein the processor 110, the memory 120, the input port 140, and the output port 150 may be connected by a bus 130.

The processor 110 is configured to execute instructions stored in the memory 120 to control the input port 140 to receive signals and data and to control the output port 150 to send signals and data, thereby performing the steps performed by the apparatus of the above-described method. Wherein input port 140 and output port 150 may be the same or different physical entities. When they are the same physical entity, they may be collectively referred to as an input-output port. The memory 120 may be integrated in the processor 110 or may be provided separately from the processor 110.

As an implementation manner, the functions of the input port 140 and the output port 150 may be implemented by a transceiver circuit or a dedicated chip for transceiving. The processor 110 may be considered to be implemented by a dedicated processing chip, processing circuit, processor, or a general-purpose chip.

As another implementation manner, a device provided by the embodiment of the present application may be implemented by using a general-purpose computer. Program code that implements the functionality of processor 110, input ports 140 and output ports 150 is stored in memory, and a general purpose processor implements the functionality of processor 110, input ports 140 and output ports 150 by executing the code in memory.

For the concepts, explanations, details and other steps related to the technical solutions provided in the embodiments of the present application related to the apparatus, please refer to the descriptions of the foregoing methods or other embodiments, which are not repeated herein.

Those skilled in the art will appreciate that only one memory and processor are shown in fig. 7 for ease of illustration. In an actual controller, there may be multiple processors and memories. The memory may also be referred to as a storage medium or a storage device, and the like, which is not limited in this application.

It should be understood that in the embodiments of the present application, the processor may be a Central Processing Unit (CPU), and the processor may also be other general-purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, and the like. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.

The memory may include both read-only memory and random access memory, and provides instructions and data to the processor. The portion of memory may also include non-volatile random access memory.

The bus may include a power bus, a control bus, a status signal bus, and the like, in addition to the data bus. But for clarity of illustration the various buses are labeled as buses in the figures.

In implementation, the steps of the above method may be performed by integrated logic circuits of hardware in a processor or instructions in the form of software. The steps of a method disclosed in connection with the embodiments of the present application may be directly implemented by a hardware processor, or may be implemented by a combination of hardware and software modules in a processor. The software module may be located in ram, flash memory, rom, prom, or eprom, registers, etc. storage media as is well known in the art. The storage medium is located in a memory, and a processor reads information in the memory and completes the steps of the method in combination with hardware of the processor. To avoid repetition, it is not described in detail here.

It should be understood that the reference herein to first, second, third, fourth, and various numerical designations is merely for ease of description and distinction and is not intended to limit the scope of the embodiments of the present application.

It should be understood that, in the various embodiments of the present application, the sequence numbers of the above-mentioned processes do not mean the execution sequence, and the execution sequence of each process should be determined by its function and inherent logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.

Those of ordinary skill in the art will appreciate that the various illustrative logical blocks and steps (step) described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.

In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.

In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the application to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website site, computer, server, or data center to another website site, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that incorporates one or more of the available media. The usable medium may be a magnetic medium (e.g., floppy Disk, hard Disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., Solid State Disk (SSD)), among others.

The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:音频编码器、音频解码器及相关方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!