Generative AI - Speech to Text

Generative AI - Speech to Text

Generative AI (o GenAI) es una rama de la Inteligencia Artificial centrada en la creación de nuevos datos a partir de otros ya existentes. Esto se puede hacer de varias maneras como generar texto, imágenes, audio o video, entre otras.

Cabe resaltar que dentro de las bondades del GenAI de Google es que nos permite tomar datos propios para el reentrenamiento y de forma aislada a modelos públicos. Esto quiere decir que podemos reentrenar un modelo de chatbot con datos privados, y el bot podrá responder con base en lo aprendido, pero de forma privada no utilizará lo que aprendió de nuestra documentación para otras personas. Este detalle es clave para aquellas empresas que desean utilizar la AI de manera interna sin riesgos de que se filtre información sensible.

Dentro de las posibilidades tenemos Speech-to-text, una aplicación de Generative AI que se utiliza para convertir audios a texto. Esto se puede hacer de varias maneras, pero la mayoría de los sistemas de speech-to-text actuales utilizan un modelo de aprendizaje automático para aprender la relación entre los audios y el texto. Por ende, no tenemos que programar todo el modelo de 0, sino que utilizamos uno ya entrenado para pasarle nuestros archivos y obtener los resultados que necesitamos.

Ventajas del speech to text generativo

El speech-to-text generativo tiene una serie de ventajas sobre los sistemas de speech-to-text tradicionales. Estas ventajas incluyen:

  • Mayor precisión, incluso en entornos ruidosos.
  • Capacidad de transcribir una gama más amplia de acentos y dialectos.
  • Capacidad de entender y transcribir lenguaje complejo y matizado.
  • Capacidad de transcribir audio en tiempo real.

¿Qué otra opción ofrece Google?

Además de la solución dentro de GenAI está el Speech-to-Text como módulo aparte, el cual funciona excelentemente, pero tiene la particularidad de que posee menos características a configurar. Asimismo, lleva más tiempo en acción por lo que los resultados están respaldados por cientos de miles de horas ya trabajadas.

Otra gran diferencia radica en que el modelo de GenAI posee una opción dentro de la propia UI de Google Cloud que nos permite tocar parámetros avanzados gracias a su función de Speech Studio. Esta versión actualmente soporta únicamente text-to-speech, pero con una series de configuraciones sencillas pero a su vez que cambian mucho el resultado, como el Pitch, la ganancia de volumen e incluso el sample rate (Hertz).

Usos del speech-to-text generativo

El speech-to-text generativo se puede utilizar para una gran serie de tareas, incluyendo:

  • Transcribir entrevistas, conferencias y otros audios.
  • Crear subtítulos y transcripciones para vídeos.
  • Proporcionar transcripción en tiempo real para personas con discapacidades.
  • Desarrollar nuevas aplicaciones con voz.

Ejemplos de uso del speech-to-text generativo

Aquí podremos ver algunos ejemplos específicos de cómo se puede utilizar el speech-to-text generativo:

  • Un periodista puede utilizar el speech-to-text generativo para transcribir entrevistas con fuentes de forma rápida y precisa.
  • Un profesor puede utilizar el speech-to-text generativo para crear subtítulos para sus vídeos de conferencias, para que los estudiantes con discapacidades puedan seguirlos.
  • Un desarrollador de software puede utilizar el speech-to-text generativo para desarrollar nuevas aplicaciones con voz, como un asistente virtual que pueda entender y responder a preguntas complejas.

Ejemplo de código

Haremos un ejemplo interactuando 100% con la nube.

Nota: Cualquiera puede hacer este ejemplo en una consola de GCP a coste $0 ya que no nos salimos de la capa gratuita que ofrece Google.

Además, para este ejemplo se requiere un conocimiento básico de la nube de Google, sobre todo para la autenticación desde el código, aunque para pequeñas pruebas se puede utilizar la propia UI de Google Cloud Platform.

Code

Explicación del código

Este código funciona de la siguiente manera:

  • En primer lugar, se configuran las credenciales de Cloud Platform y se crean los objetos de cliente de Cloud Speech-to-Text y BigQuery.
  • A continuación, se crea una consulta para crear la tabla de BigQuery que se utilizará para almacenar los resultados.
  • Seguidamente, se recorre una lista de archivos de audio.
  • Para cada archivo de audio, se carga el archivo y se crea una solicitud de reconocimiento de voz.
  • Se envía la solicitud y se obtiene la transcripción.
  • Por último, se guarda la transcripción en la tabla de BigQuery.

Para ejecutar este código, solo basta con copiarlo y pegarlo en un archivo Python. Para ejecutar el archivo se debe utilizar el siguiente comando:

python audio_transcription.py

Este comando generará el siguiente resultados en la terminal:

Los resultados se han almacenado en BigQuery.

Por supuesto, puedes modificar este código para adaptarlo a tus necesidades específicas. Por ejemplo, puedes cambiar el idioma de la transcripción, el formato de la fecha y hora o el nombre de la tabla de BigQuery.

Ahora dejo algunos consejos para mejorar la precisión de la transcripción:

  • Asegúrate de que los archivos de audio estén limpios y sin ruido.
  • Utiliza un micrófono de buena calidad.
  • Si el audio es de una persona que habla con acento, puedes intentar entrenar un modelo de speech to text personalizado.

Puntos a tener en cuenta

Si bien la solución de Speech-to-Text está muy pulida a lo largo de los años y actualmente nos da al alcance de la mano un sin fin de posibilidades, hay que tener en cuenta ciertos factores, sobre todo cuando queremos generar un producto/solución basado en esto.

En primera instancia- necesitaremos contar con experiencia en la nube y programando, ya que para que la solución que hagamos sea robusta y escalable requiere de una buena infraestructura.

Como parámetros básicos a tener en cuenta tenemos:

  • Contar con sitio donde almacenar los archivos de audios que luego serán procesados.
  • Una base de datos donde almacenar los resultados de la transcripción.
  • Un microservicio que maneje todo el proceso.
  • Recibir los archivos de audios y almacenarlos en la nube.
  • Tomar cada archivo de audio y llamando a la API de Speech to Text, procesarlo, limpiar el resultado y finalmente almacenarlo en la base de datos.
  • Eliminar o mover de localización el archivo de audio, para no mezclar los procesados de los que están por procesar.
  • Configuración de una base de datos donde almacenar el texto obtenido de los audios.
  • Configurar la conexión entre donde recibiremos los archivos de audio y el lugar donde los almacenaremos.

Herramientas a utilizar (a modo de ejemplo):

  • BigQuery como Datawarehouse.
  • Cloud Storage como lugar donde almacenar los archivos de audio.
  • Cloud Run o Cloud Functions, para poder tener en la nube el micro servicio o funcionalidad que se encarga de gestionar todo el proceso de llamado de APIs.
  • Al menos especialista en la configuración del modelo de Speech-to-Text, para optimizar la performance y obtener los mejores resultados en las transcripciones.
  • Capacidad de jugar con los audios, y con esto me refiero a entre otras cosas cambiar el formato, e incluso mejorar la calidad, ya que esto ayuda drásticamente en la calidad de los resultados obtenidos.

Por último pero no menos importante, el factor tiempo es la clave de todo lo anteriormente mencionado, ya que el desarrollo conlleva 3 frases mínimas y obligatorias: el desarrollo, el testeo y la puesta en producción.

La segunda es la etapa más larga por el hecho de que son muchos los parámetros a tener en cuenta para mejorar los resultados. A ello se suma la optimización de la infraestructura para la reducción de costes y la velocidad de procesado.

Con todos estos factores en mente, resaltando equipo, conocimiento y tiempo, podemos abordar un proyecto de pequeña a gran escala utilizando esta gran solución.

Conclusiones

El speech-to-text generativo es una tecnología nueva y poderosa con el potencial de transformar la forma en que interactuamos con los ordenadores y los dispositivos móviles. A medida que continúe desarrollándose, podemos esperar ver que se utilice de formas aún más innovadoras y útiles.

Quiero agregar que esta solución podrá ser extremadamente potente, pero el explotarla y obtener los mayores beneficios dependerá de nosotros, los usuarios que elaboramos productos y soluciones de todos tipos, integrándola a muchos aspectos de la vida cotidiana, tanto profesional como personal.

💡
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Listopro.

Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.