2016-04-01 5 views
3

Ich versuche, eine Voice-Kalender-App zu bauen, die Livestream aus dem Mikrofon für die Spracherkennung verwenden muss.Cordova | Holen Sie sich Live-Stream von Mikrofon auf iOS

Sie haben also eine Taste, die das Mikrofon hört und automatisch stoppt, wenn der Benutzer aufhört zu sprechen.

Ich habe Cordova Media API bereits untersucht, die mir ermöglicht, die Daten in einer WAV-Datei aufzuzeichnen. Dies funktioniert aber macht den Prozess sehr langsam, da ich auf die Aufnahme warten muss.

Ich habe die https://api.ai als Ausgangspunkt verwendet, um die erste Version der App zu bauen, die recht gut funktioniert. Es hat sich um den "hörenden" Teil gekümmert!

Nächste Phase für mich ist die Integration mit ein paar verschiedenen Spracherkennung APIs.

Das Hauptproblem für mich war der Mangel an nativen Entwicklungsfähigkeiten, also gibt es irgendwelche Cordova Plugins, die mir dabei helfen können?

Update 1 - 1. April 2016

Fand dieses https://subvisual.co/blog/posts/39-tutorial-html-audio-capture-streaming-to-node-js-no-browser-extensions wird versuchen, dies durch WebRTC in cordova zu implementieren.


Update 2 - 1. April 2016

https://github.com/eface2face/cordova-plugin-iosrtc installiert WebRTC


Update 3 zu nutzen - 2. April 2016

bei AudioContext.createMediaStreamSource Fest ist keine Funktion auf iOS! AudioContext.createMediaStreamSource alternative for iOS?


Update 4 - 6. April 2016

gehen Native - Zeit iOS-Entwicklung zu lernen!

Antwort

7

Es tut uns leid zu hören, dass Sie Cordova aufgegeben haben, aber wenn Sie noch interessiert sind: Ich habe ein Cordova Plugin für iOS und Android entwickelt, mit dem Sie Mikrofondaten erfassen und an die Webebene Ihrer Anwendung weiterleiten können . Sie können entweder auf dem Web Audio API verlassen, um den ankommenden Ton, oder verwenden Sie eine andere Art und Weise zu kodieren, und speichern Sie die rohen Tondaten zu handhaben:

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

Beispiel Nutzung:

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

Können Sie nach Ihr Code außerhalb des Linkformats? – cdomination

+1

Sicher, ich habe ein Codebeispiel in den Beitrag aufgenommen. – Edin

+0

Danke. Dies ist nur die StackOverflow-Etikette, da Links oft veraltet/unbrauchbar werden, wenn sich die URL ändert, also behalte das für zukünftige Beiträge im Hinterkopf. – cdomination

Verwandte Themen