SOX: von Windows über SSH auf PI schreiben

  • Hallo Raspberry Freunde !

    Ich versuche gerade eine Sprachsteuerung für meinen PI einzurichten. Da ich aber kein Geld für eine Webcam mit Mirco bzw Mirco ausgeben möchte, dachte ich mir, ich nutze einfach die Integrierte Webcam bzw das Mic meines Laptops. Nun habe ich etwas gegoogelt und auch mal in ein paar Büchern gesucht.

    Ich habe nun ein Beispiel gefunden in dem beschrieben wird wie man mittels SOX und SSH, das Mic eines PI´s nutzt um eine Aufnahme zu starten und diese mittels SSH auf eine Windows PC spiechert.

    Das ist genau das was ich brauche! Nur eben anders rum also ich möchte das Mic des Windows PC´s nutzen und die Aufnahme auf dem PI speichern auch mit SOX und SSH.

    Ich habe nun folgende gemacht.

    1. Ich habe einen SSH Client auf meine Windows PC erstellt. Sowie Sox für Windows geladen und installiert
    2. Ich verbinde mich mit dem PI über SSH auf den Windwos PC
    3. Ich Starte SOX das auf dem Windows PC installiert ist und starte eine Aufnahme.

    (Wobei mir hier aufgefallen ist, es scheinen nicht alle Kommandos von SOX auf Windows zu funktionieren ? Wenn ich zum Beispiel "sox rec newfile.wav" eingebe (so wie es in der Doku genannt wird ) bekomme ich eine Fehlermeldung, dir mir sagt das, dass Inputfile newfile.wav nicht gelesen werden kann.
    Um eine Aufnahme zu starten muss ich eingeben sox.exe -d newfile.wav das Problem ist dann allerdings das ich die Aufnahme nicht beenden kann. In der Dokumentation von Sox steht, das das Stopen über Keyboard Interrupt funktioniert also Strg+C aber auch das Funktioniert nicht. Ist zwar nicht das Hauptproblem aber hat hierzu jemand eine Lösung bzw. Idee ?)

    4. Ich versuche die Aufnahme nun auf dem PI zu spiechern mit dem Befehl

    "C:\user\pirate > > sox.exe -d | "/home/pi/test.wav"

    Hier bekomme ich nun den Fehler: Zugriff verweigert.

    Nun ist ja meine Vermutung das mich Rasbpian nicht einfach so per SSH von einem anderen System aus ein File anlegen lässt. Also habe ich den SSH Befehl auch mal mit Sudo su ausgeführt aber gleiches Ergebnis. Nun ist meine Frage, wie kann ich Sox dazubringen auf meinem Windows PC eine Aufnahme zu starten und diese Aufnahme per SSH auf meinen Rasbian zu speichern ?

    Außerdem wäre es gut wenn ich eine Zeit einstellen könnte wie lang die Aufnahme ist. Ich werde vermutlich ein Keyword einrichten damit die Aufnahme gestartet wird z.B "Aufnahme" jetzt möchte ich natürlich nicht das die Aufnahme unendlich läuft sondern vielleicht max 6 sec so das ich einen Befehl geben kann.

    Ps. Ich nutze Windows 8.1 und Rasbian auf dem PI für den SSH Server auf Windows nutze ich freeSSHd

    Ich hoffe mein Ziel ist klar geworden und ihr könnt mir helfen ? Wie gesagt ich vermute einfach das es ein Rechte Problem ist.

    • Offizieller Beitrag

    Machs dir doch nichts so schwer. Den Weg den du gehen willst, mit nemSSHh Server auf nem WindowsPC und dann remote Windows Programme starten und den output auf dem Pi zu speichern, ist imho viel zu umständlich. Mach die ganze Aufehmerei und Auswerterei auf dem Windows PC (muss ja eh laufen). Anschliessend lässt du die gesprochen Befehle auswerten (z.B. über die google speech api) und sendest am Ende nur noch Befehle (das was der Pi dann Schlussendlich machen soll) an den Pi. dieser Weg sollte deutlich einfacher, nachvollziehbarer und googlefreundlicher sein ;)

  • Hallo dbv!

    Vielen Dank für deine schnelle Antwort! Ja :) du hast recht so ist es mit sicherheit leichter manchmal sieht man den Wald vor lauter Bäumen nicht.

    Allerdings hat mich das Problem jetzt schon gepackt. Jeder von euch kennt das sicher, man hat ein Problem und eventuell auch ein Workaround aber man weiß genau das es auch anders gehen muss. :) In diesem Sinne bin ich immernoch Dankbar wenn jemand irgenwas zu rechte vergabe undsoweiter weiß vielleicht ist auch einfach nur mein Bash Kommando falsch?

    Auch wenn jemand noch etwas zu der Befehlsproblematik mit Sox unter Windows weiß die ich geschildert habe bin ich sehr Dankbar. Vorrerst werde ich aber mal deinen Vorschlag nutzen und das einfach alles über den Win Pc auswerten und aufnehmen.

    Dann habe ich noch eine Technische Frage zur Spracherkennung selbst. Ich habe natürlich auch da schon gegoogelt aber nicht wirklich hilfreiches gefunden. Meine Frage ist einfach muss Spracherkennung unbedingt über Googel laufen ? Wie funktioniert die Spracherkennung Technisch, welche Algorithmen gibt es da ? könnte man theoretisch solch eine Spracherkennung auch selbst Programmieren ? Falls jemand hierzu irgenwelche Links hat immer her damit :)

    • Offizieller Beitrag

    Rein Technisch fasst es dieser MSDN Auszug recht gut zusammen

    Zitat


    The back end is a specialized search engine that takes the output produced by the front end and searches across three databases: an acoustic model, a lexicon, and a language model.

    The acoustic model represents the acoustic sounds of a language, and can be trained to recognize the characteristics of a particular user's speech patterns and acoustic environments.
    The lexicon lists a large number of the words in the language, and provides information on how to pronounce each word.
    The language model represents the ways in which the words of a language are combined.

    Natürlich kannst du das auch selber programmieren, aber glaub mir, das willst du nicht

    Hier findest du eine Liste von OpenSource Speech Recognition Software

    Wenn du google nicht nutzen willst, kannst du auch die in Windows integrierte Speech API probieren. Und hier gibts eine Python Bibliothek dafür. Diese hatte ich auch schon in Benutzung, funzte tadellos.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!