我目前有got this bounty running on how to resample audio data with the intention of increasing the pitch。插值Hermite方法的說明
已經有很多解決方案,我不得不承認我對選擇和信息感到有點不知所措。
我是針對this solution,發現此塊的代碼:
public static float InterpolateCubic(float x0, float x1, float x2, float x3, float t)
{
float a0, a1, a2, a3;
a0 = x3 - x2 - x0 + x1;
a1 = x0 - x1 - a0;
a2 = x2 - x0;
a3 = x1;
return (a0 * (t * t * t)) + (a1 * (t * t)) + (a2 * t) + (a3);
}
public static float InterpolateHermite4pt3oX(float x0, float x1, float x2, float x3, float t)
{
float c0 = x1;
float c1 = .5F * (x2 - x0);
float c2 = x0 - (2.5F * x1) + (2 * x2) - (.5F * x3);
float c3 = (.5F * (x3 - x0)) + (1.5F * (x1 - x2));
return (((((c3 * t) + c2) * t) + c1) * t) + c0;
}
這看起來似乎很簡單,我可以繞到我的頭,但我想知道我怎麼輸入量我想通過增加我的音調。這使我對以下幾個問題:
第一種方法的T-參數取0和1之間的數字。這是我提高了音調的因素是什麼?這會使1增加100%的間距(基本上是速度的兩倍)?
如果上述理論是正確的,我可以輸入一個多於1的因子嗎?如果沒有,我將如何能夠做到這一點?
如果說明上述內容,我已經清楚地表明我完全偏離軌道,有人請幫助clairfy如何使用此方法控制音高增加量?
非常感謝。
比我自己能說的更好。 – I82Much 2011-03-22 12:25:23