文本到语音区域印地文印地文

时间:2014-02-06 09:22:11

标签: android locale text-to-speech

我为Android创建了一个支持多种语言的文本到语音引擎,其中一种语言是印地语。

在Android文字转语音设置中,当用户选择默认语言环境时,Android会执行一系列检查,包括发送意图ACTION_GET_SAMPLE_TEXT

以下是我支持的语言环境列表:

private static final String[] SUPPORTED_LANGUAGES = { "eng-GBR", "eng-USA", "fra-FRA", "spa-ESP", "deu-DEU", "ita-ITA",
        "kor-KOR", "nld-NLD", "dan-DNK", "fin-FIN", "jpn-JPN", "nor-NOR", "pol-POL", "por-PRT", "por-BRA", "rus-RUS",
        "swe-SWE", "zho-CHN", "zho-HKG", "zho-TWN", "ara-SAU", "hi-IN", "ces-CZE", "ell-GRC", "hun-HUN", "ron-ROU",
        "slk-SVK", "tha-THA", "tur-TUR", "cym-GBR", "isl-ISL", "in-IDN" };

对于" hi-IN"以外的每个区域设置,Android发送此意图,我回复示例文本和"听一个示例"按钮变得可用。

我已成功将LANG_COUNTRY_AVAILABLE从通话onIsLanguageAvailable转回{{3}},但按钮仍然显示为黑色,并表示该语言不受支持。

我尝试了很多不同的语言环境ISO组合:

hin-IN,hi-IND,ind-HI等等,但Android并没有发送Intent,尽管它在Locale列表中被正确标记为印地语(印度语)或只是印地语。

logcat中没有错误表明失败的变体匹配。

我发布我的代码没什么意义,因为Android根本没有发送此Locale的Intent,因此它无法访问我的代码....

如何正确处理此区域设置变体的任何想法?

编辑:我刚刚意识到它也发生在印尼语(in-IDN)

1 个答案:

答案 0 :(得分:5)

TTS对languagelocale使用3个字母的代码 * 。因此,根据以下语言/国家/地区代码:

Hindi         hin-IND
Indonesian    ind-IDN

希望这有帮助。

<小时/> * 这需要从来源获得适当的引用:我刚刚根据现有的TTS引擎实现做出了结论。