首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android语音引擎的字符串输入

Android语音引擎的字符串输入
EN

Stack Overflow用户
提问于 2010-01-07 09:23:17
回答 1查看 771关注 0票数 0

在我看来,类TextToSpeech的方法“seems”只在方法onInit或onUtteranceCompleted中有效。但是,onInit和onUtteranceCompleted没有任何用于传递字符串的参数。

在下面的代码中,我试图在方法之外定义一个全局字符串数组列表,并使用该数组列表作为字符串input.For出于某种原因,它不工作out.But引擎确实会说“你睡得好吗”。任何帮助都是非常感谢的。

代码语言:javascript
复制
public class TTS extends Activity implements OnInitListener,OnUtteranceCompletedListener,Runnable  {

    ArrayList<String> content=new ArrayList<String>();    
    int MY_DATA_CHECK_CODE=50;
 private TextToSpeech mTts;

公共空onCreate(捆绑包savedInstanceState) {

代码语言:javascript
复制
        content.add("test");
        content.add("another test");
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.splash);

        Intent checkIntent = new Intent();
        checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
        startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
    }


     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == MY_DATA_CHECK_CODE) {

        if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
            // success, create the TTS instance
            mTts = new TextToSpeech(this,this);



        } else {
            // missing data, install it

            Intent installIntent = new Intent();
            installIntent.setAction(
            TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
            startActivity(installIntent);
        }
    }
}


  public void  onInit(int status){
 if(status==TextToSpeech.SUCCESS){
  mTts.setLanguage(Locale.US);
  mTts.setOnUtteranceCompletedListener(this);

             String myText1 = "Did you sleep well?";
             mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, null);

            for(int i=0;i<content.size();i++){
           mTts.speak(content.get(i),TextToSpeech.QUEUE_ADD,null);
            }


           if(status==TextToSpeech.ERROR){
  mTts.shutdown();
          }
        }

}

EN

回答 1

Stack Overflow用户

发布于 2010-01-08 04:01:54

我相信你的一些代码丢失了,但仅供参考,可以通过参数映射为话语分配ID,例如:

代码语言:javascript
复制
HashMap<String, String> myHashAlarm = new HashMap();
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "ID of First Utterance");
mTts.speak("It was a clear black night", TextToSpeech.QUEUE_ADD, myHashAlarm);

“第一次发言的ID”将传递给onUtteranceCompleted(String utteranceId)

请参阅Using Text-to-Speech

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

https://stackoverflow.com/questions/2017594

复制
相关文章

相似问题

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