Transcripcion de ficheros de audio


Puede parecer algo anacrónico, pero  lo cierto es que probablemente el teclado y ratón tal como los conocemos  hoy en día tenga  sus días contados   gracias al espectacular avance  sufrido estos años   en apartado de  reconocimiento de voz   usando redes neuronales  claramente  propiciado  por en las ingentes subida de  capacidades de computo gracias al  Cloud  Commputing  ,el Big Data y el aprendizaje automático

Veamos algunas soluciones de reconocimiento de voz  liderado por grandes proveedores como pueden ser Google o IBM

speech-api-lead

Google Cloud Speech

En efecto desde Google proponen la API Speech de Google Cloud , la cual  permite que los desarrolladores conviertan audio en texto aplicando potentes modelos de redes neuronales en una API fácil de usar. La API Speech reconoce más de 80 idiomas y sus variantes para gestionar una clientela internacional. Asimismo, se puede filtrar el contenido inapropiado en los resultados de texto.

La API Speech de Cloud se tarifica por intervalos de 15 segundos de audio procesados después de los 60 primeros minutos, que son gratuitos.

USO MENSUAL PRECIO POR CADA 15 SEGUNDOS*
Hasta 60 minutos Gratuito
61 – 1.000.000 de minutos* 0,006 $

*Este precio es válido para aplicaciones de sistemas personales (por ejemplo, teléfonos, tablets, portátiles y ordenadores).  El uso mensual está limitado a un millón de minutos.

Se puede transcribir el texto que los usuarios dictan al micrófono de una aplicación, habilitar el control por voz o transcribir archivos de audio, entre muchas otras funciones.

La API Speech puede transmitir resultados de texto conforme vaya reconociendo el audio, de forma que el texto reconocido aparece inmediatamente mientras la persona habla  asi que consigue resultados de texto en tiempo real

De igual modo, la API puede reconocer el texto a partir del audio almacenado en un archivo pero solo si se tiene cuenta en Google Cloud.

Como   «truco» casero para  probar   la funcionalidad del API se  puede inyectar  el audio  ya grabado desde un dispositivo externo  por  medio de un cable de audio que lo  introduciría en el pc  seleccionando como dispositivo grabador la entrada de audio :debería funcionar exactamente igual que si hablamos por un micrófono

En el caso de que este validado contra Google  y  tenga cuenta en Google Cloud este paso se puede obviar porque se pueden subir directamente los ficheros que deseamos transcribir mediante la opción File Upload  teniendo en cuenta la limitación de 60 minutos en caso de no querer pasar por caja

Si quiere probar esta funcionalidad esta es la url : https://cloud.google.com/speech-to-text/

 

Como no podía ser de otra manera, también  es posible reconocer el audio subido en la solicitud e integrarlo en su almacenamiento de audio de Google Cloud Storage. 

Gracias a  la tecnología del aprendizaje automático ,se aplican los algoritmos más avanzados de redes neuronales del aprendizaje profundo al audio de sus ficheros  para conseguir un reconocimiento de voz de máxima precisión. Mencionar que como todos los  sistemas de aprendizaje con redes neuronales la precisión de la API Speech mejora con el tiempo, conforme perfeccionan la tecnología interna de reconocimiento de voz que usa los productos de Google.

No se necesitan pues  sistemas avanzados de procesamiento de señales ni reducción de ruido antes de enviar el audio a la API Speech. El servicio es capaz de procesar audio ruidoso procedente de diversos entornos de forma satisfactoria.

El reconocimiento de voz se puede adaptar al contexto suministrando un conjunto independiente de palabras clave con cada llamada a la API, lo que resulta especialmente útil para las situaciones de control de dispositivos y aplicaciones.

La API Speech es compatible con cualquier dispositivo que pueda enviar solicitudes REST o gRPC, incluidos teléfonos, ordenadores, tablets y dispositivos con Internet de las Cosas (por ejemplo, coches, televisores o altavoces).

CARACTERÍSTICAS DE LA API SPEECH

Conversión de voz en texto gracias al aprendizaje automático

El reconocimiento automático de voz (ASR) basado en redes neuronales de aprendizaje profundo dota a las   aplicaciones , la funcionalidad  de búsqueda por voz o transcripción de voz.Reconoce más de 80 idiomas y variantes, con un amplio vocabulario proporcionando resultados de reconocimiento mientras los usuarios siguen hablando.
Es posible personalizar el reconocimiento de voz según un contexto específico suministrando un conjunto de palabras y frases que tienen muchas probabilidades de aparecer. Esto resulta especialmente útil para añadir palabras y nombres personalizados al vocabulario, así como en situaciones de control por voz.
El sonido puede proceder del micrófono de una aplicación o de un archivo de audio grabado previamente. Se admiten diversas codificaciones de audio, como FLAC, AMR, PCMU y Linear-16.
Es capaz de procesar audio de diversos entornos ruidosos sin necesidad de reducción de ruido adicional así que puede filtrar contenido inapropiado en los resultados de texto para algunos idiomas.
El  API como vemos esta integrada:los archivos de audio se pueden subir en la solicitud o integrar en Google Cloud Storage.

Transcripción de archivos de audio cortos

Es muy sencillo transcribir un archivo de audio corto a texto utilizando el reconocimiento de voz sincrónico.

El reconocimiento de voz síncrona devuelve el texto reconocido para audio corto (menos de ~ 1 minuto) en la respuesta tan pronto como se procese(para procesar una solicitud de reconocimiento de voz para audio largo, use el Reconocimiento de voz asincrónico ).

El contenido de audio se puede enviar directamente a Cloud Speech-to-Text, o puede procesar contenido de audio que ya reside en Google Cloud Storage.

Speech-to-Text v1 se lanzó oficialmente y, en general, está disponible desde el extremo https://speech.googleapis.com/v1/speech . Las bibliotecas de cliente se lanzan como alfa y es probable que se modifiquen de formas incompatibles hacia atrás. Las bibliotecas del cliente actualmente no se recomiendan para uso de producción.

Estas muestras requieren que haya configurado gcloud y haya creado y activado una cuenta de servicio.

Realización de reconocimiento de voz síncrono en un archivo local

Aquí hay un ejemplo de cómo realizar el reconocimiento de voz sincrónico en un archivo de audio local mediantes comados de GCLOUD

Consulte el comando de recognize para obtener detalles completos.Para realizar el reconocimiento de voz en un archivo local, use la herramienta de línea de comandos de gcloud , pasando la ruta de archivo local del archivo para realizar el reconocimiento de voz.

 gcloud ml speech reconoce CAMINO-AL-LOCAL-FILE --language-code = 'en-US'

Si la solicitud es exitosa, el servidor devuelve una respuesta en formato JSON:

{
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.9840146,
          "transcript": "how old is the Brooklyn Bridge"
        }
      ]
    }
  ]
}

Realización de reconocimiento de voz síncrono en un archivo remoto

Para su comodidad, la API de voz a texto puede realizar el reconocimiento de voz sincrónico directamente en un archivo de audio ubicado en Google Cloud Storage, sin la necesidad de enviar el contenido del archivo de audio en el cuerpo de su solicitud.

Aquí hay un ejemplo de cómo realizar el reconocimiento de voz sincrónico en un archivo ubicado en Cloud Storage  usando comandos  GCLOUD

Consulte el comando de recognize para obtener detalles completos.Para realizar el reconocimiento de voz en un archivo local, use la herramienta de línea de comandos de gcloud , pasando la ruta de archivo local del archivo para realizar el reconocimiento de voz.

 gcloud ml speech reconoce 'gs: //cloud-samples-tests/speech/brooklyn.flac' \
 --language-code = 'en-US'

Si la solicitud es exitosa, el servidor devuelve una respuesta en formato JSON:

{
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.9840146,
          "transcript": "how old is the Brooklyn Bridge"
        }
      ]
    }
  ]
}

Mas  informacion en https://cloud.google.com/speech-to-text/docs/sync-recognize?hl=es#speech-sync-recognize-gcloud

IBM

También esta disponible para testeo  Watson de IBM, que permite  dictado a texto

El servicio IBM Watson Speech to Text utiliza capacidades de reconocimiento de voz para convertir el árabe, el inglés, el español, el francés, el portugués de Brasil, el japonés y el mandarín en texto.Este sistema por el momento se usa o para fines de demostración y no está destinado a procesar datos personales ,así  que no se deben ingresar datos personales en este sistema, ya que puede no tener los controles necesarios para cumplir con los requisitos del Reglamento general de protección de datos (UE) 2016/679.

Lo mas destacable DE Watson es asimismo la capacidad de transcribir audio done se puede usa su micrófono para grabar audio o cargar audio pregrabado (.mp3, .mpeg, .wav, .flac o .opus solamente).

Incluso puede reproduzca uno de los archivos de audio de muestra para probar el servicio , ahora eso si los archivos de audio de muestra de banda ancha son en inglés de EE. UU y están cubiertos por la licencia de Creative Commons.

El resultado devuelto incluye el texto reconocido, las alternativas de palabras y las palabras clave moteadas. Algunos modelos pueden detectar múltiples altavoces; esto puede ralentizar el rendimiento.

A continuación esta es la url para probar el servicio en modo  demo: https://speech-to-text-demo.ng.bluemix.net/

 

En teoría los primeros 1000 minutos al mes son gratis en el servicio estándar,   así que el limite es muy superior de uso gratuito al de Google .

¿Le parece mejor opción la de IBM  que la de Google?¿Conoce algún otro servicio gratuito que podamos usar desde nuestras apps? Sin duda  la carrera por copar este mercado no acaba mas que empezar

 

Como publicar su app en Amazon parte 2


En un post anterior veimos como registrarnos como desarrollador en Amazon ,así como realizar las primeras pruebas de compatibilidad de nuestro apk

Si todo ha ido bien  al entrar nos debería aparecer  la primera aplicación que subimos para probar la compatibilidad de esta con amazon

Deberia aparecer  algo similar  a esto

notifications.png

En caso de que no aparecer nuestra aplicación , en realidad no hay problema, podemos volver a subir ésta pulsando el botón Add a New App y  a seguir  los pasos que vamos a comentar.

Aspectos generales

En el primer apartado  tendremos que elegir el titulo la categorización y otros aspectos esenciales de la aplicación

aspectos generales.png

Precios

Otro aspecto es elegir si vamos a monetizar la aplicación , parametrización que se realiza justamente en esta opción

 

aviliabulity.png

Descripción

En este apartado  es realmente donde escribimos el texto que publicitara nuestra app en el market de Amazon.

Aquí dado el mercado de la procedencia de Amazon(USA)  , deberemos cumplimentar la descripción ,características y las etiquetas en ingles ( se puede usar cualqueir traductor online) dado que este es el idioma principal y por el momento no se puede cambiar

 

descriptyon

Afortunadamente pulsando en Add Translation podemos añadir una traducción en el idioma de Cervantes  para los apartados anteriormente citados

Iconos

Amazon nos va  a pedir aparte de la imagen del icono incluida en el apk  , tambien otra serie de imágenes en diferentes  formatos , las cuales  seran  mostrada en el propio market

Las directrices de activos de imagen son las siguientes:

  • Pequeño icono114 x 114px PNG (con transparencia)
  • Icono grande 512 x 512px PNG (con transparencia)
  • Capturas de pantalla:Entre 3 y 10 PNGs o JPGs 800 x 480px, 1024 x 600px, 1280 x 720px,1280 x 800px, 1920 x 1080px, 1920 x 1200px, 2560 x 1600px (retrato o paisaje)
  • Imagen promocional (recomendada)1024 x 500px (sólo en el paisaje) PNG o JPG
  • Video (s) :hasta 5 MPEG-2, WMV, MOV, FLV, AVI o H.264 MPEG-4 720 – 1080px de ancho (4: 3 o 16: 9); 1200 kbps o superior    los archivos SFTP mayores de 150 MB via s SFTP

Asimismo  nos piden para la Infraestructura de Fire TV las siguientes  directrices de activos de imagen:

  • Icono de la aplicación 1280 x 720px PNG (sin transparencia)
  • Capturas de pantalla Entre 3 y 10 JPG o PNG (sin transparencia) 1920 x 1080px (paisaje)
  • Imagen de fondo :1920 x 1080px JPG o PNG (sin transparencia)
  • Contenido destacado Logotipo (recomendado)640 x 260px PNG (transparencia opcional)
  • Contenido destacado Fondo (recomendado)1920 x 720px JPG o PNG (sin transparencia)

images.png

Clasificación

Aqui toca  especificar si nuestra aplicación toca tema sensibles (violencia, sexo,etc)

subjecy.png

Final

Por ultimo en esta pantalla podemos cambiar el apk , ver todos los dispositivos soportados los permisos de alplicacion ,version, etc

final.png

Por cierto antes de enviar la aplicación, asegúrese de que su aplicación cumpla los siguientes requisitos y directrices:

  • Contenido de la aplicación: su aplicación cumple los Requisitos de la política de contenido de Amazon Appstore.
  • Imágenes: Usted ha creado y recopilado las imágenes necesarias para el listado de su aplicación, tal y como se describe en Image Guidelines for Amazon Appstore Submission.
  • Pruebas: ha probado su aplicación y su aplicación pasa los casos de prueba descritos en Criterios de prueba para aplicaciones de Amazon Appstore.
  • Orientación por dispositivo: especifique qué dispositivos va a segmentar con su aplicación en su archivo de manifiesto de Android.
  • Ubicación de la instalación: su archivo de manifiesto de Android especifica la ubicación de instalación de su aplicación en los dispositivos Fire TV y Fire tablet. Para la mayoría de las aplicaciones, la configuración de este valor en Almacenamiento externo (preferExternal) proporcionará una mejor experiencia a los usuarios de la aplicación.
  • Perfil de seguridad (sólo GameCircle o dispositivos de dispositivo de Amazon): si su aplicación utiliza GameCircle o API de mensajería de dispositivos de Amazon, prepárese para asociar su aplicación con un perfil de seguridad como parte del proceso de envío.
  • Compile Errors (Errores de compilación): si la aplicación hace referencia a casi 65.000 métodos, tendrá que reducir el número de métodos a los que se hace referencia para evitar errores de compilación cuando envíe su aplicación. Consulte Evitar errores de compilación al enviar su aplicación.