2014-04-19 21 views
14

Konuşmayı tanıyan ve telaffuz metne dönüştüren bir Android uygulaması oluşturmak istiyorum (örn. Özel telaffuz ve aksan arasında gerçek telaffuz ve aksanı karşılaştırmak için). Sadece metne konuşmanın mümkün olduğunu biliyorum. Kullanıcıların söylediklerini çevirmek istiyorum.Konuşmayı çevirmenin en iyi yolu Telaffuz

Bunu yapmak için herhangi bir API var mı? Değilse, lütfen nasıl uygulanacağına yardım edin.

+0

Kontrol http://ispikit.com –

+2

o istediğim bu değil. android kütüphanesi ücretsiz değildir. ve ben yolu daha esnek arıyorum. zorluk önemli değil. –

+1

Ücretsiz bir kütüphane istiyorsanız, soruya işaret etmek isteyebilirsiniz. –

cevap

2

Sadece konuşma-metin için bir kod verir. Bu bir demo. Bunun sana yardım edeceğini bilmiyorum. Ama bunu uygulamam için kullanıyorum. Kullanmayı dene.

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> 
İlgili konular