2013-10-03 56 views
4

我對音頻處理方面沒有任何知識的音樂愛好者有項目建議書。我認爲這個項目很有意思,但我對如何實施它沒有清晰的瞭解。關於歌曲背景音樂生成方法的問題

項目建議書:有人喜歡唱歌,但是找不到合適的音樂伴奏(背景音樂)。可以彈吉他的人,可以彈吉他唱歌(吉他提供的節奏是背景音樂)。該項目旨在達到類似的效果,例如爲人們演唱吉他。

我認爲實施這個項目,需要以下組件:

  1. 音樂知識(如何吉他播放背景音樂(也許簡單的模式會工作))
  2. 信號/音頻處理

    • 按鍵檢測
    • 節拍檢測
    • 和絃匹配荷蘭國際集團

有我錯過達到我的目的的任何其他組件?任何圖書館都可以幫助我?該項目預計在1.5個月內完成。可能嗎? (我只是希望它能像吉他初學者一樣播放背景音樂)。對於開發語言,我不會使用c/C++。目前我最喜歡的是Python,但可能使用其他編程語言,只要它可以幫助簡化實現過程。

我沒有音樂背景,只是研究非常基本的音頻處理。任何建議或評論apprietiated。


編輯的信息: 我試圖尋找自動伴奏,並有一些軟件。我沒有找到任何開源項目,我想知道它如何處理音頻信息的細節。如果你知道任何有關它的開源項目,請分享你的知識,謝謝。

+0

至少有一個應用程序可以執行此操作。通過dreamwalk interactive爲iOS設置Jam。 –

+0

是的,我剛剛在http://research.microsoft.com/en-us/um/people/dan/mysong/上找到了一個。有沒有關於這個話題的開源項目?我必須做一些與音樂處理有關的事情,目前我只對音樂伴奏感興趣(處理密鑰或世代)。 – Robin

+0

我不知道,而且我非常瞭解這個領域。即使對於音頻軟件開發經驗豐富的人來說,我認爲1.5個月將是雄心勃勃的。 –

回答

4

您可能會先考慮一下吉他手會如何成功地陪伴歌手唱歌,因爲他們沒有事先知道歌曲的關鍵點,和絃進展或節奏(更不用說它的結構,風格等)

在伴奏者(人類或電腦)之前沒有聽過這首歌曲的情況下,實時做到這一點很困難,因爲需要一些時間來分析按順序演唱的內容爲伴奏做出適當的音樂選擇。在現實世界中具有這種能力的吉他手或其他音樂家將被認爲是高度熟練的。

這聽起來像是一個非常具有挑戰性的項目1.5個月,如果你沒有音樂背景。 '也許簡單的模式會起作用' - 也許,但是有大量的簡單模式可能!

那麼雄心勃勃的項目可能是:

  • 記錄整首歌曲並進行分析,然後呈現一個後盾(仍然是一個 大量的工作!)
  • 創建單個和聲線或部分,以相同的 方式聲樂harmoniser效果做
  • 由用戶

編輯答覆生成基於一個 和絃進行輸入的背襯你的第一個評論:

如果你想產生一個完整的伴奏,你需要(如你所說)處理的關鍵和和絃進展,以及時間(包括時間s忽略並檢測該條的哪一拍是「拍1」)

獲得這個級別的定時信息可能很困難,因爲僅使用從聲音中進行的拍子檢測不可能使用用於從拍子中獲取拍子的標準技術一首歌曲(在某些頻率範圍內尋找振幅峯值)。

通過不計算時間,您可能仍然會獲得良好的效果,並且只需在唱歌音符(或其子集)的開頭按時演奏和絃。

所有,那麼你需要做的是

  • 檢測的注意事項。這篇文章是關於檢測python中的音高:Python frequency detection。振幅檢測更直接。
  • 想出了一個算法,用於確定作品的根音(並且 - 更加雄心勃勃 - 它發生變化的地方)。在某些情況下,可能很難從單獨的旋律中辨別出來。您可以先假設第一個音符或最常見的音符是根音。
  • 想出一個算法來產生和絃進程(做一個網絡搜索'協調一個旋律')。很明顯,沒有客觀的方法來做到這一點,你可能只能在有限的範圍內做到這一點。您可能需要先假定一小部分和絃,例如I,IV,V。這些應該適用於最簡單的'童謠'風格的曲調。

當然,如果您限制自己以節拍1開始的簡單曲調,那麼您可以更輕鬆地計算出拍號。總的來說,我認爲你的成功之路將是首先嚐試處理簡單的案例,然後再以此爲基礎。

+0

對於實時分析來說,這太困難了,所以它不是基於實時的。這意味着,我有沒有任何音樂伴奏的歌曲。我可以根據歌曲進行分析,並用音樂伴奏輸出歌曲。 – Robin

+0

作爲迴應編輯上面。 –

+0

非常感謝。您的回覆非常有幫助。 – Robin