Android TTS 支持中文

最近項目需求,要在android裏面實現語音轉文字朗讀,TTS,於是上網各種搜索,比較好的是android有自帶原生的api可以直接使用,android.speech.tts.TextToSpeech。封裝一個java類方便使用,代碼如下:

package dione.healthclub;

import android.content.Context;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.widget.Toast;
import java.util.Locale;

public class AJTextToSpeech implements TextToSpeech.OnInitListener {

    private Context mContext;
    private TextToSpeech mTTS;


    public  AJTextToSpeech(Context context){
        mContext = context;
        mTTS = new TextToSpeech(mContext,this);
    }

    public boolean speak(final String text){
        Log.d("dione","speak text:"+text);
        // 設置音調,值越大聲音越尖(女生),值越小則變成男聲,1.0是常規
        mTTS.setPitch(1.0f);
        // 設置語速
        mTTS.setSpeechRate(1.0f);
        //播放語音
        int ret = mTTS.speak(text,TextToSpeech.QUEUE_ADD,null);
        if(ret == 0) {
            Toast.makeText(mContext, "文字轉語音成功...", Toast.LENGTH_SHORT).show();
            return true;
        }
        else {
            Toast.makeText(mContext, "文字轉語音錯誤...", Toast.LENGTH_SHORT).show();
            return false;
        }
    }

    @Override
    public void onInit(int status) {
        // 判斷是否轉化成功
        if (status == TextToSpeech.SUCCESS){
            //默認設定語言爲中文,原生的android貌似不支持中文。
            int result = mTTS.setLanguage(Locale.US);
            if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED){
                Toast.makeText(mContext, "數據丟失或不支持..."+String.valueOf(result), Toast.LENGTH_SHORT).show();
            }else{
                //不支持中文就將語言設置爲英文
                mTTS.setLanguage(Locale.US);
            }
        }
    }
}
將該java加入到自己的工程基本上就可以實現英文的語音轉文字朗讀。

TextToSpeech mTTS = new TextToSpeech(Context,this);
mTTS.speak("TTS中文朗讀");

兩句話就可以使用了。

一般系統都沒有帶中文TTS,不安裝語音插件的情況下是可以直接實現英文朗讀。
使用中文朗讀:將TTS訊飛語音包(底部地址下載)解壓出來的兩個apk安裝到android系統裏面,然後在設置 -- 語言和輸入法--文字轉語音TTS輸出--選擇科大訊飛語音。
按照如上操作後android系統就支持了中文語音朗讀。

僅供學習參考,by Dione.

完整代碼已經中文語音插件apk下載地址:https://download.csdn.net/download/u012532263/10885562

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章