- ๋ฐ์ดํฐ์ ์ถ์ฒ : https://commonvoice.mozilla.org/
-
์ํ๋ฆฌ์นด, ํธ์ฃผ, ์บ๋๋ค, ์๊ตญ, ํ์ฝฉ, ๋ฏธ๊ตญ์ ์ด 6๊ฐ๊ตญ์ ํ์์ ๋ฌธ์ฅ ๋ น์ (.wavํ์ผ) ๋ฐ์ดํฐ์
-
ํด๋์ค ๋ณ 1000๊ฐ์ ๋ฐ์ดํฐ
: ๋ ๋ง์ ๋ฐ์ดํฐ ์ ์ด ์์์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ์ class imbalance ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํ์ฌ ๊ฐ class๋ณ ๋ฐ์ดํฐ๋ฅผ 1000๊ฐ๋ก ํต์ผ์์ผฐ์ต๋๋ค.
-
X_train = 6๊ฐ๊ตญ์ wav ํ์ผ
-
y_train = 6๊ฐ๊ตญ์ label (์ํ๋ฆฌ์นด๋ถํฐ ๋ฏธ๊ตญ ์์ผ๋ก 0,1,2,3,4,5,6) : ์ง์ label
-
์ํ๋ฆฌ์นด
-
ํธ์ฃผ
-
์บ๋๋ค
-
์๊ตญ
-
ํ์ฝฉ
-
๋ฏธ๊ตญ
-
: ์ด 6๊ฐ๊ตญ์ ํ์์ ๋ฌธ์ฅ ๋ น์ ๋ฐ์ดํฐ ์ ํ์ผ 1000๊ฐ (.wav)
-
librosa ๋ชจ๋ ์ฌ์ฉํ์ฌ wavํ์ผ ๋ก๋
- wavํ์ผ์ train์ ๋ถ๋ฌ์ค๋ ๊ณผ์ ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ฏ๋ก, load๊ฐ ๋น ๋ฅธ npyํ์ผ๋ก train ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ก ์ธํ์ฌ, load์ ํํ๋ฅผ float32๋ก ์ง์ ํด์ฃผ์์ต๋๋ค.
- train set์์ ๊ฐ์ ์ฌ๋์ด ์ฌ๋ฌ ๋ฒ (ํ๊ท 3๋ฒ) ๋ น์ ํ ๊ฒ์ ํ์ธํ๊ณ , sortํ์ฌ ๊ฐ์์ฌ๋์ด ๋ น์ํ ๊ฒ๋ค์ ๋ฒํธ๋ฅผ ๋ถ์ฌ์ ๋ถ๋ฌ์์ต๋๋ค. ์ถํ ํ์ต ๊ณผ์ ์์ 3๋ฒ์ฉ ๋ น์ํ ๊ฒ์ ๋ํ index๋ฅผ ์ฒ๋ฆฌํด์ฃผ์์ต๋๋ค.
-
Melspectrogram ๋ณํ ํ , librosa.power_to_db ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ
-
๋ฐ์ดํฐ ๊ฐ์ ๋ฒ์๋ฅผ ๊ท ์ผํ๊ฒ ๋ง๋ค์ด ์ฃผ๊ธฐ ์ํ์ฌ scaling์ ์ ์ฉํ์๋๋ฐ min-max์ standardization ๋๊ฐ์ง ๋ฐฉ์์ผ๋ก scalingํ์์ต๋๋ค.
-
์ ์ฒ๋ฆฌ๋ฅผ ๋ง์น ํ์ผ์ npyํ์ผ๋ก ์ ์ฅ
: ๋ง์ฐฌ๊ฐ์ง๋ก, ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ก ์ธํ์ฌ ์ ๊ทํ๊น์ง ์งํํ data๋ฅผ npyํ์ผ๋ก ์ ์ฅํด๋๊ณ ๋ถ๋ฌ์ ์ฌ์ฉํ์์ต๋๋ค.
- ์ ๋ ฅ ์ ํธ(์์ฑ ํ์ผ)์ ์๊ฐ ๋จ์๋ก ์ชผ๊ฐ์ด, ๋ค์ํ ์ฃผํ์๋ฅผ ๊ฐ์ง๋ ์ฃผ๊ธฐํจ์๋ก ๋ถํดํ๊ณ , ์ฌ๋์ด ๋ ์๋ฏผํ๊ฒ ์ธ์ํ๋ ์ ์ฃผํ ๋ถ๋ถ์ ํด์๋ ฅ์ ๋์ธ mel scale๋ก ๋ณํํด ์ฃผ๋ ๊ณผ์ ์ ๋๋ค.
๋ถ๋ฌ์จ wav๋ฅผ librosa.load๋ฅผ ํตํด ๋ถ๋ฌ์ค๋ฉด ์์ ๊ฒฐ๊ณผ์ ๊ฐ์ด sampling rate(sr) ๋งํผ์ float ๊ฐ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค
Mel spectrogram ๋ณํ ๊ฒฐ๊ณผ(log scale)
- Arguments
- sr(sampling rate) : ์ด๋น sample์ ๊ฐ์. ๋ฐ์ดํฐ์ wavํ์ผ์ ๊ฒฝ์ฐ์ 16000
- n_fft(=win_length) : ์์ฑ์ ์ผ๋ง๋งํผ์ ๊ธธ์ด๋ก ์๋ฅผ ๊ฒ์ธ์ง
- hop_length : ์์ฑ์ magnitude๋ฅผ ์ผ๋งํผ ๊ฒน์น ์ํ๋ก ์๋ผ์ ๋ณด์ฌ์ค ๊ฒ์ธ์ง
- n_mels : mel scale์ ๋ง๋ค๊ธฐ ์ํด ์ ์ฉํ๋ mel filter ์ ๊ฐ์
๋ง๋ค์ด์ง mel spectrogram์ด power scale์ผ ๊ฒฝ์ฐ ๋ณํ๋ฅผ log scale๋ก ์ธ์ํ ์ ์๋๋ก log ๋ณํ์ ํด์ฃผ๋ ๊ณผ์ ์ ๋๋ค.
์ด๋ฏธ์ง๋ฅผ shiftํ๊ณ , randomํ๊ฒ ์ด๋ฏธ์ง์ ์ผ๋ถ๋ฅผ ์ง์ฐ๋ ๊ณผ์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐํ์์ต๋๋ค.
๋ชจ๋ธ์ 1๊ฐ์ input layer, 4๊ฐ์ hidden layer, 1๊ฐ์ out layer๋ก ์ด 7๊ฐ๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
data๊ฐ numpy ํ๋ ฌ์ด๋ฏ๋ก input์ channel์ 1์ด๊ณ ํฌ๊ธฐ๋ 64*501์ด๊ธฐ ๋๋ฌธ์ input layer์์ input shape๋ก ์ด ๊ฐ์ ์ค์ ํด์ฃผ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ํ ๋ค ํ์ฑํํจ์๋ก๋ ReLU๋ฅผ ์ฌ์ฉํ์๊ณ batch normalization์ ํตํด weight๋ฅผ ์ค์ ํด์ฃผ์์ต๋๋ค. ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค Average pooling์ ์ ์ฉํ๋ ๋ฐฉ์์ผ๋ก hidden layer๋ฅผ ๊ตฌ์ฑํ์์ต๋๋ค.
output layer๋ ๋ง์ง๋ง์ผ๋ก output์ ์ถ๋ ฅํ๋ ์ธต์์๋ softmax ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ์ class์ ์ํ ํ๋ฅ ์ ๋ํ๋ด์ฃผ๊ณ ๊ณ class๊ฐ 6๊ฐ์ด๊ธฐ ๋๋ฌธ์ unit์ 6์ผ๋ก ์ค์ ํ์์ต๋๋ค.
์๋ ์ฌ์ง์ SVG ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ๋ชจ๋ธ๊ตฌ์กฐ๋ฅผ ์๊ฐํํ ๊ฒฐ๊ณผ์ ๋๋ค.
- model.summary()





.png)
