Un conjunto de herramientas de reconocimiento de voz de extremo a extremo basado en ModelScope, que admite múltiples funciones como reconocimiento de voz, detección de actividad de voz y recuperación de puntuación.

MITPythonFunASRmodelscope 12.6k Last Updated: September 09, 2025

FunASR - Kit de herramientas fundamental de reconocimiento de voz de extremo a extremo

Resumen del Proyecto

FunASR es un kit de herramientas fundamental de reconocimiento de voz que ofrece múltiples funciones, incluyendo reconocimiento automático de voz (ASR), detección de actividad de voz (VAD), restauración de puntuación, modelos de lenguaje, verificación de hablante, separación de hablantes y ASR multihablante. Este proyecto, desarrollado por Alibaba DAMO Academy, tiene como objetivo construir un puente entre la investigación académica y las aplicaciones industriales.

Dirección del Proyecto: https://github.com/modelscope/FunASR

Características Principales

1. Procesamiento de Voz Multifuncional

  • Reconocimiento de Voz (ASR): Soporta reconocimiento en tiempo real (streaming) y no en tiempo real (offline)
  • Detección de Actividad de Voz (VAD): Detecta segmentos de actividad de voz
  • Restauración de Puntuación: Añade automáticamente signos de puntuación
  • Identificación de Hablante: Soporta verificación y separación de hablantes
  • Reconocimiento de Emociones: Análisis de emociones en voz
  • Detección de Palabras Clave: Soporta activación por palabras clave

2. Biblioteca de Modelos Preentrenados

FunASR ha publicado una gran cantidad de modelos preentrenados de nivel académico e industrial en ModelScope y Hugging Face, incluyendo principalmente:

Nombre del Modelo Descripción de la Función Datos de Entrenamiento Número de Parámetros
SenseVoiceSmall Capacidades de comprensión multilingüe, incluyendo ASR, ITN, LID, SER y AED 300 mil horas 234M
paraformer-zh Reconocimiento de voz en chino, con marcas de tiempo, no en tiempo real 60 mil horas, chino 220M
paraformer-zh-streaming Reconocimiento de voz en chino, en tiempo real 60 mil horas, chino 220M
paraformer-en Reconocimiento de voz en inglés, no en tiempo real 50 mil horas, inglés 220M
ct-punc Restauración de puntuación 100 millones de entradas, chino e inglés 290M
fsmn-vad Detección de actividad de voz 5000 horas, chino e inglés 0.4M
Whisper-large-v3 Reconocimiento de voz multilingüe Multilingüe 1550M

3. Introducción a los Modelos Principales

Paraformer

Paraformer-large es un modelo de reconocimiento de voz de extremo a extremo no autorregresivo, que ofrece alta precisión, alta eficiencia y fácil implementación, lo que permite construir rápidamente servicios de reconocimiento de voz.

SenseVoice

SenseVoice es un modelo fundamental de voz con diversas capacidades de comprensión de voz, incluyendo ASR, LID, SER y AED, y soporta múltiples idiomas como chino, cantonés, inglés, japonés y coreano.

Instalación y Uso

Métodos de Instalación

Instalación con pip

pip3 install -U funasr

Instalación desde el código fuente

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

Instalación del soporte de la biblioteca de modelos (Opcional)

pip3 install -U modelscope huggingface_hub

Inicio Rápido

1. Uso por línea de comandos

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

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

# Reconocimiento en 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 de Python - Modelo Paraformer

from funasr import AutoModel

# paraformer-zh es un modelo ASR multifuncional
model = AutoModel(
    model="paraformer-zh",
    vad_model="fsmn-vad",
    punc_model="ct-punc",
    # spk_model="cam++",  # Reconocimiento de hablante opcional
)

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

4. Reconocimiento en tiempo real (Streaming)

from funasr import AutoModel
import soundfile
import os

chunk_size = [0, 10, 5]  # [0, 10, 5] Configuración de latencia 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)

Despliegue de Servicios

FunASR soporta el despliegue de modelos preentrenados o afinados para servicios, y actualmente soporta los siguientes tipos de despliegue de servicios:

Tipos de Servicios Soportados

  • Servicio de Transcripción de Archivos Offline (Chino, versión CPU)
  • Servicio de Transcripción en Tiempo Real (Chino, versión CPU)
  • Servicio de Transcripción de Archivos Offline (Inglés, versión CPU)
  • Servicio de Transcripción de Archivos Offline (Chino, versión GPU)

Recomendaciones de Configuración para el Despliegue

Configuración recomendada:

  • Configuración 1: (Tipo de cómputo X86) 4 vCPU, 8GB de RAM, una sola máquina soporta aproximadamente 32 solicitudes
  • Configuración 2: (Tipo de cómputo X86) 16 vCPU, 32GB de RAM, una sola máquina soporta aproximadamente 64 solicitudes

Características Técnicas

1. Innovación del Modelo

  • Arquitectura No Autorregresiva: Paraformer adopta un diseño no autorregresivo para mejorar la eficiencia de inferencia
  • Modo 2Pass: Combina las ventajas del procesamiento en tiempo real (streaming) y no en tiempo real (offline)
  • Soporte de Palabras Clave: Soporta palabras clave personalizadas para mejorar la precisión del reconocimiento de vocabulario específico

2. Optimización de Ingeniería

  • Exportación a ONNX: Soporta la exportación de modelos en formato ONNX para facilitar el despliegue
  • Soporte Multiplataforma: Soporta múltiples plataformas como CPU, GPU, ARM64
  • Despliegue Contenerizado: Ofrece soporte para imágenes Docker

3. Facilidad para Desarrolladores

  • Interfaz Unificada: AutoModel unifica las interfaces de inferencia de ModelScope, Hugging Face y FunASR
  • Diseño Modular (Plug-in): Soporta la combinación flexible de componentes como VAD, puntuación y hablante
  • Documentación Completa: Proporciona tutoriales y ejemplos detallados

Escenarios de Aplicación

1. Transcripción de Voz en Tiempo Real

  • Actas de reuniones
  • Subtítulos en vivo
  • Asistentes de voz

2. Procesamiento de Audio Offline

  • Transcripción de archivos de audio
  • Análisis de datos de voz
  • Moderación de contenido

3. Soporte Multilingüe

  • Reconocimiento de voz interlingüe
  • Traducción de voz
  • Servicio al cliente multilingüe

Últimas Actualizaciones

Principales Actualizaciones de 2024

  • 29/10/2024: Lanzamiento del servicio de transcripción en tiempo real 1.12, el modo 2pass-offline soporta el modelo SenseVoice
  • 10/10/2024: Añadido soporte para el modelo Whisper-large-v3-turbo
  • 26/09/2024: Solucionado el problema de fuga de memoria, soporte para el modelo SenseVoice ONNX
  • 04/07/2024: Lanzamiento del modelo fundamental de voz SenseVoice
  • 27/06/2024: Lanzamiento del servicio de transcripción de archivos offline GPU 1.0

Comunidad y Soporte

Licencia de Código Abierto

Participación en la Comunidad

  • GitHub Issues: Problemas técnicos y comentarios sobre errores
  • Grupo DingTalk: Comunicación y discusión diaria
  • ModelScope: Descarga y compartición de modelos

Citas

Si ha utilizado FunASR en su investigación, por favor cite el siguiente artículo:

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

Conclusión

FunASR es un kit de herramientas de reconocimiento de voz completo y de excelente rendimiento, que combina con éxito las tecnologías de vanguardia de la investigación académica con las necesidades prácticas de las aplicaciones industriales. Ya sea para investigadores que validan algoritmos o para desarrolladores que construyen aplicaciones de voz, FunASR proporciona un potente soporte técnico y una cómoda experiencia de desarrollo. A través de su rica biblioteca de modelos preentrenados, sus flexibles soluciones de despliegue y su activa comunidad de código abierto, FunASR se está convirtiendo en una infraestructura importante en el campo del reconocimiento de voz.

Star History Chart