IXAudio2SourceVoice::SetFrequencyRatio 方法 (xaudio2.h)

设置语音的频率调整比。

语法

HRESULT SetFrequencyRatio(
  [in] float  Ratio,
  [in] UINT32 OperationSet
);

参数

[in] Ratio

频率调整比。 此值必须介于 XAUDIO2_MIN_FREQ_RATIO 和创建语音时指定的 MaxFrequencyRatio 参数之间, (请参阅 IXAudio2::CreateSourceVoice) 。 XAUDIO2_MIN_FREQ_RATIO当前为 0.0005,这允许音调降低至多 11 个八度程。

[in] OperationSet

将此调用标识为延迟批处理的一部分。 有关详细信息,请参阅 XAudio2 操作集 概述。

返回值

如果成功,则返回S_OK,否则返回错误代码。 有关错误代码的说明,请参阅 XAudio2 错误代码。

注解

频率调整表示为 源频率 / 目标频率。 更改频率比率会更改音频在语音上播放的速率。 大于 1.0 的比率将导致音频播放速度更快,低于 1.0 的比率将导致音频播放速度变慢。 此外,频率比会影响语音上音频的音调。 例如,值 1.0 对音频没有影响,而值 2.0 将音调提高一个八度,0.5 将音调降低一个八度。

如果调用 SetFrequencyRatio 并指定有效范围之外的 Ratio 值,该方法会将频率比率设置为最接近的有效值。 还将为调试版本生成警告。

注意IXAudio2SourceVoice::GetFrequencyRatio 始终返回语音的实际当前频率比。 但是,这可能与最近 IXAudio2SourceVoice::SetFrequencyRatio 调用设置的比率不匹配:仅在音频引擎下次在 IXAudio2SourceVoice::SetFrequencyRatio 调用 (之后或在相应的 IXAudio2::CommitChanges 调用之后,才会更改实际比率, 如果调用 了 IXAudio2SourceVoice::SetFrequencyRatio 且) 延迟的操作 ID。
 

平台要求

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

要求

要求
目标平台 Windows
标头 xaudio2.h

另请参阅

如何:更改语音音调

IXAudio2SourceVoice