Audiodatei stottert oder hat Echo

Hallo an Alle,

ich habe mir die Marlene von Ivona gekauft. Das ist eine schöne Stimme für die Sprachausgabe.

Ich generiere eine Wave da mit tts_gererateFile die ich dann mit dem Player abspiele.
Manchmal stottert Marlene. Sie wiederholt teile des Textes.

Das Garagentor ist auf, auf.

Hat jemand eine Idee was ich machen kann?

Liegt es an der WAV Datei oder am Player? Stottert Sie, wenn du den Text mal in der Windows Text-To-Speech Applikation aus der Systemsteuerung sprechen lässt?

paresy

@paresy

Ich habe eine Kopie der Datei vor dem Abspielen gemacht.
Die Audio Datei ist OK nur beim Abspielen stottert es.

Hier die Quellen.


while (getvalue($ID_Text_To_Speech) <> "") {
	  	if (IPS_SemaphoreEnter($SemaPhoreTextToSpeech,5000)) {
			$arraySpeech = array();
			$arraySpeech = unserialize(getvalue($ID_Text_To_Speech));
			//print_r ($arraySpeech);
			setvalue($ID_Text_To_Speech,"");
		   IPS_SemaphoreLeave($SemaPhoreTextToSpeech);
		   $PauseNachSprachausgabe = 0;
		   for ($i = 0; $i < (count($arraySpeech)); $i++ ) {
		      switch ($arraySpeech[$i]["ID_SignalTon"]) {
     			   case 0:	$StartSound = "";
	 			            $EndSound = "";
	 			            break;
	 			   case 1:	$StartSound = "c:\IP-Symcon\sounds\start.mp3";
	 			            $EndSound = "c:\IP-Symcon\sounds\Ende.mp3";
	 			            break;
	 			   case 2:	$StartSound = "c:\IP-Symcon\sounds\Notify1.wav";
	 			            $EndSound = "";
	 			            break;
	 			}
		      //print_r( $arraytext);
		      //print_r ($arraySpeech[$i]);
		      $PauseNachSprachausgabe = $PauseNachSprachausgabe + ((int) strlen($arraySpeech[$i]["TextToSpeech"]) / 10 * 1000);
		      //Prüfen ob Signalton gespielt wird
				if (($arraySpeech[$i]["SignalTonOnOff"]) and ($StartSound <> "")) {
					WAC_AddFile($ID_WAV_Player,$StartSound);
	   		}
				if ($arraySpeech[$i]["Volume"] > 0) {
	            $PlayVolume = $arraySpeech[$i]["Volume"];
				} else {
					$PlayVolume = getvalueInteger($ID_Volume);
				}
	  			if ($arraySpeech[$i]["TextToSpeech"] <> "") {
					WAC_SetVolume($ID_WAV_Player,$PlayVolume);
					//echo $arraytext[0]. "  ";
					WAC_SetRepeat($ID_WAV_Player, false);
					//ips_sleep(200);
	    			TTS_GenerateFile($ID_TTS_Player ,$arraySpeech[$i]["TextToSpeech"], IPS_GetKernelDir().$Sprachfile."_".$i.".wav",$Quality);
	    			//ips_sleep(200);
	    			//copy(IPS_GetKernelDir().$Sprachfile."_".$i.".wav", IPS_GetKernelDir()."media/saveSpeech/".time().".wav");
	    			//ips_sleep(200);
					WAC_SetRepeat($ID_WAV_Player , false);
					WAC_AddFile($ID_WAV_Player,IPS_GetKernelDir().$Sprachfile."_".$i.".wav");
					//IPS_Sleep(100);
	 			}
	 			if (($arraySpeech[$i]["SignalTonOnOff"]) and ($EndSound <>"")) {
     				WAC_AddFile($ID_WAV_Player,$EndSound);
	   		}
	   	}
	   	WAC_SetVolume($ID_WAV_Player,$PlayVolume);
	   	WAC_Play($ID_WAV_Player);
	   	ips_sleep(500);
	   	$PlayerStatus = getvalueInteger($ID_WAV_Player_Status);
	   	while ($PlayerStatus == 1) {
	   	   ips_sleep(1000);
	   	   $PlayerStatus= getvalueInteger($ID_WAV_Player_Status);
	   	}
	   	ips_sleep(1000);
	   	WAC_ClearPlaylist($ID_WAV_Player);
	   	//IPS_Sleep($PauseNachSprachausgabe);
   	} else {
		   IPS_SetEventActive($EreignisID, true);
		   break;
		}
	}

Hi,

ich kenn das auch. Teils wird gar nichts abgespielt.
Wenn mans mahrfach hintereinander testet gehts dann immer.

Hast Du das Problem gelöst?

Hängt definitiv vom player ab und nicht von der Datei.
Habe das Problem bei beidem, TTS generate und auch beim Abspielen wiederkehrender wav files.

Sebastian