FunASR 日本語完全ガイド:AutoModel パイプラインから OpenAI 互換サーバー、vLLM・GGUF エッジ展開までの産業グレード音声認識の実践

FunASR 日本語完全ガイド:AutoModel パイプラインから OpenAI 互換サーバー、vLLM・GGUF エッジ展開までの産業グレード音声認識の実践 FunASR 日本語完全ガイドAutoModel パイプラインから OpenAI 互換サーバー、vLLM・GGUF エッジ展開までの産業グレード音声認識の実践【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASRFunASR はオフライン、ストリーミング、エッジ展開に対応する産業グレードの音声認識ツールキットであり、ASR・VAD・句読点復元・話者分離Diarization・感情/音声イベントタグ付け・OpenAI 互換配信までを一つのツールキットで覆盖します。本記事では公式日本語 README を軸に、AutoModelパイプラインの構築方法からfunasr-serverによる OpenAI 互換 HTTP サービスの起動、Docker ストリーミング配信、llama.cpp/GGUF エッジ展開までを解説し、各手順がリポジトリのソースコードでどのように裏付けられているかをファイルパス付きで確認しながら、そのまま実行可能な形で解説します。クイックスタートパス選びネイティブ Transformers か、toolkit パイプラインかまず最初に認識すべきは、FunASR に2 つの使い方の入口がある点です。ネイティブ TransformersHugging Face API で Fun-ASR-Nano を使いたい場合は、FunASR toolkit とリモート Python コードが不要で、Transformers 5.17.0 相当の環境だけで動きます。詳細は Transformers ネイティブガイド を参照してください。FunASR toolkit とパイプラインfunasrパッケージのAutoModelを使う本格的な経路です。VAD・句読点・話者分離などのサブモデルを一つのモデル呼び出しで組み合わせて利用できます。本記事は主にこの経路を扱います。両経路は依存関係・パラメータ・出力契約が異なるため混在させないこと。この注意は インストールガイド の冒頭にも明記されています。環境のインストールpython -m pip install torch torchaudio python -m pip install funasr以降の例は公開サンプルを使った CPU 向けです。GPU を使う場合は インストールガイド に従って互換性のある PyTorch/CUDA 環境を用意し、torch.cuda.is_available()を確認してからdevicecudaに変更してください。インストール要件は Python ≥ 3.8、PyTorch ≥ 1.13、torchaudio です。なおソース側の制約を見ると、setup.py はpython_requires3.7.0とし、クラスファイアで Python 3.8〜3.12 を宣言しています。バージョンは funasr/version.txt に記録されており、現在のチェックアウトは1.4.15です「最新情報」節で述べる通り、NumPy 2 互換性などを含むリリースです。AutoModel による SenseVoice VAD 話者分離パイプラインfrom funasr import AutoModel from funasr.utils.postprocess_utils import rich_transcription_postprocess model AutoModel(modeliic/SenseVoiceSmall, vad_modelfsmn-vad, spk_modelcam, devicecpu) result model.generate(inputhttps://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav) for seg in result[0][sentence_info]: print(f[{seg[start]/1000:.1f}s] 話者{seg[spk]}: {rich_transcription_postprocess(seg[sentence])})この例は 3 つのサブモデルを組み合わせた、FunASR の特徴を凝縮した最小構成ですmodeliic/SenseVoiceSmall主 ASR モデル。認識に加えて感情・音声イベントタグを出力します。vad_modelfsmn-vadFSMN による VADVoice Activity Detection。長尺音声を任意の区間分割し、任意長 audio の処理を可能にします。spk_modelcamCAM による話者埋め込み抽出。AutoModelがクラスタリングと VAD 区間への話者割り当てを行います。AutoModel のソース の docstring を確認すると、vad_modelは「長尺音声のセグメンテーション用」、spk_modelは「diarization 用の話者モデルcamまたは完全なモデル ID。vad_modelの同時指定が必要」と明記されており、README のサンプルはまさにこの契約に準拠しています。またhubms ModelScope デフォルト /hf HuggingFace、ncpuデフォルト 4、disable_update、disable_pbarなども引数として使えます。実行結果は実際に返された VAD 区間の開始時刻秒、匿名話者番号、SenseVoice タグを除いたテキストを表示します。テキストや区間は音声と checkpoint に依存するため、README はあえて固定の認識結果を示していません。ここで押さえるべき事実関係はCAM が生成するのはspk_embeddingベクトルであり、クラスタリングと区間への割り当てをAutoModelが行います。話者番号は録音内だけで有効な匿名ラベルであり、既知の人物の識別スピーカー認証ではありません。SenseVoiceSmall 単体の出力でもありません。詳細な SDK 契約は Python API ガイド を参照してください。初めて使う場合は Colab クイックスタート からブラウザだけで試せますparaformer-zh VAD 句読点モデルで公開サンプル音声を文字起こしし、GPU があればcuda:0、なければ CPU を自動選択します。どのモデルを選ぶか迷う場合は モデル選択ガイド を参照してください。なぜ FunASR を選ぶのかタスク × Checkpoint × ランタイムの対応表README が最も強調している点は、FunASR はツールキットであり、タスク、checkpoint、ランタイムを別々に選ぶという設計思想です。あるモデルやアダプターの機能がすべての配信バックエンドで使えるとは限りません。README には以下の対応表が掲載されていますタスクCheckpoint またはパイプラインランタイムの入口主な制約ファイル認識と感情・イベントタグSenseVoiceSmallPythonAutoModel、CPU または GPU5 言語の checkpoint。タグは話者の身元を示しません。LLM によるファイル認識Fun-ASR-NanoAutoModel、または文書化された GPU 分離エンジンAutoModelVLLM基本 Nano は中・英・日と中国語方言・アクセント。timestamp は checkpoint と経路に依存します。より多くの言語のファイル認識Fun-ASR-MLT-NanoPythonAutoModel独立した 31 言語 checkpoint。対応言語を基本 Nano に当てはめないでください。チャンク単位のライブ認識Paraformer-zh-streamingストリーミング SDK または runtime WebSocketストリーミング checkpoint とセッション別 cache が必要です。話者付きファイル認識SenseVoiceSmall FSMN-VAD CAMAutoModelの VAD と埋め込みクラスタリング番号は録音内の匿名ラベルで、登録済み人物の識別ではありません。テキスト・時刻・話者の同時生成第三者 OpenMOSS の MOSS-Transcribe-DiarizeMOSS ガイドの FunASR adapter または上流バックエンドオフライン、録音内の匿名ラベル。統合経路に外部 VAD/話者モデルは付けません。ネイティブ CPU/エッジ認識Fun-ASR-Nano または SenseVoiceSmall GGUFllama.cpp runtime対応する変換済み重みが必要。GGUF は PythonAutoModel用 checkpoint ではありません。この表を読む際の要点を整理すると「認識エンジン」と「配信バックエンド」は分離概念です。例えば vLLM 加速AutoModelVLLMは文書化された GPU 分離エンジンとして提供されており、モデルを指定しただけでは vLLM が使われていることの確認にはなりません。vLLM ガイド では実際の backend ログの確認を求めています。話者分離の成果物はあくまで録音内の匿名ラベルです。これは後述する MOSS 統合や OpenAI 互換 API の応答契約にも一貫して適用される重要な限界です。ストリーミングは別物の checkpoint とセッション別 cache を必要とします。オフライン checkpoint を流用する単純な切り替えではありません。インターフェースとライセンスの制約は Model Zoo と デプロイ方式マトリクス で確認し、対象音声・ハードウェアで評価する、というのが README の推奨手順です。モデル一覧第三者モデルも含めた主要モデルの一覧です。MOSS-Transcribe-Diarize の公開元はOpenMOSSであり、FunASR はアダプターを提供します。統合経路はオフラインで、匿名話者ラベルは録音内だけで有効です。リアルタイム処理や既知の人物の識別ではありません。モデルのライセンスはツールキットの MIT ライセンスとは別に確認してください。モデルタスク言語パラメータFun-ASR-Nano認識中/英/日 中国語方言800MFun-ASR-MLT-Nano認識31言語800MSenseVoiceSmall認識 感情 イベント中/英/日/韓/粤234MMOSS-Transcribe-Diarize第三者 OpenMOSSオフライン認識 タイムスタンプ 匿名話者公式モデルカードを参照公式モデルカードを参照Paraformer-zh認識 タイムスタンプ中/英220MQwen3-ASR認識、52言語多言語1.7BGLM-ASR-Nano認識、17言語多言語1.5BWhisper-large-v3-turbo認識 翻訳多言語809Mリポジトリ内では、Qwen3-ASR / GLM-ASR / Whisper の実例が examples/industrial_data_pretraining/ 配下に用意されていますQwen3-ASR、GLM-ASR、Whisper。SenseVoice の継続学習などのモデル固有の例も examples/industrial_data_pretraining/sense_voice/ にあります。最新情報README に記載の近況は以下の通りですリポジトリ実物と突き合わせ確認済みMOSS-Transcribe-Diarizeを FunASR service、Docker、Kubernetes、vLLM/SGLang workflow、FunClip に統合し、長時間 ASR、timestamp、匿名 speaker label を一度に処理できます。詳細は MOSS デプロイガイド 参照。FunASR 1.4.15はテスト済みの NumPy 2 互換性を追加し、ストリーミング KWS/VAD の境界処理と checkpoint の順位付けを修正します。python -m pip install -U funasr1.4.15。funasr/version.txt はまさに1.4.15を記録しています。ネイティブ Transformers正式版 5.17.0 が Fun-ASR-Nano に対応。公式-hfcheckpoint、CPU サンプル、Notebook は 導入ガイド 参照。デプロイOpenAI 互換 HTTP サービスfunasr-server新しいディレクトリで POSIX shell と Python 3.11 を使い、ローカルの SenseVoice CPU サービスを起動します。独立環境に入るのはPyPI のリリースであり、現在のソース checkout ではありません。サービスは認証を内蔵しないため loopback で待ち受け、他のクライアントへ公開する前に セキュリティガイド を確認してください。python3.11 -m venv .venv-funasr-http . .venv-funasr-http/bin/activate python -m pip install torch torchaudio python -m pip install funasr fastapi uvicorn python-multipart python -m pip check funasr-server --host 127.0.0.1 --port 8000 --model sensevoice --device cpuモデルのダウンロードと起動を待ちます。別のターミナルで同じディレクトリに入り、curl 7.76 で公開中国語サンプルを取得して認識します。リクエストは事前ロードしたモデルと一致しますが、固定テキストや話者ラベルを保証する例ではありません。curl --fail --location https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/BAC009S0764W0121.wav -o sample.wav \ curl --fail-with-body http://127.0.0.1:8000/v1/audio/transcriptions \ -F filesample.wav \ -F modelsensevoice \ -F response_formatverbose_jsonCLI パラメータのソース確認funasr-serverは setup.py のentry_pointsでfunasr-server funasr.bin.server:mainとして定義されており、実体は funasr/bin/server.py です。ソースから確認できる主な CLI オプションはオプションデフォルト意味--host0.0.0.0バインドアドレス公開環境では必ず127.0.0.1に絞る--port8000待ち受けポート--devicecudacuda/cpu/mps--modelauto事前ロードモデル。autoはデバイスがcudaで始まればfun-asr-nano、それ以外ならsensevoice--model-pathなしローカルパスまたはモデル ID--modelを上書き--hubmsmsModelScope/hfHuggingFace--spk-modelcam話者モデル。初回のspktrueリクエスト時にロード--cors-originなしCORS 許可オリジンつまり README の--model sensevoice --device cpuは、autoの自動選択CPU → sensevoiceを明示化した書式であり、ソースのデフォルト挙動と完全に整合します。API 契約上の注意点OpenAI 互換 API のサンプルサービス README では、funasr-serverとリポジトリ内サンプルserver.pyexamples/openai_api/server.pyは別実装であり、設定を流用する前に API 契約を確認するよう注意喚起されています。特に重要な点はresponse_formatverbose_jsonは応答形式の選択であり、話者分離やタイムスタンプ生成を有効にするスイッチではありません。spktrueによりパッケージ付属サービスでは外部話者処理を要求できます既定False、対応する依存環境とモデルが必要。MOSS のネイティブ出力は録音内の匿名ラベルであり、実在人物の識別ではありません。応答のstart/endは秒単位ですSDK のsentence_infoはミリ秒で、HTTP アダプタが秒に変換しています。フォームにはfile、model、language、response_formatがあり、リクエストには毎回modelを明示し、稼働中の/v1/modelsと/openapi.jsonを確認するのが推奨です。クライアント側レシピLangChain/Dify/AutoGen などは CLIENTS.md、ワークフローは WORKFLOWS.md、Postman コレクションは POSTMAN.md、OpenAPI 仕様は OPENAPI.md にあります。MOSS-Transcribe-Diarize と vLLM 配信オフライン ASR と匿名話者ラベルの同時生成moss-transcribe-diarizeには、MOSS service / Docker / Kubernetes / vLLM / SGLang / LocalAI / FunClip ガイド の独立環境を用意してください。これは CPU 環境で続けて起動するものではなく、代替サービスです。8000 番ポートを再利用する前に CPU サービスを停止します。Nano GPU 配信は 固定版の分離エンジンガイド に従い、実際の backend ログを確認してください。モデルを指定しただけでは vLLM の使用を確認できません。Docker ストリーミングサービス# Docker ストリーミングサービス docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.12オンラインストリーミングCPU ランタイムイメージです。ランタイム全体Android/iOS/WebSocket/gRPC/ONNX Runtime/Triton 等の案内は runtime/readme.md にあります。llama.cpp / GGUFPython なし・CPU/エッジでのオフライン ASRCPU/エッジで Python なしのオフライン ASR が必要な場合は、llama.cpp / GGUF ランタイムを使えます。これは README の対応表にあった通り、GGUF は PythonAutoModel用 checkpoint ではなく、llama.cpp runtime 用の変換済み重みです。ランタイム実装と設計・ベンチマークruntime/llama.cpp/GGUF 変換ツールconvert-funasr-to-gguf.pyWindows GPU 向けにはwindows-x64-vulkan、windows-x64-cuda、windows-x64-cuda-blackwellRTX 50 / Blackwellsm_120専用のパッケージがあり、CI のアーカイブ検証は実機での Blackwell 推論を保証しない、という注意点も README に明記されています。その他の入口Colab quickstartOpenAI API exampleAI エージェント連携MCP / OpenAI APIデプロイドキュメント全体デプロイ方式マトリクスAI エージェント連携MCP サーバーexamples/mcp_server/ には、AI アシスタントにローカル音声書き起こしを与えるModel Context Protocol (MCP) サーバーが同梱されていますデフォルトは SenseVoiceSmall、Claude/Cursor 対応。pip install funasrで依存を揃え、Dockerfile 経由で stdio 上の MCP サーバーとして起動することもできます。テストは test_funasr_mcp.py および tests/test_mcp_server_example.py にあります。ベンチマーク速く測る前にそろえるものREADME のベンチマーク節は、「過去の評価レポートと分離エンジンの測定は別々の記録であり、一般的な速度順位や本番容量を保証するものではない」と断定的に述べます。RTFx と再現性の説明 に従い、以下をそろえてから比較してくださいcheckpoint / revision音声セットハードウェアバッチサイズウォームアップ計測範囲CER / WERオフラインのスループットはストリーミングの遅延ではありません。移行評価の例benchmark_funasr.pyで自分の録音を評価できます。インストールまとめpip install funasr要件Python ≥ 3.8、PyTorch ≥ 1.13、torchaudio。補足として インストールガイド は、torch/torchaudioのビルドは FunASR コアパッケージが選択せず、PyTorch installer で OS・アクセラレータに合うものを別途用意するよう求めています。またmodelscopeとhuggingface_hubはこのチェックアウトではコア依存であり、モデル固有の extrasknf kaldi-native-fbank、silero Silero VAD 等は別々に必要です。導入確認コマンドはpython -c import funasr, torch, torchaudio; from funasr import AutoModel; print(funasr:, funasr.__version__, funasr.__file__); print(torch:, torch.__version__, torchaudio:, torchaudio.__version__); print(CUDA available:, torch.cuda.is_available()); print(AutoModel import OK)これは依存関係/インポートのチェックであり、モデルダウンロードや推論テストではありません。ライセンスこのリポジトリの FunASR ツールキットのソースコード: MIT License。事前学習済みモデルの重みは個別にライセンスされます。各モデルカードに記載されたライセンスを確認してください。モデルカードがこのリポジトリの FunASR Model Open Source License Agreement を参照している場合、その条件が適用されます。続きに読むべきリポジトリ内の資料資料パス用途Python APISDK 契約docs/python_api.mdAutoModel/generate()の完全な出力契約インストールガイドdocs/installation/installation.mdGPU 環境構築・hub 依存・トラブルシュートへの入口モデル選択ガイドdocs/model_selection_ja.mdどのモデルを選ぶかの判断軸vLLM ガイドdocs/vllm_guide.mdGPU 分離エンジンAutoModelVLLMの固定版手順と benchmarkMOSS ガイドdocs/moss_transcribe_diarize.md認識 タイムスタンプ 匿名話者の同時生成デプロイ方式マトリクスdocs/deployment_matrix_ja.mdタスク × 配信バックエンドの制約マトリクスModel Zoomodel_zoo/readme.md全モデルのインターフェースとライセンス制約OpenAI 互換 APIexamples/openai_api/README_ja.mdAPI 契約・セキュリティ・クライアントレシピMCP サーバーexamples/mcp_server/README.mdAI アシスタント連携llama.cpp runtimeruntime/llama.cpp/README.mdGGUF エッジ展開の実装・ベンチマーク【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考