DEV Community

Carlos de Huerta
Carlos de Huerta

Posted on

Cómo publicar traducciones de Microsoft Translate en Microsoft Stream

IA en nuestra caja de herramientas

Las aplicaciones que usamos en nuestro día a día, van enriqueciéndose con capacidades de Inteligencia Artificial (IA), es algo que esperamos y que tenemos que incorporar como una herramienta en nuestra estrategia al desarrollar aplicaciones. Muchas veces esa caja de herramientas no nos permite conectarlas e intercambiar resultados como nos gustaría, por lo que necesitaremos incluir el pegamento especial para disponer de la mejor solución.
Os invito a echar un vistazo a los servicios cognitivos de Azure, con servicios entorno a la voz, análisis de texto, traducción, etc. Uno de mis favoritos es el de lector inmersivo que nos permite mejorar la comprensión y progreso en la lectura.

¿Quién no espera traducción automática de una presentación?

Quería compartir un ejemplo concreto de las necesidades de integración con un caso práctico. En este caso me consultaron la posibilidad de traducir una presentación a 12 idiomas, dado que el equipo se encuentra distribuido geográficamente y requerían del material localizado para cada equipo.

¿Cómo aprovechar las capacidades de la IA?

Una forma natural de hacer una presentación es emplear PowerPoint, permitiendo la traducción simultánea en varios idiomas. Esto es algo que está disponible de forma temprana en Microsoft 365 y que podrán usar todos los usuarios al hacer sus presentaciones. Basta enlazar con el QR y verás la traducción durante la sesión.
Live PowerPoint
Otra opción es hacer uso de Microsoft Translator (que usa los mismos servicios de Azure), y que dispone de una Add-in para PowerPoint, creado a partir de un proyecto del Garaje que deberías conocer sino es el caso, así como explorar el resto de proyectos ;). La experiencia es similar a la de Live PowerPoint (de hecho este último está basado en el proyecto de Garaje), permitiendo la descarga de los subtítulos.
El inconveniente es que no es un formato que podamos importar, aunque sí dispone del texto traducido, original y el momento en el que se generó.

==================================
Transcript WXEIJ
Correlation ID = 1d78d135-e3ea-2101-6f2f-78fdb756c783
Date
Tue May 12 2020 10:27:27 GMT+0200 (Central European Summer Time)
==================================

Conversation WXEIJ

Presenter @ 10:27:31
Translation (English): 
Recognition (Spanish): (undefined)

Presenter @ 10:28:04
Translation (English): It's in English, too.
Recognition (Spanish): (Está en inglés, también.)

Presenter @ 10:28:07
Translation (English): Ok.
Recognition (Spanish): (Vale.)
....

Hasta aquí tenemos casi todos los ingredientes:

  • Generación de subtítulos mediante Microsoft Translator (y servicios de Azure) con formato personalizado
  • Grabación de la presentación mediante PowerPoint o compartiendo en una sesión de Teams

El beneficio de usar Microsoft Teams para la grabación, es que dicha grabación se publica en Microsoft Stream en el primer caso, deberemos grabar y publicarlo manualmente), donde podremos editar y añadir subtítulos. Si no conocéis Stream, os dejo un video introductorio.

Formatos de transcripción y portabilidad

Como comentaba desde Microsoft Stream, podemos importar subtítulos en formato WebVTT para todos los idiomas que queríamos. Esto permite que los usuarios naveguen hasta el vídeo de la presentación y puedan seleccionar su idioma preferido.
Subtítulos en Stream
Y aquí es donde el pegamento que comentaba es necesario. Tenemos los subtítulos de las traducciones en un formato personalizado, y por otro lado Microsoft Stream nos solicita el formato estándar WebVTT.
Lo primero es intentar no tener que reescribir una librería para generar ficheros WebVTT. Una búsqueda rápida me permitió localizar esta library en dotnet (para aplicaciones de consola multiplataforma rápida, mi preferencia).

GitHub logo svm-git / WebVTT

.Net library to parse and serilize media captions in WebVTT format.

WebVTT

.Net library to parse and serilize media captions in WebVTT format.

El inconveniente principal es que hace uso de .NET Framework 4.5, que no nos permite ejecutar sobre Linux o MacOS. Para ello haremos uso del analizador de portabilidad y prácticamente sin cambios, confirmando que las versiones de dotnet (SDK + runtime) están instaladas.

Solución

A partir de la misma, con los cambios necesarios para multiplataforma, generé una consola simple que acepta un fichero de entrada con el formato de PowerPoint Translator, y generando como salida un fichero en WebVTT. Tenéis el código en este repo, y un pequeño vídeo de su funcionamiento, y el resultado del ejemplo anterior.


WEBVTT

00:00:00.000 --> 00:00:15.000

00:00:33.000 --> 00:00:36.000
It's in English, too.

00:00:36.000 --> 00:00:51.000
Ok.
....

Hasta pronto!

Top comments (0)