关闭

安卓TTS文字转语音

标签: android
343人阅读 评论(0) 收藏 举报
分类:

今天谈谈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(),将输入的文本转为语音

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23682次
    • 积分:511
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:4篇
    • 译文:0篇
    • 评论:17条
    文章分类
    最新评论