En nuestra serie Engineering Energizers Q&A, exploramos las trayectorias de los líderes de ingeniería que han alcanzado logros significativos en sus respectivos campos. Hoy, destacamos a Dima Statz, Director de ingeniería de software de Salesforce, que dirige el desarrollo del nuevo servicio Speech-to-Text (STT) de Salesforce. STT aprovecha la avanzada tecnología de reconocimiento de voz para proporcionar transcripciones precisas y en tiempo real del lenguaje hablado, ayudando así a las empresas a comprender mejor las interacciones con los clientes y a mejorar sus estrategias de comunicación.
Transcripción de voz a texto
Explore cómo el equipo de Dima aborda los desafíos técnicos, como el desarrollo de servicios de transcripción en tiempo real que equilibren una baja latencia con una alta precisión, asegurándose de que las nuevas características no comprometan las funcionalidades existentes, y mucho más.
¿Cuál es la misión de su equipo?
Nuestra misión es desarrollar funciones de texto a voz y de voz a texto para la plataforma Salesforce AI Platform, proporcionando a los desarrolladores servicios de IA de voz listos para usar para un desarrollo de aplicaciones de IA conversacional rápido y eficaz
Nuestro equipo mejora la precisión y funcionalidad de STT, garantizando que pueda convertir sin problemas el lenguaje hablado en texto. Esta precisión es crucial para analizar las interacciones con los clientes y optimizar los procesos de comunicación. Gracias a nuestros esfuerzos, nos esforzamos por ayudar a las empresas a mejorar la prestación de sus servicios y a obtener una visión más profunda de sus relaciones con los clientes, lo que en última instancia conduce a mejores resultados empresariales
¿Cuál ha sido el reto técnico más importante de su equipo?
Recientemente, nuestro equipo se enfrentó a un importante reto técnico: desarrollar un servicio de transcripción en tiempo real que combinara baja latencia con alta precisión. La transcripción en tiempo real exige un procesamiento rápido -los retrasos de más de un segundo hacen que los subtítulos sean ineficaces-, pero la precisión no puede verse comprometida ni siquiera cuando se entregan resultados en 500 milisegundos.
Para ello, hemos adaptado Modelos Whisper de OpenAI, un motor de soluciones de código abierto diseñado originalmente para el procesamiento por lotes. Whisper, conocido por su tasa de precisión del 95% con el LibriSpeech ASR Corpus, suele manejar archivos completos de audio o vídeo. Nuestro objetivo era habilitarlo para aplicaciones en tiempo real.
¿Cómo maneja STT el audio para mantener tanto la velocidad como la precisión?
Hemos diseñado una solución de streaming que utiliza el protocolo WebSockets, lo que permite procesar el audio en «trozos» a medida que llega. Esta configuración mantiene la latencia por debajo del segundo al tiempo que mejora la precisión a través de un método denominado técnica de ventana giratoria. Este método procesa el audio en ventanas temporales, segmentando en función de señales como cambios de locutor o pausas. Proporciona resultados parciales inmediatos y resultados finales más precisos una vez que se ha reunido suficiente contexto o se ha detectado una pista de audio significativa
Ventanas temporales de trozos de audio.
El proceso implica:
- Llegada de trozos: Los trozos de audio entran en una ventana de procesamiento a su llegada.
- Ventana de procesamiento: Los trozos se transcriben para producir un resultado parcial.
- Procesamiento continuo: A medida que llegan nuevos trozos, la ventana se amplía, lo que permite al motor de transcripción refinar los resultados utilizando contexto adicional.
- Detección de pausas o cambios de locutor: La detección de pausas o cambios activa la marcación de un resultado parcial como final.
- Detección de pausas o cambios
- Finalización: la ventana se cierra, y la transcripción final se envía al cliente.
Este ciclo garantiza que nuestro servicio de transcripción en tiempo real sea a la vez rápido y preciso, satisfaciendo las necesidades de las comunicaciones dinámicas de audio o vídeo.
Transcripción en tiempo real
Flujo de resultados parcial.
¿Cómo garantiza STT que las nuevas características no afecten a las funcionalidades existentes?
Priorizamos mantener la estabilidad del sistema mientras implementamos nuevas funcionalidades a través de rigurosos protocolos de pruebas. Nuestro enfoque incluye pruebas unitarias, en las que imponemos una cobertura de código mínima del 95%. Esto se complementa con un mecanismo de comprobación que prueba el código fuente antes de que se fusione de la rama de características a la rama principal, lo que garantiza que la rama principal se mantenga estable y «sana»
Flujo de desarrollo.
¿Qué medidas toma STT para mantener una alta calidad y seguridad del código?
Para mantener una alta calidad del código, empleamos el análisis estático y el formateo automático del código. El análisis estático ayuda a detectar errores en una fase temprana, lo que reduce significativamente el tiempo de depuración y mejora la fiabilidad de nuestro software. El formateo automático del código garantiza unos estándares de codificación coherentes en todo el equipo, lo que facilita las revisiones del código y la colaboración. En cuanto a la seguridad, llevamos a cabo análisis estáticos de seguridad para identificar y abordar posibles riesgos de seguridad, problemas de código y cuestiones de cumplimiento en las primeras fases del proceso de desarrollo.
Seguridad
¿Cómo gestiona STT las pruebas de integración y la evaluación comparativa del rendimiento?
Las pruebas de integración forman parte integral de nuestro proceso CI/CD y utilizan el marco de pruebas de integración de Salesforce Falcon (FIT) para garantizar una interacción perfecta entre los componentes y una funcionalidad fiable de extremo a extremo. El rendimiento y la precisión se evalúan mediante métricas como la tasa de error de palabra (WER) y la latencia, con pruebas comparativas diarias ejecutadas en entornos superiores utilizando conjuntos de datos como LibriSpeech ASR Corpus. Estas pruebas validan que las nuevas versiones cumplen nuestros estrictos estándares de rendimiento y precisión antes de su lanzamiento, lo que garantiza la alta calidad de STT.
¿Qué actividades de investigación y desarrollo se están llevando a cabo para mejorar las capacidades de STT?
STT está mejorando sus capacidades para incluir análisis basados en IA más allá de los servicios de transcripción tradicionales. Actualmente transcribe llamadas de audio y vídeo para ayudar en el análisis del rendimiento y proporcionar información durante las llamadas de ventas. El servicio está evolucionando para extraer datos para análisis avanzados en entornos de Data Cloud, mejorando la alimentación del sistema de IA.
La demanda de datos extensos y de alta calidad ha crecido con la evolución de la IA, centrándose tradicionalmente en datos estructurados y semiestructurados. Sin embargo, los datos no estructurados de las conversaciones, como los que se encuentran en formatos de vídeo y audio, presentan una oportunidad significativa a pesar de ser un reto para analizar.
Se están realizando esfuerzos para integrar estos datos no estructurados de plataformas como Zoom, Google Meet y MS Teams en plataformas de análisis sin problemas. El objetivo es desarrollar capacidades para que las plataformas de análisis de datos como Apache Spark procesen los datos de audio y vídeo con la misma eficacia que los datos estructurados. Este desarrollo tiene como objetivo mejorar la comprensión, mejorar los procesos y automatizar las operaciones empresariales a través de aplicaciones avanzadas de IA.
¿Cómo recogen los comentarios de los usuarios de STT y cómo influyen en el desarrollo futuro?
STT recoge las opiniones de los usuarios a través de tres canales principales para informar su desarrollo y mejorar la satisfacción del cliente:
- Canal público de Slack: esta plataforma se utiliza para anunciar nuevas funciones y comprometerse con los usuarios para que las prueben y den su opinión. La comunicación directa capta las preferencias de los usuarios y las reacciones iniciales a la usabilidad de las nuevas funciones.
- Análisis de datos de comportamiento: Se analiza el comportamiento de los usuarios dentro de STT para comprender cómo se utiliza la plataforma. Este análisis pone de relieve las tendencias de uso, las tasas de adopción de funciones y las áreas de dificultad. La información obtenida a partir de estos datos orienta las mejoras que abordan directamente las necesidades de los usuarios
- Salesforce Grand Unified System: Utilizado para la resolución de problemas en colaboración, este sistema recopila comentarios a través de tickets de asistencia y discusiones de equipo, proporcionando información sobre los retos de los usuarios y las áreas de mejora. Estos comentarios son cruciales para dar forma a la hoja de ruta de desarrollo para superar las expectativas de los clientes.
Más información
- ¿Hambre de más historias sobre IA? Descubra cómo el nuevo Einstein Copilot para Tableau está construyendo el futuro de la analítica impulsada por IA en este blog.
- Manténgase conectado: únase a nuestra Comunidad de talentos
- Consulta nuestros equipos de Tecnología y Producto para saber cómo puedes participar.