Une boîte à outils de reconnaissance vocale de bout en bout basée sur ModelScope, prenant en charge diverses fonctions telles que la reconnaissance vocale, la détection d'activité vocale et la restauration de la ponctuation.

MITPythonFunASRmodelscope 12.6k Last Updated: September 09, 2025

FunASR - Boîte à outils fondamentale de reconnaissance vocale de bout en bout

Aperçu du projet

FunASR est une boîte à outils fondamentale de reconnaissance vocale, offrant diverses fonctionnalités telles que la reconnaissance automatique de la parole (ASR), la détection d'activité vocale (VAD), la restauration de la ponctuation, les modèles de langage, la vérification du locuteur, la séparation des locuteurs et l'ASR multi-locuteurs. Ce projet, développé par l'Institut Damo d'Alibaba, vise à jeter un pont entre la recherche académique et les applications industrielles.

Adresse du projet: https://github.com/modelscope/FunASR

Fonctionnalités clés

1. Traitement vocal multifonctionnel

  • Reconnaissance automatique de la parole (ASR): Prend en charge la reconnaissance en continu (streaming) et hors ligne (non-streaming)
  • Détection d'activité vocale (VAD): Détecte les segments d'activité vocale
  • Restauration de la ponctuation: Ajoute automatiquement les signes de ponctuation
  • Identification du locuteur: Prend en charge la vérification et la séparation des locuteurs
  • Reconnaissance d'émotions: Analyse des émotions vocales
  • Détection de mots-clés: Prend en charge l'activation par mots-clés

2. Bibliothèque de modèles pré-entraînés

FunASR a publié un grand nombre de modèles pré-entraînés de niveau académique et industriel sur ModelScope et Hugging Face, incluant principalement :

Nom du modèle Description de la fonction Données d'entraînement Nombre de paramètres
SenseVoiceSmall Capacités de compréhension vocale multiples, incluant ASR, ITN, LID, SER et AED 300 000 heures 234M
paraformer-zh Reconnaissance vocale chinoise, avec horodatage, non-streaming 60 000 heures, chinois 220M
paraformer-zh-streaming Reconnaissance vocale chinoise, streaming 60 000 heures, chinois 220M
paraformer-en Reconnaissance vocale anglaise, non-streaming 50 000 heures, anglais 220M
ct-punc Restauration de la ponctuation 100 millions d'entrées, chinois et anglais 290M
fsmn-vad Détection d'activité vocale 5 000 heures, chinois et anglais 0.4M
Whisper-large-v3 Reconnaissance vocale multilingue Multilingue 1550M

3. Présentation des modèles clés

Paraformer

Paraformer-large est un modèle de reconnaissance vocale de bout en bout non autorégressif, offrant les avantages d'une grande précision, d'une efficacité élevée et d'un déploiement facile, permettant de construire rapidement des services de reconnaissance vocale.

SenseVoice

SenseVoice est un modèle de base vocal doté de multiples capacités de compréhension vocale, incluant ASR, LID, SER et AED, et prenant en charge plusieurs langues telles que le chinois, le cantonais, l'anglais, le japonais et le coréen.

Installation et utilisation

Méthodes d'installation

Installation via pip

pip3 install -U funasr

Installation depuis les sources

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

Installation du support de la bibliothèque de modèles (facultatif)

pip3 install -U modelscope huggingface_hub

Démarrage rapide

1. Utilisation en ligne de commande

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

2. API Python - Modèle 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",
)

# Reconnaissance anglaise
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. API Python - Modèle Paraformer

from funasr import AutoModel

# paraformer-zh est un modèle ASR multifonctionnel
model = AutoModel(
    model="paraformer-zh", 
    vad_model="fsmn-vad", 
    punc_model="ct-punc",
    # spk_model="cam++",  # Identification du locuteur facultative
)

res = model.generate(
    input=f"{model.model_path}/example/asr_example.wav",
    batch_size_s=300,
    hotword='魔搭'  # Mot-clé
)
print(res)

4. Reconnaissance en streaming

from funasr import AutoModel
import soundfile
import os

chunk_size = [0, 10, 5]  # [0, 10, 5] configuration de latence de 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)

Déploiement de services

FunASR prend en charge le déploiement de modèles pré-entraînés ou affinés pour des services. Actuellement, les types de déploiement de services suivants sont pris en charge :

Types de services pris en charge

  • Service de transcription de fichiers hors ligne (chinois, version CPU)
  • Service de transcription en temps réel (chinois, version CPU)
  • Service de transcription de fichiers hors ligne (anglais, version CPU)
  • Service de transcription de fichiers hors ligne (chinois, version GPU)

Recommandations de configuration de déploiement

Configurations recommandées :

  • Configuration 1 : (Type de calcul X86) 4 cœurs vCPU, 8 Go de RAM, prend en charge environ 32 requêtes par machine
  • Configuration 2 : (Type de calcul X86) 16 cœurs vCPU, 32 Go de RAM, prend en charge environ 64 requêtes par machine

Caractéristiques techniques

1. Innovation des modèles

  • Architecture non autorégressive: Paraformer utilise une conception non autorégressive pour améliorer l'efficacité de l'inférence
  • Mode 2Pass: Combine les avantages du streaming et du non-streaming
  • Support des mots-clés (hotwords): Prend en charge les mots-clés personnalisés pour améliorer la précision de la reconnaissance de vocabulaire spécifique

2. Optimisation de l'ingénierie

  • Exportation ONNX: Prend en charge l'exportation des modèles au format ONNX pour un déploiement facile
  • Support multiplateforme: Prend en charge diverses plateformes telles que CPU, GPU, ARM64
  • Déploiement conteneurisé: Fournit un support d'image Docker

3. Facilité de développement

  • Interface unifiée: AutoModel unifie les interfaces d'inférence de ModelScope, Hugging Face et FunASR
  • Conception modulaire (plug-in): Prend en charge la combinaison flexible de composants tels que VAD, ponctuation, locuteur
  • Documentation riche: Fournit des tutoriels et des exemples détaillés

Scénarios d'application

1. Transcription vocale en temps réel

  • Compte-rendus de réunions
  • Sous-titres de diffusions en direct
  • Assistants vocaux

2. Traitement audio hors ligne

  • Transcription de fichiers audio
  • Analyse de données vocales
  • Modération de contenu

3. Support multilingue

  • Reconnaissance vocale interlingue
  • Traduction vocale
  • Service client multilingue

Dernières mises à jour

Principales mises à jour en 2024

  • 29/10/2024: Lancement du service de transcription en temps réel 1.12, le mode 2pass-offline prend en charge le modèle SenseVoice
  • 10/10/2024: Ajout du support pour le modèle Whisper-large-v3-turbo
  • 26/09/2024: Correction d'un problème de fuite de mémoire, support du modèle SenseVoice ONNX
  • 04/07/2024: Lancement du modèle de base vocal SenseVoice
  • 27/06/2024: Lancement du service de transcription de fichiers hors ligne GPU 1.0

Communauté et support

Licence open source

Participation communautaire

  • GitHub Issues: Questions techniques et rapports de bugs
  • Groupe DingTalk: Échanges et discussions quotidiens
  • ModelScope: Téléchargement et partage de modèles

Citation

Si vous avez utilisé FunASR dans vos recherches, veuillez citer l'article suivant :

@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},
}

Résumé

FunASR est une boîte à outils de reconnaissance vocale complète et performante, qui réussit à combiner les technologies de pointe de la recherche académique avec les besoins pratiques des applications industrielles. Que ce soit pour les chercheurs validant des algorithmes ou les développeurs créant des applications vocales, FunASR offre un support technique puissant et une expérience de développement pratique. Grâce à sa riche bibliothèque de modèles pré-entraînés, ses solutions de déploiement flexibles et sa communauté open source active, FunASR est en train de devenir une infrastructure essentielle dans le domaine de la reconnaissance vocale.

Star History Chart