(58)【調査した分野】(Int.Cl.,DB名)
入力部を介して入力された操作入力もしくは音声入力を検索クエリとして受け付け、名称データベースを検索して前記入力された検索クエリの文字列を含む施設名等の候補一覧を出力部に提示し、選択手段を介して選択された前記候補一覧中の施設名等により目的地を設定するナビゲーションシステムであって、
前記名称データベースは、検索対象となる1つ以上の属性と、それぞれの前記属性に対する内容である値とを関連付けて保存するレコードを単位として、1つ以上の前記レコードが登録されており、かつ、入力文字列と対応する前記レコードを特定する情報の関係を記録したインディクスを有しており、
前記入力部から得られた音声を文字列に認識する音声認識部と、
前記音声認識部において参照する音響データを格納する音響モデル記憶部と、
前記音声認識部において認識する語彙と該語彙の連結規則を言語モデルとして記憶する言語モデル記憶部と、
前記入力部または前記音声認識部から入力された前記検索クエリの入力文字列を用いて、前記名称データベースに含まれる前記属性の前記値を検索し、前記入力文字列をキーとして前記インディクスを参照して部分一致または完全一致する検索結果を取得し、遂次、該値に前記入力文字列が含まれる前記レコードを候補として生成し、検索結果として前記出力部に出力する検索部と、
出力された前記レコードの候補から1つの前記レコードを選択する前記選択手段と、
前記レコードの候補に対する前記選択手段による前記レコードの選択結果を受けて、前記言語モデルに追加すべき音声認識語彙である新たな追加認識語彙を作成する認識語彙作成部とを備え、
前記認識語彙作成部は、
前記入力文字列に対応する前記追加認識語彙と前記選択された前記1つのレコードとの対応関係を、前記名称データベース若しくは前記言語モデルに記録し、
前記検索部は、前記音声認識部から前記追加認識語彙が出力された場合に、該追加認識語彙に含まれる前記名称データベースのレコードを前記検索結果に含める
ことを特徴とするナビゲーションシステム。
【発明を実施するための形態】
【0014】
以下、本発明の実施例を図を用いて説明する。
【実施例1】
【0015】
本発明の第1の実施例になる情報検索装置を,
図1〜
図6を参照しながら説明する。
図1に,本発明の第1の実施例になる情報検索装置の機能ブロックを示す。
本実施例では,カーナビゲーションにおいて,店舗などの施設を検索するための情報検索を例として説明する。情報検索装置100は,CPU,メモリ,ソフトウェア等により実現される各種の演算処理機能や画像処理機能を有している。情報検索装置100はその構成を機能ブロックに分けると,入力部として,ユーザの操作入力を受け付ける操作入力部110と,ユーザの音声入力を受け付ける音声入力部120とを備えている。操作入力部110は,ユーザの入力のうち,タッチパネル操作,リモコン操作,ダイアル操作などの操作入力を受け付ける。情報検索装置100はさらに,音声入力部から得られた音声を文字列に認識する音声認識部130,音声認識部において参照する音響データを格納する音響モデル記憶部140,音声認識部において認識する語彙と語彙の連結規則を記憶する言語モデル記憶部150,検索部160,名称データベース170,検索部で検索されたレコードの候補をユーザに提示する出力部180,提示されたレコードの候補からユーザが特定の候補等を選択する選択手段(図示略)、及び認識語彙作成部190を備えている。なお,上記情報検索装置100の各部の構成は,一例であり,ソフトウェア等の形態により各部が統合され,あるいは細分化されることもありうる。例えば、選択手段は、操作入力部110や音声入力部120の各機能の一部として構成しても良い。また,音響モデル記憶部140,言語モデル記憶部150,名称データベース170は,共通の記憶装置として構成される。
【0016】
名称データベース170は,検索対象となる1つ以上の属性と,それぞれの属性に対する内容である値とを関連付けて保存するレコードを単位として,1つ以上のレコードを登録したものである。検索部160は,ユーザにより入力された入力文字列を用いて,名称データベース170に含まれる1つないし複数の属性の値を検索し,値に入力文字列が含まれるレコードを候補として生成する。認識語彙作成部190は,検索部160の出力に基づいて言語モデル記憶部150に新たに追加すべき音声認識語彙である追加認識語彙を作成する。これにより,本実施例の情報検索装置100は,ユーザが検索のために入力した文字列,すなわち検索クエリを,音声認識語彙として登録し,検索に利用できるようにする。また,検索クエリを形態素情報や他のデータベースの情報により編集し,音声入力に際してユーザが発話しやすい音声認識語彙を提供する。
以下,各部の構成,機能について,詳細に説明する。
【0017】
[名称データベースの説明:その1]
名称データベース170は,情報検索装置で検索できるデータを蓄えておくデータベースである。本実施例では,カーナビゲーションの施設に関する情報を格納するものとして,説明する。
図2Aに,名称データベース170のテーブルの構成例を示す。なお,本発明では,各データの単位をレコードと称して説明する。
名称データベース170には,カーナビゲーションに登録されている全国の施設名が記憶されている。1つのレコードに対しては,複数の属性に関する情報が付与されている。また,それぞれの属性に保存されている情報を値と呼ぶこととする。
名称210は,それぞれの施設の名称を示す。
読み220は,各施設の読み仮名を付与する。また,ここでは,施設名の読みを分割した記号を「/」で記載している。分割したそれぞれの部分を形態素と称す。また,各形態素に応じて,その性質を記載した品詞を設ける。形態素分割の実装方法は,後ほど説明する。
【0018】
[形態素解析方法]
ここでは,形態素分割の方法について説明する。
[品詞の種類]
形態素は,自然言語により定義された語彙の単位の1つである。しかし,本実施形態では,施設名を区切りのよい箇所において区切った単位であると定義する。
形態素の定義は,それぞれの言語により異なる。本実施例では,施設の名称の分割について述べる。このための形態素の体系としては,公知の文献(岩瀬成人: 自然言語処理を用いた企業名解析方式,電子情報通信学会論文誌,vol.J82-DII,no.8,pp.1305-1314,1999)で調査されている施設名を分割したときの意味カテゴリを形態素の単位として使用することができる。本明細書の実施形態では,「岩瀬」の論文を参考にして,品詞として,固有名,地名,職業という3種類を想定する。また,これらいずれにも入らないものとして,語尾というものを設けて説明をする。
【0019】
また,のちほど楽曲検索における実施形態を説明するが,楽曲名については,既存の日本語の品詞体系を流用する方法を適用できる。また,作詞者,作曲者,アーティスト名については,姓,名といった単位で分割し,それぞれを形態素と見なす方法をとることができる。
【0020】
[分割方法]
形態素への分割方法としては,いくつかの方法をとることができる。
第1の方法として,最初から名称データベースにおいて,各名称の形態素区切りの位置と,各形態素の品詞を付与しておく実装が可能である。
第2の方法として,動的に形態素分割処理を行うことも可能である。たとえば,形態素解析の手法として,各形態素と品詞の関係を辞書としてもっておき,最長一致法,分割数最小法,接続コスト最小法といった手法を用いることで,施設名を形態素単位に分割することができる。
【0021】
[音声合成用の辞書の利用]
また,形態素区切りを,音声合成用の辞書の情報を利用することも可能である。カーナビゲーションでは,施設名や楽曲名そのほかの情報を音声ガイダンスで読み上げるために,各名称の読みの情報を持っている。また,各読みには,自然に読み上げるために必要なアクセント情報,韻律の情報,形態素区切りの情報が付与されている。この情報を利用して,本発明での形態素区切りの単位として使用することも可能である。
【0022】
[名称データベースの説明:その2]
図2Aに戻って,名称データベース170の説明をつづける。
メインジャンル230は,各施設の属するジャンルを格納する。
サブンジャンル235は,各施設の属するメインジャンル230よりも詳細なジャンルを格納する。たとえば,鉄道駅に対しては路線名を格納し,スーパーマーケットについては各施設が属するチェーンや経営母体の名称を格納する。
住所240は,各施設の住所を格納する。
追加認識語彙250には,各施設を指定するために使用する音声認識語彙を登録する。この登録方法については,のちほど説明する。
また,
図2Aには示さないが,カーナビゲーションで一般に使用される,緯度,経度,マップコードといった属性も合わせて名称データベース170に保存しておく。
【0023】
[構成の説明]
図1に戻って,情報検索装置100の構成の説明をする。
操作入力部110は,ユーザの入力のうち,タッチパネル,リモコン,ダイアルなどの手での操作の入力を受け付ける。
音声入力部120は,ユーザの音声による入力を受け付ける。具体的には,マイクから入力したユーザの発話音声をデジタル信号に変換する。
音声認識部130は,音声のデジタル信号から音声認識し,文字列に変換する。ここでは,まず,ユーザが発話した音声データを,特徴ベクトル列に変換する。特徴ベクトル列とは,音声の各時刻の特徴量を多次元ベクトル量で表し,それを時系列に並べたものである。たとえば,各時刻の音声データをMFCC(Mel Frequency Cepstrum Coefficient)パラメータと呼ばれる多次元ベクトル量に変換し,これを時系列に並べたものが使用される。
音響モデル記憶部140には,各音素に対応するモデルを保存しておく。このモデルの表現形態としては,各音素を3状態で定義したHMM(Hidden Markov Model)を使うことができる。
言語モデル記憶部150には,音声認識部が認識対象とする単語と,各単語の連結規則を記録する。
【0024】
[言語モデル]
言語モデル記憶部150の内訳を,
図3A,
図3Bで説明する。
ここでの言語モデルでは,名称データベース170におけるそれぞれの施設の読み220が認識できるように作られている。
図3Aは,言語モデルのうち,認識の単位となる単語を登録した辞書300を示す。ここでは,名称データベース170におけるそれぞれの施設の読み220が,単語として登録されている。
1つ単語の情報は,単語ラベル310,音素列320の2つの属性で構成される。
単語ラベル310には,音声認識結果として出力する文字列情報を記録する。
音素列320には,それぞれの単語の読み方に対応する音素記号を記憶する。
図3Aの辞書300における音素記号と実際の音素の対応は,情報処理振興事業協会のプロジェクトにて開発された「日本語ディクテーション基本ソフトウェア」のフォーマットにのっとっており,以下の文献に記載されている。
鹿野,伊藤,河原,武田,山本:「音声認識システム」,オーム社 (2001)の133ページ。
鹿野, 武田, 河原, 伊藤, 山田, 伊藤, 宇津呂, 小林, 嵯峨山, 峯松, 山本:「日本語ディクテーション基本ソフトウェアの開発」,第19IPA 技術発表会論文集(2000) (http://www.ipa.go.jp/SYMPO/sympo2000/pdf/ipa19_1_51_1.pdf)
【0025】
図3Bは,言語モデルのうち認識可能となる単語の連結規則360を表した図を示す。記号「start」から「end」に向かういずれかのパスを認識可能であることを示している。ここでは,辞書に登録されているそれぞれの単語を認識できる有限状態文法による例を示す。
図3Bの連結規則360には,
図3Aの辞書300に追加した単語340,350に対応する文法パス345,355などが追加される。この点に関しては,後で詳細に説明する。
なお,
図3Cに変形例として示すように,言語モデル記憶部150の辞書300は対応ID番号330を3つめの属性として持っておいてもよい。対応ID番号330には,各単語に対応する名称データベースのID番号205を登録する。
図3Cの辞書300は,
図2Bのテーブル170と組み合わせて使用される。この使い方については,後ほど第1の実施例の変形例として説明する。
【0026】
[音声認識部]
音声認識部130は,入力音声の特徴ベクトル列と,言語モデルに記憶された認識可能な単語列の音素系列とを比較し,その一致の度合いを表すスコアを計算する。
そして,スコアが高かった単語列の単語ラベルの文字列を出力する。
ここでは,スコアがもっとも高かった単語列だけを出力しても良いし,スコアが高かった上位複数個の単語列を出力しても良い。
なお,音声認識の方法は,下記の文献に詳しく記載されており,実装に使用することができる。
Lee, Reddy : "Automatic Speech Recognition: The Development of the Sphinx Recognition System", Kluwer Academic Publishers (1989)
Rabiner, Juang : "Fundamentals of Speech Recognition", Prentice Hall PTR (1993)
【0027】
[検索部]
検索部160は,音声入力部120または音声認識部130から出力された文字列を用い,名称データベース170にある各属性の値のなかで検索を行い,レコードの選択候補を生成する。
【0028】
[テキスト入力,音声入力による候補生成の一般的な流れ]
ここで,ユーザの入力により検索部160において選択候補が生成される流れを示す。
図4は,カーナビゲーションの画面に装着されたタッチパネル400とその表示の例を示す。このタッチパネル400は,グラフィカルユーザーインターフェース(GUI)機能を有し,操作入力部110,検索部160及び出力部180の各機能を備えている。タッチパネル400はさらに、出力部で出力されたレコードの候補一覧から特定の候補を選択する選択手段の機能も備えている。ここでは,施設を五十音入力により検索することで説明する。
五十音ボタン410は,各ボタンを押すことにより文字を入力できる。また,文字の削除,入力文字種の変更,カーソル移動を行うボタンも用意する。
表示エリア420には,ユーザが五十音ボタン410により押下した文字列が表示される。
検索ボタン430は,ユーザが選択候補の内訳を見たいときに押下するボタンである。また,ユーザが五十音ボタン410を押下して文字列を更新するたびに,検索部160で得られた選択候補が何件あるかを括弧内に表示する。
【0029】
ここでは,例として,ユーザは「フニツ」と入力したとする。
この入力は,操作入力部110を経て,検索部160へ伝達される。
検索部160では,名称データベース170の属性から読み220の値を検索し,ユーザ入力文字列「フニツ」を含むレコードを検索する。
なお,ユーザの入力の利便性を考慮し,撥音や拗音などで含まれる小さい文字は,対応する大きい文字でも検索できるものとする。また,濁音,半濁音は,有無を問わず検索できるものとする。
この検索の結果,「スーパーフニット国分寺店」,「スーパーフニット府中店」,「ふにつる旅館」の3件が選択候補として得られる。
そして,ユーザがタッチパネル400の選択手段の機能により、選択候補を選択して検索ボタン430を押下したとする。
この選択手段の押下動作により,施設の候補は出力部180に送られる。出力部180は,ユーザに選択候補を提示するため画面表示の変更,または,ユーザに選択候補を音声にて伝える音声再生を行う。
【0030】
出力部180により変更されたタッチパネル400の画面を
図5に示す。候補表示エリア510には,生成された選択候補が表示される。
これを受けて,ユーザはタッチパネル400の選択手段の機能により、選択候補の中から自分の行きたい1つの施設を選択し,候補表示エリア510の対応する施設を押下する。この選択手段の押下結果は,操作入力部110を経て受理される。これにより,たとえばユーザが「スーパーフニット府中店」を選択した場合には,この施設を選択結果とし,経路探索や地図表示といったカーナビゲーションの所定の動作を行う。
【0031】
つぎに,ユーザが、選択手段として音声入力機能を利用した場合の動作を説明する。
ユーザが音声で,「スーパーフニット府中店」と発話したとする。この音声は,音声入力部120でデジタル信号に変換された後,音声認識部130にて文字列に変換される。 音声認識処理では,音声信号が,言語モデル記憶部150にある認識対象の単語列のうちもっとも類似するものを探索する。その結果,「スーパーフニットフチュウテン」が出力されるとする。
このユーザによる選択手段を介した選択結果は,検索部160に入力される。
【0032】
検索部160では,音声認識結果「スーパーフニットフチュウテン」と名称データベース170の読み220を比較し,完全一致する施設を検索する。その結果,施設「スーパーフニット府中店」が選ばれる。その後,出力部180より出力される。この場合,候補は1件であるので,経路探索や地図表示といったカーナビゲーションの所定の動作を行う。
【0033】
検索速度をより高速とするために,第1の実施例の変形例として,
図2B,
図3Cに示したように,それぞれの施設に固有に付与されたID番号を用いる方法がある。すなわち,名称データベースの変形例として,
図2Bに,テーブル170の構成例を示す。この例では,属性として,それぞれの施設に固有に付与されたID番号を示すID番号205が追加されている。代わりに,名称データベース170の追加認識語彙250の項目は省略されている。また,
図3Cに示したように,言語モデルの辞書300に記載される各単語の情報として,単語ラベル310,音素列320のほかに,各単語に対応するレコードのID番号205も記憶しておく。これを,
図3Cの対応ID番号330に記載する。たとえば,単語「スーパーフニットフチュウテン」には,対応ID番号には,名称データベース170で対応するレコードのID番号「0201」を記憶しておく。
【0034】
さらに,音声認識部130は,音声認識結果を出力する際に,単語ラベルのほかに,認識された単語の対応ID番号330も出力する。検索部160は,音声認識部130の出力のうち,認識単語に付与された対応ID番号330を参照し,名称データベース170で同じID番号「0201」を持つレコードを候補として生成する。結果として,施設「スーパーフニット府中店」を候補として生成できる。
【0035】
[検索の方法]
上記述べた検索部160での実際の検索の実装方法について説明する。
まず,検索のクエリとなる入力がタッチパネル400などで入力され,操作入力部110から得られた文字列である場合について説明する。
検索を行う1つめの方法として,全件検索がある。この方法では,まず,操作入力部110から得られた文字列と,名称データベース170の属性の読み220のすべてとを比較し,入力文字列と部分一致したレコードを検索する。しかし,全件検索の処理では,比較演算の回数が多くなるため,処理速度は遅くなる。
【0036】
この処理を高速化した2つめの検索方法として,データベース検索に使用されるインディクスを用いた検索を適用できる。まず,あらかじめ,入力文字列と対応するレコードを特定する情報(たとえば,
図2Bの名称データベース170のID番号205,レコードの記憶装置上での格納位置を示すアドレスなど)の関係を記録したインディクスを作成しておく。そして,ユーザが検索のために文字すなわちクエリを入力すると,入力された文字列をキーとしてインディクスを参照することで,対応するレコードの一覧を即座に得ることができる。そのほか,データベース検索に使用される公知の技術が使用できる。
【0037】
つぎに,検索のクエリとなる入力が音声入力であり,音声認識部130から得られた文字列である場合について説明する。
入力が音声である場合も,検索部160に文字列が入力されるため,タッチパネルなどの入力と同様の方法で検索を行うことができる。すなわち,入力文字列と名称データベース170の読み220のすべてとを比較する全件検索の方法を用いることができる。また,あらかじめ,音声認識部130から得られる可能性があるあらゆる文字列と,それぞれの文字列に対応するレコードを特定する情報(たとえば,
図2Bの名称データベース170のID番号205,レコードの記憶装置上での格納位置を示すアドレスなど)の関係を記録したインディクスを作成しておき,音声認識結果をキーとしてインディクスを参照することで,施設候補を得る方法を使用できる。
【0038】
本発明における音声認識結果やタッチパネル入力を用いた検索の処理は,上記のような検索処理の方法によって実装可能である。
【0039】
[音声認識のいろいろな実装]
上記第1の実施例及びその変形例の説明では,音声認識の結果として,1個の単語列が入力される場合を想定した。しかし,音声認識処理では複数の単語列を得ることも可能である。よって,複数の音声認識の単語列が得られた場合には,それらいずれかの単語列または単語を含む施設名を検索し,その結果を出力しても良い。
また,上記第1の実施例及びその変形例の説明では,音声認識の結果が,名称データベース170の1つの施設の読み220と完全一致する想定で説明した。また,言語モデル記憶部150での文法は,
図3Bの連結規則360のように,各施設の読みがそれぞれ並列に記録されている状態とした。一方,言語モデルにおいて,施設名をより細かく分割した単位で単語を記憶し,これをN-gram言語モデルのような連結確率を付与した文法と組み合わせて利用してもよい。この場合には,施設名の一部分の文字列が得られる。よって,検索部160では,認識結果の文字列が施設名の読み220に含まれる(部分一致する)レコードを候補として挙げ,その結果を候補として使用してもよい。
【0040】
[第1の実施例の前提]
以下,本実施例では,
ユーザはタッチパネルにより「フニツ」と入力し,
この検索の結果,「スーパーフニット国分寺店」,「スーパーフニット府中店」,「ふにつる旅館」の3件が候補として得られ,
ユーザが「スーパーフニット府中店」を選んだ場合における,認識語彙作成部190の動作を説明する。
【0041】
[認識語彙作成部]
図6に,認識語彙作成部190の処理の流れを示す。
ステップ610では,ユーザが入力した文字列「フニツ」と,決定した施設「スーパーフニット府中店」の読みとの形態素単位での比較を行う。
その結果,ユーザ入力文字列「フニツ」は,読み「スーパー/フニット/フチュウ/テン」のなかの形態素「フニット」の一部分であることが分かる。
ステップ620では,ユーザ入力文字列を形態素に基づき編集する。ここでは,ユーザが入力した文字列「フニツ」を,該当する形態素まで延長し,「フニット」に編集する。これを音声認識語彙として使用する。
【0042】
ステップ630では,ステップ620で作られた音声認識語彙を,ユーザが選んだ名称データベース170の施設「スーパーフニット府中店」の追加認識語彙250に登録する。このとき,ユーザがより発話がしやすいように,「〜ニイク」「〜ヲモクテキチニスル」といった語彙と連結させても良い。ここでは,「〜ニイク」を連結させることとする。
図2Aの名称データベース170の260に,「〜ニイク」の追加の方法を示す。
【0043】
ステップ640では,追加認識語彙250に登録した語彙に沿って,言語モデル記憶部150に単語を登録する。ここでは,読み「フニットニイク」,音素列「f u n i q t o n i i k u」の対を,言語モデル記憶部150の辞書300に登録する(
図3Aの340)。また,辞書に追加した単語に対応する文法パスを文法(連結規則)360に追加する(
図3Bの345)。
【0044】
また,上記変形例の場合,辞書300に追加した単語には,ユーザが選んだ施設「スーパーフニット府中店」のID番号205である「0201」を対応ID番号330に登録する。すなわち,言語モデル記憶部150に記憶されている語彙のそれぞれには,対応する識別子(ID番号330)が合わせて記憶されており,音声認識部130は,認識された語彙に合わせて,認識された語彙に対応する識別子をも併せ出力し,検索部160は,音声認識部が出力した語彙に付与された識別子を参照し,名称データベース170の同一となる識別子を持つレコードを候補として生成する。従って,認識語彙作成部190は,
図6のステップ620において,検索部160の出力に基づいて追加認識語彙を作成し,ステップ630における名称データベース170への登録を省略してステップ640に進み,ステップ640において,名称データベース170におけるユーザが選択したレコードに対応する対応ID番号と作成した追加認識語彙とを組み合わせた形式で,語彙を言語モデル記憶部150の辞書300にも追加する。
また,「フニットニイク」が追加認識語彙であることを示すフラグを合わせて登録して管理してもよい。
【0045】
[追加認識語彙を使った目的地設定]
第1の実施例における,その後の操作について説明する。
ユーザは,音声により,「フニットに行く」と発話する。
この結果は,音声入力部120を経て音声認識部130にて音声認識処理が行われる。この音声認識処理の結果,音声認識結果の単語ラベル「フニットニイク」が得られる。
つぎに,検索部160では,音声認識結果の単語ラベルと名称データベース170を比較する。
ここでは,名称データベース170のうち,読み220のほかに,追加認識語彙250とも比較を行う。その結果,施設「スーパーフニット府中店」の追加認識語彙「フニットニイク」260と一致する。
この結果を受けて,出力部からは,「スーパーフニット府中店に目的地を設定します」という音声応答を出し,かつ地図表示,経路探索といったカーナビゲーションの所定の動作を行う。
なお,上記変形例の場合,ユーザの「フニットに行く」という発話から施設「スーパーフニット府中店」を選択する処理の手順は,言語モデル記憶部に付与された対応ID番号330を使用することにより,名称データベース170の読み22,追加認識語彙250と比較する処理を省略して実装する。具体的には,音声認識部は,音声認識結果として単語ラベル「フニットニイク」に加えて,対応ID番号「0201」も合わせて出力する。検索部160は,音声認識結果のうち対応ID番号「0201」を参照し,名称データベース170のID番号205の中で一致する施設を候補として生成する。この方法においても,施設「スーパーフニット府中店」を候補として選択することができる。
【0046】
[認識語彙作成部の別例]
次に,第1の実施例において,ユーザが,
図5の候補表示エリア510から,「ふにつる旅館」を選択した場合において,認識語彙作成部190の動作を説明する。
この場合には,ユーザが入力した文字列と一致する形態素は「ふにつる」である。よって,「ふにつる旅館」に対して語彙「フニツルニイク」が生成され,名称データベース170の追加認識語彙250と,言語モデル記憶部150に登録される。よって,ユーザは,「ふにつるに行く」と発話すれば,「ふにつる旅館」に関する所定の動作を行う。
【0047】
以上,本実施例では,ユーザがタッチパネルなどで入力した文字列に従い,音声認識語彙を追加する。このことにより,ユーザが最初から知っている語彙を音声認識のために使用できるため,語彙外発話の頻度を少なくし,使い勝手を向上することができる。
なお,本実施例では,形態素区切りを利用してユーザが入力した文字列を拡張した。このことにより,ユーザがタッチパネルで入力した文字列が「フニツ」のように不完全であっても,形態素単位で拡張することにより,ユーザが発話するために自然に感じる単位まで広げることができる。しかし,本実施例とはことなり,ユーザが入力した文字列をなんら加工することなく,追加認識語彙として使用してもよい。
【0048】
[漢字カナ入力を許容した場合]
また,本実施例では,ユーザがタッチパネルで入力する文字は仮名である想定であった。しかし,漢字カナ混じりの文字が入力されてもよい。この場合には,名称データベースの名称210に対して,それぞれの名称を形態素に分割しておく(例.「荻窪/駅」)。そして,ステップ610での処理では,ユーザが入力した漢字カナ混じりの文字列を,施設の名称210と比較し,該当する形態素を特定する。このことにより,ユーザの漢字カナ混じりにも対応できる。
【0049】
[タッチパネル入力による追加認識語彙の検索]
また,本実施例では,ユーザがタッチパネルで入力した文字を加工し,これを音声認識語彙として使用する実施例を使用した。しかし,作成された音声認識語彙は,音声認識のためだけでなく,通常のタッチパネルなどの操作における入力でも,検索対象語として使うことができる。
たとえば,名称データベースの施設「スーパーフニット府中店」に対して,すでに追加認識語彙属性に「フニット」が追加されているとする。この状況で,ユーザがタッチパネルより「フニット」と入力したとする。この場合,検索部では,名称データベースの読み220を検索し,読みに「フニット」がつく施設を候補として生成した。
このとき,名称データベース170の追加認識語彙属性も見ると,施設「スーパーフニット府中店」の追加認識語彙属性と一致する。この判断に基づいて,他の候補よりも優先的に「スーパーフニット府中店」をユーザに提示することが考えられる。
たとえば,検索クエリ「フニット」での候補が数百件ある状況でも,画面表示において,「スーパーフニット府中店」を候補表示エリア510のいちばん上に表示するといったことが考えられる。このようにすれば,ユーザは知っている施設をすぐに見つけることができる。
【実施例2】
【0050】
本発明の第2の実施形態になる情報検索装置を,
図1,
図2A及び
図7A〜
図10Bを参照しながら説明する。
この実施形態は,第1の実施形態において,ユーザが選択した施設に対して,複数の追加認識語彙の候補を作成し,そのなかからユーザに選択してもらうことを特徴とする。
さらに,追加認識語彙がすでに音声認識で使われている場合や,類似する認識語彙が存在する場合には,その追加のための動作を変更する。
なお,名称データベース170,言語モデル記憶部150,辞書300等の構成は,第1の実施形態で説明したID番号を用いない方式とするが,第1の実施形態の変形例で説明したID番号を用いる方式で実現しても良い。
【0051】
[第2の実施形態の前提]
本実施形態の説明の前提として,まず,名称データベース170において,追加認識語彙250として「スーパーフニットニイク」が施設「スーパーフニット国分寺店」に追加されているものとする(
図2Aの282)。そのため,言語モデル記憶部150にも,すでに,「スーパーフニットニイク」という語彙が登録されているものとする。
ここから,ユーザは,タッチパネルより「フニツ」と入力し,施設名候補の中から,「スーパーフニット府中店」を選択したとする。
【0052】
[形態素重要度]
つぎに,形態素に関して形態素重要度を振っておくことについて説明する。
図7A及び
図7Bは,各々,本実施形態における形態素の重要度を定義した表700の一例である。
図7Aのような「スーパーフニット府中店」に含まれる形態素710それぞれの形態素重要度730を定義した表700を設ける。形態素重要度とは,ユーザにとって,その形態素を発話することで,該当する施設を呼び出すことが自然である場合に高くなる指標として定義する。たとえば,名称「スーパーフニット府中店」を形態素「フニット」という発話で指定することは自然と考えられるため,形態素重要度を高く設定しておく。一方,形態素「テン」だけで施設を指定することはほとんどないと考えられるため,「テン」の形態素重要度は低い値とする。
また,この形態素重要度は,形態素710に寄らなくとも,品詞720ごとに定義した値を用いても実装できる。この場合には,固有名,地名,職種は高くし,語尾,法人種別名(カブシキガイシャ,ザイダンホウジン,など)などを低くすることが挙げられる。
また,形態素重要度は連続値でなくとも,量子化された値でも良い。たとえば,「重要」,「非重要」という2段階のいずれかの情報を付与してもよい。また,図示はしないものの,形態素の複数組合せに対して形態素重要度を付与しても良い。たとえば,「スーパー/フチュウ」という「フニット」をスキップした組合せがユーザにとって自然であれば,この組合せに対して重要度を高くするといったこともできる。
【0053】
[認識語彙作成部の動作]
つぎに,本実施例における認識語彙作成部190の処理の流れ,を
図8に示す。
【0054】
[ユーザが入力した文字列に該当する形態素重要度の加算]
ステップ810では,まず,ユーザが入力した文字列を含む読みの形態素を特定する。その結果,形態素「フニット」がユーザの入力した文字列だと特定される。つぎに,この形態素の重要度を増える方向に再計算する。この実施例では,0.5を加算することとする。これにより,形態素「フニット」の形態素重要度は,
図7Aの740で示すとおり,1.4となる。
【0055】
[形態素の組合せによる音声認識語彙の生成]
ステップ820では,音声認識語彙の候補として,施設の形態素の組合せを生成する。さらに,この組合せに対する組合せ重要度も算出する。組合せ重要度とは,高いほど,その形態素の組合せをユーザが発話することが自然であるように付与した重要度である。その算出方法にはさまざまな方法があるが,ここでは,形態素重要度を加算したのち,形態素の数で割った平均値を組合せ重要度として使用する。
【0056】
図9Aの表900に,ステップ820で計算した組合せ重要度の例を示す。形態素組合せ910は,形態素のそれぞれの組合せである。組合せ重要度920は,それぞれの形態素の組合せに対して算出された組合せ重要度である。また,組合せ重要度920は,高い順に並べ替えてある。
たとえば,形態素組合せ「スーパー/フニット」の場合には,「スーパー」の形態素重要度が0.8,「フニット」の形態素重要度が1.4である。よって,加算した後,形態素数2で割ることにより,1.1と計算される。
【0057】
[既存の音声認識語彙と類似する組合せの重要度の低減]
ステップ825の動作において,生成されたそれぞれの形態素組合せと,言語モデル記憶部に保存されている単語との類似度を計算する。ここでは,「〜ニイク」など認識語彙生成部で付加した語を取り除いた状態において,完全一致していれば類似度1,完全一致していなければ類似度0として算出する。なお,この方法でなくとも,単語の音素間距離などを用いて連続的な値を用いてもよい。音素間距離は,音素記号の編集距離やBhattacharyya距離などの公知の方法により計算できる。
【0058】
このようにして計算した結果を,
図9Aの表900に「類似度」930として示す。すでに「スーパーフニット国分寺店」に対して,音声認識語彙「スーパーフニットニイク」が使われている(
図2Aの282)。よって,計算では,すでに言語モデルに「スーパーフニット(ニイク)」が存在するため,形態素組合せ「スーパー/フニット」に対しては1,それ以外では0となる。
この結果を受けて,類似度が高い場合には,組合せ重要度を低くする方向に再計算する。ここでは,例として,類似度が1であるものは,組合せ重要度を0にする。これにより,形態素組合せ「スーパー/フニット」に対する組合せ重要度は0となる(
図9Aの表900中における940の操作)
【0059】
[音声認識語彙の候補の提示とユーザ選択]
ステップ830の動作において,認識語彙作成部190は,組合せ重要度920が高かった上位数個の形態素組合せ910を,追加認識語彙の候補とみなす。そして,出力部180に出力する。ここでは,上位3個を出力する。
これを受け,出力部では,画面表示を更新する。表示を更新した表示画面400を
図9Bに示す。この画面では,ユーザに対して,候補となる追加認識語彙のうち,どれを使用するかを尋ねることを目的とする。
【0060】
選定施設表示エリア1010には,ユーザが選んだ施設の名称を表示する。
追加認識語彙候補表示エリア1020には,認識語彙作成部190より出力された追加認識語彙の候補を表示する。なお,ユーザにとって視認性が良いように,追加認識語彙の元となった漢字仮名混じりにより表示する。
【0061】
この表示により,ユーザに対して,表示画面400の追加認識語彙候補表示エリア1020に表示した追加認識語彙のうち,どれを採用するかを選択してもらう。そのため音声出力として,「スーパーフニット府中店の音声コマンドを設定します。画面のなかから選択してください」といったガイダンスを流しても良い。
ユーザは,このなかから「フニット府中」を選択した場合を説明する。
ステップ840の条件式により,ユーザは音声認識語彙を選択したため,処理はステップ850に移る。
ステップ850では,選択した「フニット府中」を,名称データベース170の「スーパーフニット府中店」の追加認識語彙250に登録する。このとき,第1の実施形態と同様に「〜ニイク」を付与した形態で追加することとし,「フニットフチュウニイク」を追加する。この処理を
図2Aの名称データベース170に270として示す。
ステップ860では,言語モデル記憶部150に単語「フニットフチュウニイク」を追加する。
【0062】
以降,実施例1と同様に,ユーザが「フニット府中に行く」と発話することにより,施設「スーパーフニット府中店」に対応する所定の動作を行うことができる。
【0063】
[音声認識語彙の候補の提示と,ユーザがいずれも選択しない場合]
一方,処理をステップ830での音声認識語彙の表示に立ち戻って説明を追加する。ユーザ状況では,候補として表示された音声認識語彙のいずれも使用したくない場合もある。その場合に対応するため,
図9Bの画面400において,設定拒否ボタン1030を設ける。
この設定拒否ボタン1030をユーザが押下した場合には,ステップ840の条件式により,ユーザは音声認識語彙を選択しなかったため,処理は終了する。これにより,いずれの音声認識語彙も採用されることがなくなる。
【0064】
以上,説明したように,複数の追加認識語彙を生成し,そこからユーザに選定してもらう動作を設けることにより,ユーザが使用したい語彙を使って,目的地設定が出来るようになる。また,語彙を使わない操作方法を設けることで,ユーザの意図しない語彙の追加を防ぐことができる。
また,追加認識語彙を生成する際に,形態素の重要度に基づいた組合せを生成することにより,よりユーザにとって使いやすい音声認識語彙を提供することができる。
また,形態素の重要度に対して,ユーザが入力した文字列に対応する形態素の重要度を増す動作を行うことにより,ユーザが入力した形態素を含む追加認識語彙を表示されやすくすることができる。
【0065】
[認識誤りの原因となる,似た音素の語彙を外す]
また,本実施例で示したように,既存の言語モデルにある語彙を候補からあらかじめはずすことにより,特定の似ている語彙で複数の施設が指定されることを防ぐことができる。
本実施形態では,既存の語彙と完全一致している場合に,その語彙を追加認識語彙の候補からはずす例で説明した。しかし,以下のような実装も可能である。
まず,完全一致ではないが,きわめて似ている語彙が追加認識語彙に現れる場合がある。たとえば,「ふにつる旅館」にすでに追加認識語彙「フニツルニイク」が存在する状態で,「スーパーフニット府中店」のための追加認識語彙として「フニットニイク」が候補として現れる場合がある。この「フニツル」と「フニット」という語彙は,音素が似ている。そのため,互いに誤認識しやすい対と考えられることができる。このような場合においては,ステップ825の語彙の類似度計算において,音素間距離による方法によって類似度を連続値として算出し,類似度が閾値以上となった場合に,その組合せの重要度を下げ,候補としてはずす作用を実現できる。これをとることにより,追加認識語彙「フニット」を候補からはずすことができる。これにより,あらかじめ類似度が高い語彙を追加認識語彙からはずすことで,認識誤りの発生を抑えることができる。
【0066】
[追加認識語彙以外との類似度の計算]
また,本実施例では,既存の言語モデルにある語彙のうち,すでに追加されている追加認識語彙と比較し,その結果,似ている語彙があった場合に候補からはずす処理で説明した。しかし,既存の語彙は,追加認識語彙ではない場合も含まれる。たとえば,カーナビゲーションにて最初から認識可能な施設の正式名や,カーナビゲーションの音声コマンドと比較し,それらと候補となる追加認識語彙が似ている場合に,候補からはずすこともある。
【0067】
[追加語彙が似ている場合のユーザへの問い合わせ]
また,類似度が高い場合には,それを候補からはずす操作を行わなくとも,そのまま画面に候補を提示し,その使い方をユーザに聞いてもよい。
【0068】
[使用するか否かの問合せ]
第1に,ユーザにその語彙を追加するかを聞く方法をとることができる。前述の例のように,「ふにつる旅館」にすでに追加認識語彙「フニツルニイク」が存在する状態で,「スーパーフニット府中店」のための追加認識語彙として「フニットニイク」が候補として現れる場合を考える。このとき,音声ガイダンスにより,「『フニットニイク』は,『フニツルニイク』と似ています。『フニットニイク』を音声コマンドに追加しますか?」とユーザに尋ね,ユーザが追加すると判断した場合にのみ,追加してもよい。
【0069】
[上書きや複数の施設の指定に対する問合せ]
第2に,類似度が高い場合には,既存の追加認識語彙と同じ語彙で,新しい施設を指定するように変更するか,または複数の施設を指定するようにするかを尋ねてもよい。たとえば,名称データベースにおいて,すでに施設「スーパーフニット国分寺店」に追加認識語彙「スーパーフニット(ニイク)」が存在し(
図2Aの282),その状態からさらにユーザが,施設「スーパーフニット府中店」に対しても,語彙として「スーパーフニット」を追加する場合がある。この場合,ユーザに,音声ガイダンスにて,「スーパーフニットはすでに『スーパーフニット国分寺店』で使われています。『スーパーフニット府中店』を指定するように変更しますか。それとも,両方の施設を指定できるようにしますか」と問う。これにより,ユーザの選択に応じて,「スーパーフニット国分寺店」の追加認識語彙を削除し「スーパーフニット府中店」に「スーパーフニットニイク」を登録すること,または,「スーパーフニット国分寺店」の追加認識語彙を残したまま「スーパーフニット府中店」にも「スーパーフニットニイク」を登録すること,の動作を選ぶことができる。
【0070】
[追加語彙が他の施設の認識語彙としてもふさわしい場合の処理]
また,候補として現れた追加認識語彙が,他の施設の追加認識語彙としても使われる可能性がある場合がある。たとえば,
図9Aの910にある形態素組合せのうち,「フニット」は,ユーザが設定した「スーパーフニット府中店」だけでなく,「スーパーフニット国分寺店」にも含まれる形態素である。よって,形態素組合せ「フニット」は他の施設の音声認識語彙としてもふさわしい。
よって,このような他の施設にも含まれる形態素組合せに対しては,重要度を下げる操作を行う。これにより,ユーザには,ユーザが指定した施設をより特徴づける追加認識語彙を候補として提示することができ,使い勝手を向上することができる。
【0071】
[施設名形態素の重要度を調節し,ユーザが入力していない形態素の言いかえを作成]
一方で,施設の形態素に重要度を付与することにより,その施設名の特徴を表す度合いが極めて強い形態素には特別の配慮をすることができる。たとえば,ユーザは遊園地を選ぶために「ランド」とタッチパネルで入力し,得られた候補のなかから,結果として,「東西/でんでん/ランド」(「/」は形態素区切り)という施設名を選定したとする。この場合,第1の実施形態では,「ランド」を追加認識語彙として生成していた。しかし,「ランド」という語彙は遊園地の多くに含まれるため,「東西」「でんでん」といった他の形態素を追加認識語彙として使用したほうが,ユーザにとって分かりやすいと考えられる。その場合に,本実施形態では,「東西」「でんでん」に対して高い重要度を割り振ることを行えば,仮にユーザが入力した文字列にこれらの形態素が含まれなくとも,「東西」「でんでん」といった語彙を追加認識語彙の候補としてユーザに示すことができる。
【0072】
[形態素の品詞によるルール]
また,本実施例では,形態素のすべての組合せを候補として考えた。しかし,この方法では,「フニット/テン」といった不自然な語彙も生成されている。これを解消するためには,形態素組合せを生成する際に,「語尾は,その直前の単語が存在しない場合には,存在を消す」といった,品詞に基づいたルールを設けて,生成を抑止してもよい。
【0073】
[形態素の品詞の組合せによるルール]
また,形態素の組合せを考える場合,その品詞の内訳により,重要度を左右することもできる。ここでは,
図2Aの名称データベースにおいて,ユーザが「マコマ」と入力し,施設「札幌真駒内ビーチ」を選択したとする。
この施設の各形態素の重要度は,
図7Bの表700のように定義されていたとする。さらに,ステップ810の処理により,ユーザが入力した形態素は「マコマナイ」と特定される。750のとおり,形態素「マコマナイ」の形態素重要度に0.5を加算する。
【0074】
ステップ820では,これら形態素を組み合わせて,それぞれの形態素組合せに対する組合せ重要度を計算する。この形態素の組合せを考えた場合,たとえば「サッポロ/マコマナイ」は,両方ともに地名であり,この施設を特定するための語彙としてはユーザにとって不自然であると考えられる。一方,「マコマナイ/ビーチ」は,地名と職種の両方を含むため,ユーザにとっては分かりやすい語彙であると考えられる。よって,これらの分かりやすさを考慮するために,異なる品詞の組合せに対しては,形態素組合せの重要度を加算する操作を本実施例で行う。
【0075】
この計算の方法を
図9Cに示す。
図9Cは,第2の実施形態における形態素の組合せに計算される重要度を示す表1800の例である。まず,それぞれの形態素組合せ1810に対して,補正前の形態素組合せの重要度を計算する。これは,前述の方法と同様に,形態素重要度をすべて加算し,これを形態素数で割る。この結果,1820のように計算される。つぎに,それぞれの形態素組合せ1810が,すべて異なる品詞であるか否かを判定する。その結果は1830となる。たとえば,「サッポロ/マコマナイ/ビーチ」は,地名を2つ含むため,判定結果はNOとなる。また,「サッポロ/ビーチ」は,地名と職種の組合せであり,形態素がすべて異なるため,YESとなる。1個の形態素のものは,判断しない。この結果,YESとなったものに対して,組合せ重要度に0.2加算するものとする。その結果,補正後の組合せ重要度1840が算出される。この補正後の組合せ重要度が高いものから順にユーザに提示するものとなる。
これにより,異なる品詞の組合せをユーザに優先して提示することにより,ユーザにとって分かりやすい音声認識語彙を提供することができる。
【0076】
[形態素と他の名称データベースの語彙との組合せ]
また,形態素の組合せを考える場合,名称のなかの形態素に,その他の名称データベースに含まれる情報との組合せをとっても良い。
ここでも,
図2Aの名称データベース170において,ユーザが「マコマ」と入力し,施設「札幌真駒内ビーチ」を選択した場合において説明する。
この実施例は,
図8の処理手順において,処理ステップ820を,
図10Aの処理ステップ1910に代替することにより実現する。
図8のステップ820では,名称に含まれる形態素の組合せを生成していたのに対し,
図10Aのステップ1910では,名称に含まれる形態素と,他の名称データベースに含まれる情報との組合せを生成し,それぞれの新たな形態素組合せとみなし,組合せ重要度を計算する。
【0077】
具体的な処理方法を,
図10Bの表1970により説明する。まず,名称の形態素を組み合わせて,それぞれの形態素組合せ1920に対する,補正前の形態素組合せの重要度1930を計算する。これは,前述の方法と同様に,形態素重要度をすべて加算し,これを形態素数で割る。つぎに,それぞれの形態素組合せ1920に対し,名称データベースの他の情報から補完を行う。ここでは,例として,名称データベースのサブジャンルである「海水浴場(カイスイヨクジョウ)」,住所に含まれる「南区(ミナミク)」によって補完することを考える。
【0078】
元の形態素の組合せによっては,たとえば「サッポロ」だけのように,地名だけのものがある。こういったものについては,サブジャンルである「カイスイヨクジョウ」と組み合わせて,「サッポロノカイスイヨクジョウ」という語彙を追加認識語彙としたほうが,ユーザにとっても施設を絞り込むことに適すると考えられる。一方,「ビーチ」のような職種だけの形態素については,住所を利用し「ミナミクノビーチ」という追加認識語彙を使用するほうが,ユーザにとっても施設を絞り込むことに適すると考えられる。よって,ここでは,もとの形態素組合せ1920において,形態素に地名が含まれない場合には,住所を利用し「ミナミクノ」を先頭に追加し,形態素に職種が含まれない場合には,サブジャンルを利用し「ノカイスイヨクジョウ」を語尾に追加したものを新たな形態素組合せとして作成する。また,これらいずれにおいても,組合せ重要度を0.5加算する。住所が追加される場合の内訳を1940に示し,サブジャンルが追加される場合を1950に示す。最終的に,形態素組合せ重要度は1960のようになり,これら形態素組合せを音声認識語彙の候補としてユーザに提示することができる。これにより,住所やジャンルといった他の情報と組み合わせた音声認識語彙をユーザに提供することができる。
なお,本実施例では,名称データベースの名称以外の情報で補完した場合には,その元となった形態素組合せ1920はユーザに提示しない説明を行ったが,もとの形態素組合せ1920と組合せ重要度1960の両方の内訳すべてをユーザへ提示してもよい。また,本実施例では,形態素の品詞の内訳により,他の情報から追加する方法を変更することを説明したが,他の変更方法でもよく,また変更しなくてもよい。
【0079】
[形態素重要度の自動算出]
また,本実施例では,形態素重要度を最初から名称データベースに付与されている想定を行った。重要度を決定するためには,開発者により決定する方法や,ユーザ調査に基づく方法が考えられる。一方,文書検索で使用されるtf・idfといった単語の出現回数に基づく算出方法により,重要度を推定してもよい。
また,生成された語彙は音声認識のために使用される。そのため,音声認識での認識誤りの起きやすさを考慮し,認識誤りの原因となりやすい短い語彙,似ている音素列がすでに存在する語彙などは,重要度を低くするということを行ってもよい。
【実施例3】
【0080】
本発明の第3の実施形態になる情報検索装置を,
図11〜
図13Bを参照しながら説明する。
まず,この実施形態の情報検索装置100の構成例を
図11に示す。この実施形態では,第1の実施形態に加えて,認識語彙作成部190が作成した追加認識語彙が,どのような種類であるかを判定する語彙種別判定部1110を設けることを特徴とする。認識語彙作成部190は,語彙種別判定部110で判定された追加認識語彙の種別に基づいて,名称データベース170に認識語彙作成部190が作成した追加認識語彙を登録する動作の方法を変更し,認識語彙作成部190が作成した追加認識語彙を言語モデル記憶部150に追加する方法を変更する。さらに,認識語彙作成部190は,語彙種別判定部1110の判定結果にしたがい,名称データベース170,言語モデル記憶部150に対する追加認識語彙の追加方法を変更する。名称データベース170,言語モデル記憶部150,辞書300等の構成は,第1の実施形態で説明したID番号を用いない方式とするが,第1の実施形態の変形例で説明したID番号を用いる方式で実現しても良い。
【0081】
[第3の実施形態の前提]
例として,第1の実施形態と同様,ユーザは「フニツ」と入力し,施設名候補の中から,「スーパーフニット府中店」を選択したとする。ここまで動作は,第1の実施例と同一であるため,省略する。
【0082】
[ジャンルを表す音声認識語彙]
図12に,認識語彙作成部190と語彙種別判定部1110の処理の流れを示す。
ステップ1210では,ユーザが入力した文字列「フニツ」と,決定した施設名「スーパーフニット府中店」の読みとの形態素単位での比較を行う。
その結果,ユーザ入力文字列「フニツ」は,読み「スーパー/フニット/フチュウ/テン」のなかの形態素「フニット」の一部分であることが分かる。
ステップ1220では,ユーザ入力文字列を形態素に基づき編集する。ここでは,ユーザが入力した文字列「フニツ」を,該当する形態素まで延長し,「フニット」に編集する。これを追加認識語彙として使用する。
【0083】
ステップ1230では,ステップ1220で作られた追加認識語彙が,どのような種別であるかを判定する。ここでは,追加認識語彙が,通常の施設名であるか,施設のジャンルを表す語彙であるかを判定する。
この判定の方法として,たとえば,
図13Aに示すような語彙判定テーブル1300を参照し,追加認識語彙がテーブルに存在するか否かを判定する。語彙判定テーブルには,サブジャンルに固有に付与された番号であるサブジャンルID番号1305と,サブジャンル1310と,各サブジャンルに対応する語彙1320を保存する。ここでは,施設ジャンル語彙1320には,施設のある特定のサブジャンルを示す語彙を登録する。具体的には,チェーン店名や,支店を多く持つ企業の名称などである。また,このサブジャンルは,名称データベース170に記憶されている属性であるサブジャンル235と対応するものとする。たとえば,サブジャンル「スーパーフニット」は,全国に複数の店舗を持つスーパーマーケットのチェーンであり,その呼称として,「フニット」「スーパーフニット」という語彙が広く人に知れ渡っているとする。そのため,語彙1320には,これらの語彙が登録されている。
処理ステップ1230における,
図13Aに示した語彙判定テーブルを使用した判定の方法を説明する。まず,決定した施設名「スーパーフニット府中店」のサブジャンル235は,名称データベース170を参照することにより,「スーパーフニット」であることが分かる。そこで,語彙判定テーブルから,サブジャンル1310が「スーパーフニット」となるレコードを検索する。この結果,対応する語彙1320は,「スーパーフニット」,「フニット」の2つであることが分かる。
【0084】
つぎに,ステップ1220で作られた追加認識語彙が,対応する語彙1320のいずれかと一致するかを調べる。その結果,追加認識語彙「フニット」は,語彙1320に含まれる「フニット」と一致する。よって,追加認識語彙は施設ジャンルであると判定される。
ステップ1240では,ステップ1230の判定結果により,分岐を行う。追加認識語彙が通常の施設名であった場合には,ステップ1250へ移る。一方,追加認識語彙が施設ジャンルであった場合には,ステップ1245に移る。すなわち,追加認識語彙の種別によって,名称データベース,言語モデルへの追加方法を変更することを,この分岐によって実現する。
ここでは,ステップ1230での判定結果は施設ジャンルであったため,ステップ1245に移って説明する。
ステップ1245からステップ1285までの処理は,追加認識語彙が何らかの施設のジャンルを表す語彙であったため,施設ジャンルを指定する音声認識語彙としてユーザにとって使いやすい方法で登録を行う。ここでは,施設ジャンルの検索の際によく使われる周辺施設検索として使用できるようにする。
ステップ1245では,追加認識語彙を編集する。ここでは,通常の施設検索に使用するように,「ニイク」を語尾に追加し,「フニットニイク」にする。
ステップ1275では,ステップ1245とは異なる方法で追加認識語彙を編集する。ここでは,周辺施設検索で使われるように,「近くの」を先頭に付属させ,「チカクノフニット」にする。
【0085】
以上,ステップ1245とステップ1275において,異なる追加認識語彙が作られた。以降の説明ために,ステップ1245で作られた通常施設検索のための追加認識語彙を語彙Aと呼び,ステップ1275で作られた周辺施設検索のための追加認識語彙を語彙Bと呼ぶこととする。
ステップ1276では,作られた追加認識語彙のうちいずれを使うかをユーザに問い合わせる。問合せの方法としては,たとえば,以下のような音声応答を出力部から再生する。
「音声コマンドの設定を行います。
『フニットニイク』で『スーパーフニット府中店』を目的地に設定する場合には1を,
『チカクノフニット』で,周辺のスーパーフニットを検索する場合には2を,
いずれも行わない場合には3を押してください。」
ステップ1277では,ステップ1276のユーザへの問合せに対するユーザの返答を受つけ,その動作に応じて,処理の分岐を行う。ここでは,ステップ1276の問い合わせに対する返答をタッチパネルのボタン押しにより受け付けるものとする。
ユーザが1を押した場合には,語彙Aが選ばれたため,処理ステップ1260へ分岐する。
ユーザが2を押した場合には,語彙Bが選ばれたため,処理ステップ1280へ分岐する。
ユーザが3を押した場合には,いずれの語彙も選ばなかったため,処理を終了する。
【0086】
以降の処理に関して,まず,語彙Bがえらばれた場合について説明する。
ステップ1280では,語彙Bが選ばれた場合の処理を行う。ここでは,ユーザが選定した「スーパーフニット府中店」と同一のチェーンである施設をサブジャンル235から判定し,すべての同一チェーンの施設に対して追加認識語彙属性に「チカクノフニット」を追加する。その結果,
図2Aの280で示すように,「スーパーフニット府中店」,「スーパーフニット国分寺店」の2つについて追加認識語彙「チカクノフニット」が追加される。また,これと合わせて,追加認識語彙「チカクノフニット」は周辺施設検索のための語彙であるフラグを合わせて登録してもよい。
ステップ1285では,追加認識語彙「チカクノフニット」が音声認識可能となるように,言語モデル記憶部に記憶する(
図3Aの350,
図3Bの355)。また,これと合わせて,「チカクノフニット」が追加認識語彙であり,かつ周辺施設検索のための語彙であるフラグを合わせて登録して管理してもよい。
これらステップ1280,ステップ1285の動作の後,ユーザが「近くのフニット」と音声入力した場合の動作を説明する。ユーザの音声は,音声入力部120でデジタル信号に変換された後,音声認識部130にて文字列に変換され,「チカクノフニット」が出力されたとする。この結果は,検索部160に入力される。
【0087】
検索部160では,音声認識結果と名称データベース170を比較する。その結果,「チカクノフニット」を追加認識語彙として持つ「スーパーフニット府中店」,「スーパーフニット国分寺店」が候補として挙がる。
【0088】
また,これらは周辺施設検索のための語彙であるため,カーナビゲーションの現在位置と比較し,候補として挙がった施設が周辺施設としてふさわしいほどの距離であるかを判定する。その結果,周辺施設と判定された結果が,出力部に送られ,カーナビゲーションの所定の動作であるところの候補選択画面,地図表示,経路探索といった動作を行う。
【0089】
[通常の施設名を表す音声認識語彙として選択された場合]
つぎに,処理ステップ1276において,ユーザが1を押下し,語彙Aが選ばれた場合について説明する。この場合,処理はステップ1260へ移る。
ステップ1260,ステップ1270の処理は,追加認識語彙が通常の施設名のであった場合の処理である。この処理の方法は,第1の実施形態とほとんど同一である。
ステップ1260では,作成した追加認識語彙を名称データベースに付与する。ここでは,第1の実施形態と同様,ユーザが選定した「スーパーフニット府中店」の追加認識語彙属性に語彙Aの「フニットニイク」を付与する。その結果,260に示すように付加される。
ステップ1270では,追加認識語彙「フニットニイク」が認識可能となるように,言語モデル記憶部に記憶する。また,これと合わせて,「フニットニイク」が追加認識語彙であり,かつ通常の施設指定のための語彙であるフラグを合わせて登録して管理してもよい。
これらの動作の後,ユーザが「フニットに行く」と音声入力した場合の動作を説明する。ユーザの音声は,音声入力部120でデジタル信号に変換された後,音声認識部130にて文字列に変換され,文字列「フニットニイク」が出力されたとする。この結果は,検索部160に入力される。
【0090】
検索部160では,音声認識結果と名称データベース170を比較する。その結果,「フニットニイク」を追加認識語彙として持つ「スーパーフニット府中店」が得られる。
その後,出力部からは,「スーパーフニット府中店に目的地を設定します」という音声応答を出し,かつ地図表示,経路探索といったカーナビゲーションの所定の動作を行う。
【0091】
[通常の施設名を表す音声認識語彙のみが生成された場合]
本実施形態の別の動作を説明する。ここでは,ユーザがタッチパネル400から「フニツトフ」と入力し,施設名候補の中から,「スーパーフニット府中店」を選択したとする。ここまで動作は,第1の実施例と同一であるため,説明を省略する。
【0092】
図12に,認識語彙作成部190と語彙種別判定部1110の動作の流れを示す。
ステップ1210では,ユーザが入力した文字列「フニツトフ」と,決定した施設名「スーパーフニット府中店」との形態素単位での比較を行う。
その結果,ユーザ入力文字列「フニツトフ」は,「スーパー/フニット/フチュウ/テン」のなかで,「フニット」と「フチュウ」に内包されることが分かる。
ステップ1220では,ユーザ入力文字列を形態素に基づき編集する。ここでは,ユーザが入力した文字列「フニツトフ」を,該当する形態素まで延長し,「フニットフチュウ」に編集する。これを追加認識語彙として使用する。
ステップ1230では,ステップ1220で作られた追加認識語彙が,どのような種別であるかを判定する。ここでは,音声認識語彙が,通常の施設名であるか,施設のジャンルを表す語彙であるかを判定する。
この判定では,すでに説明したように,
図13Aに示す語彙判定テーブルを使用して判定を行う。具体的には,まず,決定した施設「スーパーフニット府中店」のサブジャンル235が「スーパーフニット」であることから,サブジャンル1310から「スーパーフニット」を探す。つぎに,作成された追加認識語彙を,「スーパーフニット」に対応する語彙1320にいずれかと一致するかを調べる。その結果,「フニットフチュウ」は語彙1320のいずれとも一致しない。よって,追加認識語彙は通常の施設名の一部であると判定される。
【0093】
ステップ1240では,ステップ1230の判定結果により,分岐を行う。ここでは,追加認識語彙が通常の施設名であったので,ステップ1250へ移る。
ステップ1250からステップ1270までの処理は,音声認識語彙が通常の施設名のであった場合の処理である。この処理の方法は,第1の実施形態とほとんど同一であるが,ここでは,ユーザがその語彙を使用するか否かを選択する処理を加えている。
ステップ1250では,追加認識語彙を編集する。ここでは,通常の施設検索に使用するように,「ニイク」を語尾に追加し,「フニットフチュウニイク」にする。また,説明のため,この語彙を語彙Aと呼ぶ。
ステップ1252では,作られた追加認識語彙を使うか否かをユーザに問い合わせる。問合せの方法としては,たとえば,以下のような音声応答を出力部から再生する。
「音声コマンドの設定を行います。『フニットフチュウニイク』で『スーパーフニット府中店』を目的地に設定するようにしますか? 設定する場合は1を,設定しない場合は2を押してください。」
ステップ1254では,ステップ1252のユーザへの問合せに対するユーザの返答を受けつけ,その動作に応じて,処理の分岐を行う。ここでは,ステップ1252の問い合わせに対する返答をタッチパネルのボタン押しにより受け付けるものとする。
ユーザが1を押した場合には,語彙Aが選ばれたため,処理ステップ1260へ分岐する。
ユーザが2を押した場合には,語彙が選ばれなかったため,処理を終了する。ステップ1260,ステップ1270では,作成した追加認識語彙(語彙A)を名称データベースの追加認識語彙属性250に追加する。この方法はすでに説明したため,詳細な説明は省略する。
結果として,ユーザが「フニット府中に行く」と音声入力すると,検索部160は「スーパーフニット府中店」を候補として出力し,地図表示,経路探索といったカーナビゲーションの所定の動作を行う。
以上,本実施形態により,ユーザが入力した語彙の性質により,追加認識語彙の使用方法を変更できる。これにより,ユーザの使い勝手を向上することができる。
【0094】
本実施形態では,施設のジャンルであるかを判定し,その結果を利用した周辺施設検索の動作を行う例で説明した。なお,カーナビゲーションの初期設定時点において,すべてのジャンルを認識可能とすることも考えられる。しかし,チェーンなどの施設ジャンル名は膨大にあるため,認識対象とする語彙が増加し,認識率が下がる副作用がある。そのため,本実施形態のように,ユーザが実際に検索のために入力した文字列を使うことで,認識語彙としてつかう語彙を絞ることができ,認識率の向上,使い勝手の向上につながる。
【0095】
本実施形態では,追加認識語彙が,施設のジャンルであるか,それ以外の通常の名称かだけの分岐を行ったが,それ以外の複数の分岐を行っても良い。
また,本実施形態では,
図13Aのようなテーブルを参照して,語彙が存在するか否かにより判定した。しかし,別の自動で算出できる情報を用いてもよい。たとえば,形態素の各施設名に含まれる頻度にもとづく方法などにより,語彙の種別を判定してもよい。
また,ユーザに追加認識語彙の使い方を確認する処理を設けることにより,よりユーザの希望にかなった音声認識機能を提供することができる。
【0096】
[ユーザ入力文字列の品詞に基づく判定]
また,ユーザがタッチパネルから入力した文字列と形態素を比較した結果,ユーザ入力文字列がどの品詞であったかを判定し,それにより動作を変えても良い。たとえば,ユーザが「フチユ」と入力し,その結果,形態素が「フチュウ」であり,その品詞が地名であったものを選定したとする。これにより,ユーザにとって「フチュウ」という語彙は地名として馴染み深いことが推測される。この結果を使い,たとえば,カーナビゲーションの住所検索において,「フチュウ」という語彙に認識できるようにする,または,他の語彙とくらべて認識のされやすさを上げるといった動作を行っても良い。
【0097】
[複数の施設を指す言語モデルの対応IDの付与]
なお,本実施例では,検索方法として,音声認識結果として得られる文字列を検索キーとして,名称データベースの読み,追加認識語彙を検索することを前提として説明した。この検索方法としては,実施例1に説明したときと同様,全件検索による方法,インディクスを用いた方法が適用できる。
また,実施例1と同様,言語モデル記憶部の辞書300にあらかじめ対応する施設のID番号を追加しておき,このID番号を参照して該当する施設を候補として生成する方法も適用可能である。しかし,チェーン店名を検索する場合においては,1つの認識結果に対して複数の施設が対応することがあるため,言語モデルへのID番号の記憶方法を実施例1と変更する必要がある。ここでは,その方法について説明する。
1つめに挙げられる方法は,言語モデル記憶部に追加認識語彙を登録する際に,対応ID番号330に複数のID番号を登録する方法がある。具体的には,実施例で説明したように語彙「チカクノフニット」によって,サブジャンル「スーパーフニット」に該当する施設を検索させる場合には,言語モデル記憶部の辞書300において,
図3Aの単語「チカクノフニット」の対応ID番号330として,「0200,0201」と複数登録すればよい。しかし,この方法では,
図2Aに示した名称データベースのように,サブジャンル「スーパーフニット」に属する施設が2件と少ない場合には適用できるが,もし数百件のように多数存在する場合には,言語モデル記憶部に保存するID番号が多くなってしまう問題がある。
【0098】
2つめの方法としては,言語モデルに記憶する対応ID番号として,各サブジャンルに固有に付与されたサブジャンルID番号を登録しておく方法がある。まず,サブジャンルID番号とそれに対応する施設のID番号の関係を,
図13Bに示すテーブル1302の形態によって記録しておく。また,言語モデル記憶部の辞書300では,
図3Cに示すように,単語「チカクノフニット」の対応ID番号「50001」を記録する。もし認識結果が「チカクノフニット」であれば,検索部は対応ID番号「50001」から,
図13Bのテーブル1302を参照し,対応する施設のID番号を読みとり,そのID番号を持つ施設を名称データベースから探し,候補として生成する。この方法では,
図13Bのようなテーブルを用意する必要がある。しかし,カーナビゲーションで一般に使われるジャンル指定による施設検索のために,ジャンルと実際の施設の対応関係は,インディクスとして用意されていることが多い。よって,そのインディクスを再利用すればよく,新たに作成する必要は無い。よって,言語モデル記憶部の容量を小さく抑えつつ,高速に検索することが可能となる。
【0099】
[追加認識語彙の言い換え語の追加]
また,本実施例では,ユーザが入力した文字列の長さを加工して,追加認識語彙として使用することを説明した。しかし,追加認識語彙として使用する語彙は,ユーザが入力した語彙と文字列単位で一致していなくとも,意味的に関連が深い言い換え語であってもよい。たとえば,「スーパーフニット府中店」に使われるサブジャンルの語「フニット」は,世間の人々にとってまったく別の呼称で呼ばれている場合もある。この別の呼称を言い換え語と表す。そのような場合には,追加認識語彙として,「フニット」を名称データベース,言語モデルに追加するだけでなく,言い換え語も合わせて,名称データベース,言語モデルに追加すれば,ユーザが言い換え語で発話した場合にもその施設を候補として生成することができる。
【実施例4】
【0100】
本発明の第4の実施形態になる情報検索装置について,
図1,
図14〜
図19を参照しながら説明する。名称データベース170,言語モデル記憶部150,辞書300等の構成は,第1の実施形態の変形例で説明したID番号を用いる方式とするが,ID番号を用いない方式で実現しても良い。
本実施形態では,名称データベース170において,ユーザが検索可能である属性が複数ある場合について説明する。また,検索時に複数のクエリを入力した場合についても説明をする。
この実施形態では,ナビゲーションシステムの楽曲再生機能を想定し,そのための楽曲検索を行う使用方法にて説明を行うが、用途としては、ナビゲーションシステムとは独立したオーディオシステムにおいて、楽曲検索、再生を行うものであっても良い。
【0101】
図14に,楽曲検索における名称データベース170の例を示す。名称データベース170には,カーナビゲーションで再生できる楽曲の一覧を格納している。名称データベース170の1つのレコードに,1つの楽曲の情報が格納されている。また,楽曲の属性として,各楽曲に固有に付与された番号であるID番号1405,アーティスト名1410,アルバム名1420,楽曲名1430,作曲者名1440,楽曲の解説などを保存する説明1450を使用する。このほかにも,作詞者名,楽曲のジャンルなどをもっていても良い。また,それぞれのレコードは,全ての属性に対して値を持っておく必要はなく,一部の属性にのみ値があってもよい。
【0102】
また,
図14に示した名称データベース170では,一部の値にしか付与していないが,それぞれの値には,読み,形態素区切り,が付与されているものとする。また,
図14には示さないが,形態素の品詞も定義されているものとする。
これらの楽曲を選ぶ際に,音声認識を利用することが可能である。しかし,楽曲にはたくさんの情報があり,これをすべて音声認識語彙として使用すると,認識率の低下や処理時間の増加につながる可能性がある。そこで,前提として,楽曲検索のときの言語モデル150には,名称データベースのなかでもアルバム名1420に含まれる語彙だけを格納するものとし,ユーザの音声入力としては,アルバム名による指定だけを許容するものとする。
図17に,言語モデル150に登録されている辞書300の内訳を示す。単語ラベル1710と音素列1720は,アルバム名についてのみ用意する。また,アルバム名の正式名のほか,よく発話される部分文字列(例.「タナバタ」)も登録する。これにより,たとえばユーザが「タナバタ」とだけ発話した場合でも,アルバム「七夕コンサート」を選ぶことができる。また,各単語には,対応ID番号1730を付与しておく。このIDとしては,
図14の名称データベースで楽曲に付与されているID番号を格納しておく。一般に1つのアルバムには複数の曲が収録されていることから,記憶する対応ID番号も複数となる。しかし,アルバムごとに固有のID番号を付与しておき,アルバムに付与されたID番号を記憶する方式でもよい。
また,文法は省略するが,
図3Bの連結規則360と同様の形態で,
図17の辞書300のそれぞれの単語の,単独での発話が受理できる有限状態文法を用いることとする。
【0103】
この名称データベース170において,第1の実施形態と同様,ユーザのタッチパネル入力を操作入力部110で受け付け,その結果を用いて名称データベースを検索する。
たとえば,ユーザがタッチパネルにより「ニコラ」と入力したとする。
この文字列は,検索部160に送られる。検索部160では,名称データベース170のうち,アーティスト名1410,アルバム名1420,楽曲名1430,作曲者名1440,説明1450,追加認識語彙1460のなかで検索を行う。この結果,いずれかの属性の値に「ニコラ」を含む楽曲である3曲が候補として生成される。
【0104】
この検索の結果は出力部180に送られ,
図15に示した画面400にてユーザに3曲が候補として表示される。表示エリア1510には,ユーザが入力した文字列が表示される。候補表示エリア1520には,候補となる曲の属性と値が表示される。
【0105】
これを受けて,ユーザは自分が聴きたい楽曲を選ぶ。たとえば,ここでユーザは楽曲名「ニコラスの手紙」を選んだとし,タッチパネルを押下したとする。この押下は,操作入力部110を経て受理される。これにより,楽曲を再生するといったカーナビゲーションでのオーディオとしての所定の動作が実行される。
【0106】
つぎに,この一連の操作のあとに,認識語彙作成部190,語彙種別判定部1110が行う動作を説明する。
図16に処理手順を示す。
ステップ1610では,ユーザが入力した文字列「ニコラ」と,決定した楽曲にてユーザ入力していた文字列を含んでいた属性の値との形態素単位で比較を行う。ここでは,ユーザは「ニコラ」と入力し,その結果,楽曲名とユーザ入力が一致した楽曲「ニコラスの手紙」を選んだ。よって,この両者を形態素単位で比較を行う。その結果,ユーザ入力文字列「ニコラ」は,読み「ニコラス/ノ/テガミ」のなかの形態素「ニコラス」の一部分であることが分かる。
ステップ1615では,ユーザ入力文字列を形態素に基づき編集する。ここでは,ユーザが入力した文字列「ニコラ」を,該当する形態素まで延長し,「ニコラス」に編集する。これを追加認識語彙とする。
ステップ1620では,ステップ1615で作られた追加認識語彙の判定を行う。ここでは判定方法として,追加認識語彙が含まれていた属性を利用して,その属性を判定結果とする。よって,判定結果は,楽曲名となる。
【0107】
なお,この方法によらなくとも,他の方法により属性を判定することも可能である。たとえば,名称データベースの各属性に含まれる形態素の頻度情報を利用し,絶対頻度または相対頻度が高い形態素の一覧を作成しておく。つぎに,追加認識語彙がこの一覧のうちどの属性に入っていたかを調べ,その結果を判定結果としてもよい。
【0108】
ステップ1630では,ステップ1620の判定結果にしたがい,分岐を行う。判定結果は楽曲名であったので,ステップ1635へと移る。
ステップ1635では,追加認識語彙を編集する。ここでは,楽曲名を選択することに適するように,「ヲキク」を最後に追加し,「ニコラスヲキク」とする。なお,この追加方法は,他の方法でもよい。たとえば,楽曲名の先頭に「ニコラス」がつく場合には,「ニコラスナントカヲキク」とし,楽曲名の末尾に「ニコラス」がつく場合には,「ナントカニコラスヲキク」というように,追加認識語彙がレコードの値の文字列のなかでどの位置に現れたかを使用してもよい。
ステップ1640では,名称データベースのうち,ユーザが選択した「ニコラスの手紙」の追加認識語彙属性1460に「ニコラスヲキク」を追加する。この追加の方法を,名称データベース170の1470に示す。
ステップ1645では,追加認識語彙「ニコラスヲキク」が認識可能となるように,言語モデル記憶部に記憶する。辞書300における追加の様子を
図17の1740に示す。また,対応ID番号1730には,対応する楽曲「ニコラスの手紙」の名称データベースでのID番号を記録する。文法での追加については,
図3Bでの連結規則の追加と同様であり,既存の文法パスに並列に登録する。
【0109】
ステップ1670では,作成された追加認識語彙と,その属性と,実際に選択された値が何であったかの対応を,情報検索装置100の記憶部に設けられた追加認識語彙記憶部に保存する。
図18には,情報検索装置100の追加認識語彙記憶部に実際に保存されるテーブル2000の例を示す。この処理においては,テーブル2000の2030で示すとおり,属性2010が「楽曲名」に対応する追加認識語彙2020に,ステップ1615で作成された語彙「ニコラス」を追加する。また,これと合わせて,追加認識語彙「ニコラス」を含んでいた値である楽曲名「ニコラスの手紙」も対応づけて保存する。
図18のテーブル2000では,追加認識語彙と値の関係を(追加認識語彙):(値)という書式で表している。
【0110】
これら一連の動作の後,ユーザが「ニコラスを聞く」と音声入力した場合の動作を説明する。ユーザの音声は,音声入力部120でデジタル信号に変換された後,音声認識部130にて文字列に変換され,「ニコラスヲキク」が出力されたとする。この結果は,検索部160に入力される。
【0111】
検索部160では,音声認識結果と名称データベース170を比較する。その結果,「ニコラスヲキク」を追加認識語彙として持つ楽曲「ニコラスの手紙」が候補として挙がる。
また,検索部160が楽曲を選択する方法としては,追加認識単語「ニコラスヲキク」に付与された対応ID番号「0004」を参照し,名称データベースにおいてID番号が一致する楽曲「ニコラスの手紙」を選択する方法でもよい。
その後,この結果は出力部に送られ,カーナビゲーションのオーディオの再生といった動作を行う。
【0112】
一方,ユーザが文字列「ニコラ」を入力し,最終的にアーティスト名「ニコラス」のいずれかの曲を選んだ場合について説明する。
この場合,ステップ1610,ステップ1615では,さきほどと同じ動作を行い,追加認識語彙「ニコラス」を抽出する。
【0113】
ステップ1620では,ステップ1615で作られた追加認識語彙の属性を判定する。判定結果として,追加認識語彙が含まれていた値に対応する属性を出力する。よって,判定結果は,アーティスト名となる。
ステップ1630では,ステップ1620の判定結果にしたがい,分岐を行う。判定結果はアーティスト名であったので,ステップ1650へと移る。
ステップ1650では,追加認識語彙を編集する。ここでは,アーティストの選択に適するように,「ノキョクヲキク」を最後に追加し,「ニコラスノキョクヲキク」とする。 ステップ1655では,名称データベース170のうち,アーティスト名が「ニコラス」である曲のすべてに対して,追加認識語彙属性1460に,追加認識語彙「ニコラスノキョクヲキク」を追加する。この追加の方法を,名称データベース170の1480に示す。
ステップ1660では,追加認識語彙「ニコラスノキョクヲキク」が認識可能となるように,言語モデル記憶部に記憶する。辞書300に追加される様子を
図17の1750に示す。このとき,対応ID番号1730には,アーティストが「ニコラス」である曲の名称データベースにおけるID番号を記録する。
【0114】
ステップ1670では,作成された追加認識語彙と,追加認識語彙を含んでいた属性と,追加認識語彙を含んでいた値との対応を,追加認識語彙記憶部に保存する。この処理においては,
図18のテーブル2000に2040で示すとおり,属性2010が「アーティスト名」に対応する追加認識語彙2020に,ステップ1615で作成された追加認識語彙「ニコラス」と,検索対象の値となる「ニコラス」とを対応付けて追加する。
【0115】
これら一連の動作の後,ユーザが「ニコラスの曲を聞く」と音声入力した場合の動作を説明する。ユーザの音声は,音声入力部120でデジタル信号に変換された後,音声認識部130にて文字列に変換され,「ニコラスノキョクヲキク」が出力されたとする。この結果は,検索部160に入力される。
【0116】
検索部160では,音声認識結果と名称データベース170を比較する。その結果,「ニコラスノキョクヲキク」を追加認識語彙として持つ2つの楽曲が候補として挙がる。
また,検索部160が楽曲を選択する方法としては,音声認識結果「ニコラスノキョクヲキク」に付与された対応ID番号「0001,0002」を参照し,名称データベース170においてID番号が一致する2つの楽曲を選択する方法でもよい。
その後,この結果は出力部に送られる。そして,ユーザ選択,楽曲の再生といった動作を行う。
【0117】
また,他の属性であっても同様の処理が可能である。ステップ1661,ステップ1662,ステップ1663には,ステップ1630での属性の判定結果が作曲者名であったときの音声認識語彙の追加について記載する。
たとえば,ユーザが作曲者名の一部「ヒタ」と入力し,最終的に作曲者名「日立太郎」のいずれかの曲を選んだ場合について説明する。
この場合,ステップ1610,ステップ1615では,さきほどと同じ動作を行い,追加認識語彙「ヒタチ」を抽出する。
【0118】
ステップ1620では,ステップ1615で作られた追加認識語彙の属性の判定を行う。その結果,判定結果は,作曲者となる。
ステップ1630では,ステップ1620の判定結果にしたがって分岐し,作曲者名の処理であるステップ1661へ移る。
ステップ1661では,追加認識語彙を編集する。ここでは,作曲者名での検索に適するように,「サッキョクノキョクヲキク」を最後に追加し,「ヒタチサッキョクノキョクヲキク」とする。
ステップ1662では,名称データベースのうち,作曲者名が「日立太郎」である曲のすべてに対して,名称データベース170の追加認識語彙1460に,作成された語彙「ヒタチサッキョクノキョクヲキク」を追加する(図示省略)。
ステップ1663では,追加識語彙「ヒタチサッキョクノキョクヲキク」が認識可能となるように,言語モデル記憶部に記憶する。このとき,対応ID番号1730には,作曲者名が「日立太郎」である曲の名称データベースにおけるID番号を記録する。
ステップ1670では,作成された追加認識語彙と,追加認識語彙を含んでいた属性と,追加認識語彙を含んでいた値との対応を,追加認識語彙記憶部に保存する。この処理においては,
図18のテーブル2000に2050で示すとおり,属性2010が「作曲者名」に対応する追加認識語彙2020に,ステップ1615で作成された追加認識語彙「ヒタチ」と値である「日立太郎」の組を追加する。
【0119】
これら一連の動作の後,ユーザが「日立作曲の曲を聞く」と音声入力すれば,作曲者名「日立太郎」の曲を選択することができる。
以上の実施により,ユーザが検索のために入力した文字列が実際にはどのような属性の情報であったかを考慮しつつ音声認識語彙を作成できるため,ユーザの知識にマッチした,使いやすい音声認識語彙を提供することができる。
【0120】
[複数の追加認識語彙を使った検索]
つぎに,ユーザが使った履歴のなかで蓄積された追加音声認識語彙を組み合わせることで,より詳細な検索を行う方法について説明する。
【0121】
第4の実施形態で説明した3つのユーザ入力が連続して行われた場合を想定する。
すなわち,
(1) ユーザがタッチパネルより「ニコラ」と入力し,楽曲名が「ニコラスの手紙」である曲を選択。
(2) ユーザがタッチパネルより「ニコラ」を入力し,アーティスト名が「ニコラス」であるいずれかの曲を選択。
(3) ユーザがタッチパネルより「ヒタ」と入力し,作曲者名が「日立太郎」であるいずれかの曲を選択。
という(1)〜(3)を連続して行った場合を想定する。
【0122】
この場合,追加認識語彙記憶部でのデータは,
図18に示すように,「楽曲名」属性には追加認識語彙「ニコラス」(2030)が格納されており,「アーティスト名」属性には追加認識語彙「ニコラス」(2040)が格納されており,「作曲者名」属性には追加認識語彙「ヒタチ」(2050)が登録されている状態となる。
【0123】
つぎに,認識語彙作成部190が,追加認識語彙記憶部に保存されている追加認識語彙を参照し,複数の追加認識語彙を組み合わせて発話しても検索可能とするように,名称データベースの編集と言語モデル記憶部の編集を行う。
【0124】
このときの認識語彙作成部190の処理を
図19で説明する。
ステップ2110では,追加認識語彙記憶部に記憶されている追加認識語彙の組合せを作成する。この組合せを作る際のルールとしてはさまざまなものを採用することができるが,ここでは,以下の基準でとることとする。
・属性が異なる追加認識語彙を組み合わせる。
・楽曲名属性は組合せの生成からのぞく。
【0125】
この方法に従うと,組合せとして2040と2050の組合せが生成される。すなわち,(属性=アーティスト名,追加認識語彙=「ニコラス」,値=「ニコラス」)と(属性=作曲者名,追加認識語彙=「ヒタチ」,値=「日立太郎」)の組合せである。組合せ数としては1個となる。
【0126】
ステップ2115では,ステップ2110で作られた組合せで検索できるレコードが存在するかを調べ,1件も検索できない組合せを削除する。この場合,ステップ2110で作られた組合せ数は1個であり,かつ,アーティスト名が「ニコラス」で,作曲者名が「日立太郎」である楽曲が存在する(ID番号「0002」の楽曲)。よって,組合せは削除せず,ステップ2120へ移る。
ステップ2120では,ステップ2115の処理を経て残った組合せの数が1個以上あるかを判定する。この場合には,1個あるため,ステップ2130へ移る。もし,0個である場合には,処理を終了する。
【0127】
ステップ2130では,組合せを使って新しい認識語彙である組合せ認識語彙を作成する。この組合せ認識語彙の作成においては,組合せを構成する属性に応じたテンプレートを用意しておく。このテンプレートとしては,ユーザが発話することが自然である語順に基づいていくつか用意しておくものとする。例えば,テンプレートの例としては,以下のようなものを用意する。
(1) (作曲者名)サッキョクノ(アーティスト名)ノキョクヲキク
(2) (アーティスト名)ノ(楽曲ジャンル名)ヲキク
このテンプレートのいずれかに,組合せを構成する追加認識語彙を当てはめることで,組合せ認識語彙を作成する。ここでの組合せにある属性は,アーティスト名と作曲者名である。よって,(1)のテンプレートを使い,(作曲者名),(アーティスト名)のそれぞれに,先に作成されている追加認識語彙(それぞれ「ヒタチ」,「ニコラス」)を入れて,以下の組合せ認識語彙を作る。
「ヒタチサッキョクノニコラスノキョクヲキク」
ステップ2140では,ステップ2130で作られた組合せ認識語彙を,対応する名称データベースのレコードの追加認識語彙属性に追加する。具体的には,ID番号「0002」の曲に対応するため,
図14の名称データベースに示す1490のように追加を行う。この説明では,検索対象の楽曲が1個だけの場合で説明しているが,複数存在する場合には,それぞれの楽曲に対して追加を行う。
【0128】
ステップ2150では,組合せ認識語彙「ヒタチサッキョクノニコラスノキョクヲキク」が認識可能となるように,言語モデル記憶部に記憶する。このとき,対応ID番号1730には,検索対象となる楽曲のID番号「0002」を記録する。
【0129】
これら一連の動作の後,ユーザが「日立作曲のニコラスの曲を聞く」と音声入力すれば,作曲者名「日立太郎」でアーティスト名「ニコラス」の曲を選択することができる。
以上の実施により,ユーザが複数の条件で検索したい場合においても,ユーザの自然な言い回しによって検索を行うことが可能となる。
【0130】
[複数の属性への展開]
なお,第4の実施形態の処理ステップ1620での判定においては,上記ではユーザの入力文字列を含む1つの属性を判定結果としたが,これを複数の属性を用いてもよい。
たとえば,ユーザが文字列「ニコラ」と入力し,ユーザが候補から楽曲「ニコラスの手紙」を選択した場面を考える。この場合,上記の実施例では,楽曲「ニコラスの手紙」に対して追加認識語彙「ニコラスヲキク」を追加するという処理を行った。
しかし, ステップ1615で得られた音声認識語彙「ニコラス」は,楽曲名にも含まれるほか,アーティスト名にも多く含まれている。よって,「ニコラス」という語彙は楽曲名,アーティスト名に限らず,ユーザにとって分かりやすい語彙であると考えられる。または,選んだ楽曲が,楽曲名にも「ニコラス」を含み,かつアーティスト名も「ニコラス」であるといったように,入力文字列が1つのレコードの複数の属性に一致する場合もある。
【0131】
こういった場合には,楽曲名に限らず,アーティスト名の選択においても,「ニコラス」という語彙を使えたほうが使い勝手が良い。
このことを考慮した処理を説明する。まず,楽曲名属性に対する通常の処理ステップ1635, 1640, 1645を終えた後に,アーティスト属性に対する処理ステップ1650, 1655, 1660を行う。このうち,ステップ1655の処理は,
図16に記載の方法から変更する。すなわち,名称データベースのすべての楽曲からアーティスト名が「ニコラス」である楽曲を探し出し,それぞれの楽曲の追加認識語彙属性に「ニコラスノキョクヲキク」を付与する。
これにより,ユーザが「ニコラスを聞く」と発話すれば楽曲「ニコラスの手紙」を検索でき,また「ニコラスの曲を聞く」と発話すればアーティスト名が「ニコラス」である曲を検索できる。
【0132】
[ユーザの文字列入力における複数条件の利用]
また,本実施例では,最初にユーザがタッチパネルなどから入力するクエリは,1つである仮定で説明を行った。しかし,文字列入力においても複数のクエリを入力することでも実施ができる。たとえば,ユーザが「ベートー」と「ゲツ」という2つの文字列を入力し,両方の文字列を持つ楽曲を検索したとする(アンド検索)。この結果,作曲者が「ベートーベン」,楽曲名が「月光」である楽曲を選択したとする。このとき,「ベートーベン」を作曲者の選択するための音声認識語彙として使用し,「月光」を曲名の選択のための音声認識語彙として使用するという方法も可能となる。
【0133】
[複数端末構成]
また,本実施例は,単一の端末による実施を示した。しかし,これらが別の端末による実装でも良い。具体的には,楽曲名検索において,たとえば,パソコン上においてキーボードで入力し,楽曲を検索する使用方法が知られている。ここで検索のために入力した文字列と,最終的に選択された楽曲との対応を記録する。また,各楽曲のための追加認識語彙を,本明細書の実施形態にしたがって作成する。
【0134】
つぎに,パソコン上で検索した楽曲を,カーナビゲーションやポータブルオーディオ機器などの組み込み機器にて聞く場合を考える。このとき,楽曲のデータのほか,追加認識語彙も同時に情報に組み込み機器へ移す。これにより,組み込み機器においてユーザが楽曲を選択する場合,追加認識語彙を音声入力することにより指定することができる。
この実施形態は,キーボード入力が容易なパソコンではキーボード入力を行い,タッチパネルなどが小さくなってしまう組み込み機器においては音声で入力するという使い分けに寄与するものであり,使い勝手を向上する。
【0135】
本明細書では、本発明の実施形態を,カーナビゲーションでの施設検索,楽曲検索の例で説明したが,本発明は、それ以外の、一般の情報検索機器の用途でも使用できることは言うまでも無い。
また,本明細書での各実施形態を組み合わせて使用してもよい。