自然な声でオフラインに使える gTTS の代替
gTTS は多くの Python チュートリアルの出発点となるライブラリーで、テキストを Google 翻訳の音声サービスに送って MP3 を保存します。簡単で無料ですが、インターネットが必要で、公式APIではなく、制限されたり動かなくなったりすることがあり、選べるのは声ではなく言語とアクセントです。
SuperClonica は、自分のPCでオフラインにテキストを読み上げる無料エンジンで、標準の10音声、カタログのキャラクターの声、自分の録音から学習した声を使えます。このページでは両者を正直に比べます。
2つの異なる仕組み
片方はオンラインサービスを借りるもの、もう片方はインストールして手元に残るエンジンです。
- gTTS:テキストはオンラインサービスへ。声は言語とアクセントごとに1つ。非公式なので、リクエストが制限されたり失敗したりすることがある。
- SuperClonica:約385 MB のモデルを一度ダウンロードしたあとはローカルで動作。何も外に送らない。
- SuperClonica の声は31言語を話します。中国語はまだ対応していませんが、gTTS は中国語を話せます。
- SuperClonica では多くの声を選べます。標準の声、キャラクターの声、そして自分の声。
gTTS で十分な場面
ネット接続のある環境でのちょっとしたスクリプト、Supertonic 3 が話さない言語、あるいは声の質を問わないときは gTTS は妥当な選択で、SuperClonica はその言語の幅を置き換えるものではありません。
SuperClonica が向いている場面
同じテキスト、声、seed なら常に同じ音声になるので、結果を再現できます。
- プログラムをオフラインや閉じたネットワークで動かす必要がある。
- テキストが機密で、マシンの外に出してはいけない。
- 声を選びたい、キャラクターの声や自分で学習した声を使いたい。
- 大量のテキストを読み上げるので、非公式サービスの制限にかかりたくない。
数行で乗り換える
python -m pip install superclonica-cpu でエンジンをインストールします。コードで gTTS オブジェクトを作って保存している箇所は、エンジンに置き換えます。from superclonica import Superclonica と tts = Superclonica() のあとで audio, rate = tts.synthesize(text, voice="F1", lang="ja"); tts.save("hello.wav", audio) と書きます。gTTS のように MP3 が欲しければ、出力名を .mp3 にしてコマンドライン版を実行します。長いテキストは自然な間で区切られ、1つのファイルにまとめられます。乗り換える前に、声のページで30〜100文字のフレーズを無料・アカウント不要で試してみましょう。
費用
エンジンとモデル標準の10音声は無料で、カタログのいくつかの声も無料です。ほかの声は一度買えばずっと使えます。リクエストごとの料金も、制限をかけてくる相手もいません。一度インストールすれば、インターネットなしで動きます。