[TOC]
將文字信息轉化為可聽的聲音信息,讓機器像人一樣開口說話。
## 合成播放
~~~
//1.創建SpeechSynthesizer對象
SpeechSynthesizer mTts= SpeechSynthesizer.createSynthesizer( );
//2.合成參數設置,詳見《MSC Reference Manual》SpeechSynthesizer 類
mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");//設置發音人
mTts.setParameter(SpeechConstant.SPEED, "50");//設置語速
mTts.setParameter(SpeechConstant.VOLUME, "80");//設置音量,范圍0~100
//設置合成音頻保存位置(可自定義保存位置),保存在“./tts_test.pcm”
//如果不需要保存合成音頻,注釋該行代碼
mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, "./tts_test.pcm");
//3.開始合成
mTts.startSpeaking("語音合成測試程序", mSynListener);
//合成監聽器
private SynthesizerListener mSynListener = new SynthesizerListener(){
//會話結束回調接口,沒有錯誤時,error為null
public void onCompleted(SpeechError error) {}
//緩沖進度回調
//percent為緩沖進度0~100,beginPos為緩沖音頻在文本中開始位置,endPos表示緩沖音頻在文本中結束位置,info為附加信息。
public void onBufferProgress(int percent, int beginPos, int endPos, String info) {}
//開始播放
public void onSpeakBegin() {}
//暫停播放
public void onSpeakPaused() {}
//播放進度回調
//percent為播放進度0~100,beginPos為播放音頻在文本中開始位置,endPos表示播放音頻在文本中結束位置.
public void onSpeakProgress(int percent, int beginPos, int endPos) {}
//恢復播放回調接口
public void onSpeakResumed() {}
};
~~~
## 合成到文件
~~~
//1.創建SpeechSynthesizer對象
SpeechSynthesizer mTts= SpeechSynthesizer.createSynthesizer( );
//2.合成參數設置,詳見《MSC Reference Manual》SpeechSynthesizer 類
mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");//設置發音人
mTts.setParameter(SpeechConstant.SPEED, "50");//設置語速,范圍0~100
mTts.setParameter(SpeechConstant.PITCH, "50");//設置語調,范圍0~100
mTts.setParameter(SpeechConstant.VOLUME, "50");//設置音量,范圍0~100
//3.開始合成
//設置合成音頻保存位置(可自定義保存位置),默認保存在“./tts_test.pcm”
mTts.synthesizeToUri("語音合成測試程序", "./tts_test.pcm",synthesizeToUriListener);
//合成監聽器
SynthesizeToUriListener synthesizeToUriListener = new SynthesizeToUriListener() {
//progress為合成進度0~100
public void onBufferProgress(int progress) {}
//會話合成完成回調接口
//uri為合成保存地址,error為錯誤信息,為null時表示合成會話成功
public void onSynthesizeCompleted(String uri, SpeechError error) {}
};
~~~