ガイド

Godot でテキスト読み上げ:セリフと実行時の音声

Godot のゲームは1人や小さなチームで作られることが多く、ボイス収録は予算に収まりにくい部分です。音声合成なら、書いたその日にセリフに声が付きます。プロトタイプ、仮のセリフ、チュートリアル、そしてあえて合成音声のままにするゲームにも。

無料の SuperClonica エンジンは、ふつうのCPUでオフラインで読み上げます。このガイドでは、Godot で使う2つの方法(事前生成の WAV ファイルと GDScript からの実行時の音声)と、リリースに使える声を紹介します。

Godot のゲームに声を付ける2つの方法

プレイヤーのPCでは音声サーバーは動かないので、リリースするシングルプレイのゲームにはファイルを同梱しましょう。

  • 事前生成のファイル:開発中にすべてのセリフを読み上げ、WAV をプロジェクトに入れます。ほかの音と同じようにゲームと一緒にエクスポートされます。
  • 実行時の音声:ゲームがテキストを SuperClonica サーバーに送り、返ってきた音声を再生します。エディターツール、プロトタイプ、自前サーバーのあるオンラインゲームに向いています。
  • どちらも、ふつうのCPUで動き、文字数による料金はかかりません。
  • モデルは31言語を話します。中国語にはまだ対応していません。

声を無料で選ぶ

どの声のページでも、キャラクターのセリフを30〜100文字で入力し、言語を選んで生成ボタンを押します。数秒で声が合うか分かります。アカウントは不要です。

セリフを事前に生成する

同じテキスト・声・seed なら常に同じ音声になるので、変わったセリフだけを作り直し、リポジトリには音声ではなくスクリプトを入れましょう。

  • エンジンをインストール:python -m pip install superclonica-cpu。
  • セリフは ID、言語、テキストの表で管理します。
  • 短いスクリプトで表を順に処理:superclonica --text "村へようこそ!" --voice npc.json --lang ja --output voice/npc_greeting_01.wav。
  • プロジェクト内の新しい WAV は Godot が自動でインポートします。AudioStreamPlayer で再生しましょう。

GDScript から実行時に話させる

どのCPUでもサーバーを起動:docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu。Godot 4.4 以降なら、組み込みの HTTPRequest ノードと AudioStreamWAV.load_from_buffer で、ファイルを保存せずに返答を再生できます:var http := HTTPRequest.new(); add_child(http); http.request_completed.connect(_on_voice); http.request("http://localhost:8000/synthesize", ["Content-Type: application/json"], HTTPClient.METHOD_POST, JSON.stringify({"text": "おかえりなさい!", "voice": "F1", "lang": "ja"}))。同じスクリプトに:func _on_voice(result, code, headers, body): $Voice.stream = AudioStreamWAV.load_from_buffer(body); $Voice.play()。短い文ならCPUで約0.5秒です。繰り返し使うセリフのストリームはキャッシュしましょう。APIキーはエクスポートしたゲームに入れないでください。プレイヤーが取り出せてしまいます。音声サーバーへは自分のゲームサーバーから呼び出しましょう。

リリースに使える声

プロトタイプならカタログのどの声でも構いません。リリースするゲームには、権利のある声を使ってください。モデル標準の10音声 M1〜M5・F1〜F5、同意を得た俳優の5〜10秒のきれいな録音から NVIDIA のグラフィックカードを積んだPCで SuperClonica のスタジオで学習させた自分の声、または取引所で注文した声です。ファンが作ったキャラクターの声はパロディやファンゲーム用で、商用ゲーム向けではありません。