ガイド

C++ の音声読み上げ:ゲームとアプリに自然な声を

C++ には標準の音声合成ライブラリがありません。ふつうは、Windows・macOS・Linux でそれぞれ異なる OS の音声 API、ロボットのように聞こえる eSpeak NG のような古いフォルマント合成、または C++ から呼び出すニューラルエンジンのどれかを選びます。最後のものなら、どのプラットフォームでも同じ自然な声になります。

SuperClonica には31言語の自然な声があり、オンラインで無料で試せます。コマンドラインと Docker の HTTP サーバーを備えた無料エンジン、170以上のカタログボイスもあります。このガイドでは、C++ から使う2つの方法、つまりセリフの事前生成と実行時のローカルサーバーを紹介します。

C++ での音声の選択肢

多くのゲームは、固定の会話には事前生成のファイルを使い、サーバーはプレイヤーが書いたテキストにだけ使います。

  • OS の API:Windows の SAPI、Apple の AVSpeechSynthesizer、Linux の Speech Dispatcher。コードが3通りに分かれます。
  • eSpeak NG:小さく組み込みやすいが、明らかにロボット的。
  • 事前生成のファイル:ゲームやアプリのセリフを一度だけ音声化し、WAV や OGG で同梱。
  • ローカル HTTP サーバー:プログラムがテキストを送り、WAV を受け取る。

無料でオンラインで声を選ぶ

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

セリフを事前に音声化

同じテキスト、声、seed なら常に同じファイルになるので、音声化したセリフはバージョン管理に入れて必要なときに作り直せます。

  • エンジンをインストール:python -m pip install superclonica-cpu。
  • ビルドスクリプトやツールからコマンドラインを呼び出します:std::system("superclonica --text \"Welcome, traveler.\" --voice M2 --lang en --output welcome.wav");
  • ファイル名で形式が決まります:WAV、MP3、OGG、FLAC。
  • SDL_mixer、SFML、raylib、miniaudio など、いま使っているオーディオライブラリで読み込みます。

実行時の音声サーバー

実行時にしか生まれないテキストには、まずサーバーを起動します:docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu。次に libcurl で JSON を送り、応答をファイルに書き出します(curl/curl.h をインクルードし、libcurl とリンク):std::string body = R"({"text": "Welcome, traveler.", "voice": "M2", "lang": "en"})"; CURL* c = curl_easy_init(); curl_slist* h = curl_slist_append(nullptr, "Content-Type: application/json"); curl_easy_setopt(c, CURLOPT_URL, "http://localhost:8000/synthesize"); curl_easy_setopt(c, CURLOPT_HTTPHEADER, h); curl_easy_setopt(c, CURLOPT_POSTFIELDS, body.c_str()); FILE* f = std::fopen("welcome.wav", "wb"); curl_easy_setopt(c, CURLOPT_WRITEDATA, f); curl_easy_perform(c); std::fclose(f); curl_slist_free_all(h); curl_easy_cleanup(c); 応答は16ビットモノラルの WAV で、ヘッダーの X-Sample-Rate と X-Duration-Seconds が内容を示します。プレイヤーのマシン以外で動かすなら、SUPERCLONICA_API_KEY を設定し、サーバーはプライベートネットワークに置きましょう。

リリースに使える声

リリースするゲームやアプリには、OpenRAIL-M ライセンスで無料の標準ボイス10種(M1〜M5、F1〜F5)か、同意した声優の録音から SuperClonica のスタジオで学習させた自分の声を使ってください。エンジンと Docker イメージは Apache 2.0 です。カタログのファンメイドのキャラクターボイスはファン作品向けで、商用リリースには使えません。