2009-02-28 123 views
2

我正在處理復調音樂轉錄項目。我閱讀了一些論文,並閱讀了解釋類似任務的文章。我對這個問題領域的許多方面非常困惑。希望有人能幫助我。音樂轉錄

到目前爲止,我已經從給定的mp3獲得解碼音頻數據流。

我明白髮病檢測是轉錄的第一步。 。有沒有可用於檢測起始的Java庫?

接下來,檢測基頻也使用FFT進行,因爲我已經讀過。

我想知道在這些任務中使用FFT。 (我對FFT很不熟悉)。對於起始檢測和F0檢測,是否需要執行FFT? 如果不是其他的方式。 我可以在我的audiostream上執行FFT,還是有一些其他操作必須完成才能操作這些音頻數據。

非常感謝。

+0

有趣的話題! – erickson 2009-02-28 15:28:59

回答

3

音樂轉錄意味着從聲音(或音頻數據)創建音樂符號。雖然有成就的音樂家,特別是作曲家能夠做到這一點,但用機器做這件事是一件非常困難的事情,據我所知,迄今爲止一直沒有成功 - 主要是學術實驗。

基本上,要識別筆記,你想知道他們從哪裏開始,他們在哪裏結束,他們的音調是什麼。傅里葉變換是將時域(音頻數據)轉換到頻域(音調)的最基本方式 - 原則上。在實踐中,樂器會產生大量的泛音(泛音),如果我們添加了複音(許多F0),那就很糟糕。

您可以嘗試向FFT提供音頻數據的50毫秒連續片段。這樣你就可以得到每個切片的光譜,然後檢測每個切片中最強的峯值,並根據連續切片之間發生的情況推斷節奏。

對不起,我無法幫助太多...但只是想指出,你想要做的是非常困難,嚴重。也許你應該從簡單的事情開始,比如檢測一個音符的正弦波旋律。祝你好運!

6

該字段被稱爲機器收聽。

數字編碼音樂的複音是機器聽力的聖盃之一。這是一個未解決的問題,也是一個積極研究的領域。子場包括:

  • 開始檢測
  • 節拍提取(檢測度量的結構,時間SIG等)
  • 基音檢測(可能使用自動correllation,等方法,對單聲道信號,但應用於複雜的和絃音樂時未解決的問題)
  • 密鑰檢測(密鑰簽名檢測)。

根據項目的性質,您可能會發現探索SuperCollider編程環境很有用。 SC是爲這樣的項目設計的語言,已經有大量的機器監聽插件(ugens)以及用於處理FFT,音頻信號等的綜合框架。

+0

很好的答案。我見過的最好的商業案例是Celemony Melodyne的DNA:http://www.celemony.com/cms/index.php?id = dna 他們取得的成就非常令人印象深刻,儘管它不直接用於轉錄。 – 2009-03-02 09:26:04