在Punjabi语言上实现文本到语音(TTS)是行不通的

时间:2017-12-14 08:20:39

标签: android text-to-speech

我在Android上用英语,印地语和旁遮普语实现Text-to-Speech(TTS)TTS在英语和印地语中工作正常,但它没有使用旁遮普语。

对于旁遮普语言,我使用下面的代码

 tts.setLanguage(new Locale("pan"));
 tts.speak(output, TextToSpeech.QUEUE_FLUSH, null);

3 个答案:

答案 0 :(得分:1)

您创建的TextToSpeech对象(tts)可以使用任何语音引擎。您可能正在使用Google引擎。

不同的引擎具有不同的功能。

通常,设备上的引擎是:

1)三星语音引擎-“ com.samsung.SMT”

2)Google语音引擎-“ com.google.android.tts”

或3)PICO-“ com.svox.pico” ...有时会在没有Google API的旧设备和Android Studio模拟器上使用。

作为开发人员,您可以通过在构造函数的最终参数中定义它来选择要使用的引擎,例如,使用三星引擎:

TextToSpeech tts =新的TextToSpeech(此为新的OnInitListener ...,“ com.samsung.SMT”);

但是用户必须已安装所需的引擎,否则它将默认使用他们已安装的任何引擎。

不幸的是,尽管Google和/或三星将来可能会支持旁遮普语,但上述引擎目前都不支持旁遮普语,但是如果用户安装了eSpeak引擎(程序包名称:“ com.redzoc.ramees” .tts.espeak”),他们已经安装了旁遮普语语言包,那么它应该有效。

最好的做法似乎是检测用户A)是否想要旁遮普语,而B)是否安装了espeak(或您知道的其他支持旁遮普语的引擎) ,然后使用意图/警报对话框进行安装。

PS-根据语言环境文档,在创建语言环境并设置语言代码时,应使用两个字母的缩写,“ pa”而不是“ pan”。

“ ...正确的语言环境将使用两个字母的ISO 639-1代码。” -link

“当一种语言同时具有alpha-2代码和alpha-3代码时,必须使用alpha-2代码。” -link

答案 1 :(得分:1)

有一种变通方法来支持旁遮普文字在Android中的语音转换,因为Google目前不正式支持它。我们先翻译了印度文中的旁遮普文字,然后使用印地文文字转语音功能来实现所需的行为。

要说旁遮普语中的ਜੀਜੀਜੀਜੀ文字,我们必须在印地文中使用हरी्््््ययययओजीओ文字。谢谢

答案 2 :(得分:0)

Andorid尚未启用旁遮普文字转语音功能。我认为,您必须为旁遮普TTS使用Hear2Read应用。