似ている声を出す機能は、作ったあとで「これ本当に合っているのか」を確かめるのが一番難しい部分でした。
似ているかどうかは主観です。出てきた名前を見て「たしかに似てる気がする」と思っても、それは当たっている証拠になりません。
本人を当てられるかで測る
そこで、答えが分かる形に置き換えました。
集めた音源を、1人ぶんずつ前半と後半に割ります。前半だけで照合用の手本を作って、後半の声を入れる。同じ人なので、1位に本人が出るはずです。
出なければ、その機能は動いていない。出れば、少なくとも同じ人の別の場面の声を同じ人だと認識できている。主観が入りません。
28人中28人
結果は28人中28人が1位でした。上位3位までに入るかで見ても28人中28人。
品質ゲートを入れる前の26名でも26人中26人だったので、人数を増やしても落ちていません。
正直に書くと、この数字は出来すぎです。同じ収録環境の同じ番組を前後で割っているので、マイクや部屋の癖まで一緒に学習している可能性があります。別の日に別のマイクで録ったものだと、ここまで綺麗には出ないはずです。
実際、ブラウザから自分の声を20秒入れて試したときは、本人が1位で80%でした。100%ではない。それでも誤検出はゼロだったので、使える水準だとは思っています。
軽い方を選べた
この測り方があると、別の判断も楽になりました。
声を判定する仕組みには、2つの選択肢がありました。重いものと、4分の1ほどに軽くしたもの。軽くすると精度が落ちるのが普通なので、どちらを使うか迷います。
両方で同じ試験をしたら、どちらも26人中26人で同点でした。似ている度合いの数字は少しずれるのですが、当たる順位は変わらない。
順位が変わらないなら、開くたびに読み込む量は少ない方がいい。軽い方を選びました。
迷ったときに、答えの分かる試験があると即決できます。無いと、なんとなく大きい方を選んでしまう。
数字が出た瞬間のこと
前半後半に割る試験を初めて流したとき、画面に1人ずつ結果が出ていきました。
2人目、3人目と正解が続いて、10人を超えたあたりで「これは全部当たるかもしれない」と思った記憶があります。最後まで通ったときは、素直に嬉しかった。
このプロジェクトは、仮説が否定されたり、自分の書いた説明が間違っていたり、計算が4倍ずれていたりと、間違いを見つける作業の方がずっと多いです。
だから、当たっていることが分かる日は貴重でした。