(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-08
(45)【発行日】2024-05-16
(54)【発明の名称】検索装置、検索方法、およびプログラム
(51)【国際特許分類】
G06F 16/63 20190101AFI20240509BHJP
【FI】
G06F16/63
(21)【出願番号】P 2022530448
(86)(22)【出願日】2020-06-11
(86)【国際出願番号】 JP2020022971
(87)【国際公開番号】W WO2021250837
(87)【国際公開日】2021-12-16
【審査請求日】2022-12-01
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】古明地 秀治
(72)【発明者】
【氏名】飯村 靖夫
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】国際公開第2015/037098(WO,A1)
【文献】国際公開第2015/040793(WO,A1)
【文献】特開2012-063536(JP,A)
【文献】特開2017-167270(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
入力される音声データを音声認識によってテキストデータに変換する変換手段と、
検索項目に該当する文字列を前記テキストデータから抽出し、抽出された前記文字列からの距離に基づいて、前記文字列に関連する検索語を前記検索項目ごとに生成し、前記検索項目ごとに生成された前記検索語を組み合わせて複数の検索クエリを生成する検索手段と、を備える検索装置。
【請求項2】
前記検索手段は、
前記テキストデータから抽出された前記文字列を構成する音素の違いに基づく発音間距離に基づいて、前記文字列と前記発音間距離の近い文字列を前記検索語として生成する請求項1に記載の検索装置。
【請求項3】
前記検索手段は、
二つの音素間において予め定義された音素間距離を用いて前記発音間距離を計算する請求項2に記載の検索装置。
【請求項4】
前記検索手段は、
前記検索項目に該当する複数の文字列の各々に対して、前記検索項目に該当する複数の他の文字列が前記発音間距離に応じて順位付けされた発音間距離辞書を参照し、前記テキストデータから抽出された前記文字列に対する前記発音間距離辞書における順位が高い前記文字列を前記検索語として選択する請求項2または3に記載の検索装置。
【請求項5】
前記検索手段は、
前記検索項目ごとの重みが付与された前記検索語の前記発音間距離の総和である確度を前記検索クエリごとに計算し、
前記確度に応じて、前記検索クエリを順位付けする請求項2乃至4のいずれか一項に記載の検索装置。
【請求項6】
前記検索手段は、
前記確度に応じて順位付けされた前記検索クエリを構成する前記検索語を含む前記テキストデータを生成し、
前記変換手段は、
生成された前記テキストデータを前記音声データに変換し、前記テキストデータの生成元の前記検索クエリの確度の順位に応じて、前記テキストデータから変換された前記音声データを順番に出力する請求項5に記載の検索装置。
【請求項7】
前記検索手段は、
前記音声認識に基づくスコアを前記検索語に付与し、前記スコアが付与された前記検索語を含む前記テキストデータを生成し、
前記変換手段は、
生成された前記テキストデータを前記音声データに変換し、前記テキストデータから変換された前記音声データを出力する請求項1乃至6のいずれか一項に記載の検索装置。
【請求項8】
前記検索手段は、
少なくとも一つの前記検索クエリを用いて、前記検索項目を含む照合データが蓄積されたデータベースを検索し、
検索結果に応じた前記テキストデータを生成し、
前記変換手段は、
生成された前記テキストデータを前記音声データに変換し、前記テキストデータから変換された前記音声データを出力する請求項1乃至7のいずれか一項に記載の検索装置。
【請求項9】
コンピュータが、
入力される音声データを音声認識によってテキストデータに変換し、
検索項目に該当する文字列を前記テキストデータから抽出し、
抽出された前記文字列からの距離に基づいて、前記文字列に関連する検索語を前記検索項目ごとに生成し、
前記検索項目ごとに生成された前記検索
語を組み合わせて複数の検索クエリを生成する検索方法。
【請求項10】
入力される音声データを音声認識によってテキストデータに変換する処理と、
検索項目に該当する文字列を前記テキストデータから抽出する処理と、
抽出された前記文字列からの距離に基づいて、前記文字列に関連する検索語を前記検索項目ごとに生成する処理と、
前記検索項目ごとに生成された前記検索
語を組み合わせて複数の検索クエリを生成する処理とをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声データから変換されたテキストデータを用いて検索クエリを生成する検索装置等に関する。
【背景技術】
【0002】
通常、警察官が行う職務質問等における身元照会においては、無線通信を通じた音声通話によって本署等に連絡を取り、照会対象の人物の身元確認を行う。そのような照会において、音声データをテキストデータに変換するテキスト分析技術を適用すれば、即時照会を自動化できる可能性がある。例えば、話者の音声に基づく音声データから変換されたテキストデータを用いて、照会情報が蓄積されたデータベースを検索することができれば、即時照会を自動化できる。しかしながら、実際には、発音やアクセントが話者によって様々であるため、音声データをテキストデータに変換する際に誤変換が発生し、誤ったテキストデータに基づいて照会されることが想定される。
【0003】
特許文献1には、誤りを含む音声データ等の系列信号から複数の検索語の候補を効率よく処理するための系列信号検索装置について開示されている。特許文献1の装置は、音声データの音声認識結果の音節列と検索語の音節列とを、音節間の距離(類似度)に基づいて平面上にプロットする。特許文献1の装置は、その平面上で直線を検出することにより、検索語による音声データの検索処理を実現する。
【0004】
特許文献2には、音声認識に基づいて、地名や道路名を検索するナビゲーション装置について開示されている。特許文献2の装置は、検索対象文字列に含まれる先頭の文字列を受け付けて、検索対象文字列の候補を絞り込む。そして、特許文献2の装置は、その後に入力された音声データに基づいて、絞り込まれた候補の中から検索対象文字列を抽出する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2011-128903号公報
【文献】特開2010-038751号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の手法によれば、音声認識結果に基づいて、複数の検索語の候補を抽出することが可能になる。しかしながら、特許文献1の手法は、音声データが検索前に既知ではない場合には適用しづらいため、任意の音声データに基づくテキストデータから検索語を抽出する必要がある即時照会には不向きであった。
【0007】
特許文献2の手法によれば、検索対象文字列の候補を事前に絞り込んでおくことによって、検索対象文字列の抽出の確実性を向上できる。しかしながら、特許文献2の手法では、検索対象文字列に含まれる先頭の文字列を事前に入力する必要がある。そのため、特許文献2の手法は、複数の検索語によって構成されるテキストデータから、複数の検索語を抽出することはできなかった。
【0008】
本発明の目的は、任意の音声データに基づいて、検索項目に該当する検索語によって構成される複数の検索クエリを生成できる検索装置等を提供することにある。
【課題を解決するための手段】
【0009】
本発明の一態様の検索装置は、入力される音声データを音声認識によってテキストデータに変換する変換部と、検索項目に該当する文字列をテキストデータから抽出し、抽出された文字列からの距離に基づいて、文字列に関連する検索語を検索項目ごとに生成し、検索項目ごとに生成された検索語を組み合わせて複数の検索クエリを生成する検索部と、を備える。
【0010】
本発明の一態様の検索方法においては、コンピュータが、入力される音声データを音声認識によってテキストデータに変換し、検索項目に該当する文字列をテキストデータから抽出し、抽出された文字列からの距離に基づいて、文字列に関連する検索語を検索項目ごとに生成し、検索項目ごとに生成された検索項目を組み合わせて複数の検索クエリを生成する。
【0011】
本発明の一態様のプログラムは、入力される音声データを音声認識によってテキストデータに変換する処理と、検索項目に該当する文字列をテキストデータから抽出する処理と、抽出された文字列からの距離に基づいて、文字列に関連する検索語を検索項目ごとに生成する処理と、検索項目ごとに生成された検索項目を組み合わせて複数の検索クエリを生成する処理とをコンピュータに実行させる。
【発明の効果】
【0012】
本発明によれば、任意の音声データに基づいて、検索項目に該当する検索語によって構成される複数の検索クエリを生成できる検索装置等を提供することが可能になる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施形態に係る検索装置の構成の一例を示すブロック図である。
【
図2】第1の実施形態に係る検索装置が生成した検索語をスコアに応じて順位付けしたテーブルの一例である。
【
図3】第1の実施形態に係る検索装置が、入力された音声データに基づく複数の検索クエリを生成する一例を示す概念図である。
【
図4】第1の実施形態に係る検索装置によって検索されるデータベースに格納された照合データの一例を示す概念図である。
【
図5】第1の実施形態に係る検索装置が検索結果に応じたテキストデータを音声データに変換して出力する一例を示す概念図である。
【
図6】第1の実施形態に係る検索装置が、検索語の正否を確認するためのテキストデータを音声データに変換して出力する一例を示す概念図である。
【
図7】第1の実施形態に係る検索装置から送信された音声データに対して、返答の音声データが検索装置に入力される一例を示す概念図である。
【
図8】第1の実施形態に係る検索装置による検索クエリの生成の一例を示すフローチャートである。
【
図9】第1の実施形態に係る検索装置による検索語の正否確認の一例を示すフローチャートである。
【
図10】第1の実施形態に係る検索装置による検索語の聞き返しの一例を示すフローチャートである。
【
図11】第1の実施形態に係る検索装置によるデータベースの検索の一例を示すフローチャートである。
【
図12】第2の実施形態に係る検索装置の構成の一例を示すブロック図である。
【
図13】第2の実施形態に係る検索装置が算出する検索クエリの確度について説明するための概念図である。
【
図14】第2の実施形態に係る検索装置による検索クエリの生成の一例を示すフローチャートである。
【
図15】第2の実施形態に係る検索装置によるデータベースの検索の一例を示すフローチャートである。
【
図16】第3の実施形態に係る検索装置の構成の一例を示すブロック図である。
【
図17】第3の実施形態に係る検索装置が検索語の生成に用いる辞書に含まれるテーブルの一例である。
【
図18】第3の実施形態に係る検索装置が検索語の生成に用いる辞書に含まれるテーブルの別の一例である。
【
図19】第3の実施形態に係る検索装置が、検索語の正否を確認するためのテキストデータを音声データに変換して出力する一例を示す概念図である。
【
図20】第3の実施形態に係る検索装置から送信された音声データに対して、返答の音声データが検索装置に入力される一例を示す概念図である。
【
図21】第3の実施形態に係る検索装置による検索クエリの生成の一例を示すフローチャートである。
【
図22】第4の実施形態に係る検索装置の構成の一例を示すブロック図である。
【
図23】第4の実施形態に係る検索装置に対する無線機による接続から、検索装置による検索語の生成までの流れの一例を示すシーケンス図である。
【
図24】第4の実施形態に係る検索装置による検索語の生成から、照合結果の出力までの流れの一例を示すシーケンス図である。
【
図25】第4の実施形態に係る検索装置による検索語の生成から、照合結果の出力までの流れの別の一例を示すシーケンス図である。
【
図26】第4の実施形態に係る検索装置による検索語の生成から、照合結果の出力までの流れのさらに別の一例を示すシーケンス図である。
【
図27】第5の実施形態に係る検索装置の構成の一例を示すブロック図である。
【
図28】各実施形態に係る検索装置を実現するハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお、以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。また、図面中の矢印の向きは、一例を示すものであり、ブロック間の信号の向き等を限定するものではない。
【0015】
(第1の実施形態)
まず、第1の実施形態に係る検索装置について図面を参照しながら説明する。本実施形態の検索装置は、音声認識技術を用いて音声データをテキストデータに変換し、変換後のテキストデータから少なくとも一つの文字列を認識する。本実施形態の検索装置は、認識された少なくとも一つの文字列に関する複数の検索語を発音間距離に基づいて生成し、それらの検索語を含む複数の検索クエリ(検索パターンとも呼ぶ)を生成する。以下の説明においては、音声認識によって用いられる音素を表記する代わりに、ひらがなやカタカナ、漢字、アルファベット等の文字や記号を用いる場合がある。
【0016】
(構成)
図1は、本実施形態の検索装置10の構成の一例を示すブロック図である。検索装置10は、取得部11、第1変換部12、検索部13、第2変換部18、および出力部19を備える。取得部11と出力部19は、入出力部110を構成する。第1変換部12と第2変換部18は、変換部120を構成する。
図1には、検索装置10に接続されるデータベース(DB100)を合わせて図示する。DB100は、インターネットやイントラネットなどのネットワークを介して、検索部13に接続される。DB100には、複数の照合データが格納される。
【0017】
検索装置10は、図示しない無線機との間で音声データを送受信し合う。例えば、無線機は、マイクロフォンとスピーカを有する。無線機は、マイクロフォンを介して音声入力された音声を電気信号(音声データ)に変換する。例えば、無線機は、特定周波数帯の無線通信によって、音声データを含む無線信号を送信する。例えば、無線機から送信された無線信号は、図示しないアンテナや増幅器、復調器等を介して電気信号に変換され、インターネットやイントラネットなどのネットワークを介して、検索装置10に入力される。例えば、検索装置10は、音声データを、無線機に向けて出力する。以下においては、検索装置10と無線機が直接接続されているわけではないけれども、検索装置と無線機が音声データをやりとりするものとして説明する。
【0018】
取得部11は、無線機からの音声データを取得する。取得部11は、取得した音声データを第1変換部12に出力する。
【0019】
第1変換部12は、音声認識によって、音声データをテキストデータに変換する。例えば、第1変換部12は、音響モデルや言語モデルのアルゴリズムを用いて、音声データをテキストデータに変換する。例えば、第1変換部12は、統計的手法や動的時間伸縮法等の手法を用いて、音声データをテキストデータに変換する。例えば、第1変換部12は、ディープラーニングや隠れマルコフモデル等の手法を用いて、音声データをテキストデータに変換する。例えば、第1変換部12は、音声モデルや言語モデル、発音辞書などを含む音声認識辞書を用いて、音声データをテキストデータに変換する。例えば、第1変換部12は、テキストデータに含まれる文字列(単語)に対して、テキスト解析により音声認識スコア(スコアとも呼ぶ)を計算する。例えば、第1変換部12は、音声認識におけるスコアに基づいて、音声データをテキストデータに変換する。なお、ここで挙げた音声認識の手法は一例であって、第1変換部12による音声データからテキストデータへの変換方式を限定するものではない。
【0020】
検索部13は、第1変換部12によって変換されたテキストデータから、検索項目ごとに、少なくとも一つの文字列を認識する。例えば、検索項目が、氏名、生年月日、本籍である場合、検索部13は、それらの検索項目に該当しうる文字列を検出する。例えば、検索部13は、テキストデータから認識されたある検索項目に該当する文字列に基づいて、その文字列の前後に表れる可能性の高い文字列を他の検索項目に該当する文字列の候補とする。例えば、検索部13は、テキストデータから抽出される文字列(単語)の各々に対して付与された音声認識スコア(スコア)に基づいて、検索項目ごとの検索語の候補の中から、少なくとも一つの文字列を検索語として選択する。例えば、検索部13は、検索項目ごとの検索語の候補の中から、スコアが最大の文字列を検索語として選択する。検索項目ごとの検索語の候補のうちスコアが最大の文字列は、認識結果の文字列に相当する。
【0021】
検索部13は、発音間距離に基づいて、認識された文字列から検索語を生成する。発音間距離とは、発音に基づく、二つの文字列の距離である。例えば、検索部13は、二つの文字列を構成する音素列を比較し、異なる音素の数を発音間距離とする。本実施形態では、文字列において音素の登場する順番も考慮に入れて、発音間距離を定義する。例えば、検索部13は、認識された文字列と発音間距離が近い文字列を検索語として生成する。なお、認識された文字列は、それの文字列自体との発音間距離は0であるため、検索語として生成される。
【0022】
以下に、いくつかの事例を挙げて、発音間距離について説明する。なお、以下に挙げる例は一例であって、本実施形態の検索部13が検索語を生成する際に用いる発音間距離を限定するものではない。
【0023】
まず、佐藤(さとう)と加藤(かとう)の発音間距離について説明する。佐藤(さとう)の音素は、“s”、“a”、“t”、“o”である。加藤(かとう)の音素は、“k”、“a”、“t”、“o”である。佐藤(さとう)と加藤(かとう)とでは、先頭の音素のみが異なる。すなわち、佐藤(さとう)と加藤(かとう)とでは、異なる音素が一つであるため、発音間距離は1である。
【0024】
次に、佐藤(さとう)と斎藤(さいとう)の発音間距離について説明する。佐藤(さとう)の音素は、“s”、“a”、“t”、“o”である。斎藤(さいとう)の音素は、“s”、“a”、“i”、“t”、“o”である。佐藤(さとう)と斎藤(さいとう)とでは、斎藤(さいとう)の音素が一つ多い点で異なる。すなわち、佐藤(さとう)と斎藤(さいとう)とでは、過不足する音素が一つであるため、発音間距離は1である。
【0025】
次に、佐藤(さとう)と鈴木(すずき)の発音間距離について説明する。佐藤(さとう)の音素は、“s”、“a”、“t”、“o”である。鈴木(すずき)の音素は、“s”、“u”、“z”、“u”、“k”、“i”である。佐藤(さとう)と鈴木(すずき)とでは、異なる音素が三つあり、過不足する音素が二つあるため、発音間距離は5である。
【0026】
また、検索部13は、二つの音素間の音響的な距離で定義される距離(音素間距離とも呼ぶ)を発音間距離として、認識された文字列から検索語を生成してもよい。すなわち、発音間距離は、任意の音素間において予め定義された音素間距離であってもよい。例えば、二つの音素(p1、p2)間の音素間距離pd(p1、p2)を予め定義しておく。例えば、二つの音素間の音素間距離は、pd(s、s)=0.0、pd(s、k)=1.2、pd(o、o)=0.1、pd(‘’、k)=4.0のように定義しておく。例えば、佐藤(sato)と加藤(kato)の発音間距離は、先頭の音素(s、k)が異なるため、発音間距離Dは音素間距離pd(s、k)=1.2に相当する。
【0027】
検索部13は、生成された検索語を用いて、複数の検索クエリを生成する。例えば、検索項目が、氏名、生年月日、本籍である場合、検索部13は、それらの検索項目ごとの検索語を組み合わせた検索クエリを生成する。検索項目は、氏名、生年月日、住所以外の検索項目を含んでもよい。
【0028】
検索部13は、生成された複数の検索クエリのうち少なくとも一つを用いて、DB100を検索する。例えば、検索部13は、生成された複数の検索クエリのうち、予め定められた基準を満たすいくつかの検索クエリを用いて、DB100を検索する。例えば、検索部13は、生成された複数の検索クエリの全てを用いて、DB100を検索してもよい。
【0029】
DB100は、照合対象の種別(照会種別とも呼ぶ)に対応付けて構築される。DB100には、照合対象を検索するための検索項目を含む複数のデータ(照合データとも呼ぶ)が格納される。例えば、DB100に格納された照合データは、いくつかの検索項目のうち一つをキーとして検索される。検索された照合データのうち、少なくとも一つの検索項目が合致していれば、検索がヒットしたことになる。本実施形態においては、検索項目の全てが合致した場合、検索がヒットしたと表現する。例えば、DB100は、照会種別ごとに構築される。
【0030】
例えば、検索部13は、検索クエリに含まれるキーとなる検索語のスコアに応じて、少なくとも一つの検索クエリを選択する。例えば、検索部13は、音声認識による認識結果である文字列から生成された複数の検索語を、認識結果に応じたスコアを出力する音声認識エンジンに入力し、その出力であるスコアに応じて検索語を順位付けする。検索部13は、選択された検索クエリを用いて、DB100を検索する。例えば、検索部13は、検索クエリに含まれるキーとなる検索語のスコアが最も高い検索クエリを選択し、選択された検索クエリを用いて、DB100を検索する。
図2は、検索項目である氏名に含まれる苗字の検索語を、スコアに応じて順位付けしたテーブルの一例(テーブル131)である。例えば、検索部13は、検索クエリに含まれる氏名の苗字に含まれるスコアに応じて検索クエリを選択する。
【0031】
例えば、検索部13は、複数の検索語に関して、音声認識の認識結果に基づくスコアを付与した検索語を生成する。例えば、ある音声認識において、苗字に関して、「佐藤(0.41)」、「加藤(0.65)」という認識結果が得られたものとする(括弧内がスコア)。また、生年月日に関して、「平成2年1月1日(0.56)」、「平成2年7月1日(0.92)」という認識結果が得られたものとする(括弧内がスコア)。そして、本籍に関して、「東京都A区(0.43)」という認識結果が得られたものとする(括弧内がスコア)。例えば、検索部13は、以下のようなテキストデータを生成する。
「苗字は佐藤(0.41)で、生年月日は平成2年1月1日(0.56)、本籍は東京都A区(0.43)です」
「苗字は加藤(0.65)で、生年月日は平成2年1月1日(0.56)、本籍は東京都A区(0.43)です」
「苗字は佐藤(0.41)で、生年月日は平成2年7月1日(0.92)、本籍は東京都A区(0.43)です」
「苗字は加藤(0.65)で、生年月日は平成2年7月1日(0.92)、本籍は東京都A区(0.43)です」
例えば、上記のテキストデータは、第2変換部18において音声データに変換され、出力部19から無線機(図示しない)に出力される。音声データに変換後の上記のテキストデータは、いずれかの検索項目のスコアに応じた順番で出力されてもよいし、全ての検索項目のスコアの合計値に応じた順番で出力されてもよい。
【0032】
第2変換部18は、検索部13からテキストデータを取得する。第2変換部18は、取得したテキストデータを音声データに変換する。例えば、第2変換部18は、フォルマント音声合成や調音音声合成等の規則合成の手法を用いて、テキストデータを音声データに変換する。例えば、第2変換部18は、単位選択型音声合成やダイフォン音声合成、分野限定音声合成等の波形接続型音声合成の手法を用いて、テキストデータを音声データに変換する。例えば、第2変換部18は、ニューラルネットワーク音声合成や隠れマルコフ音声合成等の統計的パラメトリック音声合成の手法を用いて、テキストデータを音声データに変換する。なお、ここで挙げた音声合成の手法は一例であって、第2変換部18が用いる音声合成の手法を限定するものではない。また、第1変換部12が、テキストデータを音声データに変換できる場合は、第2変換部18を省略してもよい。
【0033】
出力部19は、第2変換部18によって変換された音声データを出力する。出力部19から出力された音声データは、無線機に出力され、無線機において音声として出力される。例えば、出力部19は、検索にヒットした照合データに基づく音声データを、検索クエリの確度に応じた順番で出力する。
【0034】
図3は、検索装置10が、無線機から取得した音声データを用いて、複数の検索クエリを生成する一例を示す概念図である。
図3の例では、検索装置10は、「芝太郎さん、平成2年1月1日生まれ、本籍住所東京都A区です」という音声データを取得する。例えば、検索装置10は、取得した音声データから、「シバタロウ」、「平成2年1月1日」、「東京都A区」という検索項目ごとの文字列を音声認識によって認識する。検索装置10は、発音間距離に基づいて、認識した文字列に関連する複数の検索語を生成する。検索装置10は、生成した複数の検索語を組み合わせた検索クエリを生成する。例えば、検索装置10は、(シバタロウ、平成2年1月1日、東京都A区)、(シバタロウ、平成2年7月1日、東京都A区)、・・・といった複数の検索クエリを生成する。
【0035】
図4は、DB100に格納された照合データの一例(照合テーブル101)である。照合テーブル101には、検索項目(氏名、生年月日、本籍等)を含む照合データが格納される。例えば、照合テーブル101には、生年月日が平成2年1月1日、本籍が東京都A区の「シバタロウ」という人物の照合データが格納される。例えば、
図3の例で生成された検索クエリを用いてDB100を検索すると、この「シバタロウ」という人物がヒットする。
【0036】
図5は、検索装置10が、DB100の検索結果に応じたテキストデータを音声データに変換して出力する例である。
図5の例では、検索装置10は、「シバタロウ、平成2年1月1日、東京都A区、○○」という検索結果をDB100から取得する。
図5において、「○○」は、検索にヒットした人物の照会種別である。例えば、検索装置10は、取得した検索結果を「本籍住所東京都A区、平成2年1月1日生まれのシバタロウさんは、○○に該当します」といったテキストデータを生成する。検索装置10は、生成したテキストデータを音声データに変換する。検索装置10は、変換後の音声データを無線機に出力する。検索装置10から出力された音声データは、無線機(図示しない)において音声として出力される。
【0037】
また、検索装置10は、テキストデータにおいて認識された文字列に関連する検索語のうち少なくとも一部を用いて、検索語の正否を問い合わせるためのテキストデータを生成してもよい。
【0038】
図6は、検索語の正否を確認するためのテキストデータを音声データに変換して出力する例である。
図6の例では、検索装置10は、スコアが最も大きい検索語と、音声認識できなかった検索語を問い直すテキストデータに基づく音声データを出力する。
図6の例では、検索装置10は、「キバタロウ、本籍住所東京都A区、で検索します。生年月日をもう一度お願いします。」という内容の音声データを出力する。例えば、音声データを無線機に出力する。検索装置10から出力された音声データは、無線機(図示しない)において、検索語の正否を確認するための音声として出力される。
【0039】
図7は、
図6の例において、検索装置10から送信された音声データに対して、無線機(図示しない)等から返答の音声データが戻ってきた例である。
図7の例では、検索装置10は、「氏名はシバタロウ、生年月日は平成2年1月1日です」という返答の音声データを取得する。例えば、検索装置10は、音声認識によって、取得した音声データから「シバタロウ」、「平成2年1月1日」という認識結果を得る。検索装置10は、認識結果に応じて検索語を生成し、生成された検索語を含む検索クエリを生成したり、返答のテキストデータを生成したりする。検索クエリの生成前や生成時において、音声データの送信元に検索語の正否を確認できれば、誤った検索クエリの生成を低減できる。
【0040】
(動作)
次に、検索装置10の動作について図面を参照しながら説明する。以下においては、検索クエリの生成や、検索語の正否の確認、検索項目の聞き直し、生成された検索クエリを用いた検索等について個別に説明する。なお、以下の動作は一例であって、検索装置10の動作を限定するものではない。
【0041】
〔検索クエリ生成〕
図8は、検索装置10による検索クエリの生成の一例について説明するためのフローチャートである。
図8のフローチャートに沿った説明においては、検索装置10を動作主体とする。
【0042】
図8において、まず、検索装置10は、音声データを取得する(ステップS111)。例えば、検索装置10は、無線機(図示しない)から出力された音声データを取得する。
【0043】
次に、検索装置10は、音声認識によって、取得した音声データをテキストデータに変換する(ステップS112)。
【0044】
次に、検索装置10は、検索項目に該当する文字列をテキストデータから抽出する(ステップS113)。
【0045】
次に、検索装置10は、発音間距離に基づいて、抽出された文字列に関連する検索語を検索項目ごとに生成する(ステップS114)。
【0046】
次に、検索装置10は、検索項目ごとの検索語を組み合わせた複数の検索クエリを生成する(ステップS115)。
【0047】
〔正否確認〕
図9は、検索装置10が、検索語の正否を確認する一例について説明するためのフローチャートである。
図9のフローチャートは、
図8のフローチャートのステップS114に後続する処理である。
図9の例では、検索語にスコアや順位が付与されているものとする。
図9のフローチャートに沿った説明においては、検索装置10を動作主体とする。
【0048】
図9において、まず、検索装置10は、スコアが最大の検索語の正否を確認するためのテキストデータを生成する(ステップS121)。
【0049】
次に、検索装置10は、生成されたテキストデータを音声データに変換し、変換後の音声データを出力する(ステップS122)。例えば、検索装置10から出力された音声データは、無線機(図示しない)において音声として出力される。
【0050】
次に、検索装置10は、応答の音声データを取得し、音声認識によってテキストデータに変換する(ステップS123)。例えば、検索装置10は、無線機(図示しない)からの音声データを取得する。例えば、検索装置10は、所定期間応答が得られなかった場合、音声データを再送してもよいし、ステップS125に進んでもよい。
【0051】
ここで、検索語が正しかった場合(ステップS124でYes)、検索装置10は、検索項目ごとの検索語を組み合わせた複数の検索クエリを生成する(ステップS126)。
【0052】
一方、検索語が正しくなかった場合(ステップS124でNo)、検索装置10は、次にスコアが高い検索語の正否を確認するためのテキストデータを生成する(ステップS125)。ステップS125の後は、ステップS122に戻る。ステップS122~ステップS125の一連の処理は、検索語が正しいことが確認されるまで継続される。なお、ステップS122~ステップS125の一連の処理を所定回数/所定時間繰り返しても検索語が正しいことが確認できなかった場合は、ステップS126に進んだり、
図8のステップS113に戻ったりするようにしてもよい。
【0053】
〔聞き返し〕
図10は、検索装置10が、認識できなかった検索項目を聞き返す一例について説明するためのフローチャートである。
図10のフローチャートに沿った説明においては、検索装置10を動作主体とする。
【0054】
図10において、まず、検索装置10は、音声データを取得する(ステップS131)。例えば、検索装置10は、無線機(図示しない)から送信された音声データを取得する。
【0055】
次に、検索装置10は、音声認識によって、取得した音声データをテキストデータに変換する(ステップS132)。
【0056】
次に、検索装置10は、検索項目に該当する文字列をテキストデータから抽出する(ステップS133)。
【0057】
ここで、検索項目が不足している場合(ステップS134でYes)、検索装置10は、足りない検索項目を聞き返すための音声データを出力する(ステップS135)。ステップS135の後は、ステップS131に戻る。例えば、検索装置10から出力された音声データは、無線機(図示しない)において音声として出力される。
【0058】
一方、検索項目が不足していない場合(ステップS134でNo)、検索装置10は、発音間距離に基づいて、抽出された文字列に関連する検索語を検索項目ごとに生成する(ステップS136)。
【0059】
次に、検索装置10は、検索項目ごとの検索語を組み合わせた複数の検索クエリを生成する(ステップS137)。
【0060】
〔検索〕
図11は、検索装置10が、生成された検索クエリを用いてDB100を検索する一例について説明するためのフローチャートである。
図11のフローチャートに沿った説明においては、検索装置10を動作主体とする。
【0061】
図11において、まず、検索装置10は、生成された検索クエリを用いてDB100を検索する(ステップS151)。
【0062】
検索がヒットした場合(ステップS152でYes)、検索装置10は、ヒットした検索結果を含むテキストデータを生成する(ステップS153)。一方、検索がヒットしなかった場合(ステップS152でNo)、検索装置10は、検索結果が得られなかったことを示すテキストデータを生成する(ステップS154)。
【0063】
ステップS153およびステップS154の後、検索装置10は、生成されたテキストデータを音声データに変換する(ステップS155)。
【0064】
次に、検索装置10は、音声データを出力する(ステップS156)。例えば、検索装置10から出力された音声データは、無線機(図示しない)において音声として出力される。
【0065】
以上のように、本実施形態の検索装置は、取得部、第1変換部、検索部、第2変換部、出力部を備える。取得部は、音声データを入力する。第1変換部は、音声認識によって、取得部によって取得された音声データをテキストデータに変換する。検索部は、検索項目に該当する文字列をテキストデータから抽出する。検索部は、抽出された文字列からの距離に基づいて、文字列に関連する検索語を検索項目ごとに生成する。検索部は、検索項目ごとに生成された検索語を組み合わせて複数の検索クエリを生成する。検索部は、検索項目を含む照合データが蓄積されたデータベースを検索する。検索部は、検索結果に応じたテキストデータを生成する。第2変換部は、生成されたテキストデータを音声データに変換する。出力部は、テキストデータから変換された音声データを出力する。
【0066】
本実施形態の一態様において、検索部は、テキストデータから抽出された文字列を構成する音素の違いに基づく発音間距離に基づいて、文字列と発音間距離の近い文字列を検索語として生成する。例えば、検索部は、二つの音素間において予め定義された音素間距離を用いて発音間距離を計算する。
【0067】
本実施形態によれば、任意の音声データに基づいて、検索項目に該当する検索語によって構成される複数の検索クエリを生成できる。
【0068】
本実施形態の一態様にいて、検索部は、音声認識に基づくスコアを検索語に付与し、スコアが付与された検索語を含むテキストデータを生成する。変換部は、生成されたテキストデータを音声データに変換し、テキストデータから変換された音声データを出力する。
【0069】
例えば、無線機等を用いた警察官による事故情報等の入力は、音声入力のみであるため、入力の頻度や確認を減らすことが望ましい。また、そのような入力においては、音声入力された情報に基づいて、人物等の照会を迅速かつ正確に行われることが望ましい。本実施形態によれば、音声データに基づいて、検索項目に含まれる検索語によって構成される複数の検索クエリを大量に生成できる。それらの検索クエリは、音声データから抽出された文字列との距離に応じて生成されるため、正確な検索語を含む検索クエリが含まれる可能性が高い。また、本実施形態においては、生成された検索語の正否確認を行うこともできる
ため、正確な検索語に基づいた検索クエリを生成できる。
【0070】
(第2の実施形態)
次に、第2の実施形態に係る検索装置について図面を参照しながら説明する。本実施形態は、生成された検索クエリに対して、確度に応じた順位付けを行う点において、第1の実施形態とは異なる。
【0071】
(構成)
図12は、本実施形態の検索装置20の構成の一例を示すブロック図である。検索装置20は、取得部21、第1変換部22、検索部23、第2変換部28、および出力部29を備える。取得部21と出力部29は、入出力部210を構成する。第1変換部22と第2変換部28は、変換部220を構成する。
図12には、検索装置20に接続されるデータベース(DB200)を合わせて図示する。例えば、DB200は、インターネットやイントラネットなどのネットワークを介して、検索部23に接続される。DB200には、複数の照合データが格納される。なお、検索装置20に含まれる検索部23以外の構成は、第1の実施形態の検索装置10に含まれる構成と同様であるため、詳細な説明は省略する。以下においては、検索部23に焦点を当てて説明する。
【0072】
検索部23は、検索語の確度に応じて検索クエリを選択する。検索部23は、選択された検索クエリを用いて、DB200を検索する。確度は、氏名、生年月日、住所などの検索項目ごとの発音間距離を足し合わせた値である。例えば、検索部23による音声認識による認識結果の文字列(検索語)そのものの確度は0である。また、認識結果のスコアに基づいて順位付けされた単語の各々は、その発音間距離を確度とする。例えば、確度は、検索項目ごとに重みづけされてもよい。例えば、生年月日のバリエーションと比べると、氏名のバリエーションは格段に多い。そのため、生年月日と比べて、氏名の重みづけを大きくすれば、検索精度の向上につながる。また、レアな苗字は、遭遇する確率が低いので、確度の大小にかかわらず、検索語から除外してもよい。
【0073】
ここで、検索部23が生成する検索クエリの確度について、一例を挙げて説明する。以下の例では、氏名(氏名クエリとも呼ぶ)、生年月日(生年月日クエリとも呼ぶ)、本籍(本籍クエリとも呼ぶ)を検索項目とする。以下の例では、説明を簡略化するため、氏名クエリに関しては苗字のみとする。
【0074】
例えば、氏名クエリ、生年月日クエリ、本籍クエリの各々の認識結果が、「佐藤(さとう)」、「平成2年1月1日(へいせいにねんいちがつついたち)」、「東京都A区(トウキョウトエーク)」であったとする。それぞれの認識結果は、検索語として用いられる。氏名クエリに関しては、認識結果である「佐藤(さとう)」の確度は0である。生年月日クエリに関しては、認識結果である「平成2年1月1日(へいせいにねんいちがつついたち)」の確度は0である。本籍クエリに関しては、認識結果である「東京都A区(トウキョウトエーク)」の確度は0である。
【0075】
例えば、氏名クエリ、生年月日クエリ、本籍クエリの各々の検索語の候補として、「加藤(かとう)」、「平成2年7月1日(へいせいにねんしちがつついたち)」、「東京都D区(トウキョウトデーク)」が生成されたものとする。「加藤(かとう)」の確度は、発音間距離に基づいて1である。「平成2年7月1日(へいせいにねんしちがつついたち)」の確度は、発音間距離に基づいて1である。「東京都D区(トウキョウトデーク)」の確度は、発音間距離に基づいて1である。
【0076】
上記の各検索項目は、氏名クエリが2つ、生年月日クエリが2つ、本籍クエリが2つであるため、以下の8通りの検索クエリが生成される。
検索クエリ1:「佐藤、平成2年1月1日、東京都A区」
検索クエリ2:「加藤、平成2年1月1日、東京都A区」
検索クエリ3:「佐藤、平成2年7月1日、東京都A区」
検索クエリ4:「加藤、平成2年7月1日、東京都A区」
検索クエリ5:「佐藤、平成2年1月1日、東京都D区」
検索クエリ6:「加藤、平成2年1月1日、東京都D区」
検索クエリ7:「佐藤、平成2年7月1日、東京都D区」
検索クエリ8:「加藤、平成2年7月1日、東京都D区」
なお、上記においては、各検索語の音素等の表記は省略する。
【0077】
ここで、氏名クエリの重みをλ1、生年月日クエリの重みをλ2、本籍クエリの重みをλ3とすると、上記の検索クエリの確度は、以下のように計算される。
検索クエリ1:λ1×0+λ2×0+λ3×0=0
検索クエリ2:λ1×1+λ2×0+λ3×0=λ1
検索クエリ3:λ1×0+λ2×1+λ3×0=λ2
検索クエリ4:λ1×1+λ2×1+λ3×0=λ1+λ2
検索クエリ5:λ1×0+λ2×0+λ3×1=λ3
検索クエリ6:λ1×1+λ2×0+λ3×1=λ1+λ3
検索クエリ7:λ1×0+λ2×1+λ3×1=λ2+λ3
検索クエリ8:λ1×1+λ2×1+λ3×1=λ1+λ2+λ3
例えば、氏名クエリの重みλ1、生年月日クエリの重みλ2、本籍クエリの重みλ3の各々は、認識誤りが多い検索項目を大きな値に設定することが好ましい。なお、氏名クエリの重みλ1、生年月日クエリの重みλ2、本籍クエリの重みλ3の各々は、全て1であってもよい。
【0078】
図13は、検索装置20が算出する検索クエリの確度について説明するための概念図である。
図13の例では、「芝太郎さん、平成2年1月1日生まれ、本籍住所東京都A区です。」という音声データが検索装置20に入力される。
図13の例では、各検証項目の重みは1とする。
【0079】
検索装置20は、入力された音声データに基づくテキストデータから、「シバタロウ」、「ヘイセイニネンイチガツツイタチ」、「トウキョウトエーク」という文字列を検証項目ごとに抽出する。検索装置20は、検証項目ごとに、発音間距離に基づいて、検索語を生成する。例えば、検索装置20は、氏名クエリに関して、発音間距離が0の「シバタロウ」、発音間距離が1の「キバタロウ」、・・・という検索語を生成する。例えば、検索装置20は、生年月日クエリに関して、発音間距離が0の「ヘイセイニネンイチガツツイタチ」、発音間距離が1の「ヘイセイニネンシチガツツイタチ」、・・・という検索語を生成する。例えば、検索装置20は、本籍クエリに関して、発音間距離が0の「トウキョウトエーク」、発音間距離が1の「トウキョウトデーク」、・・・という検索語を生成する。
【0080】
検索装置20は、検索項目ごとに生成された複数の検索語を組み合わせて、検索クエリを生成する。例えば、検索装置20は、「シバタロウ、ヘイセイニネンイチガツツイタチ、トウキョウトエーク」という検索クエリを生成する。この検索クエリの確度は、それぞれの検索語の発音間距離の総和の0である。例えば、検索装置20は、「キバタロウ、ヘイセイニネンシチガツツイタチ、トウキョウトデーク」という検索クエリを生成する。この検索クエリの確度は、それぞれの検索語の発音間距離の総和の3である。
【0081】
例えば、検索部23は、生成した複数の検索クエリの確度に基づいて、DB100を検索したり、無線機(図示しない)に対して出力する音声データの元となるテキストデータを生成したりする。
【0082】
(動作)
次に、検索装置20の動作について図面を参照しながら説明する。以下においては、検索クエリの生成や、生成された検索クエリを用いた検索について個別に説明する。なお、以下の動作は一例であって、検索装置20の動作を限定するものではない。
【0083】
〔検索クエリ生成〕
図14は、検索装置20による検索クエリの生成の一例について説明するためのフローチャートである。
図14のフローチャートに沿った説明においては、検索装置20を動作主体とする。
【0084】
図14において、まず、検索装置20は、音声データを取得する(ステップS211)。例えば、検索装置20は、無線機(図示しない)から送信された音声データを取得する。
【0085】
次に、検索装置20は、音声認識によって、取得した音声データをテキストデータに変換する(ステップS212)。
【0086】
次に、検索装置20は、検索項目に該当する文字列をテキストデータから抽出する(ステップS213)。
【0087】
次に、検索装置20は、発音間距離に基づいて、抽出された文字列に関連する検索語を検索項目ごとに生成する(ステップS214)。
【0088】
次に、検索装置20は、検索項目ごとの検索語を組み合わせた複数の検索クエリを生成する(ステップS215)。
【0089】
次に、検索装置20は、検索語ごとの発音間距離に基づいて、生成された検索クエリの確度を計算する(ステップS216)。
【0090】
次に、検索装置20は、複数の検索クエリを確度に応じて順位付けする(ステップS217)。
【0091】
〔検索〕
図15は、検索装置20が、生成された検索クエリを用いてDB200を検索する一例について説明するためのフローチャートである。
図15のフローチャートに沿った説明においては、検索装置20を動作主体とする。
【0092】
図15において、まず、検索装置20は、生成された検索クエリを用いてDB200を検索する(ステップS251)。
【0093】
検索が複数ヒットした場合(ステップS252でYes)、検索装置20は、ヒットした検索結果を含む複数のテキストデータを生成する(ステップS253)。次に、検索装置20は、生成された複数のテキストデータの各々を音声データに変換する(ステップS254)。そして、検索装置10は、複数の音声データを、検索クエリの確度の順位に応じて出力する(ステップS255)。例えば、検索装置20から出力された複数の音声データは、無線機(図示しない)において、検索クエリの確度の順位に応じた順番で音声として出力される。
【0094】
一方、検索が複数ヒットしなかった場合(ステップS252でNo)、検索装置20は、検索結果に応じたテキストデータを生成する(ステップS256)。検索結果が複数ヒットしなかった場合とは、検索結果がヒットしなかった場合と、検索結果が一つだけヒットした場合とを含む。検索結果がヒットしなかった場合、検索装置20は、検索結果が得られなかったことを示すテキストデータを生成する。一方、検索結果が一つだけヒットした場合、検索装置20は、ヒットした検索結果を含むテキストデータを生成する。次に、検索装置20は、生成されたテキストデータを音声データに変換する(ステップS257)。そして、検索装置20は、音声データを出力する(ステップS258)。例えば、検索装置20から出力された音声データは、無線機(図示しない)において音声として出力される。
【0095】
以上のように、本実施形態の検索部は、検索項目ごとの重みが付与された検索語の発音間距離の総和である確度を検索クエリごとに計算する。検索部は、確度に応じて、検索クエリを順位付けする。
【0096】
本実施形態によれば、検索クエリの確度に応じて、検索クエリを構成する検索語の正否を聞き返したり、データベースを検索したりできる。そのため、本実施形態によれば、検索効率や検索精度を向上できる。
【0097】
本実施形態の一態様において、検索部は、確度に応じて順位付けされた検索クエリを構成する検索語を含むテキストデータを生成する。変換部は、生成されたテキストデータを音声データに変換し、テキストデータの生成元の検索クエリの確度の順位に応じて、テキストデータから変換された音声データを順番に出力する。
【0098】
本実施形態の検索装置は、検索クエリの確度に応じて、音声データを出力できる。例えば、検索装置によって出力された音声データを聞いたユーザは、検索クエリの確度の順番に応じた検索結果を認識できる。
【0099】
(第3の実施形態)
次に、第3の実施形態の検索装置について図面を参照しながら説明する。本実施形態の検索装置は、少なくとも一つの検索項目に関する発音間距離の辞書(発音間距離辞書とも呼ぶ)に基づいて、検索クエリを順位付けする点において、第1~第2の実施形態とは異なる。
【0100】
(構成)
図16は、本実施形態の検索装置30の構成の一例を示すブロック図である。検索装置30は、取得部31、第1変換部32、検索部33、辞書34、第2変換部38、および出力部39を備える。取得部31と出力部39は、入出力部310を構成する。第1変換部32と第2変換部38は、変換部320を構成する。
図16には、検索装置30に接続されるデータベース(DB300)を合わせて図示する。DB300は、インターネットやイントラネットなどのネットワークを介して、検索部33に接続される。DB300には、複数の照合データが格納される。なお、検索装置30に含まれる検索部33および辞書34以外の構成は、第1の実施形態の検索装置10に含まれる構成と同様であるため、詳細な説明は省略する。以下においては、検索部33と辞書34に焦点を当てて説明する。
【0101】
辞書34は、検索項目に該当する文字列の発音間距離をまとめた辞書(発音間距離辞書とも呼ぶ)である。辞書34は、検索項目ごとに予め準備される。例えば、検索項目が氏名の苗字である場合、辞書34には、全国人名辞典や戸籍等に収録された苗字と、それらの苗字同士の発音間距離に応じた順位が登録される。例えば、N個の苗字が格納される場合、N個の苗字ごとに、その他の苗字との発音間距離に応じた順位付けが辞書34に登録される(Nは自然数)。ただし、苗字に使われている漢字が同じであっても読み方が異なる場合もあるが、一つの漢字に一つの読み方が対応付けられるものとする。言い換えると、辞書34には、格納された文字列の各々に対する発音間距離に応じて、他の文字列が順位の順番に配列されたデータ系列が含まれる。
【0102】
例えば、山田(YAMADA)、佐藤(SATOU)、加藤(KATOU)の各々については、山田-佐藤間の発音間距離、佐藤-加藤間の発音間距離、加藤-山田間の発音間距離が定義される。例えば、佐藤(SATOU)-加藤(KATOU)の間の発音間距離は、音素が一つ置換されているので1である。
【0103】
図17は、苗字を検索項目とする辞書34に含まれるテーブルの一例(発音間距離辞書340)である。例えば、発音間距離辞書340において、佐藤に対応付けられた順位は、加藤が1位、斎藤が2位、・・・である。なお、
図17は、辞書34の概念的なものであって、実際の苗字に対応する順位付けを正確に示すものではない。
【0104】
例えば、検索部33は、音声データから認識された文字列が「佐藤」であった場合、「佐藤」に対して順位の高い文字列を検索語として抽出する。例えば、検索部33は、発音間距離辞書340の「佐藤」のフィールドにおいて、順位がM位までの文字列を検索語として抽出する(Mは自然数)。例えば、検索部33は、検索部33は、発音間距離辞書340の「佐藤」のフィールドにおいて、発音間距離がX位以内の文字列を検索語として抽出してもよい(Xは自然数)。
【0105】
また、辞書34は、通話表を含んでいてもよい。通話表は、無線通信等において、音声の聞き間違いを防ぐために制定された規則をまとめた表である。
図18は、無線局運用規則別表第5号に記載された通話表の内容を含む通話表360である。例えば、「ア」の聞き間違いを防ぐ際には、「アサヒノア」と発話される。例えば、「シ」の聞き間違いを防ぐ際には、「シンブンノシ」と発話される。なお、通話表360は、文字だけではなく、数字や記号に関するデータを含んでもよい。また、通話表360は、和文のみならず、アルファベットなどの欧文に関する文字や数字、記号を含んでもよい。
【0106】
図19は、検索装置30が、音声認識で認識された氏名を聞き返す一例を示す概念図である。例えば、検索装置30は、検索語のスコアや確度に応じて、聞き返しの音声データを出力する。
図20は、
図19の聞き返しの音声データの氏名が間違っていたため、無線機(図示しない)を介して正しい音声データが返答された例である。
図20の例においては、検索装置30が、通話表360に登録された「シンブンノシ」という音声データを参照し、正確な氏名である「シバタロウ」を認識できる。聞き返しをする場合において、通話表360に登録されたパターンで返答するように予め決めておけば、そのパターンに応じて、音声認識によって認識された文字列の正否を確認しやすくなる。
【0107】
(動作)
次に、検索装置30の動作について図面を参照しながら説明する。以下においては、検索クエリの生成について説明する。なお、以下の動作は一例であって、検索装置30の動作を限定するものではない。
【0108】
〔検索クエリ生成〕
図21は、検索装置30による検索クエリの生成の一例について説明するためのフローチャートである。
図21のフローチャートに沿った説明においては、検索装置30を動作主体とする。
【0109】
図21において、まず、検索装置30は、音声データを取得する(ステップS311)。例えば、検索装置30は、無線機(図示しない)から出力された音声データを取得する。
【0110】
次に、検索装置30は、音声認識によって、取得した音声データをテキストデータに変換する(ステップS312)。
【0111】
次に、検索装置30は、検索項目に該当する文字列をテキストデータから抽出する(ステップS313)。
【0112】
次に、検索装置30は、検索項目ごとの発音間距離辞書を参照し、抽出された文字列との発音間距離に応じた順位に基づいて検索語を選択する(ステップS314)。
【0113】
次に、検索装置30は、検索項目ごとに選択された検索語を組み合わせた複数の検索クエリを生成する(ステップS315)。
【0114】
以上のように、本実施形態の検索部は、検索項目に該当する複数の文字列の各々に対して、検索項目に該当する複数の他の文字列が発音間距離に応じて順位付けされた発音間距離辞書を参照する。検索部は、発音間距離辞書を参照し、テキストデータから抽出された文字列に対する発音間距離辞書における順位が高い文字列を検索語として選択する。
【0115】
本実施形態によれば、発音間距離辞書を参照して検索語を選択するため、発音間距離の計算等の処理を省略できる。そのため、本実施形態によれば、検索語や検索クエリの生成を高速化できる。
【0116】
(第4の実施形態)
次に、第4の実施形態の検索装置について図面を参照しながら説明する。本実施形態は、検索装置と無線機のやり取りを具体化するものである。本実施形態においては、警察官による身元照会を一例に挙げて説明する。
【0117】
(構成)
図22は、本実施形態の検索装置40の構成の一例を示すブロック図である。検索装置40は、入出力部41、第1変換部42、検索部43、登録情報記録部44、および第2変換部48を備える。第1変換部42と第2変換部48は、変換部420を構成する。
図22には、検索装置40と音声データをやり取りする無線機450、検索装置40に接続されるデータベース群(DB群400)を合わせて図示する。DB群400を構成する複数のDBの各々は、インターネットやイントラネットなどのネットワークを介して、検索部43に接続される。DB群400は、照会種別ごとの複数のDBを含む。DB群に含まれる複数のDBの各々には、照会種別ごとの複数の照合データが格納される。無線機450は、検索装置40と音声データをやり取りする。
図22には、無線機450を一つしか図示していないが、検索装置40は、複数の無線機450と音声データをやり取り可能である。また、無線機450が、検索装置40の構成の一部または全てを備えていてもよい。なお、検索装置40の主な構成は、第1の実施形態の検索装置10に含まれる構成と同様であるため、詳細な説明は省略する。以下においては、無線機450と検索装置40の間の音声データのやり取りに焦点を当てて説明する。
【0118】
入出力部41(入出力部とも呼ぶ)は、無線機450から送信された無線信号に基づく音声データを取得する。入出力部41は、音声データを第1変換部42に出力する。また、入出力部41は、第2変換部から取得した音声データを出力する。
【0119】
例えば、無線機450は、特定周波数帯の無線通信によって、音声データを含む無線信号を送信する。例えば、無線機450から送信された無線信号は、図示しないアンテナや増幅器、復調器等を介して電気信号に変換され、インターネットやイントラネットなどのネットワークを介して、検索装置40の入出力部41に入力される。例えば、入出力部41は、第2変換部48から取得した音声データを、無線機450に向けて出力する。
【0120】
登録情報記録部44には、無線機450の登録情報が登録される。例えば、登録情報は、無線機450を用いるユーザのユーザ識別子や、無線機450の装置識別子である。検索装置40は、登録情報記録部44に記録された登録情報に合致する識別情報の送信元の無線機450との間で音声データをやり取りする。
【0121】
検索部43は、第1変換部42から取得するテキストデータの内容に応じた処理を実行する。本実施形態においては、検索部43が取得するテキストデータには、識別情報、照会種別、照会情報等が含まれる例を挙げる。検索部43は、取得するテキストデータの内容に応じて、テキストデータの変換前の音声データの送信元に対する応答内容を含むテキストデータの生成や、DB群400に含まれるDBの検索等の処理を実行する。検索部43が生成したテキストデータは、第2変換部48によって音声データに変換され、無線機450に向けて入出力部41から出力される。
【0122】
無線機450からの音声データに識別情報が含まれる場合、検索部43は、登録情報記録部44を参照し、その識別情報が登録情報記録部44に記録されているか判定する。登録情報記録部44に識別情報が記録されている場合、検索部43は、照会種別を問い合わせるテキストデータを生成する。例えば、登録情報記録部44に識別情報が記録されていない場合、検索部43は、識別情報が合致しなかったことを通知するテキストデータや、識別情報の再送を指示するテキストデータを生成する。検索部43によって生成されたテキストデータは、第2変換部48において音声データに変換され、無線機450に向けて出力される。
【0123】
無線機450からの音声データに照会種別が含まれる場合、検索部43は、その照会種別の送信元に対して、照会内容を問い合わせるテキストデータを生成する。例えば、検索部43は、照会種別を聞き返す内容を含めて、照会内容を問い合わせるテキストデータを生成してもよい。検索部43によって生成されたテキストデータは、第2変換部48において音声データに変換され、無線機450に向けて出力される。
【0124】
無線機450からの音声データに照会情報が含まれる場合、検索部43は、そのテキストデータから検索項目に該当する文字列を抽出する。検索部43は、発音間距離に基づいて、抽出された文字列に関連する検索語を生成する。また、検索部43は、検索項目に該当する文字列の抽出状況に応じて、抽出された文字列に発音間距離が最も近い検索語を確認する内容を含むテキストデータや、抽出できなかった検索項目を聞き直す内容を含むテキストデータを生成する。
【0125】
(動作)
次に、無線機450、検索装置40、DB群400に含まれるDBの間の動作における相互関係についてシーケンス図を用いて説明する。以下においては、検索語の生成に関する流れと、その後に実行される処理等の流れについて一例を挙げて説明する。以下において、無線機450には、無線機450を扱うユーザによって、検索装置40からの音声データに応じた情報が音声入力されるものとする。以下に挙げる無線機450、検索装置40、DB群400に含まれるDBの間の動作における相互関係は一例であって、それらの動作や相互関係を限定するものではない。
【0126】
図23は、無線機450による検索装置40への接続から、検索装置40による検索語の生成までの流れの一例を示すシーケンス図である。
【0127】
まず、無線機450が検索装置40に接続する(ステップS411)。無線機450による検索装置40への接続方式には、特に限定を加えない。
【0128】
検索装置40は、無線機450の接続を検知すると、その無線機450に対して、識別情報の要求を含む音声データを出力する(ステップS412)。例えば、検索装置40は、無線機450の接続を検知すると、その無線機450に対して、「自動応答です。Pナンバー、所属、氏名をお願いします。」といった識別情報の要求を含む音声データを出力する。Pナンバーとは、警察官を一意に特定するための識別子である。
【0129】
無線機450は、識別情報の要求を含む音声データを受信すると、その音声データに応じて音声入力された識別情報を含む音声データを検索装置40に出力する(ステップS413)。例えば、無線機450には、識別情報の要求に応じて、「Pナンバー○○、○○署、地域〇係、○○です。」といった識別情報を含む情報が音声入力される。例えば、無線機450は、「Pナンバー○○、○○署、地域〇係、○○です。」といった識別情報を含む音声データを検索装置40に出力する。
【0130】
検索装置40は、識別情報を含む音声データを受信すると、その音声データに含まれる識別情報が登録情報記録部44に登録されているか確認する(ステップS414)。無線機450から受信した音声データに含まれる識別情報が登録情報記録部44に登録されていた場合、検索装置40は、照会種別を要求する音声データを無線機450に出力する(ステップS415)。例えば、無線機450から受信した音声データに含まれる識別情報が登録されていた場合、検索装置40は、「Pナンバー〇〇〇〇、〇〇さん、照会種別をお願いします。」といった照会種別の要求を含む音声データを無線機450に出力する。
【0131】
無線機450は、照会種別の要求を含む音声データを受信すると、その音声データに応じて音声入力された照会種別を含む音声データを検索装置40に出力する(ステップS416)。例えば、無線機450は、「免責による、総合照会です。」といった照会種別を含む音声データを検索装置40に出力する。
【0132】
検索装置40は、照会種別を含む音声データを受信すると、照会種別を確認する(ステップS417)。検索装置40は、照会情報を要求する音声データを無線機450に出力する(ステップS418)。例えば、検索装置40は、「総合照会、ですね。照会種別に誤りがあれば、訂正願います。よければ、相手方の氏名、生年月日等をお願いします。」といった照会情報を要求する音声データを無線機450に出力する。
【0133】
無線機450は、照会情報を要求する音声データを受信すると、その音声データに応じて音声入力された照会情報を含む音声データを検索装置40に出力する(ステップS419)。例えば、無線機450は、「芝太郎さん、平成2年1月1日、本籍住所東京都A区です。」といった照会情報を含む音声データを検索装置40に出力する。
【0134】
検索装置40は、照会情報を含む音声データを受信すると、取得した音声データに基づくテキストデータから、照会情報の検索項目に該当する文字列を抽出する。検索装置40は、発音間距離に基づいて、抽出された文字列から検索語を生成する(ステップS420)。
【0135】
図24は、検索装置40による検索語の生成から、照合結果の出力までの流れの一例を示すシーケンス図である。
図24のシーケンス図は、
図23のステップS420の検索語生成に後続する処理に関する。
【0136】
図24において、検索装置40は、検索語を生成すると(ステップS420)、検索語の確認内容を含む音声データを無線機450に出力する(ステップS421)。例えば、検索装置40は、「キバタロウ、東京都A区で検索します。誤りがあれば、誤り部分の訂正お願いします。」といった検索語の確認内容を含む音声データを無線機450に出力する。
【0137】
また、検索装置40は、生成された検索項目ごとの検索語を組み合わせて、複数の検索クエリを生成する(ステップS422)。検索装置40は、生成された複数の検索クエリのうち少なくともいずれかを用いて、DB群400に含まれるDBのうち、照会中の照会種別の照合データが格納されたDBを検索する(ステップS423)。
【0138】
無線機450は、検索語の確認内容を含む音声データを受信すると、その音声データに応じて音声入力された応答を含む音声データを検索装置40に出力する(ステップS424)。例えば、無線機450は、「間違いありません。」といった応答を含む音声データを検索装置40に出力する。なお、検索語の確認内容に誤りがなければ、ステップS424を省略してもよい。
【0139】
照会中の照会種別の照合データが格納されたDBに格納されていた場合、検索装置40は、その検索結果をDBから取得する(ステップS425)。検索装置40は、検索結果に応じた照合結果を無線機450に出力する(ステップS426)。例えば、検索がヒットした場合、検索装置40は、「平成2年1月1日生まれ、本籍住所東京都A区の芝太郎さんは、○○に該当します。」といった照合結果を含む音声データを無線機450に出力する。例えば、検索がヒットしなかった場合、検索装置40は、「平成2年1月1日生まれ、本籍住所東京都A区の芝太郎さんは、○○に該当しません。」といった照合結果を含む音声データを無線機450に出力する。
【0140】
図24の例によれば、正しいことが確認された検索語によって構成される検索クエリを用いた検索結果を得ることができるので、検索精度を向上できる。
【0141】
図25は、検索装置40による検索語の生成から、照合結果の出力までの流れの別の一例を示すシーケンス図である。
図25は、検索語確認と、複数の検索クエリを用いたDBの検索を並行して行う例である。なお、検索語確認と、複数の検索クエリを用いたDBの検索とは、同じタイミングで行われてもよいし、多少ずれたタイミングで行われてもよい。
図25のシーケンス図は、
図23のステップS420の検索語生成に後続する処理に関する。
【0142】
図25において、検索装置40は、検索語を生成すると(ステップS420)、生成された検索項目ごとの検索語を組み合わせて、複数の検索クエリを生成する(ステップS431)。
【0143】
検索装置40は、検索語の確認内容を含む音声データを無線機450に出力する(ステップS432)。例えば、検索装置40は、「キバタロウ、東京都A区で検索します。誤りがあれば、誤り部分を訂正してください。」といった検索語の確認内容を含む音声データを無線機450に出力する。ステップS432は、ステップS432と並行して行われたり、先行して行われたりしてもよい。
【0144】
検索装置40は、ステップS432と並行して、生成された複数の検索クエリを用いて、DB群400に含まれるDBのうち、照会中の照会種別の照合データが格納されたDBを検索する(ステップS433)。このとき、検索装置40は、生成された複数の検索クエリの全てを用いてDBを検索する。照会中の照会種別の照合データが格納されたDBに格納されていた場合、検索装置40は、その検索結果をDBから取得する(ステップS434)。
【0145】
無線機450は、検索語の確認内容を含む音声データを検索装置40から受信すると、その音声データに応じて音声入力された応答(確認結果)を含む音声データを検索装置40に出力する(ステップS435)。例えば、検索語に誤りがあった場合、無線機450には、「名前は、芝太郎です。新聞のシ。」といった検索語の訂正を含む音声情報が入力される。無線機450は、入力された音声情報に応じた音声データを検索装置40に出力する。なお、検索語の確認内容に誤りがなければ、ステップS435を省略してもよい。
【0146】
検索装置40は、検索語に誤りがあった場合、検索語の訂正を含む音声データを無線機450から受信する。検索装置40は、正しい検索語によって構成された検索クエリを用いた検索でヒットした検索結果に応じた照合結果を、無線機450に出力する(ステップS436)。例えば、検索がヒットした場合、検索装置40は、「平成2年1月1日生まれ、本籍住所東京都A区の芝太郎さんは、○○に該当します。」といった照合結果を含む音声データを無線機450に出力する。例えば、検索がヒットしなかった場合、検索装置40は、「平成2年1月1日生まれ、本籍住所東京都A区の芝太郎さんは、○○に該当しません。」といった照合結果を含む音声データを無線機450に出力する。
【0147】
図25の例によれば、検索語確認と並行して、複数の検索クエリを用いてDBを検索するため、いずれかの検索クエリを用いた検索によって、誤った検索結果も得られるものの、正しい検索結果が得られることになる。
図25の例によれば、検索語の確認結果に応じて、正しい検索語によって構成される検索クエリを用いた検索結果を選択すればよいので、検索効率が向上する。
【0148】
図26は、検索装置40による検索語の生成から、照合結果の出力までの流れのさらに別の一例を示すシーケンス図である。
図26のシーケンス図は、
図23のステップS420の検索語生成に後続する処理に関する。
【0149】
図26において、検索装置40は、検索語を生成すると(ステップS420)、検索語の確認内容を含む音声データを無線機450に出力する(ステップS441)。例えば、検索装置40は、「キバタロウ、東京都A区で検索します。誤りがあれば、誤り部分を訂正してください。」といった検索語の確認内容を含む音声データを無線機450に出力する。
【0150】
また、検索装置40は、生成された検索項目ごとの検索語を組み合わせて、複数の検索クエリを生成する(ステップS442)。検索装置40は、生成された複数の検索クエリのうち少なくともいずれかを用いて、DB群400に含まれるDBのうち、照会中の照会種別の照合データが格納されたDBを検索する(ステップS443)。
【0151】
無線機450は、検索語の確認内容を含む音声データを検索装置40から受信すると、その音声データに応じて音声入力された応答(確認結果)を含む音声データを検索装置40に出力する(ステップS444)。例えば、検索語に誤りがあった場合、無線機450には、「名前は、芝太郎です。新聞のシ。」といった訂正を含む音声情報が入力される。無線機450は、入力された音声情報に応じた音声データを検索装置40に出力する。
【0152】
検索装置40は、検索語に誤りがあった場合、訂正を含む音声データを無線機450から受信する。検索装置40は、訂正に基づいて別の検索語を選択し、検索語の確認内容を含む音声データを無線機450に出力する(ステップS445)。例えば、検索装置40は、「シバタロウで検索します。誤りがあれば訂正してください。」といった検索語の確認内容を含む音声データを無線機450に出力する。また、検索装置40は、訂正に基づいて選択された検索語によって構成された検索クエリを用いて、DB群400に含まれるDBのうち、照会中の照会種別の照合データが格納されたDBを検索する(ステップS446)。
【0153】
無線機450は、検索語の再確認内容を含む音声データを検索装置40から受信すると、その音声データに応じて音声入力された応答(確認結果)を含む音声データを検索装置40に出力する(ステップS447)。例えば、検索語が正しい場合、無線機450には、「間違いありません。」といった音声情報が入力される。無線機450は、入力された音声情報に応じた音声データを検索装置40に出力する。
【0154】
検索装置40は、検索語が正しかった場合、検索語が正しかったことを示す音声データを無線機450から受信する。検索装置40は、正しい検索語によって構成された検索クエリを用いた検索によってヒットした検索結果をDBから取得する(ステップS448)。検索装置40は、正しい検索語によって構成された検索クエリを用いた検索でヒットした検索結果に応じた照合結果を、無線機450に出力する(ステップS449)。例えば、検索がヒットした場合、検索装置40は、「平成2年1月1日生まれ、本籍住所東京都A区の芝太郎さんは、○○に該当します。」といった照合結果を含む音声データを無線機450に出力する。例えば、検索がヒットしなかった場合、検索装置40は、「平成2年1月1日生まれ、本籍住所東京都A区の芝太郎さんは、○○に該当しません。」といった照合結果を含む音声データを無線機450に出力する。
【0155】
図26の例によれば、正しいことが確認された検索語によって構成される検索クエリを用いてDBを検索できるので、検索精度が向上する。また、
図26の例によれば、検索語が間違っている場合、間違った検索語を含む検索クエリを用いた検索を中止できるので、検索効率が向上する。
【0156】
(第5の実施形態)
次に、第5の実施形態の検索装置について図面を参照しながら説明する。本実施形態の検索装置は、第1~第4の実施形態の検索装置を簡略化した構成である。
図27は、本実施形態の検索装置50の構成の一例を示すブロック図である。検索装置50は、変換部52、検索部53を備える。
【0157】
変換部52は、入力される音声データを音声認識によってテキストデータに変換する。検索部53は、検索項目に該当する文字列をテキストデータから抽出する。検索部53は、抽出された文字列からの距離に基づいて、文字列に関連する検索語を検索項目ごとに生成する。検索部53は、検索項目ごとに生成された検索項目を組み合わせて複数の検索クエリを生成する。
【0158】
本実施形態によれば、任意の音声データに基づいて、検索項目に該当する検索語によって構成される複数の検索クエリを生成できる。
【0159】
(ハードウェア)
ここで、本発明の各実施形態に係る検索装置の処理を実行するハードウェア構成について、
図28の情報処理装置90を一例として挙げて説明する。なお、
図28の情報処理装置90は、各実施形態の検索装置の処理を実行するための構成例であって、本発明の範囲を限定するものではない。
【0160】
図28のように、情報処理装置90は、プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95、通信インターフェース96を備える。
図28においては、インターフェースをI/F(Interface)と略して表記する。プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95、通信インターフェース96は、バス98を介して互いにデータ通信可能に接続される。また、プロセッサ91、主記憶装置92、補助記憶装置93および入出力インターフェース95は、通信インターフェース96を介して、インターネットやイントラネットなどのネットワークに接続される。
【0161】
プロセッサ91は、補助記憶装置93等に格納されたプログラムを主記憶装置92に展開し、展開されたプログラムを実行する。本実施形態においては、情報処理装置90にインストールされたソフトウェアプログラムを用いる構成とすればよい。プロセッサ91は、本実施形態に係る検索装置による処理を実行する。
【0162】
主記憶装置92は、プログラムが展開される領域を有する。主記憶装置92は、例えばDRAM(Dynamic Random Access Memory)などの揮発性メモリとすればよい。また、MRAM(Magnetoresistive Random Access Memory)などの不揮発性メモリを主記憶装置92として構成・追加してもよい。
【0163】
補助記憶装置93は、種々のデータを記憶する。補助記憶装置93は、ハードディスクやフラッシュメモリなどのローカルディスクによって構成される。なお、種々のデータを主記憶装置92に記憶させる構成とし、補助記憶装置93を省略することも可能である。
【0164】
入出力インターフェース95は、情報処理装置90と周辺機器とを接続するためのインターフェースである。通信インターフェース96は、規格や仕様に基づいて、インターネットやイントラネットなどのネットワークを通じて、外部のシステムや装置に接続するためのインターフェースである。入出力インターフェース95および通信インターフェース96は、外部機器と接続するインターフェースとして共通化してもよい。
【0165】
情報処理装置90には、必要に応じて、キーボードやマウス、タッチパネルなどの入力機器を接続するように構成してもよい。それらの入力機器は、情報や設定の入力に使用される。なお、タッチパネルを入力機器として用いる場合は、表示機器の表示画面が入力機器のインターフェースを兼ねる構成とすればよい。プロセッサ91と入力機器との間のデータ通信は、入出力インターフェース95に仲介させればよい。
【0166】
また、情報処理装置90には、情報を表示するための表示機器を備え付けてもよい。表示機器を備え付ける場合、情報処理装置90には、表示機器の表示を制御するための表示制御装置(図示しない)が備えられていることが好ましい。表示機器は、入出力インターフェース95を介して情報処理装置90に接続すればよい。
【0167】
以上が、本発明の各実施形態に係る検索装置を可能とするためのハードウェア構成の一例である。なお、
図28のハードウェア構成は、各実施形態に係る検索装置の演算処理を実行するためのハードウェア構成の一例であって、本発明の範囲を限定するものではない。また、各実施形態に係る検索装置に関する処理をコンピュータに実行させるプログラムも本発明の範囲に含まれる。さらに、各実施形態に係るプログラムを記録した記録媒体も本発明の範囲に含まれる。例えば、記録媒体は、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光学記録媒体で実現できる。また、記録媒体は、USB(Universal Serial Bus)メモリやSD(Secure Digital)カードなどの半導体記録媒体や、フレキシブルディスクなどの磁気記録媒体、その他の記録媒体によって実現してもよい。
【0168】
各実施形態の検索装置の構成要素は、任意に組み合わせることができる。また、各実施形態の検索装置の構成要素は、ソフトウェアによって実現してもよいし、回路によって実現してもよい。
【0169】
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0170】
10、20、30、40 検索装置
11、21、31 取得部
12、22、32、42 第1変換部
13、23、33、43 検索部
18、28、38、48 第2変換部
19、29、39 出力部
34 辞書
41 入出力部
44 登録情報記録部
52 変換部
53 検索部
90 情報処理装置
91 プロセッサ
92 主記憶装置
93 補助記憶装置
95 入出力インターフェース
96 通信インターフェース
98 バス
100、200、300 DB
400 DB群