ローカルLLMとチャットボットの音声読み上げ
Ollama、llama.cpp、LM Studio で自分のPC上に動かす言語モデルなら、会話はプライベートなままです。その返答をクラウドの音声サービスに送ってしまっては意味がありません。声もローカルであるべきです。
SuperClonica エンジンは、ふつうのCPUや NVIDIA のグラフィックカードでオフラインに読み上げ、Python からも小さな HTTP サービスとしても使えます。このガイドでは、ローカルモデルとのつなぎ方、待ち時間を短くするコツ、声に出して聞きやすい返答の作り方を紹介します。
ローカル音声アシスタントの組み立て方
どの部分も個別に入れ替えられます。別のモデル、別の声、同じ流れ。
- 任意の音声認識(たとえばローカルの Whisper モデル)で、あなたの声をテキストに。
- 言語モデルがローカルで返答を書く。
- SuperClonica が返答を音声に。これもローカルです。
- 何もPCの外に出ず、文字数やリクエストごとの料金もありません。
声を無料で聴いてみる
コードを書く前に、声のページで30〜100文字の典型的な返答を入力し、言語を選んで生成ボタンを押しましょう。数秒でアシスタントがどう聞こえるかわかります。アカウントは不要です。
文ができたらすぐ話す
私たちの計測では、短いフレーズの中央値は RTX 5070 Ti で 0.12 秒、4スレッドのデスクトップ Ryzen で 0.43 秒でした。
- エンジンを一度インストール:python -m pip install superclonica-cpu、NVIDIA のグラフィックカードなら superclonica-gpu-cuda。
- エンジンは一度だけ作って使い回す:tts = Superclonica()。読み込みは数秒、その後は1フレーズ1秒未満です。
- モデルが返答をストリーミングする間に、文の終わりで区切って1文ずつ読み上げ:audio, rate = tts.synthesize(sentence, voice="F1", lang="ja")。
- 次の文を生成している間に、sounddevice などの音声ライブラリーで再生するか、ファイルに保存して再生します。
声に出して聞きやすい返答
モデルは Markdown で答えがちです。アスタリスク、箇条書き、表、コードは読み上げると不自然です。システムプロンプトで「箇条書きや書式なしの、短く平易な話し言葉で答えて」と頼み、残ったものは読み上げ前に取り除きましょう。エンジンはほとんどの言語で数字を単語として読み、絵文字や不明な記号は自動で取り除きます。Python 以外のプログラムなら、エンジンをローカルの HTTP サービスとして動かし(docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu)、各文を POST /synthesize に送ります。OpenAI 互換の音声エンドポイントを前提とするツールには、小さなアダプターが必要です。
声の選び方
モデル標準の10音声 M1〜M5、F1〜F5 は無料エンジンに付属し、追加ファイル不要です。個性のある自分用アシスタントなら、ジャーヴィスの声などカタログから選び、まず典型的な返答で試しましょう。自分の声や、同意を得た家族の声なら、NVIDIA のグラフィックカードを積んだPCでスタジオで学習するか、取引所で注文します。どの声も Supertonic 3 の31言語を話します。中国語はまだ対応していません。