Hochwertige Sprachausgabe über Voice Reader von Linguatec

Programmierung der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

Zeuge
Beiträge: 170
Registriert: 14.09.2006, 21:46
Wohnort: München Harlaching

Hochwertige Sprachausgabe über Voice Reader von Linguatec

Beitrag von Zeuge » 17.09.2007, 21:21

Hallo liebe Contronics Anwender.

Jetzt habt Ihr die Möglichkeit, beliebige Texte oder Meldungen von HomePuter, über Sprachausgabe in hoher Qualität auszugeben!

Wie das geht?
Ganz einfach!

Grundvoraussetzung ist eine installierte Voice-Reader Software.
Diese ist von der Firma: Linguatec erhältlich und kostet 49€.

Diesen Text habe ich von Voice-Reader als MP3 ausgeben lassen und als Hörprobe-Link beigefügt!


Nach der Installation von Voice-Reader wird noch eine kleine Hilfssoftware benötigt.
Die Hilfssoftware doVoice.exe hebt Beschränkungen der Voice-Reader Software auf bzw. umgeht diese.
doVoice.exe wurde vom IP-Symcon Forum-Mitglied Sleepy entwickelt!
Vielen Dank an Sleepy für Entwicklung und Freigabe des Tools zur freien Verwendung!
Bitte Fragen zu doVoice.exe zunächst an mich richten. Wir wollen ja niemanden unnötig belästigen!

Voice-Reader übersetzt normalerweise keine Texte ohne Interaktion des Benutzers!
Die Hilfssoftware übergibt, im Hintergrund, die vorzulesenden Texte an Voice-Reader und drückt automatisch auf den Vorleseknopf.
Dies geschieht ohne den Fokus der Maus zu verändern!
Somit kann die Sprachausgabe, ohne störende Interaktion, komplett im Hintergrund erfolgen.

In Homeputer muss ein neues Objekt vom Typ Zeichen angelegt werden.
Der Name darf nicht Sprachausgabe lauten!
Dieser Begriff ist schon reserviert.
Darum habe ich: SprachausgabeDoVoice als Objektnamen gewählt.

Die Makro-Optionen: "Ausführen bei Änderung" und "Senden auch bei Zuweisung ohne Änderung" sollten aktiviert sein.

Das Makro startet sobald ein Text an das Objekt übergeben wird!

Folgendes geschieht innerhalb des Makros:
  • 1. Das benötigte Ausgabegerät wird ggf. gestartet. Bei mir, wird die HIFI-Anlage eingeschaltet.
    2. Die Voice-Reader Direct Software wird gestartet.
    3. Das Hilfsprogramm zum Text Übergeben wird gestartet.
    4. Der Text wird übergeben und somit von Voice-Reader vorgelesen.
Eine Textzuweisung an die Sprachausgabe erfolgt wie gewohnt!
SprachausgabeDoVoice:=Text-Variable.
Die Sprachausgabe erfolgt unmittelbar und erzeugt auch keine besondere Systemlast!

Beispiel einer Homeputer-Sprachausgabe:
http://www.rsf-schmoelz.de/Temperaturvorwahl.mp3

Ich danke für Eure Aufmerksamkeit und füge noch freundliche Grüße aus München bei.

Manfred Zeuge, München

Achso, jetzt noch der Code von Objekt SprachausgabeDoVoice:

Code: Alles auswählen

** Objekt SprachausgabeDoVoice, Typ Zeichen, "Ausführen bei Änderung", "Senden auch bei Zuweisung ohne Änderung"
** Variable TextVorlesen im Objekt SprachausgabeDoVoice, Typ Zeichen


** Sprachausgabe eines Textes (Text liegt in diesem Objekt Sprachausgabe vor)
** Voraussetzung ist ein installiertes Linguatect Voice Reader Packet und das darin enthaltene Programm:
** "Voice Reader Direct" (VRDirect.exe) muss gestartet sein (kann im Tray minimiert sein) - Wird jetzt automatisch von diesem Makro gestartet!

** doVoice.exe übergibt die Homeputer Texte an Voice-Reader-Direct
** ggfs. ist der Pfad zur doVoice.exe anzupassen

** Erforderliche Soundgeräte wie HI-FI Anlage usw. einschalten, Kurzen Moment warten bis Anlage einsatzbereit ist.
Wenn WZ_07_Schreibt_HIFI_Schalt_1123 =0 dann
     WZ_07_Schreibt_HIFI_Schalt_1123:=1
     Warte("00:00:03")
EndeWenn


** Sprachausgabe über doVoice.exe starten (Pfad von doVoice.exe bitte kontrollieren, anpassen)
** Den Pfad zur VRDirekt.exe ("Voice Reader Direct" von Linguatec) bitte kontrollieren, anpassen

Wenn SprachausgabeDoVoice <> "" dann
     StartWin(",C:\Program Files\linguatec\VoiceReader\,VRDirect.exe")
     SprachausgabeDoVoice.TextVorlesen:=",C:\Tools\doVoiceReader\,doVoice.exe, " +SprachausgabeDoVoice
     StartWin(SprachausgabeDoVoice.TextVorlesen)
EndeWenn
 
Zuletzt geändert von Zeuge am 17.09.2007, 23:06, insgesamt 3-mal geändert.
greetings Zeuge :wink:

Konfig: Windows 7 Pro 64Bit, FHZ1350PC, ca. 40 Funkkomponenten, Wetterstation und Heizungssteuerung

Zeuge
Beiträge: 170
Registriert: 14.09.2006, 21:46
Wohnort: München Harlaching

Beitrag von Zeuge » 17.09.2007, 21:50

Anmerkungen:
Unter Einstellungen-Allgemein-Sprachausgabe braucht die Option "Sprachausgabe aktivieren" nicht aktiviert werden!

Um bei Neustart der Homeputersoftware, die Sprachausgabe eines alten Textes zu vermeiden, habe ich im *END Objekt folgende Zeile hinzugefügt:
SprachausgabeDoVoice:=""
greetings Zeuge :wink:

Konfig: Windows 7 Pro 64Bit, FHZ1350PC, ca. 40 Funkkomponenten, Wetterstation und Heizungssteuerung

tonic1024
Beiträge: 63
Registriert: 31.07.2006, 09:08
Wohnort: Cuxhaven
Kontaktdaten:

Beitrag von tonic1024 » 18.09.2007, 14:25

Okay... dann will ich auch noch kurz was beisteuern...

Ich hab mich grad nochmal mit Sleepy geschnackt und kann euch noch einen download-mirror und Infos zu doVoice auf Tonis Welt anbieten. Dort werde ich auch alle zukünftigen Infos und Updates bereitstellen.

Direktlink zur Downloadarea: Klick

Gruß,

Toni

Zeuge
Beiträge: 170
Registriert: 14.09.2006, 21:46
Wohnort: München Harlaching

Beitrag von Zeuge » 18.09.2007, 21:55

Toni ich Danke Dir, Euch für den downloadlink.. :D
greetings Zeuge :wink:

Konfig: Windows 7 Pro 64Bit, FHZ1350PC, ca. 40 Funkkomponenten, Wetterstation und Heizungssteuerung

JoBa
Beiträge: 110
Registriert: 12.08.2007, 18:54
Wohnort: 'Speckgürtel' von Berlin

Beitrag von JoBa » 22.09.2007, 11:29

Hallo Zeuge,

ersteinmal vielen Dank von meiner Seite für Deine Aktivitäten um die nun deutlich verbesserte Sprachausgabe.
Hab' ich auch gleich implementiert und möchte im Ergebnis dessen noch eine Ergänzung kund tun:

In Deinem Script muss vor dem letzten EndeWenn noch die Zeile:
SprachausgabeDoVoice:=""
zum Löschen des Inhalts eingfügt werden.
Ohne diese werden hintereinanderfolgende gleiche Sprachausgaben nicht wiederholt (trotz Haken bei "Senden auch bei Zuweisung ohne Änderung").

Gruß JoBa
Gruß JoBa
###########################################
Mini-PC mit Win 8.1 64-bit, 24" Touchscreen, HPCL-Studio,
CCU 2, 4x LAN-Adapter, CUxD, CUL
---------------------------------------------------------------------
302 Kanäle in 140 Geräten und 19 CUxD-Kanäle in 5 CUxD-Geräten

Zeuge
Beiträge: 170
Registriert: 14.09.2006, 21:46
Wohnort: München Harlaching

Beitrag von Zeuge » 24.09.2007, 15:14

Danke für den Hinweis JoBa

Ich hatte vorgesehen die Meldung nicht zu löschen um sie über einen Klick auf das Meldungsobjekt wiederholen zu können.

Wenn das System die gleiche Meldung wieder produziert und diese deshalb nicht nochmals ausgegeben wird, war mir noch nicht aufgefallen.

Wie gesagt Danke!
greetings Zeuge :wink:

Konfig: Windows 7 Pro 64Bit, FHZ1350PC, ca. 40 Funkkomponenten, Wetterstation und Heizungssteuerung

PapaWolf
Beiträge: 584
Registriert: 19.10.2007, 09:17
Wohnort: Aschaffenburg (Deutschland)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Re: Hochwertige Sprachausgabe über Voice Reader von Linguatec

Beitrag von PapaWolf » 05.01.2008, 12:08

Hallo zusammen,
habe das auch mal probiert und Deine Makrodaten in das Makro des Objektes "SprachausgabeDoVoice" geschrieben, scheitere aber an einer Fehlermeldung:

Unbekannter Bezeichner "SprachausgabeDoVoice.Textvorlesen"

Kann mir bitte jemand weiterhelfen ?

Gruß
Wolfgang
Viele Grüße !
PapaWolf

Ich betreibe das HPCL-Studio für Homematic und FHZ(FS20) auf einem RaspberryPi 3B+ unter piVCCU3 und der FHZ2000, sowie mit 2 LAN-Gateways

PapaWolf
Beiträge: 584
Registriert: 19.10.2007, 09:17
Wohnort: Aschaffenburg (Deutschland)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Re: Hochwertige Sprachausgabe über Voice Reader von Linguatec

Beitrag von PapaWolf » 05.01.2008, 13:36

Hallo,
ich hab´s mittllerweile rausbekommen - man muß zuerst auch noch eine Variable vom Typ Zeichen erstellen, die da heißt: TextVorlesen

Und auch die Kommas in den Pfadanweisungen habe ich rausgenommen - wichtig ist nur das Leerzeichen nach "doVoice.exe"

mfg
Wolfgang
Viele Grüße !
PapaWolf

Ich betreibe das HPCL-Studio für Homematic und FHZ(FS20) auf einem RaspberryPi 3B+ unter piVCCU3 und der FHZ2000, sowie mit 2 LAN-Gateways

PapaWolf
Beiträge: 584
Registriert: 19.10.2007, 09:17
Wohnort: Aschaffenburg (Deutschland)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Schaltsteckdose schaltet nicht in SprachausgabeDoVoice

Beitrag von PapaWolf » 22.02.2008, 12:19

Hallo Zeuge,

ich habe (wie schon erwähnt) Dein Programmierbeispiel erfolgreich zum Laufen bekommen - nun möchte ich aber auch (aus Stromspargründen) meine angeschlossenen PC-Lautsprecher erst dann einschalten, wenn sie gebraucht werden. Dazu benutze ich eine Schaltsteckdose mit dem Modul-Namen "Steckdose2".

Also habe ich im Makro "SprachausgabeDoVoice" (ähnlich wie bei Dir) vor dem Sprachausgabeblock folgendes eingefügt:

Steckdose2 einschalten
...Sprachausgabeblock...
Steckdose2 auschalten

... aber das funktionieret leider nicht - HomputerStudio schaltet die Steckdose nicht (weder ein noch aus) Habe es auch schon mit "Steckdose2:=1" bzw. "Steckdose2:=0" versucht - aber es funktioniert nicht.

Wenn ich die Steckdose von einer Fernbedienung oder aus einer Ansicht mittels Mausklick schalte, funktionieren die o.g. Befehle einwandfrei - nur innerhalb des Makros "SprachausgabeDoVoice" geht nix.

Wer weiß, warum ? Danke schon mal ...
Viele Grüße !
PapaWolf

Ich betreibe das HPCL-Studio für Homematic und FHZ(FS20) auf einem RaspberryPi 3B+ unter piVCCU3 und der FHZ2000, sowie mit 2 LAN-Gateways

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Hochwertige Sprachausgabe über Voice Reader von Linguatec

Beitrag von buempi » 22.02.2008, 12:53

Hallo PapaWolf

Sendebefehle werden von Homeputer immer erst ausgeführt, wenn ein WARTE() kommt oder am Ende des Makros. Da sich der EIN- und der AUS-Befehl gegenseitig aufheben, wird also in deinem Makro gar kein Signal erzeugt.

Füge nach Steckdose2 einschalten ein

Code: Alles auswählen

warte("00:00:01")
ein, und es läuft.

Auch vor dem Ausschalten musst du vermutlich ein WARTE() anbringen, damit der Lautsprecher nicht ausgeschaltet wird, bevor der Text fertig gesprochen ist.

Viele Grüsse
Bümpi

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“