アイドルの声の違いを可視化する(eeic Advent Calendar 2016)

eeic Advent Calendar 2016 の 4 日目の記事。本当はチノちゃん関連のことを扱いたかったのだけれど、Advent Calendar 的には重く、また簡単にはそこまでの精度が出せないので諦めた。

さて、アイドルマスターシンデレラガールズスターライトステージ(以降「デレステ」)をやっていると、時々誰が誰の声かわからなくなることがあるよね。ない?ないか。そうか。

というわけで、アイドルマスターシンデレラガールズ(以降「デレマス」)に登場するアイドルたちの声の違い、つまりそれぞれの声がどのくらい違うのかを可視化してみたいと思うわけだ。

ちなみに「アイドルマスターシンデレラガールズってなんやねん」とか「聞いたことあるけど全然知らないよ」っていう人でも楽しめる内容にしているつもりだ。

距離行列と力学モデル

適当な 2 話者の距離が求まれば、様々な方法でその分布を可視化することができる。簡単なものとしては力学モデルが挙げられる。それぞれの点を質点と見て、その間にばねを用意し、そしてあとは物理法則に従って動かすことで計算するわけだ。

メルケプストラム係数

声の距離は「メルケプストラム歪み(Mel-cepstral distortion)」という指標を用いる。メルケプストラム歪みは「メルケプストラム係数」というパラメータがどれくらい離れているかの値である。単位は dB。大きいほど声が遠いと表現できる。今回は一般的に用いられる 24 次メルケプストラム係数を使用した。

メルケプストラム係数はおおよそ、ソースフィルタモデルのフィルタを、数式で表したときのフィルタ係数である(z 変換領域での係数になる)。ひとことでいえば、そのときの「声道」のパラメータである。おおよそ 1〜5 ミリ秒おきに計算する。

メルケプストラム係数の計算には SPTK にある mcep というコマンドを用いるのが簡便なのだが、直接音声を読み込ませてもあまり良い値が出ないことが知られているので、音声分析合成システム WORLD によって得られたスペクトル包絡を元に mcep コマンドを走らせることでメルケプストラム係数を計算している。なお似た名前のものにメル周波数ケプストラム係数(MFCC)が存在するが、これはあまり関係ない。

実際の距離計算

声の距離を測るためには、全員が同じ内容を発話している「パラレルデータ」が必要になる。ここで便利なのがデレステのタイトルコール「アイドルマスター シンデレラガールズ スターライトステージ!」である。声の実装されているアイドル全員分のタイトルコールが存在するので、なんとまあ優秀なパラレルデータである。今回は把握できた65人分のデータを用いた。音質が悪いのだけが難点なのだが、そこは仕方ない。どうでもいいけどクイズ形式の動画もあるので暇つぶしにどうぞ。

結局のところ、同じ発話をしている 2 音声のメルケプストラム係数の時系列データをそれぞれ求めて、その距離を測ることで音声の距離を定義するわけである。なお 2 音声の時系列的な対応付けをとらなければ計算できず、それは動的時間伸縮法(DTW)を用いて行うが、そこらへんの細かい話は専門に入ってから勉強するとよい。

サンプリング周波数は 16kHz にリサンプリングして行った。44.1kHz のまま行いたいのだがメルケプストラムという指標の特性上 16kHz のほうが扱いやすいため変換している。ちなみにリサンプリングにも SPTK を用いている。SoX でのリサンプリングはゴミらしい。

実際に声の距離を測ってみる。たとえば「相葉夕美」と「赤城みりあ」のメルケプストラム歪みは 4.99dB と最も小さく、「白坂小梅」と「龍崎薫」のメルケプストラム歪みは 8.32dB と最も大きい。このように 2 話者間の距離がわかる。

Ruby で実験してみる

こうして物理モデルを走らせる。実際にはメルケプストラム歪みの値に exp を取ったものをばねの基本長とした。アルゴリズムは Wikipedia にあるものをそのまま用いた。あとは Excel でグラフを描くだけ。すると下図のようになった。

%e3%83%86%e3%82%99%e3%83%ac%e3%83%9e%e3%82%b91

デレマスのアイドルたちの声分布

力学モデルを適当に走らせているだけなので、必ずしも絶対的に正しい可視化ではないのだが、それでもある程度の分布を表現できている。白坂小梅のせいでグラフが混雑しているので、集まっているあたりを拡大してみる。ちなみに下の図に載っていないのは、白坂小梅、川島瑞樹、星輝子の 3 人である。

%e3%83%86%e3%82%99%e3%83%ac%e3%83%9e%e3%82%b92

デレマスのアイドルたちの声分布(拡大)

ぱっとみるとなんとでもなさそうだが、デレマスを知っていればよくよく見てみると「なるほど〜」と思えるのではないだろうか。「あ〜確かにこの子とこの子の声近いかも〜」などとも思えるかもしれない。近い声のユニットを妄想しても面白いかも。

このグラフをそのまま表示したページ(これ)も作ってみた。しかし、次に紹介するものを是非見ていただきたい。

D3.js による force layout

D3.js というライブラリには force layout という機能があって、この力学モデルをブラウザ上でシミュレーションすることができる。これを用いて実装してみたのが これ である。Chrome 推奨、かなり重いので注意。他に Safari・Edge でも動作を確認している。IE では当然動かない。計算方法が上とは違うので異なった結果が得られるが、おおよその傾向は同じことがわかるだろう。ポイントにカーソルを合わせるとアイドルのプロフィールが表示されたり、クリックすると音声が再生されるようになっているので、ぜひ楽しんで欲しい。

さいごに

D3.js は EEIC の後期にある通称「情報可視化実験」で扱う。選択制で僕はこの実験を取らなかったため D3.js を触るのは初めてだったが、データ解析・分析・整理・可視化のおもしろさ・難しさがわかるものだった。EEIC には情報可視化実験をはじめとした様々な分野の面白い実験がたくさんある。ぜひ EEIC に入って多岐にわたる分野の一端を経験してもらいたい。

メルケプストラム歪みは単に声の距離を測るだけだが、音声研究には多く用いられており、いわばデファクト・スタンダードである。音声研究は非常に難しく、またおもしろい。僕の現在所属している峯松研究室では音声にまつわるいろいろな研究をしている。現在僕は、ある人が発話した音声を、まるで別の人が発話したかのような音声に変換する「声質変換」を研究している。来年からの大学院でも齋藤研究室で同じような研究を続けるつもりだ。音声関連研究に興味があれば、ぜひ EEIC 峯松・齋藤研究室へ。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です