2012-05-24 12 views
0

我一直在網上搜尋有關聲碼器或自動調諧的資料,但沒有得到任何滿意的答案。有人可以用簡單的方式解釋如何使用載體聲音文件自動調整給定的聲音文件? (我很熟悉fft,開窗,重疊等等,我只是不知道我們做什麼時,我們有載體和原始聲音文件必須調製)理論背後自動調諧/聲碼器

編輯:在看了更多之後,我終於確切知道我在找什麼 - 一個聲道聲碼器。它的工作方式是,它需要兩個輸入,一個是語音信號,另一個是音頻信號豐富的頻率。音樂信號由語音信號的包絡調製,並且輸出信號聽起來像在音樂聲中唱歌的聲音。

感謝您的幫助!

+0

您可能要問這個信號在http://dsp.stackexchange.com超過pricessing問題 – hotpaw2

+0

你可能想嘗試Melodify SDK。 – Danijel

回答

0

基本上你做一個FFT,然後在頻域您將信號傳送到最近的完美半音音高。

3

使用相位聲碼器來調整間距基本上是在頻域基音估計加插值。

相位聲碼器的重建方法,則可能在重新取樣,潛在地,一個新的FFT箱間距所有的頻率向上或向下通過一些傳動比換的頻譜。相位聲碼器算法還使用在相鄰FFT幀之間共享的信息來確保該內插結果可以跨幀邊界創建連續波形。例如它會調整插值結果的相位,以確保連續的正弦波重建是連續的,而不是在幀之間出現中斷或不連續或相位抵消。

多少來移動光譜向上或向下通過音調估計來確定,並計算所述源的所估計的音調和目標俯仰的之間的比率。再次,相位聲碼器使用關於FFT幀之間的任何相位差的信息來幫助更好地估計音調。這可以通過使用比單個本地FFT幀更多的全局信息來實現。

當然,這種頻率和相位變化可能會抹掉瞬態細節並導致各種其他失真,所以實際相位聲碼器產品可能會另外做各種自定義(通常是專有的)特殊情況技巧來嘗試解決其中的一些問題。

+0

所以在某人唱歌的情況下,爲了讓他們的音調適合正確的音符,您可以確定最近的音符和移位。但是如果我想重新創建歌曲化效果,那麼在頻率豐富的載體文件的幫助下,可以將簡單的聲音轉換爲音樂? – rounak

1

第一步是音高檢測。在維基百科中簡要介紹了一些基音檢測算法:http://en.wikipedia.org/wiki/Pitch_detection_algorithm 基音檢測可以在頻域或時域中實現。在這兩個領域中存在各種技術的各種技術(延遲,質量等)。在F領域,重要的是認識到天真的方法由於時間/頻率的折衷而非常受限制。你可以繞過這個限制,但它需要工作。

一旦你已經確定了球場上,你所希望的間距進行比較,並確定你需要多少實際音高移動。

最後一步是音高移位,其中,像音調檢測,能在T或F域中進行。其他人提到的「相位聲碼器」方法是F域方法。牛逼域的方法包括(以提高質量順序)OLA,SOLA和PSOLA,其中一些你可以讀到這裏:http://www.scribd.com/doc/67053489/60/Synchronous-Overlap-and-Add-SOLA

+0

在頻域中,音調檢測可以簡單地檢測哪個「bin」或頻率指標具有最大能量? (在每個指數的複數數量級中最大)儘管它有一定意義,但它似乎太容易成爲事實。維基頁面沒有提到這一點。 – rounak

+1

有兩個實際問題:1.對於複雜的聲音,基本頻率可能不是最強的,所以您需要查看峯值之間的關係。 2.箱的大小通常太大而無法得到準確的近似值,所以您還需要考慮相位。 –