nexus 7上支持android文本到语音0的语言
我正在开发一个小应用程序,让用户可以选择“说出”应用程序将响应的几个命令 我已经让语音识别系统工作了,命令也注册了。他们正在被认可,无论如何,答案应该是正确的 唯一的问题是:它没有 下面是我用来确定google的tts引擎支持哪些语言的代码(我正在为旧版本的android开发,所以这里没有“tts.getAvailableLangues()”): 它将返回“不支持语言”错误。 这很奇怪,因为我只尝试使用一种默认语言:英语(英国、美国,没关系,它“不受支持”) 所以,很明显,当我试着跑的时候nexus 7上支持android文本到语音0的语言,android,text-to-speech,nexus-7,google-text-to-speech,Android,Text To Speech,Nexus 7,Google Text To Speech,我正在开发一个小应用程序,让用户可以选择“说出”应用程序将响应的几个命令 我已经让语音识别系统工作了,命令也注册了。他们正在被认可,无论如何,答案应该是正确的 唯一的问题是:它没有 下面是我用来确定google的tts引擎支持哪些语言的代码(我正在为旧版本的android开发,所以这里没有“tts.getAvailableLangues()”): 它将返回“不支持语言”错误。 这很奇怪,因为我只尝试使用一种默认语言:英语(英国、美国,没关系,它“不受支持”) 所以,很明显,当我试着跑的时候 sp
speaker.getLanguage();
它返回空值
更奇怪的是,InitListener总是报告“TextToSpeech.SUCCESS”
所以日志总是显示:“tts引擎成功启动”
这是我用来运行tts的实际代码:
public void speak(String text, Context context, OnInitListener listener) {
String tag = "dashboardactivity";
Log.d(tag, "speaking started in dummy module");
TextToSpeech speaker = new TextToSpeech(context, listener);
// int id = speaker.setLanguage(Locale.UK);
int id = speaker.setLanguage(Locale.ENGLISH);
speaker.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
代码似乎没有任何问题,或者我遗漏了什么
以下是我尝试/检查/安装的内容列表:
- 已安装tts
- 已安装语音数据(英国和美国英语的多个语音)
- 如果我按下“设置”中的“收听示例”按钮,它会工作李>
- 我错过什么了吗?(特殊权限?一些数据?)
- 为什么我的代码说tts引擎支持400多个“语言环境”中的0种语言
- 我怎样才能解决这个问题
- 好的,我修好了。我没有考虑tts引擎需要什么时候初始化自己,所以我只是在实例化它之后立即调用“speak”
我现在把它转移到了OnInit的监听器上,普雷斯托:它很管用
这是我现在唯一的听众:
private OnInitListener listener = new OnInitListener() {
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
Log.d(TAG, "tts engine started succesfully");
Log.d(TAG, "setting language to default");
int id = tts.setLanguage(Locale.getDefault());
checkId(id);
tts.speak(mMessageToSpeak, TextToSpeech.QUEUE_FLUSH, null);
} else if (status == TextToSpeech.ERROR) {
Log.d(TAG, "seems like an error occured :c");
}
}
};
private OnInitListener listener = new OnInitListener() {
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
Log.d(TAG, "tts engine started succesfully");
} else if (status == TextToSpeech.ERROR) {
Log.d(TAG, "seems like an error occured :c");
}
}
};
public void speak(String text, Context context, OnInitListener listener) {
String tag = "dashboardactivity";
Log.d(tag, "speaking started in dummy module");
TextToSpeech speaker = new TextToSpeech(context, listener);
// int id = speaker.setLanguage(Locale.UK);
int id = speaker.setLanguage(Locale.ENGLISH);
speaker.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
private OnInitListener listener = new OnInitListener() {
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
Log.d(TAG, "tts engine started succesfully");
Log.d(TAG, "setting language to default");
int id = tts.setLanguage(Locale.getDefault());
checkId(id);
tts.speak(mMessageToSpeak, TextToSpeech.QUEUE_FLUSH, null);
} else if (status == TextToSpeech.ERROR) {
Log.d(TAG, "seems like an error occured :c");
}
}
};