Dringende Hilfe zu Linguatec Sprachausgabe gesucht

die beiden Thread kenne ich schon (über die Demo habe ich ja linguatec kennen gelernt). Die ergänzenden Beiträge aus 2008 hatte ich bisher nicht gelesen:

Könnte man dieses Tool so umbauen, daß es nicht auf den „Abspiel“ Knopf, sondern auf den „Speichern“ Knopf drückt… damit eine wav-Datei erzeugt wird?

… an so einer Lösung bastelt Toni gerade, dann kannst Du die Dateien mittels Befehl in IPS erzeugen und abspielen.

Ich habe die aktuelle Produkt-Werbung „* Easy conversion from text to MP3 or WAV“ so interpretiert, dass „dass man voice_reader z.B. von der Kommandozeile startet und als Parameter den Namen der Textdatei und den Namen für die Sounddatei (und vielleicht noch ein paar Optionen) mitgibt.“

Kann jemand mit der aktuellen Voice_Reader Version bestätigen, dass es eine solche naheliegende Kommandozeilen-Möglichkeit doch NICHT gibt?
Das wäre sehr schade und man müsste wirklich den Umweg über eine versteckte GUI-Automatisierung („Speichern als“ Knopf drücken) machen, so wie es Toni wahrscheinlich vor hat.

BTW - in der Vergleichsübersicht http://www.linguatec.net/products/tts/voice_reader/vrs_comparison
mit der professioniellen „Voice Reader Studio“ sehe ich eine Kommandozeilen-Möglichkeit nicht speziell ausgewiesen. Gibt es irgendwo online ein Handbuch zur „Voice Reader Home“ Version?

Gruß, Martin - der auch noch etwas auf Toni warten kann, da ich noch nicht mal IPS installiert habe.

Na das ist doch genau das, was wir brauchen Toni. :smiley:
Eine Übergabe eines Strings in eine wav oder mp3 währe genau was noch fehlt.
So könnte man auch mehrere Soundkarten befeuern.

Vielleicht gibt es undokumentierte Features, wie kann das jemand mit Sicherheit sagen?

Die Werbung hat recht. Man kann Textdateien (und andere) öffnen und vorgelesen als Soundfile speichern. Und zwar nach dem Prinzip: Datei, Öffnen, etc. Aber da steht nichts von Kommandozeile und nein, ich habe nichts darüber gelesen. Der Hersteller hat sich diesbezüglich auch klar ausgedrückt. Es sind derartige Schnittstellen für die Home-Version nicht geplant und die Vollversion kostet 499 Euro. Und auch dort wird auf der Webseite bislang nicht explizit etwas in dieser Richtung zugesichert.

Ich sehe auch keinen Grund zur Eile. Sleepys Tool funktioniert doch ganz brauchbar. Download hier im Forum und auf www.Tonis-Welt.com

Habe in meiner Home Version auch schon alles probiert… Aber wie Toni schon sagte. Es geht leider nicht.

Schade, daß da nichts positiv dokumentiert ist.

JA, aber wenn ich es richtig sehe, macht „Sleepys Tool“:
„Das Programm kopiert einen Text in die Zwischenablage und drückt auf den „Abspiel“ Knopf. Das ist -ALLES-.“
Zum Ausprobieren ganz nett !

Aber es hat so doch noch einige Nachteile:

  • Der Sound geht immer sofort nur über die (primäre) Soundkarte raus

– Ich muss also immer diese Soundkarte verwenden
++++ Ich möchte die Soundkarte vorgeben können.

– Ich muss also die Text-To-Voice Konvertierung zeitlich immer dann machen, wenn ich die Ausgabe haben möchte.
++++ Ich möchte statische Texte (wie „Guten Morgen Martin“) einmal nach MP3 konvertieren und dann später beliebig über eine Soundkarte ausgeben.
(Wenn ich mir längere Online-Meldungen vorlesen lasse, kann IPS diese schon vorher als MP3 konvertieren und ich erspare mir so beim Abhören Verzögerungen durch die Konvertierung. Online-Meldungen, die ich bei Frühstück nicht mehr abhören konnte, bleiben dann auf dem USB-Stick ungelöscht, und den kann ich dann auf dem Weg zur Arbeit im Auto weiter abhören.)

– Ich muss alle Text-To-Voice Konvertierungen zeitlich nacheinander machen.
(Also warten bis die gerade laufende Konv. fertig vorgelesen ist, und dann die nächste Konv. anstossen: zB. ich lasse mir gerade eine lange Email vorlesen und wenn es dabei an der Haustür klingelt, soll IPS sofort über eine 2. Soundkarte sprechen: „Besuch für Martin“ )
++++ Ich möchte die Text-To-Voice Konvertierung von unabhängigen Scripten heraus aufrufen ohne die Konv. mit Semaphoren zu sequentialisieren. Also lieber mehrere Instancen des Konv.-Tools parallel laufen haben. (Für die geordnete Ausgabe von parallelen MP3-Voices über eine Soundkarte müsste man sich noch ein Prioritäten/Interrupt-schema überlegen.)

Gruß, Martin - Eile habe ich nicht - aber Perfektion wäre schon gut

Okay, alles was mit mehreren Soundkarten zu tun hat ist eh eine Aufgabe für den CoMedian. Und daran arbeite ich wie gesagt schon.

Die Linguatec Soft wird mit oder ohne Schnittstelle niemals mehrere Aufgaben gleichzeitig (!) ausführen können. Dafür müsste man sie mehrfach starten und so arbeitet sie nicht denn sie registriert sich in der TNA (neben der Uhr) und läuft durch. Ob es aber dennoch möglich ist kann ich nicht sagen.

Ich möchte statische Texte (wie „Guten Morgen Martin“) einmal nach MP3 konvertieren und dann später beliebig über eine Soundkarte ausgeben.

Das macht der CoMedian…

Ich möchte die Text-To-Voice Konvertierung von unabhängigen Scripten heraus aufrufen ohne die Konv. mit Semaphoren zu sequentialisieren.

Schreib einfach ein Tool, so wie das von Sleepy, nur dass das mehrere Instanzen des Voicereaders verwaltet… Kläre aber vorher ob du dazu eine Mehrplatz-Lizenz benötigst und ob das überhaupt mit einem einzigen Rechner geht.

Toni

Da hat doch jemand meine Wünsche geklaut. :smiley:

Okay, Toni. Dann warten wir auf CoMedian :wink:
(davon habe ich auch schon viel Gutes gelesen)

Thomas, ich teile gerne „meine Wünsche“ mit Dir.

Gruß, Martin - für den perfekte Sprachausgabe nur das Sahnehäubchen sein wird - vorher muss ich noch jede Menge Basics fertigstellen.

PS: ich habe heute erst gemerkt, dass man wohl für jede Sprache eine weitere Linguatec Software kaufen muss :frowning: Ich hatte bisher gedacht, da man gleich alle Sprachen im Paket bekommt und mal so - mal so nutzen kann.
Schade, denn eine englische Mail mit deutscher Stimme hört sich besch… an.

da ich mir auch grad die Sprachausgabe anschaue …

Für das Umschalten der Soundkarteninstance kann ich mir vorstellen, ein Script mit AutoIT zu erstellen, das dann als weiteres IPS_Execute davor das erledigt. Fertige Lösung hab ich selbst noch nicht probiert, jedoch kannst mit diesem Tool so allerhand unter Windows anstellen - vielleicht auch dieses Problem damit lösen.

Grüße,
Josef.

Was macht AutoIT?

eigentlich alles, was sich irgendwie in Fenstern angreifen läßt, und das ohne besonderer Programmierung.

Du kannst da Abfragen auf aktive Fenster setzen und Buttons oder sonstige Werte drinnen ansprechen und betätigen.

Also damit hab ich schon vieles automatisiert installiert für Softwareverteilungen, was per msi installer nicht so einfach möglich war und das für free.

Schaus dir vielleich mal an. Zu finden unter http://www.autoitscript.com/autoit3/

Kurzes Intro dazu:
AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys). AutoIt is also very small, self-contained and will run on all versions of Windows out-of-the-box with no annoying „runtimes“ required!

Oh mein Steckenpferd :slight_smile:

Ich habe schon vor längerer Zeit versucht das Programm so umzubauen, das es nicht den abspiel-knopf betätigt sondern den speicherbutton.

Geht aber nich. Der Speichern_unter Dialog hat das herumgezockt woraufhin ich es aufgegeben hatte.

Hmm, SEHR interessant ! Schade, dass es nicht geklappt hat. :frowning:
Aber, bitte unbedingt genauer (hier) dokumentieren, was daran nicht geklappt hat. Hast Du es speziell mit „AutoIt v3“ probiert oder mit welchem Tool bitte?

Für mich muss es mit dem „Speichern_unter Dialog“ klappen (oder eine äquivalente Lösung geben), sonst werde ich mir Linguatec niemals kaufen !

Gruss, Martin - der Sprachausgabe nur flexibel mit vorheriger Konvertierung in MP3/Wav haben möchte

Hallo, ich habe vor längerer Zeit mal mit AutoIt und Linguatec herumgebastelt.

Hier mein Script von damals:



#include <Date.au3>
#include <GUIConstants.au3>
Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)

GUICreate("GenerateVoice",500, 200, 1, 1) 
$myedit=GUICtrlCreateEdit ("Dieses Script startet den VoiceReader Direct." & @CRLF, 1,1,490,190,)
GUISetState ()
GUICtrlSetData ($myedit, "Zur Ansteuerung des VoiceReader Direct wird SHIFT/ALT und rechte Maustaste gesendet" & @CRLF & @CRLF,1)
GUICtrlSetData ($myedit, "Es kann die Sprachausgabe oder das Erzeugen einer Datei gestartet werden." & @CRLF,1)
GUICtrlSetData ($myedit, "" & @CRLF,1)
GUICtrlSetData ($myedit, "Alle Einstellungen incl. Format und Zielordner werden in VRDirect eingestellt." & @CRLF,1)
GUICtrlSetData ($myedit, "Der Dateiname ohne Ordner wird in diesem Script erzeugt." & @CRLF & @CRLF,1)
GUICtrlSetData ($myedit, "Es werden folgende Parameter benötigt." & @CRLF,1)
GUICtrlSetData ($myedit, "Parameter 1 gibt an ob die Ausgabe als Datei oder auf die Speaker erfolgt." & @CRLF,1)
GUICtrlSetData ($myedit, "           Werte = datei oder speak" & @CRLF,1)
GUICtrlSetData ($myedit, "Parameter 2 gibt an ob der 3. Parameter Text ist, oder ob es sich um eine Textdatei handelt" & @CRLF,1)
GUICtrlSetData ($myedit, "            Werte = intext oder indatei" & @CRLF,1)
GUICtrlSetData ($myedit, "Parameter 3 der Text, oder der Dateiname als absoluter Pfad (z.B. c:\Voice\vorlesen.text)" & @CRLF,1)
GUICtrlSetData ($myedit, "Parameter 4 gibt an, ob an den Dateinamen Datum Uhrzeit angehängt werden soll." & @CRLF,1)
GUICtrlSetData ($myedit, "            datumaus = nicht anhängen, datuman = anhängen" & @CRLF,1)
GUICtrlSetData ($myedit, "Parameter 5 ist der Dateiname unter dem gespeichert werden soll" & @CRLF & @CRLF,1)
GUICtrlSetData ($myedit, "Returncode 1 = Fehler, 0 = OK" & @CRLF,1)

$anzParam = $CmdLine[0]
if $anzParam  = 0 Then
	msgbox(0,"Hinweis", "Zum beenden OK drücken",)
	exit(1)
EndIf

if $anzParam not = 3 or $anzParam not = 5 Then
	;falsche Parameter => Abbruch
	msgbox(0,"Fehler","Sie haben die Parameter nicht korrekt angegeben!",10)
	exit(1)
EndIf

; Datum und Uhrzeit zusammenbauen in der Form: 20060412_122059
$Ordnerdatum = StringMid( _Now(), 7, 4) & StringMid( _Now(), 4, 2) & StringMid( _Now(), 1, 2) & "_" & StringMid( _Now(), 12, 2) & StringMid( _Now(), 15, 2) & StringMid( _Now(), 18, 2)


; Vorlesen
if $anzParam = 3 and $CmdLine[1] = "speak" Then
	If $CmdLine[2] = "intext" Then
		ClipPut ($CmdLine[3])
	ElseIf $CmdLine[2] = "indatei" Then
		dateilesen()
	Else
		msgbox(0,"Fehler","Sie haben den zweiten Parameter nicht korrekt angegeben!",10)
		exit(1)
	EndIf	
	;VR starten	
	VRStart()
	;Sprechen
	$pos = MouseGetPos()
	MouseMove(40, 40, 1)
	MouseDown ( "right")
	Send("{SHIFTDOWN}")
	MouseUP ( "right" )
	Send("{SHIFTUP}")
	exit(0)
EndIf
;--------------------------------------------------
;Datei erzeugen
if $anzParam = 5 and $CmdLine[1] = "datei" Then
	If $CmdLine[2] = "intext" Then
		ClipPut ($CmdLine[3])
	ElseIf $CmdLine[2] = "indatei" Then
		dateilesen()
	Else
		msgbox(0,"Fehler","Sie haben den zweiten Parameter nicht korrekt angegeben!",10)
		exit(1)
	EndIf	
		
		If $CmdLine[4] = "datuman" Then
			;Datum an Dateiname anhängen?
			$dateiname=$CmdLine[5] & $Ordnerdatum
		ElseIf $CmdLine[4] = "datumaus" Then
			$dateiname = $CmdLine[5]
		Else
			msgbox(0,"Fehler","Sie haben den vierten Parameter nicht korrekt angegeben!",10)
		exit(1)
	EndIf	
	
	
	;VR starten	
	VRStart()
	;Datei erzeugen
	$pos = MouseGetPos()
	MouseMove(40, 40, 1)
	MouseDown ( "right")
	Send("{ALTDOWN}")
	MouseUP ( "right" )
	Send("{ALTUP}")

	WinWait("Speichern unter","")
	If Not WinActive("Speichern unter","") Then WinActivate("Speichern unter","")
	WinWaitActive("Speichern unter","")

	Send($dateiname)
	Send("{ENTER}")
	MouseMove($pos[0] , $pos[1], 1)
	exit(0)
EndIf

;------------------------------------------------------------------------------

Func VRStart()
	;VoiceReader Direkt gestartet? Wenn nicht, dann jetzt starten
	If ProcessExists("VRDirect.exe") = "0" Then
		Run("C:\Programme\linguatec\VoiceReader\VRDirect.exe", "")
		ProcessWait("VRDirect.exe")
		Sleep(1000)
	EndIf
EndFunc

Func dateilesen()
;Datei öffnen und lesen
	If FileExists($CmdLine[3]) Then
		$file = FileOpen ( $CmdLine[3], 0 )
			; Check if file opened for reading OK
			If $file = -1 Then
				MsgBox(0, "Error", "Unable to open file.",10)
				Exit(1)
			Else
				$output=""
				; Read in lines of text until the EOF is reached
				While 1
					$line = FileReadLine($file)
					If @error = -1 Then ExitLoop
					$output=$output & $line
				Wend
				FileClose($file)
				ClipPut ($output)
			EndIf
	EndIf		
EndFunc
			

Und so kann man das ganze von IP-Symcon aus benutzen. Hier das Beispiel zum sofortigen vorlesen.

IPS_Execute(„D:/Tools/doVoice/GenerateVoice.exe“, „speak intext testtext“, true, false);

P.S.
Dieses Script habe ich früher benutzt. Jetzt benutze ich das Programm von sleepy. http://www.ipsymcon.de/forum/showthread.php?t=3553&highlight=linguatec

Thorsten, das „hört“ sich ja sehr gut an (!)
Wenn ich es so richtig lese, hat die Konvertierung in eine Datei mit Hilfe von Linguatec also doch geklappt. :smiley: :smiley:

Thorsten, kannst Du uns das bitte kurz bestätigen?
Oder war es nur eine guter Versuch, der doch gescheitert ist?
Und mit welcher VR Version hat es geklappt?

Gruß, Martin - mit „hörbar“ guter Hoffnung

Ja, ich hatte dieses Script eine ganze Weile im Einsatz.
Das Erzeugen von mp3 oder wav Dateien ist kein Problem.
Man muss diese Einstellungen jedoch im VoiceReader vornehmen.
Das einzige was das AutoIt Script macht, ist ein Text in die Windows Zwischenablage zu kopieren und dann die Tastenkombination des VoiceReaders zu drücken, der entweder sofort spricht oder eben eine Datei erzeugt.

Einfach mal ausprobieren,
AutoIt herunterladen.
Script kompilieren.
In IPS diese Zeile in ein Script schreiben und schon sollte es funktionieren.
IPS_Execute(„D:/Tools/doVoice/GenerateVoice.exe“, „datei intext Hallo datumaus c:\meinevoicereaderdatei“, true, false);

!!! Bitte die Pfadangaben anpassen !!!

Thorsten, SUPER (!) Vielen Dank!
Genau so wie ich es erhofft und erwartet habe.

Du machst uns Mut ! :smiley: :smiley: :smiley:

Gruß, Martin - da brauchen wir nur noch die CoMedian Einbindung … für Multiroom etc…

Hallo Thorsten,

zwei Fragen:

  1. gibt es eine merkbare Zeitverzögerung zwischen Übergabe des Textes, Erzeugung und Wiedergabe
  2. wird dabei der VoiceReader im Vordergrund benutzt

Zu 1.
Ja es gibt eine merkliche Zeitverzögerung von ein paar Sekunden. Das kann aber auch an meinem langsamen Rechner liegen. (700 Mhz, P3)

Zu 2.
Ja, der Voice Reader bietet ja selber die Möglichkeit auf „Hotkeys“ zu reagieren. Damit man aus einem beliebigen Programm die Sprachausgabe per Tastendruck starten kann. Daher kommt der VoiceReader in den Vordergrund.

Ich benutze wie gesagt Sleepys Prog. , da damit alles im Hintergrund abläuft. Man kann damit allerdings keine Dateien erzeugen.