xaudio2.h) (XAUDIO2_FILTER_PARAMETERS 结构

定义源语音的筛选器参数。

语法

typedef struct XAUDIO2_FILTER_PARAMETERS {
  XAUDIO2_FILTER_TYPE Type;
  float               Frequency;
  float               OneOverQ;
} XAUDIO2_FILTER_PARAMETERS;

成员

Type

XAUDIO2_FILTER_TYPE

Frequency

按 (2 * sin (pi * (所需的筛选器截止频率) /sampleRate) ) 计算的筛选器弧度频率。 频率必须大于或等于 0 且小于或等于 XAUDIO2_MAX_FILTER_FREQUENCY。 允许的最大频率等于源声音的采样率除以 6,对应于最大筛选器弧度频率 1。 例如,如果声音的采样率为 48000,而所需的截止频率是该采样率允许的最大值 8000,则 Frequency 的值为 1。 如果定义了XAUDIO2_HELPER_FUNCTIONS,XAudio2.h 将包括 XAudio2RadiansToCutoffFrequencyXAudio2CutoffFrequencyToRadians 帮助程序函数,用于在 hertz 和弧度频率之间进行转换。 定义XAUDIO2_HELPER_FUNCTIONS还将包括 XAudio2CutoffFrequencyToOnePoleCoefficient ,用于在 hertz 和适合与 LowPassOnePoleFilter 和 HighPassOnePoleFilter 一起使用的单极系数之间进行转换。

OneOverQ

Q 因子的倒数。 控制频率超出频率的阻尼速度。 值越大,阻尼速度越快,值越小则会导致阻尼逐渐发生。 必须大于 0 且小于或等于 XAUDIO2_MAX_FILTER_ONEOVERQ。

注解

使用以下值设置XAUDIO2_FILTER_PARAMETERS在声学上等效于完全绕过的筛选器。

XAUDIO2_FILTER_PARAMETERS FilterParams;
FilterParams.Frequency = 1.0f;    
FilterParams.OneOverQ = 1.0f;
FilterParams.Type = LowPassFilter;

以下公式显示了 XAUDIO2_FILTER_PARAMETERS 的成员与每语音筛选器之间的关系。

Yl( n ) = F1 yb( n ) + yl( n - 1 )
Yb( n ) = F1 yh( n ) + yb( n - 1 )
Yh( n ) = x( n ) - yl( n ) - OneOverQ(yb( n - 1 )
Yn( n ) = Yl(n) + Yh(n)


其中:

Yl = lowpass output
Yb = bandpass output
Yh = highpass output
Yn = notch output
F1 = XAUDIO2_FILTER_PARAMETERS.Frequency
OneOverQ = XAUDIO2_FILTER_PARAMETERS.OneOverQ

平台要求

Windows 10 (XAudio2.9) ;Windows 8、Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)

要求

   
标头 xaudio2.h

另请参阅

IXAudio2Voice::GetFilterParameters

IXAudio2Voice::SetFilterParameters

XAudio2 结构