Menü

Android Text To Speech (Yazıyı Konuşmaya Çevirme) Uygulaması

24 Ocak 2015 - Android & IOS

text-to-speech

 

Bu yazımda text to speech (yazılan metni okuma) uygulaması yapacağım. İngilizce dil kütüphanesiyle bunu gerçekleştireceğim. İngilizce metni sorunsuz okumaktadır ancak türkçe metin söz konusu olduğunda ingilizce okumaya çalıştığı için baya kötü oluyor. Bunu Türkçe’ye çevirebilininiz varsa yorumda anlatabilir veya bana mail atabilir mi? Uygulamayı nasıl yaptığımıza gelince kodlardan devam edelim. Arayüzde çok birşey yok bir buton bir de metni girdiğimiz edittext. Java kısmındaki kodlarımıza gelecek olursak;

import java.util.Locale;

import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class AndroidTextToSpeechActivity extends Activity implements
TextToSpeech.OnInitListener {
/** Activity oluştuğunda çağırılacak kısım */

private TextToSpeech tts;
private Button btnSpeak;
private EditText txtText;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

tts = new TextToSpeech(this, this);

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

txtText = (EditText) findViewById(R.id.txtText);

// button on click event
btnSpeak.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
speakOut();//işin yapıldığı fonksiyonumuz aşağıda
}

});
}

@Override
public void onDestroy() {
// Geri tuşuna basıldığında uygulamayı kapatmayı unutmuyoruz.
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onDestroy();
}

@Override
public void onInit(int status) {
//Bura fonksiyon kendiliğinden oluşacak ve biz de içini dolduracağız

if (status == TextToSpeech.SUCCESS) {

int result = tts.setLanguage(Locale.US);

if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e(“TTS”, “Dil desteklenmemektedir.”);
}

else {
btnSpeak.setEnabled(true);
speakOut();
}

} else {
Log.e(“TTS”, “Yüklenemedi”);
}

}

private void speakOut() {

String text = txtText.getText().toString();//edittextten girilen metni aldık

tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);//speak fonksiyonuna girdi olarak verdik.
}
}

ekran

Bir Cevap Yazın