取り出すことができます。そのため、この複雑な波を単純な情報であるパワースペクトルとして、以下のようにまとめることができます。フーリエ変換によって音声データを単純化することで、解析も単純にできるようになることが嬉しいところです。■メル周波数スペクトログラム音声データの特徴量として、メル周波数スペクトログラムというものがあります。メル周波数スペクトログラムは、以下の手順で算出することができます。音声フレームに窓関数を適応し、離散フーリエ変換してパワースペクトルを得るメル周波数で均等になるようにスムージングする音声フレームに窓関数を適応し、離散フーリエ変換してパワースペクトルを得る音声データを解析する場合、一般に一定の時間間隔で特徴量を出力します。その際、間隔ごとに分割された対象を音声フレームと呼び、その間隔をフレーム周期と呼びます。フレーム周期と信号の周期が一致しない、つまり、両端が不連続な波形は、そのまま周波数分析をすると高周波に雑音がのります。そこで、波形に対し、この時刻を中心に両端が減衰するように窓関数をかけます。代表的な窓関数であるハミング窓は以下のように表されます。窓内のサンプル数です。$$実際に音声データに対して窓関数を適用する際は、連続する音声フレームに対して窓関数を少しずつずらしながら、その都度、離散フーリエ変換を適用していくことになります。この一連の処理を短時間フーリエ変換といいます。これは、重み付き移動平均をとっていることに相当し、特徴量の急激な変化を抑える一方で、連続するフレーム間の相関はより大きくなります。これにより、音声データから一定の時間間隔でパワースペクトルを抽出することができます。メル周波数で均等になるようにスムージングする次に、短時間フーリエ変換により得られる結果に対してメルフィルタバンクを適用します。メルフィルタバンクとは、メル尺度で等間隔な特定の周波数帯のみを抽出するフィルタのことです。メルフィルタバンクの作成手順は以下のようになります。次元のデータとしてスムージングします。これにより任意の時間ごとに得られる人間の音高知覚に調整した特徴量をメル周波数スペクトログラムといいます。今回は使用しませんが、このメル周波数スペクトログラムを離散コサイン変換した結果から低次元成分を取り出したものを、メル周波数ケプストラム係数(MFCC)といいます。■楽曲のアーティスト分類をやってみた深層学習を使って音声データを活用してみるため、楽曲分類に取り組みました。内容としては、楽曲の特徴を表すメル周波数スペクトログラムを用いて、その楽曲のアーティストを予測するという内容です。学習した深層学習モデルを用いて2つの実験を実施しました。類似アーティスト分類の検証ここから、上記の取り組みに関してご紹介します。今回はランダムに10組のアーティストを選別し、楽曲分類の対象としました。Peppersの179曲と、学習データとしては少ないです。そのため、楽曲を1分ごとに区切ることでデータの水増しをしました。(これでもデータとしては少ないですが・・・)モデルに学習させる訓練用データとモデルの精度を検証する評価用データを用意する際には、発表された年が古いアルバムの楽曲を訓練用データ、新しいアルバムの楽曲を評価用データとしました。使用したデータ数は以下のとおりです。実際に楽曲「ロビンソン/スピッツ」の特徴量を最初の60秒分だけ可視化してみました。サンプリング周波数にもよるのですが、データの波形は非常に細かくなっています。これだけでは、何もわかりませんね。スピッツ次に、このデータのメル周波数スペクトログラムを可視化しました。各種パラメータは適当に決めていますが、こちらは各時間帯における周波数ごとの音の強さが濃淡として表現されており、視覚的にも楽曲の特徴を表している感じがしますね。スピッツモデル上記のように、可視化された画像自体がその楽曲の特徴を表しているといえます。これは、時系列と周波数ごとに音圧レベル(dB)が並んでいるためです。音声データの分類は、画像の分類問題と似た捉え方ができます。Network)を採用しました。音声データから楽器を分類するという論文でも、CNNが用いられており、高い精度が得られています。今回のモデルでも本論文のように下記のようなシンプルなアーキテクチャとしました。本モデルの出力層では、softmaxを用いていることから、入力した音声データに対するアーティストごとの確率が出力されます。モデルがある楽曲のアーティストを分類する際には、1分区切りした各音声データに対して、確率を算出し、これらの確率の平均を取ることで、最も高い確率となるアーティストを予測結果としました。訓練用データで学習したモデルの精度を評価用データ(楽曲)に対する適合率、再現率、F値で評価しました。結果は以下のようになりました。F値は平均で0.77という結果が得られました。スピッツとMetallicaはどちらも再現率1.0であり、F値も0.9以上という結果が得られました。一方で、Coldplayは再現率は1.0であったにも関わらず適合率が0.41と低く、F値も0.59と最も低い結果となりました。Coldplayの楽曲は全て正しく予測することが出来ましたが、それ以外のアーティストの楽曲をColdplayと誤って予測してしまったということになります。これは筆者の主観的な考察になるのですが、Coldplayの初期はアコースティックギターを使ったロックサウンドの曲が多い印象ですが、近年は多彩な音を入れ込んだ壮大なポップサウンドの曲が増えてきています。このため、モデルが学習した楽曲の中にはこれらのジャンルが混合していたことから、ロックサウンドな曲やポップサウンドな曲は比較的、Coldplayと予測されやすいモデルになっているのかもしれません。PeppersやOasisなど、ロックバンドの楽曲を誤分類する傾向がありました。次に、学習で使用していないアーティストの楽曲を用意し、上記の学習済みモデルによるアーティスト分類を行ってみました。モデルは、入力されたある楽曲が選別した10組のアーティストのうち、どれに近いのかを出力するということになります。この実験では、学習で使用した10組のアーティストのいずれかと、著者が似ていると感じていたアーティスト5組を選別して評価しました。選別したアーティストと選別理由は以下のようになります。得られた結果は以下のようになりました。ここでは縦軸が予測対象の楽曲のアーティスト、横軸がモデルで用意した10組のアーティストのidを表しており、それぞれの値は予測された楽曲数です。赤枠で囲った箇所が、個人的に似ていると感じていたアーティストの組み合わせになるのですが、概ね想定通りの結果が得られています。ELEPHANTと分類されたことから、声の特徴を捉えていることが分かります。ELEPHANTBABYMETALは唯一の女性ボーカルである東京事変と予測されやすいとも考えていたのですが、実際は2曲のみが予測されただけでした。一方で、同じジャンルであるMetallicaと予測された楽曲が9曲と最も多かったことから、声の特徴だけでなく、演奏の特徴も考慮した予測がされていることがわかります。Metallica本モデルの応用について学習した深層学習モデルは、楽曲のアーティスト検索等のように、アーティストを直接予想したいタスクへの応用を考えると精度は低い印象です。一方で、類似アーティストの分類においては、概ね想定通りの結果が得られていたため、類似アーティストのレコメンド等のような、高い精度を求められていないタスクに対しては応用ができそうです。今回はアーティストの分類というモデルを作成したのですが、これを音楽ジャンルの分類に変更することで、用意できる学習データ数も増え、精度の向上が期待できます。これにより、楽曲への音楽ジャンルの自動付与などにも応用できそうです。楽曲に限らず、例えば、機械が発する音をデータとして扱うことで、機械の故障に繋がる異常音を検知するなど、ビジネスのさまざまな課題に対しても応用が期待できそうですね。■まとめ今回は音声のデータとしての扱い方と、深層学習モデルによる楽曲のアーティスト分類への個人的な取り組み内容について、紹介させていただきました。ブレインパッドでは、データの活用を推進しています。データといっても、リレーショナルデータベースなどで扱う表形式の構造化データに限らず、今回取り扱った音声や、画像、言語等のように様々な種類のデータがあります。なんとなく集めているだけのデータであっても、それを活用することで何らかの課題の解決に繋がるかもしれません。(2016).KerasLibrosa当社では、ビジネス改善につながる深層学習など、最先端の取り組みを積極的に実施しています。採用ページスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。