2014-04-19 10 views
14

Ich möchte eine Android-Anwendung, die Sprache erkennen und wandelt es in Aussprache Text (d. H., Um wahre Aussprache oder Akzent zwischen speziellen Wort und Benutzerrede zu vergleichen). Ich weiß nur, dass es möglich ist, Sprache in Text zu schreiben. Ich möchte alle Wörter, die Benutzer sagen, konvertieren.Der beste Weg für die Umwandlung von Sprache in Aussprache

Gibt es eine API, um es zu tun? Wenn nicht, bitte hilf mir, es umzusetzen.

+0

prüfen http://ispikit.com –

+2

es ist nicht das, was ich will. Die Android-Bibliothek ist nicht kostenlos. und ich suche den Weg flexibler. Schwierigkeit ist nicht wichtig. –

+1

Wenn Sie eine kostenlose Bibliothek möchten, möchten Sie vielleicht auf die Frage verweisen. –

Antwort

2

Ich gebe nur einen Code für Sprache in Text. Es ist eine Demo. Ich weiß nicht, das wird dir helfen. Aber ich benutze das für meine Anwendung. Versuchen Sie es zu benutzen.

SpeechtoText.java

public class SpeechtoText extends Activity { 
protected static final int RESULT_SPEECH = 1; 
private ImageButton btnSpeak; 
private TextView txtText; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    txtText = (TextView) findViewById(R.id.txtText); 
    btnSpeak = (ImageButton) findViewById(R.id.btnSpeak); 
    btnSpeak.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(
        RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
      intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US"); 
      try { 
       startActivityForResult(intent, RESULT_SPEECH); 
       txtText.setText(""); 
      } catch (ActivityNotFoundException a) { 
       Toast t = Toast.makeText(getApplicationContext(), 
         "Ops! Your device doesn't support Speech to Text", 
         Toast.LENGTH_SHORT); 
       t.show(); 
      } 
     } 
     }); 
    } 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
    case RESULT_SPEECH: { 
     if (resultCode == RESULT_OK && null != data) { 
      ArrayList<String> text = data 
        .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
      txtText.setText(text.get(0)); 
     } 
     break; 
    } 
    } 
} 

}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_above="@+id/textView1" 
android:layout_toLeftOf="@+id/textView1" 
android:gravity="center" 
android:orientation="vertical" > 
<ImageButton 
    android:id="@+id/btnSpeak" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="10dp" 
    android:contentDescription="@string/speak" 
    android:src="@android:drawable/ic_btn_speak_now" /> 
    <TextView 
    android:id="@+id/txtText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="10dp" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 
</LinearLayout>