Is there any free TTS (text-to-speech) service for Android in Turkish? I've not found anything useful in google.
Any TTS api for Android in turkish?
Asked Answered
If device's language is setted to Turkish, TTS start to speak in Turkish :) –
Diocletian
I didnt try it yet on android, but I recently discovered this one: http://www.ispeech.org The speech quality looks promising on the web app.
Give it a shot :)
thanks,i've seen and i'll try it as soon as possible , i'm writing virtual tour guide program so i actually need one but free ^_^ –
Parttime
Here you can use Google TTS as below:
strText = converToTurkishCharacter(strText);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
textToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
Locale locale = new Locale("tr_TR");//set Locale
textToSpeech.setLanguage(locale);
if (status != TextToSpeech.ERROR) {
}
if (status == TextToSpeech.SUCCESS) {
String[] text = strText.split("\\.");//split with every "dot"
for (int i = 0; i < text.length; i++) {
HashMap uttrerance = new HashMap();
uttrerance.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, Integer.toString(i));
textToSpeech.speak(text[i], 1, uttrerance);
}
}
//-------checks engine
List engineList = textToSpeech.getEngines();
for(Object strEngine : engineList){
Log.d("tagg",strEngine.toString());
if(strEngine.toString().equals("EngineInfo{name=com.google.android.tts}")){//check if google tts api engine is installed on device
isGoogleAvaible = true;
}
}
if(!isGoogleAvaible){
Toast toast = Toast.makeText(ActivityColumnistArticle.this,
"Google TTS Eksik...Lutfen yukleyin", Toast.LENGTH_LONG);
toast.setGravity(Gravity.BOTTOM, 0, 0);
toast.show();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=com.google.android.tts"));
startActivity(intent);//user should install google tts , if it is defaultly not installed
}
//---------------For missing data
int code = textToSpeech.isLanguageAvailable(locale);
if (code == -2 || code == -1) {
Intent installIntent = new Intent();
installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}, "com.google.android.tts");
}
else{
Toast toast = Toast.makeText(ActivityColumnistArticle.this,
"Ses destegi icin minumum Icecream Sandwich yuklu olmalı...", Toast.LENGTH_LONG);
toast.setGravity(Gravity.BOTTOM, 0, 0);
toast.show();
}
Moreover, Google TTS have bug with türkish character like "ö", "ğ" so that you should convert them with unicode:
private String converToTurkishCharacter(String text){
text = text.replace("\u015f", "\u015f");
text = text.replace("\u00e7", "\u00e7");
text = text.replace("\u011f", "\u011f");
text = text.replace("\u0131", "\u0131");
text = text.replace("\u00fc", "\u00fc");
text = text.replace("\u00f6", "\u00f6");
// ----
text = text.replace("\u011e", "\u011e");
text = text.replace("\u0130", "\u0130");
text = text.replace("\u00d6", "\u00d6");
text = text.replace("\u00dc", "\u00dc");
text = text.replace("\u015e", "\u015e");
text = text.replace("\u00c7", "\u00c7");
return text;
}
Some android device have pico TTS only, so that is why you check Google TTS, and ask user to install...
Not:In order tts to work,You should have real android device
I fixed this problem in my case,
define that variable:
final Locale locale = new Locale("tr", "TR");
in onCreate method:
tts = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { int result = tts.setLanguage(locale); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { tts.speak("bir sorun oluştu", TextToSpeech.QUEUE_FLUSH, null); } } else { tts.speak("bir sorun oluştu.", TextToSpeech.QUEUE_FLUSH, null); Log.d(TAG, "Text to speech is not successful"); } } }); tts.speak("bağlanıyor", TextToSpeech.QUEUE_FLUSH, null);
it will say "bağlanıyor"
just use Locale.getDefault()
tts.setLanguage(Locale.getDefault())
© 2022 - 2024 — McMap. All rights reserved.