話者認識

話者認識（わしゃにんしき、）は、人間の声から個人を認識（識別や認証）するコンピュータによる処理。音声から特徴を抽出し、モデル化し、それを使って個人の声の認識を行う。
誰の声であるかを識別する「話者認識」は、何を話しているかを認識する「音声認識」とは異なる。英語では話者認識を Voice recognition とも呼ぶが、これを音声認識の意味で間違って使っている場合がある。
話者認識は約40年前、アナログのフィルタの出力を平均化したもので一致するかどうかを調べるという形式で始まった。話者認識は、人によって異なる声の音響的特徴を利用する。そういった音響パターンは、解剖学的特徴（咽喉や口の大きさや形状）と生まれ育ってきた環境（話すスピードやスタイル）に起因する。このように後天的に学習したパターンも声に影響するため、話者認識は「行動的特徴」を用いた生体認証に分類される。
照合/認証と識別.
話者認識の応用は2種類に分類される。1つは、ある人物が本人の主張している通りの個人であるかを照合/認証するものである。これを話者照合（Speaker verification）または話者認証（Speaker authentication）と呼ぶ。もう1つは、誰だかわからない声を誰のものか識別するものである。これを話者識別（Speaker identification）と呼ぶ。話者照合では、話者の声を1つのテンプレートと照合すればよいが、話者識別では記憶しているあらゆるテンプレートと照合する必要がある。
例えば、ATMが話者認識を生体認証として使っている場合、それは話者照合/話者認証である。また、何らかの音声記録から犯罪者の声がないかを探す場合、犯罪者の声のデータベースとの照合によって話者識別を行うことになる。
話者照合は、セキュリティを確保したアクセスを必要とする場合に利用される。システムは利用者の知識を前提として運用され、利用者が協力することで成り立つ。話者識別システムは、逆に利用者に知られないように行われることが多い。例えば、ユーザーを正しいメールボックスに誘導する、議論に参加している話者を識別する、音声認識システムに話者が入れ替わっていることを知らせる、ユーザーがシステムに既に登録済みかどうかを調べるといった利用が考えられる。
話者識別.
話者識別は話者認識の一種である。これは、さらに次の2つに分類できる。
前者は生体認証とは関係しない。
話者識別は複雑な音声処理アルゴリズムに基づいている。一方、話者照合はやや単純な声紋の照合に基づいている。
話者認識の手法.
話者認識システムには、登録フェーズとテストフェーズがある。登録では、話者の音声が録音され、いくつかの特徴を抽出して「声紋」または「テンプレート」あるいは「モデル」を構築する。テストフェーズ（認証フェーズまたは識別フェーズ）では、そのテンプレートまたはモデルと話者の音声が一致するかを調べる。
話者認識システムが利用する音声入力は、テキスト依存、テキスト提示、テキスト独立の3種類に分類される。これらは、登録フェーズとテストフェーズでの音声の内容の関係で決まってくる。
登録とテストで全く同じ内容の文章を話す必要がある場合を、テキスト依存認識と呼ぶ。これはさらに2つに分類できる。文章が毎回同じである場合、認識精度は最も高くなる。この場合、設計者は話者の違いを最も引き出しやすい文章を使うことができる。しかし、毎回同じ文を使っているため、悪意ある者がシステムを騙す可能性も高くなる。さらに、全ユーザーが非常に複雑な文を覚えておかなければならないとしたら、ユーザーフレンドリーとは言えないし、言語も固定されてしまう。
もう1つのテキスト依存システムとして、パスフレーズ方式がある。ユーザーは登録時に任意の文を使うことができるが、テストフェーズでは登録時に言った文を必ず繰り返さなくてはならない。話者認証では、このようなテキスト依存入力を使っていることが多い。この場合、悪意ある者が侵入するにはパスフレーズを知っている必要があるため、セキュリティが若干強化される。しかし、このようなシステムでもユーザーの声をこっそり録音しておくことで破られる危険性がある。それに対処するため、多くのシステムでは複数のパスフレーズを用意していて、それらは質疑応答形式になっている。テストの際、システムはユーザーにランダムに選んだ質問をし、ユーザーはそれに正しい応答をしなければならない。しかし、質問の種類はそれほど多くはないので、依然として録音することでセキュリティを破ることが可能である。
テキスト提示型システムでは、ユーザーが読み上げるべきテキストが提示される。原則として、そのテキストはどんな内容でもよい。しかし、認識処理はかなり複雑になる。システムは話されるテキストが何であるかを知っているが、同時にそのランダムに選択されたテキストが特定の話者によって発音されたときどう認識されるか（どんな声紋が観測されるか）も把握していなければならない。典型的な例として数字列を読み上げさせるシステムがある。登録フェーズでは、どの数字も同じ程度に出現するよう注意深く選ばれた数字列を読み上げさせる。これによって、各数字についての話者固有モデルを学習する。この方式ではそのようなモデルが10個だけあればよいという利点がある。テストフェーズでは、ランダムな数字列を提示し、同時に内部では数字毎のモデルを連結した話者モデルを構築する。登録時とテスト時で話者の話す言語が異なる可能性は低いため、言語に依存しないシステムを容易に構築できるという利点もある。
テキスト独立システムは話者識別で使われることが多い。というのも話者識別では、話者の話す内容をほとんど制限できないためである。この場合、登録フェーズで登録されるテキストとテストされるテキストは違うものである。実際、登録はユーザーが気づかないうちに行われている可能性もあり、何らかの音声の録音があれば十分である。
テキスト独立システムでは話されるテキストの内容に関する知識は利用できないので、一般的な話者の声の特性だけを利用する。このため、認識精度は限定される。一方、言語は何であってもよい。
技術.
「声紋」の処理や格納には様々な技術があり、周波数推定、隠れマルコフモデル、パターンマッチング、ニューラルネットワーク、決定木などがある。
周辺騒音レベルによって、音声サンプルの収集が妨げられることもある。そこで、精度を上げるためにノイズリダクションアルゴリズムを利用する。発声時に話者が何をしているかでも認識精度が影響を受けるし、登録時とテスト時の電話が違うとやはり認識精度が低下する。加齢による声質の変化も考慮する必要がある。システムによってはそのような長期的な声の変化を捉えるため、テストが行われる度に話者モデルを更新していく。
話者認識エンジンは、より大きな音声処理/制御システムの一部として販売されることが多い。話者認識には、既存の電話などを流用でき、追加のハードウェアはほとんど必要とされない。