Komfortable TTS Ausgabe Funktion

Mhmm, das hab ich gemacht.
Ich versuchs weiter, irgendwie muss es ja gehn.

Hat er im angegebenen Verzeichnis wav Dateien angelegt?

Nein, bis auf die, die ich aus dem Rar Archiv reingepackt habe.
Nochmals Danke für die Unterstüzung :smiley:

  1. mach mal bitte ein Bild Deines Objektbaums mit der aufgeklappten Soundkarteninstanz
  2. poste mal den tts_play Befehl den Du ausführst
  3. poste bitte das Scipt welches Du angelegt hast, mit der Funktion

Bitte:

<?

 	function tts_play($sk,$ansagetext,$ton,$modus)
 	{
   	/*
		modus == 1 ==> Sprache = on / Ton = off / Musik = play / Slider = off / Script Wait = off
		modus == 2 ==> Sprache = on / Ton = on / Musik = pause / Slider = off / Script Wait = on
		modus == 3 ==> Sprache = on / Ton = on / Musik = play  / Slider = on  / Script Wait = on
		*/

		$wav = array
		(
      "hinweis"  => IPS_GetKernelDir()."media/wav/hinweis.wav",
      "meldung"  => IPS_GetKernelDir()."media/wav/meldung.wav",
      "abmelden" => IPS_GetKernelDir()."media/wav/abmelden.wav",
      "aus"      => IPS_GetKernelDir()."media/wav/aus.wav",
      "coin"     => IPS_GetKernelDir()."media/wav/coin-fall.wav",
      "thunder"  => IPS_GetKernelDir()."media/wav/thunder.wav",
      "clock"    => IPS_GetKernelDir()."media/wav/clock.wav",
      "bell"     => IPS_GetKernelDir()."media/wav/bell.wav",
      "horn"     => IPS_GetKernelDir()."media/wav/horn.wav",
      "sirene"   => IPS_GetKernelDir()."media/wav/sirene.wav"
		);

		$id_sk1_musik         = 32727 /*[Skripts\TTS\Media Player Sound]*/;
		$id_sk1_musik_status	= 26958 /*[Skripts\TTS\Media Player Sound\Status]*/;
		$id_sk1_musik_vol     = 22818 /*[Skripts\TTS\Media Player Sound\Lautstärke]*/;
   	$id_sk1_ton_status 	  = 33965 /*[Skripts\TTS\Media PlayerSprache\Status]*/;
		$id_sk1_ton           = 15079 /*[Skripts\TTS\Media PlayerSprache]*/;
		$id_sk1_tts           = 15510 /*[Skripts\TTS\Text To Speech]*/;
		$id_sk1_counter		    = 21548 /*[Objekt #21548 existiert nicht]*/;

		switch ($sk)
		{
			//---------------------------------------------------------------------
			case '1':

		  $status = GetValueInteger($id_sk1_ton_status);
		  while ($status == 1)	$status = GetValueInteger($id_sk1_ton_status);

      $sk1_counter = GetValueInteger($id_sk1_counter);
    	$sk1_counter++;
      SetValueInteger($id_sk1_counter, $sk1_counter);
			if($sk1_counter >= 9) SetValueInteger($id_sk1_counter, $sk1_counter = 0);

		 	if($ton == "zeit")
 			{
				$time = time();
				// die Integer-Wandlung dient dazu eine führende Null zu beseitigen
   			$hrs = (integer)date("H", $time);
   			$min = (integer)date("i", $time);
   			$sec = (integer)date("s", $time);
   			// "kosmetische Behandlung" für Ein- und Mehrzahl der Minutenangabe
   			if($hrs==1) $hrs = "ein";
   			$minuten = "Minuten";
   			if($min==1)
   			{
      			$min = "eine";
      			$minuten = "Minute";
   			}
   			// Zeitansage über Text-To-Speech
  	 		$ansagetext = "Die aktuelle Uhrzeit ist ". $hrs. " Uhr und ". $min. " ". $minuten;
  	 		$ton        = "";
		 	}

	   	//Lautstärke von Musik am Anfang speichern
			$merken = $musik_vol = GetValue($id_sk1_musik_vol);
      $musik_status 			 = GetValueInteger($id_sk1_musik_status);

			if($modus == 2)
			{
			   if($musik_status != 2)	WAC_Pause($id_sk1_musik);
			}


			if($modus == 3)
			{
				//Slider
  		 	for ($musik_vol; $musik_vol>=1; $musik_vol--)
   	  	{
      		WAC_SetVolume ($id_sk1_musik, $musik_vol);
          $slider = 3000; //Zeit des Sliders in ms
					if($merken>0) $warten = $slider/$merken; else $warten = 0;
					IPS_Sleep($warten);
     		}
     	}

			if($ton != "" and $modus != 1)
			{
  	   		WAC_Stop($id_sk1_ton);
      		WAC_SetRepeat($id_sk1_ton, false);
     			WAC_ClearPlaylist($id_sk1_ton);
     			WAC_AddFile($id_sk1_ton,$wav[$ton]);
     			WAC_Play($id_sk1_ton);
          //solange in Schleife bleiben wie 1 = play
   	  		sleep(1);
     		  $status = getvalue($id_sk1_ton_status);
  	   		while ($status == 1)	$status = getvalue($id_sk1_ton_status);
	    }

			if($ansagetext !="")
			{
  				WAC_Stop($id_sk1_ton);
	      	WAC_SetRepeat($id_sk1_ton, false);
          WAC_ClearPlaylist($id_sk1_ton);
          TTS_GenerateFile($id_sk1_tts, $ansagetext, IPS_GetKernelDir()."media/wav/sprache_sk1_" . $sk1_counter . ".wav",39);
		     	WAC_AddFile($id_sk1_ton, IPS_GetKernelDir()."media/wav/sprache_sk1_" . $sk1_counter . ".wav");
			  	WAC_Play($id_sk1_ton);
			}

			//Script solange anghalten wie Sprachausgabe läuft
			if($modus != 1)
			{
	   		sleep(1);
				$status = GetValueInteger($id_sk1_ton_status);
     		while ($status == 1)	$status = GetValueInteger($id_sk1_ton_status);
	    }

	 		if($modus == 3)
			{

		    $musik_vol = GetValueInteger($id_sk1_musik_vol);
   		  for ($musik_vol=1; $musik_vol<=$merken; $musik_vol++)
      	{
          WAC_SetVolume ($id_sk1_musik, $musik_vol);
          $slider = 3000; //Zeit des Sliders in ms
					if($merken>0) $warten = $slider/$merken; else $warten = 0;
					IPS_Sleep($warten);
      	}
      }
			if($modus == 2)
			{
		   	if($musik_status != 2)	WAC_Pause($id_sk1_musik);
		  }
			break;

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

			//Hier können weitere Soundkarten eingefügt werden
			//case '2':
			//entsprechende Werte bitte anpassen
		}
 	}


?>
<?
include "36786.ips.php";
tts_play(15079 /*[Skripts\TTS\Media PlayerSprache]*/,"Das ist ein Test","bell",2);
?>

TTS.PNG

Die Soundkarte ist falsch. Bitte probieren:

include "36786.ips.php";
tts_play(32727,"Das ist ein Test","bell",2); 

Das hatte ich auch schon Probiert.
Es ist zum Haare raufen :rolleyes:

include "36786.ips.php";
tts_play(1,"Das ist ein Test","bell",2);

Sorry, mach mal so.

Super es geht schon mehr,
es unterbricht mir zumindest den laufenden Radiostream.
Aber die Datei legt er nicht an. Auch höre ich keine Klänge.
Habe es mal auf faden gestellt, das klappt auch.

Wenn ich jetzt dein neues Skript laufen lasse fadet die Musik kurz aus,
dann kommt folgende Fehlermeldung:

Warning: Media Player Fehler (2): Datei/URL konnte nicht abgespielt werden in E:\IP-Symcon\scripts\36786.ips.php on line 94
Warning: % wurde nicht gefunden in E:\IP-Symcon\scripts\36786.ips.php on line 106
Warning: Media Player Fehler (2): Datei/URL konnte nicht abgespielt werden in E:\IP-Symcon\scripts\36786.ips.php on line 108

Habe auch mal einen deiner Wavefiles als sprache_sk1_.wav umbenannt,
hat auch nicht gebracht. Trotz allem, schon mal vielen Dank für deine Mühe.

Gruß Marcus

Lege mal bitte noch eine Intergervariable sk1_counter an.
Diese in Zeile 31 zuweisen.

Dank der super Hilfe von Thomas (Ferengi-Master),
wurde der Fehler schnell gefunden. Ein Tippfehler von mir
im Verzeichnisnamen. Es läuft jetzt und ist eine Klasse Funktion. :loveips:

Gruß Marcus

ich habe den function tts_play.ips.php nach Scripts kopiert, Variablen angepasst und bekomme die Fehlermeldung:
Fatal error: Call to undefined function TTS_Play() in [TTS\Text ausgeben] on line 3
was mach ich falsch?

<?
include "function tts_play.ips.php";
TTS_Play(1 ,"Das ist ein Test","thunder",3);
?>

Die Funktion wird klein geschrieben.:wink:

hab ich versucht, gleicher fehler :-((

Hast Du am Anfang <? und am Ende ?> in der Funktion?

Stört vielleicht die Leerstelle im Dateinamen ?

nein, hatte ich nicht!
DANKE

Moin…

… hat jemand noch die Stimme STEFFI für die TTS Ausgabe auf der Festplatte liegen zum installieren?

Hab jetzt diverse Links ausprobiert und finde Sie nicht mehr zum Download!

Danke und Gruß,
Peter

Kann sein das ich noch „STEFFI“ auf dem Visu/IPS-Rechner habe.
Schau ich nach. Ich melde mich.

Hallo Peter,

ich habe „STEFFI“ noch gefunden. Sind allerdings 21MB.
Kannst Du mir per PM deine E-Mail-Adresse schicken?

Dann sende ich Dir das per „TransferBigFiles“.