Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Blog

Visiones e ideas de las mentes más brillantes en el campo del análisis.
Aguisande
15 - Aurora
15 - Aurora

El otro día me plantearon un caso de uso que me pareció interesante explorar, y debido a que los resultados me fascinaron quiero compartirlo con Uds.

 

En esta época de anuncios acerca de “…apriete un botón en su computadora y un modelo de Machine Learning o Inteligencia Artificial hará todo lo que Uds. Quiera…” al CMO de un cliente nuestro le pareció súper natural el planteo del siguiente caso:

Transcribir a archivos de texto horas y horas de grabaciones del sistema de atención a clientes.

 

Ok my friend, desafío aceptado.

Los insumos

 

Íbamos a utilizar los clips que nuestro amigo menciona, pero como no podíamos acceder todavía a sus archivos, preparé una serie de clips de audio para entrenar los modelos y poder presentar una prueba de concepto completa a nuestro cliente.

 

Para esto utilicé porciones de video que extraje de algunos webinars que he dictado a través del tiempo y que tenía en el disco de mi laptop. Algunos en español, otros en inglés.

 

Para el ejemplo que describiré ahora, pueden ver el video completo acá: https://www.decisionscience.bi/2020/09/20/demistifying-price-elasticity/

 

Video.png

 

Subí el video a AWS (específicamente a un bucket de S3), para agilizar el proceso y tenerlo siempre disponible.

 

Armado del Modelo

 

Con una simple interface drag and drop, podemos definir el flujo de procesamiento del modelo.

 

flow.png

 

En nuestro primer nodo, debemos definir los datos que utilizaremos, lo que se hace fácilmente con un simple JSON cuya estructura la podemos tomar de la documentación disponible:

 

json.png

 

 

En nuestro caso el Id del video, el email a notificar cuando el job se complete y la url conteniendo el activo de datos a utilizar (en este caso nuestro video).

Asignamos las variables definidas en nuestro JSON al payload del modelo, seleccionamos el motor de procesamiento y capturamos los errores (en caso de que surgiera alguno).

Salvamos, hacemos deploy y ya nuestro modelo está listo para utilizar.

Así que pasamos a Alteryx.

Para ejecutar nuestros modelos, existen dos etapas:

  • La primera es disparar el job de ejecución al servidor
  • La segunda es leer los resultados.

Para ello, tenemos en el Gallery dos herramientas (https://gallery.alteryx.com/#!app/Veritone-aiWARE-Tools/5ff7444e0462d71998d0c4be), una para cada proceso.

Paso 1: Lanzamos el job al servidor:

 

Run AI.png

 

Seleccionamos desde dónde estaremos alimentando los datos, en este caso desde S3, pero podríamos estar subiendo archivos desde nuestra máquina, tomar datos desde una herramienta conectada al conector de input, o seleccionar archivos subidos anteriormente.

 

Luego le damos un nombre a nuestro proyecto (en este caso “Webinar Transcription”) y como seleccioné que iba a utilizar un video alojado en S3, debo colocar las credenciales de acceso.

 

Por último, en la parte inferior de la herramienta, seleccionaremos qué modelo vamos a utilizar. Disponemos de la opción de flujos standard o custom (creados por nosotros, como el que les comenté más arriba)

 

flowOptions.png

 

Y eso es todo lo que necesitamos, así que a ejecutar el workflow.

flowExecution.png

 

Paso 2: La segunda parte del ejemplo involucra el acceso a los resultados del modelo de transcripción, donde esperamos leer la transcripción del contenido.

Para eso, en un flujo nuevo, vamos a utilizar la segunda herramienta mencionada más arriba (Query aiWARE Data):

 

QueryAIware.png

 

Esta vez, vamos a seleccionar de nuestras opciones “List of Assets”, que corresponde a los resultados de los modelos ejecutados por nosotros previamente.

En caso de que exista algún proceso nuestro, todavía ejecutándose en el servidor, lo veríamos debajo de la sección “Pending AI Jobs”.

 

 

 

Un poco de parsing a los resultados recibidos y podemos acceder a toda la transcripción del audio.

 

transcripcion.png

 

Todo el texto en un campo único, o

 

transcripcionWbyW.png

 

Palabra por palabra, con los datos en milisegundos donde aparece en el audio, y el % de confianza de su traducción.

 

Un caso de uso simple, pero de altísimo valor para las empresas. Pensemos en la aplicación de estas soluciones a transcripción de llamadas de Call Center, testimonios judiciales, generación de manuales en base a dictado, subtitulado de videos, en fin, sus aplicaciones son infinitas.

 

En breve les estaré compartiendo otros casos de uso (reconocimiento facial en videos, reconocimiento de logotipos en fotos y videos y otros más) en los que estoy trabajando.

 

Espero que les sea útil y no duden en contactarse si necesitan ayuda/apoyo.

Saludos

 

Comentarios
aleja_ortegon
Átomo

Hola Como estas, @aguisande estuve intentando seguir tu flujo para probar una transcripción de un video en español pero lastimosamente no lo consigo los resultados me salen en ingles y aislados del audio, podrías orientarme como conseguir la transcripción de audios en español? quedo super atenta

Aguisande
15 - Aurora
15 - Aurora

Hola @aleja_ortegon 

Para poder realizar lo que necesitas, lo que debes hacer es crear en Automate Studio el flujo de transcripción, con el Engine de español (todos los ejemplos por defecto, son en inglés).

 

Por lo que debes meterete a Veritone, crear un nuevo flujo en Automate Studio (te recomiendo que utilices el que ya existe allí como template) y configurar el engine de traducción (en el nodo run transcription) con el motor de transcripción de español.

 

aleja_ortegon
Átomo

Muchisimas gracias por tu respuesta @aguisande voy a intentar probar desde el flujo en Automate Studio, sabes si existe algun recurso para entender como manipular los flujos?

Aguisande
15 - Aurora
15 - Aurora

Acá puedes encontrar casi todo lo necesario: https://docs.veritone.com/#/overview/

Etiquetas