ガイド

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 サーバーとして動かします。