(57)【要約】【課題】キャッシュメモリの容量の増加を抑えながら、発話タイミングとなってから実際に発話するまでの時間のさらなる高速化を可能にする。【解決手段】キャッシュ部１１１が、音声管理レコードのうち、現在の設定言語の音声管理レコードのみをＲＡＭ１４にキャッシュするとともに、現在の設定言語の音声オフセットレコードのうち、使用頻度の高い音声データの索引となる所定数の音声オフセットレコードのみをＲＡＭ１４にキャッシュする。そして、読み出し部１１３は、発声要求のあった音声データの索引となる音声オフセットレコードが、キャッシュした音声オフセットレコードから、キャッシュメモリ探索部１１２によって探索できた場合に、キャッシュされている当該音声オフセットレコードを参照して、発声要求のあった音声データをストレージ機器３０から読み出す。【選択図】図１
2014145845.tif 000002
【特許請求の範囲】
【請求項１】
複数の音声データと、前記音声データの索引となる、言語別に分類された二次索引データと、前記二次索引データの索引となる、言語別に分類された一次索引データとを格納しているストレージ（３０）と、
前記ストレージよりもアクセスレイテンシが小さいキャッシュメモリ（１４）と、
アプリケーションプログラムが要求する前記音声データである対象音声データを前記ストレージから読み出す読み出し部（１１３）と、
前記読み出し部で読み出した前記対象音声データに従った音声を出力させることで発声させる発声部（１１７）とを備える発声装置であって、
前記一次索引データのうち、言語設定されている言語の前記一次索引データに絞って前記キャッシュメモリに展開するとともに、前記キャッシュメモリに展開した前記一次索引データと同じ言語の前記二次索引データのうち、所定数の前記二次索引データに絞って前記キャッシュメモリに展開するキャッシュ部（１１１）と、
前記アプリケーションプログラムが要求する前記対象音声データの索引となる前記二次索引データである対象二次索引データを、前記キャッシュメモリに展開した前記二次索引データから探索するキャッシュメモリ探索部（１１２）とを備え、
前記読み出し部は、前記キャッシュメモリに展開した前記二次索引データから、前記キャッシュメモリ探索部によって前記対象二次索引データが探索できた場合に、キャッシュメモリに展開されている当該対象二次索引データを参照して、前記対象音声データを前記ストレージから読み出すことを特徴とする発声装置。
【請求項２】
請求項１において、
前記キャッシュ部は、前記キャッシュメモリに展開した前記一次索引データと同じ言語の前記二次索引データのうち、使用頻度のより高い所定数の前記音声データの索引となる、所定数の前記二次索引データに絞って前記キャッシュメモリに展開することを特徴とする発声装置。
【請求項３】
請求項２において、
前記ストレージに格納される前記二次索引データは、使用頻度のより高い前記音声データの索引となる前記二次索引データほど、格納順が先頭に近くなるように格納されているものであって、
前記キャッシュ部は、前記キャッシュメモリに展開した前記一次索引データと同じ言語の前記二次索引データのうち、前記ストレージでの格納順が先頭により近い所定数の前記音声データの索引となる、所定数の前記二次索引データに絞って前記キャッシュメモリに展開することを特徴とする発声装置。
【請求項４】
請求項１〜３のいずれか１項において、
前記キャッシュ部は、前記アプリケーションプログラムの起動時に、前記一次索引データのうち、言語設定されている言語の前記一次索引データに絞って前記キャッシュメモリに展開するとともに、前記キャッシュメモリに展開した前記一次索引データと同じ言語の前記二次索引データのうち、所定数の前記二次索引データに絞って前記キャッシュメモリに展開することを特徴とする発声装置。
【請求項５】
請求項１〜４のいずれか１項において、
前記キャッシュ部は、前記言語設定の切り替わり時に、前記一次索引データのうち、言語設定されている言語の前記一次索引データに絞って前記キャッシュメモリに展開するとともに、前記キャッシュメモリに展開した前記一次索引データと同じ言語の前記二次索引データのうち、所定数の前記二次索引データに絞って前記キャッシュメモリに展開することを特徴とする発声装置。
【請求項６】
請求項１〜５のいずれか１項において、
前記キャッシュメモリに展開した前記二次索引データから、前記キャッシュメモリ探索部によって前記対象二次索引データが探索できなかった場合に、前記対象二次索引データを、前記ストレージに格納された前記二次索引データから探索するストレージ探索部（１１６）を備え、
前記読み出し部は、前記キャッシュメモリに展開した前記二次索引データから、前記キャッシュメモリ探索部によって前記対象二次索引データが探索できなかった場合に、前記ストレージ探索部で探索した前記対象二次索引データを参照して、前記対象音声データを前記ストレージから読み出すことを特徴とする発声装置。
【請求項７】
請求項１〜６のいずれか１項において、
車両で用いられて、案内音声を発声することを特徴とする発声装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、案内音声等を発声する発声装置に関するものである。
【背景技術】
【０００２】
従来、ナビゲーション装置や駐車支援装置や自動現金取引機器のように、自動で案内音声を発声する発声装置が知られている（例えば特許文献１）。
【０００３】
発声装置では、ＨＤＤ（Hard disk drive）やＳＤカード（SD Memory Card）などのストレージ機器に、膨大な数の録音済み音声データを格納している。そして、発声装置は、アプリケーションプログラム（以下、アプリ）が要求する音声データをストレージ機器から検索して読み出し、アプリに従った音声を発話する。
【０００４】
しかし、ストレージ機器へのアクセス時間は、ＣＰＵ処理時間に比べ時間がかかる。よって、ストレージ機器に格納された音声データの全てをいちいち検索していたのでは、積算のアクセス回数が増加してしまう。そして、積算のアクセス回数が増加することで、アプリが音声データを要求してから実際に発声するまでの時間がかかり、レスポンスが悪くなってしまう。
【０００５】
そこで、この問題を解決するために、従来では以下のようにしていた。まず、音声データの索引となる、言語別等の所定の項目について分類された二次索引データと、二次索引データの索引となる、言語別等の所定の項目について分類された一次索引データとをストレージ機器に格納しておく。続いて、一次索引データと二次索引データとのうちの一次索引データのみをキャッシュメモリに展開しておく。これは、キャッシュメモリの容量がストレージ機器よりも小さく、展開するデータ量を抑えなければならないためである。
【０００６】
そして、必要な音声データをストレージ機器から読み出す場合に、キャッシュメモリに展開された一次索引データのうちから、必要な音声データに対応する一次索引データを検索する。さらに、検索した一次索引データを参照し、ストレージ機器に格納された二次索引データのうちから、必要な音声データに対応する二次索引データを検索する。そして、検索した二次索引データを参照し、必要な音声データにアクセスして読み出す。これにより、ストレージ機器に格納されているデータが検索される機会を減らして、ストレージ機器へのアクセス回数を低減することで、アプリが音声データを要求してから実際に発声するまでの時間の高速化を図っていた。
【０００７】
また、音声データ、一次索引データ、二次索引データといった階層化したデータ構造とするのは、全体のデータのサイズを小さく抑えるためと、新たな音声データを追加する場合の編集の手間を抑えるためである。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−３１１１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、一次索引データと二次索引データとのうちの一次索引データのみをキャッシュメモリに展開しておく前述の技術では、ストレージ機器に格納された二次索引データを検索する際のストレージ機器へのアクセス時間が必ず生じてしまうという問題があった。
【００１０】
また、二次索引データもキャッシュメモリに展開しようとする場合には、キャッシュメモリの容量を大幅に増加させる必要があるが、キャッシュメモリを増加させるとキャッシュメモリのアクセス時間が増加してしまうという問題が生じてしまう。
【００１１】
本発明は、上記従来の問題点に鑑みなされたものであって、その目的は、キャッシュメモリの容量の増加を抑えながら、アプリケーションプログラムが音声データを要求してから実際に発声するまでの時間のさらなる高速化を可能にする発声装置を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の発声装置は、複数の音声データと、音声データの索引となる、言語別に分類された二次索引データと、二次索引データの索引となる、言語別に分類された一次索引データとを格納しているストレージ（３０）と、ストレージよりもアクセスレイテンシが小さいキャッシュメモリ（１４）と、アプリケーションプログラムが要求する音声データである対象音声データをストレージから読み出す読み出し部（１１３）と、読み出し部で読み出した対象音声データに従った音声を出力することで発声する発声部（１１７）とを備える発声装置であって、一次索引データのうち、言語設定されている言語の一次索引データに絞ってキャッシュメモリに展開するとともに、キャッシュメモリに展開した一次索引データと同じ言語の二次索引データのうち、所定数の二次索引データに絞ってキャッシュメモリに展開するキャッシュ部（１１１）と、アプリケーションプログラムが要求する対象音声データの索引となる二次索引データである対象二次索引データを、キャッシュメモリに展開した二次索引データから探索するキャッシュメモリ探索部（１１２）とを備え、読み出し部は、キャッシュメモリに展開した二次索引データから、キャッシュメモリ探索部によって対象二次索引データが探索できた場合に、キャッシュメモリに展開されている当該対象二次索引データを参照して、対象音声データをストレージから読み出すことを特徴としている。
【００１３】
これによれば、言語設定されている言語（以下、設定言語）の一次索引データに絞ってキャッシュメモリに展開するので、キャッシュメモリを大幅に増加させなくても、設定言語の二次索引データの一部をキャッシュメモリに展開できる。言語設定が切り替えられなければ、設定言語以外の言語（以下、設定外言語）の一次索引データが音声データの読み出しに必要となることはない。よって、設定言語の一次索引データに絞ってキャッシュメモリに展開した場合であっても、ストレージに格納される設定外言語の一次索引データにアクセスする必要は生じず、ストレージに格納される一次索引データへのアクセス処理時間を生じさせないで済む。
【００１４】
また、設定言語の二次索引データのうち所定数のデータをキャッシュメモリに展開するので、対象音声データの索引となる対象二次索引データが、キャッシュメモリに展開された二次索引データに含まれている場合には、ストレージに格納される二次索引データを探索する必要がなくなる。この場合、ストレージに格納される二次索引データにアクセスする必要は生じず、ストレージに格納される二次索引データへのアクセス処理時間を生じさせないで済む。
【００１５】
なお、ここで言うところの所定数は、設定外言語の全一次索引データをキャッシュメモリに展開する場合に必要となるメモリ容量に対して、設定言語の二次索引データの所定数を当該キャッシュメモリに展開する場合に必要となるメモリ容量の増加分が数キロバイトまでの範囲におさまる程度の数とする。
【００１６】
キャッシュメモリはアクセスレイテンシがストレージよりも小さく、キャッシュメモリへのアクセス時間は、ストレージへのアクセス時間に比べて短いので、以上の構成によれば、アクセス処理時間を低減できる機会が増大する。その結果、キャッシュメモリの容量の増加を抑えながら、アプリケーションプログラムが音声データを要求してから実際に発声するまでの時間のさらなる高速化が可能になる。
【図面の簡単な説明】
【００１７】
【図１】ナビゲーション装置１の概略的な構成の一例を示す図である。
【図２】音声データファイルのデータ構造の一例を示す模式図である。
【図３】ＣＰＵ１１の概略的な構成の一例を示す機能ブロック図である。
【図４】ＲＡＭ１４のメモリ領域について説明するための模式図である。
【図５】ＣＰＵ１１でのキャッシュ処理のフローの一例を示すフローチャートである。
【図６】ＣＰＵ１１での読み出し関連処理のフローの一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について図面を用いて説明する。本実施形態（以下、実施形態１）では、本発明の発声装置をナビゲーション装置１に適用した例を挙げて説明を行う。図１に示すナビゲーション装置１は、車両に搭載されるものであり、音声出力装置２０、ストレージ機器３０、およびこれらに接続された制御装置１０を備えている。なお、ここでは、便宜上、一般的なナビゲーション装置が有している機能に関する構成のうち、本発明の説明に不要なものについては説明を省略している。
【００１９】
音声出力装置２０は、スピーカ等から構成され、制御装置１０から出力された音声データに従って、経路案内時の案内音声などを発声する。
【００２０】
ストレージ機器３０は、電気的に書き込み可能な記憶装置である。ストレージ機器３０には大量のデータや電源をオフしても消去してはいけないデータを記憶したりする等の用途がある。なお、ストレージ機器３０は、比較的記憶容量の小さいリムーバブルなメモリであってもよい。例えば、ストレージ機器３０としては、ＨＤＤ（Hard disk drive）やＳＤカード（SD Memory Card）等を用いる構成とすればよい。
【００２１】
さらに、ストレージ機器３０には、音声出力装置２０から発声する案内音声のデータであり、複数の実音声データ（以下、単に音声データ）を含む音声データファイル（つまり、アーカイブ）が格納されている。なお、ストレージ機器３０が請求項のストレージに相当する。例えば、音声データは所定の形式で圧縮されてストレージ機器３０に格納される構成とする。
【００２２】
ここで、図２を用いて、ストレージ機器３０に格納される音声データファイルのデータ構造についての説明を行う。音声データファイルは、大別すると音声データ、音声データの索引となる音声オフセットテーブル、音声オフセットテーブルの索引となる音声管理レコードといった階層化したデータ構造となっている。図２の音声管理テーブルＡの並びが、音声管理レコードの階層のデータを示しており、図２の音声管理テーブルＢの並びが、音声オフセットテーブルの階層のデータを示している。
【００２３】
音声言語数は、音声データに用いられる言語の数を示している。一例として音声データに用いられる言語には、日本語、英語、フランス語、スペイン語、オランダ語、イタリア語、ドイツ語、中国語、韓国語等がある。
【００２４】
音声管理レコードは、言語ごとに設けられている。言い換えると、言語別に分類されている。例えば言語数がｎ個である場合には、１〜ｎの音声管理レコードが音声データファイルに含まれることになる。なお、言語ごとに設けられている音声管理レコードが請求項の一次索引データに相当する。
【００２５】
また、音声管理レコードには、音声数等の項目や音声オフセットテーブルへのオフセット及び音声オフセットテーブルのサイズの項目がある。音声オフセットテーブルへのオフセット及び音声オフセットテーブルのサイズは、複数のオフセットテーブルのうちの特定の１つのオフセットテーブルを指す値である。音声管理レコードは、例えば１レコードが数十バイト程度である。
【００２６】
音声オフセットテーブルも、言語ごとに設けられている。言い換えると、言語別に分類されている。例えば言語数がｎ個である場合には、１〜ｎの音声オフセットテーブルが音声データファイルに含まれることになる。
【００２７】
また、言語別の各音声オフセットテーブルには、それぞれ音声オフセットレコードが含まれる。音声オフセットレコードは、音声データを特定するＩＤ（以下、音声ＩＤ）ごとに設けられている。例えば１言語についての音声データがｌ個である場合には、１〜ｌの音声オフセットレコードが１つの音声オフセットテーブルに含まれることになる。なお、言語別に分類されるとともに音声ＩＤごとに設けられた音声オフセットレコードが請求項の二次索引データに相当する。
【００２８】
音声オフセットレコードには、音声ＩＤの項目や音声データへのオフセット及び音声データのサイズの項目がある。音声データへのオフセット及び音声データのサイズは、複数の音声データのうちの特定の１つの音声データを指す値である。音声オフセットレコードは、例えば１レコードが１０〜２０バイト程度である。また、音声オフセットレコードの数は、例えば１つの音声オフセットテーブルで約７５００である。
【００２９】
さらに、音声オフセットレコードは、使用頻度のより高い音声データの索引となる音声オフセットレコードほど、各音声オフセットテーブルでの格納順が先頭に近くなるように格納されている。
【００３０】
音声データは、例えば音声データがｋ個である場合には、１〜ｋの音声データが音声データファイルに格納されることになる。音声データは、例えば１レコードが数１０〜数百キロバイト程度である。
【００３１】
なお、音声データファイルが音声管理レコード、音声オフセットテーブル、音声データといった階層化したデータ構造をとっているのは、全体のデータのサイズを小さく抑えるためと、新たな音声データを追加する場合の編集の手間を抑えるためである。詳しくは、音声データを新たに追加する場合、音声管理レコードに変更は加えず、音声オフセットテーブルに、追加した音声データを索引する新たな音声オフセットレコードを追加するだけで済むようにするためである。
【００３２】
制御装置１０は、通常のマイコンとして構成されており、内部には周知のＣＰＵ１１、ＲＯＭ１３やＲＡＭ１４等のメモリ１２、図示しないＩ／Ｏ、及びこれらの構成を接続するバスラインが備えられている。ＣＰＵ１１は、図３に示すように、機能ブロックとして、キャッシュ部１１１、キャッシュメモリ探索部１１２、読み出し部１１３、キー取得部１１４、ストレージアクセス部１１５、ストレージ探索部１１６、及び発声部１１７を備えている。
【００３３】
ＣＰＵ１１は、音声データファイルの一部をＲＡＭ１４にキャッシュするキャッシュ処理や後述の音声案内アプリが要求する音声データをストレージ機器３０から読み出す処理に関連する読み出し関連処理を実行する。なお、キャッシュ処理や読み出し関連処理については後に詳述する。
【００３４】
ＲＯＭ１３は、不揮発性メモリであって、ＣＰＵ１１が実行するためのプログラムを格納している。例えばＲＯＭ１３は、所定のタイミングで案内音声を発声させるアプリケーションプログラム（以下、音声案内アプリ）や言語設定を管理するアプリ（以下、言語管理アプリ）等を格納している。
【００３５】
言語設定とは、複数の言語から音声案内に用いる言語を設定することを示す。また、言語管理アプリで管理する、言語設定されている言語（以下、現在の設定言語）や音声データファイル内での各言語の並び番号（以下、言語並び番号）についての情報は、例えばＲＡＭ１４やメモリ１２の図示しないＥＥＰＲＯＭに格納されるものとする。
【００３６】
ＲＡＭ１４は、アクセスレイテンシがストレージ機器３０よりも小さい揮発性メモリである。ＲＡＭ１４としては、例えばＤＲＡＭ（Dynamic Random Access Memory）を用いることができる。ここで、図４を用いて、ＲＡＭ１４のメモリ領域についての説明を行う。ＲＡＭ１４は、メモリ領域として、図４に示すようにプログラム領域とＲＡＭ領域を有している。プログラム領域は、ＲＯＭ１３に格納されているプログラムがコピーされる領域である。ＲＡＭ領域は、ＲＡＭ１４のメモリ領域のうちのプログラム領域以外の領域である。
【００３７】
プログラム領域には、図４に示すように、前述の音声案内アプリがコピーされる。また、ＲＡＭ領域には、図４に示すように、音声案内アプリの使用分のメモリ領域が割り当てられ、そのメモリ領域に前述の音声管理レコードの一部や音声オフセットテーブルの一部がキャッシュされる。よって、ＲＡＭ１４が請求項のキャッシュメモリに相当する。他にも、ＲＡＭ領域には、ＣＰＵ１１でデコードされた音声データが一時的に格納されたりする。
【００３８】
ここで、図５のフローチャートを用いて、ＣＰＵ１１でのキャッシュ処理についての説明を行う。図５のフローチャートは、音声案内アプリの起動時や言語設定の切り替わり時に開始する構成とすればよい。
【００３９】
なお、ナビゲーション装置１が搭載された車両のイグニッション電源やアクセサリ電源がオンになったときにナビゲーション装置１が連動して起動し、音声案内アプリも自動的に起動する構成である場合には、イグニッション電源やアクセサリ電源がオンになったときに図５のフローチャートを開始する構成としてもよい。また、言語設定の切り替わりは、言語管理アプリが実行されているＣＰＵ１１で検知する構成とすればよい。
【００４０】
まず、ステップＳ１では、キャッシュ部１１１が言語設定関連情報取得処理を行って、ステップＳ２に移る。言語設定関連情報取得処理では、言語管理アプリで管理している現在の設定言語及び言語並び番号をキャッシュ部１１１が取得する。現在の設定言語及び言語並び番号は、前述のＲＡＭ１４やＥＥＰＲＯＭから取得する構成とすればよい。
【００４１】
ステップＳ２では、キャッシュ部１１１が第１キャッシュ処理を行って、ステップＳ３に移る。第１キャッシュ処理では、ストレージ機器３０に格納されている音声データファイルにアクセスする。そして、ステップＳ１で取得した現在の設定言語及び言語並び番号をもとに、ストレージ機器３０に格納されている音声管理レコードのうち、現在の設定言語についての音声管理レコードのみをＲＡＭ１４に展開する。つまり、現在の設定言語についての音声管理レコードのみをＲＡＭ１４にキャッシュする。
【００４２】
ステップＳ３では、キャッシュ部１１１が第１キー取得処理を行って、ステップＳ４に移る。第１キー取得処理では、ステップＳ２でＲＡＭ１４にキャッシュした音声管理レコード（以下、キャッシュ音声管理レコード）にアクセスする。そして、キャッシュ音声管理レコードに含まれる音声オフセットテーブルへのオフセット（以下、テーブルオフセット）、及び音声オフセットテーブルのサイズ（以下、テーブルサイズ）を取得する。
【００４３】
ステップＳ４では、キャッシュ部１１１が、第２キャッシュ処理を行って、フローを終了する。第２キャッシュ処理では、ストレージ機器３０に格納されている音声データファイルにアクセスする。そして、ステップＳ３で取得したテーブルオフセット及びテーブルサイズをもとに、ストレージ機器３０に格納されている現在の設定言語についての音声オフセットテーブルのうち、所定数の音声オフセットレコードのみをＲＡＭ１４に展開する。つまり、現在の設定言語についての所定数の音声オフセットレコードのみをＲＡＭ１４にキャッシュする。
【００４４】
ここで言うところの所定数は、以下のような条件を満たすように予め設定しておく構成とすればよい。音声データファイルの全音声管理レコードをＲＡＭ１４にキャッシュする場合に対する、キャッシュ音声管理レコードをＲＡＭ１４にキャッシュする場合のメモリ容量の差分に対して、音声オフセットレコードをキャッシュする場合の必要となるメモリ容量の増加分が数キロバイトにおさまる程度の数とすればよい。一例として、所定数は数千とすればよい。
【００４５】
また、所定数の音声オフセットレコードの選び方としては、使用頻度のより高い所定数の音声データの索引となる、所定数の音声オフセットレコードを選ぶ構成とすればよい。具体的には、音声オフセットテーブルでの格納順が先頭に近いものから順に所定数の音声オフセットレコードを選ぶ構成とすればよい。これは、前述したように、音声オフセットテーブルにおいて、使用頻度のより高い音声データの索引となる音声オフセットレコードほど格納順が先頭に近くなるように格納してあるからである。なお、ランダムに所定数を選ぶ構成としても構わない。
【００４６】
続いて、図６のフローチャートを用いて、ＣＰＵ１１での読み出し関連処理についての説明を行う。図６のフローチャートは、前述のキャッシュ処理が完了したときに開始する構成とすればよい。
【００４７】
まず、ステップＳ１１では、音声案内アプリからの音声データの要求（以下、発声要求）があった場合（ステップＳ１１でＹＥＳ）には、ステップＳ１２に移る。一方、発声要求がなかった場合（ステップＳ１１でＮＯ）には、ステップＳ２０に移る。発声要求には、要求する音声データの音声ＩＤが引数として含まれるものとする。
【００４８】
ステップＳ１２では、キャッシュメモリ探索部１１２がキャッシュオフセットレコード探索処理を行って、ステップＳ１３に移る。キャッシュオフセットレコード探索処理では、発声要求の引数にある音声ＩＤをもとに、キャッシュ処理でＲＡＭ１４にキャッシュした音声オフセットレコードから、発声要求の引数にある音声ＩＤと一致する音声ＩＤを含む音声オフセットレコードを探索する。
【００４９】
そして、キャッシュオフセットレコード探索処理では、探索の対象の音声オフセットレコードを探索できた場合には、その音声オフセットレコードから、発声要求のあった音声データへのオフセット（以下、データオフセット）、及び発声要求のあった音声データのサイズ（以下、データサイズ）を取得する。
【００５０】
ステップＳ１３では、キャッシュオフセットレコード探索処理において、データオフセット及びデータサイズを取得できた場合（ステップＳ１３でＹＥＳ）には、ステップＳ１４に移る。一方、データオフセット及びデータサイズを取得できなかった場合（ステップＳ１３でＮＯ）には、ステップＳ１５に移る。
【００５１】
ステップＳ１４では、読み出し部１１３が第１音声データ読み出し処理を行って、ステップＳ１９に移る。第１音声データ読み出し処理では、ストレージ機器３０に格納されている音声データファイルにアクセスする。そして、キャッシュオフセットレコード探索処理で取得したデータオフセット及びデータサイズが指す音声データをストレージ機器３０から読み出す。言い換えると、キャッシュオフセットレコード探索処理で取得したデータオフセット及びデータサイズを参照して、音声データをストレージ機器３０から読み出す。
【００５２】
ステップＳ１３でデータオフセット及びデータサイズを取得できなかった場合のステップＳ１５では、キー取得部１１４が第２キー取得処理を行って、ステップＳ１６に移る。第２キー取得処理では、キャッシュ音声管理レコードにアクセスする。そして、キャッシュ音声管理レコードに含まれるテーブルオフセット及びテーブルサイズを取得する。
【００５３】
ステップＳ１６では、ストレージアクセス部１１５がストレージアクセス処理を行って、ステップＳ１７に移る。ストレージアクセス処理では、ストレージ機器３０に格納されている音声データファイルにアクセスする。そして、第２キー取得処理で取得したテーブルオフセット及びテーブルサイズが指す音声オフセットテーブルにアクセスする。
【００５４】
ステップＳ１７では、ストレージ探索部１１６がストレージ探索処理を行って、ステップＳ１１８に移る。ストレージ探索処理では、発声要求の引数にある音声ＩＤをもとに、ストレージアクセス処理でアクセスした音声オフセットテーブルから、発声要求の引数にある音声ＩＤと一致する音声ＩＤを含む音声オフセットレコードを探索する。そして、ストレージ探索処理では、探索の対象の音声オフセットレコードを探索できた場合には、その音声オフセットレコードから、データオフセット及びデータサイズを取得する。
【００５５】
ステップＳ１８では、読み出し部１１３が第２音声データ読み出し処理を行って、ステップＳ１９に移る。第２音声データ読み出し処理では、ストレージ機器３０に格納されている音声データファイルにアクセスする。そして、ストレージ探索処理で取得したデータオフセット及びデータサイズが指す音声データをストレージ機器３０から読み出す。言い換えると、ストレージ探索処理で取得したデータオフセット及びデータサイズを参照して、音声データをストレージ機器３０から読み出す。
【００５６】
ステップＳ１９では、発声部１１７が発声処理を行って、ステップＳ２０に移る。発声処理では、読み出し部１１３がストレージ機器３０から読み出した音声データをデコードして音声出力装置２０に出力し、音声出力装置２０から音声を出力させる。つまり、音声出力装置２０から発声させる。
【００５７】
ステップＳ２０では、読み出し関連処理の終了タイミングであった場合（ステップＳ２０でＹＥＳ）には、フローを終了する。一方、読み出し関連処理の終了タイミングでなかった場合（ステップＳ２０でＮＯ）には、ステップＳ１１に戻ってフローを繰り返す。
【００５８】
終了タイミングの一例としては、言語設定の切り替わり時や音声案内アプリの終了時がある。また、ナビゲーション装置１が搭載された車両のイグニッション電源やアクセサリ電源がオフになったときにナビゲーション装置１が連動して終了し、音声案内アプリも自動的に終了する構成である場合には、イグニッション電源やアクセサリ電源がオフになったときを終了タイミングとする構成としてもよい。
【００５９】
ここで、実施形態１における作用効果について説明を行う。従来技術と比較した作用効果について説明を行うため、従来技術における音声データの読み出しの処理についての説明を行う。なお、従来技術においても、音声データファイルのデータ構造自体は同じものとして説明を行う。
【００６０】
従来技術においては、ＣＰＵ１１は、音声案内アプリの起動時に、音声データファイルの全言語分の音声管理レコードをＲＡＭ１４にキャッシュする一方、音声オフセットレコードはＲＡＭ１４にキャッシュしない。また、発声要求には、要求する音声データの音声ＩＤ及び前述の言語並び番号が引数として含まれる。
【００６１】
続いて、発声要求があった場合に、ＣＰＵ１１は、発声要求の引数にある言語並び番号をもとに、ＲＡＭ１４にキャッシュした音声管理レコードから、発声要求の引数にある言語並び番号と一致する言語並び番号の音声管理レコードを探索する。そして、その音声管理レコードと同じ言語についての音声オフセットテーブルオフセット及びテーブルサイズを取得する。以降の処理については、前述のステップＳ１６〜ステップＳ１９と同様の処理を行う。
【００６２】
これに対して、実施形態１の構成では、現在の設定言語の音声オフセットレコードのうち所定数のデータをＲＡＭ１４にキャッシュする。よって、発声要求のあった音声データの索引となる音声オフセットレコードが、ＲＡＭ１４にキャッシュしてある場合には、ストレージ機器３０に格納される音声ファイルデータの音声オフセットレコードにアクセスして探索する必要がなくなる。また、ＲＡＭ１４はアクセスレイテンシがストレージ機器３０よりも小さく、ＲＡＭ１４へのアクセス時間は、ストレージ機器３０へのアクセス時間に比べて短い。従って、実施形態１の構成によれば、従来技術と比較して、アクセス処理時間を低減できる機会が増大する。
【００６３】
また、実施形態１では、現在の設定言語の音声管理レコードに絞ってＲＡＭ１４にキャッシュするとともに、メモリ容量の増加分が数キロバイトまでの範囲におさまる程度の数の、現在の設定言語の音声オフセットレコードをＲＡＭ１４にキャッシュする。よって、ＲＡＭ１４を大幅に増加させずに、現在の設定言語の音声オフセットレコードの一部もＲＡＭ１４にキャッシュできる。
【００６４】
なお、言語設定が切り替えられなければ、設定言語以外の言語（以下、設定外言語）の音声管理レコードが音声データの読み出しに必要となることはない。よって、設定言語の音声管理レコードに絞ってＲＡＭ１４にキャッシュした場合であっても、従来技術と比較して、ストレージ機器３０に格納される設定外言語の音声管理レコードにアクセスする必要性が余分に生じることがない。従って、従来技術に比較して、アクセス処理時間が増加するおそれはない。
【００６５】
その結果、実施形態１の構成によれば、ＲＡＭ１４の容量の増加を抑えながら、音声案内アプリが発生要求してから実際に発声するまでの時間のさらなる高速化が可能になる。
【００６６】
さらに、実施形態１の構成では、使用頻度のより高い音声データの索引となる所定数の音声オフセットレコードをＲＡＭ１４にキャッシュする。よって、発声要求があった場合に、キャッシュした音声オフセットレコードから、発声要求のあった音声データについてのデータオフセット及びデータサイズを取得できる可能性がより高くなる。従って、音声案内アプリが発生要求してから実際に発声するまでの時間のさらなる高速化を可能にする機会を増大させることができる。
【００６７】
また、実施形態１では、本発明の発声装置をナビゲーション装置に適用した例を挙げて説明を行ったが、必ずしもこれに限らない。例えば、本発明の発声装置を駐車支援装置や自動現金取引機器や自動販売機等の自動で案内音声を発声する装置に適用する構成としてもよい。ただし、本発明の発声装置は、前述したように、アプリが音声データを要求してから実際に発声するまでの時間のさらなる高速化を可能にするものであるため、当該高速化の要求がより厳しい車両で用いられて案内音声を発声する装置に適用することがより好ましい。一例としては、経路案内を行う車両用のナビゲーション装置や駐車支援を行う駐車支援装置等に適用することが好ましい。
【００６８】
なお、本発明は、上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【００６９】
１  ナビゲーション装置（発声装置）、１４  ＲＡＭ（キャッシュメモリ）、３０  ストレージ機器（ストレージ）、１１１  キャッシュ部、１１２  キャッシュメモリ探索部、１１３  読み出し部、１１７  発声部
【図１】
2014145845.tif 000003
【図２】
2014145845.tif 000004
【図３】
2014145845.tif 000005
【図４】
2014145845.tif 000006
【図５】
2014145845.tif 000007
【図６】
2014145845.tif 000008