0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RustでSIP音声ボット(ずんだもん)を作るメモ:LLMはローカル?クラウド?ざっくり選び方

Posted at

この記事は筆者オンリーのAdvent Calendar 202512日目の記事です。

RustでSIP通話を受けて、ASRで文字起こし→LLMで返答→(VOICEVOXで音声化して)相手に返す、という音声ボットを作っています。

この記事は LLM部分だけ を、アドベントカレンダー向けに「選択肢って何がある?」を ざっくり まとめます。
(ZoiperやSIPの細かい話、音声返送まわりは次回に回します)


LLMは何を担当するの?

音声ボットでLLMにやってほしいことは、だいたいこのへんです。

  • ASR結果(テキスト)から 返答文を作る
  • ちょっとした 会話の文脈を保持(「さっきの件」みたいな参照)
  • 必要なら外部処理を呼ぶ(例:検索、DB、社内API、予約、FAQ…)

この「外部処理を呼ぶ」は、各LLMの ツール呼び出し / 関数呼び出し 機能を使うと実装が楽になります。


クラウドLLM:こういうのがある

「API叩けば使える」系。まず動かすならこれが一番早いです。

  • OpenAI系(Chat Completions / Responses などのAPI)
  • Anthropic Claude
  • Google Gemini
  • Azure OpenAI など(クラウド基盤に乗せたい場合)

クラウドLLMの雑なイメージ:

  • 👍 実装が早い / 運用が軽い / 高性能モデルを使いやすい
  • 👎 会話内容(テキスト)を外部に送るので 取り扱い注意 / 従量課金 / ネットワーク遅延が乗る

ローカルLLM:こういうのがある

「手元のPCや自前サーバで動かす」系。会話内容を外に出したくない時に強いです。

  • Ollama(ローカルでモデルを動かしてHTTP API的に叩ける)
  • llama.cpp系(軽量・ローカル実行の定番)
  • vLLM など(サーバとして立てて高速化したい場合)

ローカルLLMの雑なイメージ:

  • 👍 会話内容が外に出ない / 固定費寄りで運用しやすい
  • 👎 推論環境づくり・モデル管理・監視が増える / 速度・メモリが課題になりがち(GPUあると強い)

SIP音声ボット目線の「雑な選び方」

アドベントカレンダーで書くなら、こういう整理が分かりやすいと思います。

  • 最短で形にしたい(まず会話させたい)
    → クラウドLLM(APIでサクッと)

  • 会話内容を外に出しづらい/閉じた環境で動かしたい
    → ローカルLLM(Ollama等)

  • 将来的にちゃんと運用したい
    → 最初クラウドで作って、後でローカルに置き換える(逆もあり)


実装をラクにするコツ(超ざっくり)

LLM部分は、あとで差し替えられるように 境界 を決めておくと楽です。

  • 入力:ASR結果(テキスト) + 会話履歴(必要最小限)
  • 出力:返答テキスト
  • できれば:ストリーミング出力(音声ボットは“待ち”が短いほど体験が良い)
  • 追加:必要なら ツール呼び出し(関数呼び出し) で外部処理へ

次回(Zoiper / SIP / 音声返送)

次の記事では、Zoiper等のSIPフォンを絡めて

  • どう通話を受けるか
  • どう音声を返すか(VOICEVOX含む)
  • どこでストリーミングすると会話っぽくなるか

みたいな 通話ボットとして成立させる話 を書く予定です。


(おまけ)自分メモ:LLM選定で最後に効くやつ

  • 返答を“少しずつ出せるか”(ストリーミング)
  • ツール呼び出しが使いやすいか
  • ログ/監査/規約的に会話を外に出して良いか
  • コスト(通話時間が伸びると効く)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?