Herramienta de código abierto para la conversión de voz a texto en tiempo real

Introducción general

realtime-transcription-fastrtc es un proyecto de código abierto centrado en la conversión de voz a texto en tiempo real. Utiliza la tecnología FastRTC para procesar flujos de audio de baja latencia, combinada con la tecnología Susurro para lograr un reconocimiento eficaz del habla. El proyecto está mantenido por el desarrollador sofi444 y alojado en GitHub. El código es completamente abierto y permite a los usuarios modificarlo libremente. Los usuarios pueden desplegarlo a través del navegador o localmente, y la interfaz es compatible con los modos Gradio y FastAPI, lo que facilita su manejo. Es adecuado para grabaciones de reuniones, subtítulos en directo y otros escenarios para satisfacer las necesidades de particulares y desarrolladores. El proyecto hace hincapié en la ligereza y la compatibilidad multilingüe, el funcionamiento estable y la facilidad de ampliación.

实时语音转文字的开源工具

 

Lista de funciones

  • Transcripción de voz en tiempo real: convierta instantáneamente la voz en texto a través del micrófono con una baja latencia de hasta milisegundos.
  • Detección de actividad vocal (VAD): identifica automáticamente el principio y el final del habla para optimizar el proceso de transcripción.
  • Soporte multilingüe: inglés, chino y otros idiomas, basado en el modelo Whisper.
  • Dos opciones de interfaz: interfaz intuitiva Gradio e interfaz personalizable FastAPI.
  • Ejecución local de los modelos: con los modelos Whisper, la transcripción offline es posible sin necesidad de una conexión constante a Internet.
  • Ajuste de parámetros: admite la configuración de flujos de audio, umbrales VAD y tamaños de lotes de modelos.
  • Despliegue flexible: puede ejecutarse localmente o desplegarse a través de plataformas como Hugging Face Spaces.
  • Retroalimentación de error: Proporciona una indicación clara de fallo de conexión o error de configuración para facilitar la depuración.

 

Utilizar la ayuda

Proceso de instalación

Para utilizar realtime-transcription-fastrtc, necesitas preparar tu entorno Python y las dependencias relacionadas. A continuación se detallan los pasos para garantizar que los usuarios puedan instalarlo y ejecutarlo sin problemas.

  1. Comprobar los requisitos del sistema
    • Versión de Python: >= 3.10.
    • montaje ffmpegutilizado para el procesamiento de audio.
    • Hardware recomendado: GPU (por ejemplo, MPS o CUDA) para acelerar la inferencia del modelo; las CPU también pueden funcionar, pero son más lentas.
  2. almacén de clones
    Ejecute el siguiente comando en el terminal para obtener el código del proyecto:

    git clone https://github.com/sofi444/realtime-transcription-fastrtc
    cd realtime-transcription-fastrtc
    
  3. Crear un entorno virtual
    Para evitar conflictos de dependencias, cree un entorno virtual Python. Hay dos maneras recomendadas oficialmente para hacer esto:
    Modo 1: Uso de uv (recomendado)
    En primer lugar, instale uv(Ref. https://docs.astral.sh/uv/) y, a continuación, ejecute:

    uv venv --python 3.11
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    uv pip install -r requirements.txt
    

    Forma 2: Utilizar pip

    python -m venv .venv
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    pip install --upgrade pip
    pip install -r requirements.txt
    
  4. Instalar ffmpeg
    Instalación según el sistema operativo ffmpeg::
    macOS::

    brew install ffmpeg
    

    Linux (Ubuntu/Debian)::

    sudo apt update
    sudo apt install ffmpeg
    

    Windows (ordenador)::

    • descargando ffmpeg Ejecutable (de https://ffmpeg.org/download.html).
    • Añádalo a la variable de entorno del sistema o colóquelo en el directorio raíz del proyecto.
  5. Configuración de variables de entorno
    En el directorio raíz del proyecto, cree el archivo .env añada lo siguiente:

    UI_MODE=fastapi
    APP_MODE=local
    SERVER_NAME=localhost
    PORT=7860
    MODEL_ID=openai/whisper-large-v3-turbo
    
    • UI_MODEFijar en gradio Mediante la interfaz de Gradio, establezca fastapi Utilizar una interfaz HTML personalizada (por defecto).
    • APP_MODELa ejecución local se establece en localEl despliegue en la nube está configurado para deployed.
    • MODEL_ID: Especifica el modelo Whisper, por defecto openai/whisper-large-v3-turbo.
    • SERVER_NAMEDirección del servidor, por defecto localhost.
    • PORT: número de puerto, por defecto 7860.
  6. Proyectos en curso
    Ejecute el programa principal:

    python main.py
    

    El terminal muestra una URL (por ejemplo http://localhost:7860El puerto puede ser diferente en el modo Gradio, así que presta atención a las indicaciones del terminal.

Funciones principales

Transcripción de voz en tiempo real

  • Iniciar transcripción: Abre la interfaz y haz clic en el botón "Iniciar grabación" para autorizar el acceso del navegador al micrófono. El sistema detectará automáticamente la voz y mostrará el texto.
  • Ver resultados: El texto transcrito se muestra en tiempo real en el cuadro de texto de la interfaz, desplazándose automáticamente hasta el contenido más reciente.
  • Suspensión de la transcripciónPulse el botón "Detener" para detener la entrada de voz.
  • tenga en cuentaPara garantizar una baja latencia, el proyecto utiliza por defecto un tamaño de lote de 1, es decir, cada clip de audio recibido se transcribe inmediatamente.

Detección de actividad vocal (DAV)

  • El VAD distingue automáticamente entre voz y silencio para mejorar la eficacia de la transcripción. Parámetros ajustables (consulte la documentación de FastRTC) https://fastrtc.org):
    • audio_chunk_duration: Duración del clip de audio, por defecto 0,6 segundos.
    • started_talking_thresholdUmbral de inicio de voz, por defecto 0,2 segundos.
    • speech_pad_msRelleno silencioso, por defecto 400 milisegundos.
  • Modificación: Editar main.py o pasar parámetros a través de variables de entorno.

Conmutación de interfaces

  • Interfaz GradioLa interfaz, ideal para pruebas rápidas, contiene un botón de grabación y un área de visualización de texto. Ajustes UI_MODE=gradio Ejecútelo después para acceder a la dirección que le indique el terminal.
  • Interfaz FastAPIPermite la personalización y es adecuado para desarrolladores. Modifique index.html Se pueden ajustar estilos o características. Ajustes UI_MODE=fastapi Después de correr, visite http://localhost:8000.

Función destacada Operación

Modelos de susurros locales

  • Modelo por defecto:openai/whisper-large-v3-turbo, ligero, multilingüe, excelente rendimiento.
  • Cambio de modelo: Ajustes MODEL_IDPor ejemplo openai/whisper-small(para dispositivos de perfil bajo). Compatibilidad con otros modelos de ASR Hugging Face (https://huggingface.co/models?pipeline_tag=automatic-speech-recognition).
  • Configuración del idioma: La traducción por defecto es el inglés, cuando necesites transcribir otros idiomas, configúralo en el código. language parámetros (por ejemplo language=zh (en chino).
  • Optimización de la ejecución: la primera ejecución calentará el modelo para reducir la latencia. Se recomienda la aceleración por GPU.

Soporte multilingüe

  • Admite inglés, chino, español y otros idiomas, según el modelo.
  • Configuración: En el main.py establecer transcribe y especifique la lengua de destino.
  • Ejemplo: transcripción de discurso chino, ajuste language=zhAsegúrate de que la entrada del micrófono está libre.

Despliegue en la nube

  • Espacios para abrazar la cara: Ajustes APP_MODE=deployedPara configurar el servidor Turn (consulte https://fastrtc.org/deployment/). Cargue el código y ejecútelo según se lo pida la plataforma.
  • Otras plataformasConfiguración manual de WebRTC y del entorno del servidor: es necesario configurar manualmente WebRTC y el entorno del servidor para asegurarse de que los puertos están abiertos.

tratamiento de errores

  • error común::
    • "Fallo al conectar": Compruebe la configuración de la red o de WebRTC.
    • "Modelo no encontrado": confirmado MODEL_ID Correcto y el modelo se ha descargado.
    • "ffmpeg not found": asegúrese de que el archivo ffmpeg Instalado y en la ruta del sistema.
  • ajustar los componentes durante las pruebas: Visualiza los registros del terminal en tiempo de ejecución para registrar la frecuencia de muestreo de audio, el estado de carga del modelo, etc.

advertencia

  • softwareGPU recomendada para la inferencia en tiempo real, compatibilidad con MPS whisper-large-v3-turbo.
  • navegador (software)Se recomienda utilizar Chrome o Firefox para asegurarse de que WebRTC funciona correctamente.
  • precisión del habla: Sujeto a la calidad del micrófono y al entorno, se recomienda su uso en entornos silenciosos.

 

escenario de aplicación

  1. actas
    En reuniones a distancia o in situ, transcribe los debates en tiempo real para generar transcripciones. Los equipos pueden exportarlas y cotejarlas directamente, eliminando la necesidad de tomar notas manuales.
  2. subtitulado en directo
    Añada subtítulos en tiempo real a las emisiones en directo para mejorar la accesibilidad de los contenidos. Los presentadores pueden trabajar rápidamente a través de la interfaz de Gradio y los espectadores ven el texto al instante.
  3. aprendizaje de idiomas
    Transcribe la pronunciación como texto para comprobar la precisión cuando los estudiantes practican un idioma extranjero. Soporte multi-idioma, adecuado para inglés, chino y otros escenarios de aprendizaje.
  4. capacidad de desarrollo
    Los desarrolladores pueden integrar proyectos en otras aplicaciones para probar la funcionalidad WebRTC o ASR. El código abierto favorece el desarrollo secundario.

 

CONTROL DE CALIDAD

  1. ¿Necesito trabajar en red?
    No se requiere conexión a Internet para el funcionamiento local, los modelos pueden descargarse y utilizarse sin conexión. El despliegue en la nube requiere soporte de red para WebRTC.
  2. ¿Qué idiomas se admiten?
    El inglés se admite por defecto. Configuración language Los parámetros pueden admitir chino, español, etc., según el modelo de Whisper.
  3. ¿Cómo mejorar la precisión de la transcripción?
    Utilice un micrófono de alta calidad, mantenga un entorno silencioso y elija un modelo grande (como un whisper-large-v3-turbo).
  4. ¿Puedo personalizar la interfaz?
    Sí, ¡editable en modo FastAPI! index.htmlajustar estilos o añadir funciones.
  5. ¿Por qué se retrasa la transcripción?
    Puede deberse a la falta de rendimiento del hardware o a problemas de red. Se recomienda GPU, compruebe la configuración de WebRTC.
© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...