Volver al inicio

Reconocimiento de voz Whisper en C# para reuniones

Programa de C# captura el flujo de audio del sistema, usa Whisper para STT y traduce vía Azure/OpenAI. Modelo Small óptimo, configuraciones de VAD para frases. Arquitectura modular para extensión.

Utilidad de C#: Whisper STT + traducción en tiempo real
Advertisement 728x90

Reconocimiento y traducción de voz en tiempo real en C# con Whisper

La aplicación captura flujos de audio de plataformas como Teams, los divide en frases según la amplitud vocal y pausas, y luego utiliza Whisper para convertir voz en texto (STT) en ruso, inglés o francés, seguido de traducción. La implementación en C# depende de aproximadamente un 20 % de código personalizado, mientras que el resto se construye mediante integraciones. Ofrece un modo dictado cuando se selecciona un solo idioma: simplemente transcripción con opción de guardar el audio.

Las configuraciones permiten calibrar:

  • Umbral de amplitud vocal para detección de habla.
  • Duración del silencio entre frases.

Las estadísticas mostradas en la esquina inferior derecha indican los niveles de audio actuales y las banderas de detección, ideales para ajustes precisos. La captura de audio funciona únicamente con el mezclador del sistema (auriculares/altavoces); no se soporta entrada directa desde el micrófono.

Google AdInline article slot

Elección de modelos Whisper y rendimiento

Se probaron soluciones locales de STT:

  • Sherpa (ONNX): la versión en streaming para francés no se adaptó a la arquitectura.
  • Foundry Local (Microsoft): comunicación cruda basada en archivos, basada en Whisper.

Optamos por Whisper:

| Modelo | Velocidad | Lógica | Notas |

Google AdInline article slot

|-------|-------|-------|-------|

| Base | Rápida | Ninguna | Mínima, sin contexto |

| Pequeño | Media | Sí | Mejor equilibrio, temperatura 0.1–0.2 |

Google AdInline article slot

| Mediano | Lenta | Buena | La cola de fragmentos crece durante reuniones en vivo |

Sin NPU/GPU, el uso de RAM aumenta, pero los resultados siguen siendo aceptables con audio de alta calidad en reuniones.

Integración de servicios de traducción

Dos opciones disponibles:

  • OpenAI: clave API, modelo y URL configurados en ajustes.
  • Azure Translator: nivel gratuito incluye 2 millones de caracteres/mes; requiere cuenta.

La interfaz ITranslationService simplifica añadir nuevos proveedores (posible con Yandex API si se factura). Ningún traductor local alcanzó las métricas de calidad.

Ejemplo de configuración Azure:

public class AzureTranslationService : ITranslationService
{
    private readonly string _key;
    // ...
}

Casos de uso prácticos y limitaciones

Esta herramienta resuelve necesidades de reuniones multilingües en tiempo real sin grabación. Probada con francés, inglés y ruso. No es un grabador universal: solo se captura la salida de audio del sistema.

Para desarrolladores intermedios a senior: arquitectura modular enfocada en procesamiento de fragmentos en streaming. Extensible al reemplazar motores STT/traducción o añadir nuevos algoritmos VAD.

Conclusiones clave:

  • Captura de audio del sistema con división de frases usando parámetros similares a VAD.
  • Whisper Pequeño es óptimo para uso en tiempo real: temperatura 0.1–0.2, sin GPU requerida.
  • Interfaz de traductor sencilla; Azure ofrece 2M caracteres gratis/mes.
  • Modo STT solo para transcripción sin traducción.
  • Estadísticas en tiempo real para ajustar la precisión de detección de voz.

— Editorial Team

Advertisement 728x90

Leer después