首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android TextToSpeech初始化-将默认TTS引擎设置为"android.speech.tts“。

Android TextToSpeech初始化-将默认TTS引擎设置为"android.speech.tts“。
EN

Stack Overflow用户
提问于 2015-02-09 17:56:16
回答 1查看 2.8K关注 0票数 3

我正在研究安卓的TextToSpeech引擎。初始化代码是

代码语言:javascript
复制
TextToSpeech mTTS;
mTTS=new TextToSpeech(this, this, "android.speech.tts");
mTTS.setEngineByPackageName("android.speech.tts");

Intent checkTTSIntent = new Intent();

checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);

startActivityForResult(checkTTSIntent, MY_DATA_CHECK_CODE);

但这段代码是我手机上的一个选择对话框,用于选择b/w谷歌的TextToSpeech引擎或三星TextToSpeech引擎。现在我要移除这个

选择框并直接加载Google的TTS引擎,无需用户交互。请帮我一把:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-30 15:16:27

出于意图(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA),我相信您正在尝试检查TTS数据是否安装在设备上。顺便说一句,这将检查默认的设备语言,如果没有安装,它将给出TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA onActivityResult()的resultCode

请在下面找到初始化TTS和处理错误的适当方法。

代码语言:javascript
复制
system = SpeechRecognizer.createSpeechRecognizer(getApplicationContext());
system.setRecognitionListener(this);
speech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {

        @Override
        public void onInit(int status) {
            if (status == TextToSpeech.SUCCESS) {
                    result = speech.setLanguage(Locale.US);
                    if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                        Log.e("TTS", "This Language is not available, attempting download");
                        Intent installIntent = new Intent();
                        installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
                        startActivity(installIntent);
                    }
            }
            else {
                Log.e("TTS", "Initialization Failed!");
            }
        }
    }, "com.google.android.tts");

请注意以下3点:

  1. 包名为"com.google.android.tts“,用于使用Google进行语音。
  2. 您不需要检查意图"ACTION_CHECK_TTS_DATA",这将在onInit()中处理。
  3. 文本到语音设置语言是一个昂贵的操作,它冻结UI线程;如果您希望使用默认语言,请删除它。

使用这种方法,您将不会获得任何弹出的对话框和tts将被初始化。如果有帮助请告诉我!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28416203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档