/*
* Copyright 2011 Greg Milette and Adam Stroud
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package root.gast.speech.voiceaction;
import java.util.List;
/**
* a specific piece of speech functionality,
* similar to a GUI Dialog but for speech. Instead of Buttons, it
* may use {@link VoiceActionCommand} to recognize certain speech
* inputs.
* @author Greg Milette <<a
* href="mailto:gregorym@gmail.com">gregorym@gmail.com</a>>
*/
public interface VoiceAction
{
/**
* match String in heard, optionally take action and
* call OnNotUnderstoodListener if cannot match.
* @param heard recognition results
* @param confidenceScores score for each String in heard
*/
boolean interpret(List<String> heard, float[] confidenceScores);
/**
* return the text to show as a prompt when executing <br>
* if there is no prompt, then return null or an empty string
*/
public String getPrompt();
public void setPrompt(String prompt);
/**
* the prompt to speak before presenting the recognition dialog
*/
public String getSpokenPrompt();
public void setSpokenPrompt(String prompt);
public boolean hasSpokenPrompt();
public void setNotUnderstood(OnNotUnderstoodListener notUnderstood);
public OnNotUnderstoodListener getNotUnderstood();
/**
* ignore any responses below this minimum confidence
*/
public float getMinConfidenceRequired();
/**
* confidence greater than this means
* {@link OnNotUnderstoodListener#REASON_NOT_A_COMMAND}
*/
public float getNotACommandConfidenceThreshold();
public void setNotACommandConfidenceThreshold(
float notACommandConfidenceThreshold);
/**
* confidence less than this means
* {@link OnNotUnderstoodListener#REASON_INACCURATE_RECOGNITION}
*/
public float getInaccurateConfidenceThreshold();
public void setInaccurateConfidenceThreshold(
float inaccurateConfidenceThreshold);
}