図1を参照して、この実施例の電子書籍閲覧装置10は、しおり作成装置またはしおりの音声読み上げ装置(出力装置)としても機能し、CPU12を含む。CPU12には、キー入力装置14、表示ドライバ16、タッチパネル20、ハードディスクドライブ(HDD)22、RAM24およびD/A変換器26が接続される。また、表示ドライバ16には、ディスプレイ18が接続される。図示は省略するが、タッチパネル20は、ディスプレイ18上に設けられる。さらに、D/A変換器26には、スピーカ28が接続される。
CPU12は、電子書籍閲覧装置10の全体制御を司る。また、CPU12にはRTC12aが内蔵され、RTC12aでカウントされる時刻情報(年月日および時分秒)がCPU12に与えられる。
キー入力装置14は、図示は省略するが、アルファベットまたは仮名或いは記号(符号、数字など)などを入力するための各種キーを含む。たとえば、各種キーは、Qwerty配列で配置される。使用者が操作したキーに対応する情報(キーデータ)はCPU12に入力される。
表示ドライバ16は、CPU12の指示の下、ディスプレイ18の表示を制御する。図示は省略するが、表示ドライバ16は、ディスプレイ18に表示する画面に対応する表示画像データを一時的に記憶するVRAM(Video−RAM)を有している。CPU12は、表示画像データを、このVRAMに記憶させる。
タッチパネル20は、ディスプレイ18の画面内で、任意の位置を指示するためのポインティングデバイスである。たとえば、この実施例のタッチパネル20は、指などの物体が表面に接近して生じた電極間の静電容量の変化を検出する静電容量方式のタッチパネルであって、たとえば1本または複数本の指がタッチパネル20に触れたことを検出可能である。また、タッチパネル20は、その表面(上面)を指で、押したり、撫でたり、触れたりすると、その指の位置を特定し、操作された位置(タッチ位置)を示す座標のデータ(座標データ)をCPU12に出力する。CPU12は、タッチパネル20からの座標データに基づいて、使用者の指の動きによる操作を特定したり、使用者がタッチした位置に対応してディスプレイ18に表示される画像などを特定したりする。
以下、この実施例においては、使用者がタッチパネル20の上面を指で触れる操作を「タッチ」と言うことにする。一方、タッチパネル20から指を離す操作を「リリース」と言うことにする。また、タッチパネル20の上面を指で撫でる操作を「スライド」と言うことにする。さらに、タッチパネル20の上面を指で弾いたり、はらったりする操作を「フリック」と言うことにする。そして、タッチによって示された座標を「タッチ点(タッチ開始位置)」、リリースによって示された座標を「リリース点(タッチ終了位置)」と言うことにする。さらに、使用者がタッチパネル20の上面をタッチし、続けてリリースする操作を「タッチアンドリリース」と言うことにする。そして、タッチ、リリース、スライド、フリックおよびタッチアンドリリースなどのタッチパネル20に対して行う操作を、総じて「タッチ操作」と言うことにする。
なお、タッチ操作は指だけに限らず、導電体が先端に取り付けられたタッチペン(スタイラスペン)など、その他の物体によって行われてもよい。また、この実施例では、タッチパネル20としては、表面型の静電容量方式のタッチパネルを採用してあるが、抵抗膜方式、超音波方式、赤外線方式および電磁誘導方式などの他の方式のタッチパネルを採用してもよい。
HDD22は、この実施例の電子書籍閲覧装置10の主記憶装置であり、後述する、制御プログラム、電子書籍の情報(電子書籍データ)、文字認識用データ、合成音声データなどを記憶し、必要に応じて、RAM24にロードする。RAM24は、CPU12の作業領域(描画領域を含む)ないしバッファ領域として用いられる。
なお、この実施例では、不揮発性メモリとして、HDD22を用いるようにしてあるが、フラッシュメモリやEEPROMのような他の不揮発性メモリを用いることも可能である。
D/A変換器26は、デジタル音声信号をアナログ音声信号に変換(復号)して、アンプを介してスピーカ28に与える。したがって、アナログ音声信号に対応する音声ないし音がスピーカ28から出力される。
たとえば、このような電子書籍閲覧装置10において、メニュー画面(図示せず)において、キー入力装置14やタッチパネル20用いた使用者からの指示によって、所望の電子書籍が選択され、その閲覧の指示が入力されると、図2に示すような閲覧画面100がディスプレイ18に表示される。閲覧画面100では、表示領域102に電子書籍の本文(内容)が表示される。詳細な説明は省略するが、閲覧の指示が入力され、電子書籍の本文が表示される当初では、当該本文の先頭から表示される。
なお、図2(図3−図7も同じ)では、簡略化のため、本文の一部のみを日本語で示してある。後述するしおりの一覧についても同様である。
また、閲覧画面100の右端には、ボタン画像110およびボタン画像112が設けられ、その間に、スクロールバー114が表示される。ボタン画像110は、閲覧画面100を下方向にスクロールさせるためのボタンである。また、ボタン画像112は、閲覧画面100を上方向にスクロールさせるためのボタンである。たとえば、ボタン画像110またはボタン画像112がタッチされると、閲覧画面100は下方向または上方向にスクロールされる。
また、閲覧画面100が下方向または上方向にスクロールされるに従ってスクロールバー114が上下に移動される。ただし、スクロールバー114をタッチして上下にスライド(ドラッグ)させることにより、閲覧画面100を下方向または上方向にスクロールさせることもできる。
さらに、ボタン画像112の下側に、ボタン画像116およびボタン画像118が表示される。ボタン画像116は、表示領域102の縦方向の長さ単位で、閲覧画面100を下方向にスクロールさせるためのボタンである。また、ボタン画像118は、表示領域102の縦方向の長さ単位で、閲覧画面100を上方向にスクロールさせるためのボタンである。たとえば、ボタン画像116またはボタン画像118が、タッチされると、閲覧画面100が縦方向の長さ単位で、下方向または上方向にスクロールされる。
なお、ここでは、ボタン画像110、112、116、118およびスクロールバー114をタッチ操作するようにしてあるが、カーソル(矢印)キー、ページアップキー、または、ページダウンキーを操作するようにしてもよい。
使用者が、電子書籍を閲覧中に、しおり作成(登録)の指示を入力すると、しおりを作成したい場所(位置)を選択可能な状態となる。このとき、使用者が所望の範囲すなわち先頭位置および末尾位置をタッチ(指定)すると、当該範囲がしおりを設定する範囲として選択される。
なお、詳細な説明は省略するが、この実施例では、使用者は、所定の文字数(全角20文字以内)で範囲を選択可能である。
一方、使用者が所望の範囲を選択しない場合には、チャプターやページの先頭から所定の文字数(この実施例では、全角20文字)で決定される範囲がしおりを設定する範囲として自動で選択される。ただし、電子書籍の本文に、チャプターやページのような所定の区切りが設定されていない場合には、ディスプレイ18の表示領域102の先頭から所定の文字数(全角20文字)で決定される範囲がしおりを設定する範囲として自動で選択される。
しおりを設定する範囲が選択されると、図3に示すように、表示領域102に表示された本文では、選択された範囲(選択範囲)にマーカ102aが表示(設定)される。ただし、図3では、マーカ102aを四角枠で示してある。以下、マーカ102aが表示される場合について同様である。図示は省略するが、自動で選択される範囲については、当該範囲(文字数)を予め知ることができないため、予め設定された長さのマーカ102aが本文の該当箇所に表示(設定)される。したがって、上述したように、自動で選択範囲の先頭位置が決定(指定)されると、マーカ102aの長さによって末尾位置が決定(指定)される。
なお、この実施例では、選択範囲にマーカ102aを表示するようにしてあるが、選択範囲に含まれる文字列を他の文字とは異なる色で表示したり、色反転して表示したりしてもよい。
また、しおりを設定する範囲が選択されると、当該範囲に表示される(含まれる)文字列が読み込まれる。この実施例では、しおり情報として、選択範囲に含まれる文字列に対応するテキストデータを登録するようにしてあるため、テキストの読み取りエンジンによって、選択範囲の文字列が読み取られる。ただし、自動で選択される範囲については、チャプターやページの先頭から20文字分の読み取りを実行したり、表示領域102aの先頭から20文字分の読み取りを実行したりする。また、電子書籍は、日本語以外の言語で記載されている場合もあるため、電子書籍閲覧装置10に登録されているすべての言語についての読み取りエンジンを用いて、読み取りが実行される。
読み取りに成功すれば、文字列に対応するテキストデータをしおり情報として登録することができる。かかる場合には、選択範囲の位置情報と、当該選択範囲において自動で読み込まれた文字列に対応するテキストデータを含むしおり情報が登録される。
一方、読み取りに失敗すれば、エラーとなり、自動でテキストデータをしおり情報として登録することができない。これは、電子書籍データが、PDF形式、JPEG形式、BMP形式など、テキスト形式以外の形式で作成されている場合があるからである。
かかる場合には、選択範囲に関する文字列を使用者が入力したり、選択範囲(設定するしおり)についての固有の情報(この実施例では、日時情報)の文字列が自動で入力されたりする。ただし、選択範囲に関する文字列とは、選択範囲に含まれる文字列または当該範囲について使用者が任意に入力した文字列を意味する。
したがって、文字列が使用者によって入力された場合には、選択範囲の位置情報と、使用者によって入力された文字列に対応するテキストデータを含むしおり情報が登録される。また、日時情報の文字列が自動で入力された場合には、選択範囲の位置情報と、日時情報の文字列に対応するテキストデータを含むしおり情報が登録される。
たとえば、選択範囲についての文字列の読み取りに失敗すると、図4に示すように、閲覧画面100の前面に、使用者が文字列を入力するかどうかを選択するための入力選択画面150が表示される。この入力選択画面150は、表示領域150aを含み、表示領域150aには、しおりに登録する語句ないし文章(文字列)、すなわち選択範囲に関する文字列を、使用者が入力するかどうかを選択する旨のテキストが表示される。また、表示領域150aの下側には、ボタン画像150bおよびボタン画像150cが表示される。ボタン画像150bは、使用者が文字列を入力することを選択するために設けられる。ボタン画像150cは、使用者が文字列を入力しないことを選択するために設けられる。
ただし、ボタン画像150bをタッチすることに代えて、Yキーが操作されてもよいし、同様に、ボタン画像150cをタッチすることに代えて、Nキーが操作されてもよい。
入力選択画面150でボタン画像150bがタッチされることにより、使用者が文字列を入力することが選択されると、図5に示すように、入力選択画面150に代えて、文字列を入力するための入力画面200が閲覧画面100の前面に表示される。この閲覧画面100には、表示領域200aが設けられ、表示領域200aには、文字列を、所定の文字数(この実施例では、20文字)以内で入力する旨がテキストで表示される。また、表示領域200aの下側には、表示領域200bが設けられ、表示領域200bには、入力された文字列が表示されるとともに、その下側に、ボタン画像200cおよびボタン画像200dが表示される。ボタン画像200cは、文字列の入力を終了するために設けられる。ボタン画像200dは、文字列の入力をキャンセルするために設けられる。
ただし、ボタン画像200cをタッチすることに代えて、Fキーが操作されてもよいし、同様に、ボタン画像200dをタッチすることに代えて、Cキーが操作されてもよい。
ボタン画像200cがタッチされることにより、文字列の入力を終了すると、入力された文字列に対応するテキストデータが、しおり情報として登録される。一方、ボタン画像200dがタッチされることにより、文字列の入力をキャンセルすると、図4に示した入力選択画面150に戻る。
また、図4に示した入力選択画面150において、ボタン画像150cがタッチされることにより、使用者が文字列を入力しないことが選択されると、日時情報に対応するテキストデータが、しおり情報のテキストデータとして登録される。このとき、CPU12は、RTC12aから現在時刻(年月日を含む)を取得して、それに対応するテキストデータを登録する。
なお、しおりが登録されると、図2に示したような通常の閲覧画面100に戻る。ただし、しおりが登録されている箇所は、図3に示したように、マーカ102aでハイライト表示される。
また、この実施例の電子書籍閲覧装置10では、登録されたしおりを音声で読み上げること(しおりの音声読み上げ)ができる。簡単に説明すると、しおり情報に含まれるテキストデータに対応するテキストが合成音声でスピーカ28から出力される。たとえば、図2や図3に示したような閲覧画面100がディスプレイ18に表示されている場合に、使用者がキー入力装置14を用いて、しおりの音声読み上げを指示すると、図6に示すように、閲覧画面100の表示が変化される。
図6に示すように、しおりの音声読み上げを実行する場合には、たとえば、表示領域102が縮小されて、閲覧画面100の右側に表示される。そして、閲覧画面100の左側には、その中央に、表示領域104が設けられる。表示領域104の中央であり、その右端部には、ボタン画像250が設けられる。また、表示領域104の上側には、ボタン画像120およびボタン画像122が並んで表示される。さらに、表示領域104の下側には、操作パネル252が表示される。
表示領域104には、複数のチェックボックス104aがその左端に表示され、各チェックボックス104aに対応して、登録されたしおりの文字列が表示される。ただし、空白となっている箇所は、しおりが未登録であることを示す。
ボタン画像120は、しおりの一覧に代えて目次(図示せず)を表示領域104に表示するために設けられる。ボタン画像122は、目次に代えてしおりの一覧を表示領域104に表示するために設けられる。ボタン画像250は、表示領域104と閉じるとともに、ボタン画像120、122および操作パネル252を非表示するために設けられる。したがって、このボタン画像250がタッチされると、図2または図3に示したような閲覧画面100に戻る。
操作パネル252は、ボタン画像252a、ボタン画像252b、ボタン画像252cおよびボタン画像252dを含む。ボタン画像252aは、しおりの音声読み上げを開始するために設けられる。ボタン画像252bは、しおりの音声読み上げを停止して、読み上げを停止したときの当該しおりについての文字列を含む本文の内容を表示領域102に表示するために設けられる。ボタン画像252cは、1つ前のしおりに戻るために設けられる。そして、ボタン画像252dは、次のしおりに進むために設けられる。具体的には、しおりを音声で読み上げている場合に、ボタン画像252cまたはボタン画像252dがタッチされると、チェックボックス104aのチェックが1つ前または次のしおりに付されるとともに、1つ前または次のしおりを音声で読み上げる。ただし、しおりを音声で読み上げていない場合には、ボタン画像252cまたはボタン画像252dがタッチされると、チェックボックス104aのチェックが1つ前または次のしおりに付されるだけである。
たとえば、しおりの音声読み上げの実行が指示されると、電子書籍データの属性情報として、言語情報が記憶されているかどうかを判断する。これは、テキストデータで記憶されているしおりの文字列を、正しい言語の音声変換エンジンを用いて、音声で読み上げるためである。
電子書籍データに関連して言語情報が記憶されている場合には、当該言語情報を抽出して、該当する言語の音声変換エンジンを選択する。該当する言語の音声変換エンジンが電子書籍閲覧装置10に記憶(登録)されている場合には、ボタン画像252aがタッチされることに応じて、しおりが設定された文字列が順次音声で読み上げられる。具体的には、しおりが設定された文字列のテキストデータが、当該文字列の言語についての合成音声データおよび音声変換エンジンを用いてデジタル音声信号に変換され、さらに、D/A変換器26でアナログ音声信号に変換された後に、スピーカ28から出力される。以下、しおりを音声で読み上げる場合について同様である。
ただし、該当する言語の音声変換エンジンが電子書籍閲覧装置10に記憶(登録)されていない場合には、音声読み上げできない旨が使用者に報知される。図示は省略するが、しおりを音声で読み上げることができない旨のメッセージが閲覧画面100の前面に表示されたり、警告音がスピーカ28(または、図示しない別のスピーカ)から出力されたり、それらの両方が実行されたりする。以下、しおりを音声で読み上げることができない場合について同様である。
また、電子書籍データに関連して言語情報が記憶されていない場合には、図7に示すように、使用者に言語を選択させるための言語選択画面300が、閲覧画面100の前面に表示される。言語選択画面300では、表示領域302が表示され、その右側にボタン画像304が表示される。さらに、表示領域302およびボタン画像304の下方に、ボタン画像306が表示される。
表示領域302には、使用者が選択した言語が表示される。ボタン画像304は、言語をプルダウンメニュー(図示せず)で表示するために設けられる。したがって、使用者は、ボタン画像304をタッチすることにより、プルダウンメニューを表示して、表示領域302に表示される言語を変更することができる。ただし、プルダウンメニューには、言語を自動で選択する(使用者が言語を選択しない)旨の表示(たとえば、「自動選択」)も含まれる。これは、使用者が電子書籍の言語を知らない(認識していない)場合もあるからである。ボタン画像306は、使用者が選択した言語を決定するために設けられる。
ただし、ボタン画像306をタッチすることに代えて、ENTERキーが操作されてもよい。また、図示は省略するが、ボタン画像306がタッチされ、使用者が選択した言語が決定されると、選択言語画面300が非表示され、図6に示したような閲覧画面100に戻る。
言語選択画面300において、使用者が言語を選択した場合には、上述したように、当該言語の音声変換エンジンが電子書籍閲覧装置10に登録されているかどうかに応じた処理が実行される。簡単に説明すると、該当する言語の音声変換エンジンが電子書籍閲覧装置10に登録されている場合には、上述したように、操作パネル252に設けられた各ボタン画像252a−252dがタッチされた場合の処理が実行される。一方、該当する言語の音声変換エンジンが電子書籍閲覧装置10に登録されていない場合には、音声読み上げ出来ない旨が報知される。このことは、後述するように、言語の判定に失敗した場合についても同様である。
また、言語選択画面300において、使用者が言語を選択しない場合には、つまり「自動選択」を決定した場合には、自動的に言語が判定される。具体的には、まず、電子書籍データがテキストデータで作成されているかどうかが判断される。電子書籍データがテキストデータで作成されている場合には、その一部を抽出し、言語を判定する。このとき、複数の言語についての読み取りエンジンを用いて、テキストデータを読み取ることができるかどうかが判断され、読み取ることができた読み取りエンジンについての言語が電子書籍の言語であると判定される。
一方、電子書籍データがテキストデータで作成されていない場合には、当該電子書籍データの一部を抽出して、テキストデータに変換する。たとえば、テキストデータに変換する技術としては、周知のOCR(Optical Character Reader)の技術を使用することができる。ただし、電子書籍データは、印字等された文字を光学的に読み取ったデータと同等であるため、OCRが実行される場合には、光学的に読み取る処理は実行されず、予め記憶されたパターン(文字認識用データ)と照合されることにより、文字列が特定され、特定された文字列のテキストデータが出力される。そして、上述したように、複数の言語についての読み取りエンジンを用いて、言語が判定される。
言語の判定に失敗すると、しおりを音声で読み上げることができないことが判断され、音声読み上げ出来ない旨が報知される。一方、言語の判定に成功すると、判定された言語についての音声変換エンジンが電子書籍閲覧装置10に登録されているかどうかに応じた処理が実行される。
図8は図1に示したRAM24のメモリマップ500の一例を示す図である。図8に示すように、RAM24は、プログラム記憶領域502およびデータ記憶領域504を含む。プログラム記憶領域502は、電子書籍閲覧装置10の制御プログラムを記憶し、制御プログラムは、画像生成プログラム502a、画像表示プログラム502b、しおり作成プログラム502c、しおり読み上げプログラム502d、テキスト変換プログラム502e、読み取りエンジン502fおよび音声変換エンジン502gなどによって構成される。
画像生成プログラム502aは、電子書籍データ504a、しおりデータ504dおよびボタン画像データ(図示せず)等を用いて、各種画面(100、150、200、300など)についての表示画像データを生成するためのプログラムである。画像表示プログラム502bは、画像生成プログラム502aに従って生成された表示画像データをディスプレイ18に出力するためのプログラムである。
しおり作成プログラム502cは、自動的に、または、使用者の指示に従って、しおり情報を作成するためのプログラムである。しおり読み上げプログラム502dは、後述する音声変換エンジン502gおよび合成音声データ504cを用いて、しおりデータ504dに含まれるしおりのテキストデータを音声で出力するためのプログラムである。
テキスト変換プログラム502eは、電子書籍データの一部をテキストデータに変換するためのプログラムである。読み取りエンジン502fは、テキストデータを読み取るためのプログラムであり、この実施例では、電子書籍データを読み取り可能であるかどうかを判断する。ただし、読み取りエンジン502fは、複数の言語の各々に対応して設けられる。音声変換エンジン502gは、合成音声データ504cを用いて、テキストデータを音声で出力するためのプログラムである。この音声変換エンジン502gは、複数の言語の各々に対応して設けられる。
なお、図示は省略するが、プログラム記憶領域502には、他のプログラムも記憶される。
データ記憶領域504には、電子書籍データ504a、文字認識用データ504b、合成音声データ504cおよびしおりデータ504dが記憶される。
電子書籍データ504aは、出版物についての所定の形式(フォーマット)の電子データであり、図示しない言語情報などの属性情報が関連して記憶される。電子書籍データ504aは、1の出版物のみならず、複数の出版物を含む場合がある。文字認識用データ504bは、テキスト変換プログラム502eで、電子書籍データ504aをテキストデータに変換する際に、文字を認識するためのパターンについてのデータである。
合成音声データ504cは、テキストデータを音声で出力する際に用いられる音声データであり、言語毎に記憶される。しおりデータ504dは、しおり情報についてのデータである。上述したように、しおり情報は、少なくとも、しおりを設定する電子書籍の本文中の範囲についての位置情報(アドレス情報)と、しおりを設定する文字列のテキストデータとを含む。
図示は省略するが、データ記憶領域504には、ボタン画像などのキャラクタ画像のデータなどの他のデータも記憶される。また、データ記憶領域504には、制御プログラムの実行に必要な、カウンタ(タイマ)やフラグなども設けられる。
図9は図1に示したCPU12のしおり作成処理を示すフロー図である。使用者がしおり作成の指示を入力すると、図9に示すように、CPU12は、しおり作成処理を開始し、ステップS1で、任意の範囲の選択があるかどうかを判断する。つまり、使用者がしおりを設定する範囲(先頭位置および末尾位置)を指定したかどうかを判断する。ステップS1で“YES”であれば、つまり任意の範囲が選択されれば、ステップS3で、選択範囲の読み込みを行い、ステップS7に進む。ステップS3では、使用者が指定した先頭位置と末尾位置とで決定される選択範囲に含まれる文字列を読み取りエンジン502fで読み取ることができるかどうかを判断する。上述したように、読み取ることができない場合には、エラーとなる。後述するステップS5においても同様である。一方、ステップS1で“NO”であれば、つまり任意の範囲が選択されなければ、ステップS5で、先頭から20文字を選択範囲として読み込みを行い、ステップS7に進む。
なお、詳細な説明は省略するが、使用者がしおりを設定する位置ないし範囲を考えている時間を考慮するため、任意の範囲が選択されたかどうかの判断処理は、所定時間(たとえば、5〜10秒)実行される。
ステップS7では、正しく読み取れたかどうかを判断する。ステップS7で“YES”であれば、つまり正しく読み取れれば、ステップS9で、しおりデータ504dに、選択範囲(アドレス情報)および文字列情報を記憶(追加)して、しおり作成処理を終了する。つまり、ステップS9では、選択範囲についての位置情報と、当該選択範囲について自動で読み取ったテキスデータとを含むしおり情報が登録される。一方、ステップS7で“NO”であれば、つまり正しく読み取れなければ、ステップS11で、図4に示したような入力選択画面150をディスプレイ18に表示する。
次のステップS13では、自動入力かどうかを判断する。つまり、ボタン画像150bがタッチされたか、ボタン画像150cがタッチされたかを判断する。ステップS13で“YES”であれば、つまりボタン画像150cがタッチされれば、自動入力が選択されたと判断して、ステップS15で、しおりデータ504dに、選択範囲の位置情報および日時情報を記憶(追加)して、しおり作成処理を終了する。ただし、CPU12は、ステップS15の処理を実行するとき、RTC12aから日時情報を取得する。また、ステップS15では、選択範囲についての位置情報と、日時情報のテキストデータとを含むしおり情報が登録される。
また、ステップS13で“NO”であれば、つまりボタン画像150bがタッチされれば、手動入力が選択されたと判断して、ステップS17で、図5に示したような入力画面200をディスプレイ18に表示する。次のステップS19では、キャンセルかどうかを判断する。つまり、CPU12は、ボタン画像200dがタッチされたかどうかを判断する。
ステップS19で“YES”であれば、つまりボタン画像200dがタッチされれば、キャンセルであると判断して、ステップS11に戻る。つまり、入力選択画面150に戻る。一方、ステップS19で“NO”であれば、つまりボタン画像200dがタッチされなければ、ステップS21で、文字列の入力の終了であるかどうかを判断する。
ステップS21で“NO”であれば、つまり文字列の入力の終了でなければ、そのままステップS19に戻る。したがって、文字列の入力が継続される。図示は省略するが、ステップS19とS21とのループを処理している間に、キー入力装置14を用いて文字が入力されると、入力された文字が表示領域200bに表示されるのである。
一方、ステップS21で“YES”であれば、つまり文字列の入力の終了であれば、ステップS23で、しおりデータ504dに、選択範囲(アドレス情報)および文字列情報を記憶(追加)して、しおり作成処理を終了する。つまり、ステップS23では、選択範囲の位置情報と、使用者が手動で入力した文字列に対応するテキストデータと含むしおり情報が登録される。
図10−図12は、図1に示したCPU12のしおりの音声読み上げ処理を示すフロー図である。使用者がしおりの音声読み上げを指示すると、CPU12は、しおりの音声読み上げ処理を開始し、ステップS51で、言語情報があるかどうかを判断する。つまり、当該電子書籍データに関連して記憶された属性情報に言語情報が記述されているかどうかを判断する。
ステップS51で“YES”であれば、つまり言語情報が有れば、ステップS53で、言語情報を抽出して、図11に示すステップS71に進む。一方、ステップS51で“NO”であれば、つまり言語情報が無ければ、ステップS55で、図7に示したような言語選択画面300をディスプレイ18に表示して、ステップS57で、言語の選択が有るかどうかを判断する。つまり、CPU12は、いずれかの言語が選択された状態で、ボタン画像306がタッチされたかどうかを判断する。
ステップS57で“YES”であれば、つまり言語が選択されれば、そのままステップS71に進む。一方、ステップS57で“NO”であれば、つまり「自動選択」が選択されれば、言語が選択されていないと判断して、ステップS59で、電子書籍データがテキストデータであるかどうかを判断する。ここでは、複数の言語の読み取りエンジン502fによって読み取り可能であるかどうかを判断する。上述したように、読み取り不能であれば、エラーとなる。
ステップS59で“YES”であれば、つまり読み取りエンジン502fで読み取り可能であれば、電子書籍データはテキストデータであると判断して、ステップS61で、テキストデータの一部(たとえば、数行程度)を抽出して、図11に示すステップS65に進む。一方、ステップS59で“NO”であれば、つまり読み取りエンジン502fで読み取り不能であれば、ステップS63で、電子書籍データの一部(たとえば、数行程度に相当する範囲)をテキストデータに変換する処理を実行して、ステップS65に進む。上述したように、ステップS63では、OCRの技術を用いて、電子書籍データの一部がテキストデータに変換される。このとき、パターン認識のために、文字認識用データ504bが使用される。
図11に示すように、ステップS65では、テキストデータの抽出に成功したかどうかを判断する。ステップS65で“NO”であれば、テキストデータの抽出に失敗すれば、ステップS75に進む。たとえば、電子書籍データをテキストデータに正しく変換できない場合には、テキストデータを抽出することができない。一方、ステップS65で“YES”であれば、つまりテキストデータの抽出に成功すれば、ステップS67で、言語判定処理を実行し、ステップS69で、言語判定に成功したかどうかを判断する。
ただし、ステップS67では、CPU12は、複数の言語の読み取りエンジン502fで読み取りを実行し、正しく読み取ることができた読み取りエンジンについての言語を、抽出したテキストデータすなわち電子書籍データの言語として判定する。一方、複数の言語の読み取りエンジン502fによって、抽出したテキストデータを読み取ることができなければ、言語判定に失敗したことになる。
ステップS69で“NO”であれば、つまり言語判定に失敗すれば、ステップS75に進む。一方、ステップS69で“YES”であれば、つまり言語判定に成功すれば、ステップS71で、音声変換エンジンを選択する。ここでは、CPU12は、電子書籍の言語についての音声変換エンジンを選択する。次のステップ73では、該当する音声変換エンジンが有るかどうかを判断する。つまり、該当する言語の音声変換エンジンが電子書籍閲覧装置10(プログラム記憶領域502)に登録(記憶)されているかどうかを判断する。
ステップS73で“NO”であれば、つまり該当する音声変換エンジンが無ければ、ステップS75で、音声読み上げ不可を使用者に報知する。ここでは、CPU12は、音声読み上げが出来ない旨のメッセージをディスプレイ18に表示したり、その旨の音(警告音)をスピーカ28などから出力したり、それらの両方を実行したりする。
一方、ステップS73で“YES”であれば、つまり該当する音声変換エンジンが有れば、図12に示すステップS77で、音声読み上げの開始かどうかを判断する。つまり、CPU12は、ボタン画像252aがタッチされたかどうかを判断する。
ステップS77で“NO”であれば、つまり音声読み上げの開始でなければ、そのままステップS81に進む。一方、ステップS77で“YES”であれば、つまり音声読み上げの開始であれば、ステップS79で、しおりの音声読み上げを開始する。ここでは、ステップS71で選択された音声変換エンジン502gを動作させることにより、合成音声データ504cを用いて、チェックボックス104aにチェックが入っている文字列についてのテキストデータから順に、音声読み上げが実行される。したがって、しおりの文字列に対応する音声がスピーカ28から出力される。図示は省略したが、電子書籍閲覧装置10にイヤホンジャックを設ける場合には、イヤホンが接続されたときに、しおりの文字列に対応する音声がそのイヤホンジャックから出力される。ただし、電子書籍閲覧装置10がBluetooth(登録商標)のような無線通信機能を備え、使用者がこの電子書籍閲覧装置10と無線通信可能なイヤホンを装着している場合には、音声読み上げによる音声データが当該イヤホンに無線通信によって送信される。
次のステップS81では、停止かどうかを判断する。つまり、CPU12は、ボタン画像252bがタッチされたかどうかを判断する。ステップS81“NO”であれば、つまり停止でなければ、そのままステップS87に進む。一方、ステップS81で“YES”であれば、つまり停止であれば、ステップS83で、しおりの音声読み上げを停止し、つまり音声変換エンジン502gを停止させる。そして、ステップS85で、該当する電子書籍の内容を表示して、ステップS87に進む。ここでは、CPU12は、チェックボックス104aがチェックされたしおり(文字列)に対応するテキストデータとともにしおり情報に含まれる位置情報(アドレス情報)を取得し、当該位置情報を含むページを表示領域102に表示したり、当該位置情報を先頭に表示領域102に本文を表示したりする。
ステップS87では、戻りかどうかを判断する。つまり、CPU12は、ボタン画像252cがタッチされたかどうかを判断する。ステップS87で“NO”であれば、つまり戻りでなければ、そのままステップS91に進む。一方、ステップS87で“YES”であれば、つまり戻りであれば、ステップS89で、1つ前のしおりに戻って、ステップS91に進む。ステップS89では、手前の(1つ上の)しおりのチェックボックス104aがチェックされ、音声読み上げ中であれば、当該手前のしおりについての文字列ないし日時情報が音声で読み上げられる。ただし、最上段のしおりのチェックボックス104aがチェックされているときに、ボタン画像252cがタッチされると、最下段のしおりのチェックボックス104aがチェックされたり、読み上げられたりする。
次のステップS91では、送りかどうかを判断する。つまり、CPU12は、ボタン画像252dがタッチされたかどうかを判断する。ステップS91で“NO”であれば、つまり送りでなければ、そのままステップS95に進む。一方、ステップS91で“YES”であれば、つまり送りであれば、ステップS93で、次のしおりに進んで、ステップS95に進む。ステップS93では、次の(1つ下の)しおりのチェックボックス104aがチェックされ、音声読み上げ中であれば、当該次のしおりについての文字列ないし日時情報が音声で読み上げられる。ただし、最下段のしおりのチェックボックス104aがチェックされているときに、ボタン画像252dがタッチされると、最上段のしおりのチェックボックス104aがチェックされたり、読み上げられたりする。
そして、ステップS95では、終了かどうかを判断する。つまり、音声読み上げの終了が指示されたかどうかを判断する。ステップS95で“NO”であれば、つまり終了でなければ、そのままステップS77に戻る。一方、ステップS95で“YES”であれば、つまり終了であれば、しおりの音声読み上げ処理を終了する。
この実施例によれば、しおりの文字列情報を音声で出力するので、目視により所望のしおりを検索するよりも容易に検索することができる。特に、多数のしおりが登録されている場合には、その効果が顕著に現れる。
なお、この実施例では、電子書籍を閲覧する装置として、専用の電子書籍閲覧装置を用いた場合について説明したが、これに限定される必要はない。たとえば、PDA、携帯電話機、スマートフォン、タブレット型のコンピュータ(iPad、iPod、Walkman(登録商標)などを含む)、PC(ノート、デスクトップ)、携帯ゲーム機、電子黒板、デジタルフォトフレーム、電子レンジおよび冷蔵庫などを用いることもできる。ただし、電子レンジおよび冷蔵庫は、レシピなどを読む機能が付いていることを前提とする。
たとえば、携帯電話機やスマートフォンを用いる場合には、音声を出力しないモード(マナーモード)が設定されている場合がある。かかる場合には、しおりの音声読み上げを開始することが判断されたときに、音声読み上げするかどうかを使用者に確認し、使用者が音声読み上げすることを選択した場合に、しおりの音声読み上げを開始するようにすればよい。
したがって、携帯電話機やスマートフォンを用いる場合には、図13に示すように、図10−図12に示したしおり音声読み上げ処理の一部が変更される。図13に示すように、CPU12は、ステップS77で“YES”と判断すると、ステップS101で、マナーモードが設定されているかどうかを判断する。ステップS101で“NO”であれば、つまりマナーモードが設定されていなければ、そのままステップS79に進む。
一方、ステップS101で“YES”であれば、つまりマナーモードが設定されていれば、ステップS103で、確認画面をディスプレイ18に表示する。図示は省略するが、たとえば、確認画面には、マナーモードが設定されているが、しおりを読み上げるかどうかを質問する旨のメッセージが表示されるとともに、しおりを読み上げることを選択するボタン画像およびしおりを読み上げないことを選択するボタン画像が表示される。
そして、ステップS105では、しおりを読み上げるかどうかを判断する。ステップS105で“NO”であれば、つまりしおりを読み上げないことを選択するボタン画像がタッチされれば、しおりを読み上げないと判断して、そのままステップS81に進む。一方、ステップS105で“YES”であれば、つまりしおりを読み上げることを選択するボタン画像がタッチされれば、しおりを読み上げると判断して、ステップS79に進む。
なお、図13では、ステップS101−S105の処理を、ステップS77とステップS79との間で実行するようにしたが、これらの処理はステップS1の前で実行してもよい。ただし、かかる場合には、ステップS105で“NO”であれば、そのまましおり音声読み上げ処理を終了するようにしてもよい。
また、この実施例では、テキストデータをデジタル音声信号に変換する音声変換エンジンを使用するため、しおり情報に含む文字列情報(日時情報)をテキスト形式にしたが、他のフォーマットのデータをデジタル音声信号に変換する音声変換エンジンを用いる場合には、当該他のフォーマットの文字列情報(日時情報)をしおり情報に含むようにすればよい。
さらに、この実施例では、ディスプレイ上にタッチパネルを設けるようにしたが、タッチパネルは設けなくてもよいし、コンピュータマウスのような他のポインティングデバイスを用いるようにしてもよい。
さらにまた、この実施例では、しおりの音声読み上げ処理では、電子書籍の言語情報を抽出し、音声変換エンジンを選択して、しおりを読み上げるため、この実施例で示したようなしおり情報が登録されている電子書籍であれば、しおりを読み上げることが可能である。つまり、しおりデータは、この実施例の電子書籍閲覧装置を用いて作成および登録される必要はない。
さらに、この実施例では、文字を入力する場合には、キー入力装置のようなハードウェアキーを用いるようにしたが、ソフトウェアキーをディスプレイに表示し、このソフトウェアキーを用いて文字等を入力するようにしてもよい。
さらにまた、以上の説明で挙げた具体的な文字数や画面は、いずれも単なる一例であり、製品の仕様などの必要に応じて適宜変更可能である。
また、上述の実施例では、しおり音声読み上げ処理において、該当する音声変換エンジンが無い場合(ステップS73で“NO”)には、音声読み上げを行わずに、しおり音声読み上げ処理を終了するようにしたが、これに限定される必要はない。他の実施例では、(1)外部の(他の)コンピュータでしおり情報に含まれるテキストデータを合成音声データに変換し、変換された合成音声データを受信して再生するようにしてもよい。(2)また、外部のコンピュータから該当する音声変換エンジンの配信し、配信された音声変換エンジンを動作させることにより、しおりの音声読み上げを実行するようにしてもよい。
かかる場合には、外部のコンピュータと通信する必要がある。したがって、他の実施例では、図14に示すように、電子書籍閲覧装置10には、さらに、他の(外部の)コンピュータとの間で通信するための無線通信モジュール30が設けられ、CPU12に接続される。また、無線通信モジュール30には、アンテナ32が接続される。ただし、有線で外部のコンピュータやネットワークに、通信可能に接続されるようにしてもよい。
図15に示すように、システム50は、サーバ52を含み、サーバ52はインターネットやLANのようなネットワーク52を介して電子書籍閲覧装置10に接続される。このサーバ52が上述した外部のコンピュータに相当する。たとえば、サーバ52は、汎用のサーバであり、多数の言語についての音声変換エンジンおよび合成音声データを記憶する。たとえば、サーバ52は、電子書籍閲覧装置10が備える音声変換エンジンの数よりも多い数の言語についての音声変換エンジンおよび合成音声データを記憶している。
上記の(1)の場合には、電子書籍閲覧装置10は、該当する音声変換エンジンが無いと判断すると、電子書籍の言語情報、しおりのテキストデータおよび音声変換要求を、ネットワーク54を介してサーバ52に送信する。サーバ52は、言語情報およびしおりのテキストデータを受信すると、当該しおりのテキストデータを、合成音声データを用いて、当該言語情報が示す言語についての音声変換エンジンを動作させることにより、しおりの合成音声データを生成する。そして、サーバ52は、生成したしおりの合成音声データを、音声変換要求を送信してきた電子書籍閲覧装置10に送信する。したがって、電子書籍閲覧装置10は、しおりの合成音声データを受信し、その後に、音声読み上げの開始が指示されると、当該しおりの合成音声データを再生(出力)する。
具体的には、図16に示すように、図10−図12に示したしおりの音声読み上げ処理の一部が変更される。ここでは、簡単のため、変更された処理についてのみ説明することにする。図16に示すように、該当する音声変換エンジンが無い場合には、ステップS73で“NO”となり、CPU12は、ステップS121で、サーバ52に、電子書籍の言語情報、しおりのテキストデータおよび音声変換要求を送信する。続くステップS123では、しおりの合成音声データを受信したかどうかを判断する。
ステップS123で“YES”であれば、つまりしおりの合成音声データを受信すれば、そのままステップS77に進む。ただし、CPU12は、ステップS79で、しおりの読み上げを開始すると、受信したしおりの合成音声データを再生(出力)する。一方、ステップS123で“NO”であれば、つまりしおりの合成音声データを受信しなければ、ステップS125で、エラーかどうかを判断する。たとえば、CPU12は、通信エラーが発生したり、サーバ12からエラーの通知を受信したりしたかどうかを判断する。このことは、後述する(2)の場合についても同様である。ステップS125で“NO”であれば、つまりエラーでなければ、そのままステップS123に戻る。一方、ステップS125で“YES”であれば、つまりエラーであれば、ステップS75に進む。
また、上記の(2)の場合には、電子書籍閲覧装置10は、該当する音声変換エンジンが無いと判断すると、電子書籍の言語情報および音声変換エンジンの配信要求を、ネットワーク54を介してサーバ52に送信する。サーバ52は、電子書籍の言語情報および音声変換エンジンの配信要求を受信すると、当該言語情報が示す言語についての音声変換エンジンを、当該配信要求を送信してきた電子書籍閲覧装置10に配信(送信)する。したがって、電子書籍閲覧装置10は、音声変換エンジンを受信し、その後に、音声読み上げの開始が指示されると、受信した音声変換エンジを動作させて、しおりの音声読み上げを実行する。
具体的には、図17に示すように、図10−図12に示したしおりの音声読み上げ処理の一部が変更される。ここでは、簡単のため、変更された処理についてのみ説明することにする。図17に示すように、該当する音声変換エンジンが無い場合には、ステップS73で“NO”となり、CPU12は、ステップS131で、サーバ52に、電子書籍の言語情報および音声変換エンジンの配信要求を送信する。続くステップS133では、音声変換エンジンを受信したかどうかを判断する。
ステップS133で“YES”であれば、つまり音声変換エンジンを受信すれば、ステップS77に進む。したがって、CPU12は、ステップS79で、しおりの読み上げを開始すると、受信した音声変換エンジンを動作させる。一方、ステップS133で“NO”であれば、つまり音声変換エンジンを受信しなければ、ステップS135で、エラーかどうかを判断する。ステップS135で“NO”であれば、そのままステップS133に戻る。一方、ステップS135で“YES”であれば、ステップS75に進む。
なお、通信機能を備える携帯電話機やスマートフォンを用いる場合には、さらに、図13に示したような処理を実行することも可能である。
また、他の実施例では、該当する音声変換エンジンが無い場合に、外部のコンピュータ(サーバ52)でしおりのテキストデータを合成音声データに変換したり、サーバ52から音声変換エンジンをダウロードしたりするようにしたが、言語判定に失敗した場合(ステップS69)には、さらに、サーバ52で、言語判定を実行するようにしてもよい。かかる場合には、電子書籍から抽出したテキストデータおよび言語判定要求がサーバ52に送信される。サーバ52は、電子書籍閲覧装置10と同様の言語判定処理を実行し、言語を判定する。詳細な説明は省略するが、サーバ52は、電子書籍閲覧装置10が備える読み取りエンジンの数よりも多い数の言語についての読み取りエンジンを備えている。そして、判定結果を、言語判定要求のあった電子書籍閲覧装置10に通知する。
さらに、図16および図17の説明では省略したが、サーバ52でしおりのテキストデータを合成音声データに変換することができない場合や、サーバ52から音声変換エンジンを配信できない場合に、サーバ52は電子書籍閲覧装置10にエラーを通知する。