2016-04-01 1 views
3

J'essaie de créer une application de calendrier vocal qui doit utiliser le flux en direct du microphone pour la reconnaissance vocale.Cordova | Obtenir le flux en direct du microphone sur iOS

Vous avez donc un bouton qui commence à écouter le microphone et s'arrête automatiquement lorsque l'utilisateur arrête de parler.

J'ai déjà exploré Cordova Media API qui me permet d'enregistrer les données dans un fichier wav. Cela fonctionne mais rend le processus très lent car j'ai besoin d'attendre que l'enregistrement soit terminé.

J'ai utilisé le https://api.ai comme point de départ pour construire la 1ère version de l'application qui fonctionne plutôt bien. Il a pris soin de toute la partie "écoute"!

La phase suivante pour moi est d'intégrer avec quelques API de reconnaissance vocale différentes.

Le problème majeur pour moi a été le manque de compétences de développement natif, donc y a-t-il des plugins cordova qui peuvent m'aider à faire cela?

Mise à jour 1 - 1er Avril 2016

Trouvé ce https://subvisual.co/blog/posts/39-tutorial-html-audio-capture-streaming-to-node-js-no-browser-extensions va essayer de mettre en œuvre ce dans cordova par WebRTC.


Mise à jour 2 - 1er Avril 2016

installé https://github.com/eface2face/cordova-plugin-iosrtc d'utiliser WebRTC


Mise à jour 3 - 2ème Avril 2016

Coincé à AudioContext.createMediaStreamSource est pas une fonction sur iOS! AudioContext.createMediaStreamSource alternative for iOS?


Update 4 - 6ème Avril 2016

Going Native - Le temps d'apprendre iOS développement!

Répondre

7

Désolé d'apprendre que vous avez abandonné Cordova, mais si vous êtes toujours intéressé: J'ai créé un plugin cordova pour iOS et Android, qui vous permet de capturer des données de microphone et de les transférer vers la couche Web de votre application . Vous pouvez compter sur l'API Web Audio pour gérer le son entrant ou utiliser tout autre moyen d'encoder et enregistrer les données de son brut:

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

Exemple d'utilisation:

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(); 
+0

Pouvez-vous poster votre code en format de lien? – cdomination

+1

Bien sûr, j'ai inclus un exemple de code dans le message. – Edin

+0

Merci. Ceci est juste l'étiquette StackOverflow, car les liens peuvent souvent devenir obsolètes/inutilisables si l'URL change, alors gardez cela à l'esprit pour les prochains messages – cdomination