DeathMarch.net

カメラや写真、RaspberryPiやLinux関連の活用方法、普段使っているモノのレビューや自作したものを写真多めで紹介します。

RaspberryPi ガジェット

RaspberryPiに小説を朗読してもらう(実装編)

投稿日:2017年5月5日 更新日:

LINEで送る
Pocket

ラズパイでできること…RaspberryPiに小説を朗読してもらうことにしよう!
今回は機能実装をします!

前回、構想編ということだったので、今回は実装編になります。

有名な小説は学生時代に読んでおけばよかったな…でも今さら読む時間もあまり取れないしな…そもそも本を買わないといけないし…今回、そんなモチベーションから始まった思...

スポンサーリンク

 

実装方法

それでは実装します。
まずは小説の下ごしらえをしましょう。

小説の下ごしらえ

青空文庫から好きな小説をテキスト形式でダウンロードします。(青空文庫のリンク)

テキストファイルをテキストエディタで開きます。テキストエディタは正規表現が扱えるものにした方が良いです。私の環境はMacなのでmiを使用しています。

消さなければならないのは、《○○》や[○○]といったもので囲まれています。

正規表現で置換していきます。正規表現で《○○》や[○○]を検索し、置換文字を何も指定しなければ削除したことになります。
例として「《○○》」を検索する正規表現は以下の通りです。(エディタによって異なる場合があります)

正規表現:《[^》]+》

これで不要な記号が削除されました。まだ他にも残っている場合は、正規表現を変えて削除して下さい。

次に句点で改行となるように整えます。

まず、改行コードを全て削除します。こちらも正規表現を使います。
改行コードは「¥r」や「¥n」で検索できると思います。
…これで、小説の全文が1行になります。

次に、句点を「句点+改行コード」となるように置換します。
…これで、テキスト全てが句点直後に改行された文章になっていると思います。

最後に、下ごしらえしたテキストファイルをUTF-8で保存します。(SJISファイルだとOpenJTalkで読めません)

 

朗読コマンドの作成

小説は句点毎に改行されているテキストファイルです。

OpenJTalkの引数として渡したファイルを開き、先頭から1行ずつ読み込んで喋る…ということをファイルの最終行まで繰り返せば良いのです。

シェルスクリプトで実装します。

jsayコマンドについては、こちらの記事を参考にして下さい。

RaspberryPi 3にOpenJTalkのソースをコンパイルしてインストールしました。アイデア次第でなんでも喋ってくれます。 インストール方法(ソースから)aptでインスト...

朗読コマンドに実行権限を与え、下記コマンドで実行できます。

$ ./roudoku.sh bocchan.txt

引数に渡しているbocchan.txtは、小説のテキストファイルですので、下ごしらえで作ったファイル名を指定して下さい。

見ての通り、エラー処理や便利機能は一切実装していないため、必要に応じて追加実装する必要があります。

 

まとめ

どうでしょう?ひたすら朗読をしていると思います。(笑)

お分かりだと思いますが、再開機能はありません。シェルを止めるにはCtrl+Cで止めて下さい。

スクリプトをちょっと改造すれば、指定行からの再開なども簡単に実装できると思います。

次は何を作ろうかなー!

スポンサーリンク
LINEで送る
Pocket

-RaspberryPi, ガジェット
-,

執筆者:


  1. […] Previous PostPrevious RaspberryPiに小説を朗読してもらう(実装編)Next PostNext 香川(うどん県)の「もり家」に行ってきた […]

Leave a Reply to RaspberryPiに小説を朗読してもらう(構想編) – デスマ購買部 Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

関連記事

KUSANAGI for さくらのVPSでIntel Meltdown/Spectre対策を実施した

2018年になってからというもの、Intelプロセッサの脆弱性について報道されています。MeltdownとSpectreと呼ばれ、かなり広範囲のユーザに影響があります。今回は、VPSで脆弱性対策を実施 …

電子部品を小分けにした

これで解決!増え続ける電子部品を整理する安上がりな方法

電子工作を始めると色々な部品が欲しくなり、出来ることが増えると更に増えるのが電子部品。100均用品で低コスト&綺麗に収納しましょう!

NVR500

YAMAHA NVR500で定期的にWakeOnLanを実行する方法

我が家ではYAMAHA NVR500を使っているのですが、色々活用方法がないかなーと思っていましたが、WakeOnLan(WOL)機能があるみたいなので少し勉強してみたので、備忘録としても残しておこう …

ラズパイでニュース読み上げ

Raspberry PiでGoogle HomeみたいにNHKニュースを再生する方法

Google Homeと違って、RaspberryPiでは決まった時間に自発的にニュースを喋ってもらうことが可能です!便利なので少し進化させてみました!

格安SIMを使ってJアラートを受信したときの注意点

北朝鮮のミサイル発射問題で日々騒がれています。緊急情報をいち早く通知するためのJアラートですが、格安SIMを使っている場合の注意点を書いてみようと思います。

2020/04/26

IKEAの「LILLABO」でプラレールとBRIOとプチ電車を比較して分かったこと

電車のおもちゃって種類が色々あるけど、ちゃんとレール走れるのかな?ということで検証してみました。

Mac mini 2018

2019/12/09

Mac mini 2018をレビュー!周辺機器も紹介します!

自宅メイン機の刷新でMac mini 2018を購入しました!購入したモデルの詳細とレビュー、現在使っている周辺機器を紹介します!

2019/12/09

自宅で薪作りをするために電動チェーンソーCS-2501を購入!

自宅で薪作りをするため、電動チェーンソーを追加購入しました。STIHL MS170と比較しながらRYOBI CS-2501をレビューしてみようと思います!

外観

2019/12/07

Focusrite Scarlettでハイレゾ試聴環境を構築してみた

最近ハイレゾ、ハイレゾ…と目にする機会が増えてきたので、そろそろハイレゾ環境を構築してみようと思い、オーディオインターフェースであるFocusrite Scarlettを使ってハイレゾ鑑賞環境を構築し …

2019/03/11

METIS PLUSとASRock J4105-ITXで省電力・静音録画サーバを作る

録画サーバのリプレースとして、METIS PLUSとASRock J4105-ITXを使って自作サーバを構築したので紹介しようと思います。ちなみに自作PC初体験でした。