AudioEffectPitchShift

繼承: AudioEffect < Resource < RefCounted < Object

為音訊匯流排新增音高位移效果。

可提升或降低原始聲音的音高。

說明

可在不改變速度的情況下調變音高;所有頻率皆可升降,且對瞬態的影響極小。

教學

屬性

FFTSize

fft_size

3

int

oversampling

4

float

pitch_scale

1.0


列舉

enum FFTSize: 🔗

FFTSize FFT_SIZE_256 = 0

使用 256 個取樣點進行快速傅立葉轉換。延遲最低,但長時間穩定性最差。

FFTSize FFT_SIZE_512 = 1

使用 512 個取樣點進行快速傅立葉轉換。延遲低,但長時間穩定性較差。

FFTSize FFT_SIZE_1024 = 2

使用 1024 個取樣點進行快速傅立葉轉換。延遲與穩定性折衷。

FFTSize FFT_SIZE_2048 = 3

使用 2048 個取樣點進行快速傅立葉轉換。延遲高,但穩定。

FFTSize FFT_SIZE_4096 = 4

使用 4096 個取樣點進行快速傅立葉轉換。延遲最高,但穩定性最佳。

FFTSize FFT_SIZE_MAX = 5

代表 FFTSize 列舉的大小。


屬性說明

FFTSize fft_size = 3 🔗

快速傅立葉轉換緩衝區大小。數值越高效果隨時間越平滑,但延遲也越大;此延遲對瞬間振幅變化的聲音尤為明顯。


int oversampling = 4 🔗

  • void set_oversampling(value: int)

  • int get_oversampling()

過取樣係數。值越高音質越好,但 CPU 負擔也越重,若處理不及可能導致爆音。


float pitch_scale = 1.0 🔗

  • void set_pitch_scale(value: float)

  • float get_pitch_scale()

音高縮放倍率。1.0 為預設音高且不改變播放。pitch_scale 取值範圍為 0.0(無限低,聽不見)到 16(高出原音高 16 倍)。