ランダムフォレストで音声分類してみた。Python
どうも、無料ブログなので広告が多いなと思い始めたんですけど、まぁ個人ブログなのでいいか。すみません。
ランダムフォレストで音声分類してみた。Python
正直、ランダムフォレストも音声分析もわからない方も多いと思います。
ランダムフォレストは、機械学習のアルゴリズムのひとつで、決定木による複数の弱学習器を統合させて精度を向上させる、アンサンブル学習アルゴリズムです。
たぶん、これも意味不明ですよね。すみません
音声も、画像も、動画もすべて数値データです!!!!!!!!!
ということで、解析できないものはないですかね!?!? まぁいいか。
音声データは、.wavを使用しています。
mp3でも良かったのですがね。
import soundfile as sf
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
n_datas = ?
X =
y =
for i in range(1,n_datas):
men, _ = sf.read('Files/men_{}.wav'.format(i))
women, _ = sf.read('Files/women_{}.wav'.format(i))
no = no[:, 0]
yes = yes[:, 0]
X.append(men)
X.append(women)
y.append(0)
y.append(1)
X = np.array(X)
y = np.array(y)
X_fft = np.array([np.fft.fft(x) for x in X])
X_fft = np.fft.fft(X)
X = np.array([np.hstack*1
clf.fit(X, y)
男性と女性の音声分類をしました。
うまくコードが表示されない場合があるので、ほしい方はこちら↓
あんまり良いコードではないですが
雑ですみません。
おすすめ書籍を載せます↓
*1:x.real**2+x.imag**2, np.arctan2(x.real, x.imag))) for x in X_fft])
clf = RandomForestClassifier()
scores = cross_val_score(clf, X, y, cv=3)
print('score:{:.3f} (+/-{:.3f})'.format(scores.mean(), scores.std()*2