以下、本発明の各実施の形態について図面を参照して詳細に説明する。ただし、必要以上に詳細な説明、例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明等は省略する場合がある。
なお、以下の説明および参照される図面は、当業者が本発明を理解するために提供されるものであって、本発明の請求の範囲を限定するためのものではない。
<音声認証システム1の構成>
まず、図1を参照して、本発明の実施の形態に係る音声認証システム1の構成について説明する。図1に示すように、音声認証システム1は、端末装置10と、音声認証装置20と、ネットワーク30と、を有する。
端末装置10は、音声認証システム1のユーザ(以下、単にユーザと記載する)の音声入力を受け付け、音声データを生成する装置である。端末装置10の一例としては、タブレット端末、スマートフォン等の携帯端末装置が挙げられる。また、端末装置10の一例としては、特定の場所に設置されたPC(Personal Computer)等のコンピュータが挙げられる。
本実施の形態において、端末装置10は、ユーザが所望のサービスを受けようとする際に、そのサービスを受けるための認証が行われる場所、および、認証のために必要な音声データの登録が行われる場所等に設置されている。ユーザは、この端末装置10を介して、所望のサービスを受けるより前に、音声認証のために必要な音声データの登録を行う。また、ユーザは、音声認証装置20により、登録された音声データと、認証の際に新たに生成された音声データとを用いた音声認証が成功した場合に、所望のサービスを受けることができる。
なお、本実施の形態において、音声認証とは、音声データを用いて認証を行うことを意味する。また、以下の説明において、音声認証の際に用いられる音声データを事前に登録することを、音声登録と記載する。音声認証では、音声登録された音声データと、認証の際に新たに生成された音声データとを照合することで、認証の成否が判断される。音声認証システム1における、音声登録を行うための音声登録処理、および、音声認証を行うための音声認証処理についての詳細は、後述する。
所望のサービスについては、本発明では特に限定しない。所望のサービスの一例としては、特定の施設(会員制の店舗等)への入場、料金決済、他のユーザへの送金、等が挙げられる。
例えばユーザが会員制のスポーツクラブへの入店を希望する場合、ユーザは、当該スポーツクラブの入口に設置された端末装置10を用いて音声登録を行っておく。その後、ユーザは当該端末装置10を介して音声認証システム1に音声認証を行わせる。認証に成功した場合に、当該スポーツクラブへのユーザの入店が許可される。
また、例えばユーザが商品購入時に料金の決済を希望する場合、ユーザは、商品を購入しようとする店舗のレジに設置された端末装置10を用いて音声登録を行っておく。その後、ユーザは当該端末装置10を介して音声認証システム1に音声認証を行わせる。認証に成功した場合に、あらかじめ登録されたユーザの決済用口座を用いて料金の決済が行われる。
図1の説明に戻る。音声認証装置20は、ネットワーク30を介して端末装置10と接続されており、端末装置10から音声データを受信して、その音声データを用いて音声登録および音声認証を行う装置である。音声認証装置20の一例としては、例えばクラウドサーバが挙げられる。
ネットワーク30は、例えばインターネット等の公衆ネットワークである。
<端末装置10の構成>
次に、図2を参照して、端末装置10の構成について説明する。図2に示すように、端末装置10は、通信部11と、音声データ生成部12と、提示部13と、入力部14と、を有する。
通信部11は、ネットワーク30を介して、音声認証装置20と種々のデータの送受信を行う。
音声データ生成部12は、端末装置10に向かって発話したユーザの音声入力を受け付け、音声入力に基づく音声データを生成する。音声データ生成部12は、例えば、マイクを内蔵するデバイスである。音声データ生成部12による音声データ生成の方法については、本発明では特に限定しないが、例えば、マイクから入力された音声信号をA-D変換して音声データを生成する方法が採用されうる。音声データ生成部12は、さらに、音声データを圧縮符号に変換してもよい。
以下の説明では、音声信号をA-D変換したデータ、A-D変換したデータを符号化したデータ、後述する各種処理(ノイズ軽減、特徴量抽出、及び音素変換)を経て得られるデータを総称して音声データという。また、音声データのうち、個人を識別可能なデータを声紋データという。なお、音声認証には声紋データを用いることが一般的であり、以下の説明において、音声認証と声紋認証は実質的に同義であるとする。
提示部13は、端末装置10がユーザの音声登録または音声認証を行う際に、ユーザに発話させる文字列(後述する第1発話用文字列、または後述する第2発話用文字列)をユーザに対して提示する。提示部13は、例えば、ディスプレイであり、この場合、提示部13は、文字列を表示することで、文字列をユーザに対して提示する。また、提示部13は、例えば、スピーカであり、この場合、提示部13は、ユーザに発話させる文字列を音声で提示する。なお、本発明において、提示部13はディスプレイまたはスピーカに限定されず、例えば点字等により文字列を提示する装置であってもよい。また、提示部13はディスプレイおよびスピーカ、または他の装置を併用したものであってもよい。
本発明において、文字列とは、文字が連なったものを意味する。本発明において、文字列とは、意味をなさない文字の連なりであってもよいが、文字列全体で意味をなす文字の連なり(単語等)であることがより望ましい。本発明において、文字とは、言語の伝達手段の一つとして使われる記号等を意味しており、どのような記号であるかについては特に限定しないが、1つの記号が1つの音を表すもの(いわゆる音節文字)であることがより望ましい。以下では、文字として、仮名、またはアラビア数字を採用した場合について説明する。
提示部13は、1つの文字列のみを提示してもよいし、複数の文字列を提示してもよい。提示部13が複数の文字列を提示する場合、そのうちいずれの文字列を発話するかについては、ユーザが選択できるようにしてもよい。また、提示部13は、複数の文字列の提示順を、後述するセキュリティレベルに応じた順序としてもよいし、ランダムな順序としてもよい。
入力部14は、ユーザによる音声以外の入力操作を受け付ける。入力部14は、例えば、タッチパネル、キーボード、マウス、トラックボール等の操作デバイスである。
端末装置10は、このような構成により、ユーザの音声認証の際に、ユーザに発話させる文字列を提示し、ユーザが文字列を発話した場合、その音声を音声データとして取得する。
なお、提示部13が提示する文字列は、音声認証装置20が有する後述の第1発話用文字列生成部22、または認証用文字列生成部23によって生成されたものである。第1発話用文字列生成部22、または認証用文字列生成部23の動作の詳細については、後述する。
<音声認証装置20の構成>
次に、図3を参照して、音声認証装置20の構成について説明する。図3に示すように、音声認証装置20は、通信部21と、第1発話用文字列生成部22と、認証用文字列生成部23と、音声認識部24と、声紋データ生成部25と、認証部26と、サービス提供部27と、ユーザデータ取得部28と、記憶部29と、を有する。
通信部21は、ネットワーク30を介して、端末装置10と種々のデータの送受信を行う。
第1発話用文字列生成部22は、音声認証システム1の音声登録処理の際にユーザに発話させる文字列である第1発話用文字列を生成する。第1発話用文字列生成部22による第1発話用文字列の生成方法については特に限定しないが、ユーザが発話しやすい文字列が生成されることが望ましい。
第1発話用文字列生成部22は、例えば、後述する記憶部29に記憶されているコーパスやユーザ個別の辞書データを参照して文字列を生成してもよい。または、第1発話用文字列生成部22は、後述するユーザデータ取得部28により入手されたユーザに関する個人情報の少なくとも一部または当該個人情報から連想される単語を含むように第1発話用文字列を生成してもよい。
認証用文字列生成部23は、音声認証システム1の音声認証処理の際にユーザに発話させる文字列である第2発話用文字列を生成する。認証用文字列生成部23は、まず、第1発話用文字列生成部22が生成した第1発話用文字列に含まれる文字のいずれかを含む認証用文字列を生成した後、認証用文字列を適宜組み合わせて第2発話用文字列を生成する。
第1発話用文字列生成部22および認証用文字列生成部23により生成される各文字列については、後に具体例を挙げて詳しく説明する。
音声認識部24は、通信部21が端末装置10から受信した音声データを文字列に変換する。これとともに、音声認識部24は、所定の文字列毎に音声データを切り出し、文字列と対応付けて出力する。そして、音声認識部24は、切り出した音声データ、文字列、及び当該文字列の時刻情報(開始時間及び終了時間)の対応付けを行い、対応付けた情報を記憶部29に記憶させる。
なお、音声認識部24は、音声データに基づいて変換した文字列に含まれる文字毎に音声データを切り出してもよいが、例えば変換した文字列に含まれる単語毎、または文節毎に音声データを切り出すことがより望ましい。音声認識部24が変換する文字列と、切り出す音声データとについては、後に具体例を挙げて詳しく説明する。
音声認識部24は、音声認証システム1の音声登録処理の際には、第1発話用文字列をユーザが実際に発話して得られた音声データを用いて、上記動作(文字列への変換、文字列に対応する音声データの切り出し、文字列の時刻情報との対応付け)を行う。なお、以下の説明において、第1発話用文字列をユーザが実際に発話して得られた音声データを、第1音声データと記載する。
また、音声認識部24は、音声認証システム1の音声認証処理の際には、第2発話用文字列をユーザが実際に発話して得られた音声データを用いて、上記動作を行う。なお、以下の説明において、第2発話用文字列をユーザが実際に発話して得られた音声データを、第2音声データと記載する。さらに、音声認識部24は、音声認証処理の際には、ユーザの音声データから、後述する付加文字列に該当する部分を除去し、その他の部分の音声データ及び時刻情報のみを音声認識の結果として出力する。
図4を参照して、音声認識部24について説明する。図4に示すように、音声認識部24は、ノイズリダクション部241と、発話検出部242と、特徴量抽出部243と、音素変換部244と、文字列変換部245と、音響モデル246と、言語モデル247と、付加文字列除去部248と、を有する。
ノイズリダクション部241は、音声データに含まれるノイズ(ユーザの周辺環境のノイズ等)を軽減する。ノイズリダクション部241によるノイズの軽減方法については、本発明では特に限定せず、既知のノイズ軽減方法を採用することができる。
発話検出部242は、入力された音声データからユーザが発話している部分を切り出す。
特徴量抽出部243は、例えばMFCC(Mel-Frequency Cepstrum Coefficient;メル周波数ケプストラム係数)等を音声データの特徴量として抽出する。特徴量の抽出方法については既知の技術を採用すればよく、本発明では特徴量の抽出方法については特に限定しない。
音素変換部244は、抽出された特徴量を音素に変換する。音素とは、ある言語における音声の最小単位を意味しており、本実施形態では、1つの文字に対応する1つの音を示す。具体例を挙げると、「あいうえお」という文字列をユーザが実際に発話して得られた音声データの中から、「あ」に該当する部分の音声データ(音声波形)を抽出したものが音素である。音素変換部244により、1つの音声データは、複数の音素の集まりに変換される。
音素変換部244が特徴量を音素に変換する方法については、本発明では特に限定しないが、以下のような方法を採用することができる。例えば、音素変換部244は、音響モデル246を用いた統計的手法により、特徴量を音素に変換する。音響モデル246は、特徴量と音素の繋がりに関する確率分布をあらかじめモデル化したものであり、音素変換部244は、例えばある特徴量と音響モデルとを比較(照合)し、最も確度が高い音素を、その特徴量に対応する音素として出力する。例えば、音素変換部244は、確度が高くなるよう、最も有用な特徴量を1つずつ足していき、確度の変化がなくなるまで反復的に繰り返すようにしてもよい。
文字列変換部245は、音素を文字列に変換する。すなわち、文字列変換部245は、入力された音声データの内容を文字列として出力する。
文字列変換部245が音素を文字列に変換する方法については、本発明では特に限定しないが、以下のような方法を採用することができる。例えば、文字列変換部245は、言語モデル247を用いた統計的手法により、音素を文字列に変換する。言語モデル247は、品詞(単語)の繋がり等、文法構造に関する確率分布をモデル化したものであり、辞書データを含むモデルである。言語モデル247は、音声認識や音声認証の結果等に応じて動的に更新されてもよい。
文字列変換部245は、例えば、音素変換部244から出力された音素の並びに対応する単語、品詞、またはこれらの繋がりを、言語モデル247から抽出し、最も確度が高い文字列を当該音素に対応する文字列として出力する。このような方法により、文章として意味が通っている音声データを、精度よく文字列に変換することができる。また、文字列変換部245は、変換した文字列(単語)毎に音声データを切り出すとともに、文字列の時刻情報(開始時刻および終了時刻)を取得し、変換した文字列と、切り出した音声データと、時刻情報と、を対応付けて出力する。
付加文字列除去部248は、記憶部29を参照し、文字列変換部245が出力した文字列の中から認証文字列に対応する文字列を検出し、検出した認証文字列以外の文字列(付加文字列に相当)を除去する。そして、付加文字列除去部248は、認証文字列、当該認証文字列に対応付けられた音声データおよび時刻情報のみを出力する。
図3の説明に戻る。声紋データ生成部25は、音声認識部24が出力した、文字列毎に対応付けられた音声データから、声紋データを生成する。声紋データ生成部25は、音声認識部24から複数の文字列が出力された場合は、それぞれの文字列に対応付けられた音声データから、それぞれの声紋データを生成する。
声紋データとは、ユーザの音声に固有の特徴である声紋に関するデータである。声紋データの生成方法については本発明では特に限定せず、既知の方法が適宜採用されればよい。一般的な声紋データ生成方法としては、多数の話者の音声から作られた音韻の標準モデルとの差分をとることで声紋データを生成する方法が挙げられる。
声紋データ生成部25は、音声認証システム1の音声登録処理の際には、音声認識部24が第1音声データに基づいて出力した文字列に対応付けられた音声データから、声紋データを生成する。以下の説明において、音声登録処理の際に声紋データ生成部25が生成した声紋データを、第1声紋データと記載する。声紋データ生成部25が生成した第1声紋データは、音声登録処理の際に、音声認識部24が第1音声データに基づいて出力した文字列と対応付けられて、後述の記憶部29に記憶される。
一方、声紋データ生成部25は、音声認証システム1の音声認証処理の際には、音声認識部24が第2音声データに基づいて出力した文字列に対応付けられた音声データから、声紋データを生成する。以下の説明において、音声認証処理の際に声紋データ生成部25が生成した声紋データを、第2声紋データと記載する。
認証部26は、音声認証システム1の音声認証処理の際に、記憶部29に記憶されている第1声紋データと、声紋データ生成部25が生成した第2声紋データと、を照合することで、ユーザの認証を行う。認証部26は、第1声紋データと第2声紋データとの一致率が所定の閾値以上である場合に認証成功と判断し、一致率が所定の閾値未満である場合に認証失敗と判断する。
サービス提供部27は、認証部26によるユーザの認証が成功した場合に、ユーザに対して、所望のサービスを提供する。なお、本実施の形態では、説明の都合上、音声認証装置20がサービス提供部27を有するとしたが、本発明はこれに限定されない。
本発明では、音声認証装置20がサービス提供部27を有する代わりに、音声認証システム1がユーザに対して所望のサービスを提供するサービス提供装置をさらに有していてもよい(つまり、音声認証装置20から独立したサービス提供装置が設けられていてもよい)。この場合、サービス提供装置が、音声認証装置20の認証部26による認証が成功した場合に、サービスを提供すればよい。
ユーザデータ取得部28は、端末装置10を介してユーザにより入力された、ユーザの個人情報(名前、住所、生年月日、性別、年齢等)に関するデータ(ユーザデータ)を取得する。ユーザデータ取得部28は、例えば端末装置10の入力部14を介してユーザが入力したユーザデータを、ネットワーク30および通信部21を介して取得すればよい。
記憶部29は、音声認証装置20において用いられる種々のデータを記憶する記憶デバイスである。記憶部29には、例えば、第1発話用文字列を生成するための、コーパスおよび辞書データの少なくとも一方が記憶されている。また、記憶部29には、ユーザの音声データ、文字列、および当該文字列の時刻情報が互いに対応付けられた情報が記憶されている。また、記憶部29には、ユーザ毎に、ユーザの識別情報、第1発話用文字列、認証用文字列、第2発話用文字列、第1音声データ、第2音声データ、第1声紋データ、および第2声紋データが、互いに対応付けられて記憶されている。
<音声認証システム1の動作例>
以下では、上述した構成を有する音声認証システム1の動作例について、図5及び図6を参照して説明する。
[1]音声登録処理
まず、図5を参照して、ユーザの音声を音声認証システム1に登録する音声登録処理について説明する。
ステップS1において、音声認証装置20は、端末装置10を介して入力された、ユーザからの登録処理の開始要求を受信する。ユーザによる音声登録処理の開始要求は、例えば端末装置10の入力部14を介して行われる。これにより、音声認証システム1の音声登録処理が開始される。
ステップS2において、音声認証装置20の第1発話用文字列生成部22は、ユーザの音声登録時にユーザに発話させるための文字列である第1発話用文字列を生成する。
第1発話用文字列生成部22が生成する第1発話用文字列は、上述したように、ユーザが発話しやすい文字列であることが望ましいが、ランダムな文字列であってもよいし、例えばユーザの生年月日や年齢、住所、氏名等の個人情報の少なくとも一部または当該個人情報から連想される単語を含む文字列であってもよい。
ランダムな文字列の例としては、特定の国や地域でよく使われる言い回し(例えば「げんこつやまのたぬきさん」)をコーパスからランダムに取得すること等が挙げられる。ユーザデータから導き出されるユーザの属性などに応じて、コーパスから取得した文字列を辞書データとして記憶部29に記憶させておき、第1発話用文字列生成部22は当該辞書データを参照して第1発話用文字列をランダムに生成してもよい。辞書データは音声認識や音声認証の結果などに応じて随時更新されてもよい。
ユーザの生年月日、年齢、住所等の個人情報を含む文字列の例としては、「1995ねん1がつ1にち」、「33さい」、「ちよだくそとかんだ」等が挙げられる。なお、この例ではひらがなで表記したが、カタカナを採用してもよい。
また、第1発話用文字列生成部22は、コーパスや辞書データから取得したランダムな文字列とユーザデータに基づく文字列とを組み合わせて第1発話用文字列を生成するようにしてもよい(例えば、「げんこつ33さいのたぬき」等)。
第1発話用文字列生成部22は、このような動作により、複数の異なる第1発話用文字列を生成することがより望ましい。
図5の説明に戻る。ステップS3において、端末装置10の提示部13は、ステップS2で第1発話用文字列生成部22が生成した第1発話用文字列を、ユーザに対して提示する。これとともに、提示部13は、第1発話用文字列を発話する(読み上げる)よう、ユーザに対して要求する。
例えば提示部13がディスプレイである場合、提示部13は第1発話用文字列とともに、「表示された文字を読み上げて下さい。」等のメッセージを表示する。提示部13がスピーカである場合、提示部13は、「この後の言葉を発話して下さい。」等のメッセージを発した後、第1発話用文字列を音声として再生する。第1発話用文字列が複数生成されている場合、提示部13は、複数の第1発話用文字列を提示するとともに、そのうち1つの第1発話用文字列を選択して発話するようにユーザに要求するメッセージを出力する。
これにより、ユーザが第1発話用文字列を発話すると、端末装置10の音声データ生成部12によって、第1発話用文字列に対応する第1音声データが生成される。
ステップS4において、音声認証装置20は、端末装置10から第1音声データを取得する。
ステップS5において、音声認証装置20の音声認識部24は、第1音声データを文字列に変換するとともに、変換した文字列に含まれる単語(または文字、または文節)毎に音声データを切り出し、文字列と切り出した音声データとを対応付けて出力する。
以下、具体例を挙げて説明する。第1音声データが、ユーザが「げんこつやまのたぬきさん」と発話して得られた音声データであった場合、音声認識部24は、「げんこつ」に対応する音声データ、「やま」に対応する音声データ、「の」に対応する音声データ、「たぬき」に対応する音声データ、「さん」に対応する音声データをそれぞれ切り出す。
なお、この例では音声認識部24は第1発話用文字列を単語毎に分割して音声データの切り出しを行う場合について説明したが、音声認識部24が音声データをどの程度(文字毎、単語毎、文節毎)に分けて切り出すかについては本発明では特に限定しない。音声認識部24は、例えば第1発話用文字列を文字毎(「げ」、「ん」、「こ」、「つ」・・・)に分割して音声データの切り出しを行ってもよい。
図5の説明に戻る。ステップS6において、音声認証装置20の認証用文字列生成部23は、後述の音声認証処理の際に用いられる文字列である、認証用文字列を生成する。
認証用文字列生成部23が生成する認証用文字列は、第1発話用文字列生成部22が生成した第1発話用文字列に含まれる文字(単語、文節)を含む。
例えば、第1発話用文字列が「げんこつやまのたぬきさん」である場合、認証用文字列の例として、以下のようなものが挙げられる。
(1)げんこつ
(2)たぬきやま
(3)たぬきのこ
(4)こやまさん
(5)げやたさ
文字列(1)は、第1発話用文字列から文字の順序や単語の意味を変えず、当該第1発話用文字列の一部から認証用文字列を生成した例である。文字列(2)および(3)は、第1発話用文字列から文字の順序を一部変えつつも、当該第1発話用文字列に含まれる各単語の意味から逸脱しない範囲で、当該第1発話用文字列の一部から認証用文字列を生成した例である。
また、文字列(4)は、第1発話用文字列とは異なる意味が生まれるよう、当該第1発話用文字列の一部から認証用文字列を生成した例である。文字列(5)は、第1発話用文字列の順序や単語の意味とは全く無関係に、ランダムに当該第1発話用文字列の一部から文字を抽出して認証用文字列を生成した例である。
このように、認証用文字列生成部23は、第1発話用文字列に含まれる文字を含む認証用文字列を生成する。なお、上述した例では、認証用文字列生成部23は複数の認証用文字列を生成していたが、本発明はこれに限定されず、1つの認証用文字列のみを生成してもよい。
なお、ステップS6において、認証用文字列生成部23は、認証用文字列の生成に用いるための第1発話用文字列として、ステップS5で音声認識部24が第1音声データに基づいて変換した文字列を用いることがより望ましい。しかしながら、本発明はこれに限定されず、認証用文字列生成部23は、第1発話用文字列を第1発話用文字列生成部22から直接取得してもよい。
ステップS7において、認証用文字列生成部23は、ステップS6で生成した認証用文字列を用いて、第2発話用文字列を生成する。第2発話用文字列とは、後述する音声認証処理において、ユーザに発話させるための文字列である。
上述したステップS6において、認証用文字列が複数生成された場合、本ステップS7において、認証用文字列生成部23は、そのうちの少なくとも1つを用いて第2発話用文字列を生成する。この際、認証用文字列生成部23は、複数の認証用文字列を用いて第2発話用文字列を生成してもよい。また、認証用文字列生成部23は、1つまたは複数の認証用文字列に、認証用文字列以外の文字列である付加文字列を付加して第2発話用文字列を生成してもよい。
付加文字列は、音声認証処理のセキュリティレベルを向上させることを目的として、認証用文字列に付加される、余分な文字列である。付加文字列の生成方法については特に限定しないが、例えば、認証用文字列とともに使われやすい文字列をコーパスまたは辞書データから取得することで生成されてよいし、まったく意味をなさない完全なランダムな文字列を付加文字列としてもよい。
認証用文字列が上記文字列(1)~(5)である場合の、第2発話用文字列の具体例について以下説明する。
1つの例として、認証用文字列生成部23は、単に上記文字列(1)~(5)のうちの1つ(例えば文字列(2)「たぬきやま」)をそのまま第2発話用文字列としてもよい。
または、1つの例として、認証用文字列生成部23は、上記文字列(1)~(5)のうちのいくつかを組み合わせて第2発話用文字列を生成してもよい。
文字列(1)「げんこつ」と文字列(3)「たぬきのこ」とを組み合わせた場合、第2発話用文字列は、「げんこつたぬきのこ」となる。さらに、認証用文字列生成部23は、文字列(1)「げんこつ」と文字列(3)「たぬきのこ」の2つの文字列をそれぞれ第2発話用文字列としてもよい。
もしくは、文字列(2)「たぬきやま」、文字列(4)「こやまさん」、文字列(5)「げやたさ」を組み合わせた場合、第2発話用文字列は、「げやたさたぬきやまこやまさん」となる。さらに、認証用文字列生成部23は、文字列(2)「たぬきやま」、文字列(4)「こやまさん」、文字列(5)「げやたさ」の3つの文字列をそれぞれ第2発話用文字列としてもよい。
さらに、1つの例として、認証用文字列生成部23は、上記文字列(1)~(5)のいずれか、またはこれらを組み合わせた文字列に、付加文字列を付加して第2発話用文字列を生成してもよい。例えば、文字列(3)「たぬきのこ」に対して付加文字列「なかよし」を付加した場合、第2発話用文字列は、「なかよしたぬきのこ」となる。
このように、認証用文字列生成部23は、認証用文字列が複数ある場合、そのうちの少なくとも1つを第2発話用文字列としてもよいし、全てではない複数個を組み合わせて第2発話用文字列としてもよいし、全てを組み合わせて第2発話用文字列としてもよい。また、認証用文字列生成部23は、認証用文字列に対して当該認証用文字列と無関係の、または親和性のある文字列である付加文字列を付加して第2発話用文字列を生成してもよい。
ここで、認証用文字列生成部23は、あらかじめ設定されたセキュリティレベル(認証レベル)に応じて、第2発話用文字列を生成するための認証用文字列の数および付加文字列の付加の有無を決定する。セキュリティレベルは、例えばユーザが受けようとするサービスの内容、サービスを受けようとする場所、利用頻度、環境音レベル、等の複数の要素毎にあらかじめ決定されていればよい。
以下、図6を参照して、セキュリティレベルについて具体例を挙げて説明する。例えば、ユーザが利用しようとするサービスの内容と、セキュリティレベルとの関係は、例えば以下のようになる。すなわち、図6に示すように、ある施設への入退室はセキュリティレベル「1」である。9,999円以下の決済はセキュリティレベル「2」である。10,000円以上の決済はセキュリティレベル「3」である。他者への送金はセキュリティレベル「4」である。
なお、本実施の形態では、セキュリティレベルの数字が大きいほどより高い安全性が求められることを意味しており、上述のサービス内容の例では、ある施設への入退室より他者への送金の方が求められる安全性が高いことが示されている。
また、利用場所と、セキュリティレベルとの関係は、例えば以下のようになる。すなわち、図6に示すように、利用場所がユーザの自宅である場合、セキュリティレベル「1」である。利用場所が金融機関である場合、セキュリティレベル「2」である。利用場所が公的機関(役所、官公庁等)である場合、セキュリティレベル「3」である。利用場所がコンビニエンスストアである場合、周りに人が多いことが想定されるため、より求められる安全性が高く、セキュリティレベル「4」である。
また、利用頻度と、セキュリティレベルとの関係は、例えば以下のようになる。すなわち、図6に示すように、前回のサービス利用から1日以内である場合、セキュリティレベル「1」である。前回のサービス利用から1週間以内である場合、セキュリティレベル「2」である。前回のサービス利用から1ヶ月以内である場合、セキュリティレベル「3」である。サービス利用が初回である場合、セキュリティレベル「4」である。
また、図6には図示しないが、セキュリティレベルは、さらに環境音レベルに基づいて適宜設定されてもよい。なお、環境音レベルとは、ユーザがサービスを利用しようとする環境においてユーザが浴びる環境音の大きさを示す値である。環境音レベルが小さくなる(=周囲が静かになる)ほどセキュリティレベルが高くなるように設定されてもよいし、環境音の大きさが大きくなる(=周囲が騒がしくなる)ほどセキュリティレベルが高くなるように設定されてもよい。
また、上述した例以外にも、例えばユーザ毎にあらかじめセキュリティレベルが設定されていてもよい。具体的には、例えばユーザAのセキュリティレベルが「1」、ユーザBのセキュリティレベルが「3」のように、あらかじめ設定されていてもよい。ユーザ毎のセキュリティレベルは、例えばユーザのこれまでのサービス利用履歴に基づき算出される信用度等に応じてあらかじめ設定されればよい。
さらに、上述した複数の要素毎に設定されたセキュリティレベルを組み合わせて、最終的なセキュリティレベルを決定するようにしてもよい。図6には4段階のセキュリティレベルが設定される例を示したが、5段階以上、または3段階以下のセキュリティレベルが設定されるようにしてもよい。また、要素毎に異なる段階のセキュリティレベルがそれぞれ設定されるようにしてもよい。
複数の要素の組み合わせによってセキュリティレベルが設定される具体例について説明する。例えば、利用場所が、周りに人が多く騒がしいことが想定されるコンビニエンスストア(図6の例ではセキュリティレベル「4」)であっても、サービス内容が5,000円の決済等、比較的少額の決済(図6の例ではセキュリティレベル「2」)である場合には、最終的なセキュリティレベルは例えば「3」に設定されればよい。
認証用文字列生成部23は、このように設定されたセキュリティレベルが高いほど、より多くの認証用文字列および付加文字列を組み合わせて第2発話用文字列を生成する。具体例を挙げると、例えばセキュリティレベルが図6に示すように4段階であった場合、認証用文字列生成部23は、セキュリティレベル「4」では、上述した認証用文字列(1)~(5)の全てと当該認証用文字列(1)~(5)以外の付加文字列とを組み合わせて第2発話用文字列を生成する。一方、認証用文字列生成部23は、セキュリティレベル「1」では、上述した認証用文字列(1)~(5)のうち、例えばいずれか2つのみを組み合わせて第2発話用文字列を生成すればよい。
なお、認証用文字列生成部23は、セキュリティレベルが比較的高い場合には、ユーザデータに基づく認証用文字列を用いて第2発話用文字列を生成すればより望ましい。
以上説明した処理により、求められるセキュリティレベルが高いほど、より多くの認証用文字列および付加文字列に基づく、より複雑な第2発話用文字列が生成されることになる。
図5の説明に戻る。ステップS8において、声紋データ生成部25は、音声認識部24が切り出した音声データに基づいて、認証用文字列に対応する第1声紋データを生成する。
以下、声紋データ生成部25による第1声紋データの生成について具体例を挙げて説明する。以下の説明では、第1発話用文字列が「げんこつやまのたぬきさん」であり、第1発話用文字列が文字毎に分割され、認証用文字列として(1)「げんこつ」、(2)「たぬきやま」、(3)「たぬきのこ」、(4)「こやまさん」、(5)「げやたさ」が生成されたとする。
まず、声紋データ生成部25は、ユーザが第1発話用文字列「げんこつやまのたぬきさん」を発話して得られた第1音声データに基づいて音声認識部24の文字列変換部245が切り出した音声データのうち、認証用文字列に対応する部分のみの音声データを取得する。
具体例を挙げて説明する。声紋データ生成部25は、音声認識部24が第1発話用文字列から文字毎に生成した音声データに基づき、上記認証用文字列(1)~(5)生成するそれぞれについて、第1声紋データを生成する。
ステップS9において、音声認証装置20は、ユーザの識別情報、第1発話用文字列、第1音声データ、複数の認証用文字列、第2発話用文字列、および、認証用文字列のそれぞれに対応する第1声紋データを、互いに関連づけた話者モデルとして記憶部29に記憶する。これにより、ユーザ毎の話者モデルが記憶部29に記憶され、ユーザが音声認証システム1を利用するための音声登録処理が完了する。
なお、図5に示す音声登録処理において、認証用文字列生成部23が認証用文字列を生成するステップS6は、音声認識部24が第1音声データを文字列に変換するステップS5より後であれば、どのタイミングで行われてもよい。すなわち、ステップS6は、例えば音声認識部が文字列を認識した直後に行われてもよいし、それより後(例えば、音声登録済みのユーザが音声認証のため音声認証システム1にログインした後)であってもよい。
また、図5に示す音声登録処理において、声紋データ生成部25が第1声紋データを生成するステップS8は、音声認識部24が認証用文字列に対応した音声データを切り出すステップS5より後であれば、どのタイミングで行われてもよい。すなわち、ステップS8は、例えば音声認識部24から、認識された文字列に対応付けられた音声データが出力された直後に行われてもよいし、それより後(例えば、他のユーザの音声登録処理や音声認証処理が行われているバックグラウンドで実行される)であってもよい。
[2]音声認証処理
次に、図7を参照して、ユーザがサービスを利用しようとする際の音声認証処理について説明する。音声認証処理は、上述した音声登録処理が完了したユーザに対して行われる。
ステップS11において、音声認証装置20は、端末装置10を介して入力された、ユーザからのサービス開始要求を受信する。ユーザによるサービス開始要求は、例えば端末装置10の入力部14を介して行われる。これにより、ユーザの音声認証処理が開始される。
ステップS12において、端末装置10の提示部13は、上述した音声登録処理において生成された第2発話用文字列を、ユーザに対して提示する。これとともに、提示部13は、第2発話用文字列を発話する(読み上げる)よう、ユーザに対して要求する。提示部13による第2発話用文字列の提示方法については、例えば、図5のステップS3における第1発話用文字列の提示と同様の方法を採用すればよい。
このステップS12の要求に応じて、ユーザが第2発話用文字列を発話すると、端末装置10の音声データ生成部12によって、第2発話用文字列に対応する第2音声データが生成される。
ステップS13において、音声認証装置20は、端末装置10から第2音声データを取得する。
ステップS14において、音声認証装置20の音声認識部24は、第2音声データを文字列に変換するとともに、変換した文字列に含まれる単語(または文字、または文節)毎に音声データを切り出し、文字列と切り出した音声データとを対応付けて出力する。また、音声認識部24は、第2音声データに付加文字列に対応する部分が含まれる場合、付加文字列に対応する音声データを破棄する。
以下、具体例を挙げて説明する。第2音声データが、ユーザが「なかよしたぬきのこ」と発話して得られた音声データであった場合、音声認識部24は、まず、第2音声データから、「なかよし」に対応する音声データ、「たぬき」に対応する音声データ、「の」に対応する音声データ、「こ」に対応する音声データをそれぞれ切り出す。
次に、音声認識部24は、記憶部29に記憶されている話者モデルを参照し、切り出した音声データの中から、認証用文字列に対応する音声データのみを抽出し、認証用文字列に対応しない音声データを除去する。なお、認証用文字列に対応しない音声データとは、付加文字列に対応する音声データである。上述した例では、音声認識部24は、「なかよし」に対応する音声データを破棄し、「たぬき」、「の」、「こ」に対応する音声データを出力する。
図7の説明に戻る。ステップS15において、声紋データ生成部25は、ステップS14で音声認識部24が第2音声データに基づいて出力した音声データを用いて、第2声紋データを生成する。上述した例の場合、声紋データ生成部25は、「たぬき」、「の」、「こ」に対応する第2声紋データを生成する。
ステップS16において、認証部26は、上述した音声登録処理において生成された第1声紋データと、ステップS15で生成した第2声紋データとを用いて、ユーザの音声認証を行う。
以下、具体例を挙げて説明する。以下の例では、上述した音声登録処理において示した例のように、認証用文字列が文字列(1)「げんこつ」、(2)「たぬきやま」、(3)「たぬきのこ」、(4)「こやまさん」、(5)「げやたさ」であるとする。そして、声紋データ生成部25が、「たぬき」、「の」、「こ」に対応する第2声紋データを生成したとする。
この場合、記憶部29には、認証用文字列(3)「たぬきのこ」に対応する第1声紋データが記憶されている。認証部26は、記憶部29から当該第1声紋データを読み出すとともに、声紋データ生成部25から「たぬき」、「の」、「こ」に対応する第2声紋データを取得する。そして、認証部26は、文字列「たぬき」、「の」、「こ」のそれぞれについて第1声紋データと第2声紋データとの照合を行って一致率を算出する。認証部26は、一致率が所定閾値以上である場合に認証成功と判断し、一致率が所定閾値より低い場合には認証失敗と判断する。
図7の説明に戻る。ステップS17において、ステップS16での認証の結果が成功である場合(ステップS17:成功)、処理はステップS18に進み、認証の結果が失敗である場合(ステップS17:失敗)、処理はステップS19に進む。
ステップS18において、サービス提供部27は、音声認証に成功したユーザに対して、ユーザが要求するサービスの提供を開始する。
一方、ステップS19において、サービス提供部27は、音声認証に失敗したユーザに対して、認証が失敗した旨を、端末装置10の提示部13等を介して通知させる。
<作用、効果>
以上説明したように、本発明の実施の形態に係る音声認証装置20は、第1発話用文字列に含まれる文字の少なくともいずれかを含む認証用文字列を生成する認証用文字列生成部23と、第1発話用文字列をユーザが発話して生成された第1音声データから、認証用文字列に対応する部分の声紋データを生成するとともに、認証用文字列を含む第2発話用文字列をユーザが発話して生成された第2音声データに基づいて第2声紋データを生成する声紋データ生成部25と、第1声紋データと第2声紋データとを照合してユーザの認証を行う認証部26と、を備える。
このような構成により、ユーザの音声をシステムに利用登録する音声登録処理時にユーザに発話させる第1発話用文字列と、ユーザを音声認証する音声認証処理時にユーザに発話させる第2発話用文字列とを、互いに異なる文字列とすることができる。これにより、例えば第1発話用文字列をユーザが発話した音声データが盗用されても、音声認証処理時に盗用されたデータで認証成功となることがない。このため、音声認証の安全性が向上する。
また、認証用文字列を、第1発話用文字列に含まれる文字を用いて生成するとともに、第1発話用文字列をユーザに実際に発話させて得られた第1音声データに基づいて声紋データを生成する。これにより、ユーザの登録時に認証用文字列そのものを発話させる必要がない。このため、認証用文字列を複数用意した場合でも、音声登録処理時におけるユーザの負担が軽減される。従って、ユーザに負担にならない程度の長さのフレーズを1回だけ発話させるだけで、実質的に複数の認証用文字列を生成していることになる。そのため、登録に要する手間を削減でき、ユーザの利便性が向上する。
すなわち、本発明の実施の形態に係る音声認証装置20によれば、音声認証の安全性向上と、ユーザ登録時のユーザの手間の軽減とを両立させることができる。
また、本発明の実施の形態に係る音声認証装置20において、認証用文字列生成部23は、第1発話用文字列に含まれる文字を含む複数の認証用文字列を生成し、複数の認証用文字列の少なくともいずれかを含む第2発話用文字列を生成する。この際、認証用文字列生成部23は、あらかじめ設定されたセキュリティレベル(認証レベル)に対応した数の認証用文字列を含む第2発話用文字列を生成する。
このような構成により、求められる音声認証の安全性の高さに応じて、臨機応変に第2発話用文字列を生成することができる。すなわち、求められるセキュリティレベルが高い場合には、多くの認証用文字列を組み合わせて複雑な第2発話用文字列を生成することで、高い安全性を確保することができる。また、それほど高いセキュリティレベルが求められない場合には、少ない認証用文字列の組み合わせで比較的簡単な第2発話用文字列を生成することができる。これにより、音声認証処理時にユーザが実際に第2発話用文字列を発話する際に、求められるセキュリティレベルが低いにもかかわらず複雑な第2発話用文字列を発話させられることで、認証時にユーザに大きな負担が掛かる事態が回避される。従って、求められるセキュリティレベルとユーザの負担とのバランスが取れた音声認証処理を行うことができる。
さらに、本発明の実施の形態に係る音声認証装置20によれば、認証用文字列生成部23は、認証用文字列とは異なる付加文字列を認証用文字列に付加して第2発話用文字列を生成する。そして、認証用文字列生成部23は、あらかじめ設定されたセキュリティレベルに基づいて、第2発話用文字列を構成する認証用文字列の数を変更するとともに、付加文字列を付加するか否かを決定する。
このように、生成された認証用文字列にはない文字列を付加してユーザに発話させるので、発話のバリエーションを増やすことができ、不正利用をさらに低減できる。
また、本発明の実施の形態に係る音声認証装置20によれば、ユーザの個人情報に基づいて第1発話用文字列を生成する第1発話用文字列生成部22と、をさらに備える。
このような構成により、音声登録処理時にユーザに発話させる第1発話用文字列を、ユーザの個人情報を含む文字列とすることができる。音声認証処理の際にユーザが発話する第2発話用文字列は、第1発話用文字列に基づいて生成されるため、第1発話用文字列にユーザに関する文字列が含まれることにより、ユーザが認識しやすく、発話しやすい第2発話用文字列を生成することができるようになる。
<変形例>
以上、本発明の実施の形態について説明したが、本発明は、上述した実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
上述した実施の形態において、本発明の音声認証装置の例として、端末装置10において生成されたユーザの音声データを、ネットワーク30を介して取得するクラウドサーバとしての音声認証装置20について説明したが、本発明はこれに限定されない。
本発明の音声認証装置の全ての機能が、クラウドサーバとしての音声認証装置20に搭載されている必要はなく、そのうちいずれかの機能は端末装置10側に搭載されていてもよい。例えば、第1発話用文字列生成部22、認証用文字列生成部23、音声認識部24、声紋データ生成部25、認証部26のいずれかは、端末装置10に搭載されていてもよい。
また、本発明の音声認証装置の全ての機能が、端末装置側に搭載されていてもよい。この場合、音声認証システムにおいて、端末装置以外の構成は必要なくなる。ただし、その場合でも、例えばユーザにサービスを提供するサービス提供部だけは端末装置の外部に設置してもよく、その場合、端末装置とサービス提供部とがネットワークを介して通信可能とすればよい。
上述した実施の形態では、ユーザの音声のみを用いて認証を行っていたが、本発明はこれに限定されず、他の要素の認証を加えた多要素認証を行うようにしてもよい。多要素認証の例としては、例えば以下のようなものがある。すなわち、あらかじめユーザの生体情報(顔画像、虹彩画像、指紋画像、指静脈画像等)を登録しておき、ユーザによりサービス提供が要求された場合に、音声認証処理とともに、これらの生体情報を用いた認証を行う。両方が成功した場合にのみサービス提供を行うようにすれば、より認証の安全性を向上させることができる。
音声データ以外に用いられる要素は、生体情報だけではなく、知識情報(ユーザが知っていること)や所持情報(ユーザが持っているもの)であってもよい。つまり、多要素認証を行ってもよい。
例えば、音声とパスワードを併用して認証を行う場合、音声より先にパスワードの入力をユーザに求めることにより、パスワードに関連づけられるユーザの話者モデルを参照することができるとともに、音声認証の際に参照する話者モデルを絞り込むためにかかる時間を短縮することができる。これにより、セキュリティの高さとユーザの利便性とを両立させることができる。
また、上述した実施の形態では、付加文字列は単に認証用文字列とは異なる文字列であったが、例えば付加文字列をユーザによって(ユーザデータを用いて)変化させるようにしてもよい。このような場合、音声認識結果が一致するユーザの数をより限定させることができ、それにより声紋認証、本人認証の精度向上を図ることができるようになる。