problem mit linguatec

hallo und guten abend !

ich habe heute endlich mein linguatec bekommen und installiert. die sprache ist wirklich super gut und verständlich. aber leider hab ich ein problem:
wenn ich eine sprachausgabe starte, dauert es bis zu 10 sekunden, bis sie ausgeführt wird. ausserdem sind manchmel kurze aussetzer dazwischen.

kennt jemand das problem? die software läuft auf einem 1,5ghz prozessor.

happy day und dank, frank

Hallo Frank,

passiert das nur wenn Du einen Sprachbefehl per PHP auslöst oder auch in der Sprachausgabesoftware selber?

hallo thomas !

das passiert auch aus der software wenn ich sie direkt aufrufe.

happy day, frank

OK. Leider steht auf der Web Seite von Linguatec nichts zur Mindestanforderung im Bezug auf die CPU. Nur so viel:

Systemanforderungen: Windows 2000 ab SP2, Windows XP; 400 MB freier Festplattenspeicher; Internetzugang für Produktaktivierung; Internet Explorer (ab Version 6)

Würde mal eine e-mail an den support schreiben, die haben bei mir auch immer geantwortet.

Habe die Software aber bei mir wieder deinstalliert, weil ich den Befehl TTS_GenerateFile brauche und das mit Linguatec nicht geht. Ich lasse mir aber teilweise sehr lange Texte ansagen und nur über ein wav File kann ich ermitteln wann die Sprachausgabe beendet ist und im Script weiter fortfahren…

hallo !

ich hab auch nach mindestanforderungen gesucht. ich kann mir aber auch nicht vorstellen, dass ein 1,5 ghz rechner dafür nicht ausreichen soll. ich bin auf jeden fall dezenz enttäuscht, wenn ich extra die software kaufe und sie dann nicht läuft. ich schreib mal an den support :slight_smile:

happy day und dank, frank

Hallo Thomas,
das ist (zu Linguatec) zwar etwas OT, aber …

… und nur über ein wav File kann ich ermitteln wann die Sprachausgabe beendet ist und im Script weiter fortfahren…

… das (ver)suche ich auch. Gibst du mir mal einen „Schubs“ und zeigst mir, wie das geht.

Ermitteln der Abspielzeit einer Sprachausgabe oder eines Klanges:
Da habe ich lange getüftelt und es ist etwas komplizierter, hier meine Lösung:
Ich habe immer je Soundkarte 2 winamp Instancen. Eine für Klänge und Sprache ($SK1_wav) und eine für Musik und Internetradio($SK1).
Die Lautstärke wird vor der Sprach- oder Klangausgabe gespeichert und danach wieder auf den Ursprungswert zurückgesetzt.

File : Konstanten.ips.php


//----------------------- wav & Sprachausgabe Dateien -------------------------

 $wav = array(
 "Hinweis"  => "C:/IP-Symcon/Thomas/hinweis.wav",
 "Meldung"  => "C:/IP-Symcon/Thomas/meldung.wav",
 "Abmelden" => "C:/IP-Symcon/Thomas/abmelden.wav",
 "Aus"      => "C:/IP-Symcon/Thomas/aus.wav",
 "coin"     => "C:/IP-Symcon/Thomas/coin-fall.wav",
 "thunder"  => "C:/IP-Symcon/Thomas/thunder.wav",
 "clock"    => "C:/IP-Symcon/Thomas/clock.wav",
 "bell"     => "C:/IP-Symcon/Thomas/bell.wav",
 "Sprache1" => "C:/IP-Symcon/Thomas/Sprache1.wav");

function SK1_wait($w1)
 {
   $SK1 = 56641;

   if ($w1 == 1)
   {
      $WAC_Vol = GetValueInteger("SK1_WAC_Vol_Merk"); //Lautstärke von mp3 am Anfang zurückholen
      WAC_SetVolume($SK1, $WAC_Vol);
      SetValueBoolean("Run_Winamp_SK1", false);
      return; //raus ohne Pause
   }
   
   sleep(1);
   $Warten = GetValueInteger("Length_SK1_2");

   if($Warten<10)
   {
     Sleep($Warten+1); // mind. 1s warten für sehr kurze Texte/Klänge
     SetValueBoolean("Run_Winamp_SK1", false);
   }
   else
   {
      Sleep($Warten); // für längere Texte/Klänge
      SetValueBoolean("Run_Winamp_SK1", false);
   }

   $WAC_Vol = GetValueInteger("SK1_WAC_Vol_Merk"); //Lautstärke von mp3 am Anfang zurückholen
   WAC_SetVolume($SK1, $WAC_Vol);
 }

File : Winamp_SK1.ips.php


include(IPS_GetScriptFile("Konstanten"));

 // Mehrfaches Triggern in kurzer Zeit verhindern
 if ($Run_Winamp_SK1){return;}
 SetValueBoolean("Run_Winamp_SK1", true);

 //-------------------- Sprache und Ton ohne Musikunterbrechnung ---------------

 $WAC_Vol = GetValueInteger("SK1_WAC_Vol");
 SetValueInteger("SK1_WAC_Vol_Merk", $WAC_Vol); //Lautstärke von mp3 am Anfang speichern
 WAC_SetVolume ($SK1, 5);

 $Ansagetext_wav = GetValueString("Ansagetext_wav_SK1");
 $Ansagetext_wav = explode(",", $Ansagetext_wav);

 $wz = count($Ansagetext_wav); // Werte zählen

 $Ausgabe_Typ = $Ansagetext_wav[$wz-1];

 unset($Ansagetext_wav[$wz-1]); // $Ausgabe_Typ von Text trennen

 $Ansagetext = implode(",", $Ansagetext_wav); //Ansagetext zusammenfügen

 $Error = strlen($Ansagetext); //Fehler durch leeren Ansagetext abfangen
 if($Error<1)
 {
   SetValueBoolean("Run_Winamp_SK1", false);
   return;
 }
 
 if($Ausgabe_Typ == "Sprache") //Sprachausgabe
 {
   TTS_GenerateFile($TTS_SK1, $Ansagetext, "c:/IP-Symcon/Thomas/Sprache1.wav",39);
   IPS_Sleep(50);

   WAC_Stop($SK1_wav);
   WAC_SetRepeat($SK1_wav, false);
   WAC_SetShuffle ($SK1_wav, false);
   WAC_ClearPlaylist($SK1_wav);
   WAC_AddFile($SK1_wav,"c:/IP-Symcon/Thomas/Sprache1.wav");
 }
 else // diverse Töne Ausgeben
 {
   WAC_Stop($SK1_wav);
   WAC_SetRepeat($SK1_wav, false);
   WAC_SetShuffle ($SK1_wav, false);
   WAC_ClearPlaylist($SK1_wav);
   WAC_AddFile($SK1_wav,$wav[$Ausgabe_Typ]);
 }

 //------------------------------ Wav abspielen --------------------------------

 WAC_Play($SK1_wav);
 IPS_Sleep(200); //warten bis winamp Laufzeit übergeben hat
 //Triggerscript Zeit übermittel wie lange es warten soll
 $SK1_WAC_Length = GetValueString("SK1_WAC_Length_2");
 $Length = explode(":",$SK1_WAC_Length);
 $zeit = ($Length[1]*60)+$Length[2];
 SetValueInteger("Length_SK1_2",$zeit); //berechnete Wartezeit an die Funktion übergeben

 //-----------------------------------------------------------------------------

Aufruf der Sprache oder des Klanges:
(der String „Ansagetext_wav_SK1“ triggert mit OnUpdate dann Winamp_SK1.ips.php)
Die Funktion SK1_wait() gibt die Zeit an, die das Script auf die Sprache oder den Klang warten muß bis es weiter abgearbeitet wird.


$nachricht="Hier kann ein sehr langer Text stehen";
 SetValueString("Ansagetext_wav_SK1", "$nachricht,Sprache");     //Sprachausgabe
 sleep(1); // Platzhalter für Scriptlaufzeit nicht verändern
 SK1_wait(2); // Laufzeit der Winamp Ausgabe
 //hier gehts weiter im Script

Ich habe ja ein paar Tage Zeit zum üben - ich denke, das kriege ich bei mir so eingebunden. Sind einige gute Tipps für mich dabei, z.B. Sound und Sprache einfach über 2 Instanzen zu trennen (darauf bin ich selbst noch nicht gekommen, obwohl ich schon mit mehreren Instanzen arbeite).