2016-11-06 75 views
3

我想製作一些類似於「神經網絡音樂電臺」的音樂,它將根據訓練集中的音樂不停地創作新音樂。通過神經網絡產生音樂

我見過的其他項目,在音符中做音樂(即http://www.hexahedria.com/2015/08/03/composing-music-with-recurrent-neural-networks/),但我想訓練我的網絡上的預處理MP3文件,以產生更大的音樂可能性。

第一個想法是通過每個時間幀的一組特徵來描述音樂,並訓練神經網絡以在下一個時間幀「預測」特徵。

我做了基於四層LSTM神經網絡的非常原始的系統,其中特徵是幅度頻譜系數。因此,模型輸入是每個時間幀(〜50ms)的時變幅度譜系數的集合,模型輸出也是神經網絡預測的下一個幅度譜系數。 爲了計算相位,我使用Sin跟蹤系統(這裏描述https://www.coursera.org/learn/audio-signal-processing/lecture/gjiP7/sinusoidal-model-1

這個原型給我一些低質量的結果。生成的音樂是非常原始的,嘈雜的,有時甚至可以相互地嚎叫,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈。

我想問一下並討論改進結果的方法。

1)可以使用什麼樣的功能?我想添加一些幫助神經網絡找到信號中高級相關性的高級特徵,比如Mel頻率倒譜系數(MFCC),但也許我可以採取其他措施。或者完全拒絕基於光譜的特徵來支持其他事物。 我可以添加多長時間的音頻功能,以幫助神經網絡考慮音樂的長時間「風格」。

2)我可以用什麼模型進行音頻合成? 我的想法是從跟蹤的正弦波合成模型,基於幅度譜+白噪聲濾波器生成音樂的隨機部分。可能它不是合成的最佳方法。 可能存在類似Vocoder的東西,但不適用於語音合成,而適用於各種音頻合成。

3)將系統作爲輸出給出不是具體的特徵預測,而是給出特徵預測的可能正態分佈參數。 4)可能是「預測性神經網絡」不是實現我不間斷創作音樂想法的好方法。是否有可能使用,例如重建限制玻爾茲曼機器,它不會完全「預測」下一幀音樂,但會嘗試從小尺寸輸入矢量「重建」音樂?

5)我可以使用什麼方法對神經網絡輸出進行非常高級別的控制,例如我明白,每5秒平均音頻能量大約70db,並且有一些音樂節拍。我如何控制神經網絡工作來預測applid的限制?

如果你想你的系統限制爲音頻輸入,而不是從頭開始設計所有的功能,你也許可以考慮使用madmon庫我將您的任何想法和建議:-)

+0

有趣的項目!我不太瞭解機器學習如何評論問題的這一部分,但在音頻方面,還有一些想法:儘管頻譜的一般信封在分類音頻信號時很有用,但對於音頻信號的分類幾乎是無用的合成它們。嘗試檢測超過特定閾值的所有特定正弦波,並將其頻率和平均幅度在一段時間內用作「表示」,您可能會獲得最好的運氣。它仍然不會聽起來很自然,但你可能會設法提取有音樂意義的信息。 – Linuxios

+0

剛剛意識到你與我接受的確切課程有關,我所建議的正是塞拉教授的「正弦模型」。 – Linuxios

回答

0

您可以在blog post中查看當前音樂生成主題的方法的詳盡回顧。