private void s4() throws IllegalArgumentException, IOException, UnsupportedAudioFileException, ProgramEndedException
	{
		while(!energy.voiceDetected())
		{
			try{
				buffer.receiveNewData();
				if(buffer.getLastIndex()- buffer.getEndIndex() > config.getWordPause() && (buffer.getEndIndex() - buffer.getStartIndex() > 500))
				{
					//Spracheingabe bestätigt. Starte Analyse.
					double[] temp;
					temp = buffer.getInterestingData();
					String match = auswertung.getMatch(temp);
										
					ausgabe.add(match);
					
					System.out.print(" " +match);		

					buffer.resetPoints();
					nextState = 1;
					return;	
				}
				//Hier ist die Spracheingabe zu kurz für ein Wort, alles wird verworfen.
				else if(buffer.getLastIndex()- buffer.getEndIndex() > config.getWordPause() && (buffer.getEndIndex() - buffer.getStartIndex()) <= 500)
				{
					buffer.resetPoints();
					nextState = 1;
					return;
				}
			}
			//Hier wurde das Ende des Audioinputs erkannt
			catch(IOException io)
			{
				// Wenn noch eine Spracheingabe markiert ist, wird diese analysiert
				// Im Anschluss wird das Programm beendet.
				if(buffer.getEndIndex() != -1)
				{
					double[] temp;
					temp = buffer.getInterestingData();
					String match = auswertung.getMatch(temp);
					ausgabe.add(match);
					System.out.print(" " + match);		
					buffer.resetPoints();
				}
				throw new ProgramEndedException();
				
			}	
		}
		buffer.resetEndPoint();
		// Endpunkt der Spracheingabe wurde nicht bestätigt, Rückkehr zu Zustand 3.
		nextState = 3;
	}