Herramienta de código abierto para la conversión de voz a texto en tiempo real
Últimos recursos sobre IAPublicado hace 4 meses Círculo de intercambio de inteligencia artificial 1.8K 00
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.
- Comprobar los requisitos del sistema
- Versión de Python: >= 3.10.
- montaje
ffmpeg
utilizado 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.
- 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
- 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, instaleuv
(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
- Instalar ffmpeg
Instalación según el sistema operativoffmpeg
::
macOS::brew install ffmpeg
Linux (Ubuntu/Debian)::
sudo apt update sudo apt install ffmpeg
Windows (ordenador)::
- descargando
ffmpeg
Ejecutable (dehttps://ffmpeg.org/download.html
). - Añádalo a la variable de entorno del sistema o colóquelo en el directorio raíz del proyecto.
- descargando
- 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_MODE
Fijar engradio
Mediante la interfaz de Gradio, establezcafastapi
Utilizar una interfaz HTML personalizada (por defecto).APP_MODE
La ejecución local se establece enlocal
El despliegue en la nube está configurado paradeployed
.MODEL_ID
: Especifica el modelo Whisper, por defectoopenai/whisper-large-v3-turbo
.SERVER_NAME
Dirección del servidor, por defectolocalhost
.PORT
: número de puerto, por defecto7860
.
- Proyectos en curso
Ejecute el programa principal:python main.py
El terminal muestra una URL (por ejemplo
http://localhost:7860
El 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_threshold
Umbral de inicio de voz, por defecto 0,2 segundos.speech_pad_ms
Relleno 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. AjustesUI_MODE=fastapi
Después de correr, visitehttp://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_ID
Por ejemploopenai/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 ejemplolanguage=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
establecertranscribe
y especifique la lengua de destino. - Ejemplo: transcripción de discurso chino, ajuste
language=zh
Asegúrate de que la entrada del micrófono está libre.
Despliegue en la nube
- Espacios para abrazar la cara: Ajustes
APP_MODE=deployed
Para configurar el servidor Turn (consultehttps://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
- 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. - 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. - 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. - 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
- ¿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. - ¿Qué idiomas se admiten?
El inglés se admite por defecto. Configuraciónlanguage
Los parámetros pueden admitir chino, español, etc., según el modelo de Whisper. - ¿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 unwhisper-large-v3-turbo
). - ¿Puedo personalizar la interfaz?
Sí, ¡editable en modo FastAPI!index.html
ajustar estilos o añadir funciones. - ¿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
El artículo está protegido por derechos de autor y no debe reproducirse sin autorización.
Artículos relacionados
Sin comentarios...