Chez Unbabel, nous avons quelque chose qui s’appelle Night Lab, des projets liés à l’entreprise réalisés par des groupes de personnes dans leur temps libre, pour lesquels on vote et qui récompensés à la fin de chaque trimestre fiscal.

Les téléphones et le son m’ont fasciné depuis mon enfance et j’ai toujours voulu développer des systèmes liés à ceux-là un jour. Je pensais qu’il serait intéressant de marier le cœur de métier d’Unbabel de la traduction plug-and-play, de la reconnaissance vocale et d’une API par téléphone dans un laboratoire de nuit. Ainsi, Voix d’Unbabel est né.

Unbabel Voice est un système de réponse automatique qui permet de traduire une langue dans n’importe laquelle de nos langues prises en charge.

Vous composez un numéro, leur dites quelle langue vous souhaitez traduire, la langue que vous souhaitez traduire, et le contenu que vous souhaitez traduire.

Ensuite, il transcrit notre voix et la traduit dans la langue que tu as demandée et tu renvoie le résultat.

Tu peux alors l’envoyer comme un SMS (désactivé pour le moment), répété, ou simplement réutiliser la paire de langues précédemment sélectionnée pour une traduction ultérieure.

Comment c’est construit

Afin de ne pas réinventer la roue et de raccourcir le cycle de développement, j’ai choisi d’appeler des services externes pour toute fonctionnalité difficile. Le système utilise la voix programmable de Twilio pour prendre des appels téléphoniques, qui à son tour appelle notre service Web qui gère le flux via TwiML.

Le menu interactif demande les langues source et cible, qui sont reconnues par Twilio via des mots-clés. Après la configuration initiale, un enregistrement est mis en place et les contenus à traduire sont envoyés à notre service, qui, à son tour, demande à API Google Speech une transcription, puis envoie cela à la API de Traduction Automatique Unbabel pour la traduction. Nous utilisons ensuite les capacités Text-To-Speech de Twilio pour renvoyer le résultat à l’utilisateur.

Depuis que cela a commencé comme un projet personnel, j’ai pris la chance de se plonger dans le développement d’applications web en utilisant le Aller langage de programmation, à savoir en utilisant le Gin web framework, et d’autres progiciels, spécifiquement pour l’intégration des API utilisées. J’ai utilisé BTBurke’s twiml Go Library pour générer le TwiML pour les menus interactifs et ai même généré une pull request en upstream. 😜

J’ai fait appel à Sofia Rocha pour ses superbes compétences en design, et elle a rapidement produit une page d’atterrissage statique pour ce petit projet, suivant nos directives de conception internes, nous la remercions beaucoup pour ça ! 🎉

Conclusion

Ce fut un projet assez amusant et je réussis à avoir un prototype en fonctionnement en plus ou moins un week-end. Il est certainement intéressant d’acquérir de nouvelles compétences et d’exercer vos compétences de codage, en particulier lorsque ton rôle principal est dans DevOps. 😅

Merci beaucoup pour ta lecture et assure-toi de terminer ce projet parallèle sur lequel tu travailles depuis un moment ! 😏