Jump to content
Unity Insider Forum

Bild- und Spracherkennung in Unity


Kokujou

Recommended Posts

Hi! möchte eine cross-platform Anwendung erstellen auf der ich sowohl Sprache als auch Texterkenne und zwar sollen das lediglich einzelne Wörter und keine Sätze sein.

Jetzt wühle ich mich seit ewigkeiten durch das Archiv aber alles was ich finde funktioniert garnicht erst oder ist Windows-Spezifisch. Das kann doch nicht sein oder? Wir reden hier von Unity! DA muss doch was da sein! :)

Falls nicht kennt sich ja vielleicht jemand mit Xamarin aus, das wäre nämlich meine 2. Wahl. Oder sonst irgendeinen Weg das in eine cross-platform App einzubinden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich vermute es gibt Opensource-Projekte in C C++ oder C#. Aus C oder C++ kann man in Windows DLLs erzeugen damit auch in Unity verwenden.. Für andere Plattformen muss man ggf. je Plattform compilieren ...

http://blog.neospeech.com/top-5-open-source-speech-recognition-toolkits/

C oder C++ in Unity:
https://docs.unity3d.com/Manual/NativePlugins.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Problem ist, ich hab es so versucht. Ich habe IronOcr benutzt. Aber es war leider nicht machbar. Die ganzen Abhängigkeiten müssen ja dann auch rein und Magick.NET konnte ich gerade so noch finen aber was dann kam war einfach nicht findbar. Zumindest nicht das richtige.

Und die System.Speech Variante von Microsoft funktioniert für Unity leider auch nicht da weißt ich nichtmal wieso. Angeblich fehlt bei irgendeiner DLL irgendeine Registry-basierte Zeile weil sie bei Mono und Microsoft irgendwie unterschiedlich ist.

Clous basiert klingt interessant das hatte ich auch schon überlegt. Funktioniert das dann so dass man das Bild praktisch hochlädt und den Text zurückbekommt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Übrigens meinte ich mit Texterkennung Handschrift. Besonders wichtig ist dass Japanisch unterstützt wird. ich möchte eine App zum japanisch Lernen entwickeln in der man Handschriftlich die Zeichen lernt und sie natürlcih auch sprechen lernt.

Bei der Microsoft Sprach API unter dem Link den du mir gegeben hast war z.B. Japanisch bei der Spracherkennung nicht dabei und ich glaub Texterkennung war keine Handschrift-Erkennung dabei.

Vielleicht könnt ihr mir mal erklären was so kompliziert daran ist das für cross-platform zu machen? ist ja nicht so als würde man auf OS-Ebene Arbeiten oder Dateisystemspezifisch unterscheiden müssen. Das ist doch "nur" Mathe! Bild eingeben -> Mathe machen -> Text ausgeben. Ok es sind vielleicht ne Millionen zeilen Mathe aber trotzdem.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ansonsten bei Problemen mit den DLLs könnte man theoretisch ja auch eine Art Server erzeugen (der wird dann komplett über C oder C++ erzeugt) und Unity mit diesem Server kommunizieren lassen. Dieser Server würde dann lokal auf dem Gerät laufen und Unity würde mit diesem Server kommunizieren. Der Server würde dabei die Texterkennung durchführen und Daten von Unity bekommen und auch wieder an Unity versenden. Macht aber auch Arbeit, da man dann noch eine Serverkommunikation aufbauen muss, allerdings stellt man so sicher, daß man sich die Texterkennung builden lässt, da sie sich nicht mit der "Unitywelt" vermischen muss. Ein 2. Problem könnte sein, daß man auf Smartphones etc. keine lokalen Server (oder Dienste) starten darf, aber da kenne ich mich nicht aus... Zudem muss man auch hier für jede Plattform ggf. einen eigenen Server erstellen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gibts denn crossplatform server? soll ja bestenfalls der gleiche code für jedes OS sein. Das ist ja das Ziel der Übung in meinem Kurs ^^
Wirklich interessieren würde mich wirklich eine Cloud-basierte Lösung. Denn ich muss ja auch apache tomcat benutzen um irgendwie (ich hab echt 0 ahnung was ich da mache XD ) ne serverkommunikation mit meiner MySQL Datenbank zu machen ( voll sinnvol 2 Server laufen zu lassen XD so ein nonsens ). Dann könnte ich da auch gleich Bilder abfangen und damit irgendwie n OCR machen. Die frage ist nur ob das theoretisch möglich ist nen OCR auf nem Server laufen zu lassen.

 

am liebsten wäre es mir wenn es wirklich was für unity und eben crossplatform gäbe. Ich hab schon mal an den Support von ein paar Leuten geschrieben aber eh man da was zurück bekommt.. nunja. Wisst ihr vielleicht, es gibt ja auch UnityEngine.Windows.Speech oder so. Klingt nicht so aber ist es nicht vielleicht doch Multiplattform tauglich? Man muss doch nur n Wave File einlesen warum ist das bitte Windows only?! *heul*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Unity ist ja auch nicht wirklich cross plattform. Unity erstellt ja auch für jede Plattform ein eigenes Build. Aber am einfachsten ist denke ich eine Online-Kommunikation zu einem Google- oder Microsoft-Service. Aber dann geht die Anwendung eben auch nur online.

Speech to Text:
https://assetstore.unity.com/packages/tools/audio/mobile-speech-recognizer-73036

Texterkennung:
https://answers.unity.com/questions/1360940/how-do-i-implement-ocr-text-recognition-in-unity.html

Aber ich denke wie gesagt, es wird keine einfache Lösung geben. Es ist ein komplexes Thema, vor allem wenn es um "exotischere" Sprachen geht. Ich denke für English gibt es am meisten.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

okay und jetzt bitte in Kostenlos :P

Danke auf jeden Fall ich verfolge die Cloud-basierte methode weiter. Es reicht ja wenn ich es auf nem localhost Server zum laufen kriege. Apache. Tomcat. Hab ich ja alles eh. Würde sich anbieten. Ist zwar n bisl ungünstig aber wäre immerhin cross platform. Und ja ich nehme an Xamarin erstellt auch jedes mal nen separaten Build aber es ist halt ein Code und einmal Projektdateien.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hah! Tesseract! Das war das was bei IronOcr nicht gefunden werden konnte. Aber nicht das normale Tesseract sondern irgendeine 4.0.x Version obwohl es laut google erst auf Version 3 ist. Ich habs einfach nicht finden können, falls ihr was findet könnt ihr ja mal bescheid sagen.

Das schlimme ist: es gibt haufenweise einfache Lösungen, so einfach wie nur irgendmöglich. Sie sind nur allesamt nicht mit dne ganzen Engines und crossplatform Kompatibel. Gerade ohrfeige ich mich dass ich nicht nur Android genommen hab. Da gäbe es sicher einfache Lösungen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...