XAUDIO2_FILTER_PARAMETERS 結構 (xaudio2.h)
定義來源語音的篩選參數。
語法
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。 允許的最大頻率等於來源音效的取樣率除以六,對應至最大篩選弧度頻率 1。 例如,如果音效的取樣速率是 48000,而所需的截斷頻率是該取樣率允許的最大值 8000, 則 Frequency 的值會是 1。 如果定義XAUDIO2_HELPER_FUNCTIONS,XAudio2.h 會包含 XAudio2RadianToCutoffFrequency 和 XAudio2CutoffFrequencyToRadian 協助程式函式,以在 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