1
はここに私のコードです:SpeechRecognizer(Android音声認識)を使用しようとしていますが、起動していませんか?
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_route);
SetupButton();
}
private void SetupButton()
{
Button createNewMessage = (Button) findViewById(R.id.button);
createNewMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ListenForNewMessage();
}
});
}
private void ListenForNewMessage()
{
final SpeechRecognizer newDeliverySpeech = SpeechRecognizer.createSpeechRecognizer(this);
RecognitionListener newDeliveryRecognitionListener = new RecognitionListener() {
@Override
public void onReadyForSpeech(Bundle params) {
Log.d("SpeechListening","onReadyForSpeech");
}
@Override
public void onBeginningOfSpeech() {
Log.d("SpeechListening","onBeginningOfSpeech");
}
@Override
public void onRmsChanged(float rmsdB) {
//do nothing
}
@Override
public void onBufferReceived(byte[] buffer) {
//do nothing
}
@Override
public void onEndOfSpeech() {
Log.d("SpeechListening","onEndOfSpeech");
}
@Override
public void onError(int error) {
//do nothing
}
@Override
public void onResults(Bundle results) {
ArrayList<String> userMessage;
userMessage = results.getStringArrayList(RESULTS_RECOGNITION);
PushNewDelivery(userMessage);
}
@Override
public void onPartialResults(Bundle partialResults) {
//do nothing
}
@Override
public void onEvent(int eventType, Bundle params) {
//do nothing
}
};
newDeliverySpeech.setRecognitionListener(newDeliveryRecognitionListener);
if (newDeliverySpeech.isRecognitionAvailable(getApplicationContext()))
{
Log.d("SpeechListening","started listening hopefully");
newDeliverySpeech.startListening(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH));
}
}
}
問題がある、唯一のがうまくいけばがログに記録されて聴き始め、RecognitionListener
は決してonReadyForSpeech()
またはと呼ばれるそのメソッドのいずれかを持っていません。
ここで間違っていることを教えてもらえますか?
いいえ、ありません変更するには、この行の下に
を変更することができます。ドキュメントでは、デフォルトとしてインテントを残しても問題ありません –