¿Alguna api de TTS para Android en turco?

¿Existe algún servicio TTS (texto a voz) gratuito para Android en turco? No he encontrado nada útil en google.

No lo intenté todavía en androide, pero descubrí recientemente éste: http://www.ispeech.org La calidad del discurso parece prometedora en la aplicación web.

Dale un tiro 🙂

Aquí puede utilizar Google TTS como se indica a continuación:

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(); } 

Por otra parte, Google TTS tiene un error con el carácter türkish como "ö", "ğ" para que pueda convertirlos con 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; } 

Algunos dispositivos Android tienen pico TTS sólo, por lo que es la razón por la que comprobar Google TTS, y pedir al usuario para instalar …

No: Para que el tts trabaje, usted debe tener el dispositivo androide verdadero

He arreglado este problema en mi caso,

Definir esa variable:

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

En el método onCreate:

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

Dirá "bağlanıyor"

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.