Frage von Dermanilor, 47

Server-seitige Berarbeitung?

Hey. Zurzeit programmiere ich eine Art Sprachassistenten mit JavaScript und HTML. Sprachaufnahme, Erkennung, und halt Abgleich mit vorgefertigten Sätzen funktioniert schon. (z.B. einfache Antworten auf Anfragen wie "Hallo"). Da ich aber gerne Schlagwörter identifizieren und irrelevante Wörter entfernen möchte um so komplexere Anfragen zu verarbeiten, reicht der Client meiner Meinung nach nicht aus, da der Prozess aufwendig ist und viel Code geladen werden müsste. Aber hat einer ne Ahnung, wie ich den erkannten Text zum Server bringe und ihn dort einbinden könnte, bzw. welche Programmiersprache ich auf dem (Linuxbasierten) Server verwenden könnte? Danke im Vorraus!

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Stunter, 32

Für serverseitige Programmierung ist PHP die am häufigsten genutzte Sprache. Allerdings sieht mir dein Projekt sehr stark nach einer künstlichen Intelligenz aus. Dafür würde ich Sprachen wie C++ empfehlen und damit ein neurales Netzwerk aufbauen.

 ~ Stunter

Kommentar von Dermanilor ,

Weißt du zufällig, wie ich die Daten von PHP in C++ und zurück kriege?

Kommentar von Stunter ,

Was meinst du genau? Meinst du wie du die Daten von C++ wieder in den Browser bekommst?

Kommentar von Dermanilor ,

Also, ich nehme ja mit ajax den Satz und sende ihn mit GET an das Php-Skript, welches ja auf dem Apache-Server läuft. Aber wie rufe ich nun den C++ Code auf und übermittle ihm den Satz?

Kommentar von Stunter ,

Theoretisch brauchst du gar kein PHP. Ich würde es am besten so machen, dass das C++ Programm die ganze Zeit einen bestimmten Port überwacht. Mit Ajax kannst du dann was an diesen Port senden und das Programm verarbeitet das.

Antwort
von Unsinkable2, 23

Soweit du die Webkit Speech Recognition oder die Web Speech benutzt, ist das Zeug noch heftig experimentell und derzeit bestenfalls Spielzeug.

Da du bereits JavaScript zur Verarbeitung nutzt, hilft dir Ajax weiter, um den Weg zum Server (und zurück) zu finden. (Details und Beispiele findest du zuhauf bei Google; suche einfach nach "Ajax Upload".)

Auf dem Server sollte es dann allerdings "so schnell wie möglich" gehen, weil der Transportweg ("Upload der Sprachaufnahme", "Download der Reaktionen") schon empfindlich lange dauern wird. 

Insofern sind wohl C und/oder C++ die Waffen deiner Wahl. Für C++ gibt's da schon Werkzeuge, die dir sicherlich weiterhelfen können. Allerdings wird die Einarbeitung, wenn du noch gar nix mit C++ zu tun hattest, je nach beabsichtigter Komplexität einige Monate (eher Jahre) verschlingen.

Auch Python kannst du dir mal näher anschauen. Es bringt bereits eine Spracherkennung mit. Vielleicht ist das ja was für deine Zwecke?

Und als vollständige Alternative wäre auch Java möglich. Hier bist du etwas freier, wenn es um Client- bzw. Server-seitige Verarbeitung geht. Ob du dabei allerdings Zeitvorteile bekommst, hängt stark von der beabsichtigten Art und Tiefe der Verarbeitung ab. 

-------------------

Suche bei Google nach

  • Speech Recognition Library
  • Speech Recognition API
  • Java Speech API
  • Python Speech Recognition Library
  • (und ähnlichen Begriffs-Kombinationen)

Da wirst du schnell fündig und kannst dich über Umfang, Schwierigkeit, etc. aller möglichen Wege informieren.

Kommentar von Dermanilor ,

Danke für die ausführliche Antwort. Die Spracherkennung ist hierbei nicht das Problem, da es an einen Dienst geschickt wird, der die Sprache ausreichend gut erkennt (wit.ai). Problem ist nur der Transport des Satzes zu einem Verarbeitungsserver und zurück. Trotzdem vielen Dank!

Kommentar von Unsinkable2 ,

Weißt du zufällig, wie ich die Daten von PHP in C++ und zurück kriege?

Du bastelst dir mit C++ ein PHP-Modul, das als Schnittstelle dient. 

Sehr viel einfacher und handlicher ist es, wenn du die Daten als Dateien ablegst und von PHP bzw. C++ unabhängig verarbeiten lässt.

Problem ist nur der Transport des Satzes zu einem Verarbeitungsserver und zurück.

Ganz ehrlich: Ich verstehe deine Frage immer weniger. Der Hersteller gibt dir doch schon Code-Beispiele, wie es geht. Experimentiere damit herum oder lies das (ziemlich übersichtliche) Handbuch!

Kommentar von Dermanilor ,

Der Hersteller kann mir hierbei ber überhaupt nicht helfen, denn sein Dienst funktioniert ja perfekt. Die  ganze Spracherkennung funktioniert, ich bekomme den Satz perfekt so, wie er eingesprochen wurde. Aber zwecks Performance will ich die Suche nach Schlagwörtern wie zum Bsp. "Suche nach" auf einen Server abschieben

Kommentar von Unsinkable2 ,

zwecks Performance

Das wird dir nicht gelingen. Im Gegenteil. Durch den erforderlichen fetten Traffic belastest du die Leitung massiv (etwa mit Blick auf begrenzte Volumina in Mobil-Verträgen) und verlangsamst gleichzeitig den Verarbeitungsprozess, weil der Server andauernd Daten verarbeiten soll, auf die er - aus seiner Sicht - "ewig warten" muss.

Am Ende wird's eine ziemlich träge User-Experience.

Lösungsansatz: Verarbeite vor Ort, was du kannst! Erst, wenn du WIRKLICH ENTSCHEIDUNGEN treffen musst, schicke sie - und das so unmittelbar und komprimiert wie möglich - zum Server.

Und wenn du den "Speech-2-Text"-Ansatz zur Verarbeitung wählst, brauchst du überhaupt nicht "viel Code laden". Konzentriere dich auf ein paar Dutzend oder ein paar Hundert Kommandos, die du im JavaScript verarbeitest und nur bei wirklichen Notwendigkeiten an den nächsten Server schickst.

Antwort
von LiFe0, 21

Php wird serverseitig ausgeführt, jedoch nur 1 mal beim seitenaufruf, sodass du AJAX verwenden wirst. Dies ist Javascript , das eine php seite aufruft und sich von dieser informationen holt, also vom server

Kommentar von Dermanilor ,

ajax kenne ich im Rahmen von js bereits. Aber wie bekomme ich die Daten von PhP z.B in ein C++ skript und wieder zurück zum Server?

Antwort
von Dermanilor, 10

Übrigens, auf https://lukesaltweather.github.io gibt's ne Demo!

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten