Gradio で音声読み上げウェブアプリを作る
テキストを入力すると自然な声で聞ける小さなページは、AIの最初のプロジェクトの定番であり、便利な社内ツールにも、製品のデモにもなります。Gradio なら Python の関数を数行でそのようなページにでき、無料の SuperClonica エンジンがふつうのCPUで声を担当します。
このガイドでは、最小限のアプリ、声や設定の追加、無料での公開方法を紹介します。私たち自身の Hugging Face Spaces のデモも、まさにこの方法で作られています。
作るもの
すべて自分の Python プロセスの中で動き、テキストが音声サービスに送られることはありません。
- テキスト入力欄、声の選択、ダウンロードボタン付きのプレーヤー。
- 10の標準音声と、持っているカタログの声。
- ノートPC、サーバー、無料のクラウドCPUで動きます。
- グラフィックカードも有料APIも不要。
まず声を聞く
コードを書く前に、声のページで聞いてみましょう。30〜100文字のセリフを入力し、言語を選んで生成ボタンを押せば、数秒でアプリに入れる声が決まります。
最小限のアプリ
Gradio の Audio 出力はサンプリングレートと音声配列の組を受け取るので、(rate, audio) の順で返してください。
- 2つのパッケージをインストール:python -m pip install superclonica-cpu gradio。
- アプリを書く:import gradio as gr; from superclonica import Superclonica; tts = Superclonica(); def speak(text, voice): audio, rate = tts.synthesize(text, voice=voice, lang="ja"); return (rate, audio)。そのあと gr.Interface(fn=speak, inputs=[gr.Textbox(label="Text"), gr.Dropdown(["F1", "F2", "M1", "M2"], label="Voice")], outputs=gr.Audio()).launch()。
- Python でファイルを実行し、Gradio が表示するローカルアドレスを開きます。
- 初回は Supertonic 3 モデル(約385MB)をダウンロードし、2回目以降は数秒で起動します。
声、速度、複数のユーザー
F1 や F2 の代わりに声ファイルのパスを渡せばカタログの声を追加でき、31の対応言語のコードで言語のドロップダウンも作れます。速度はエンジン側で、たとえば tts.speed = 1.1 のように0.7〜2.0で変えられます。エンジンはファイルの冒頭で一度だけ作り、複数の人が同時に使うなら、呼び出しを threading のロックで囲んで順番に処理しましょう。
無料で公開する
Hugging Face Spaces は Gradio アプリを無料のCPUで動かします。ファイルを app.py として Space に置き、superclonica-cpu を書いた requirements.txt を添えれば、Space がビルドします。私たち自身の SuperClonica デモも、共有CPU2コアでこのように動いています。公開アプリではテキストの長さを制限し、共有してよい声だけを使ってください。標準の声はモデルのライセンスのもとで無料ですが、購入したカタログの声は自分のプロジェクト用です。