有名な小説は学生時代に読んでおけばよかったな…でも今さら読む時間もあまり取れないしな…そもそも本を買わないといけないし…今回、そんなモチベーションから始まった思いつきです。
スポンサーリンク
きっかけ
工学の分野で育ってきたので、小説よりも専門書を読むのが好きでした。
しかし、大人になると変わるものです。やっぱり有名な小説や作品は押さえておきたいなーと。何がそんなに良いんだろう?名作になる理由を知りたいと思うようになってきました。
本を読むのは面倒、だから代わりに読んでくれないかな…朗読してくれたらいいな…
あれ、ラズパイに朗読してもらえばいいじゃない!!!
ちょっと違う気もしますけど。(笑)
解決策
朗読させるための仕組みは、みんな大好きOpenJTalkを採用。朗読なので、音響モデルは落ち着きのある東北大の女性音声にします。
OpenJTalk導入手順については、過去の記事を参考にして下さい。
問題は、どうやって小説を読ませるのか。要するにソースとなる小説がない状態。
思いついたのは、著作権が消滅している小説。
通常、著作権は50年で消滅します。
この著作権が切れている作品を集めた「青空文庫」に着目しました。
小説の解析する
青空文庫の小説は、テキストファイルでも公開されています。これが非常にありがたい!
いざ、夏目漱石「坊っちゃん」をダウンロード!!
開いてみると…ルビ振ってある!!!邪魔!!!!
ラズパイで読むには不要な文字列を取り除く必要があります。
青空文庫のテキストは、ルビを振るにも規則に従って書かれています。
要するにテキストに含まれている不要な文字列を削除すれば良いのですね。
朗読システム動きを考える
朗読システムの流れを考えてみます。
朗読はOpenJTalkで行うため、1回の朗読が512文字という制約があります。(長ければ長いほど喋るまでの時間がかかります)
そのため、小説の朗読では分割する必要があります。
今回は、句点毎に朗読するようにします。これで、512文字問題は回避できます。
句点毎に区切った文字列をOpenJTalkの引数として渡し続ければ、1冊まるまる朗読させることが可能です。
…と、今回はここまで。
次回は実装するまでの手順を公開します。
※2017/5/5追記
RaspberryPiに小説を朗読してもらう(実装編)を公開しました!
[…] Previous PostPrevious BONMACコーヒーサイフォンを購入しましたNext PostNext RaspberryPiに小説を朗読してもらう(構想編) […]