以语音合成方法为例,我在自己的应用程序中需要调用它的合成函数,所以在自己的类里调用了它的synthetizeInSilence()方法。如下
/** * 使用SpeechSynthesizer合成语音,不弹出合成Dialog. * @param */ private void synthetizeInSilence() { if (null == mSpeechSynthesizer) { //创建合成对象. mSpeechSynthesizer = SpeechSynthesizer.createSynthesizer(this); } //设置合成发音人. String role = mSharedPreferences.getString( getString(R.string.preference_key_tts_role), getString(R.string.preference_default_tts_role)); //设置发音人 mSpeechSynthesizer.setParameter(SpeechConstant.VOICE_NAME, role); //获取语速 int speed = mSharedPreferences.getInt( getString(R.string.preference_key_tts_speed), 50); //设置语速 mSpeechSynthesizer.setParameter(SpeechConstant.SPEED, ""+speed); //获取音量. int volume = mSharedPreferences.getInt( getString(R.string.preference_key_tts_volume), 50); //设置音量 mSpeechSynthesizer.setParameter(SpeechConstant.VOLUME, ""+volume); //获取语调 int pitch = mSharedPreferences.getInt( getString(R.string.preference_key_tts_pitch), 50); //设置语调 mSpeechSynthesizer.setParameter(SpeechConstant.PITCH, ""+pitch); //获取合成文本. Editable editable = mSourceText.getText(); String source = null; if (null != editable) { source = editable.toString(); } //进行语音合成. mSpeechSynthesizer.startSpeaking(source, this); showTip(String.format(getString(R.string.tts_toast_format),0 ,0)); }
package dmcore.outputs; import android.app.Application; import android.content.Context; import com.iflytek.cloud.speech.SpeechError; import com.iflytek.cloud.speech.SpeechSynthesizer; import com.iflytek.cloud.speech.SynthesizerListener; public class MyOutput extends Application implements SynthesizerListener{ //缓存对象. //private SharedPreferences mSharedPreferences; //合成对象. private SpeechSynthesizer mSpeechSynthesizer; private static Context context; public void onCreate() { super.onCreate(); MyOutput.context = getApplicationContext(); } public static Context getAppContext() { return MyOutput.context; } //------------------------------------------------------------------------- // Constructor //------------------------------------------------------------------------- public MyOutput(){ } public void SetParameter(){ if (mSpeechSynthesizer == null) { //创建合成对象. mSpeechSynthesizer = SpeechSynthesizer.createSynthesizer(context); } /*//设置合成发音人. String role = mSharedPreferences.getString( getString(R.string.preference_key_tts_role), getString(R.string.preference_default_tts_role)); //设置发音人 mSpeechSynthesizer.setParameter(SpeechConstant.VOICE_NAME, role); //获取语速 int speed = mSharedPreferences.getInt( getString(R.string.preference_key_tts_speed), 50); //设置语速 mSpeechSynthesizer.setParameter(SpeechConstant.SPEED, ""+speed); //获取音量. int volume = mSharedPreferences.getInt( getString(R.string.preference_key_tts_volume), 50); //设置音量 mSpeechSynthesizer.setParameter(SpeechConstant.VOLUME, ""+volume); //获取语调 int pitch = mSharedPreferences.getInt( getString(R.string.preference_key_tts_pitch), 50); //设置语调 mSpeechSynthesizer.setParameter(SpeechConstant.PITCH, ""+pitch);*/ } /** * 使用SpeechSynthesizer合成语音,不弹出合成Dialog. * @param */ public void synthetizeInSilence(String SourceText) { //进行语音合成. mSpeechSynthesizer.startSpeaking(SourceText, this); } @Override public void onBufferProgress(int arg0, int arg1, int arg2, String arg3) { // TODO Auto-generated method stub } @Override public void onCompleted(SpeechError arg0) { // TODO Auto-generated method stub } @Override public void onSpeakBegin() { // TODO Auto-generated method stub } @Override public void onSpeakPaused() { // TODO Auto-generated method stub } @Override public void onSpeakProgress(int arg0, int arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onSpeakResumed() { // TODO Auto-generated method stub } }
原文:http://blog.csdn.net/houxingding/article/details/24302125