Android 如何为TextToSpeech创建自定义语言?

Android 如何为TextToSpeech创建自定义语言?,android,text-to-speech,Android,Text To Speech,我需要在Android中使用印度英语或印地语(母语)进行TTS。 但我没有发现任何与创建自定义语言相关的提示或源代码 如何才能做到这一点?首先使用以下命令检查您的仿真器设备中是否安装了TSS API Intent checkIntent = new Intent(); checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(checkIntent, MY_DATA_CHECK

我需要在Android中使用印度英语或印地语(母语)进行TTS。
但我没有发现任何与创建自定义语言相关的提示或源代码


如何才能做到这一点?

首先使用以下命令检查您的仿真器设备中是否安装了TSS API

Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);


mTts.isLanguageAvailable(Locale.INDIA)); //try Locale.INDIA or Locale.INDIAN_ENGLISH or Locale.HINDI as I have not used Indian languages or Indian English dialect in it before
它将返回
TextToSpeech.LANG\u COUNTRY\u AVAILABLE
,以指示已安装并可用此类语言的首选项。然后使用以下内容进行测试

String myText1 = "Did you sleep well?";
String myText2 = "I hope so, because it's time to wake up.";
mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, null);
mTts.speak(myText2, TextToSpeech.QUEUE_ADD, null);
更多信息可用

编辑要检查您的手机上是否提供该语言,请使用
GetAvailableCales()
,如下所示

   Locale loc = new Locale("en");
   Log.i("-------------",Arrays.toString(loc.getAvailableLocales()));
它应该在日志输出中显示结果


语言代码是ISO 639-1定义的两个字母小写ISO语言代码(如“en”)。国家/地区代码是ISO 3166-1定义的两个字母大写ISO国家/地区代码(如“US”)。

首先使用以下命令检查您的仿真器设备中是否安装了TSS API

Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);


mTts.isLanguageAvailable(Locale.INDIA)); //try Locale.INDIA or Locale.INDIAN_ENGLISH or Locale.HINDI as I have not used Indian languages or Indian English dialect in it before
它将返回
TextToSpeech.LANG\u COUNTRY\u AVAILABLE
,以指示已安装并可用此类语言的首选项。然后使用以下内容进行测试

String myText1 = "Did you sleep well?";
String myText2 = "I hope so, because it's time to wake up.";
mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, null);
mTts.speak(myText2, TextToSpeech.QUEUE_ADD, null);
更多信息可用

编辑要检查您的手机上是否提供该语言,请使用
GetAvailableCales()
,如下所示

   Locale loc = new Locale("en");
   Log.i("-------------",Arrays.toString(loc.getAvailableLocales()));
它应该在日志输出中显示结果


语言代码是ISO 639-1定义的两个字母小写ISO语言代码(如“en”)。国家代码是ISO 3166-1定义的两个字母大写的ISO国家代码(如“US”)。

谢谢……但如何检查这种语言是否可用?@SandiParal编辑了我的回答。作为用户,您应该避免使用“谢谢”来贴小费并勾选你认为有用的答案。谢谢……但是如何检查这种语言是否可用?@sandiparmal编辑了我的回答。。作为一名用户,你应该避免使用“谢谢”来发送小费,而是勾选你认为有用的答案。