Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:TTS会说广东话吗?_Android_Internationalization_Text To Speech_Machine Translation - Fatal编程技术网

Android 安卓:TTS会说广东话吗?

Android 安卓:TTS会说广东话吗?,android,internationalization,text-to-speech,machine-translation,Android,Internationalization,Text To Speech,Machine Translation,我正在学习编写一个应用程序,用于在给定字符串上执行TTS,并尝试了一个从web修改的示例: 编码如下: //设置TTS第1部分 mTts=newtexttospeech(第2课对话版修订版简单。这个,这个);//TextToSpeech.OnInitListener setOnClickListener(新的OnClickListener() { 公共void onClick(视图v) { StringTokenizer loveTokens=新的StringTokeniz

我正在学习编写一个应用程序,用于在给定字符串上执行TTS,并尝试了一个从web修改的示例:

编码如下:
//设置TTS第1部分
mTts=newtexttospeech(第2课对话版修订版简单。这个,这个);//TextToSpeech.OnInitListener
setOnClickListener(新的OnClickListener()
{         
公共void onClick(视图v)
{  
StringTokenizer loveTokens=新的StringTokenizer(“他們 12是 三个“,”,“.”;
int i=0;
loveArray=新字符串[loveTokens.countTokens()];
while(loveTokens.hasMoreTokens())
{  
loveArray[i++]=loveTokens.nextToken();
}  
speakText();
}  
});        
}
//设置TTS第2部分
@凌驾
公共void onutternancecompleted(字符串utternanceid)
{  
Log.v(标记“获取OuttanceID的完整消息”+OuttanceID);
LastOutrance=Integer.parseInt(outranceId);
}  
//设置TTS第3部分
@凌驾
公共无效onInit(int状态)
{  
if(status==TextToSpeech.SUCCESS)
{  
int result=mTts.setLanguage(Locale.CHINESE);/=loveArray.length)
{  
最后话语=0;
}  
Log.v(标签,“开始话语是”+最后话语);
for(int i=lastputrance;i
问题: 如果上面第3部分中的
int result=mTts.setLanguage(Locale.US);
设置为US并以完美的英语读出“一二三”,则一切正常。(在上面的示例中,它将跳过所有中文单词,只读出一二三)

但是,如果我通过将language设置为setLanguage(Locale.Chinese),将字符串改为读取中文,它会立即发出“语言不受支持”的警告

我想问一下

  • 现在的TTS还不支持中文?我更喜欢广东话而不是中文

  • 当我通过语音(广东话)输入信息时,手机能够识别广东话。是否真的有其他方式执行TTS,输出为广东话


  • 谢谢!!

    1-目前版本的谷歌TTS引擎还不支持粤语作为输出。普通话很好用

    2-是支持广东话的TTS引擎

    您可能想尝试一下我开发的与Ekho和Google TTS引擎配合使用的TTS应用程序:

    据我所知,在JAVA中没有特定的语言环境来区分广东话和普通话,因为广东话是中国方言。JAVA中的语言环境仅指文字(简体或繁体)


    例如,您可以阅读用粤语或普通话编写的繁体中文字符串。

    1-谷歌TTS引擎当前版本还不支持粤语作为输出。普通话工作正常

    2-是支持广东话的TTS引擎

    您可能想尝试一下我开发的与Ekho和Google TTS引擎配合使用的TTS应用程序:

    据我所知,在JAVA中没有特定的语言环境来区分广东话和普通话,因为广东话是中国方言。JAVA中的语言环境仅指文字(简体或繁体)


    例如,您可以阅读用粤语或普通话书写的繁体中文字符串。

    @Pearmak:您可以检查设备支持的语言

    int i = mTts.isLanguageAvailable(Locale.ENGLISH);
    
    其中
    mTts
    TextToSpeech

    如果您得到
    i>=0的值,则该语言在您的设备上受支持,否则不受支持

    您还可以传递语言区域设置字符串

    int i = mTts.isLanguageAvailable(new Locale("zh_CN")); //for chinese simplified
    

    @Pearmak:您可以检查设备中支持的语言

    int i = mTts.isLanguageAvailable(Locale.ENGLISH);
    
    其中
    mTts
    TextToSpeech

    如果您得到
    i>=0的值,则该语言在您的设备上受支持,否则不受支持

    您还可以传递语言区域设置字符串

    int i = mTts.isLanguageAvailable(new Locale("zh_CN")); //for chinese simplified
    

    一个小小的中文文语转换(TTS)用于离线嵌入式系统的粤语、普通话合成引擎。Yue体积极小,离线、独立,PCM音频输出不需要服务器或网络连接。它具有合成语音的高自然度,用于混合文本输入,粤语和普通话语音合成用于同一文本输入,具有Yale、Jyutping和拼音romanization。该引擎可以连续生成和播放长文本的语音,文本长度不受限制。它内置智能检测器,可以处理任何繁体中文、简体中文、英文、数字和标点符号、符号混合文本输入。Yue用ANSI C编写,不依赖第三方库,运行在ARM上,AVR嵌入式系统,如手表、玩具、机器人和iPhone、Android等移动平台,当然是普通的台式机、电子书、报纸阅读器、故事讲述器。Yue可以加载到内存中并嵌入到其他程序中,因为它的体积非常小,非常适合嵌入式系统,也适用于台式操作系统引擎可以有大量编程语言的绑定


    链接:

    Yue,一个小小的中文文语转换(TTS)用于离线嵌入式系统的粤语、普通话合成引擎。Yue体积极小,离线、独立,PCM音频输出不需要服务器或网络连接。它具有合成语音的高自然度,用于混合文本输入,粤语和普通话语音合成用于同一文本输入,具有Yale、Jyutping和拼音r阿曼