En Unbabel tenemos algo llamado Night Lab: proyectos relacionados con la empresa realizados por grupos de personas en su tiempo libre, que se votan y se recompensan al final de cada trimestre fiscal.

Los teléfonos y el sonido me han fascinado desde que era un niño y siempre quise desarrollar sistemas relacionados con ellos algún día. Pensé que sería interesante casarme con el negocio principal de Unbabel de traducción plug-and-play, reconocimiento de voz y una API basada en teléfono en un laboratorio nocturno propio. Y entonces, Voz de Unbabel nació.

Unbabel Voice es un sistema de respuesta automática que te permite traducir un idioma que puedes hablar entre cualquiera de nuestros idiomas admitidos.

Marque un número, dígale de qué idioma le gustaría traducir, el idioma al que le gustaría traducir y el contenido real que le gustaría traducir.

Luego, transcribe tu voz, la traduce al idioma que has solicitado y te responde el resultado.

Después, puedes recibir la traducción como un SMS (opción deshabilitada en este momento), repetir la traducción o simplemente reutilizar el par de idiomas seleccionado anteriormente para una traducción posterior.

Cómo está construido

Para no reinventar la rueda y hacer el ciclo de desarrollo mucho más corto, opté por llamar a servicios externos para todos las funcionalidades difíciles. El sistema usa voz programable de Twilio para contestar llamadas telefónicas, que a su vez llama a nuestro servicio web que gestiona el flujo a través de TwiML.

El menú interactivo solicita los idiomas de origen y destino que Twilio reconoce a través de palabras clave. Una vez realizada la configuración inicial, se configura una grabación y los contenidos a traducir se envían a nuestro servicio, el cual, a su vez, solicita API de Google Speech para una transcripción y luego envía los resultados a la API de Traducción Automática de Unbabel para traducir. Luego usamos las capacidades de Text-To-Speech de Twilio para devolver el resultado al usuario.

Como esto inició como un proyecto personal, aproveché la oportunidad para profundizar en el desarrollo de aplicaciones web usando el lenguaje de programación Go, es decir, usando el Gin web framework, y otros paquetes, específicamente para la integración de las APIs usadas. Usé la biblioteca twiml Go de BTBurke para generar el TwiML para los menús interactivos e incluso contribuí con una Solicitud de extracción upstream. 😜

Yo pedí Sofía Rocha por sus excelentes habilidades de diseño y rápidamente creó una página estática de bienvenida para este pequeño proyecto, siguiendo nuestras pautas internas de diseño, ¡muchas gracias por eso! 🎉

Conclusión

Este fue un proyecto bastante divertido y logré tener un prototipo funcionando en un fin de semana más o menos. Definitivamente es interesante aprender nuevas habilidades y ejercitar tus habilidades de codificación, especialmente cuando tu función principal es en DevOps. 😅

¡Muchas gracias por leer y asegúrate de terminar ese proyecto paralelo en el que has estado trabajando por un tiempo! 😏