ModelScopeをベースとしたエンドツーエンドの音声認識ツールキットで、音声認識、音声区間検出、句読点復元など、さまざまな機能をサポートしています。

MITPythonFunASRmodelscope 12.6k Last Updated: September 09, 2025

FunASR - 基本的なエンドツーエンド音声認識ツールキット

プロジェクト概要

FunASRは、音声認識(ASR)、音声活動検出(VAD)、句読点復元、言語モデル、話者検証、話者分離、複数話者ASRなど、多様な機能を提供する基本的な音声認識ツールキットです。このプロジェクトはアリババの達摩院によって開発され、学術研究と産業応用との間の橋渡しをすることを目指しています。

プロジェクトアドレス: https://github.com/modelscope/FunASR

主要機能

1. 多機能音声処理

  • 音声認識 (ASR): ストリーミングおよび非ストリーミング認識に対応
  • 音声活動検出 (VAD): 音声活動セグメントを検出
  • 句読点復元: 句読点を自動追加
  • 話者認識: 話者検証と話者分離に対応
  • 感情認識: 音声感情分析
  • キーワード検出: キーワードウェイクアップに対応

2. 事前学習済みモデルライブラリ

FunASRは、ModelScopeおよびHugging Face上で、学術研究用および産業レベルの多数の事前学習済みモデルを公開しており、主なものは以下の通りです。

モデル名 機能説明 学習データ パラメータ数
SenseVoiceSmall ASR、ITN、LID、SER、AEDを含む多言語音声理解機能 30万時間 234M
paraformer-zh 中国語音声認識、タイムスタンプ付き、非ストリーミング 6万時間、中国語 220M
paraformer-zh-streaming 中国語音声認識、ストリーミング 6万時間、中国語 220M
paraformer-en 英語音声認識、非ストリーミング 5万時間、英語 220M
ct-punc 句読点復元 1億件、中国語・英語 290M
fsmn-vad 音声活動検出 5000時間、中国語・英語 0.4M
Whisper-large-v3 多言語音声認識 多言語 1550M

3. 主要モデルの紹介

Paraformer

Paraformer-largeは、高精度、高効率、容易なデプロイメントという利点を持つ非自己回帰型のエンドツーエンド音声認識モデルであり、音声認識サービスを迅速に構築するのに役立ちます。

SenseVoice

SenseVoiceは、ASR、LID、SER、AEDを含む多様な音声理解能力を持つ音声基盤モデルであり、中国語、広東語、英語、日本語、韓国語など、複数の言語に対応しています。

インストールと使用方法

インストール方法

pipによるインストール

pip3 install -U funasr

ソースコードからのインストール

git clone https://github.com/alibaba/FunASR.git && cd FunASR
pip3 install -e ./

モデルライブラリのサポートをインストール(オプション)

pip3 install -U modelscope huggingface_hub

クイックスタート

1. コマンドラインでの使用

funasr ++model=paraformer-zh ++vad_model="fsmn-vad" ++punc_model="ct-punc" ++input=asr_example_zh.wav

2. Python API - SenseVoiceモデル

from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocess

model_dir = "iic/SenseVoiceSmall"
model = AutoModel(
    model=model_dir,
    vad_model="fsmn-vad",
    vad_kwargs={"max_single_segment_time": 30000},
    device="cuda:0",
)

# 英語認識
res = model.generate(
    input=f"{model.model_path}/example/en.mp3",
    cache={},
    language="auto", # "zn", "en", "yue", "ja", "ko", "nospeech"
    use_itn=True,
    batch_size_s=60,
    merge_vad=True,
    merge_length_s=15,
)
text = rich_transcription_postprocess(res[0]["text"])
print(text)

3. Python API - Paraformerモデル

from funasr import AutoModel

# paraformer-zh は多機能ASRモデルです
model = AutoModel(
    model="paraformer-zh", 
    vad_model="fsmn-vad", 
    punc_model="ct-punc",
    # spk_model="cam++",  # オプション:話者認識
)

res = model.generate(
    input=f"{model.model_path}/example/asr_example.wav",
    batch_size_s=300,
    hotword='魔搭'  # ホットワード
)
print(res)

4. ストリーミング認識

from funasr import AutoModel
import soundfile
import os

chunk_size = [0, 10, 5]  # [0, 10, 5] 600ms遅延設定
encoder_chunk_look_back = 4
decoder_chunk_look_back = 1

model = AutoModel(model="paraformer-zh-streaming")

wav_file = os.path.join(model.model_path, "example/asr_example.wav")
speech, sample_rate = soundfile.read(wav_file)
chunk_stride = chunk_size[1] * 960  # 600ms

cache = {}
total_chunk_num = int(len((speech)-1)/chunk_stride+1)

for i in range(total_chunk_num):
    speech_chunk = speech[i*chunk_stride:(i+1)*chunk_stride]
    is_final = i == total_chunk_num - 1
    res = model.generate(
        input=speech_chunk, 
        cache=cache, 
        is_final=is_final, 
        chunk_size=chunk_size,
        encoder_chunk_look_back=encoder_chunk_look_back, 
        decoder_chunk_look_back=decoder_chunk_look_back
    )
    print(res)

サービスデプロイ

FunASRは、事前学習済みモデルまたはさらにファインチューニングされたモデルのサービスデプロイをサポートしており、現在以下の種類のサービスデプロイに対応しています。

対応するサービスタイプ

  • オフラインファイル転写サービス (中国語, CPU版)
  • リアルタイム転写サービス (中国語, CPU版)
  • オフラインファイル転写サービス (英語, CPU版)
  • オフラインファイル転写サービス (中国語, GPU版)

デプロイ構成の推奨事項

推奨構成:

  • 構成1:(X86計算タイプ) 4コアvCPU、8GBメモリ、単一インスタンスで約32リクエストをサポート
  • 構成2:(X86計算タイプ) 16コアvCPU、32GBメモリ、単一インスタンスで約64リクエストをサポート

技術的特徴

1. モデルの革新

  • 非自己回帰アーキテクチャ: Paraformerは非自己回帰設計を採用し、推論効率を向上
  • 2パスモード: ストリーミングと非ストリーミングの利点を組み合わせ
  • ホットワード対応: カスタムホットワードをサポートし、特定の語彙認識精度を向上

2. エンジニアリングの最適化

  • ONNXエクスポート: モデルのONNX形式でのエクスポートをサポートし、デプロイを容易に
  • マルチプラットフォーム対応: CPU、GPU、ARM64など多様なプラットフォームをサポート
  • コンテナ化デプロイ: Dockerイメージをサポート

3. 開発者フレンドリー

  • 統一インターフェース: AutoModelはModelScope、Hugging Face、FunASRの推論インターフェースを統合
  • プラグイン設計: VAD、句読点、話者などのコンポーネントの柔軟な組み合わせをサポート
  • 豊富なドキュメント: 詳細なチュートリアルと例を提供

アプリケーションシナリオ

1. リアルタイム音声転写

  • 会議議事録
  • ライブ配信字幕
  • 音声アシスタント

2. オフライン音声処理

  • 音声ファイル転写
  • 音声データ分析
  • コンテンツ審査

3. 多言語対応

  • クロスリンガル音声認識
  • 音声翻訳
  • 多言語カスタマーサービス

最新の更新

2024年の主な更新

  • 2024/10/29: リアルタイム転写サービス 1.12 をリリース、2pass-offlineモードでSenseVoiceモデルをサポート
  • 2024/10/10: Whisper-large-v3-turboモデルのサポートを追加
  • 2024/09/26: メモリリークの問題を修正、SenseVoice ONNXモデルをサポート
  • 2024/07/04: SenseVoice音声基盤モデルをリリース
  • 2024/06/27: オフラインファイル転写サービス GPU 1.0 をリリース

コミュニティとサポート

オープンソースライセンス

コミュニティ参加

  • GitHub Issues: 技術的な問題とバグのフィードバック
  • DingTalkグループ: 日常的な交流と議論
  • ModelScope: モデルのダウンロードと共有

引用

研究でFunASRを使用される場合は、以下の論文を引用してください。

@inproceedings{gao2023funasr,
  author={Zhifu Gao and Zerui Li and Jiaming Wang and Haoneng Luo and Xian Shi and Mengzhe Chen and Yabin Li and Lingyun Zuo and Zhihao Du and Zhangyu Xiao and Shiliang Zhang},
  title={FunASR: A Fundamental End-to-End Speech Recognition Toolkit},
  year={2023},
  booktitle={INTERSPEECH},
}

まとめ

FunASRは、機能が充実し、優れた性能を持つ音声認識ツールキットであり、学術研究の最先端技術と産業応用の実際のニーズをうまく結びつけています。研究者がアルゴリズムの検証を行う場合でも、開発者が音声アプリケーションを構築する場合でも、FunASRは強力な技術サポートと便利な開発体験を提供します。豊富な事前学習済みモデル、柔軟なデプロイメントソリューション、活発なオープンソースコミュニティを通じて、FunASRは音声認識分野の重要なインフラストラクチャになりつつあります。

Star History Chart