安卓TTS文字转语音

今天谈谈TTS。

TextToSpeech 这个类,能将正常的文字转换为音频播出。

好像网上的资料比较少,之后项目可能要用到,自己先整理笔记。
早上做了第一个Demo,趁午休时间,来总结下:

1.谷歌暂时不支持中文
2.非常简单的一个控件,但是发音生硬,有一些第三方做得更为出色


   // private TextToSpeech mTTS;

    case R.id.btn_main_totts2:                                       
        if (mTTS != null) {                                          
            mTTS.stop();                                             
            mTTS.shutdown();                                         
            mTTS = null;                                             
        }                                                            
        mTTS = new TextToSpeech(MainActivity.this, new TTStest());   
        break;                                                       

定义一个Button,设置它的OnclickListener为以上,其中TTStest是自己定义的一个雷,实现了OnInitListener 接口(如下)

 private class TTStest implements TextToSpeech.OnInitListener {                                                
     @Override                                                                                                 
     public void onInit(int i) {                                                                               
         if (i == TextToSpeech.SUCCESS) {                                                                      
             int result = mTTS.setLanguage(Locale.US);                                                         
             if (result == TextToSpeech.LANG_NOT_SUPPORTED) {                                                  
                 Toast.makeText(MainActivity.this, "what", Toast.LENGTH_SHORT).show();                         
             } else {                                                                                          
                 mTTS.speak("I have a dream. one day we will be free", TextToSpeech.QUEUE_FLUSH, null);        
             }                                                                                                 
         }                                                                                                     
     }                                                                                                         
 }                                                                                                             

到目前为止,短短十数行代码,已经可以实现主要的功能了,在真机上运行之后,会有生硬的女音读出“I have a dream ……..”.


下面在加上一个EditText,让TTS读出我们所输入的内容

EditText mEdt = (EditText) findViewById(R.id.edt_main_totts);
mTTS.speak(mEdt.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);

很简单,就是EditText.getText().toString(),将输入的文本转为语音

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值