2011-09-27 13 views
19

Android'de ses girişi üzerinde çalışıyorum. BenSes Girdi Android'de Metni Düzenle mi?

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.html

gelen numuneyi kullanılan Ve Xperia X10 test ederken, ben "Şimdi konuşun" diyalog var ama kapalı alır ben girişi bazı ses önce. Sesli arama gerçekleştirmeye çalışıyorum örn. Eğer ses girişi James Bond ise o zaman James'i ilk olarak Edit Text and Bond (Metni Düzenle) ve Edit (Son Ad) Edit Text (Metni Düzenle) olarak doldurmak istiyorum. Bu isim için veritabanında arama yapacak. Ancak API Demo örneğini kullanmaya çalışırken, çalışmıyor. Bir şeyleri kaçırıyor olabilirim. ApiDemos örneğinden ziyade ses girişi için herhangi bir örnek gönderilecek mi?

Şimdiden teşekkürler.

cevap

17

Ses tanıma için aşağıdaki kodu kullanabilirsiniz. Ses tanıma için eksiksiz bir eğitim için Click Here.

import android.app.Activity; 
import android.os.Bundle; 
import android.content.Intent; 
import android.content.pm.PackageManager; 
import android.content.pm.ResolveInfo; 
import android.speech.RecognizerIntent; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.ListView; 
import java.util.ArrayList; 
import java.util.List; 

/** 
* A very simple application to handle Voice Recognition intents 
* and display the results 
*/ 
public class VoiceRecognitionDemo extends Activity 
{ 

private static final int REQUEST_CODE = 1234; 
private ListView wordsList; 

/** 
* Called with the activity is first created. 
*/ 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.voice_recog); 

    Button speakButton = (Button) findViewById(R.id.speakButton); 

    wordsList = (ListView) findViewById(R.id.list); 

    // Disable button if no recognition service is present 
    PackageManager pm = getPackageManager(); 
    List<ResolveInfo> activities = pm.queryIntentActivities(
      new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0); 
    if (activities.size() == 0) 
    { 
     speakButton.setEnabled(false); 
     speakButton.setText("Recognizer not present"); 
    } 
} 

/** 
* Handle the action of the button being clicked 
*/ 
public void speakButtonClicked(View v) 
{ 
    startVoiceRecognitionActivity(); 
} 

/** 
* Fire an intent to start the voice recognition activity. 
*/ 
private void startVoiceRecognitionActivity() 
{ 
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Voice recognition Demo..."); 
    startActivityForResult(intent, REQUEST_CODE); 
} 

/** 
* Handle the results from the voice recognition activity. 
*/ 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) 
    { 
     // Populate the wordsList with the String values the recognition engine thought it heard 
     ArrayList<String> matches = data.getStringArrayListExtra(
       RecognizerIntent.EXTRA_RESULTS); 
     wordsList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
       matches)); 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 
} 
İlgili konular