因項目需要中文朗讀推送信息,做了一個簡單調查。現站在應用開發者角度介紹一下android系統下語音合成的開發配置流程:
1)核心代碼
android自帶api,引入包import android.speech.tts.TextToSpeech;
private TextToSpeech tts;
//The constructor for the TextToSpeech class, using the default TTS engine. This will also initialize the associated TextToSpeech engine if it isn't already //running,即初始化一個語音合成類,使用默認TTS合成引擎。若引擎未實例化則實例化引擎
tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
//實例化語音合成類時回調該方法
@Override
public void onInit(int status) {
// TODO Auto-generated method stub
if (status == TextToSpeech.SUCCESS)
{
int result = tts.setLanguage(Locale.CHINA);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED)
{
Toast.makeText(getBaseContext(), "Language is not available.",
Toast.LENGTH_SHORT).show();
}
}
}
});
//朗讀輸入的字符串str
tts.speak(str, TextToSpeech.QUEUE_FLUSH, null);
2)引擎設置
現有好多手機自帶支持中文語音合成的引擎,但早些默認tts(不支持中文)。若手機或設備無自帶的支持中文的引擎推薦下載科大訊飛的語音引擎(同事加本人親測),不特別生硬,基本可以達到要求(不過軟件兼容性不是很好,有一些機型無法下載的情況)。
無論使用何種引擎,開發者只需調用tts即可,底層代碼已被封裝好。下面介紹一下如何在手機中選擇引擎:
設置-->語言和輸入法-->文字轉語音(TTS)輸出
有些手機在輔助功能或者別的裏面