自然な声で使える pyttsx3 の代替
pyttsx3 は Python の定番オフライン読み上げで、OS の音声エンジン(Windows の SAPI5、macOS の音声、Linux の eSpeak)を操作します。数秒でインストールでき、どこでも動きますが、声はロボット的で、プログラムの声はマシンごとに変わります。
SuperClonica もオフラインで動きますが、ニューラルモデルを使います。Windows、Linux、macOS で同じに聞こえる自然な声に加え、キャラクターの声や自分の録音から学習した声も使えます。このページでは両者を正直に比べます。
2つのオフラインの方法
片方はシステムの声を借り、もう片方は自前の声を持ち込みます。
- pyttsx3:とても小さく即座に動き、システムに入っている声を使う。声はロボット的でプラットフォームごとに違う。
- SuperClonica:約385 MB のニューラルモデルを一度ダウンロード。自然な声が、どこでも同じに。
- どちらもインターネットなしで動きます。
- SuperClonica の声は31言語を話します。中国語はまだ対応していません。
pyttsx3 が適している場面
短い通知、非力なPCでのアクセシビリティ機能、ダウンロードなしですぐ起動すべきスクリプトなら、pyttsx3 のほうが軽くて簡単です。SuperClonica はそれを置き換えようとはしていません。
SuperClonica が向いている場面
同じテキスト、声、seed なら常に同じ音声になります。pyttsx3 ではマシンが変わると保証できません。
- プログラムの声を利用者が聞くので、自然に聞こえてほしい。
- どの OS やマシンでも同じに聞こえてほしい。
- キャラクターの声、ブランドの声、自分で学習した声が欲しい。
- 読み上げるだけでなく、動画、講座、ゲーム用に音声ファイルを保存したい。
数行で乗り換える
python -m pip install superclonica-cpu でエンジンをインストールします。コードで pyttsx3 を呼んで読み上げや保存をしている箇所では、from superclonica import Superclonica のあとでエンジンを一度だけ作り(tts = Superclonica())、audio, rate = tts.synthesize(text, voice="F1", lang="ja"); tts.save("hello.wav", audio) と書きます。ファイルは任意の音声ライブラリーで再生するか、そのまま保存します。エンジンの読み込みは数秒、その後は1フレーズ1秒未満です。乗り換える前に、声のページで30〜100文字のフレーズを無料・アカウント不要で試してみましょう。
費用
エンジンとモデル標準の10音声は無料で、カタログのいくつかの声も無料です。ほかの声は一度買えばずっと使えます。pyttsx3 よりメモリーとCPU時間を使いますが、グラフィックカードも、最初のダウンロード後のインターネットも不要です。