Um kit de ferramentas de reconhecimento de fala de ponta a ponta baseado no ModelScope, que suporta reconhecimento de fala, detecção de atividade de voz, restauração de pontuação e outras funções.

MITPythonFunASRmodelscope 12.6k Last Updated: September 09, 2025

FunASR - Kit de Ferramentas Fundamental de Reconhecimento de Fala Ponta a Ponta

Visão Geral do Projeto

FunASR é um kit de ferramentas fundamental de reconhecimento de fala que oferece diversas funcionalidades, incluindo Reconhecimento Automático de Fala (ASR), Detecção de Atividade de Voz (VAD), Restauração de Pontuação, Modelos de Linguagem, Verificação de Locutor, Separação de Locutor e ASR para Múltiplos Locutores. Este projeto foi desenvolvido pelo Alibaba DAMO Academy com o objetivo de construir uma ponte entre a pesquisa acadêmica e as aplicações industriais.

Endereço do Projeto: https://github.com/modelscope/FunASR

Principais Características

1. Processamento de Fala Multifuncional

  • Reconhecimento de Fala (ASR): Suporta reconhecimento em fluxo (streaming) e não em fluxo (non-streaming)
  • Detecção de Atividade de Voz (VAD): Detecta segmentos de atividade de voz
  • Restauração de Pontuação: Adiciona automaticamente sinais de pontuação
  • Identificação de Locutor: Suporta verificação e separação de locutor
  • Reconhecimento de Emoções: Análise de emoções na fala
  • Detecção de Palavras-chave: Suporta ativação por palavras-chave

2. Biblioteca de Modelos Pré-treinados

FunASR publicou uma vasta quantidade de modelos pré-treinados de nível acadêmico e industrial no ModelScope e Hugging Face, incluindo principalmente:

Nome do Modelo Descrição da Função Dados de Treinamento Número de Parâmetros
SenseVoiceSmall Capacidade de compreensão de múltiplas vozes, incluindo ASR, ITN, LID, SER e AED 300 mil horas 234M
paraformer-zh Reconhecimento de fala em chinês, com timestamp, não em fluxo 60 mil horas, chinês 220M
paraformer-zh-streaming Reconhecimento de fala em chinês, em fluxo 60 mil horas, chinês 220M
paraformer-en Reconhecimento de fala em inglês, não em fluxo 50 mil horas, inglês 220M
ct-punc Restauração de pontuação 100 milhões de entradas, chinês e inglês 290M
fsmn-vad Detecção de atividade de voz 5000 horas, chinês e inglês 0.4M
Whisper-large-v3 Reconhecimento de fala multilíngue Multilíngue 1550M

3. Introdução aos Modelos Principais

Paraformer

Paraformer-large é um modelo de reconhecimento de fala ponta a ponta não autorregressivo, que oferece vantagens como alta precisão, alta eficiência e fácil implantação, suportando a construção rápida de serviços de reconhecimento de fala.

SenseVoice

SenseVoice é um modelo base de fala com diversas capacidades de compreensão de voz, incluindo ASR, LID, SER e AED, suportando múltiplos idiomas como chinês, cantonês, inglês, japonês e coreano.

Instalação e Uso

Métodos de Instalação

Instalação via pip

pip3 install -U funasr

Instalação a partir do código-fonte

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

Instalação do suporte à biblioteca de modelos (opcional)

pip3 install -U modelscope huggingface_hub

Início Rápido

1. Uso via linha de comando

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

2. API Python - Modelo 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",
)

# Reconhecimento em inglês
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 - Modelo Paraformer

from funasr import AutoModel

# paraformer-zh é um modelo ASR multifuncional
model = AutoModel(
    model="paraformer-zh", 
    vad_model="fsmn-vad", 
    punc_model="ct-punc",
    # spk_model="cam++",  # Reconhecimento de locutor opcional
)

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

4. Reconhecimento em Fluxo (Streaming)

from funasr import AutoModel
import soundfile
import os

chunk_size = [0, 10, 5]  # [0, 10, 5] configuração de latência 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)

Implantação de Serviço

FunASR suporta a implantação de modelos pré-treinados ou ajustados para serviços, e atualmente suporta os seguintes tipos de implantação de serviço:

Tipos de Serviço Suportados

  • Serviço de Transcrição de Arquivos Offline (Chinês, Versão CPU)
  • Serviço de Transcrição em Tempo Real (Chinês, Versão CPU)
  • Serviço de Transcrição de Arquivos Offline (Inglês, Versão CPU)
  • Serviço de Transcrição de Arquivos Offline (Chinês, Versão GPU)

Recomendações de Configuração para Implantação

Configurações recomendadas:

  • Configuração 1: (Tipo de computação X86) 4 vCPUs, 8GB de RAM, uma única máquina suporta aproximadamente 32 requisições
  • Configuração 2: (Tipo de computação X86) 16 vCPUs, 32GB de RAM, uma única máquina suporta aproximadamente 64 requisições

Características Técnicas

1. Inovação de Modelo

  • Arquitetura Não Autorregressiva: Paraformer adota um design não autorregressivo para melhorar a eficiência da inferência
  • Modo 2Pass: Combina as vantagens dos modos em fluxo e não em fluxo
  • Suporte a Palavras-chave (Hotwords): Suporta palavras-chave personalizadas para melhorar a precisão do reconhecimento de vocabulário específico

2. Otimização de Engenharia

  • Exportação ONNX: Suporta a exportação de modelos no formato ONNX para facilitar a implantação
  • Suporte Multiplataforma: Suporta diversas plataformas como CPU, GPU, ARM64
  • Implantação em Contêineres: Oferece suporte a imagens Docker

3. Amigável ao Desenvolvedor

  • Interface Unificada: AutoModel unifica as interfaces de inferência do ModelScope, Hugging Face e FunASR
  • Design Modular (Plug-in): Suporta a combinação flexível de componentes como VAD, pontuação e locutor
  • Documentação Abrangente: Fornece tutoriais e exemplos detalhados

Cenários de Aplicação

1. Transcrição de Fala em Tempo Real

  • Atas de reunião
  • Legendas de transmissões ao vivo
  • Assistentes de voz

2. Processamento de Áudio Offline

  • Transcrição de arquivos de áudio
  • Análise de dados de fala
  • Moderação de conteúdo

3. Suporte Multilíngue

  • Reconhecimento de fala interlinguístico
  • Tradução de fala
  • Atendimento ao cliente multilíngue

Últimas Atualizações

Principais Atualizações de 2024

  • 29/10/2024: Lançamento do Serviço de Transcrição em Tempo Real 1.12, modo 2pass-offline suporta o modelo SenseVoice
  • 10/10/2024: Adicionado suporte ao modelo Whisper-large-v3-turbo
  • 26/09/2024: Corrigido problema de vazamento de memória, suporte ao modelo SenseVoice ONNX
  • 04/07/2024: Lançamento do modelo base de fala SenseVoice
  • 27/06/2024: Lançamento do Serviço de Transcrição de Arquivos Offline GPU 1.0

Comunidade e Suporte

Licença de Código Aberto

Participação na Comunidade

  • GitHub Issues: Problemas técnicos e feedback de bugs
  • Grupo DingTalk: Comunicação e discussão diárias
  • ModelScope: Download e compartilhamento de modelos

Citação

Se você utilizou FunASR em sua pesquisa, por favor, cite o seguinte artigo:

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

Conclusão

FunASR é um kit de ferramentas de reconhecimento de fala completo e de excelente desempenho, que combina com sucesso as tecnologias de ponta da pesquisa acadêmica com as necessidades práticas das aplicações industriais. Seja para pesquisadores que realizam validação de algoritmos ou para desenvolvedores que constroem aplicações de fala, o FunASR oferece um suporte técnico robusto e uma experiência de desenvolvimento conveniente. Através de sua rica biblioteca de modelos pré-treinados, soluções de implantação flexíveis e uma comunidade de código aberto ativa, o FunASR está se tornando uma infraestrutura importante no campo do reconhecimento de fala.

Star History Chart