Ichigoは、janhqが公開するローカルで動く音声AIのOSSだ。pip install ichigo で入れて、音声ファイルの文字起こし(ローカルASR)から、テキストLLMに「耳」を足す実験的な音声LLMまでを扱う。「api ichigo」「local asr」「lm studio 音声入力」といった検索が多いので、本稿はAPIの使い方と、LM Studioとの組み合わせの現状を中心に書く。

LOCAL ASR APIローカルの音声APIは3つの口

音声を文字にも、音トークンにも変えられる

  1. 音声ファイル

    sample.wav

  2. S2T

    /v1/audio/transcriptions で文字起こし

  3. S2R

    /s2r で音トークン列へ

  4. R2T

    /r2t で音トークンからテキストへ

出典: janhq/ichigo README と api/asr.py(ストリーミングは未対応)

30秒でわかるIchigo

・何者か:ASR(文字起こし)・音声LLM(実験)・TTS(未公開)を1つにまとめたローカル音声パッケージ
・API:同梱のFastAPIサーバーが /v1/audio/transcriptions(S2T)、/s2r、/r2t の3つを持つ。ストリーミングは未対応
・精度:多言語のviVoiceではWhisper medium.enより誤りが少ないが、英語のLibriSpeechでは及ばない(いずれも開発元の公称値)
・注意:リポジトリにLICENSEファイルがなく、LM Studioとの公式連携もない

ローカル実行や量子化の基礎はLLMとは?仕組み・主要モデル比較・ローカル実行・量子化を一気にまとめる2026年版で先に押さえられる。

背景と文脈 — なぜ音声を離散トークンにするのか

開発元のjanhqは、ローカルでLLMを動かすデスクトップアプリ「Jan」を手がけるチームだ。Ichigoは音声側を担う。READMEによれば、ASRとTTSの部品は共有できるという考えから、音声タスクを単一の表現に統一する設計を採った。ASRを微調整した成果がTTSの事前学習に使え、少ない学習データでもモデルを立ち上げられる、という説明だ。

Ichigo-LLMの中核は早期融合(early fusion)だ。音声を離散トークンにしてテキストと同じ語彙空間に混ぜ、単一のTransformerで両方を処理する。アダプタを後付けせず、入力段階で融合する。着想はMetaのChameleon論文にある。

パッケージの3機能

Ichigoのパッケージは3機能で、同梱するのは推論コードだけ(学習コードは含まない)。

・Ichigo-ASR:音声をテキストまたは離散トークンへ変換する自動音声認識
・Ichigo-LLM:テキストLLMにネイティブな聞き取り能力を持たせる研究実験。READMEは「進行中の研究実験」と明記している
・Ichigo-TTS:READMEでは「Coming Soon」のまま

詳しく見ていく — pip installでのASRとIchigo-LLM

Ichigo-ASR:Whisperを離散トークン化する22Mモデル

Ichigo-ASRは、Whisper-medium向けの22Mパラメータの音声トークナイザーだ。Whisperが連続的な埋め込みを出すのに対し、音声を離散トークンへ圧縮する。LLMはもともと離散トークンを扱うので、画像用・音声用のアダプタなしで音声を読める。学習データは英語約400時間とベトナム語約1,000時間だ。

DISCRETE TOKENWhisperとの設計の違い

連続の埋め込みではなく、離散トークンで音声を渡す

Whisper

連続的な埋め込みを出力

  • 英語の文字起こしが堅実
  • LLMにつなぐ部分は自分で作る

Ichigo-ASR

22Mパラメータの音声トークナイザー

  • 音声を離散トークンに圧縮する
  • テキストと同じ語彙空間に混ぜられる
出典: janhq/ichigo README・arXiv:2410.15316

導入と単一ファイルの文字起こしは次のとおり。フォルダを渡すとバッチ処理になり、結果は transcription.txt などに書き出される。

pip install ichigo
python -c 'from ichigo.asr import transcribe; print(transcribe("sample.wav"))'

Ichigo-LLM:Llama 3に耳を与える実験

ベースはLlama 3系で、公式解説(v0.3)ではLlama 3.1 8Bが軸だ。v0.3の改良は4点ある。

・多言語化:英語のみから、Multilingual LibriSpeechの7言語へ拡張
・汎用能力の回復:MMLUがPhase 1後の0.42からPhase 2で0.63まで戻った
・非音声の拒否:聞き取れない入力に「聞き取れません」と応答する
・マルチターン:Phase 3は15万サンプル(90%が2ターン、10%が4ターン以上)

API — api ichigoの3エンドポイントとLM Studio連携の現状

フロントエンド連携には、同梱のFastAPIサーバーを使う。バッチ処理に対応し、ストリーミングは未対応だ。READMEの手順は次のとおり。

# リポジトリ直下から。Dockerなら docker compose up -d
cd api && uvicorn asr:app --host 0.0.0.0 --port 8000
curl "http://localhost:8000/v1/audio/transcriptions" -F "[email protected]" -F "model=ichigo"

エンドポイントは3つある。

・S2T(/v1/audio/transcriptions):音声を文字起こしする。OpenAIのWhisper文字起こしAPIと同じパスで、返り値は {"text": ...}
・S2R(/s2r):音声を <|sound_start|>…<|sound_end|> で挟んだ音トークン列にする。ソース上、返り値は model と tokens
・R2T(/r2t):JSONの tokens に音トークン列を渡すとテキストに戻す。ソース上、返り値は model と text

S2RとR2Tを分けているので、音声そのものではなくトークン列だけを別システムへ渡す設計も組める。ソース上、S2Tは20秒単位のチャンクに分けて処理する。起動後は http://localhost:8000/docs でAPI仕様を確認できる。

LM Studioの音声入力との関係

「lm studio 音声入力」「lm studio 文字起こし」と探す人は多いが、LM Studio自体には2026年10月時点で音声入力の公式機能がない。外部ASRへ委譲する /audio/transcriptions 相当のサーバー機能を求めるlmstudio-ai/lmsのIssue #320も、2025年9月12日の起票から未解決のままだ。したがってIchigoとLM Studioの公式連携はない。現実的なのは、Ichigoの /v1/audio/transcriptions で文字起こしだけ済ませ、そのテキストをLM Studioへ渡す別プロセス構成だ。この構成は本稿では動作を確認していない(未検証)。

なお、掲載したコマンドのうち pip install 以降の実行(モデルのダウンロードを伴う)は、本稿の取材では行っていない。コマンドはREADMEと api/asr.py の記述に基づく。

アーキテクチャと精度 — 公称WERとAudioBench

論文「Ichigo: Mixed-Modal Early-Fusion Realtime Voice Assistant」(arXiv:2410.15316)は、アダプタなしの早期融合で、最初のトークン生成まで111msと報告している。

Ichigo-ASRのWER(単語誤り率、低いほど良い)はREADMEの表のとおり。

モデル LS Clean LS Other Earnings22 LargeScaleASR viVoice(多言語)
ichigo-asr-2501-en 4.28 9.35 35.55 16.09 11.68
whispervq-2405-en 9.79 14.40 38.45 18.38 —
whisper medium.en 2.88 6.04 16.64 8.21 18.30

WER (LOWER IS BETTER)公称の単語誤り率

多言語の viVoice ではIchigoが上、英語ではWhisperが上

viVoice Ichigo-ASR多言語

11.68

viVoice whisper medium.en多言語

18.3

LS Clean Ichigo-ASR英語

4.28

LS Clean whisper medium.en英語

2.88
出典: janhq/ichigo README の表(開発元の公称値・低いほど良い)

英語(LibriSpeech、Earnings22)ではmedium.enが最良で、Ichigoは及ばない。多言語のviVoiceでは11.68対18.30でIchigoが上回る。Ichigoの価値は、英語での最高精度ではなく、離散トークン化でLLMにつなげることと多言語対応にある。

Ichigo-LLMのAudioBench(GPT-4o審査の0〜5、高いほど良い)は、v0.3-phase3がOpen-Hermes 3.64・Alpaca 3.68で、Qwen2-Audio-7Bの2.63・2.24を上回る。WERと向きが逆な点に注意したい。いずれも開発元の公称値で、第三者検証ではない。

他の選択肢との比較 — Whisper・WhisperSpeech・Qwen2-Audio

プロジェクト 主な役割 LLM連携の方式 特徴
Ichigo(janhq) ASR+音声LLM+TTS(近日) 早期融合・離散トークン 音声を離散トークン化しLlama 3に直接融合。ローカル完結志向
OpenAI Whisper ASR 連続埋め込み 英語精度が高い定番。LLM連携は別途実装が必要
WhisperSpeech TTS Whisper反転 Ichigoが謝辞で参照する基盤の一つ
Qwen2-Audio 音声理解LLM 音声エンコーダ+LLM 汎用の音声対話。AudioBenchでIchigo v0.3が上回ると報告

Whisperが「文字起こしまで」なのに対し、Ichigoは文字起こし(S2T)に加え、音トークンの取り出し(S2R)と復号(R2T)を分けて提供し、LLMへの融合まで見据える。

実務への影響 — 向く場面と制限

向くのは、クラウドの音声APIに頼らずローカルで音声を扱いたい場面だ。録音メモのバッチ文字起こし、音声を外部送信できない環境、ベトナム語など英語以外を含む認識、音トークンを中間表現にした音声LLMの試作などが当たる。サーバーは docker compose up -d にも対応する。

制約は次のとおり。

・ライセンス:2026年10月時点でリポジトリにLICENSEファイルがない(GitHub APIでも未検出)。商用利用の前にHugging Face(homebrewltd配下)の各モデル表記とLlama 3の条件を確認する
・実験段階:Ichigo-LLMはREADME自身が進行中の研究実験としている
・ストリーミング未対応:リアルタイムの逐次文字起こしには向かない
・更新:既定ブランチの最終コミットは2025年2月24日、リポジトリのpushは2025年11月26日。最新タグはv0.4
・英語単体:精度重視ならWhisperが堅実

ローカル完結の別アプローチには、CPUで1ビットLLMを動かすbitnet.cpp(BitNet)がある。複数の家庭用デバイスでLLM推論を分散させるDistributed Llamaも同じローカル志向だ。

まとめ

Ichigoは、音声をLLMが読める離散トークンに変えることに賭けたローカル音声パッケージだ。pip install ichigo で文字起こしが動き、OpenAI互換のS2Tを含むAPIで他ツールへ組み込める。LM Studioとの公式連携はなく、ストリーミングやTTSも未提供で、ライセンスも未明示だ。まず自分の音声で単一ファイルを文字起こしし、精度が合えばAPIサーバー、S2R/R2Tへ進むのが安全だ。

参照ソース