xaudio2.h) (XAUDIO2_FILTER_PARAMETERS 结构
定义源语音的筛选器参数。
语法
typedef struct XAUDIO2_FILTER_PARAMETERS {
XAUDIO2_FILTER_TYPE Type;
float Frequency;
float OneOverQ;
} XAUDIO2_FILTER_PARAMETERS;
成员
Type
Frequency
按 (2 * sin (pi * (所需的筛选器截止频率) /sampleRate) ) 计算的筛选器弧度频率。 频率必须大于或等于 0 且小于或等于 XAUDIO2_MAX_FILTER_FREQUENCY。 允许的最大频率等于源声音的采样率除以 6,对应于最大筛选器弧度频率 1。 例如,如果声音的采样率为 48000,而所需的截止频率是该采样率允许的最大值 8000,则 Frequency 的值为 1。 如果定义了XAUDIO2_HELPER_FUNCTIONS,XAudio2.h 将包括 XAudio2RadiansToCutoffFrequency 和 XAudio2CutoffFrequencyToRadians 帮助程序函数,用于在 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