(58)【調査した分野】(Int.Cl.,DB名)
表示部に表示するためのテキストデータを音声データに変換し、変換した音声データを出力することによって、上記テキストデータを読み上げるテキスト読み上げ装置であって、
第1の言語および第2の言語の音声データを生成する第1音声データ生成部と、第1の言語および第3の言語の音声データを生成する第2音声データ生成部とを含む、1つ以上の言語の音声データをそれぞれ生成する複数の音声データ生成部と、
選択された上記テキストデータの範囲内の文字列の言語の種類を判定し、上記複数の音声データ生成部から、上記テキストデータに含まれる複数種類の言語の文字列の音声データを生成できる1つの音声データ生成部を選択する選択部と、を備えており、
上記選択部は、選択された上記テキストデータの範囲に第1の言語が含まれる場合において、(i)さらに第2の言語が含まれる場合、上記第1音声データ生成部を選択し、また、(ii)さらに第3の言語が含まれる場合、上記第2音声データ生成部を選択することを特徴とするテキスト読み上げ装置。
上記選択部は、選択された上記テキストデータ中の着目する文字列の音声データを生成できる音声データ生成部から、選択された上記テキストデータにおいて、より多くの文字列の音声データを生成できる音声データ生成部を選択することを特徴とする請求項1に記載のテキスト読み上げ装置。
選択された上記テキストデータの範囲内に、上記選択部により選択された上記音声データ生成部には音声データを生成することができない文字列が存在する場合、上記選択部は、その文字列の音声データを生成できる別の音声データ生成部をさらに選択することを特徴とする請求項1または2に記載のテキスト読み上げ装置。
【発明を実施するための形態】
【0012】
〔実施形態1〕
以下、本発明の一実施形態を詳細に説明する。
【0013】
[情報処理装置1の構成]
本実施形態に係る情報処理装置1(テキスト読み上げ装置)は、コンテンツに含まれるテキストの読み上げを行う装置である。まず、
図2を用いて、本実施形態に係る情報処理装置1の構成を説明する。
図2は、情報処理装置1の構成を示すブロック図である。
【0014】
図2に示すように、情報処理装置1は、表示部10、タッチパネル20、TTSエンジン30(漢字文字列音声データ生成部)、制御部40、記憶部50、一時記憶部60、およびスピーカ70を備えている。
【0015】
制御部40は、情報処理装置1が備えた各部(表示部10、タッチパネル20、TTSエンジン30およびスピーカ70を含む)を統合的に制御する。
【0016】
記憶部50は、コンテンツ記憶部50Aおよび読みDB部50Bを含んでいる。コンテンツ記憶部50Aには、電子辞書または電子書籍などのコンテンツデータが記憶される。コンテンツデータには、画像データまたはテキストデータ等が含まれる。読みDB50Bには、制御部40によって、テキストデータに含まれる漢字文字列とその読みとが互いに対応付けられたデータがデータベース化されて記憶される。テキストデータは、テキストデータ中の漢字文字列とこれに対応する仮名文字列とを、漢字文字列とその読みとして互いに関連付けるタグ情報を有していてもよい。なお、タグ情報の具体例については後述する。
【0017】
一時記憶部60には、制御部40により、テキストデータが一時的に記憶される。より詳細には、制御部40は、コンテンツ記憶部50Aに記憶されているコンテンツからテキストデータを取得して、一時記憶部60に記憶する。あるいは、制御部40は、表示部10に表示されたテキストデータ全体のうち、ユーザに選択された範囲のテキストデータを取得して、一時記憶部60に記憶する。なお、一時記憶部60は、記憶部50に含まれていてもよい。
【0018】
表示部10には、制御部40により、ユーザに提示されるデータ、例えば、コンテンツに含まれる画像データまたはテキストデータなどが表示される。具体的には、制御部40がコンテンツ記憶部50Aより取得したコンテンツデータが表示される。タッチパネル20は、表示部10上に設けられており、ユーザが表示部10にタッチして行う操作を検出して、その結果の検出信号を制御部40に出力する。制御部40は、タッチパネル20からの検出信号により、テキストデータの表示位置へのタッチを検出する。
【0019】
TTSエンジン30には、一時記憶部60に記憶されたテキストデータに対して制御部40が変換処理を施したデータが入力される。TTSエンジン30は、制御部40より入力されたテキストデータを音声データに変換する。そして、TTSエンジン30は、変換した音声データを制御部40に出力する。スピーカ70からは、制御部40がTTSエンジン30より取得した音声データに基づく音声が出力される。
【0020】
図3の(a)に、タグ情報を有するテキストデータの一例を示す。また、
図3の(b)に、読みDB部50Bに蓄積される情報のデータ形式を示す。
図3の(a)に示すテキストデータには、コンテンツデータの再生時には表示されないタグ情報(<kanji>、</kanji>、<yomi>、および</yomi>)を用いて、「雑歌」という漢字文字列と、「ぞうか」という仮名文字列とが、漢字文字列とその読みとして関連付けられている。制御部40は、
図3(a)に示すテキストデータを処理するとき、これらのタグ情報に基づき、テキストデータに含まれる「雑歌」という漢字文字列の開始位置および終了位置と、「ぞうか」という仮名文字列とを、テキストデータから検出する。そして、
図3の(b)に示すように、「雑歌」という漢字文字列の開始位置および終了位置に対して、「ぞうか」という仮名文字列を読みとして関連付けて、読みDB部50Bに記憶させる。
【0021】
[制御部40の詳細な構成]
次に、
図1を用いて、制御部40の詳細な構成を説明する。
図1は、制御部40の構成を示すブロック図である。
図1に示すように、制御部40は、漢字抽出部42(漢字文字列抽出部)、読み仮名抽出部43(仮名文字列抽出部)、漢字仮名置換部44(漢字文字列音声データ生成部)、TTSエンジン出力部45、およびスピーカ出力部46を備えている。
【0022】
漢字抽出部42は、テキストデータに含まれる漢字文字列を抽出する。読み仮名抽出部43は、漢字抽出部42によって抽出された漢字文字列と、テキストデータにおいて関連付けられている読み仮名を、当該テキストデータから抽出する。読み仮名抽出部43は、読みDB参照抽出部430、括弧内文字列抽出部431、および読み仮名判定部432を含んでいる。読みDB参照抽出部430は、読みDB部50Bを参照して、テキストデータ中の漢字文字列の読み仮名を、読みDB部50Bから抽出する。具体的には、読みDB参照抽出部430は、
図3の(b)に示す読みDBから、テキストデータにおける漢字文字列の位置を示す開始位置および終了位置を取得して、これらの位置で指定される漢字文字列と関連付けられた読みを抽出する。
【0023】
括弧内文字列抽出部431は、漢字抽出部42によって抽出された漢字文字列の直後に、括弧(括弧開きおよび括弧閉じ)で囲まれた仮名文字列(平仮名文字列または片仮名文字列)が存在する場合、該仮名文字列を抽出する。なお、括弧内文字列抽出部431は、読みDB参照抽出部430によって読み仮名が抽出された漢字文字列については、漢字文字列の直後に、括弧および括弧で囲まれた仮名文字列があるか否かの判定を省略してもよい。読み仮名判定部432は、括弧内文字列抽出部431によって抽出された括弧内文字列が、括弧の直前の漢字文字列の読み仮名であるか否かを判定する。
【0024】
例えば、括弧内文字列抽出部431は、「雑歌(ぞうか)」という文字列(
図5参照)がテキストデータ中に存在していた場合、この文字列に含まれる漢字文字列「雑歌」の直後に存在する括弧「()」で囲まれた「ぞうか」という仮名文字列を、上記漢字文字列「雑歌」の読み仮名として抽出する。言い換えれば、括弧内文字列抽出部431は、上記漢字文字列(「雑歌」)に対応する上記仮名文字列(「ぞうか」)を抽出する。なお、読み仮名抽出部43は、括弧「()」で囲まれた仮名文字列の代わりに、「<>」、「≪≫」、またはそれ以外の特定の記号で囲まれている仮名文字列を抽出してもよい。すなわち、読み仮名抽出部43は、所定の第1の記号と、当該所定の第1の記号に対応する所定の第2の記号とに囲まれた仮名文字列を抽出すればよい。ここで、第1の記号と、第2の記号とは、互いに同じ記号であってもよいし、括弧開きと括弧閉じのように対になった記号であってもよいし、あるいは、互いに無関係の記号(例えば、$と#)であってもよい。ただし、どの記号が第1の記号または第2の記号に相当するのかは、情報処理装置1において予め定義されている。
【0025】
漢字仮名置換部44は、読み仮名抽出部43による読み仮名抽出の結果に基づいて、一時記憶部60に記憶されたテキストデータに置換処理を施す。具体的には、漢字仮名置換部44は、一時記憶部60に記憶されたテキストデータ中の漢字文字列のうち、読みDB参照抽出部430によってその読み仮名が抽出された漢字文字列を、該読み仮名に置換する。さらに、漢字仮名置換部44は、上記置換後のテキストデータから、漢字抽出部42によって抽出された漢字文字列を、読み仮名判定部432によって当該漢字文字列の読み仮名と判定された仮名文字列に置換する。TTSエンジン出力部45は、漢字仮名置換部44による漢字仮名置換処理後のテキストデータを、TTSエンジン30に出力する。
【0026】
TTSエンジン30は、TTSエンジン出力部45から入力されたテキストデータを、音声データに変換する。その後、TTSエンジン30は、変換した音声データをスピーカ出力部46に出力する。スピーカ出力部46は、TTSエンジン30より入力された音声データを電気信号に変換して、スピーカ70に出力する。
【0027】
[制御部40の動作]
続いて、制御部40の動作、特に、読み上げデータ処理に関する制御部40の動作を説明する。読み上げデータ処理では、情報処理装置1が、テキストデータの読み上げを行う。以下では、まず、読み上げデータ処理が実行されるまでの制御部40の動作の概要を説明する。その後で、読み上げデータ処理の詳細を説明する。
【0028】
[制御部40の動作;読み上げデータ処理が実行されるまでの制御部40の動作]
図4および
図5を用いて、読み上げデータ処理が実行されるまでの制御部40の動作の概要を説明する。
図4は、読み上げデータ処理が実行されるまでの制御部40の動作を示すフローチャートである。また、
図5は、表示部10におけるコンテンツの表示例である。なお、以下の説明では、実際にはタッチパネル20がタッチされることを、表示部10がタッチされると表現する。
【0029】
図4に示すように、制御部40は、まず、表示部10にコンテンツが表示中であるか否かを判定する(S1)。コンテンツが表示中である場合(S1でYes)、制御部40は、表示部10に表示されているテキストの全部または一部が、ユーザによってタッチされたか否かを判定する(S2)。以下では、タッチされたテキストの全部または一部を、選択テキストと呼ぶ。
図5では、表示部10に、選択テキストである「雑歌」が影付きで表示されている。なお、選択テキストの選択は、
図5に示すようにタッチペンPを用いて行われてもよいし、あるいはユーザの指で行われてもよい。それ以外にも、選択テキストは、情報処理装置1が備えたキー(図示せず)をユーザが操作することによって選択されてもよい。
【0030】
コンテンツが表示中でない(S1でNo)か、またはテキストの全部または一部がタッチされない(S2でNo)場合、制御部40は、読み上げデータ処理を行わずに動作を終了する。一方、コンテンツが表示中であり(S1でYes)、かつ、該コンテンツに含まれるテキストの全部または一部がタッチされた(S2でYes)場合、
図5に示すように、制御部40は、タッチメニューTMを表示する(S3)。同図に示すように、タッチメニューTMには、情報処理装置1に選択テキストを読み上げさせる「読み上げ」の選択肢が含まれる。
【0031】
タッチメニューTMは、「読み上げ」の他に、選択テキストにマーカーを引いて表示する「マーカー」を選択肢に含んでいてもよい(
図5参照)。その他にも、タッチメニューTMは、例えば、選択テキストに含まれる用語の辞書検索を実行させる選択肢を含んでいてもよい。
【0032】
なお、ユーザがテキストを選択するために行う操作は、タッチ操作のみに限らない。例えば、表示部10の画面上にボタンが表示されており、本ボタンを押下する操作が行われたとき、あらかじめ情報処理装置1内で取り決められた仕様や設定に従った動作(例えば、表示中のテキストの全文を選択するような動作)が行われ、この動作によって選択テキストが決定されてもよい。
【0033】
タッチメニューTMを表示した後(S3の後)、制御部40は、タッチメニューTMから「読み上げ」が選択されたか否かを判定する(S4)。「読み上げ」以外の選択肢が選択された場合(S4でNo)、制御部40は、選択された選択肢に応じた動作を実行した後、読み上げデータ処理を行わずに動作を終了する。
【0034】
一方、「読み上げ」が選択された場合(S4でYes)、制御部40は読み上げデータ処理を実行する(S5)。読み上げデータ処理S5では、制御部40は、選択テキストに対して、漢字仮名置換処理を実行した後、TTSエンジン30に対し、漢字仮名置換処理を施された選択テキストを出力する。なお、読み上げデータ処理S5の詳細を後述する。TTSエンジン30では、漢字仮名置換処理後のテキストデータが音声データに変換される。その後、制御部40は、TTSエンジン30から出力された音声データを取得して、スピーカ70に出力する。その後、処理は終了する。
【0035】
なお、ここでは、タッチメニューTMを表示する構成を説明したが、テキスト選択操作を契機とする予め定められた動作が1つ(すなわち、読み上げ処理の実行)のみの場合、タッチメニューTMを表示することなく、読み上げ処理を実行してもよい。
【0036】
[制御部40の動作;読み上げデータ処理S5の詳細]
次に、
図6および
図7を用いて、上述した読み上げデータ処理S5の詳細を説明する。
図6および
図7は、読み上げデータ処理S5の流れを示すフローチャートである。
【0037】
読み上げデータ処理S5では、まず、制御部40は、選択テキストを一時記憶部60にコピーする(S501)。以降のステップでは、制御部40の各部は、一時記憶部60内の選択テキストに対して、漢字文字列を仮名文字列に置換する処理などを行う。
【0038】
ステップS501の後、読みDB参照抽出部430が、読みDB部50Bを参照して、読み仮名と関連付けられた漢字文字列が選択テキストに含まれているか否かを判定する(S502)。読み仮名と関連付けられた漢字文字列が選択テキストに含まれている場合(S502でYes)、漢字仮名置換部44は、該漢字文字列をその読み仮名に置換する(S503)。
【0039】
読み仮名と関連付けられた漢字文字列が選択テキストに含まれていない場合(S502でNo)、または、ステップS503の後、漢字抽出部42が、選択テキストに漢字文字列が含まれているか否かを判定する(S504)。選択テキストに漢字文字列が含まれていない場合(S504でNo)、TTSエンジン出力部45が、一時記憶部60内の選択テキストをTTSエンジン30に出力し(S511)、読み上げデータ処理S5は終了する。
【0040】
一方、選択テキストに漢字文字列が含まれている場合(S504でYes)、括弧内文字列抽出部431は、選択テキスト内において、漢字文字列の直後に、括弧で囲まれた文字列(以下では、括弧内文字列と呼ぶ)が存在するか否かを判定する(S505)。
【0041】
選択テキスト内において、漢字文字列の直後に、括弧内文字列が存在しない場合(S505でNo)、括弧内文字列抽出部431は、選択テキストの末尾が漢字文字列であるか否かを判定する(S506)。選択テキストの末尾が漢字文字列ではない場合(S506でNo)、TTSエンジン出力部45が、一時記憶部60内の選択テキストをTTSエンジン30に出力し(S511)、読み上げデータ処理S5は終了する。
【0042】
一方、選択テキストの末尾が漢字文字列である場合(S506でYes)、括弧内文字列抽出部431は、選択テキストの直後に、括弧内文字列が存在するか否かを判定する(S507)。選択テキストの直後に括弧内文字列が存在しない場合(S507でNo)、TTSエンジン出力部45が、一時記憶部60内の選択テキストをTTSエンジン30に出力し(S511)、読み上げデータ処理S5は終了する。
【0043】
選択テキスト内において、漢字文字列の直後に、括弧内文字列が存在する場合(S505でYes、Ex1に示す例の場合)、または、末尾が漢字である選択テキストの直後に、括弧内文字列が存在する場合(S507でYes、Ex2に示す例の場合)、読み仮名判定部432は、括弧内文字列が平仮名のみまたは片仮名のみからなる仮名文字列であるか否かを判定する(S508)。これにより、括弧内文字列が、その直前の漢字文字列の読みを表記したものであるか否かが判定される。
【0044】
括弧内文字列が平仮名および片仮名以外の文字列を含む場合(S508でNo、Ex3に示す例の場合)、TTSエンジン出力部45が、一時記憶部60内の選択テキストをTTSエンジン30に出力し(S511)、読み上げデータ処理S5は終了する。
【0045】
一方、括弧内文字列が平仮名または片仮名からなる仮名文字列である場合(S508でYes)、読み仮名判定部432は、括弧内文字列の長さが所定範囲内であるか否かを判定する(S509、仮名文字列抽出ステップ)。所定範囲は、括弧の直前の漢字文字列の文字列長の3倍以内であってよい。これにより、読み仮名判定部432は、括弧内文字列が、括弧の直前の漢字文字列の読み仮名としては長すぎる場合に、上記括弧内文字列は上記漢字文字列の読み仮名ではないと判断することができる。
【0046】
括弧内文字列の長さが所定範囲内でない場合(S509でNo)、TTSエンジン出力部45が、一時記憶部60内の選択テキストをTTSエンジン30に出力し(S511)、読み上げデータ処理S5は終了する。一方、括弧内文字列の長さが所定範囲内である場合(S509でYes)、漢字仮名置換部44は、括弧の直前の漢字文字列を括弧内文字列に置換し、さらに、括弧開きから括弧閉じまでの文字列の一部または全部が選択テキストに含まれる場合、その文字列を選択テキストから削除する(S510)。その後、TTSエンジン出力部45は、一時記憶部60内の選択テキストをTTSエンジン30に出力する(S511)。
【0047】
ここで、ステップS510では、括弧の直前の漢字文字列が一つの漢字からなる場合、漢字仮名置換部44は、その一つの漢字を括弧内文字列に置換する。一方、括弧の直前の漢字文字列が複数の漢字からなる場合、漢字仮名置換部44は、その複数の漢字を括弧内文字列に置換する。言い換えれば、漢字仮名置換部44は、括弧開き直前からテキストを遡って、漢字文字コードを有する漢字からなる一連の漢字群を括弧内文字列に置換する。
【0048】
これにより、選択テキストが括弧を含むEx1に示す例(「雑歌(ぞうか)」)の場合であっても、または選択テキストが括弧を含まないEx2に示す例(「雑歌」)の場合であっても、TTSエンジン30には、Ex4に示す「ぞうか」という選択テキストが入力されることになる。以上で、読み上げデータ処理S5は終了する。
【0049】
なお、図示しないが、ステップS511の後、選択テキストデータを入力されたTTSエンジン30は、該選択テキストデータを音声データに変換して、制御部40に出力する(音声データ生成ステップ)。制御部40は、TTSエンジン30から入力された音声データを、スピーカ70に出力する。スピーカ70は、制御部40より入力された音声データに基づいて音声を出力する。これによって、コンテンツの作成者が意図したとおりの読みで、漢字文字列が読み上げられる。
【0050】
ここでは、情報処理装置1が、ユーザに選択された選択テキストを読み上げる例を説明したが、本発明はこれに限られない。情報処理装置1が、選択テキストの代わりにテキストデータの全体を順次読み上げる構成とすることにより、情報処理装置1がテキストの朗読を行う構成を実現することができる。
【0051】
[読み上げデータ処理S5の変形例]
制御部40は、読みDB50Bを参照しての漢字仮名置換は行わずに、括弧内文字列を用いた漢字仮名置換のみを行っても良い。この場合、読み上げデータ処理S5において、ステップS502およびステップS503は実行されない。すなわち、ステップS501に続いて、ステップS504が実行される。
【0052】
また、読み上げデータ処理S5において、ステップS503は、選択テキストがTTSエンジン30に出力されるステップS511の前に実行されれば、他のタイミングで実行されてもよい。すなわち、ステップS503は、ステップS504からステップS510までの間に実行されてもよいし、または、ステップS510に続けて実行されてもよい。
【0053】
さらに、読み上げデータ処理S5において、ステップS509でYesの場合、すなわち括弧内文字列の長さが所定範囲内である場合、漢字仮名置換部44は、括弧内文字列をTTSエンジン出力部45に出力してもよい。この構成の場合、TTSエンジン出力部45は、選択テキストの代わりに括弧内文字列をTTSエンジン30に出力する。TTSエンジン30は、括弧内文字列を音声データに変換して、制御部40に出力する。制御部40は、TTSエンジン30から入力された音声データを、スピーカ70に出力する。この結果、スピーカ70から、選択テキストに含まれる漢字文字列に代わりに、括弧内文字列が出力されることになる。これによっても、コンテンツの作成者の意図通りに、漢字文字列が読み上げられる効果を奏する。
【0054】
[従来のテキスト読み上げ装置との比較]
ここでは、本実施形態に係る情報処理装置1が達成する特有の効果を説明する。そのために、
図8の(a)および(b)を参照して、本実施形態の情報処理装置1の動作と、従来のテキスト読み上げ装置の動作とを比較しながら説明する。
図8の(a)および(b)は、いずれも、情報処理装置1の表示部10の拡大図である。
図8の(a)では、漢字文字列の「雑歌」が選択テキストとなっている。一方、
図8の(b)では、漢字文字列(「雑歌」)と、それに続く括弧および該括弧内の平仮名文字列(「(ぞうか)」)とが、選択テキストとなっている。
【0055】
前述のように、従来のテキスト読み上げ装置では、テキスト中の漢字文字列の読みをTTSエンジンが選択する。従って、漢字文字列が複数の読みを有する場合(例えば、「大神」は、「おおかみ」、「だいじん」、または「おおみわ」と読める)、TTSエンジンは任意のいずれかの読みを選択する。従って、コンテンツの作成者の意図とは異なる読みが選択される可能性がある。例えば、コンテンツの作成者が「大神」を「おおみわ」と読ませること意図してコンテンツを作成したにも関わらず、TTSエンジンは「大神」の読みとして「おおかみ」を選択する場合がそうである。
【0056】
また、従来のテキスト読み上げ装置では、
図8の(b)に示すように、選択テキストが、漢字文字列およびその漢字文字列の読み仮名を含む場合、コンテンツの作成者の意図とは異なり、漢字文字列とその読み仮名とがどちらも読み上げられてしまう可能性がある。例えば、コンテンツの作成者は「雑歌(ぞうか)」という選択テキストを単に「ぞうか」と読んでもらうことを意図していたにもかかわらず、これが「ぞうかぞうか」と読み上げられる場合がそうである。
【0057】
一方、本実施形態に係る情報処理装置1では、
図8の(a)および(b)に示すように、漢字文字列(「雑歌」)の直後に、括弧開きと括弧閉じとの間に囲まれた読み仮名(「ぞうか」)が存在している場合、読み上げデータ処理S5の結果、上記漢字文字列から上記括弧閉じまでの文字列(「雑歌(ぞうか)」)の代わりに、上記読み仮名(「ぞうか」)がTTSエンジン30に入力される。そのため、情報処理装置1は、上記従来のテキスト読み上げ装置とは異なり、上記漢字文字列を、コンテンツの作成者が意図した通りの読みで読み上げることができる。さらに、選択テキストが「雑歌(ぞうか)」である場合、情報処理装置1は、上述した読み上げデータ処理S5において、選択テキストから「ぞうか」という文字列を得て、この文字列をTTSエンジン30に出力する。従って、上記選択テキストは、コンテンツの作成者の意図の通りに、「ぞうか」と読み上げられる。
【0058】
〔変形例1〕
図9の(a)に、本実施形態の一変形例における表示部10の表示例を示す。本変形例1では、
図9の(a)に示すように、タッチされた文字列(「雑歌」)が漢字文字列であり、その漢字文字列の直後に括弧(括弧開きおよび括弧閉じ)が存在する場合、制御部40は、上記タッチされた漢字文字列から、該漢字文字列の直後の括弧閉じまでの文字列(「雑歌(ぞうか)」)を選択テキストとする。
【0059】
本変形例1の構成では、制御部40は、タッチメニューTM等から、TTSエンジン30による「読み上げ」が選択された場合、括弧内の仮名文字(「ぞうか」)をTTSエンジン30に渡す。一方、「辞書検索」が選択された場合、制御部40は、開き括弧から閉じ括弧までの文字列(「(ぞうか)」)を検索キーワードに採用しない。すなわち、制御部40は、辞書検索が選択された場合は、選択テキストのうち、上記タッチされた文字列(「雑歌」)のみを検索キーワードとして採用する。これにより、文字列がタッチされた後、辞書検索が選択された場合に、タッチされた文字列には含まれない括弧開きから括弧閉じまでの文字列が、辞書検索エンジンによる辞書の検索範囲を不要に限定することを防止することができる。
【0060】
〔変形例2〕
図9の(b)に、本実施形態の他の変形例における表示部10の表示例を示す。本変形例2では、制御部40は、
図9の(b)に示すように、タッチされた文字列(「雑歌(ぞうか)」)の近傍にポップアップメニューPUMを表示する。そして、上記タッチされた文字列のうち、選択テキストとする文字列を、ポップアップメニューPUMからユーザに選択させる。
【0061】
本変形例2の構成では、ユーザが選択テキストとする文字列を決定することができる。これにより、ユーザの所望に応じて、上記タッチされた文字列に含まれる任意の範囲の文字列の読み上げを実現することができる。
【0062】
〔変形例3〕
本実施形態では、情報処理装置1が読み上げるテキストデータが表示部10に表示されている構成を説明した。しかしながら、その一変形例では、情報処理装置1によって読み上げられるテキストデータは、表示部10に表示されていなくてもよい。例えば、情報処理装置1は、ユーザがコンテンツ記憶部50A中のファイルを選択すると、そのファイル中のテキストデータを表示せずに読み上げてもよい。
【0063】
〔実施形態2〕
本発明の他の実施形態について、
図10の(a)〜
図10の(c)に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【0064】
コンテンツに含まれるテキストデータには、テキストデータ中の漢字文字列と、その漢字文字列の読みを表すルビ(平仮名文字列または片仮名文字列)とを関連付けるルビ情報が、予め付与されている場合がある。
図10の(a)〜
図10の(c)に、ルビ情報付きテキストの表示例を示す。
図10の(a)および
図10の(c)は、ルビRuが非表示であるルビ情報付きテキストの表示例である。また、
図10の(b)は、漢字文字列の上にルビRuが表示されているルビ情報付きテキストの表示例である。
【0065】
本実施形態の情報処理装置2に備えられる制御部80は、前記実施形態の制御部40の読み仮名抽出部43に代えて、読み仮名抽出部83(仮名文字列抽出部)を含んでいる。また、記憶部50にはルビ情報がさらに記憶されている。情報処理装置2のその他の構成は、情報処理装置1のそれと同じである。
【0066】
実施形態1に係る読み仮名抽出部43は、テキストデータ中の漢字文字列の直後に、括弧に囲まれた平仮名文字列または片仮名文字列が存在する場合に、その平仮名文字列または片仮名文字列を、上記漢字文字列と関連付けられた仮名文字列として抽出する。一方、本実施形態に係る読み仮名抽出部83は、ルビ情報を参照して、漢字文字列のルビRuを、上記漢字文字列と関連付けられた仮名文字列として抽出する。
【0067】
[制御部80の動作]
以下に、
図10の(c)を参照して、本実施形態に係る制御部80の動作を説明する。
図10の(c)に示すように、制御部80は、タッチペンP等によりタッチされた文字列(「下人」)を選択テキストとして決定する。そして、制御部40は、タッチされた文字列に対する動作を選択するためのタッチメニューTMを表示する。
【0068】
タッチメニューTMから、「読み上げ」の選択肢を選択する操作が行われたとき、読み仮名抽出部83は、ルビ情報を参照して、選択テキスト中の漢字文字列(「下人」)と関連付けられたルビRu(「げにん」)を抽出する。漢字仮名置換部44は、選択テキスト中の漢字文字列(「下人」)を、読み仮名抽出部83によって抽出されたルビRu(「げにん」)に置換する。TTSエンジン出力部45は、漢字仮名置換部44による置換処理後の選択テキスト(「げにん」)を、TTSエンジン30に出力する。TTSエンジン30に入力された選択テキストが音声データに変換された後、当該音声データに基づいてスピーカ70から音声出力が行われる。
【0069】
読み仮名抽出部83は、漢字文字列と関連付けられた仮名文字列を抽出する方法を、テキストがルビ情報付きテキストであるか否かに応じて、前記実施形態1の方法と本実施形態の方法との間で変更してもよい。具体的には、読み仮名抽出部83は、テキストにルビ情報が付与されている場合は、本実施形態のように、ルビ情報に基づいて、漢字文字列のルビを、上記漢字文字列と関連付けられた仮名文字列として抽出する。一方、テキストにルビ情報が付与されていない場合は、前記実施形態1のように、漢字文字列の直後に存在する括弧内の平仮名文字列または片仮名文字列を、上記漢字文字列と関連付けられた仮名文字列として抽出する。
【0070】
〔実施形態3〕
本発明の他の実施形態について、
図11〜
図15に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記の各実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【0071】
前記実施形態1のTTSエンジン30(
図1参照)のような、日本語を読み上げるためのTTSエンジン(以下、日本語TTSエンジンと呼称する)は、一般的に、日本語の音声データの他に、アルファベット1文字ずつの音声データを出力することができる。そのため、日本語TTSエンジンは、日本語の文字列だけでなく、英語の文字列も読み上げることができる。なお、日本語TTSエンジンは、英語を読み上げる場合、その英語を構成する各アルファベットの音声データを組み合わせて出力する。そのため、日本語TTSエンジンは、英語を、ネイティブのような自然な発音で、スムーズに読み上げることはできない。
【0072】
しかしながら、日本語TTSエンジンは、日本語および英語以外の種類の言語(例えば中国語)の文字を読み上げることができない。
【0073】
そこで、本実施形態では、日本語TTSエンジンを含む複数のTTSエンジンを備え、日本語以外の言語もスムーズに読み上げられるように構成された情報処理装置を説明する。本実施形態の情報処理装置は、テキスト中の文字列の言語に基づいて、複数のTTSエンジンの中から、いずれかのTTSエンジンを選択する。そして、選択したTTSエンジンを用いて、テキストを読み上げる。本実施形態の情報処理装置は、特に、日本語TTSエンジンを用いて、日本語のテキストを読み上げる場合、前記実施形態1で説明した読み上げデータ処理(
図6および
図7参照)を実行する。
【0074】
なお、本実施形態の情報処理装置は、前記実施形態1の情報処理装置1であってもよいし、前記実施形態2の情報処理装置2であってもよい。
【0075】
[本実施形態の情報処理装置の構成]
図11を用いて、本実施形態の情報処理装置の構成を説明する。
図11は、本実施形態の情報処理装置が備えた制御部940の構成を示す構成図である。本実施形態の情報処理装置は、前記実施形態1の情報処理装置1の構成において、制御部40の代わりに、制御部940を備えている。また、情報処理装置1のTTSエンジン30の代わりに、日本語TTSエンジン931(音声データ生成部、第1音声データ生成部)、英語TTSエンジン932(音声データ生成部)、および中国語TTSエンジン933(音声データ生成部、第2音声データ生成部)を備えている。日本語TTSエンジン931は、日本語および英語(アルファベット)を読み上げることができる。英語TTSエンジン932は、英語のみを読み上げることができる。また、中国語TTSエンジン933は、中国語および英語(アルファベット)を読み上げることができる。なお、日本語TTSエンジン931は、前記実施形態1および2のTTSエンジン30と同じ機能を有しており、前記実施形態1および2で説明したTTSエンジン30の処理と同じ処理を実行することができる。
【0076】
[制御部940の詳細な構成]
図11に示すように、制御部940は、前記実施形態1の制御部40の全構成要素に加えて、言語判断部941(選択部)をさらに含む。
【0077】
言語判断部941は、一時記憶部60から、ユーザに選択されたテキスト、すなわち選択テキストを取得する。そして、選択テキスト中の文字列の言語の種類を判定する。また、言語判断部941は、選択テキスト中に複数種類の言語の文字列が存在する場合、日本語TTSエンジン931、英語TTSエンジン932、および中国語TTSエンジン933の中から、選択テキストを読み上げるTTSエンジン(以下、選択エンジンと呼称する)を選択する選択エンジン決定処理を実行する。
【0078】
詳細には、選択エンジン決定処理において、言語判断部941は、まず、選択テキストの最初の文字が何語であるかを判定する。すなわち、言語判断部941は、最初の文字の言語の種類を判定する。そして、判定した文字の言語を示す情報(言語設定)を保持する。次に、選択テキストの二番目の文字が何語であるかを判定する。そして、言語設定を、最初の文字の言語を示す情報から、二番目の文字の言語を示す情報に更新する。以下、同様に、選択テキストの文字を、一文字ずつ、順番に、その文字が何語であるかを判定するとともに、その判定結果に基づいて、言語設定を更新してゆく。
【0079】
言語判断部941は、選択テキストの最後の文字が何語であるかを判定し、その判定結果に基づいて、言語設定を更新したとき、その時点における言語設定に応じて、選択エンジンを決定する。例えば、上記の時点における言語設定が日本語である場合、言語判断部941は、選択エンジンとして、日本語TTSエンジン931を選択する。また、上記の時点における言語設定が英語、中国語である場合、言語判断部941は、選択エンジンとして、英語TTSエンジン932、中国語TTSエンジン933をそれぞれ選択する。
【0080】
上記選択エンジン決定処理によれば、例えば、選択テキストにおいて、最初の一部が英語の文字列であり、中間の一部が日本語の文字列であり、最後の一部が中国語の文字列である場合、言語判断部941は、日本語TTSエンジン931を選択する。
【0081】
このように、言語判断部941は、選択テキスト内に複数種類の言語の文字列が存在する場合、日本語TTSエンジン931、英語TTSエンジン932、および中国語TTSエンジン933から、選択テキストに含まれる複数種類の言語の文字列を読み上げることができる1つのTTSエンジンを選択する。
【0082】
ところで、前述したように、日本語TTSエンジン931、英語TTSエンジン932、中国語TTSエンジン933には、それぞれ、読み上げることができない文字が存在する。そのような文字を、ここでは外字と呼ぶ。例えば、日本語TTSエンジン931にとって、日本語および英語以外の言語(例えば中国語)の文字が、外字に該当する。また、中国語TTSエンジン933にとって、中国語および英語以外の言語(例えば日本語)の文字が、外字に該当する。
【0083】
そこで、選択テキストに外字が含まれる場合、言語判断部941は、選択テキストの最初の文字から、その外字の直前の文字までの文字列を、新しい選択テキストにする。換言すれば、言語判断部941は、選択テキストを更新することによって、選択エンジンが、更新後の選択テキストの全体を読み上げることができるようにする。それ以外に、言語判断部941は、選択テキストの最初の文字から、改行の直前の文字までの文字列を、新しい選択テキストにしてもよい。
【0084】
言語判断部941は、選択エンジンとして、日本語TTSエンジン931を選択した場合、更新後の選択テキストを漢字抽出部42に出力する。また、選択エンジンとして、英語TTSエンジン932または中国語TTSエンジン933を選択した場合、更新後の選択テキストと、言語設定とを、TTSエンジン出力部45に出力する。
【0085】
TTSエンジン出力部45は、言語判断部941から入力された言語設定に応じて、英語TTSエンジン932または中国語TTSエンジン933に、言語判断部941から入力された選択テキストを出力する。具体的には、TTSエンジン出力部45は、言語設定が英語である場合、英語TTSエンジン932に、選択テキストを出力する。また、言語設定が中国語である場合、中国語TTSエンジン933に、選択テキストを出力する。なお、選択テキストが入力された漢字抽出部42が実行する処理は、前記実施形態1で説明したので、その処理の説明を省略する。
【0086】
[選択エンジンの決定方法]
ここでは、言語判断部941が、複数のTTSエンジンの中から、選択エンジンを決定する方法を具体的に説明する。
【0087】
言語判断部941は、日本語TTSエンジン931、英語TTSエンジン932、および中国語TTSエンジン933の中から、最も長い選択テキストの範囲を読み上げることができるTTSエンジンを、選択エンジンとして選択する。
【0088】
例えば、選択テキストが日本語および英語を含む場合、言語判断部941は、選択エンジンとして、英語TTSエンジン932あるいは中国語TTSエンジン933ではなく、日本語TTSエンジン931を選択する。なぜならば、英語TTSエンジン932および中国語TTSエンジン933は、選択テキスト中の英語のみを読み上げることができる。一方、日本語TTSエンジン931は、選択テキスト中の日本語および英語の両方を読み上げることができる。従って、日本語TTSエンジン931は、英語TTSエンジン932および中国語TTSエンジン933よりも、長い選択テキストの範囲を読み上げることができるためである。
【0089】
同様に、選択テキストが中国語および英語を含む場合、言語判断部941は、選択エンジンとして、日本語TTSエンジン931あるいは英語TTSエンジン932ではなく、中国語TTSエンジン933を選択する。
【0090】
また、選択テキストが日本語および中国語を含む場合、言語判断部941は、選択テキストにおいて、他方の言語よりも前に出現する言語を読み上げることができるTTSエンジンを、選択エンジンとして選択する。例えば、選択テキストにおいて、日本語、中国語がこの順番で出現する場合、言語判断部941は、日本語TTSエンジン931を、選択エンジンとして選択する。
【0091】
なお、選択テキストが、英語を含むが、日本語および中国語を含まない場合、言語判断部941は、選択エンジンとして、英語TTSエンジン932を選択する。なぜならば、英語TTSエンジン932は、日本語TTSエンジン931および中国語TTSエンジン933よりも、英語を自然かつスムーズに読み上げることができるためである。
【0092】
選択エンジンの決定方法は、上述した方法に限定されない。例えば、別の構成では、言語判断部941は、選択テキストにおける日本語の部分、英語の部分、中国語の部分を読み上げる選択エンジンとして、それぞれ、日本語TTSエンジン931、英語TTSエンジン932、中国語TTSエンジン933を選択してもよい。
【0093】
この構成の場合、選択テキスト中の日本語、英語、中国語が全て読み上げられる。さらに、選択テキストにおいて、日本語、英語、中国語の各部分が、その言語を読み上げるために適合されたTTSエンジンでそれぞれ読み上げられるので、上記の各部分が自然かつスムーズに読み上げられる。
【0094】
[読み上げの具体例]
図12〜
図14を用いて、本実施形態の情報処理装置によって、選択テキストが読み上げられる具体例を説明する。
図12〜
図14は、それぞれ、本実施形態の情報処理装置が備えた表示部10(
図2参照)を示す図である。上記の各図では、表示部10の画面に表示されたテキストの一部がタッチペンPで選択されており、この選択されたテキスト(選択テキスト)に対して実行することができる処理を示すタッチメニューTMが表示されている。
【0097】
は、日本語、英語、中国語および記号で構成されている。言語判断部941は、この選択テキストを読み上げる選択エンジンとして、日本語TTSエンジン931を選択する。選択エンジンが読み上げる文字列の始端は「今日(こんにち)は」であり、終端は「Hi!」である。
図12に示す選択テキストにおいて、「Hi!」の後ろの中国語は、日本語TTSエンジン931にとって外字であるので、読み上げられない。
【0098】
ここで、日本語TTSエンジン931は、日本語の文字列「今日(こんにち)は」を読み上げる際、前記実施形態1で説明した読み上げデータ処理(
図6および
図7参照)を実行する。そして、漢字文字列「今日」の代わりに、仮名文字列「こんにち」を読み上げる。
【0099】
図13に示す選択テキスト「Hello!/Hi!」は、英語および記号で構成されている。言語判断部941は、この選択テキストを読み上げる選択エンジンとして、英語TTSエンジン932を選択する。選択エンジンが読み上げる文字列の始端は「Hello!」であり、終端は「Hi!」である。
【0102】
は、英語、中国語および記号で構成されている。言語判断部941は、この選択テキストを読み上げる選択エンジンとして、中国語TTSエンジン933を選択する。選択エンジンが読み上げる文字列の始端は「Hello!」であり、終端は、
【0105】
[選択エンジン決定処理の詳細]
図15を用いて、言語判断部941が実行する選択エンジン決定処理を説明する。
図15は、選択エンジン決定処理の流れを示すフローチャートである。ここで、言語判断部941は、選択エンジン決定処理を実行する前に、一時記憶部61から、選択テキストを予め取得している。また、初期段階では、言語設定は英語であり、変数nは1であるとする。
【0106】
選択エンジン決定処理では、言語判断部941は、まず、選択テキストのn番目の文字(あるいは記号)が、選択テキストの最後の文字または判定終了記号であるか否かを判定する(S100)。ここで、判定終了記号とは、外字であってもよいし、あるいは改行記号であってもよい。
【0107】
選択テキストのn番目の文字が、選択テキストの最後の文字または判定終了記号である場合(S100でYes)、言語判断部941は、その時点の言語設定に基づいて、選択エンジンを決定するとともに、選択テキストのn番目の文字、または、n番目の文字の直前の文字を、選択エンジンが読み上げる文字列の終端として決定する(S600)。そして、選択エンジン決定処理を終了する。
【0108】
一方、選択テキストのn番目の文字が、選択テキストの最後の文字または判定終了記号ではない場合(S100でNo)、言語判断部941は、選択テキストのn番目の文字が、アルファベットまたは記号(判定終了記号以外の記号)であるか否かを判定する(S200)。選択テキストのn番目の文字が、アルファベットまたは記号である場合(S200でYes)、言語判断部941は、変数nに1を加算する(S500)。そして、選択エンジン決定処理は、次の文字が選択テキストの最後の文字または終了判定文字であるか否かを判定するステップS100の処理に戻る。
【0109】
一方、選択テキストのn番目の文字が、アルファベットまたは記号ではない場合(S200でNo)、言語判断部941は、n番目の文字が日本語であるか否かを判定する(S300)。n番目の文字が日本語である場合(S300でYes)、言語判断部941は、その時点の言語設定が何語(A:日本語、B、英語、C:それ以外の言語)であるかを判定する(S310)。
【0110】
ステップS310の時点の言語設定が日本語である場合(S310でA)、言語判断部941は、変数nに1を加算する(S500)。そして、選択エンジン決定処理は、次の文字が選択テキストの最後の文字または終了判定文字であるか否かを判定するステップS100の処理に戻る。
【0111】
また、ステップS310の時点の言語設定が英語である場合(S310でB)、言語判断部941は、言語設定を日本語に変更する(S320)。その後、言語判断部941は、変数nに1を加算する(S500)。そして、選択エンジン決定処理は、次の文字が選択テキストの最後の文字または終了判定文字であるか否かを判定するステップS100の処理に戻る。
【0112】
また、ステップS310の時点の言語設定が日本語および英語以外の言語である場合(S310でC)、その時点の言語設定に基づいて、選択エンジンを決定するとともに、選択テキストのn番目の文字の直前の文字を、選択エンジンが読み上げる文字列の終端として決定する(S600)。そして、選択エンジン決定処理を終了する。
【0113】
ステップS300において、n番目の文字が日本語ではない場合(S300でNo)、言語判断部941は、n番目の文字が中国語であるか否かを判定する(S400)。n番目の文字が中国語である場合(S400でYes)、言語判断部941は、ステップS400の時点の言語設定が何語(A:中国語、B、英語、C:それ以外の言語)であるかを判定する(S410)。
【0114】
ステップS410の時点の言語設定が中国語である場合(S410でA)、言語判断部941は、変数nに1を加算する(S500)。そして、選択エンジン決定処理は、次の文字が選択テキストの最後の文字または終了判定文字であるか否かを判定するステップS100の処理に戻る。
【0115】
また、ステップS410の時点の言語設定が英語である場合(S410でB)、言語判断部941は、言語設定を中国語に変更する(S420)。その後、言語判断部941は、変数nに1を加算する(S500)。そして、選択エンジン決定処理は、次の文字が選択テキストの最後の文字または終了判定文字であるか否かを判定するステップS100の処理に戻る。
【0116】
また、ステップS410の時点の言語設定が中国語および英語以外の言語である場合(S410でC)、その時点の言語設定に基づいて、選択エンジンを決定するとともに、選択テキストのn番目の文字の直前の文字を、選択エンジンが読み上げる文字列の終端として決定する(S600)。そして、選択エンジン決定処理を終了する。
【0117】
なお、言語判断部941が選択エンジンを決定する方法は、上述した方法に限られない。例えば、言語判断部941は、選択テキストの最初の文字を読み上げることができるTTSエンジンのうち、所定の基準より多くの文字列を読み上げることができる1または複数のTTSエンジンの中から、1つのTTSを選択してもよい。例えば、所定の基準は、選択テキストに含まれる文字列数の7割であってよい。この構成の場合、言語判断部941は、7割以上の文字列を読み上げるTTSエンジンのいずれか1つを選択する。
【0118】
あるいは、言語判断部941は、選択テキスト中の着目した文字(例えば、読み上げ可能な最初の文字)に対応したTTSエンジンのうち、着目した文字以降の文字列から、より多くの文字列の音声データを生成できるTTSエンジンを選択してもよい。ここで、読み上げ可能な文字とは、記号などの読み上げ不可能な文字ではなく、アルファベット、漢字などの読み上げ可能な文字を意味する。
【0119】
〔実施形態4〕
情報処理装置1および2が備える各制御ブロック(特に、漢字抽出部42、読み仮名抽出部43・83、漢字仮名置換部44)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
【0120】
後者の場合、情報処理装置1および2は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、たとえば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0121】
〔まとめ〕
本発明の態様1に係るテキスト読み上げ装置(情報処理装置1、2)は、表示部(10)に表示するためのテキストデータを音声データに変換し、変換した音声データを出力することによって、上記テキストデータを読み上げるテキスト読み上げ装置であって、1つ以上の言語の音声データをそれぞれ生成する複数の音声データ生成部(日本語TTSエンジン931、英語TTSエンジン932、中国語TTSエンジン933)と、選択された上記テキストデータの範囲内の文字列の言語の種類を判定し、上記複数の音声データ生成部から、上記テキストデータに含まれる複数種類の言語の文字列の音声データを生成できる1つの音声データ生成部を選択する選択部(言語判断部941)と、を備えている。
【0122】
上記の構成によれば、選択されたテキストデータの範囲内に含まれる文字列の言語の種類に基づき、複数の音声データ生成部の中から、テキストデータに含まれる言語に関し、複数種類の言語の音声データを生成することができる1つの音声データ生成部が選択される。
【0123】
そのため、選択されたテキストデータの範囲内に複数の言語の文字列が含まれる場合であっても、テキストデータの複数種類の言語の読み上げに適合した音声データ生成部を用いて、テキストデータ中の文字列の音声データが生成される。従って、複数種類の言語の文字列を含むテキストデータをスムーズに読み上げることができる。
【0124】
本発明の態様2に係るテキスト読み上げ装置(情報処理装置1、2)は、上記態様1において、上記選択部(言語判断部941)は、選択された上記テキストデータ中の着目する文字列の音声データを生成できる音声データ生成部から、選択された上記テキストデータにおいて、より多くの文字列の音声データを生成できる音声データ生成部(日本語TTSエンジン931、英語TTSエンジン932、中国語TTSエンジン933)を選択してもよい。
【0125】
上記の構成によれば、選択された上記テキストデータ中の着目する文字列の音声データを生成でき、かつ、選択された上記テキストデータにおいて、より多くの文字列の音声データを生成できる音声データ音声データ生成部を選択することができる。
【0126】
上記の構成において、着目する文字列は、選択されたテキストデータの先頭から見て、音声データを生成できる最初の文字であってもよい。
【0127】
この場合、選択されたテキストデータの先頭から見て、音声データを生成できる最初の文字(例えば、アルファベットまたは漢字)に対応した音声データ生成部、すなわち、音声データを生成可能な最初の文字の音声データを生成することができる音声データ生成部が選択される。
【0128】
また、先頭から見て音声データを生成可能な最初の文字に対応する音声データ生成部が複数ある場合、それらの音声データ生成部のうち、最初の文字以降の文字列において、より多くの文字列の音声データを生成可能な音声データ生成部を選択することができる。
【0129】
本発明の態様3に係るテキスト読み上げ装置(情報処理装置1、2)は、上記態様1または2において、上記複数の音声データ生成部(日本語TTSエンジン931、英語TTSエンジン932、中国語TTSエンジン933)は、第1の言語および第2の言語の音声データを生成する第1音声データ生成部と、第1の言語および第3の言語の音声データを生成する第2音声データ生成部とを含んでおり、上記選択部は、選択された上記テキストデータの範囲に第1の言語が含まれる場合において、(i)さらに第2の言語が含まれる場合、上記第1音声データ生成部を選択し、また、(ii)さらに第3の言語が含まれる場合、上記第2音声データ生成部を選択してもよい。
【0130】
上記の構成によれば、第1音声データ生成部によって、第1の言語および第2の言語の文字列の音声データが生成される一方、第2音声データ生成部によって、第1の言語および第3の言語の文字列の音声データが生成される。
【0131】
そのため、第1の言語および第2の言語を含むテキストデータ、および、第1の言語および第3の言語を含むテキストデータをスムーズに読み上げることができる。
【0132】
本発明の態様4に係るテキスト読み上げ装置(情報処理装置1、2)は、上記態様1〜3のいずれかにおいて、選択された上記テキストデータの範囲内に、上記選択部(言語判断部941)により選択された上記音声データ生成部(日本語TTSエンジン931、英語TTSエンジン932、中国語TTSエンジン933)には音声データを生成することができない文字列が存在する場合、上記選択部は、その文字列の音声データを生成できる上記音声データ生成部をさらに選択してもよい。
【0133】
上記の構成によれば、選択されたテキストデータの範囲内に、選択部により選択された音声データ生成部には音声データを生成することができない文字列が存在する場合であっても、その文字列の音声データを生成する音声データ生成部が新たに選択される。そのため、選択されたテキストデータにおいて、より広い範囲の文字列が読み上げられる。
【0134】
例えば、選択されたテキストデータに英語(第1の言語)、日本語(第2の言語)、および中国語(第3の言語)の文字列が含まれる場合、各言語の文字列の読み上げに適合した音声データ生成部によって、各言語の文字列が読み上げられる。従って、3種類以上の言語の文字列を含むテキストをスムーズに読み上げることができる。
【0135】
本発明の態様5に係るテキスト読み上げ装置(情報処理装置1、2)は、表示部(10)に表示するためのテキストデータを音声データに変換し、変換した音声データを出力することによって、上記テキストデータを読み上げるテキスト読み上げ装置であって、漢字文字列および仮名文字列を含む上記テキストデータを上記表示部に表示している時に、選択された該テキストデータの範囲内の上記漢字文字列に関連付けられた上記仮名文字列を、該テキストデータから読み仮名として抽出する仮名文字列抽出部(読み仮名抽出部43、83)と、上記漢字文字列の代わりに、上記仮名文字列抽出部によって抽出された上記仮名文字列に基づいて、上記漢字文字列を読み上げるための音声データを生成する漢字文字列音声データ生成部(TTSエンジン30および漢字仮名置換部44)と、を備えている。
【0136】
上記の構成によれば、選択されたテキストデータ中の範囲内の漢字文字列が読み上げられる場合、まず、上記漢字文字列と関連付けられている仮名文字列が、上記テキストデータ中から読み仮名として抽出される。ここで、仮名文字抽出部は、例えば、漢字文字列の直後に存在する括弧で囲まれた平仮名または片仮名を、上記漢字文字列の読み仮名として指定されている仮名文字列として抽出してもよい。
【0137】
また、当該抽出された上記仮名文字列が音声データに変換される。そして、上記漢字文字列については、上記仮名文字列から変換された音声データに基づいて読み上げが行われる。言い換えれば、上記漢字文字列については、上記仮名文字列が示す読みで、読み上げが行われる。
【0138】
これにより、テキストデータ中の漢字文字列に複数の読みが存在する場合であっても、上記テキストデータ以外を参照することなく、上記漢字文字列をより正しい読み(すなわち、コンテンツの作成者が意図する読み)で読み上げることができる。その結果、漢字文字列を含むテキストの読み上げ精度を向上させることができる。
【0139】
本発明の態様6に係るテキスト読み上げ装置(情報処理装置1)は、上記態様5において、上記仮名文字列抽出部(読み仮名抽出部43)は、上記漢字文字列の直後に存在する所定の第1の記号と、該第1の記号の後に存在する所定の第2の記号とによって囲まれた仮名文字列を抽出してもよい。
【0140】
上記の構成によれば、漢字文字列の直後に存在する第1の記号および第2の記号に囲まれた仮名文字列が、上記漢字文字列に関連付けられた仮名文字列として抽出される。例えば、第1の記号および第2の記号が括弧開きおよび括弧閉じ「()」であり、テキストが「大神(おおみわ)」である場合、「大神」という漢字文字列の直後に存在する括弧「()」に囲まれた「おおみわ」という仮名文字列が、上記漢字文字列に関連付けられた仮名文字列として抽出される。そして、「大神」という漢字文字列の代わりに、「おおみわ」という仮名文字列が読み上げられる。
【0141】
ここで、漢字文字列の直後に存在する括弧に囲まれた仮名文字列は、上記漢字文字列の読み仮名である可能性が高い。例えば、上述した「大神(おおみわ)」というテキストでは、「おおみわ」という仮名文字列が、「大神」という漢字文字列の読み仮名になっている。この例の場合、「大神」という複数の読みを有する漢字文字列を、「おおかみ」でも「だいじん」でもなく、コンテンツの作成者の意図する通りに「おおみわ」と読み上げることができる。また、この例以外のテキストであっても、漢字文字列の直後に存在する括弧に囲まれた仮名文字列が、上記漢字文字列の読み仮名になっているテキストであれば、上記漢字文字列を正しく読み上げることができる。なお、所定の第1および第2の記号は、括弧開きおよび括弧閉じ「()」以外に、例えば、「<>」、または「≪≫」であってもよい。あるいは、第1の記号と第2の記号とは、同じ記号であってもよいし、互いに無関係の記号(例えば、$と#)であってもよい。
【0142】
本発明の態様7に係るテキスト読み上げ装置(情報処理装置1)は、上記態様5または6において、上記テキストデータは、該テキストデータ中の漢字とその読み仮名とを関連付けるタグ情報を有しており、上記仮名文字列抽出部(読み仮名抽出部43)は、上記タグ情報を参照して、上記テキストデータ中の上記漢字文字列の読み仮名を抽出してもよい。
【0143】
上記の構成によれば、タグ情報に基づいて、テキストデータ中の漢字文字列の読み仮名が抽出され、該漢字文字列の代わりに読み上げられる。これにより、テキスト読み上げ装置が、テキストデータ中の漢字文字列を、正しい読みで読み上げることができる。
【0144】
本発明の態様8に係るテキスト読み上げ装置(情報処理装置2)は、上記態様5において、上記テキストデータは、上記漢字文字列に付されたルビを示すルビ情報を有しており、上記仮名文字列抽出部(読み仮名抽出部83)は、上記ルビ情報を参照して、上記漢字文字列のルビを、該漢字文字列と関連付けられた上記仮名文字列として抽出してもよい。
【0145】
上記の構成によれば、テキストデータに含まれるルビ情報に基づいて、テキストデータ中の漢字文字列のルビが抽出される。これにより、テキストデータ中の漢字を、コンテンツの作成者が意図した読みで読み上げることができる。なぜならば、ルビ情報は、コンテンツの作成者が作成する場合が多いと考えられるためである。
【0146】
本発明の態様9に係るテキスト読み上げ装置(情報処理装置1、2)は、上記態様5〜8のいずれかにおいて、上記テキストデータから上記漢字文字列を抽出する漢字文字列抽出部(漢字文字列抽出部42)をさらに備え、上記仮名文字列抽出部(読み仮名抽出部43、83)は、上記漢字文字列抽出部によって抽出された上記漢字文字列に関連付けられた上記仮名文字列を抽出してもよい。
【0147】
上記の構成によれば、漢字文字列抽出部によって抽出された漢字文字列の代わりに、上記テキストデータにおいて該漢字文字列と関連付けられた仮名文字列が読み上げられる。この構成は、例えば、テキスト読み上げ装置がテキストデータを朗読する場合に、適用することができる。テキスト読み上げ装置は、テキストデータを朗読する場合、テキストデータ中の文字列を最初から順番に読み上げてゆく。朗読の間、次に読み上げられる文字列が漢字文字列である場合に、漢字文字列抽出部がその漢字文字列を抽出する。そして、テキスト読み上げ装置は、上記漢字文字列の代わりに、該漢字文字列の読み仮名を読み上げる。これにより、テキスト読み上げ装置は、テキストデータ中に、複数の読みを有する漢字文字列が存在する場合であっても、該テキストデータを正しい読み(すなわち、コンテンツの作成者が意図する読み)で朗読することができる。
【0148】
本発明の態様10に係るテキスト読み上げ装置(情報処理装置1、2)は、上記態様5において、上記表示部をさらに備え、上記仮名文字列抽出部(読み仮名抽出部43、83)は、表示されている上記テキストデータからユーザによって選択された上記漢字文字列に関連付けられた上記仮名文字列を抽出してもよい。
【0149】
上記の構成によれば、ユーザによって、テキスト中の漢字文字列が選択される。そして、ユーザに選択された漢字文字列の代わりに、上記テキストデータにおいて該漢字文字列と関連付けられた仮名文字列が読み上げられる。前述のように、上記漢字文字列に関連付けられた仮名文字列として、上記漢字文字列の読み仮名が抽出される構成とした場合、上記漢字文字列の代わりに、該漢字文字列の読み仮名が読み上げられる。
【0150】
これにより、ユーザが読み上げを所望する漢字文字列を選択したとき、その漢字文字列が複数の読みを有する場合であっても、テキスト読み上げ装置は、上記漢字文字列を正しい読みで読み上げることができる。
【0151】
本発明の態様11に係るテキスト読み上げ装置の制御方法は、表示部に表示するためのテキストデータを音声データに変換し、変換した音声データを出力することによって、上記テキストデータを読み上げるテキスト読み上げ装置の制御方法であって、漢字文字列および仮名文字列を含む上記テキストデータを上記表示部に表示している時に、選択された該テキストデータの範囲内の上記漢字文字列に関連付けられた上記仮名文字列を、該テキストデータから読み仮名として抽出する仮名文字列抽出ステップと、上記漢字文字列の代わりに、上記仮名文字列抽出ステップにおいて抽出された上記仮名文字列に基づいて、上記漢字文字列を読み上げるための音声データを生成する音声データ生成ステップと、を含んでいる。
【0152】
上記の構成によれば、態様5に係るテキスト読み上げ装置と同様の効果を奏することができる。
【0153】
本発明の各態様に係る情報処理装置(1、2)は、コンピュータによって実現してもよく、この場合には、コンピュータを上記テキスト読み上げ装置が備える各手段として動作させることにより上記テキスト読み上げ装置をコンピュータにて実現させるテキスト読み上げ装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【0154】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。