質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1068閲覧

機械学習 話者認識のグラフを描画したい

motexi

総合スコア0

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

0クリップ

投稿2021/10/30 06:04

編集2021/10/30 06:38

プログラミングの勉強を始めて3か月の初心者です。現在、Pythonで音声データを学習して話者の性別を認識をするプログラムを作っています。
mfccをsvmにて学習させています。
教師データ、テストデータ、境界線をplotしてグラフで確認する方法を調べているのですが、最適な方法が見つからないため教えて頂きたいです。

import numpy as np import librosa import librosa.display import os import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn import svm from scipy import fftpack dir_name = 'wav' #音声データを読み込む speakers={'man':0,'woman':1} #特徴量を返す def get_feat(file_name): a, sr = librosa.load(file_name) y=librosa.feature.mfcc(y=a,sr=sr) return y #特徴量と分類のラベル済みのラベルの組みを返す def get_data(dir_name): data_X = [] data_y = [] for file_name in sorted(os.listdir(path=dir_name)): print("read:{}".format(file_name)) speaker = file_name[0:file_name.index('_')] data_X.append(get_feat(os.path.join(dir_name, file_name))) data_y.append((speakers[speaker], file_name)) #return (np.array(data_X), np.array(data_y)) return (data_X, data_y) data_X, data_y = get_data(dir_name) # 教師データとテストデータに分ける train_X, test_X, train_y, test_y = train_test_split(data_X, data_y, random_state=11813813) print("{} -> {}, {}".format(len(data_X), len(train_X), len(test_X))) # 各時間に対応する成分をそれぞれ1つの特徴量として分割する def split_feat(data_X, data_y): data_X2 = [] data_y2 = [] for X, y in zip(data_X, data_y): X2 = X.T y2 = np.array([y[0]] * X.shape[1]) data_X2.append(X2) data_y2.append(y2) data_X2 = np.concatenate(data_X2) data_y2 = np.concatenate(data_y2) return (data_X2, data_y2) train_X2, train_y2 = split_feat(train_X, train_y) #教師用データをプロットする fig = plt.figure() ax = fig.add_subplot(1,1,1) count=0 for label in train_y2: freq=0 if label==0: c='blue' if label==1: c='red' plt.plot(train_X2[count], c) count+=1 plt.show() plt.savefig("mfcc.png") clf = svm.SVC(gamma =0.00000001, C=1000) clf.fit(train_X2, train_y2) def predict(X): result = clf.predict(X.T) return np.argmax(np.bincount(result)) ok_count = 0 for X, y in zip(test_X, test_y): actual =predict(X) expected = y[0] file_name = y[1] ok_count += 1 if actual == expected else 0 result = 'o' if actual == expected else 'x' print("{} file: {}, actual: {}, expected: {}".format(result, file_name, actual, expected)) print("{}/{}".format(ok_count, len(test_X))) ### 該当のソースコード ```Python ソースコード
退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2021/10/30 06:18

コードは「コードの挿入」で記入しましょう。
motexi

2021/10/30 06:38

すみません、terataikの使い方調べなおします。
toast-uz

2021/10/30 08:22

「最適な話者認識のグラフ」をもう少し言語化できますか?質問者様が作れているグラフはどういうもので、それだとどういうことに不向きであるため、どのようにしたい、といったこと、もしくは、見本としている理想のグラフを示してください。
jbpb0

2021/10/30 10:47 編集

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問