TTS-Instanz

Hallo,

wenn ich eine TTS-Instanz anlege und in der Testumgebung einen Text eingebe, müsste dieser über die Soundkarte
ausgegeben werden. Ist das so korrekt? Bei mir kommt keine Ausgabe (Win 7 64 bit, einfache Onboard Soundkarte).
Ich habe verschiedene Forenbeiträge zu TTS gelesen, steige mit meinem Problem aber nicht ganz durch.
Ist die Engine „Micorsoft Anna“ standardmäßig in Win 7 vorhanden oder muss ich die installieren?
Gibt es die Anna auch als deutsche Version?

Mein Ziel ist die Ausgabe einfacher Meldungen, z.B. morgens kurze Angaben der Uhrzeit (alle 15 Minuten) oder
Warnmeldungen für vorhandene Sensoren.

Viele Grüße

Ecoli

Abend!

Das Thema wurde schon reichlich behandelt…aber hier eine kurze Zusammenfassung:

Bei Windows 7 ist die deutsche Anna nicht automatisch mit dabei. Es gibt aber wohl Wege diese nachträglich einzubinden. Google bringt da einige Ergebnisse und auch hier im Forum findet man einiges dazu.

Alternativ wird gerne TTS über die Google Voice API genutzt. Funktioniert eigentlich sehr gut. Es gibt aber auch noch einige andere Stimmen, welche man im Internet käuflich erwerben kann. Ich selbst hatte mal einen Thread zu dem Thema eröffnet.

Ich habe Anfangs die Google Stimme genutzt und bin dann auf „Alex“ (https://www.cereproc.com/de/storede) umgestiegen und bin damit sehr zufrieden!

Ein noch ein paar Links für dich:

http://www.ip-symcon.de/forum/threads/26004-Geniale-Stimme-für-Sprachausgaben-per-TTS!!!?highlight=tts
http://www.ip-symcon.de/forum/threads/23806-Text-to-Speach-unter-WIN-7-will-nicht?highlight=tts
http://www.ip-symcon.de/forum/threads/20523-Text-to-Speech-verweigert-den-Dienst?p=185748#post185748
http://www.ip-symcon.de/forum/threads/6488-Komfortable-TTS-Ausgabe-Funktion
http://www.ip-symcon.de/forum/threads/20780-sehr-natuerliche-Sprachausgabe?highlight=tts

Grüße,
Chris

Hallo Chris,

vielen Dank für die Antwort, die Links hatte ich auch schon gefunden. Nochmal zu dem Punkt der fehlenden Soundausgabe aus der Testumgebung der TTS-Instanz: auch die US-Anna sagt nicht das, was ich eintippe, funktioniert aber grundsätzlich auf dem Rechner. Hängt das mit der Ausführung des IP-Symcon-Dienstes als lokaler Benutzer zusammen (das entnehme ich als Problem aus Forenbeiträgen)? Oder ist das eine andere Baustelle?

Danke & Grüße

Ecoli

RTFM :rolleyes:
http://www.ip-symcon.de/service/dokumentation/modulreferenz/text-to-speech/
Michael

Moin Ecoli,

kann dir nicht genau sagen woran es jetzt scheitert bei dir, ich hatte mich bei der Einrichtung an vorhandene Anleitungen gehalten und dann lief es direkt ohne Probleme… Wenn du die richtige Soundkarte zur Ausgabe gewählt hast und den Ton an hast und Boxen angeschlossen, dann fallen mir sonst keine „Stolpersteine“ ein.

Nach der englischen Stimme hatte ich die Google Stimme und seit einiger Zeit habe ich die Stimme „Alex“ im Einsatz. Alles ohne Aussetzer oder größere Probleme bisher…

Grüße,
Chris

Hallo,

danke für die Rückmeldungen. „RTFM“ habe ich gemacht, es ist für nicht EDV-ler (bin so einer) schon nicht „unkomplex“ und fragen darf man im Forum. Man findet trotz Suchfunktion auch nicht immer alles und mit einer Antwort tauchen für Nichtprofis dann auch immer neue Fragen auf…

Ich habe mir für meine einfachen Zwecke erst mal eine Lösung mit Balabolka (Konsoleversion) überlegt. Wenn ich nicht falsch liege, kann ich das Programm mit IPS_Execute aufrufen und beim Aufruf Parameter (konkret: den Ausgabetext) übergeben.

Mit balabolka_console.exe -t „Das ist ein Test“ wird aus der Windows Eingabeaufforderung bei mir auch „Das ist ein Test“ als Sprachausgabe ausgegeben.

Ich habe jetzt ein kleines Syntaxproblem: Wie übergebe ich das -t „Das ist ein Test“ über IPS_Execute? Laut Doku ist die Syntax von IPS_Execute:

boolean IPS_Execute ( string $Programmpfad, string $Parameter, boolean $Dummy, boolean $Warten ).

$Parameter entspricht ja für Balabolka -t „Das ist ein Test“. Die Anführungszeichen sind für Balabolka erforderlich, sonst wird nur das erste Wort ausgegeben.

Ich habe es jetzt mal so probiert:


<?
$parameter = "Das ist ein Test";
IPS_Execute("D:/balabolka_console/balabolka_console.exe, $parameter, false, false, 0);
?>

und bekomme als Fehlermeldung: „Parse error: syntax error, unexpected end of file in [Text to Spech\Sprachtest] on line 5“, Das Script hat nur 4 Zeilen.

Mache ich einen grundsätzlichen Denkfehler oder ist das ein reines Syntaxproblem?

Danke & Grüße

Ecoli

Das mit RTFM bezog sich auf deine Frage nach dem Dienst unter Benutzerkonto ausführen. Und das steht da.
Sicher darf und soll man auch im Forum fragen; deine Frage gab aber Anlass zur Vermutung das die Anleitung nicht gelesen wurde. Wenn das falsch Aufgenommen wurde, entschuldige ich mich dafür.
Zu deinem Script.
Der Syntax Fehler ist eine fehlendes " vom Programm Namen. Parameter sollte auch so aussehen :


$parameter = '-t "Das ist ein Test"';

Michael

Hallo Michael,

danke für die schnelle Antwort und den Hinweis zur richtigen Syntax. Ich habe etwas herumprobiert und bin jetzt bei dieser Version gelandet, die auch tatsächlich den Text über die Soundkarte ausgibt:

<?
$parameter = '-t "Das ist ein Test"';
IPS_ExecuteEx("D:/balabolka_console/balabolka_console.exe",$parameter,false,false,1);
?>

Als Befehl verwende ich jetzt IPS_ExecuteEx, mit IPS_Execute läuft das so nicht (wohl wieder das Problem des „richtigen“ Users,).

Der letzte Parameter (bei mir „1“) ist laut Doku „Die User Session ID, die genutzt werden soll (Unter XP ab 0, 2003/Vista ab 1), < 0 für automatische Auswahl“. Das verwirrt mich etwas, ich habe verschiedene Zahlen probiert, meine Ausgabe funktioniert nur bei -1 und 1, nicht bei 0 und auch nicht bei <-1 oder >1. Damit kann ich natürlich gut leben, aber so richtig nachvollziehbar ist diese geheime Logik für mich nicht.

Hier auch was zum Thema: http://www.ip-symcon.de/forum/threads/6488-Komfortable-TTS-Ausgabe-Funktion