Cordova | Obtenga transmisión en vivo desde el micrófono en iOS

Estoy intentando crear una aplicación de calendar de voz que necesite usar transmisión en vivo desde el micrófono para el reconocimiento de voz.

Entonces tienes un button que comienza a escuchar el micrófono y se detiene automáticamente cuando el usuario deja de hablar.

Ya he explorado Cordova Media API que me permite grabar los datos en un file WAV. Esto funciona, pero hace que el process sea muy lento, ya que tengo que esperar a que termine la grabación.

Utilicé el https://api.ai como punto de partida para build la primera versión de la aplicación que funciona bastante bien. ¡Se ocupó de toda la parte "de escuchar"!

La siguiente fase para mí es la integración con unas pocas API de reconocimiento de voz diferentes.

El problema principal para mí ha sido la falta de habilidades de desarrollo nativo, entonces ¿hay algún complemento de cordova que pueda ayudarme a hacer esto?

Actualización 1 – 1 de abril de 2016

Encontré esto https://subvisual.co/blog/posts/39-tutorial-html-audio-capture-streaming-to-node-js-no-browser-extensions Trataré de implementar esto en cordova a través de webrtc.


Actualización 2 – 1 de abril de 2016

Instalado https://github.com/eface2face/cordova-plugin-iosrtc para utilizar webrtc


Actualización 3 – 2 de abril de 2016

¡Atascado en AudioContext.createMediaStreamSource no es una function en iOS! AudioContext.createMediaStreamSource alternativa para iOS?


Actualización del 4 al 6 de abril de 2016

Going Native: ¡es hora de aprender a desarrollar iOS!

Lamento escuchar que renunció a Cordova, pero si todavía está interesado: he creado un complemento cordova para iOS y Android, que le permite capturar datos de micrófono y reenviarlo a la capa web de su aplicación. Puede confiar en la API de audio web para manejar el sonido entrante, o usar cualquier otra forma de codificar y save los datos de sonido sin procesar:

https://github.com/edimuj/cordova-plugin-audioinput

Ejemplo de uso:

 function onAudioInput( evt ) { // 'evt.data' is an integer array containing raw audio data console.log( "Audio data received: " + evt.data.length + " samples" ); // ... do something with the evt.data array ... } // Listen to audioinput events window.addEventListener( "audioinput", onAudioInput, false ); // Start capturing audio from the microphone audioinput.start();