2012-12-16 77 views
2

有什麼選擇能夠將錄製的聲音變形爲Android中的有趣音調? iPhone可能有像http://dirac.dspdimension.com這樣的選項,我們是否有一些類似的Android庫,可以幫助從錄製的文件中創建有趣的聲音?要求是通過'talk tom'/'chipmunkify'來創建一些東西(如果這有助於理解上下文)。Android錄製的聲音變形或操縱有趣的聲音

如果沒有準備好的庫,有什麼其他方法可以做到這一點?

+2

據我所知,沒有圖書館。你必須自己編碼。 StackOverflow不會給你準備好的代碼,只是想法如何做。 – Leandros

+0

@Leandros +1。我知道你可以通過NDK使用一些C庫。這顯然很難做到,但這是可能的。 – mtmurdock

+0

到目前爲止,android上有很多語音變體應用可用,你的意思是說可能所有的應用都編碼了自己的語音變體邏輯? 這個任務很複雜,但相當標準,所以我仍然對可用庫的想法很開放。但是,是的,做更多定製的事情,可能需要從頭編碼。無論如何,我正在尋找各方面的見解。 –

回答

0

移動電話上的大多數語音調製應用目前似乎正在使用音調調製和一些附加音頻效果的變化(請注意,語音變形是要解決的更大問題)。

在Android上「AudioTrack」可幫助您調整音高設置(以及其他許多音頻特徵),以操縱導致所需有趣/「芯片組合」版本的輸入音頻。

2

一種選擇是使用AudioTrack。它自API 3起可用,並且使用相當廣泛。它可以幫助您修改您想要變形的音頻文件的頻率,從而調整音高。更高的音調會給你花栗鼠一樣的聲音,你正在尋找。

但是,由於其年老,AudioTrack可能很難爲您執行。試試Android的soundpool api。它的靈活性,可以一次播放數十種聲音,並且可以讓您輕鬆修改音高/頻率。

這裏是我測試過它(它的工作原理):

SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0); 
boolean isSoundLoaded = false; 
float frequencyPitch = 1.3f; // tweak this. it accepts any number between 0.5f and 2.0f 
int soundID = soundPool.load(filePath+fileName, 1); 
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() { 
     @Override 
     public void onLoadComplete(SoundPool soundPool, int sampleId, int status) { 
      isSoundLoaded = true; 
      if(isSoundLoaded) 
    { 
    soundPool.play(soundID, 1f, 1f, 1, 0, frequencyPitch); 
    } 
     } 
    }); 
0

嘗試嵌入應用內的純數據。純數據很棒,很有趣。試試吧,它很容易讓聲音變形。