#前提・実現したこと
機械学習でμ’sの声を識別する
上記のサイト様を参考に、pythonを用いて機械学習を行おうと考えております。
機械学習を行う際、各フォルダ内(bell、call、noise)にあるwavファイルをいちいち名前を入力するのではなく、一括で自動に取得する方法を考えております。
#発生している問題・エラーメッセージ
コード(下記に記載)をどのように変更すればいいのかがわからない状況です。
#コード
元のコード
import scipy.io.wavfile as wav import librosa from sklearn.svm import SVC import numpy def getMfcc(filename): y, sr = librosa.load(filename) return librosa.feature.mfcc(y=y, sr=sr) artists = ["bell", "call","noise"] songs = [ [ "bell01", "bell02", "bell03","bell04","bell05","bell07", "bell08", "bell09","bell10", "bell11", "bell12","bell13"], ["call01", "call02", "call03", "call04","call05"], ["noise01","noise02","noise03","noise04","noise05","noise06","noise07","noise08","noise09","noise10"], ] song_training = [] artist_training = [] for artist, artist_songs in zip(artists, songs): for song in artist_songs: path = "%s/%s.wav" % (artist, song) print(path) mfcc = getMfcc(path) song_training.append(mfcc.T) label = numpy.full((mfcc.shape[1], ), artists.index(artist), dtype=numpy.int) artist_training.append(label) song_training = numpy.concatenate(song_training) artist_training = numpy.concatenate(artist_training)
試行錯誤中のコード(songs の行を変更しています。)
import scipy.io.wavfile as wav import librosa from sklearn.svm import SVC import numpy import glob def getMfcc(filename): y, sr = librosa.load(filename) return librosa.feature.mfcc(y=y, sr=sr) artists = ["bell", "call","noise"] songs = [glob.glob("bell/.wav"), glob.glob("call/.wav"), glob.glob("noise/.wav"), ] song_training = [] artist_training = [] for artist, artist_songs in zip(artists, songs): for song in artist_songs: path = "%s/%s.wav" % (artist, song) print(path) mfcc = getMfcc(path) song_training.append(mfcc.T) label = numpy.full((mfcc.shape[1], ), artists.index(artist), dtype=numpy.int) artist_training.append(label) song_training = numpy.concatenate(song_training) artist_training = numpy.concatenate(artist_training)
#試していること
[Python]フォルダ内のファイルを取得する方法
上記のサイト様でglobという方法があるらしいので、自分なりにコードを変更してはいるのですが、うまく動いてくれない状況です。
#補足
使っているPCはmacOS Suerra バージョン10.12.6
Pythonのバージョンは3.6.5です。
回答1件
あなたの回答
tips
プレビュー