Dringende Hilfe zu Linguatec Sprachausgabe gesucht

Danke Thorsten.
Diese Lösung fällt damit erstmal für meine Zwecke aus. Solange keine direkte Schnittstelle von Linguatec angeboten wird (was ich im übrigen sehr schade finde, weil dies sicherlich auch den Umsatz des Produktes fördern würde). Schauen wir mal ob uns Toni mit einer Lösung überrascht.:wink:

Schade, dass es nur mit VR im Vordergrund funktioniert. :frowning:
Vielleicht könnte man VR auf einem zweiten Monitor im Vordergrund laufen lassen, aber einfach keinen realen Monitor anschliessen.
Ich habe kaum Zweit-Monitor-Erfahrung: vielleicht kann man einfach eine einfache VGA-Karte zusätzlich einbauen und VR zwingen, immer diesen Bildschirm zu nutzen?
Naja, der Input Fokus wäre wohl kurzfristig bei jeder Sprachkonvertierung im unsichtbaren VR-Fenster (und der Fokus müsste danach auf die bisherige Applikation zurückspringen)

Gruß, Martin - der VR gerne im „unsichtbaren Vordergrund“ verstecken möchte.

Der CoMedian wird es können. Ich habe einen funktionierenden Code für diese Aufgabe. Der VoiceReader muss nicht gestartet oder im Vordergrund sein. Einziger kleiner Haken ist, dass ganz kurz das Voicereader Fenster aufpoppt (daran arbeite ich noch).

Vielleicht kann ich den code, bei Interesse, rauskopieren und in die nächste Version meiner Toolsammlung packen…

Gruß,

Toni

Melde hier schon mal sehr großes Interesse an.:wink:

Hi Leute,

in meiner kreativen Winterpause habe ich mir jetzt selbst das Tool gebastelt, daß ich mir mal hier im Forum gewünscht habe: Es kann im „Voice-Reader-Direkt“ einen Text direkt aussprechen lassen, oder (und das war das ausschlaggebende) eine .wav-Datei für ISDN-Zwecke erzeugen.

Das besondere Gimmik daran: Das AutoIt-Script wartet so lange, bis das Speichern der .wav-Datei beendet ist (Status-Balken von Voice-Reader-Direkt verschwindet). Damit kann man direkt in der Befehlszeile im PHP-Script die „Warte-Funktion“ implementieren.

Das Script benötigt mindestens zwei Befehlzeilenparameter:

  1. „Say“ oder „Save“ zur Auswahl der gewünschten Funktion
  2. den Text der gesprochen bzw. gespeichert werden soll
IPS_Execute("MeinLaufwerk:/MeinOrdner/VoiceReader.exe","Save"." "."Hallo",FALSE,TRUE);

(Das ." ". fügt ein Leerzeichen ein, um die beiden Parameter zu trennen.

Da die Parameter über Leerzeichen getrennt werden, muß der Text (Parameter 2) in Anführungszeichen stehen sobald mehrere Wörter verwendet werden (ist ja eh klar :p). Um das mit einem IPS_Execute mitzuschicken, bedarf es leider eines etwas umständlichen Syntax:


$Telefontext="Mein Text";
IPS_Execute
(MeinLaufwerk:/MeinOrdner/VoiceReader.exe","Save"." "."\"" .$Telefontext. "\"",FALSE,TRUE);

(Das .""". fügt ein Anführungszeichen ein.)

Soweit wird „Mein Text“ als „Neue Datei“ mit den Voreinstellungen gespeichert, die man dem Voice-Reader-Direkt „hinterlassen“ hat.

Wenn man einen Dateinamen wählen will, so darf man diesen als dritten Befehlszeilen-Parameter einfügen.


$Dateiname="Dateiname";
$Telefontext="Mein Text";
IPS_Execute
(MeinLaufwerk:/MeinOrdner/VoiceReader.exe","Save"." "."\"" .$Telefontext. "\""." ".$Dateiname,FALSE,TRUE);

Übrigens: Falls der Voice-Reader-Direkt beim Aufruf dieser Funktion noch nicht gestartet ist, versucht das AutoIt-Script dieses aus dem Standart-Verzeichnis zu starten: „C:\Programme\Linguatec GmbH\VoiceReaderStudio\VRStudioDirect.exe“

Leider hat sich nach all den Bemühungen herausgestellt, daß es mit einem 1,5 GHz Pentium4 ganz schön lange dauert, bis ein längerer Satz fertig gespeichert ist. Im „Gespräch“ mit dem ISDN-Modul entsteht also eine recht peinliche Wartezeit… Diese überbrücke ich jetzt mit einer Ansage:„Einen Moment bitte, die Daten werden aufbereitet.“ :frowning:

MfG, douglas882

VoiceReader.zip (242 KB)

Hallo douglas882,

Übrigens: Falls der Voice-Reader-Direkt beim Aufruf dieser Funktion noch nicht gestartet ist, versucht das AutoIt-Script dieses aus dem Standart-Verzeichnis zu starten: „C:\Programme\Linguatec GmbH\VoiceReaderStudio\VRStudioDirect.exe“

Du hast die Studioversion im Einsatz. Bei mir sieht das wie folgt aus:

C:\Program Files\linguatec\VoiceReader\VRDirect.exe

Siehst Du eine Möglichkeit das Verzeichnis und die „exe“ als optionalen Parameter mit anzugeben?

Jürgen

Hallo Jürgen,

Siehst Du eine Möglichkeit das Verzeichnis und die „exe“ als optionalen Parameter mit anzugeben?

Ich habe gewusst, daß das jemand fragt! :stuck_out_tongue:
Der dritte Parameter ist ja schon optional (der Dateiname zum speichern). Wenn ich jetzt einen vierten, optionalen Parameter dazu nehme, müsste man dann aber (wenn man den 4. angeben möchte) zwingend Parameter 3 mitsenden. Ansonsten würde im worst-case der (evtl doch schon laufende) VoiceReader wohl genau seine eigene .exe-Datei überschreiben… das wars dann!
Ich habe ja in dem zip-Archiv extra die „.au3“-Datei mit rein gepackt. Das steht der Pfad in dem „Programm-Code“ (wenn man das überhaupt so nennen darf) ganz weit oben drin. Ggf. also einfach austauschen mit dem Tool AutoIt3
(Freeware) einmal auf „Compile Script“ klicken.

Noch einfacher: Ich hänge es gleich mal umgebaut an.

Anbei das Script mit dem Pfad (zum VR-Direkt):
„C:\Program Files\linguatec\VoiceReader\VRDirect.exe“

Jetzt hoffe ich nur, daß die Buttons die gleiche ID haben - sonst „klickt“ das Script daneben…

VoiceReader.zip (242 KB)

IPS_Execute("C:/Voicereader/VoiceReader.exe","Save"." "."\"" .$Telefontext. "\""." ".$Dateiname,FALSE,TRUE);

Also bei mir stürzt, nachdem ich da noch " eingefügt habe IPS komplett ab

Also bei mir stürzt, nachdem ich da noch " eingefügt habe IPS komplett ab

Hoppla, das war ja nicht Sinn der Übung…

Der Pfad „C:/Voicereader/VoiceReader.exe“ ist schon der, wo das Script gespeichert ist, oder?

Startet denn das Script? Das sieht man an so einem kleinen Symbol, daß vorübergehend zusätzlich in der Taskleiste (bei der Uhr) erscheint.

Was passiert, wenn Du als letzten Parameter im IPS_Execute „FALSE“ setzt? (Das bedeutet, das PHP-Script wird sofort weiter ausgeführt, ohne auf die Bestätigung des VoiceReader zu warten.)

IPS_Execute("C:/Voicereader/VoiceReader.exe","Save"." "."\"" .$Telefontext. "\""." ".$Dateiname,FALSE,FALSE);

Könntest ja auch mal die „Say“-Funktion testen: Die ist wesentlich einfacher für das Script… Der Sache werden wir schon noch auf die Schliche kommen! :slight_smile:

Ach ja: $Telefontext muß natürlich vorher definiert sein - evtl. Tippfehler?

Hab ich direkt in den scripts Ordner in IPS gepackt, also

IPS_Execute("C:/IP-Symcon/scripts/VoiceReader.exe","Save"." "."\"" .$Text. "\""." ".$Dateiname,FALSE,False);

Im Taskmanager taucht dein Voicereader auf

Teste ich mal , IPS sürzt dann net ab, aber es kommt auch nix zustande…

Könntest ja auch mal die „Say“-Funktion testen: Die ist wesentlich einfacher für das Script… Der Sache werden wir schon noch auf die Schliche kommen! :).

Geht bei mir net, ich hab da nix dran, es muß ne mp3 oder wav erstellt werden. diese wir dann über die squeezebox ausgeworfen g

Du läßt es mit v1 laufen ? ich habs an v2.0 eventuell liegts ja daran :frowning:

Du läßt es mit v1 laufen ? ich habs an v2.0 eventuell liegts ja daran

Na also. Ich verwende tatsächlich die V1. In der Befehlsreferenz zu V2 steht - Zitat:
„Achtung: Wenn das zu startende Programm interaktiv ist (z.B. ein Fenster beinhaltet) wird dieses nicht angezeigt/sichtbar. Es wird im Hintergrund als System-Prozess gestartet und kann dann nur mit Hilfe des Task-Managers gestoppt werden. Soll das Programm auf dem Desktop angezeigt werden, muss die IPS_ExecuteEx Funktion verwendet werden.“

Das erklärt schonmal, warum das AutoIt-Symbol nicht in der Taskleiste erscheint. Versuchs doch mal mit dem …Ex hintendran.

Ich komm gerade nicht an meinen Server, deshalb kann ich es nicht ausprobieren, aber das Script lässt sich ja auch ohne IPS starten: „Start“-„Ausführen“. Dann "C:/IP-Symcon/scripts/VoiceReader.exe Save „Dies ist ein Test“ "
(Die dritte Parameter ist ja nicht zwingend - lassen wir den erstmal…)

MfG, douglas882

Bitte in der V2 IPS_ExecuteEx() verwenden.

Wenn ich das eingebe, bekomm ich einen

Registrier-Assistent kann nicht ausgeführt werden, da die erfroderlichen Systeminformationen entweder nict verfügbar oder falsch sind 

Diese Fehlermeldung erscheint im IPS, oder?

Vielleicht könnten wir probehalber mal die Variablen und den dritten Parameter aus dem Befehl lassen:

IPS_ExecuteEx("C:/IP-Symcon/scripts/VoiceReader.exe","Save"." "."\"" ."Dies ist ein Test". "\"",FALSE,False);

Oder noch sicherer:

IPS_ExecuteEx("C:/IP-Symcon/scripts/VoiceReader.exe","Save Test",FALSE,False);

Ansonsten versuch doch bitte mal die Variante mit „Start“-„Ausführen“. Ich bin ja noch gar nicht sicher, ob das Script überhaupt mit der Nicht-Studio-Version läuft…

MfG, douglas882

Wo ist eigentlich die VoiceReader.exe her? Ich habe hier Bedenken wegen der Nutzugsrechte…

Die hat douglas882 selbst geschrieben. Source liegt ja der zip bei ;).

Ja, sorry wegen dem Namen. Der war ja eigentlich nur für meinen Hausgebrauch gedacht - und dann hatte ich spontan die Idee, den hier mal reinzustellen. Ich hatte noch so im Hinterkopf, daß ich nicht der Einzige war, der sowas haben wollte…
Man darf den aber bedenkenlos umbenennen, das tut der Funktion keinen Abbruch.

Apropos Funktion: Hat das jetzt eigentlich schon jemand (außer mir) zum Laufen gebracht?

OK, kannte das au3 Dateiformat bis jetzt nicht, die exe führt also ein Makro aus?

Die .au3 ist das unkompilierte Script, falls jemand was dran ändern möchte. Zum kompilieren braucht man AutoIt3 (tolle Sache + Freeware).
War für mich übrigens der erste Einsatz der Version 3. Die hat gegenüber der älteren AutoIt-Versionen den Vorteil, daß sie die Buttons nicht anhand Ihrer x+y-Koordinaten (relativ zum angesteuerten Programmfenster) klickt, sondern die Buttons anhand von „IDs“ identifiziert.

Die .exe kopiert den Parameter 2 ($Telefontext) in die Zwischenablage, drückt dann auf „Speichern“, gibt ggf. den gewünschten Dateinamen an (Parameter 3), klickt falls nötig nochmal bei „Datei überschreiben?“ auf „ja“ und beobachtet dann den Statusbalken des VoiceReader-Direkt.
(Oder irgendwie so ähnlich… Wie gesagt: Ich komm grad nicht an meinen Server.)

MfG, douglas882

Hallo

bei mir funz es leider nicht.

Das Script wird fehlerfrei ausgeführt aber es wird keine Datei erstellt.

Jürgen