ルビと文章の読み上げについて

2017.10.06

日立コンサルティング  岡山 将也

日本語の文章は、仮名漢字交じりだけでなく、アルファベットや記号など、様々な文字の組み合わせて作られているのが特徴です。そのため言語取得期の小中学生や、高校生、大学生、大人になっても、読めない漢字が出てきます。特に地名や人の名前など固有名詞は独特の読み方をする場合があり、読みを指定してもらわないと読めない状態が出てしまいます。そのため、日本語では、文章を読み上げる際に、その漢字(記号など)をどのように読めばよいかを指定する平仮名や片仮名を利用して表現できるようにしています。読ませたい漢字のことを“親字”もしくは“親文字”といい、その親字の読みを表す少し小さな文字(平仮名や片仮名)を“ルビ”といいます。このルビがあるおかげで、私たちは難しい漢字も読むことができるようになっています。

さて、ルビは、その文字を正しく読むために生み出された表現方法ですが、たまに別の読み方をさせたい場合があります。特に詩はこの傾向があります。「希望」と書いて「ゆめ」とか、「宇宙」と書いて「そら」という場合にもルビが使われます。ちなみに、正しく読ませるルビは“正ルビ”といい、著者が読ませたいように振るルビを“略ルビ”といいます。

電子書籍フォーマットの一つであるEPUBでもルビを表現する方法があります。

人の名前にルビを振る場合、例えば、有名な「夏目漱石」に「なつめそうせき」とルビを振りたい場合を考えてみたいと思います。一般的な書籍では、

なつ そう せき

というように、それぞれの親字となる漢字の上に読み仮名を付けます。これをモノルビといいます。XHTML形式で書くと、以下のようになります。

<ruby>

<rb>夏</rb><rp>(</rp><rt>なつ</rt><rp>)</rp>

<rb>目</rb><rp>(</rp><rt>め</rt><rp>)</rp>

<rb>漱</rb><rp>(</rp><rt>そう</rt><rp>)</rp>

<rb>石</rb><rp>(</rp><rt>せき</rt><rp>)</rp>

</ruby>

EPUBで、この表現で記載すると、ルビに対応しているブラウザでは問題ありません。しかしルビに対応していないブラウザで表示すると、

『夏(なつ)目(め)漱(そう)石(せき)』

と表示されます。目で見てどの漢字(親字)をどのように読むかを掴むには、これでいいと思いますが、「夏目漱石」という一つの固有名詞と考えるならば、グループルビの方が、この漢字のカタマリがどのように発音するのかを読み手に理解してもらえると思っています。グループルビというのは、複数の親字に対して均等に読み仮名を振るルビのことです。この場合の表示は、「夏目漱石(なつめそうせき)」となります。同様に漢字のカタマリというのは、意味のある単位の漢字のカタマリのことで、固有名詞や、熟語、慣用句を指します。

ここまでは人が見て、どの漢字(親字)をどのように読むかに焦点をあててお話しましたが、この文章をコンピュータ、すなわち電子書籍リーダーに読み上げさせようとした場合、どうなるでしょうか? 私も実際、電子書籍の読み上げに関するプロジェクトに参画して、EPUBの文書解析エンジン(パーサー)を試作した際に、ルビの解釈で本当に苦労しました。ルビの振り方ひとつで、電子書籍リーダーがきちんと読み上げられるか(読み間違いがないという意味で、流暢に読むこととは別のことです)どうかが決まります。

電子書籍リーダーがルビを解析して、きちんと読み上げさせるために、EPUBを制作する皆様に気を付けてほしいことがあります。それは、<ruby>~</ruby>のセットを漢字のカタマリで割り当ててほしいのです。決して、一つひとつの漢字にこのセットを割り当てることは決してなさらないでください。電子書籍リーダーでの文章解析において、漢字のカタマリの読みがどこで終わるかがわからない状況になります。特に、文書全体(一冊の本単位)で最初だけにルビを振る“パラルビ”の場合に問題が起きます。パラルビとは、最初に出てきた漢字の読みをその後の同じ漢字に割り当てることを意図して振られるルビのことです。全ての漢字にルビを振る、“総ルビ”であれば、すべての漢字の読みがわかるのですが、パラルビはそう簡単ではありません。

例えば、夏目漱石を<ruby>~</ruby>でくくることで、読みを解析する際に、漢字のカタマリがわかります。しかし、この表記を一つ一つの漢字、夏、目、漱、石とそれぞれの漢字で括ってしまうと、意味のカタマリが漢字一文字に対応してしまいます。夏を「なつ」と読むことは、それ以降あまり問題にはならないと思いますが、石を「せき」とすると、後ろの文章で、『石を蹴る』という文章があるとき、人間であれば『いしをける』と読みますが、ルビを忠実に守ろうとすると、『せきをける』になってしまいます。電子書籍リーダーにパラルビ解釈を可能にしようとすると、必ずこの問題にぶつかります。最近の自然言語処理エンジンは賢くなっていますから、うまくプログラミングすれば対処できると思いますが、文章の前に、「石」を「せき」と読め、と指定されている状態で、その後でてきた「石」を「いし」と読むのが正しい!と判断させるのは、とても難しいと思っています。

また、ルビの表現を綺麗に見せるために、本来CSSで制御するものを、XHTML本体で制御すると、同じ問題を引き起こします。以下の例を見て下さい。喜重郎さんという人にルビを振る場合、表示のバランスを考えて、XTHML本文で漢字とルビの割り当てを行うと、とんでもないことになります。特に漢字一つを<ruby>~</ruby>で括った場合で、かつ拗即音も小書きにしない場合を見てみましょう。

きじ ゆう ろう

<ruby><rb>喜</rb><rp>(</rp><rt>きじ</rt><rp>)</rp></ruby>

<ruby><rb>重</rb><rp>(</rp><rt>ゆう</rt><rp>)</rp></ruby>

<ruby><rb>郎</rb><rp>(</rp><rt>ろう</rt><rp>)</rp></ruby>

 

と書いたとします。表示上は綺麗に見えますが、読み上げの情報としては由々しき事態を引き起こします。パラルビの場合、このルビの後に、

『喜重郎は、喜んだ』

という文章があったとしましょう。するとリーダーは、

『きじゆうろうは、きじんだ』

と読みます。さらに、『重たい』という文章がある場合でも、『ゆうたい』と読んでしまいます。

これを回避するには、喜重郎を一つのカタマリとしてルビを振ることです。

きじゅうろう
喜重郎

<ruby>

<rb>喜重郎</rb>

<rp>(</rp><rt>きじゅうろう</rt><rp>)</rp>

</ruby>

これの方がXHTML的にも綺麗ですね。このように記述しておくとリーダーも「喜重郎」を「きじゅうろう」と処理でき、『喜重郎は、喜んだ』は、『きじゅうろうはよろこんだ』と処理することができるようになります。

電子書籍を読み間違いの無いように読み上げできるようにするということは、“誰にでも読める”こと、すなわち“アクセシブルにすること”を意図しています。アクセシブルにすることは、障害者対応だけのことではありません。誰でも日本語を読み間違いなく読むことができるように記述することが、誰にでも優しいEPUBに一歩近づく活動かもしれません。まずは制作段階から表示だけなく、読み上げのことも考慮してEPUBを制作して頂くと、誰でにも読めるEPUBという将来につながっていくのでは、と思っております。