资讯动态

FunASR デプロイ選定マトリクス:Python API から Kubernetes・vLLM への最短経路設計ガイド

发布时间:2026/9/13 1:32:25 来源:尧图企业网站定制
FunASR デプロイ選定マトリクスPython API から Kubernetes・vLLM への最短経路設計ガイド【免费下载链接】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このガイドは FunASR デプロイ選定マトリクス を中心に、プロダクト・デモ・ベンチマーク・社内ワークフローそれぞれに最適な部署経路を設計する方法を解説する。FunASR リポジトリのexamples/openai_api/配下のサンプルサーバー、Docker Compose 定義、Kubernetes マニフェストの実際のコードと照らし合わせながら、最小構成から重い runtime への移行判断材料を得られる。最短経路の選び方最小面から始めるFunASR のデプロイは「どのモデルを使うか」と独立した問題として捉えるべきで、まず要件を満たす最小構成から始め、throughput・latency・integration の要件が明確になった時点で重い runtime へ移行する。この原則は選定マトリクス全体の設計思想であり、各候補の「向いている用途」と「運用メモ」はその観点で整理されている。以下は原文档のクイック判断表をそのまま継承し、各経路の入口と運用上の注意点を示すものである。クイック判断表Path向いている用途最初に読むもの運用メモColab notebookブラウザ smoke test、初回評価、共有 demoColab クイックスタートローカル環境不要。初回はモデルをダウンロードし、GPU runtime の方が高速。Python APINotebook、offline job、最初の model evaluationREADME quick start最小構成。batching、retry、file 管理は呼び出し側で扱う。OpenAI 互換 APIPrivate speech API、Agent、Dify/LangChain/AutoGen style clientsOpenAI API exampleOpenAI audio API に対応した既存 app に最も接続しやすい経路。Docker Compose API再現可能な local smoke test、小さな internal serviceOpenAI API Docker docsデフォルトは CPU。CUDA を使う前に CUDA-capable image へ調整。Kubernetes APICluster service 向け internal speech APIKubernetes templateprivateClusterIPから開始。公開範囲を広げる前に auth、TLS、network policy、GPU scheduling を追加。Runtime WebSocket serviceLive captions、meeting、call-center streamRuntime service docspartial result、endpointing、long-lived audio stream が重要な場合に使う。vLLM accelerationFun-ASR-Nano の native ファイル文字起こし、または split-engine decode公式 native 検証英語、split-engine guide2 つの経路は checkpoint と API が異なる。非自己回帰の Paraformer には適用しない。MOSS-Transcribe-Diarize長時間の複数話者 transcription、timestamp、speaker labelThird-party MOSS guideOpenMOSS の Apache-2.0 model を FunASRAutoModelに統合済み。local HFbackendhf、vLLMbackendvllm、または SGLang Omnibackendsglangを選択可能。model の公開・保守主体は OpenMOSS のまま。MCP serverClaude/Cursor/desktop agent の speech toolMCP exampleASR 結果を local tool として Agent に渡したい場合に便利。Subtitle generator長時間 audio/video から SRT/VTT 作成Subtitle examplereadability が重要な場合は verbose segment と speaker label を使う。Batch ASR scriptArchive、meeting、dataset、繰り返し offline runBatch exampleproduction では queue、manifest、retry log を追加。Transformers で Nano を試すCPU 推論の最短入口中国語・英語・日本語の文字起こしには、Transformers ガイド英語 と公式FunAudioLLM/Fun-ASR-Nano-2512-hfcheckpoint を使えます。CPU サンプルが同梱されており、toolkit 経路とサービス経路は別物です。ネイティブ出力はテキストのみで、タイムスタンプ・話者情報・HTTP サーバーは追加しません。これは「デプロイ」ではなく Python 推論の入口と位置づけるべきで、HTTP 公開を必要とする場合は後述の OpenAI 互換 API 経路へ移行する判断材料になります。よくある選択シナリオFun-ASR-Nano を vLLM で動かしたいNano を vLLM 環境で使う場合は、まず「どの vLLM 経路か」を明確にする必要があります。2 つの経路は checkpoint も API も異なり、互いの設定・重みを流用してはいけません。Split-engine: 基本モデルFunAudioLLM/Fun-ASR-Nano-2512を使い、FunASR 側で音声を処理して LLM decoder を vLLM で実行します。split-engine guide を参照してください。Native: vLLM 自身が音声モデルを実行します。公式 checkpoint はFunAudioLLM/Fun-ASR-Nano-2512-vllmです。基本モデル用の設定や checkpoint と相互に置き換えないでください。公式 native 検証記録英語は、モデル revisiona4362c943d48951f98ca2a62181cc028970270c5、vLLM 0.27.1、既存の H100 環境での機能確認です。モデル revision は FunASR パッケージのバージョンではありません。依存関係を含む準備・起動手順は検証記録を参照してください。確認した API はファイル入力の/v1/audio/transcriptionsのみです。/v1/realtime、クリーンインストール、長時間音声、話者分離、本番の処理容量はこの検証の対象外です。FunASR SDK や別の checkpoint の検証として扱わず、実運用の音声・負荷で別途評価してください。5 分で FunASR を試したいブラウザだけで試すなら Colab クイックスタート を使います。ローカルで作業する場合は README の Python API から始めます。どのモデルを使うか迷う場合は モデル選択ガイド を参照してください。Python API は最小構成であり、batching・retry・file 管理は呼び出し側が担うため、最初にモデル挙動を評価するには最も短い経路です。Cloud transcription の local replacement が欲しいOpenAI 互換 API を使います。主な入口は次のとおりです。/v1/audio/transcriptions: ファイル文字起こし/v1/models: モデル一覧/health: ヘルスチェックSwagger docs: API の確認まずsensevoiceで smoke test を実行し、既存 SDK や HTTP client を OpenAI API example に合わせて接続してください。この経路の背後にある実装を確認すると、リポジトリのサンプルサーバー server.py は FastAPI 上で上記 3 つのエンドポイントを提供しています。起動時に--modelで指定したモデルを事前にロードし、multipart フォームからfile/model/language/response_formatを受け取ります。MODEL_CONFIGSにはsensevoiceiic/SenseVoiceSmallfsmn-vad、paraformerct-punc、paraformer-en、fun-asr-nanoFunAudioLLM/Fun-ASR-Nano-2512、hf hub 経由、moss-transcribe-diarizeOpenMOSS-Team/MOSS-Transcribe-Diarizeの固定 revision、backendhfの 5 つの alias が登録されていますserver.py#L38-L67。つまり「どのモデルで立ち上げても、5 つの alias はいずれもロード可能」で、/v1/modelsはreadyフィールドで現在ロード済みかを区別して返しますserver.py#L179-L191。response_formatverbose_jsonの返り値についても、サンプルサーバーの実装からは意味が明確です。sentence_infoがあればミリ秒のstart/endを秒に換算してsegmentsに変換し、speakerはspkフィールドから取得します。sentence_infoがなければsegments[]を返しますserver.py#L152-L170。したがってverbose_jsonは話者分離やタイムスタンプ生成を有効にするスイッチではなく、応答形式の選択にすぎず、モデルが返した情報しか含まれません。またサンプルサーバーにはspkフォームフィールドが存在しないため、spktrueを送っても外部話者処理は有効になりません。再現可能な container demo が欲しいDocker Engine と Docker Compose plugin を用意し、FunASR リポジトリのルートからローカルの SenseVoice CPU service を起動します。このコマンドは既存の.envを上書きしません。明示した port、device、model は、この起動に限り環境から継承した値より優先されます。ホスト側は loopback のみで待ち受けますが、認証 gateway ではありません。共有前に security guide英語 を確認してください。FUNASR_HOST_PORT127.0.0.1:8000 FUNASR_DEVICEcpu FUNASR_MODELsensevoice \ docker compose -f examples/openai_api/docker-compose.yml up --buildこのコマンドの各変数が実際にどう消費されるかは docker-compose.yml で確認できます。portsは${FUNASR_HOST_PORT:-8000}:8000でホスト側アドレスを含む形式を受け取り、コンテナ内ポート 8000 へマッピングされます。FUNASR_DEVICEとFUNASR_MODELはデフォルトcpu/sensevoiceでの env 変数としてコンテナに渡され、funasr-cacheボリュームが/root/.cacheにマウントされてモデル重みの再利用が効きます。shm_size: 2gbもここで設定されています。コンテナイメージ自体は Dockerfile から構築されます。ベースはpython:3.10-slimであり、ffmpeg・git・libsndfile1をインストールしたうえでfunasr/fastapi/uvicorn[standard]/python-multipartを pip で入れます。つまりFunASR は PyPI からインストールされる構成ですイメージは sample server をコピーしますが、依存バージョンは固定されていません。再現性を主張する前に実際の package version と image digest を記録してください。Dockerfile 内蔵のHEALTHCHECKが/healthを 30 秒間隔で叩くのも、コンテナの生存確認と整合しています。別のターミナルを開き、同じリポジトリのルートで Python 3.10 以降を使って確認します。smoke client は標準ライブラリのみを使うため、ホストへの FunASR のインストールは不要です。python3 examples/openai_api/smoke_test.py --base-url http://127.0.0.1:8000 --model sensevoice --response-format verbose_jsonsmoke_test.py の実装を確認すると、このコマンドが何をやるか正確に分かります。まずaudio_pathデフォルトsample.wavが存在しなければ公開の中国語サンプルをダウンロードし、既存ファイルは再利用しますsmoke_test.py#L25-L30。続けてGET /health、GET /v1/models、そして multipart 形式のPOST /v1/audio/transcriptionsの 3 段を JSON で表示します。クライアントはurllibのみで実装され、Authorizationヘッダを一切送信しませんsmoke_test.py#L62-L75。現在のディレクトリにsample.wavがなければ公開の中国語音声をダウンロードし、既存ファイルがあれば再利用します。health、model metadata、文字起こし JSON が表示されます。テキストは自分で確認してください。終了コードの成功だけでは認識精度や同時実行性能は検証できません。client は Authorization を送信せず、security guide の文字起こし専用 gateway はこの smoke が使う metadata route を拒否します。ローカル endpoint で実行し、機密音声や未加工の出力を残さないでください。FUNASR_DEVICEの変更だけでは CUDA 依存や container の GPU access は追加されません。これは Dockerfile が PyTorch の CUDA build を固定していないことからも裏付けられます。GPU image と scheduling は別途用意して検証し、HTTP deployment guide英語 とモデルの要件を確認してください。Kubernetes での internal serviceKubernetes 経路は examples/openai_api/kubernetes/ のテンプレートから開始します。funasr-api.yaml のマニフェストを見ると、原文档の運用メモが具体的にどう実装されているか確認できます。PVCfunasr-cache20Gi: モデル重みキャッシュを/root/.cacheにマウントし、Pod 再作成時の再ダウンロードを避けます。ConfigMap:FUNASR_PORT8000/FUNASR_DEVICEcpu/FUNASR_MODELsensevoiceを env として展開。GPU 化はこの ConfigMap と CUDA-capable image の両方を書き換える必要があります。Deployment:startupProbe/readinessProbe/livenessProbeの 3 本がすべて/healthに対して設定されていますstartupProbeはfailureThreshold: 60×periodSeconds: 10で最大 10 分のモデルロードに許容を設けています。/dev/shmは Memory backing の 2Gi emptyDir とされています。Service:type: ClusterIPのプライベート公開がデフォルトで、公開範囲を広げる前に auth・TLS・network policy を追加する、という原文档の警告と一致します。image: funasr-api:localは Compose と同じローカルビルドイメージを前提としているため、クラスタの node へ image を配布する手段registry push や image cacheを別途確保するのが実運用上のポイントです。Streaming または live captioning が必要Runtime WebSocket service を使います。本番投入前に chunk size、VAD、endpointing、punctuation、speaker diarization、reconnect、client backpressure を実音声で検証してください。WebSocket 経路のプロトコル詳細は runtime の README と websocket protocol docs にあります。Readiness checklistどの経路を選んだ場合でも、共有・本番投入前に以下を確認してください。model alias を決め、deployment note に固定します。FunASR version、model version、device、CUDA/PyTorch version、Docker image tag、command line を記録します。public smoke sample と realistic private sample を少なくとも 1 つずつ実行します。request ごとに audio duration、model、device、latency、response format、error type をログ化します。trusted network の外へ API を出す前に upload-size limit、authentication、TLS、rate limit を入れます。Security guide も確認してください。ログ項目の「response format」「error type」は、server.py がjson/verbose_jsonを区別して返し、エラー時にHTTPException(500)で詳細を返す構造server.py#L172-L176を踏まえて設計されたものです。サンプルサーバー自体は認証機能を内蔵していないため、API 境界の防御は gateway 側で完結させるという設計前提を共有時に再確認しておくとよいでしょう。詰まったら、deployment path、command/config、logs、model、device、audio characteristics を添えてプロジェクトの Deployment Help issue を開いてください。【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价