Any TTS api for Android in Turkish?

Is there a free TTS (text-to-speech) service for Android in Turkish? I did not find anything useful on Google.

+4
source share
3 answers

I have not tried this on Android yet, but I recently discovered this: http://www.ispeech.org Speech quality looks promising in a web application.

Take a photo :)

+5
source

Here you can use Google TTS as shown 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(); } 

In addition, Google TTS has a bug with a türkish character, such as "ö", "", so that you convert them to 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 devices only have pico TTS, so you check Google TTS and ask the user to install ...

No: in order to work with tts, you must have a real Android device.

+1
source

I fixed this problem in my case,

define this variable:

final Locale locale = new Locale ("tr", "TR");

in the 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); 

he will say "bağlanıyor"

0
source

Source: https://habr.com/ru/post/1396836/


All Articles