Windowsで縦書き総ルビの般若心経を読み上げ
ここんとこマイブームとなっている音声付き電子書籍。
前回の雑記に書いた作成手順通りで、macだとシステムの読み上げ音声を使って割りと簡単にできるんだけど、Windowsはちょっと準備が必要。
・必要なもの
読み上げ音声のために
softalk
「SofTalk」
https://www35.atwiki.jp/softalk/pages/1.html
を、ダウンロード&インストールしてPATHを通しておく。
softalkが書き出す音声ファイルは.wav。EPUBはaudioには.mp4が必要で.wavはnon-standard fileとエラーになる。
(https://www.idpf.org/epub/30/spec/epub30-publications.html#sec-core-media-types)
.wavから.m4aに変換するために
ffmpeg
「お気に入りの動画を携帯で見よう」
https://blog.k-tai-douga.com/article/112473351.html
を、ダウンロード&インストールしてPATHを通しておく。
(※ともに、有用なソフトをありがとうございます!)
前回の「音声ファイル作成」の部分がWindows用というかsoftalkを使って音声ファイル作成となるだけで、あとは同じ。
〜〜〜〜〜〜〜〜
↑下準備が終わったら(以上略)
・音声ファイルの作成
その1.
perl say_softalk_wav.pl
softalkで音声ファイルを作るためのバッチファイルを生成。
その2.
say_softalk_wav.bat
というバッチファイルができるので、ダブルクリック。
_voice/multimedia/ フォルダに
say_contents000_1.wav ...と wavファイルができる。
その3.
perl say_softalk_m4a.pl
_voice/multimedia/のwavファイルをm4aファイルに変換する。
↓音声同期ファイルとEPUB3パッケージファイルの編集(以下略)
〜〜〜〜〜〜〜〜
問題点。wavからm4aに変換すると劣化してしまう。
ffmpegのパラメータをいじってみたんだけど、元のsoftalkが書き出してくれるwavファイルの品質よりもやはり劣化してしまう。
縦書き、総ルビの般若心経をSofTalkで読み上げさせてみた。
この手のは、VoiceOverやTalkbackじゃ読めないんでmedia overlays(電子書籍)の勝利だ。わはははは。
↓前回の雑記。
『動画で見る音声付き電子書籍の作り方』
↓音声のアクセントや区切りを調整して自然な読み上げに
『電子書籍につける音声の調教』
↓音声付き電子書籍作成に使ったスクリプト。
https://t2aki.doncha.net/release/say_easy_epub.zip
例によってコードが汚いのは素人芸なので勘弁してください。
↓実際に作った音声付き電子書籍一覧
『「眼聴耳視」音声付き電子書籍公開リスト』
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
動画で見る音声付き電子書籍の作り方
ここんとこマイブームとなっている音声付き電子書籍。
ウチのeasy_epubを使うこととmacを前提として、音声をつけるためのスクリプトを3本書いてみたので、音声付き電子書籍の作りかたを晒します。
[2015/12/17 08:09:33]
音声付きEPUB3電子書籍の準備から制作まで詳細は
「音声付き電子書籍の作り方【0】」https://t2aki.doncha.net/?id=1449791838
↑こちらからどうぞ。
・必要なもの
mac
読み上げ音声のために
「システム環境設定」→「音声入力と読み上げ」→「テキスト読み上げ」→「システムの声」
KyokoさんかOtoyaさんをインストール
(※Windowsはこちら→https://t2aki.doncha.net/?id=1424757485)
perl
MP4の情報取得のために
MP4::InfoをCPANからインストール
https://search.cpan.org/~jhar/MP4-Info-1.13/
EPUB3ファイル作成のために
かんたんEPUB3作成easy_epub
https://t2aki.doncha.net/easy_epub
作成手順を動画にしてみました
以下はすべて easy_epub/ フォルダの下で作業。
・下準備その0
perl easy_epub.pl テキストファイル
読み込ませるテキストファイルに「((句読点でspanタグ))」と一行追加してepub3ファイルを作成。
・下準備
perl say_prepare.pl
その0でspanタグを挿入されたところにさらにidを記入。
spanタグでくくられた文章を抽出
ルビがあったらルビを展開して、ルビを読むようにしている。
(この時、SPANと抽出した文章が違ったりするとNGと出るので対応必須)
_voice/ というフォルダ以下に、電子書籍に音声を付けるためのファイルを生成。
_voice/_span_split.txt 句読点でバラされた文章が一行ずつ書かれている
_voice/text/ 以下にidをふられた本文ファイル(.xhtml)
・音声ファイルの作成
perl say_mac_m4a.pl
下準備で抽出した文章をmacのsayコマンドで音声ファイルに書き出す。
(※ WindowsでもSoftalkを使えば同じことができる。ただし、音声ファイルは.wavファイルとなるのでコンバートが必要)
読み間違いがあったら _span_split.txt の文章を「平仮名」にして対応する。
・音声同期ファイルとEPUB3パッケージファイルの編集
perl say_setting.pl
読み上げ音声が読んでいる箇所を同期させるための . smil ファイルを生成。
epub3のパッケージファイル(content.opf)の追加&編集。
・EPUB3電子書籍ファイルに上記で作成した音声をつけるためのファイルを入れる
_voice/content.opf を OEBPS/content.opf に上書き。
_voice/text/ にある .xhtml ファイルを OEBPS/text/ にある .xhtml に上書き。
_voice/multimedia を OEBPS/ にコピー。
epub3ファイルにzipで固める。
zip -r 「EPUB-FILE 」OEBPS/*
https://t2aki.doncha.net/release/say_easy_epub.zip
↑スクリプト3本セット。
例によってコードが汚いのは素人芸なので勘弁してください。
この作りかただと、棒読みだし、音声ファイル数がこの掌編でも約600個にもなってRSにファイル数上限なんかがあったらアウト。手間ヒマかけずに「とりあえず音声を付けたい」というだけのシロモノです。
↓ SofTalkで音声を用意して、Windowsで音声付き電子書籍を作成する方法
『Windowsで縦書き総ルビの般若心経を読み上げ』
↓音声のアクセントや区切りを調整して自然な読み上げに
『電子書籍につける音声の調教』
たぶん。
今後はVoiceOverやTalkbackといったアクセシビリティ=ユーザー補助での読み上げが技術的に進化・深化して、誰にとっても、より聞きやすく使いやすいものになる。
とはいえ、現状は
・読みの校正・編集ができない
・読み上げ部分のハイライト表示ができない
ということで電子書籍に関してはmedia overlaysを使ったEPUB3の出番だろう。
人工の音声合成にしても会員制のものや50万円クラスのソフトだとかなり自然に聞こえる。これらが限定解除されたり気軽に手の出せる値段になってくれば一気に普及しそうな予感。
本の権利処理がネックになりそうだけど。
著作権切れの青空文庫を片っ端から音声を付けた電子書籍にして図書館のパソコンで読めるようにすると面白そう。
近畿視情協主催「どうなる! 電子書籍のアクセシビリティ ~ だれにも使える「本」の実現をめざして」#近畿視情協201519
https://togetter.com/li/785303
というまとめを読むと図書館では、電子書籍は否定的らしいんだけど(高齢者は紙の本を読みたい/そもそも図書館・職員自体デジタルに疎い)ウチの地元の図書館はIT情報コーナーとかあってパソコンも複数台用意されてるしなあ。
実際に作った音声付き電子書籍一覧
『「眼聴耳視」音声付き電子書籍公開リスト』
図書館の日常業務でお忙しいとは思いますが、音声付き電子書籍のお試しにいかがでしょう。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
media overlaysによる音声付き電子書籍の作成
とりあえず、音声付きの電子書籍を自力でもなんとか作りたいなあと思ったのでごそごそやってみた。
最大のハードルは音声ファイル。
いや、音声合成のアプリを購入すればそれで済むんだけど、落ち目甲斐性無しの初老フリーターにそんな余裕はなくて(お仕事お待ちしております!)この時点で諦めてた。
ところが検索したら、macのsayコマンドで読み上げさせる・音声ファイル(mp4やm4a)として書き出しまできるというのを見つけて俄然やる気になった。
サンプルは青空文庫『キリストのヨルカに召された少年』(何度もくどいけど、こいつは大傑作の掌編なので読むべし)
手順その1
音声合成するためのEPUB3ファイルの作成。
でんでんコンバーター を参考に、ウチのeasy_epubに、とりあえず本文を句読点ごとにspanタグでくるんでepubファイルの作成ができるオプションを追加。spanタグに通しのidも振るようにした。
これで本文の仕込みは完了。
手順その2
spanタグで区切られた単位の文章一行ずつのファイルを作る。
このファイルを読みこんでsayコマンドに渡して読み上げ用音声ファイル.m4aを作る。
mac スゲー!ていうかunixはスゲーです。
perlは便利…だけど、たぶんautomaterとかシェルスクリプトでもできる、ような気がする。お好みのツールで。
手順その3
音声同期ファイル(.smilファイル)を作る。
・本文に仕込んだspanタグのidをここの text srcに指定する
・音声ファイルと、その再生時間を記述する
・おのおののidはテキトーで良さそう(ほんまかの結果オーライ)
今回は「ひと区切りごとにひとつの音声ファイル」としたので「ClipBeginは0でClipEndは音声ファイルの再生時間」だけどひとつの音声ファイルでまかなう場合はClipBeginとClipEndの指定をしっかり計算する必要がある。
(でも、ここもmp4の情報を取得して足し算して、というだけ。perlなどのスクリプト言語で一括処理できるところなので、あまり難しく考えることもないかな。…あ、うそ。これだといちいちフレーズが何秒か調べなきゃいけないのでとても無理っぽい)
手順その4
音声ファイルと.smilファイルを、OEBPSフォルダの下、たとえば「multimedia」というフォルダを作って放り込む。
手順その5
EPUBのパッケージファイル、content.opfを編集する。
・metadata部
durationに再生時間を記述
読み上げと同期してハイライトさせるためのcssのクラス名を記述(cssには「-epub-media-overlay-active」というクラスを作っておく)
・manifest部
この本文にこの.smilファイルを適用します、というのを記述
.smilファイルや音声ファイルの定義、設定を記述
以上で完成。
media overlaysに対応した(Readiumなどの)リーディングシステムで読み上げできる。
昨日の雑記にも書いたように、読み上げを耳で聞きながら、ハイライト部分を目で追いながら。視覚・聴覚から入ってくる読書体験は刺激的だ。
macのユーザー補助の読み上げ音声を使ってるのでVoiceOverと同じじゃん、ということなんだけど。
手順その2で文章をひとつずつsayコマンドに渡して作るので「明らかな読み間違いはここで校正できる」のがmedia overlaysのポイントかな。
やっぱ、読み間違いは校正・修正したいのが人情ってやつだ。
てことで、校正もしていないそのままのepubファイルはこちら
ttp://t2aki.doncha.net/tmp/20150217_voice.epub
(↑ tmpフォルダは直リンクできないので、こちらからどうぞ)
[02/19 08:11:03] 追記
すみません。macの音声を入れて作ったEPUBファイルを公開するのは、使用許諾契約書を見ると「Appleソフトウェアが起動中である場合」に引っ掛かりそうなので取り下げておきます…。
F. ボイス 本契約の契約条件に従って、お客様は、Appleソフトウェアに含まれるシステムボイス(以下「システムボ イス」といいます)を、(i)Appleソフトウェアが起動中である場合、かつ(ii)お客様自身のオリジナルのコンテンツおよ びプロジェクトをお客様の個人的で、商用的でない利用のために作る場合に使用できます。
↓作成手順を動画にして、作成に使ったスクリプトを公開
『 動画で見る音声付き電子書籍の作り方』
↓実際に作った音声付き電子書籍一覧
『「眼聴耳視」音声付き電子書籍公開リスト』
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
音声を用いた読書
日本電子出版協会(JEPA)の今朝のメルマガが「「音声を用いた読書」についてのアンケートのお願い」というものだった。
前にも書いたことの繰り返しになるけど。
障害者差別解消法施行に向けて内閣府や総務省などなど「お上」が動きだしている模様。
法律となって義務づけられると、いままでのボランティアベースとはまた違って企業・商売ベースで音声合成付き電子書籍が広がる。
アクセスログを眺めてたら
『AndroidのTalkbackでkindleを音声読み上げ』
↑ここんとこ地味に検索からのアクセスが増えていて(とはいえ500pvを超えたぐらいだけど)電子書籍に音声をつけるのが話題になってるのかなぁ、と思ってたところに今朝のメルマガで驚いた次第だ。
kindle のスピーカーのついたFire端末で、コンテンツが「テキスト読み上げ機能」に対応していれば読み上げるはず(Fire実機を持ってないので未検証)
また、kindle アプリの読み上げ、というか AndroidのTalkback、iOSのVoiceOverを使えばkindleのリフローコンテンツを読み上げてくれる。
Android Talk back
https://www.amazoen.co.jp/gp/help/customer/display.html?nodeId=201454230
iOS VoiceOver
https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=201244940
これらは、ユーザー補助機能=画面に表示するものすべて読み上げる機能で、音声付き電子書籍のための機能ではない。でも、どちらも、意外にもそれなりに人の声っぽく聞きとれる音声で読み上げてくれるのでちょっと驚いた。
ユーザー補助機能ではなくて、電子書籍に音声が埋め込まれている場合。
音声合成付き電子書籍を読み上げると(chromeのReadiumなど)「読み上げている部分」が「画面上でハイライト表示される」
これはちょっと面白い読書体験で「目で追って」「耳で聞く」という視覚と聴覚、2つから流れこんでくる読書。
自分でも作れると面白いなあ、と思ったんだけど、音声ファイルを用意するのがまず厳しいし、同期ファイル(SMIL)や本文にタグの埋め込みも面倒くさい。
…とか検索してたら一昨年2013年の時点で
『でんでんコンバーターに朗読付きEPUB作成支援機能が追加』
でんでんコンバーター は音声付きの電子書籍作成にも対応していた。すげー。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
健康促進
今年になって検査結果で悪玉コレステロールの値などが下がって、薬が弱いものに変わった。
内科の先生が結果を眺めて悪い数値がまったくないですよ!薬を変えましょう、と。
高脂血症、悪玉コレステロールは生活習慣病だ。
生活習慣を変えたわけじゃないのになあ、と言ったら
「毎日なにかに憑かれたように歩いてるじゃん」
とヨメに笑われてしまった。
Ingress様様、google様様かもしれん。
出先で仕事はポータル密集地なのでひと駅手前で降りて歩いてるし、表に出た時も直進最短ルートではなくてポータルを巡りつつ右往左往。
出先の時は1万5000歩ほど歩いてるし、ウチでごろごろしてるつもりでも5000歩程度は歩いてんなあ。
これが健康目的のウォーキングやジョギングだったら続いてない。
何の保障もない無職初老のフリーターだ。健康だけは気をつけにゃいかんのでこれは助かる。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
ひとは間違いを犯すのだ
「絶対」なんてことはありえないんだけど、世の中これだけは「絶対」と副詞をつけても正しいのが「人間は絶対に間違いを犯す」
いや、別に倫理的とか哲学的なとかメタな話じゃなくて、単純なミスの話。だ。
人間のやることだ、ミスは必ず起こる・起こす。
ミスを起こさないための方法を100通り考えるヒマがあったら、ミスが起こった後にフォロー・リカバリする方法を10通り用意する方がよっぽど効率的で健全な判断だろう。
その方法はシステム的なことかも知れないし、担当者を温泉に連れこむような人的力技かも知れない。
わたしは自分の仕事を信用してないのでミスがあることを前提に、仕事の後のチェックやミスの早期発見の方法をまず考える(自分でやるのか、他人にまかせるのかはおいといて)
てことで、やっと今日の雑記の小ネタ本文はここから。無駄な前振りが長いのは年寄りなので勘弁してもらおう。
データベースへの登録作業。
登録したデータはサイトに表示されて…ネタは商品ページにありがちなスペック表みたいなシロモノ。
リンゴのページにはリンゴの表となって表示される。
名前 | リンゴ |
---|---|
値段 | 300円 |
産地 | 余市 |
ミカンのページにはミカンの表となって表示される。
名前 | ミカン |
---|---|
値段 | 200円 |
産地 | 愛媛 |
データベースを直接覗けるならSQL文一発で入力項目のチェックができるんだけど、いかんせん、管理画面でしか使えない。
入力したものを確認するにはリンゴのページを開いて確認し、ミカンのページを開いて確認し、とページの数だけ開いて確認する必要がある。
これはいくらなんでも面倒くさい。ミスを放置しろといわんばかりだ。
なもんで、あちこちのページにあるHTMLの単純なTableを一覧したい。ということで例によってperlの出番。
まとめてこんな表にすれば、いちいちページを開く必要がなく確認がらくちんだ。
名前 | 値段 | 産地 |
---|---|---|
リンゴ | 300円 | 余市 |
ミカン | 200円 | 愛媛 |
当然perl には HTMLを解析するモジュールが用意されていて
HTML::TreeBuilder
HTML::TagParser
Web::Scraper
ちょっと調べた限りではこの3つが定評もあって使いやすそう。
ただ、今回はTableの項目を引っ張りだしてひとつのTableにするだけ、タテのものをヨコにするだけなので現物合わせ「オレオレscript」で作った。
lwpで各ページのHTMLを取得してその中から必要なtableを探してバラしてhashに収納して一覧表にして表示する。
今日の雑記はここ。tableをバラして収納するところ、ていうかこれだけ。
perlの正規表現のeオプションは強力でいろんな状況で使える。てか、式に使えるんだからなんでもありだよなあ。
hashに入れてしまえば後はどうにでも加工できる。
…にしても、本当にperlはすげー。
私立文系まっしぐらでプログラムなんて全然知らない・経験や訓練もないわたしでもそれなりに使えてしまう。日々の仕事でなんでこんなこと、てな単純な繰り返しや、ちょっとした条件分岐を入れればすむだけ、というような場合にperlはスイス万能ナイフ的に使える。
人間が1000回コピペすると3回ぐらいはミスをするけど、perlでスクリプトにしてしまえば間違いは犯さない。
これから何かひとつプログラム言語でも、というかたにはperlをオススメ。
ぶっちゃけ、perlがあるおかげで仕事でも趣味でもいろいろ本当に助かっている。
競馬の、馬券のデータ集計のために使うようになったAWKからperlに辿りついたわけで、競馬に感謝するしかあるまい。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」