【问题标题】:converting text to speech on launching new activity in android在android中启动新活动时将文本转换为语音
【发布时间】:2016-09-27 09:08:26
【问题描述】:
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image_preview);
        touch_color = (TextView) findViewById(R.id.touch_color);


        picTaken = (ImageView) findViewById(R.id.picTaken);

      //  bitmap = fixRotation(MainActivity.IMG_FILE);
        //picTaken.setImageBitmap(bitmap);

        String toSpeak = touch_color.getText().toString();
        t1.speak(toSpeak, TextToSpeech.QUEUE_ADD, null);


        t1 = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                if (status != TextToSpeech.ERROR) {
                    t1.setLanguage(Locale.US);
                    t1.setLanguage(Locale.UK);

                }

            }
        });

    }

    public void onPause() {
        if (t1 != null) {
            t1.stop();
            t1.shutdown();
        }
        super.onPause();
    }

 Run c

我想阅读文本字段而不点击 android 中的按钮使用文本到语音我真正想要的是,当活动启动文本到语音转换器时,阅读文本字段上的文本显示有人可以帮忙吗?在使用此代码但它给出错误我想替换这行代码“t1.speak(toSpeak,TextToSpeech.QUEUE_FLUSH,null);”请帮忙。

【问题讨论】:

标签: java android android-studio google-text-to-speech


【解决方案1】:

你可以使用这个link,这里有一些关于文本到语音的有用信息。

  private void promptSpeechInput() {
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
            RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
            getString(R.string.speech_prompt));
    try {
        startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
    } catch (ActivityNotFoundException a) {
        Toast.makeText(getApplicationContext(),
                getString(R.string.speech_not_supported),
                Toast.LENGTH_SHORT).show();
    }
}

【讨论】:

    【解决方案2】:

    您可以使用下面的代码sn-p来实现文本到语音的转换器;

     public class MainActivity extends Activity {
     TextToSpeech t1;
     EditText ed1;     
     @Override
     protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
    
      ed1=(EditText)findViewById(R.id.editText);      
      t1=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
         @Override
         public void onInit(int status) {
            if(status != TextToSpeech.ERROR) {
               t1.setLanguage(Locale.UK);
            }
         }
      });
    
    
      String toSpeak = ed1.getText().toString();
      Toast.makeText(getApplicationContext(), toSpeak,Toast.LENGTH_SHORT).show();
      t1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);
    
    }
    
    public void onPause(){
      if(t1 !=null){
         t1.stop();
         t1.shutdown();
      }
      super.onPause();
    }
    }
    

    【讨论】:

    • 您遇到了什么问题?
    • t1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);我必须更改此行,因为我没有任何队列并且我的条目没有更改
    猜你喜欢
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多