実用的な音声ガイド
Lectern で好きな音声エンジンを使う
Android では誰でも音声エンジンを入れられます。大手が扱わない言語のための無料のオープンソース音声、端末の中で動くニューラル音声、そして長年使われてきた有料音声と、良いものが揃っています。Lectern 1.29 からは、システム設定に触れなくても、それらがすべて音声一覧に並びます。
短い答え
Google Play からエンジンを入れ、一度開いて使いたい音声をダウンロードし、Lectern で本を開いて音声 → 声へ。新しいエンジンは名前付きの独立したグループとして現れます。声の横の再生ボタンで、選ぶ前に聞けます。
1.29 で変わったこと
これまでの Lectern は、Android で既定に設定されたエンジンの音声しか表示していませんでした。二つ目のエンジンを使うにはアプリの外でその既定を変えるしかなく、すると端末全体がその声で話すようになります。そういう意図ではなく、Android に音声を尋ねるやり方の穴でした。
いまは端末上のすべてのエンジンが一覧に入ります。五つのエンジンを入れたテスト端末で、Lectern は五つにまたがる 39 の英語音声を見つけ、それぞれを提供元のエンジンごとにまとめました。システムの既定はそのままです。
手順
- エンジンを入れる。Google Play で目的のエンジンを探し、ふつうのアプリと同じように入れます。ほかに必要なものはなく、エンジン自身が Android に登録します。
- そのアプリを一度開いて音声をダウンロードする。ここを飛ばす人がいちばん多いところです。ほとんどのエンジンは音声データなしで入ります。RHVoice は Installed voices: none の状態で入り、ダウンロードするまではどのアプリにも差し出すものがありません。エンジン自身のアプリで言語を選び、ダウンロードさせてください。
- Lectern で音声一覧を開く。本の中で読書設定を開き、音声タブの声を開きます。一覧を開くたびに Lectern はインストール済みエンジンを読み直すので、入れたばかりのエンジンもすぐ並びます。
- 選ぶ前に聞く。Android が音声に与えるのは
en-us-x-iob-localのような識別子だけです。名前も性別も説明もありません。英語の音声が九つ、「iob」「iog」「iol」などと呼ばれていて、どんな命名規則からも、どれが欲しいかはわかりません。再生ボタンは、その音声自身の言語で例文を読みます。 - 選んで読む。選択は本の言語ごとに覚えるので、日本語の本と英語の本はそれぞれの声を保てます。
どのエンジンを入れるべきか
Lectern はもともとオフライン音声の Piper と Kokoro を積んでおり、たいていの本ではそちらが良い選択です。長時間の読み上げのために選んだ音声だからです。システムエンジンが役に立つのは、その二つがカバーしない言語が必要なとき、すでに知っている特定の声を使いたいとき、あるいは持っている有料音声が無料のどれよりも単純に良いときです。
無料のエンジン
| エンジン | 得意なこと | 知っておくとよいこと |
|---|---|---|
| Speech Services by Google | 多くの端末での既定。言語が多く、言語ごとに複数の声 | Android の設定でオフラインデータを落とさないと、ネットワークが要ります |
| RHVoice | 大手が飛ばす言語。エスペラント、ジョージア語、キルギス語、マケドニア語、ルクセンブルク語、ベラルーシ語、アルバニア語など | オープンソースで軽量。先にアプリ内で音声を入れないと、何も提供しません |
| TTS Engine: Next-gen Kaldi | 端末で動くニューラル音声、sherpa-onnx プロジェクト由来 | オープンソース。Lectern が Piper に使うのと同じ系統のモデル |
| Supertonic TTS | 表情のある英語音声が十種、オフライン | 英語のみ。新しめの端末では明瞭で速い |
| VoxSherpa TTS | 自分の Piper、Kokoro、Supertonic モデルを読み込む | 広告あり。公開するのは一度に一言語で、自身の音声セレクタで選んだものが他アプリから見えます |
| eSpeak NG | 非常に速く、高速でも聞き取れる。百を超える言語 | 明らかに機械的。2 倍速で聞く人はむしろこれを好みます |
| Samsung TTS | Samsung 端末にプリインストール | Google のものより言語は少ないが、すでに入っている |
有料のエンジン
これらはアプリではなく声を売ります。エンジン自体は無料で、声はその中で買います。長年スクリーンリーダーを使っている人が最初に名前を挙げるエンジンで、理由は品質です。
| エンジン | 得意なこと | 知っておくとよいこと |
|---|---|---|
| Vocalizer TTS Voice | 五十を超える言語、自然で表情があり、完全オフライン | 声ごとの購入で試用期間つき。視覚に障害のある読者の間では長く標準でした |
| Acapela TTS Voices | 大きな音声カタログ。子どもの声やキャラクター声も | アプリは無料、声は有料。購入後はオフラインで動きます |
| CereProc CerePlay | 個性のある声。地域なまりもあります | 有料エンジンではたいてい最も安い。言語数は少なめ |
有料音声はライセンスであって、私たちへのサブスクリプションではありません。エンジンの作り手から買うもので、システム音声を使うあらゆるアプリで動きます。Lectern もその一つです。私たちは関与せず、そこから何も得ていません。
エンジンが出てこないとき
ほぼ必ず次の三つのどれかで、最初のものが圧倒的に多いです。
エンジンにまだ音声データがない
何も落としていないエンジンは音声をひとつも申告せず、アプリは知らされていないものを表示できません。エンジン自身のアプリを開き、インストール済みの音声が並んでいるか確かめてください。RHVoice は入れるまで Installed voices: none と表示します。見え方は、Lectern がエンジンを認識していない場合とまったく同じです。
本と違う言語を提供している
音声一覧は開いている本の言語に従います。英語だけのエンジンは、日本語の本の中では出すものがありません。一度に一言語しか公開しないエンジンもあり、VoxSherpa がそうです。自身のセレクタで選ばれているものが、すべてのアプリから見えるものになります。入っているはずの声が出てこないときは、まずここを確かめてください。
エンジンが起動しない
バインドに失敗したエンジンは除外します。そのとき Android は黙って既定のエンジンに切り替え、成功したと報告するからです。その声を別のエンジンの名前の下に並べるのは、出さないことより悪い結果になります。端末上で挙動がおかしいエンジンは、Android 自身の音声設定で試してください。そこでサンプルが鳴らないなら、どのアプリでも音は出ません。
自分で入れた音声についての質問
システムの既定エンジンを変える必要はありますか。
1.29 以降は不要です。Lectern はインストール済みのエンジンを直接読み取ります。システムの既定はそのままなので、端末の他の部分はあなたが選んだ声を保ちます。
一冊の本でエンジンを混ぜられますか。
本は一度に一つの声で読みますが、選択は言語ごとに保存されます。日本語の本と英語の本で別のエンジンを使え、行き来に設定は要りません。
システム音声はオフラインで動きますか。
エンジン次第です。RHVoice、eSpeak、Supertonic、Kaldi、そして有料エンジンは作りからしてオフラインです。Google の音声は先にオフラインデータが要り、なければネットワークを使います。同じ声にローカル版とネットワーク版があるとき、Lectern はローカル版を選びます。
エンジンが謳う数より一覧の声が少ないのはなぜですか。
二つのふるいがあります。提示されるだけで未インストールの声は外します。選んでも端末に無いものを選ぶことになるからです。またローカル版とネットワーク版の両方がある声は、ローカル版として一度だけ並べます。あるテスト端末では、提示された 473 の声が実際に使える 28 になりました。
システムエンジンは Piper や Kokoro より良いですか。
本を読む用途ではたいてい違います。あの二つはまさにそのために選ばれています。良いのは、二つが持たない言語が要るときや、もっと気に入った有料音声を持っているときです。同じページで両方試して、耳を信じてください。
エンジンを入れると何かがどこかへ送られますか。
Lectern 経由ではありません。私たちは Android に、どのエンジンがあり、どの声を提供するかを尋ねます。ローカルな問いにローカルな答えが返るだけです。エンジン自身が何をするかはそのエンジンの話なので、どのアプリとも同じく、信頼できるものを選んでください。
次に読む