基于深度學(xué)習(xí)LSTM模型的音樂分類方法設(shè)計_第1頁
基于深度學(xué)習(xí)LSTM模型的音樂分類方法設(shè)計_第2頁
基于深度學(xué)習(xí)LSTM模型的音樂分類方法設(shè)計_第3頁
基于深度學(xué)習(xí)LSTM模型的音樂分類方法設(shè)計_第4頁
基于深度學(xué)習(xí)LSTM模型的音樂分類方法設(shè)計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

目錄

1引言............................................................................................................................1

1.1項目背景......................................................................................................1

1.2開發(fā)環(huán)境與工具..........................................................................................2

1.2.1Python簡介..........................................................................................2

1.2.2Tensorflow簡介..................................................................................3

1.2.3Python第三方庫簡介..........................................................................3

1.2.4PythonCharm簡介................................................................................4

1.2.5VisualStudioCode簡介......................................................................4

2需求分析....................................................................................................................4

2.1可行性需求分析..........................................................................................4

2.2數(shù)據(jù)集分析..................................................................................................5

2.3關(guān)鍵技術(shù)分析....................................................................................................5

2.3.1數(shù)據(jù)采集技術(shù).........................................................................................5

2.3.2LSTM技術(shù)................................................................................................6

3數(shù)據(jù)采集....................................................................................................................6

3.1數(shù)據(jù)集需求分析..........................................................................................6

3.2數(shù)據(jù)集獲取分析..........................................................................................7

3.3數(shù)據(jù)集下載..................................................................................................8

4數(shù)據(jù)集處理................................................................................................................8

4.1數(shù)據(jù)預(yù)處理..................................................................................................9

4.2切分訓(xùn)練集和測試集................................................................................11

5模型構(gòu)建及評估分析..............................................................................................11

5.1模型構(gòu)建....................................................................................................11

5.1.1模型網(wǎng)絡(luò)結(jié)構(gòu)........................................................................................11

5.1.2創(chuàng)建LSTM模型...................................................................................12

5.2模型編譯...........................................................................................................13

5.3模型訓(xùn)練與調(diào)優(yōu)...............................................................................................13

I

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

5.3.1模型訓(xùn)練...............................................................................................13

5.3.2學(xué)習(xí)率調(diào)優(yōu)...........................................................................................14

5.4出現(xiàn)問題與解決方案.......................................................................................14

5.4.1問題分析...............................................................................................14

5.4.2解決方案...............................................................................................15

5.5模型部署...........................................................................................................16

5.5.1前端設(shè)計...............................................................................................16

5.5.2系統(tǒng)效果展示及分析...........................................................................17

6小結(jié)..........................................................................................................................18

參考資料.........................................................................................................................20

II

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

基于深度學(xué)習(xí)LSTM模型的音樂分類方法設(shè)計

1引言

在人類第一次構(gòu)思可編程計算機(jī)的時候,就已經(jīng)開始思考如何才能計算機(jī)變

得更為智能。如今,人工智能(artifcialintelligence,AI)已經(jīng)成為一個正

蓬勃發(fā)展且具有眾多實際應(yīng)用的領(lǐng)域。我們都希望通過智能軟件在工業(yè)、制造

業(yè)、醫(yī)學(xué)以及科學(xué)等領(lǐng)域發(fā)揮重要作用。人工智能早期階段,那些用人類的智

力很難解決、但對計算機(jī)來說比較簡單的問題很快得到解決,例如那些需要通

過一系列數(shù)學(xué)規(guī)則來描述的問題。解決那些人類很容易就能執(zhí)行、但卻很難形

式化描述的任務(wù)是人工智能的一大挑戰(zhàn),比如識別人們說的話或者圖像中的事

物。對于這些問題,人類往往可以憑借直覺輕易且直接地解決。

而深度學(xué)習(xí)的出現(xiàn)解決了上述大部分難題,它可以讓計算機(jī)從經(jīng)驗中學(xué)習(xí),

并根據(jù)層次化的概念體系去理解世界,每個概念則通過和一些相對簡單的概念

之間的關(guān)系定義。讓計算機(jī)從經(jīng)驗獲取知識,避免了人類自己去手動的指定計

算機(jī)所需要知道的知識而是讓它更加接近人類本身的學(xué)習(xí)功能。而且層次化的

概念可以讓計算機(jī)從構(gòu)建簡單的概念進(jìn)一步去理解更為復(fù)雜的概念。

1.1項目背景

隨著互聯(lián)網(wǎng)的不斷高速發(fā)展,數(shù)字音樂以極快的速度增長。面對海量的音樂,

如何快速準(zhǔn)確的檢索出用戶想要的音樂變的越來越重要了。而音樂分類作為音

樂信息檢索的重要組成部分成為近年來的熱點。傳統(tǒng)的音樂分類方法是首先手

動提取特征,然后再使用機(jī)器學(xué)習(xí)進(jìn)行分類,這種方法會產(chǎn)生兩個缺陷,一是手

動提取特征很難保證特征的有效性和準(zhǔn)確性;二是傳統(tǒng)的機(jī)器學(xué)習(xí)分類方法在

多分類問題上表現(xiàn)不佳,且無法進(jìn)行大規(guī)模數(shù)據(jù)的訓(xùn)練。針對以上問題,本文提

出了一種基于深度神經(jīng)網(wǎng)絡(luò)的音樂流派分類的方法,并分析了不同結(jié)構(gòu)的深度

神經(jīng)網(wǎng)絡(luò)對音樂流派分類的影響。

音樂是一種重要的音頻數(shù)據(jù),自動音樂分類的實現(xiàn)是音頻分類的一個重要

分支。音樂流派是描述音樂內(nèi)容最流行的方式之一,在音樂信息檢索、音樂推

薦和在線音樂訪問等方面有著廣泛的應(yīng)用叫。音樂流派是用來描述大量音樂收

藏的高級描述符,它們有助于識別音樂作品中的某些共同特征。人類認(rèn)識到音

樂屬于不同的流派,如爵士樂、藍(lán)調(diào)、古典、搖滾、金屬朋克、嘻哈、流行音

樂、電子等。這種表征通常是基于人耳所感受到的聲學(xué)感覺。不同的音樂流派

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

通常被寬松地定義為有些歌曲可能被不同的個體根據(jù)他們的興趣分類成不同的

流派。音樂流派已經(jīng)被廣泛用于大型音樂數(shù)據(jù)庫組織、音樂商店和音樂收藏的

目錄中。在數(shù)字化時代之后,大量的信息都是文字的、圖形的、數(shù)字的,所有

這些都是在一眨眼的時間里被處理的,自動化的音樂流派類型分類就是這樣一

個探索領(lǐng)域。隨著電子音樂發(fā)行,由于模擬音頻信號和新的內(nèi)容的產(chǎn)生,音樂

內(nèi)容往往非常巨大。由于CD、DVD和磁帶不再是音樂的唯一來源,互聯(lián)網(wǎng)的出

現(xiàn)對信息的流動有很大的控制力,即從網(wǎng)絡(luò)到世界上與這個網(wǎng)絡(luò)相連的每一個

人。從廣播到播客,從完整的音樂收藏到單支音頻樣本,只需點擊幾下即可下

載所有內(nèi)容其結(jié)果是大量的歌曲、音頻文件堆積如山。在各種文件夾中,使用

戶追蹤并管理他們喜歡的音樂類型成為一個可怕的任務(wù)。將每一首歌通過標(biāo)記

為適當(dāng)?shù)念愋蛠砀綦x恰好是最符合邏輯的方法,以便管理海量數(shù)據(jù)庫中的音頻

文件。從組織音樂收藏所需的時間和人力來看,由于需要更有效的工具來瀏覽、

組織和動態(tài)更新合輯,音樂流派人工分類變得非常昂貴,因此需要自動進(jìn)行音

樂流派分類。當(dāng)自動音樂流派分類可用時,對音樂推薦系統(tǒng)和自動播放列表的

產(chǎn)生是具有正向影響作用的。這些都屬于音樂信息檢索的廣泛領(lǐng)域。音樂信息

檢索在數(shù)字音頻的處理、搜索和檢索中發(fā)揮著關(guān)鍵作用。

自動音樂流派分類,在此可以將這個問題進(jìn)行嚴(yán)格的定義,即通過基于音

樂特征表現(xiàn)計算分析,將音樂信號分類為一個獨(dú)特的流派。音樂流派自動分類

是音樂信息檢索系統(tǒng)的一個基本組成部分。本文將音樂中的流派分類過程分為

特征提取和多類分類兩個步驟。在特征提取步驟中,從音樂信號中提取代表音

樂的信息。特征提取應(yīng)該是全面的(能夠非常好的刻畫音樂的特點),緊湊的(需

要降低數(shù)據(jù)存儲)和有效的(不需要太多的提取計算量)。為了滿足第一個要求,

必須進(jìn)行設(shè)計,以便包括音樂的低級和高級信息。在第二步中,建立了一個機(jī)

制(算法或數(shù)學(xué)模型),基于它們的特征用于從音樂聲音的表示形式中識別它們

所對應(yīng)的音樂流派標(biāo)簽。

1.2開發(fā)環(huán)境與工具

1.2.1Python簡介

Python是由GuidoRossum于1989年誕生。

對于其他語言來說,Python語言更為簡單,而它之所以簡單主要體現(xiàn)在以

下兩個方面:

Python的語法是非常簡單明了的,是初學(xué)者都能馬上上手的門語言。它

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

和其它編程語言相比,如果要想實現(xiàn)同一個功能毫無疑問Python的代碼量絕對

是最少的。

雖然在很多人看來Python是“不經(jīng)意間”開發(fā)出來的,但是它跟其他語言

相比照樣可以“碰一碰”。Python的第一個公開發(fā)行版是在1991年問世的,

從那時候開始Python就開始不斷的更新,成長終于在一天打響了自己的名號。

在2004年的時候它的使用率直線上升,受到了越來越多的編程人士的喜愛并且

在2010年的時候斬獲了TIOBE『2010年度最佳編程語言』的桂冠,在次之后,

在2017年P(guān)ython在IEEESpectrum發(fā)布的『2017年度編程語言』排行榜中

處于第一名在2018年又獲得了TIOBE『2018年度最佳編程語言』的第一名,更

是在2020年和2021年中連續(xù)兩年獲得TIOBE『年度最佳編程語言』的冠軍。

直到如今python已經(jīng)發(fā)展成一門廣泛使用的高級編程語言。它可應(yīng)用于網(wǎng)

絡(luò)爬蟲、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析和可視化等多種領(lǐng)域。它的特點是開源(免費(fèi))、

豐富的庫、簡單易學(xué)、支持跨平臺而且可移植性強(qiáng)。

1.2.2Tensorflow簡介

TensorFlow是谷歌的神經(jīng)網(wǎng)絡(luò)算法庫,基于數(shù)據(jù)流編程的符號數(shù)學(xué)系統(tǒng),

在各種機(jī)器學(xué)習(xí)算法實現(xiàn)中得到廣泛應(yīng)用。TensorFlow擁有多層級結(jié)構(gòu),支持

GPU和TPU高性能計算,被廣泛應(yīng)用于谷歌內(nèi)部和各領(lǐng)域,并且TensorFlow由

谷歌大腦開發(fā)和維護(hù),從2015年11月開始開放源代碼。

1.2.3Python第三方庫簡介

requests:最友好的網(wǎng)絡(luò)爬蟲功能庫,它使用起來要比urllib更加簡潔,

它繼承了urllib2的所有特性。Requests支持HTTP連接保持和連接池,支持使

用cookie保持會話,支持文件上傳,支持自動確定響應(yīng)內(nèi)容的編碼,支持國際

化的URL和POST數(shù)據(jù)自動編碼。

Re:正則表達(dá)式解析和處理功能庫,里面包含了多種字符串匹配的方法。

BeautifulSoup:它是HTML和XML的解析庫,可以對HTML、XML格式進(jìn)行

解析,從中提取相關(guān)信息;還可以對所提供的任何格式進(jìn)行相關(guān)的數(shù)據(jù)爬取,

而且對它進(jìn)行樹形解析。

NumPy庫是Python數(shù)據(jù)分析的基礎(chǔ),是處理數(shù)組的Python庫,NumPy庫的

數(shù)據(jù)結(jié)構(gòu)比Python自帶的更加高效。

matplotlib:Matplotlib是Python中繪制二維、三維圖表的數(shù)據(jù)可視化工

具,它是以各種硬拷貝格式和跨平臺的交互式環(huán)境來生成出版質(zhì)量級別的圖形。

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

通過Matplotlib,開發(fā)者只需要使用簡單的語句就可以繪制復(fù)雜的直方圖,餅

狀圖,散點圖等等各種類型的圖。

Sklearn:全稱SCIKIT-LEARN,是基于Numpy、SCIPY、Matplotlib等數(shù)據(jù)

科學(xué)包構(gòu)建的Python中的機(jī)器學(xué)習(xí)庫,涵蓋了機(jī)器學(xué)習(xí)中幾乎所有的環(huán)節(jié),如

樣例數(shù)據(jù)、數(shù)據(jù)預(yù)處理、模型驗證、特征選擇、分類、回歸、聚類、降維等。

功能非常強(qiáng)大,目前推出的Sklearn版本為0.23。與深度學(xué)習(xí)庫存在pytorch、

TensorFlow等多種框架可選不同,sklearn是python中傳統(tǒng)機(jī)器學(xué)習(xí)的首選庫,

不存在其他競爭者。

1.2.4PythonCharm簡介

PyCharm是由jetbrains開發(fā)的優(yōu)秀的pythonIDE,它和所有其它集成開發(fā)

環(huán)境一樣,它可以理解Python的特性并提供卓越的生產(chǎn)力推進(jìn)工具:自動代碼

格式化,代碼完成,重構(gòu),自動導(dǎo)入以及一鍵代碼導(dǎo)航等。這些功能可以幫助

程序員在使用Python語言開發(fā)時節(jié)約時間,提高工作效率。

1.2.5VisualStudioCode簡介

VisualStudioCode(簡稱vscode)是一種簡化且高效的代碼編輯器,同時

支持諸如調(diào)試,任務(wù)執(zhí)行和版本管理之類的開發(fā)操作。它的目標(biāo)是提供一種快

速的編碼編譯調(diào)試工具。然后將其余部分留給IDE。此外vscode是開源,免費(fèi)

的,它可以自定義配置,而且其智能提示功能特別強(qiáng)大,能支持各種格式的文

件,還包含有各種方便的快捷鍵以及強(qiáng)大的擴(kuò)展插件。

2需求分析

2.1可行性需求分析

1.技術(shù)可行性

Python是一種腳本語言,只要寫好了就可以直截了當(dāng)?shù)倪\(yùn)行,它可以省

去編譯鏈接的麻煩,而對于需要多動手實踐的初學(xué)者來說,大大減少了他們出

錯的機(jī)會。并且python還提供了非常多完善的代碼庫,幾乎覆蓋了網(wǎng)絡(luò)、文件、

GUI、數(shù)據(jù)庫、文本等大量的內(nèi)容。而在我們本次的項目里就離不開其中的音頻

處理庫,Librosa和PyAudio是其中的兩個音頻處理庫我們本次使用的正是

Librosa。另外,python還有一些基本的音頻功能的內(nèi)置模塊。Librosa通常用

于分析音頻信號,但更適合音樂信號分析。它包括構(gòu)建一個音樂信息檢索

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

(MIR)系統(tǒng)的具體細(xì)節(jié),目前,Librosa已充分實現(xiàn)文檔化,并具有許多相關(guān)

的示例和教程。

2.項目可行性

隨著科技的不斷發(fā)展,文娛項目也開始不斷創(chuàng)新,而音樂作為文娛類不可

缺少的東西更是逐步豐富起來,越來越多的人開始去聽不同的音樂,當(dāng)遇到自

己所喜歡的音樂的時候,往往想要更多的了解它,但又止步于自己的專業(yè)水平

不高無法得知其類型,這時音樂分類就顯得尤為重要了,本項目通過python中

的Librosa庫進(jìn)行音頻解析,然后用python中RNN-LSTM模型對音頻進(jìn)行分類。

這樣做不僅僅可以讓聽眾一目了然的知道自己所聽的音樂類型是什么,更讓聽

眾了解了自己所喜歡的音樂類型從而去所分類好的音樂中聽更多相同類型的音

樂。

2.2數(shù)據(jù)集分析

此項目的數(shù)據(jù)集來源于千千音樂網(wǎng),通過python爬取千千音樂網(wǎng)中的歌曲

并進(jìn)行保存。其中的音樂主要分為十個類別,分別為:disco(迪斯科),reggae(雷

鬼),rock(搖滾),pop(流行),blues(藍(lán)調(diào)),country(鄉(xiāng)村),jazz(爵士),

classical(古典),metal(金屬),hiphop(嘻哈)。并且他們的時長都為30秒,

這樣有利于使用TensorFlow框架構(gòu)建神經(jīng)網(wǎng)絡(luò)。

2.3關(guān)鍵技術(shù)分析

2.3.1數(shù)據(jù)采集技術(shù)

大數(shù)據(jù)的數(shù)據(jù)采集是一個重要的步驟,那么爬蟲是一個工具可以幫助我們爬

取網(wǎng)站中的數(shù)據(jù),爬蟲的主要作用就是可以幫助我們爬取想要獲取的歷史數(shù)據(jù)。

爬蟲的本質(zhì)是一段程序。因為需要爬取的網(wǎng)站下有可能會套一層另外的一個網(wǎng)

站,他是一層一層的去爬的。所以爬蟲又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機(jī)器人。

爬蟲根據(jù)用途可分為兩類:第一類為聚焦爬蟲主要針對特定的網(wǎng)站,第二類

為通用爬蟲通常指搜索引擎的爬蟲。

爬蟲的主要流程:發(fā)送請求–獲取響應(yīng)–提取數(shù)據(jù)。如圖2-1所示

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖2-1爬蟲流程

爬蟲的請求和響應(yīng)庫:http.client,urllib,requests。

爬蟲的框架:Scrapy,Scrapy-Redis,PySpider。

數(shù)據(jù)提取的工具:正則表達(dá)式,BeautifulSoup4,XPath,JsonPath。

注意:由于我們的某些需求,需要獲取大量的數(shù)據(jù),但是一條一條獲取太麻

煩,所以我們使用爬蟲去批量獲取網(wǎng)站所展示的免費(fèi)數(shù)據(jù)是合法的,但是如果

我們利用爬蟲去繞過網(wǎng)站的防護(hù)和權(quán)限從而獲取其需要收費(fèi)或者私密數(shù)據(jù)時,

則為竊取數(shù)據(jù),是違法行為。

2.3.2LSTM技術(shù)

LSTM最早是由Hochreiter和Schmidhuber在1997年提出的,因為在2012

年深度學(xué)習(xí)不斷興起,LSTM又經(jīng)過了很多代大佬的改進(jìn)和發(fā)展,開始不斷形成

了比較完整且系統(tǒng)的LSTM框架,之后便在很多領(lǐng)域得到廣泛應(yīng)用。LSTM的提

出主要是為了解決之前RNN的長期依賴問題。傳統(tǒng)的RNN節(jié)點輸出僅僅由權(quán)值,

偏置和激活函數(shù)三者來決定。由于RNN是一個鏈?zhǔn)浇Y(jié)構(gòu)導(dǎo)致它的每個時間片是

使用相同的參數(shù),而LSTM不一樣,LSTM引入了門(gate)的機(jī)制用來控制特

征的流通和損失這樣才得以解決RNN的長期依賴的問題。

3數(shù)據(jù)采集

3.1數(shù)據(jù)集需求分析

打開谷歌瀏覽器,首先輸入千千網(wǎng)網(wǎng)址/songlist,

在首頁找到流派,按F12打開控制臺,選擇netWork-XHR,然后選擇一個流派查

看控制臺返回的數(shù)據(jù)。如圖3-1所示。

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖3-1控制臺數(shù)據(jù)

由點擊圖中預(yù)覽(Preview)可知此數(shù)據(jù)是一個jason數(shù)據(jù),點擊Headers,

發(fā)現(xiàn)其請求方式為GET請求,找到了其歌曲列表數(shù)據(jù)后即可開始獲取其需要的

信息從而進(jìn)行爬取。

3.2數(shù)據(jù)集獲取分析

找到歌曲列表后由于數(shù)據(jù)都是動態(tài)加載的,我們?nèi)绻褂胷equests模塊直

接請求網(wǎng)址是不可能得到這些數(shù)據(jù)的,我們還需要進(jìn)入到開發(fā)者模式點

Network-XHR對歌曲列表的數(shù)據(jù)進(jìn)行分析并找到歌曲中相應(yīng)的數(shù)據(jù)。如圖3-2。

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖3-2歌曲數(shù)據(jù)分析

通過分析,我們得到的歌曲id,作者名字,歌曲名稱等數(shù)據(jù),通過歌曲試聽

可獲得下載鏈接,通過我們所獲得的歌曲id即可訪問到相應(yīng)的Jason文件

3.3數(shù)據(jù)集下載

將所獲取到的數(shù)據(jù)下載保存到music文件夾中。

圖3-3數(shù)據(jù)集下載

4數(shù)據(jù)集處理

數(shù)據(jù)清洗是數(shù)據(jù)分析中的重要環(huán)節(jié),目的是為了提高數(shù)據(jù)的準(zhǔn)確性,完整

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

性和可用性,其中可分為數(shù)據(jù)檢查、數(shù)據(jù)糾錯、數(shù)據(jù)去重、數(shù)據(jù)填充和數(shù)據(jù)篩

選五個內(nèi)容。

數(shù)據(jù)轉(zhuǎn)換是將一種數(shù)據(jù)格式或者結(jié)構(gòu)轉(zhuǎn)換為另一種數(shù)據(jù)格式或結(jié)構(gòu)的過程,

它包含數(shù)據(jù)格式轉(zhuǎn)換、數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換以及數(shù)據(jù)編碼轉(zhuǎn)換。這樣做有利于后續(xù)對

數(shù)據(jù)進(jìn)行分析和處理,另外數(shù)據(jù)轉(zhuǎn)換是數(shù)據(jù)集處理的重要環(huán)節(jié)之一。

數(shù)據(jù)處理是系統(tǒng)工程和自動控制的基本環(huán)節(jié)。目前數(shù)據(jù)處理已經(jīng)進(jìn)入了社

會生產(chǎn)和社會生活等多個領(lǐng)域。人類社會發(fā)展的進(jìn)程也受到了數(shù)據(jù)處理技術(shù)的

重大影響。數(shù)據(jù)處理的主要目的是把數(shù)據(jù)轉(zhuǎn)變?yōu)橛杏玫男畔亩鴰椭藗兏?/p>

的理解和利用數(shù)據(jù)。

4.1數(shù)據(jù)預(yù)處理

1.搭建一個空的字典data,用于以正確的格式儲存訓(xùn)練數(shù)據(jù),其中mapping

中用于放入音樂的類型,mfcc中放入切分的片段,lables為標(biāo)簽為每段音樂添

加類型標(biāo)簽值為mapping中類型的下標(biāo)。

圖4-1儲存訓(xùn)練數(shù)據(jù)

2.遍歷目錄文件利用dirpath.split方法對文件進(jìn)行切割,從而分割出音

樂類型。

圖4-2分割音樂類型

3.通過循環(huán)遍歷的方法加載音頻文件,并對文件進(jìn)行分析,提取出其中正

確的片段,判斷其長度是否達(dá)到了預(yù)期長度達(dá)到則保存,用于作為目標(biāo)數(shù)據(jù)集。

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖4-3加載數(shù)據(jù)集

4.保存數(shù)據(jù)集并使用json.dump方法將數(shù)據(jù)集指定為json文件。

圖4-4將數(shù)據(jù)集保存為json文件

5.運(yùn)行調(diào)試結(jié)果。結(jié)果中可知。我們的音樂類型分為迪斯科,雷鬼樂,搖

滾樂,流行樂,布魯斯(藍(lán)調(diào)),鄉(xiāng)村音樂,爵士樂,古典音樂,金屬,嘻哈

十個類別。

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖4-5音樂類型分類結(jié)果

4.2切分訓(xùn)練集和測試集

一般情況下,我們通常會將原始數(shù)據(jù)中的80%作為訓(xùn)練集,20%作為測試

集,當(dāng)數(shù)據(jù)量足夠大的時候,也可以將10%作為測試集。由于我們的原始數(shù)據(jù)

不算很多。所以這里我們用到train_test_split方法對數(shù)據(jù)集進(jìn)行切分并且將

測試集的大小設(shè)置為30%。

圖4-6切分?jǐn)?shù)據(jù)集和訓(xùn)練集

5模型構(gòu)建及評估分析

5.1模型構(gòu)建

5.1.1模型網(wǎng)絡(luò)結(jié)構(gòu)

在此次作品中我將采用LSTM神經(jīng)網(wǎng)絡(luò)模型也稱為長短期記憶網(wǎng)絡(luò)模型

它是一種用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)模型,它是傳統(tǒng)RNN的變體,它與

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

RNN相比可以緩解梯度消失或爆炸的現(xiàn)象。它在機(jī)器識別以及語言翻譯等領(lǐng)

域都有很不錯的表現(xiàn),其結(jié)構(gòu)如圖5-1所示。

圖5-1模型網(wǎng)絡(luò)結(jié)構(gòu)

5.1.2創(chuàng)建LSTM模型

構(gòu)建一個由兩個LSTM層,一個全連接層和一個輸出層組成的網(wǎng)絡(luò)模型。其

中第一個LSTM層的輸出作為第二個LSTM層的輸入,中間三層為隱藏層,全連

接層我采用了relu激活函數(shù)并且神經(jīng)元為64個,輸出層我采用了softmax激

活函數(shù)。代碼如圖5-2。

圖5-2創(chuàng)建模型

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

5.2模型編譯

設(shè)置優(yōu)化器optimizer這里的優(yōu)化器我們使用Adam并且將學(xué)習(xí)率設(shè)置為

0.05。編譯模型時設(shè)置損失函數(shù)loss以及準(zhǔn)確性。代碼如圖5-3。

圖5-3設(shè)置優(yōu)化器和損失函數(shù)代碼

5.3模型訓(xùn)練與調(diào)優(yōu)

5.3.1模型訓(xùn)練

對編譯完成的模型進(jìn)行訓(xùn)練并觀察結(jié)果。

圖5-4模型訓(xùn)練代碼

圖5-5模型訓(xùn)練結(jié)果

由圖5-5的結(jié)果圖可知我們所構(gòu)建的模型出現(xiàn)了過擬合的現(xiàn)象。

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

5.3.2學(xué)習(xí)率調(diào)優(yōu)

我們使用Adam優(yōu)化器并且將學(xué)習(xí)率(learning_rate)調(diào)整為0.001,

如圖5-6。

圖5-6學(xué)習(xí)率調(diào)整

5.4出現(xiàn)問題與解決方案

5.4.1問題分析

由模型訓(xùn)練的結(jié)果中可以得出我們的模型出現(xiàn)了過擬合的問題,為了更

加清晰的顯現(xiàn)出過擬合問題,我們分別繪制出精度圖和損失評估圖進(jìn)行進(jìn)一

步分析。

圖5-7繪制圖形

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖5-8調(diào)試結(jié)果圖

由結(jié)果圖5-8可知,我們的模型在損失圖中訓(xùn)練集直線下降,而測試集表面

上下降后其實又在不斷回升,從而,我們進(jìn)一步得出模型過擬合的結(jié)論。

5.4.2解決方案

對于過擬合問題,在我們深度學(xué)習(xí)中有以下五種方法,分別是增加數(shù)量也

就是獲得更多數(shù)據(jù)、盡早停止訓(xùn)練、Dropout簡化模型、限制權(quán)值等于正規(guī)化、

使用正則化以及使用葉貝斯方法。而在這里,我們將使用正則化的方式來解決

過擬合的問題。這種方法適用于大多數(shù)機(jī)器學(xué)習(xí),包括神經(jīng)網(wǎng)絡(luò)。他們的做法

大同小異。簡化機(jī)器學(xué)習(xí)的關(guān)鍵公式是y=WxW是機(jī)器需要學(xué)習(xí)的各種參數(shù)。在

過擬合中,W的值經(jīng)常變化很大或很小。為了防止W變化太大,我們在計算誤差

上做了一些技巧。原始的成本誤差是這樣計算的,成本=預(yù)測值的平方-真實值。

如果W太大,我們會使成本相應(yīng)增加,成為一種懲罰機(jī)制。所以我們自己考慮

W。這里,abs是絕對值。如圖5-9,我們在隱藏層中加入了正則化內(nèi)核來進(jìn)行

正則化處理。

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖5-9加入正則化內(nèi)核

圖5-10調(diào)整后結(jié)果圖

通過結(jié)果圖5-10來看,我們在進(jìn)行正則化之后我們的訓(xùn)練集精度與測試集

精度以及相差不大,損失值更使幾乎重合,說明我們對與過擬合的處理相當(dāng)有

效。

5.5模型部署

5.5.1前端設(shè)計

使用vscode設(shè)計前端頁面,用于實現(xiàn)顯示當(dāng)前音樂類別的功能,實現(xiàn)代碼

如圖5-11。使用說明:首先在文件夾框中選擇你想要識別的音樂,選擇完成后

點擊開始識別按鈕,即可顯示其類型所占的比例并通過比例判斷音樂類型。顯

示界面如圖5-12。

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論