Eine einfache Spracherkennung App ich codiert funktioniert nicht, wie ich es erwartet hatte. Grundsätzlich gibt es keine sichtbaren Fehler im Protokoll und es wird gut übersetzt, aber wenn ich auf die Schaltfläche klicke, erscheint die Spracherkennung und beginnt mit der Aufnahme, aber nach der Aufnahme erscheint nichts auf dem App-Bildschirm, auf dem die Listview angezeigt werden soll was auch immer aufgezeichnet wurde (im Textformat)Einfache Spracherkennung App auf Android funktioniert nicht wie erwartet
hier ist der Java-Code
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import java.util.ArrayList;
public class Voice extends Activity implements View.OnClickListener {
ListView lv;
final static int check = 1111;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.voice);
lv = (ListView) findViewById(R.id.lvVoiceReturn);
Button b = (Button) findViewById(R.id.bVoice);
b.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); // set speech recognizer intent
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); //set language
i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak up son!"); // set prompt to user
startActivityForResult(i, check);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == check && resultCode == RESULT_OK) {
// create an empty array list and link it to the recognizer intent
ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
// link the listview from my layout to the arraylist I created just now with the results from voice recognition
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
}
}
}
Und hier ist das xML-Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/bVoice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Click to Speak" />
<ListView
android:id="@+id/lvVoiceReturn"
android:layout_width="match_parent"
android:layout_height="fill_parent" />
</LinearLayout>
Dank!
dumme fehler. Ich hatte nicht mit dem Internet verbunden. Die App funktioniert jetzt und eine überraschende Spracherkennung erfordert Konnektivität. Aber danke Aditi! – Kalid