以下に、本発明の第一の実施形態を適用したナビゲーション装置および検索システムについて、図面を参照して説明する。
図1に、検索システム1000の全体構成図を示す。検索システム1000は、インターネット等の広域ネットワークやLAN(Local Area Network)、WAN(Wide Area Network)、携帯電話網等のネットワーク30を介して、車両に搭載されるナビゲーション装置100と、中継サーバー装置500と、音声特定サーバー装置900と、POI提供サーバー装置950と、が接続可能に構成されている。
ここで、音声特定サーバー装置900は、所定の事業者等がネットワーク30を介して提供する音声認識サービスを実現する装置である。本実施形態においては、音声特定サーバー装置900は、送信された音声情報(音声の特性を特定する波形情報)を受信すると、音声認識を行い、認識した言葉を文字列として送信する。なお、認識した言葉は通常曖昧性を有するため、N−best検索等の曖昧さを許容する認識を行い、認識の確度に応じて、該当する可能性のある一または複数の文字列を送信する。
また、POI提供サーバー装置950は、所定の事業者等がネットワーク30を介して提供するPOI(Point Of Interest)の検索サービスを実現する装置である。本実施形態においては、POI提供サーバー装置950は、送信された文字列を受信すると、当該文字列に該当するPOI、すなわち当該文字列を含むか、または当該文字列に類似する文字列を含む一または複数のPOI、を検索して特定し、その該当の確からしさに応じて、POIのリストを送信する。なお、POIのリストには、送信された文字列ごとに、確度の高い順に一または複数のPOIが対応付けられ、各POIは、POIの名称、POIの位置を特定する緯度経度等の座標情報、POIの住所、POIについての電話番号等を含んでいる。
ナビゲーション装置100は、地図情報を表示して、ナビゲーション装置100の現在地を示す地点と、設定された目的地までの経路を誘導する情報とを示すことが可能ないわゆるナビゲーション装置である。
中継サーバー装置500は、ナビゲーション装置100からPOIの検索要求と、音声情報とを受け付けると、音声情報について雑音除去を行い、音声特定サーバー装置900へ送信し、音声特定サーバー装置900から送信された文字列をPOI提供サーバー装置950へ送信し、受信したPOIリストをナビゲーション装置100へ送信する。
ここで、中継サーバー装置500の構成について、さらに詳細に説明する。中継サーバー装置500は、記憶部510と、制御部520と、送受信部530と、を備えている。記憶部510には、サーバ情報テーブル511が格納されており、音声特定を行うための音声特定サーバー装置900と、POI提供を行うためのPOI提供サーバー装置950と、を特定するための設定情報が格納されている。
制御部520には、雑音除去処理部521と、POI提示部522と、が含まれている。雑音除去処理部521は、ナビゲーション装置100から受信した音声情報に対して、一または複数の雑音除去アルゴリズムを用いて、各アルゴリズムに応じた雑音除去を行う。すなわち、雑音除去処理部521が、例えば4種類の雑音除去アルゴリズムを実行可能とする場合、ナビゲーション装置100から受信した音声情報に対し、それぞれのアルゴリズムを適用して、4種類の雑音除去済みの音声情報を出力する。なお、このようなアルゴリズムには、適応フィルタリングにより雑音を取り除くアルゴリズムや、周波数領域で雑音のスペクトルを取り除くスペクトルサブトラクション、周波数領域で時間的に変化する短時間スペクトル(Running Spectrum)に対して、各周波数毎に時間軸方向にディジタルフィルタを通過させる事で雑音を除去するRunning Spectrum Filter等のアルゴリズムがある。
POI提示部522は、ナビゲーション装置100から音声情報を受け付けて、雑音除去処理部521に雑音除去を実施させ、雑音が除去された一または複数の音声情報を、サーバ情報テーブル511に格納された設定情報に基づき音声特定サーバー装置900へ送信する。そして、音声特定サーバー装置900から送信された一または複数の認識文字列を受信すると、POI提示部522は、受信した認識文字列をナビゲーション装置100へ送信し、ナビゲーション装置100の使用者から選択された文字列を受け付けると、POI提供サーバー装置950へ当該文字列を含むPOI検索要求を送信する。そして、POI提供サーバー装置950から送信されたPOIリストを、ナビゲーション装置100へ送信する。
送受信部530は、ネットワーク30を介して、他の装置へ情報を送信し、他の装置から情報を受信する。本実施形態においては、送受信部530は、ナビゲーション装置100と、音声特定サーバー装置900と、POI提供サーバー装置950と、の間で通信を行う。
図2は、中継サーバー装置500のハードウェア構成図である。中継サーバー装置500は、入力装置551と、出力装置552と、通信装置553と、演算装置554と、主記憶装置555と、外部記憶装置556と、を有する。それぞれの装置は、バス557により接続されている。なお、入力装置551と、出力装置552と、は必須の構成ではなく、必要に応じて設けられるものであってよい。
入力装置551は、キーボードやマウス、あるいはタッチペン、その他ポインティングデバイスなどの入力を受け付ける装置である。出力装置552は、ディスプレイなどの表示を行う装置である。通信装置553は、ネットワーク30などのネットワークを介して他の装置と通信を行う装置である。中継サーバー装置500の通信装置553は、ネットワーク30を通じて、音声特定サーバー装置900と、POI提供サーバー装置950およびナビゲーション装置100の通信装置12等と通信を行うことができる。演算装置554は、例えばCPU(Central Processing Unit)などの演算装置である。主記憶装置555は、例えばRAM(Random Access Memory)などのメモリ装置である。外部記憶装置556は、例えばハードディスク装置やSSD(Solid State Drive)などの不揮発性記憶装置である。
なお、主記憶装置555に展開される命令コードは、外部記憶装置556に記憶されたものでもよく、また、通信装置553を介して、ネットワーク30上の図示しない他の装置あるいはインターネット等のネットワーク上の装置から取得されたものでもよい。主記憶装置555は、演算装置554が実行する命令コードの展開を行う領域を有する。外部記憶装置556は、いわゆる通常の記憶装置であり、中継サーバー装置500を動作させるソフトウェアや、当該ソフトウェアが必要とするデータの初期値、その他のデータなどを予め記録している。
上記した中継サーバー装置500の制御部520の雑音除去処理部521、POI提示部522は、演算装置554が所定のプログラムを読み込み実行することにより構築される。そのため、主記憶装置555には、各機能部の処理を実現するためのプログラムが記憶されている。
なお、上記した中継サーバー装置500の構成要素は、構成の理解を容易にするために、主な処理内容に応じて分類したものである。そのため、構成要素の分類の仕方やその名称によって、本願発明が制限されることはない。中継サーバー装置500の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。
また、中継サーバー装置500の制御部520は、ハードウェア(ASIC、GPUなど)により構築されてもよい。また、各機能部の処理が一つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
図3に、ナビゲーション装置100の全体構成図を示す。ナビゲーション装置100は、演算処理部1と、ディスプレイ2と、記憶装置3と、音声入出力装置4(音声入力装置としてマイクロフォン41、音声出力装置としてスピーカ42を備える)と、入力装置5と、ROM装置6と、車速センサ7と、ジャイロセンサ8と、GPS(Global Positioning System)受信装置9と、FM多重放送受信装置10と、ビーコン受信装置11と、通信装置12と、を備えている。
演算処理部1は、様々な処理を行う中心的ユニットである。例えば各種センサ7,8やGPS受信装置9、FM多重放送受信装置10等から出力される情報に基づいて現在地を算出する。また、得られた現在地情報に基づいて、表示に必要な地図データを記憶装置3あるいはROM装置6から読み出す。
また、演算処理部1は、読み出した地図データをグラフィックス展開し、そこに現在地を示すマークを重ねてディスプレイ2へ表示する。また、記憶装置3あるいはROM装置6に記憶されている地図データ等を用いて、ユーザから指示された出発地又は現在地と、目的地(または、経由地や立ち寄り地)とを結ぶ最適な経路(推奨経路)を探索する。また、スピーカ42やディスプレイ2を用いてユーザを誘導する。
ナビゲーション装置100の演算処理部1は、各デバイス間をバス25で接続した構成である。演算処理部1は、数値演算及び各デバイスを制御するといった様々な処理を実行するCPU(Central Processing Unit)21と、記憶装置3から読み出した地図データ、演算データなどを格納するRAM(Random Access Memory)22と、プログラムやデータを格納するROM(Read Only Memory)23と、各種ハードウェアを演算処理部1と接続するためのI/F(インターフェイス)24と、を有する。
ディスプレイ2は、演算処理部1等で生成されたグラフィックス情報を表示するユニットである。ディスプレイ2は、液晶ディスプレイ、有機ELディスプレイなどで構成される。
記憶装置3は、HDD(Hard Disk Drive)や不揮発性メモリカードといった、少なくとも読み書きが可能な記憶媒体で構成される。
この記憶媒体には、通常の経路探索装置に必要な地図データ(地図上の道路を構成するリンクのリンクデータを含む)であるリンクテーブル200が記憶されている。
図4は、リンクテーブル200の構成を示す図である。リンクテーブル200は、地図上の区画された領域であるメッシュの識別コード(メッシュID)201ごとに、そのメッシュ領域に含まれる道路を構成する各リンクのリンクデータ202を含んでいる。
リンクデータ202は、リンクの識別子であるリンクID211ごとに、リンクを構成する2つのノード(開始ノード、終了ノード)の座標情報222、リンクを含む道路の種別を示す道路種別223、リンクの長さを示すリンク長224、予め記憶されたリンク旅行時間225、当該リンクの開始ノードに接続するリンクである開始接続リンクと、当該リンクの終了ノードに接続するリンクである終了接続リンクと、を特定する開始接続リンク、終了接続リンク226、リンクを含む道路の制限速度を示す制限速度227などを含んでいる。
なお、ここでは、リンクを構成する2つのノードについて開始ノードと終了ノードとを区別することで、同じ道路の上り方向と下り方向とを、それぞれ別のリンクとして管理するようにしている。
図3に戻って説明する。音声入出力装置4は、音声入力装置として内蔵のマイクロフォン41と、音声出力装置としてスピーカ42と、を備える。マイクロフォン41は、ユーザやその他の搭乗者が発した声などのナビゲーション装置100の外部の音声を取得する。
また、音声入出力装置4は、拡張マイクロフォン43の接続を受け付ける接続部を有する。すなわち、音声入出力装置4は、一般的により性能の高い集音性能を有するヘッドセット等の拡張マイクロフォン43の接続を受け付けることができるため、より精度高く音声情報を受け付けることができる。
スピーカ42は、演算処理部1で生成されたユーザへのメッセージを音声として出力する。マイクロフォン41とスピーカ42は、車両の所定の部位に、別個に配されている。ただし、一体の筐体に収納されていても良い。ナビゲーション装置100は、マイクロフォン41及びスピーカ42を、それぞれ複数備えることができる。
入力装置5は、ユーザからの指示をユーザによる操作を介して受け付ける装置である。入力装置5は、タッチパネル51と、ダイヤルスイッチ52と、その他のハードスイッチ(図示しない)であるスクロールキー、縮尺変更キーなどで構成される。また、入力装置5には、ナビゲーション装置100に対して遠隔で操作指示を行うことができるリモートコントローラが含まれる。リモートコントローラは、ダイヤルスイッチやスクロールキー、縮尺変更キーなどを備え、各キーやスイッチが操作された情報をナビゲーション装置100に送出することができる。
タッチパネル51は、ディスプレイ2の表示面側に搭載され、表示画面を透視可能である。タッチパネル51は、ディスプレイ2に表示された画像のXY座標と対応したタッチ位置を特定し、タッチ位置を座標に変換して出力する。タッチパネル51は、感圧式または静電式の入力検出素子などにより構成される。
ダイヤルスイッチ52は、時計回り及び反時計回りに回転可能に構成され、所定の角度の回転ごとにパルス信号を発生し、演算処理部1に出力する。演算処理部1では、パルス信号の数から、回転角度を求める。
ROM装置6は、CD-ROMやDVD-ROM等のROM(Read Only Memory)や、IC(Integrated Circuit)カードといった、少なくとも読み取りが可能な記憶媒体で構成されている。この記憶媒体には、例えば、動画データや、音声データなどが記憶されている。
車速センサ7,ジャイロセンサ8およびGPS受信装置9は、ナビゲーション装置100で現在地(自車位置)を検出するために使用されるものである。車速センサ7は、車速を算出するのに用いる値を出力するセンサである。ジャイロセンサ8は、光ファイバジャイロや振動ジャイロ等で構成され、移動体の回転による角速度を検出するものである。GPS受信装置9は、GPS衛星からの信号を受信し移動体とGPS衛星間の距離と距離の変化率とを3個以上の衛星に対して測定することで移動体の現在地、進行速度および進行方位を測定するものである。
FM多重放送受信装置10は、FM放送局から送られてくるFM多重放送信号を受信する。FM多重放送には、VICS(Vehicle Information Communication System:登録商標)情報の概略現況交通情報、規制情報、SA/PA(サービスエリア/パーキングエリア)情報、駐車場情報、天気情報などやFM多重一般情報としてラジオ局が提供する文字情報などがある。
ビーコン受信装置11は、VICS情報などの概略現況交通情報、規制情報、SA/PA(サービスエリア/パーキングエリア)情報、駐車場情報、天気情報や緊急警報などを受信する。例えば、光により通信する光ビーコン、電波により通信する電波ビーコン等の受信装置である。
通信装置12は、ナビゲーション装置100を、ネットワーク30等に接続させ、ネットワークに接続された中継サーバー装置500等の他の装置と通信を行う装置である。なお、通信装置12は、ナビゲーション装置100に内蔵されるものであってもよいし、例えば携帯電話網を利用する通信モジュールや携帯電話等、外部機器として取り付け可能に搭載されるものであってもよい。また、ナビゲーション装置100と通信装置12との間は、USB(Universal Serial Bus)やBluetooth(登録商標)等の所定の通信規格により情報の送受信を行うものである。
図5は、演算処理部1の機能ブロック図である。図示するように、演算処理部1は、基本制御部101と、入力受付部102と、出力処理部103と、雑音レベル判定部104と、中継サーバー通信部105と、POI提示情報作成部106と、マイク認識部107と、を有する。
基本制御部101は、様々な処理を行う中心的な機能部であり、処理内容に応じて、他の処理部を制御する。また、各種センサ、GPS受信装置9等の情報を取得し、マップマッチング処理等を行って現在地を特定する。また、随時、走行した日付および時刻と、位置と、を対応付けて、リンクごとに走行履歴を記憶装置3に記憶する。さらに、各処理部からの要求に応じて、現在時刻を出力する。
入力受付部102は、入力装置5またはマイクロフォン41を介して入力された使用者からの指示を受け付け、その要求内容に対応する処理を実行するように演算処理部1の各部を制御する。例えば、使用者が推奨経路の探索を要求したときは、目的地を設定するため、地図をディスプレイ2に表示する処理を出力処理部103に要求する。
出力処理部103は、例えばポリゴン情報等の表示させる画面情報を受け取り、ディスプレイ2に描画するための信号に変換してディスプレイ2に対して描画する指示を行う。
雑音レベル判定部104は、音声入出力装置4のマイクロフォン41または拡張マイクロフォン43から入力される音声情報について、雑音レベルを判定する。具体的には雑音レベル判定部104は、受け付けた音声情報の所定の無音部分の波形、望ましくは音声情報の最初の100msに相当する無音部分の波形に含まれるノイズ成分を抽出し、当該ノイズ量の多寡に応じて雑音レベルを所定のレベル以上であるか否かを判定する。
中継サーバー通信部105は、入力された音声情報を、中継サーバー装置500へ送信する。また、中継サーバー通信部105は、音声認識の結果得られた文字列を中継サーバー装置500から受信する。また、中継サーバー通信部105は、選択されたPOIの情報を中継サーバー装置500へ送信し、POIリスト情報を受信する。
POI提示情報作成部106は、受信したPOIリスト情報を統合して、POIリストとして選択可能に使用者へ提示するための画面情報等を作成し、出力処理部103へ出力を依頼する。
マイク認識部107は、ナビゲーション装置100に接続されたマイクロフォンの認識を行う。具体的には、マイク認識部107は、拡張マイクロフォン43が接続されたことを検知して、内蔵のマイクロフォン41との間でいずれのマイクを使用するかについての使用者の選択に応じて使用するマイクロフォンを特定する。
上記した演算処理部1の各機能部、すなわち基本制御部101、入力受付部102、出力処理部103、雑音レベル判定部104、中継サーバー通信部105、POI提示情報作成部106、マイク認識部107は、CPU21が所定のプログラムを読み込み実行することにより構築される。そのため、RAM22には、各機能部の処理を実現するためのプログラムが記憶されている。
なお、上記した各構成要素は、ナビゲーション装置100の構成を、理解を容易にするために、主な処理内容に応じて分類したものである。そのため、構成要素の分類の仕方やその名称によって、本願発明が制限されることはない。ナビゲーション装置100の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。
また、各機能部は、ハードウェア(ASIC、GPUなど)により構築されてもよい。また、各機能部の処理が一つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
[動作の説明]次に、ナビゲーション装置100、中継サーバー装置500、音声特定サーバー装置900およびPOI提供サーバー装置950を含む検索システム1000において実施されるPOI検索処理の動作について説明する。図6は、POI検索処理を示すフロー図である。このフローは、ナビゲーション装置100が起動している状態において、所定のPTT(Push To Talk)ボタン等による音声入力の開始指示を受け付けることで開始される。
まず、入力受付部102は、音声入力の待ち受けを開始する(ステップS001)。そして、入力受付部102は、PTTボタンの開放等により音声待ち受けを終了する(ステップS003)まで、音声区間を検出し、入力された音声情報を圧縮して音声情報を作成する(ステップS002)。なお、ここで、雑音レベル判定部104が、入力された音声情報の雑音レベルを判定する。そして、雑音レベルが所定よりも高い場合、すなわち雑音が多い環境では、入力受付部102は、圧縮率を低く設定して圧縮することとし、圧縮による音質劣化を最小限に留めるようにしてもよい。また、雑音レベルがさらに高く所定の閾値を超える場合、すなわち雑音が大きすぎて到底正常に音声認識を行うことができない程度に大きい環境においては、入力受付部102は、音声情報の作成を行わず、以降の処理を実施しないようにしてもよい。
そして、入力受付部102は、中継サーバー通信部105を介して、中継サーバー装置500へ音声情報を送信する。そして、中継サーバー装置500の雑音除去処理部521は受信した音声情報に対して、所定のアルゴリズムを実現する雑音除去処理を実施する(ステップS004)。具体的には、雑音除去処理部521は、雑音除去処理時に適用することをあらかじめ定められた一または複数のアルゴリズムにより、受信した音声情報に対して雑音除去処理を実施して、雑音を除去された一または複数の音声情報を生成する。
そして、POI提示部522は、雑音を除去された一または複数の音声情報を音声特定サーバー装置900へ送信する。そして、音声特定サーバー装置900は、各音声情報に所定の音声認識処理を実施して認識した結果である候補の一または複数の文字列情報を中継サーバー装置500へ送信する(ステップS005)。なお、当該音声認識処理においては、既存の音声認識等の処理が行われ、N−best検索等により一または複数の認識結果の候補となる文字列がその確度とともに出力される。例えば、使用者が発話した音声情報が「ピザ」に該当するものである場合、「ピザ」、「Pizza」、「膝」、「いか」等の候補となる文字列が音声情報ごとに出力される。
そして、POI提示部522は、出力された認識結果の文字列情報を受け取ると、認識結果に対して重みづけを行う(ステップS006)。具体的には、出力された認識結果の文字列情報は、雑音除去のアルゴリズムに応じて一または複数の候補が挙げられており、その中で重複する候補があれば一つに統合し、統合された候補についてはその確度をより高いもの(例えば、確度に所定の割合を上乗せする)として補正し、確度の順に候補の文字列を順位付けする。なお、POI提示部522は、当該重みづけ処理において、音声情報に適用された雑音除去のアルゴリズムに応じて重みづけを行うようにしてもよい。すなわち、適切な雑音除去のアルゴリズムが適用された音声情報は認識精度が高いものと考えられるため、認識精度が高いと考えられる候補を重視するようにしてもよい。また、施設に該当しない可能性が高いPOIについての候補があれば、これを除去してもよい。
POI提示部522は、順位付けした候補の文字列をナビゲーション装置100へ送信する。そして、ナビゲーション装置100のPOI提示情報作成部106は、受信した順位付けされた認識結果の候補の文字列を、選択可能にリスト出力する画面情報を作成し、出力処理部103へ指示してディスプレイ2へ表示させる(ステップS007)。なお、ここで、順位付けした文字列の候補の数が所定の数に満たない場合、あるいは、ステップS002にて受け付けた音声情報に含まれる雑音のレベルが所定よりも低い場合、すなわち音声の認識結果にあいまいさが少ない場合には、後述するステップS008の処理を省略して、ステップS009のPOIの検索依頼を送信する処理を実施するようにしてもよい。
そして、入力受付部102は、表示された画面において使用者が指定した候補の選択入力を受け付けて、中継サーバー通信部105を介して中継サーバー装置500へ送信する(ステップS008)。
POI提示部522は、送信された候補の文字列について、POI提供サーバー装置950へ送信し、POIの検索依頼を送信する(S009)。
POI提供サーバー装置950は、送信された候補の文字列をその施設名あるいは住所等に含むか、送信された候補の文字列に類似する文字列をその施設名あるいは住所等に含むPOIをゆらぎ検索し、複数のPOIの候補を確度別に検索し、当該POIの名称、座標、電話番号、住所等を含む情報を含むPOIリストを中継サーバー装置500へ送信する(ステップS010)。
POI提示部522は、送信されたPOIリストに対して、後述するPOI検索結果統合処理を実施して統合する(ステップS011)。そして、POI提示部522は、ナビゲーション装置100に対して、統合したPOI検索結果を送信する。
POI提示情報作成部106は、受信したPOI検索結果を用いて、各POIを選択可能に表示する表示画面を作成し、出力処理部103に対してディスプレイ2に表示するよう指示する(ステップS012)。例えば、POI提示情報作成部106は、選択された候補が「ピザ」である場合には、ピザ食を提供するレストランのリスト等を選択可能に表示するとともに、当該レストランの座標位置に応じて、地図上の該当する位置に当該レストランのアイコンを表示する画面を作成する。
そして、基本制御部101は、表示したPOIの選択を入力受付部102を介して受け付け、選択されたPOIを目的地あるいは経由地とする経路探索を行う(ステップS013)。当該経路探索時には、基本制御部101は、選択されたPOIの名称を含むルート探索メッセージを表示する。例えば、基本制御部101は、選択されたPOIの名称が「東京ピザ」であれば、「東京ピザへのルートを探索します」というメッセージを表示して、当該POIへの経路探索を実施する。
以上が、POI検索処理のフローである。POI検索処理によると、より手軽に高い検索機能を利用できる。具体的には、ナビゲーション装置の処理能力は特別に高くなくとも、精度の高い音声認識および高機能なPOIの検索機能を利用することができるといえる。
図7は、図6に示したPOI検索処理におけるステップS002〜ステップS007におけるプロセス間の関連を表したシーケンス図である。
まず、ナビゲーション装置100の中継サーバー通信部105は、中継サーバー装置500の送受信プロセス(POI提示部522により制御される)に対して音声情報の送信を開始する(ステップS101)。
そして、中継サーバー通信部105は、音声情報の送信をすべて終える(ステップS102)まで、音声情報の送信を継続する。
中継サーバー通信部105からの音声情報の送信が終わるのを待って、中継サーバー装置500の送受信プロセスでは、雑音除去処理部521により制御される雑音除去プロセスへ音声情報の送信が開始される(ステップS103)。そして、すべての音声情報の送信が終わると、中継サーバー装置500の送受信プロセスでは、雑音除去プロセスへの音声情報の送信が終了する(ステップS104)。
雑音除去プロセスでは、雑音除去処理部521により、送信された音声情報に対して所定の雑音除去処理が行われる(ステップS105)。中継サーバー装置500の雑音除去処理部521は、雑音が除去された音声情報を、POI提示部522により制御されるサーバ通信プロセスへ送信開始する(ステップS106)。そして、雑音が除去された音声情報の送信が終わると、中継サーバー装置500の雑音除去プロセスでは、サーバ通信プロセスへの音声情報の送信が終了する(ステップS107)。
雑音が除去された音声情報をすべて受信すると、サーバ通信プロセスでは、POI提示部522により、雑音除去プロセスから送られた雑音が除去された音声情報について、音声特定サーバー装置900への送信が開始される(ステップS108)。なお、ここでは、雑音除去のアルゴリズム別に音声情報が存在する場合には、複数の音声情報がすべて送信される。
そして、雑音が除去された音声情報の送信が終わると、中継サーバー装置500のサーバ通信プロセスでは、音声特定サーバー装置900への音声情報の送信が終了する(ステップS109)。
そして、音声特定サーバー装置900は、受信した雑音除去された音声情報に対して、所定の音声認識処理を行い、認識した結果得られた候補となる文字列をN−best検索により一または複数特定する(ステップS110)。
そして、中継サーバー装置500のサーバ通信プロセスでは、POI提示部522が、音声特定サーバー装置900から送信された候補となる文字列をすべて受信する(ステップS111)。
中継サーバー装置500のサーバ通信プロセスでは、POI提示部522が、送受信プロセスにおいて受信した文字列をすべて送受信プロセスに送る(ステップS112)。
中継サーバー装置500の送受信プロセスでは、POI提示部522により、ナビゲーション装置100の中継サーバー通信部105へ認識結果の文字列が送信される(ステップS113)。
以上が、図6に示したPOI検索処理におけるステップS002〜ステップS007におけるプロセス間の関連である。なお、雑音除去(ステップS004)や認識結果の重みづけ(ステップS006)等の処理については、当該プロセス間の関係の説明では詳細な説明を省略している。
図8は、POI検索結果統合処理のフローを示す図である。POI検索結果統合処理は、図6のPOI検索処理のステップS011において、中継サーバー装置500によって実施される処理である。
まず、POI提示部522は、認識文字列間でPOIリストが同一のものがあれば、確度の低い認識文字列とPOIリストとを削除する(ステップS201)。具体的には、POI提示部522は、POI提供サーバー装置950から受信した一または複数の認識文字列とその確度、および対応するPOIリストについて、各POIリスト同士を比較して、POIリストを構成するPOIが完全に一致するPOIリストがある場合には、確度の低い認識文字列についてのPOIリストを削除し、合わせてその認識文字列と確度の情報も削除する。これをすべてのPOIリスト間の重複がなくなるまで繰り返す。
そして、POI提示部522は、POIリスト内で重複するPOIがある場合には、確度の低いPOIを当該リスト内から削除する(ステップS202)。ここで、POIリストには、POIの情報と、認識文字列に対する当該POIの確度の情報が含まれているものとする。POI提示部522は、一の認識文字列についてのPOIリスト内に、同一のPOI名称を有するPOIが複数含まれる場合には、確度の低いPOIをPOIリストから削除し、重複を排除する。
そして、POI提示部522は、認識文字列間で共通するPOIがあれば、確度の低い認識文字列のPOIを削除する(ステップS203)。具体的には、POI提示部522は、認識文字列に対応するPOIリストを認識文字列間で比較し、互いのPOIリストに同一のPOI名称を有するPOIが含まれる場合には、確度の低い認識文字列に対応付けられたPOIリストに含まれるPOIをPOIリストから削除して、重複を排除する。
次に、POI提示部522は、類似する認識文字列間において、確度の低い認識文字列のPOIを確度の高い認識文字列のPOIリストに移動させる(ステップS204)。具体的には、POI提示部522は、認識文字列間において、文字列同士の類似する度合いが所定以上となる組み合わせを特定し、当該組み合わせにおいて、確度の低い認識文字列に対応付けられたPOIリストに含まれるPOIの情報を、確度の高い認識文字列に対応付けられたPOIリストの下位に移動させて、POIリストを統合する。
以上が、POI検索結果統合処理のフローである。POI検索結果統合処理によると、認識された文字列が類似する関係にある検索文字列により検索されたPOIリストを統合しつつ、重複を排除したPOIリストを得ることができる。
図9は、ナビゲーション装置100にて実施される、マイク選択処理の処理フローである。マイク選択処理は、ナビゲーション装置100において、基本制御部101等が拡張マイクロフォン43の接続を新たに検知した場合に実施される
まず、マイク認識部107は、新たに接続されたマイクロフォン(以降、新規マイクと称呼)は既接続のマイクよりも近接するか否かを判定する(ステップS301)。具体的には、マイク認識部107は、新規マイクが発話者の口元付近に位置することが想定されるヘッドセットマイクであれば、当該新規マイクを最も「近接する」と判定する。新規マイクが外付けマイクであれば、内蔵のマイクロフォン41より「近接する」と判定する。ただし、マイク認識部107は、ヘッドセットマイクが既接続であり、新規マイクが外付けマイクである場合には、新規マイクを「近接する」とは判定しない。
新規マイクが既接続のマイクよりも近接しない場合(ステップS301にて「No」の場合)には、マイク認識部107は、マイク選択処理を終了させる。
新規マイクが既接続のマイクよりも近接する場合(ステップS301にて「Yes」の場合)には、マイク認識部107は、使用するマイクの変更を問い合わせる表示を行う(ステップS302)。具体的には、マイク認識部107は、「新しいマイクを通常使用するマイクに設定しますか?」等のメッセージとともに、メッセージに対する肯定/否定等の応答となる変更指示を受け付けるダイアログボックス等を出力するよう出力処理部103に指示する。
マイク認識部107は、表示させた問い合わせに対する肯定/否定等の応答となる変更指示を受け付けると、受け付けた指示が肯定の内容であるか否かを判定する(ステップS303)。肯定する内容ではない場合には、マイク認識部107は、マイク選択処理を終了させる。
肯定する内容を受け付けた場合(ステップS303にて「Yes」の場合)には、マイク認識部107は、音声認識に使用するマイクを新規マイクへと変更する(ステップS304)。具体的には、マイク認識部107は、音声認識処理時に入力を受け付けるマイクロフォンの設定を、新規マイクに関連付ける。
以上が、マイク選択処理のフローである。マイク選択処理によると、新規マイクが認識されると、当該マイクが既接続のマイクよりも近接するものである場合には、当該マイクを音声認識に使用するか否か、使用者の指示に応じて設定することができる。なお、上記マイク選択処理は、使用者によりあらかじめ指定を受け付けたマイクがある場合には、当該マイクを優先して設定するようにしてもよい。
なお、マイク選択処理において新規マイクとして認識されるマイクは、ヘッドセットマイク等のマイクロフォンに限らず、例えば携帯電話等とブルートゥース(Bluetooth:登録商標)接続されるマイクロフォンや、FMトランスミッタ等によりナビゲーション装置100と通信を行うマイクロフォン等、音声入力を受け付けることができるデバイスであればよい。
次に、使用者が発話する際にマイク認識部107が実施するマイク発話時選択処理について、図10を用いて説明する。マイク発話時選択処理は、複数のマイクにより入力を受け付けることができる場合に、音質の良好なマイクからの入力を選択的に採用して入力音質を高く維持する処理である。
まず、基本制御部101は、入力されているすべてのマイクにおいて音声を受け付ける(ステップS401)。なお、音声を受け付けるマイクは、すべてのマイクではなく、あらかじめ指定された複数のマイク、あるいはゲインの大きい順に選択された所定数のマイクであってもよい。
次に、マイク認識部107は、マイクごとのノイズレベルを特定し、低レベルのマイクで受け付けた音声を採用する(ステップS402)。具体的には、マイク認識部107は、マイクごとに、入力された音声情報について、雑音レベル判定部104を介してノイズのレベル(S/N比)を特定し、ノイズ比が最も低い音声情報を採用して入力された音声として特定する。
以上が、マイク発話時選択処理の処理フローである。マイク発話時選択処理によると、実際に発話された音声情報のうち、音質が良い音声情報を採用することができるため、車両等音響環境が随時変化する場合等において、発話ごとに最も良い音質で音声入力を行うことができるといえる。
以上、本発明の第一の実施形態について説明した。本発明の第一の実施形態によると、ナビゲーション装置100は、より手軽に高い検索機能を利用することができる。なお、上記マイク発話時選択処理は、使用者による指定を受け付けたマイクがある場合には、当該マイクを優先して採用するようにしてもよい。
本発明は、上記の実施形態に制限されない。上記の実施形態は、本発明の技術的思想の範囲内で様々な変形が可能である。例えば、図11に示すように、音声認識された結果の文字列について、使用者の指示を待たずにPOI探索を行うよう、POI検索処理のフローを変更した第二の実施形態としてもよい。
第二の実施形態について、以下に説明する。第二の実施形態は、基本的に第一の実施形態とほぼ同様の構成を備える検索システムであり、POI検索処理に相違がある。当該相違を中心に、以下に説明する。
まず、入力受付部102は、音声入力の待ち受けを開始する(ステップS501)。そして、入力受付部102は、PTTボタンの開放等により音声待ち受けを終了する(ステップS503)まで、音声区間を検出し、入力された音声情報を圧縮して音声情報を作成する(ステップS502)。なお、ここで、雑音レベル判定部104が、入力された音声情報の雑音レベルを判定する。そして、雑音レベルが所定よりも高い場合、すなわち雑音が多い環境では、入力受付部102は、圧縮率を低く設定して圧縮することとし、圧縮による音質劣化を最小限に留めるようにしてもよい。また、雑音レベルがさらに高く所定の閾値を超える場合、すなわち雑音が大きすぎて到底正常に音声認識を行うことができない程度に大きい環境においては、入力受付部102は、音声情報の作成を行わず、以降の処理を実施しないようにしてもよい。
そして、入力受付部102は、中継サーバー通信部105を介して、中継サーバー装置500へ音声情報を送信する。そして、中継サーバー装置500の雑音除去処理部521は、受信した音声情報に対して、所定のアルゴリズムを実現する雑音除去処理を実施する(ステップS504)。具体的には、雑音除去処理部521は、雑音除去処理時に適用することをあらかじめ定められた一または複数のアルゴリズムにより、受信した音声情報に対して雑音除去処理を実施して、雑音を除去された一または複数の音声情報を生成する。
そして、POI提示部522は、雑音を除去された一または複数の音声情報を音声特定サーバー装置900へ送信する。音声特定サーバー装置900は、各音声情報に所定の音声認識処理を実施して認識した結果である候補である一または複数の文字列情報を中継サーバー装置500へ送信する(ステップS505)。なお、当該音声認識処理においては、既存の音声認識等の処理が行われ、N−best検索等により一または複数の認識結果の候補となる文字列がその確度とともに出力される。例えば、使用者が発話した音声情報が「ピザ」に該当するものである場合、「ピザ」、「Pizza」、「膝」、「いか」等の候補となる文字列が音声情報ごとに出力される。
そして、POI提示部522は、出力された認識結果の文字列情報を受け取り、認識結果に対して重みづけを行う(ステップS506)。具体的には、出力された認識結果の文字列情報は、雑音除去のアルゴリズムに応じて一または複数の候補が挙げられており、POI提示部522は、その中で重複する候補があれば一つに統合し、統合された候補についてはその確度をより高いもの(例えば、確度に所定の割合を上乗せする)として補正し、確度の順に候補の文字列を順位付けする。
POI提示部522は、順位付けした候補の文字列(複数)を、POI提供サーバー装置950へ送信し、POIの検索依頼を送信する(S0507)。
POI提供サーバー装置950は、送信された候補の文字列のそれぞれについて、施設名あるいは住所等に含むか、送信された候補の文字列のそれぞれに類似する文字列をその施設名あるいは住所等に含むPOIをゆらぎ検索し、一または複数のPOIの候補を確度別に検索し、当該POIの名称、座標、電話番号、住所等を含む情報を含むPOIリストを候補の文字列に対応付けて中継サーバー装置500へ送信する(ステップS508)。
POI提示部522は、送信された候補の文字列ごとのPOIリストを、ナビゲーション装置100に対して送信する(ステップS509)。
POI提示情報作成部106は、受信したPOI検索結果を用いて、候補の文字列ごとに、各POIを選択可能に表示する表示画面を作成し、出力処理部103に対してディスプレイ2に表示するよう指示する(ステップS510)。例えば、POI提示情報作成部106は、候補の文字列が「ピザ」、「Pizza」、「膝」である場合には、ピザ食を提供するレストランのリスト等を、候補の文字列ごとに選択可能に表示するとともに、当該レストランの座標位置に応じて、地図上の該当する位置に当該レストランのアイコンを表示する画面を作成する。
そして、基本制御部101は、表示したPOIの選択を、入力受付部102を介して受け付け、選択されたPOIを目的地あるいは経由地とする経路探索を行う(ステップS511)。当該経路探索時には、基本制御部101は、選択されたPOIの名称を含むルート探索メッセージを表示する。例えば、基本制御部101は、選択されたPOIの名称が「東京ピザ」であれば、「東京ピザへのルートを探索します」というメッセージを表示して、当該POIへの経路探索を実施する。
以上が、第二の実施形態に係るPOI検索処理のフローである。第二の実施形態に係るPOI検索処理によると、音声情報にもとづき認識された文字列の一または複数の候補それぞれについてPOIを検索し提示することができるため、使用者の入力操作をより減らし、手軽に高い検索機能を利用できる。具体的には、ナビゲーション装置の処理能力は特別に高くなくとも、精度の高い音声認識および高機能なPOIの検索機能を利用することができるといえる。
また、例えば、第一の実施形態においては、図7においてプロセス間の関連を表したように、音声情報を発話終了後にまとめてナビゲーション装置100から中継サーバー装置500等へ送信しているが、これに限られない。すなわち、音声情報を発話中にナビゲーション装置100から中継サーバー装置500等へ送信して、雑音除去を順次実施するようにしてもよい。このような変形処理について、図12を用いて説明する。
まず、ナビゲーション装置100の中継サーバー通信部105は、中継サーバー装置500の送受信プロセス(POI提示部522により制御される)に対して音声情報の送信を開始する(ステップS601)。
なお、中継サーバー通信部105は、音声情報の送信をすべて終える(ステップS607)まで、音声情報の送信を継続する。
中継サーバー装置500の送受信プロセスでは、POI提示部522は、音声情報の送信が開始されると、中継サーバー通信部105からの音声情報の送信が終わるのを待たずに、雑音除去処理部521により制御される雑音除去プロセスへ音声情報の送信を開始する(ステップS602)。なお、すべての音声情報の送信を終えると、中継サーバー装置500の送受信プロセスでは、雑音除去プロセスへの音声情報の送信が終了する(ステップS608)。
雑音除去プロセスでは、雑音除去処理部521により、送信された音声情報に対して所定の雑音除去処理が行われる。中継サーバー装置500の雑音除去処理部521は、まず、受け取った音声情報の先頭の所定の時間(例えば、100ミリ秒間)の無音部分について、雑音レベルの判定を行い、雑音レベルに応じて適切な雑音除去アルゴリズムを一つまたは複数決定する(ステップS603)。そして、中継サーバー装置500の雑音除去処理部521は、決定した雑音除去アルゴリズムを適用して、受信している音声情報に対して雑音除去を行い(ステップS604)、雑音が除去された部分から順次、POI提示部522により制御されるサーバ通信プロセスへ送信開始する(ステップS605)。なお、雑音が除去されたすべての音声情報の送信が終わると、中継サーバー装置500の雑音除去プロセスでは、サーバ通信プロセスへの音声情報の送信が終了する(ステップS609)。
雑音が除去された音声情報を受信すると、サーバ通信プロセスでは、POI提示部522は、雑音除去プロセスから送られた雑音が除去された音声情報を順次、音声特定サーバー装置900へ送信開始する(ステップS606)。なお、ここでは、雑音除去のアルゴリズム別に音声情報が存在する場合には、POI提示部522は、異なる雑音除去のアルゴリズムが適用された複数の音声情報をすべて送信する。
そして、雑音が除去された音声情報の送信が終わると、中継サーバー装置500のサーバ通信プロセスでは、音声特定サーバー装置900への音声情報の送信が終了する(ステップS610)。
そして、音声特定サーバー装置900は、受信した雑音除去された一または複数の音声情報に対して、所定の音声認識処理を行い、認識した結果得られた候補となる文字列をN−best検索により一または複数特定する(ステップS611)。
そして、中継サーバー装置500のサーバ通信プロセスでは、POI提示部522は、音声特定サーバー装置900から送信された候補となる文字列をすべて受信する(ステップS612)。
中継サーバー装置500のサーバ通信プロセスでは、POI提示部522は、送受信プロセスに対して、受信した文字列をすべて送る(ステップS613)。
中継サーバー装置500の送受信プロセスでは、POI提示部522により、ナビゲーション装置100の中継サーバー通信部105に認識結果の文字列が送信される(ステップS614)。
以上が、POI検索処理におけるステップS002〜ステップS007におけるプロセス間の関連の変形例である。なお、雑音除去(ステップS004)や認識結果の重みづけ(ステップS006)等の処理については、当該プロセス間の関係の説明では詳細な説明を省略している。
このように変形することで、音声情報の発話から音声認識の開始までをリアルタイムに行うことができるため、音声認識処理の開始タイミングを早めることができ、応答性を高くすることができる。
以上、本発明について、実施形態を中心に説明した。なお、上記の各実施形態では、本発明をナビゲーション装置等に適用した例について説明したが、本発明はナビゲーション装置に限らず、情報端末全般に適用することができる。また、各実施形態においてナビゲーション装置100で実施する処理および当該処理を実施するのに用いられる処理部は、他の端末装置(例えば、通信装置12を介した携帯電話、スマートフォン等)に設けられ、当該処理の一部をナビゲーション装置100と他の端末装置との間で分散させて処理するようにしてもよい。