Linux でテキスト読み上げ:ターミナルから自然なオフラインTTS
Linux のテキスト読み上げといえば espeak や Festival。速くて無料ですが、ロボットのような声です。ニューラル音声は人間らしく聞こえますが、ほとんどがクラウドの中です。無料の SuperClonica エンジンは、ニューラルモデル Supertonic 3 をあなたの Linux マシンに持ち込みます。ふつうのCPUでオフラインに動き、31言語を話します。
このガイドでは、仮想環境へのインストール、ターミナルからの読み上げ、選択したテキストをキーボードショートカットで読み上げる方法、声の選び方を紹介します。
必要なもの
espeak や Festival と違ってニューラルモデルなので、話し方が自然です。それでも初回起動のあとはインターネットが要りません。
- Python 3.10 以降が入った最近の64ビット Linux ディストリビューション。
- Supertonic 3 モデル用に約400MBのディスク。ダウンロードは1回だけ。
- グラフィックカードは不要:NVIDIA は速くするだけです。
- 声:内蔵の10種類(M1〜M5、F1〜F5)か、カタログの JSON ファイル。
仮想環境へのインストール
多くのディストリビューションでは pip でシステムの Python に入れられなくなっているので、仮想環境を使います:python3 -m venv ~/.venvs/tts && ~/.venvs/tts/bin/python -m pip install superclonica-cpu。コマンドは ~/.venvs/tts/bin/superclonica になります。このフォルダーを PATH に加えるか、エイリアスを作りましょう。NVIDIA のグラフィックカードがあるなら、代わりに superclonica-gpu-cuda を入れます。CUDA と cuDNN は pip が自動で入れます。
ターミナルから読み上げ
モデルは初回起動時にダウンロードされ、その後はネットワークなしで動きます。
- 1文:superclonica --text "Linux からこんにちは。" --voice F1 --lang ja --output hello.wav && aplay hello.wav。
- ファイルまるごと:--text の代わりに --text-file article.txt。長い文章は自然な間で分割され、1つの WAV にまとめられます。
- 再生はサウンドシステムに合わせて aplay、paplay、pw-play で。
- 負荷の高いマシンでは --threads 4 でCPUスレッドを制限できます。
選択テキストをショートカットで読む
小さなスクリプトを保存し、デスクトップの設定でキーボードショートカットに割り当てます:xclip -o > /tmp/sel.txt (Wayland では wl-paste -p > /tmp/sel.txt)、続けて superclonica --text-file /tmp/sel.txt --voice F1 --lang ja --output /tmp/sel.wav && aplay /tmp/sel.wav。どのウィンドウでもテキストを選択してショートカットを押せば、エンジンが読み上げます。ほかの言語を読むには --lang と声を変えます。
声とサーバー
SuperClonica のカタログの声には、それぞれ30〜100文字のフレーズをオンラインで無料で生成できるページがあります。無料の声はアカウントなしでダウンロードでき、有料の声は一度買えば JSON ファイルとして手元に残り、--voice で指定します。ネットワーク上のほかのプログラムには、Docker Hub の superclonica/superclonica イメージが同じエンジンを HTTP サーバーとして動かします。