
拓海先生、最近、現場で「音声改善にAIを使おう」と言われるのですが、品質評価の話がややこしくて困っています。今まで我々は耳で聞いて判断してきましたが、客観的な評価指標をどう扱えばよいのでしょうか。

素晴らしい着眼点ですね!音声品質評価には主観評価と客観評価があって、主観評価は人が実際に聞いて点数を付ける方法、客観評価は自動でスコアを出す方法ですよ。大事なのは、人の聞こえ方に近い客観評価を学習に使えるかどうか、です。一緒に段階を追って見ていきましょうね。

客観評価でよく名前が出る「PESQ」とか「POLQA」とかがありますが、これをそのまま学習に使えないのですよね?どうしてでしょうか、計算が重いとか、差がわかりにくいとか聞きましたが本当ですか。

その通りです。PESQ(Perceptual Evaluation of Speech Quality、音声の知覚的評価)やPOLQA(Perceptual Objective Listening Quality Assessment、客観的知覚リスニング品質評価)は人間の聞こえに近い評価を出しますが、アルゴリズムが複雑で微分不可能な部分が多く、機械学習の損失関数として直接使いにくいのです。ここで必要なのは「人間の評価を模倣できる、学習可能な関数」です。要点を3つで言うと、1) 人の評価に近いこと、2) 学習で使える(微分可能)こと、3) 実運用で計算可能であること、です。

そこで今回の論文はWavenetを使ってPESQを真似る、つまり評価器自体を学習させるという話だと聞きました。これって要するに、人の耳の評価を模した“学習できるスコア計算機”を作るということですか?

はい、それが本質です。Wavenetは大きな受容野(receptive field)を持つため、長い時間的依存性を捉えられます。PESQは時間的な文脈を考慮して人間の評価に近づけるため、この長い受容野を持つネットワークでPESQスコアを予測するモデルを学習すれば、微分可能な損失として使える可能性が出てきますよ。大丈夫、一緒にやれば必ずできますよ。

実際の運用では計算量やサンプルの長さが問題になると聞きます。実用的に扱える範囲でこの学習器を動かすための工夫はありますか?例えば、現場の会議録音をすべて評価するような場面を想定すると不安でして。

そこは現実的な設計がされています。この論文では0.25秒(250ミリ秒)ずつのクリーン音声と劣化音声を入力に使い、計算負荷を抑えています。さらに話者ごとに条件付け(conditioning)を行うことで、1モデルで複数話者に対応しつつ精度を高める工夫をしています。つまり、現場データでも分割して評価し、必要に応じて話者情報で調整すれば現実的に運用できますよ。

なるほど。現場では「損失関数にPESQを使うと主観品質が上がる」と言われていますが、学習器を噛ませることで改善の効果はどれほど期待できますか。投資対効果の見積もりが欲しいのです。

投資対効果を見る観点は3つあります。1) モデルの精度向上による顧客満足度の改善、2) 人手による評価やチューニング工数の削減、3) リアルタイム処理のための計算資源と運用コストのバランスです。実験結果は限定的ですが、主観評価に近い損失で学習すると音質改善の指標が上がる傾向が報告されています。具体的には、ベースのMSE(Mean Squared Error、平均二乗誤差)損失のみよりも、人間の評価に寄せた損失を導入すると聞感上の改善が得られやすい、という点が期待値になりますよ。

これって要するに、従来の単純な数値誤差だけで学習するよりも、人の評価に近づけるための損失を学習させれば、顧客が「良い」と感じる改善がより確実になるということですね。そう理解してよろしいですか。

その通りです。要点を3つにまとめると、1) 人の評価を模倣することで主観評価と整合しやすくなる、2) Wavenetのような長い受容野が時間的依存性を捉える、3) 実装上は短いスライスで処理して現実運用に耐える、ということです。大丈夫、一緒に試せば確かめられますよ。

わかりました。では社内で試作するときはまず短い音声片で評価モデルを学習させて、既存のノイズ除去モデルと組み合わせて検証する、という段取りで進めます。私の言葉でまとめますと、「人の聞こえ方を学ぶ損失関数を作って、それを使うとお客さまが良いと感じる改善が得やすくなる」という理解で合っています。


