讯飞语音包实现Android语音合成

1.先要到讯飞官网去注册并且获取相对应的appid,申请地址:http://www.xfyun.cn/

将开发工具包中libs目录下的Msc.jar和armeabi复制到Android工程的libs目录(如果工程无libs目录,请自行创建)中,如下图所示

                                                         


3.在工程AndroidManifest.xml文件中添加如下权限:

   <!--连接网络权限,用于执行云端语音能力 -->  
<uses-permission android:name="android.permission.INTERNET"/>  
<!--获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->  
<uses-permission android:name="android.permission.RECORD_AUDIO"/>  
<!--读取网络信息状态 -->  
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
<!--获取当前wifi状态 -->  
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
<!--允许程序改变网络连接状态 -->  
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>  
<!--读取手机信息权限 -->  
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>  
<!--读取联系人权限,上传联系人需要用到此权限 -->  
<uses-permission android:name="android.permission.READ_CONTACTS"/>  
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

4.主要代码如下:

public class MainActivity extends Activity implements OnClickListener {
	private Button button;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//初始化即创建语音配置对象,只有初始化后才可以使用 MSC 的各项服务
		//
		
		setContentView(R.layout.activity_main);
		button = (Button) findViewById(R.id.bt);
		button.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.bt:
			SpeechUtility.createUtility(this,SpeechConstant.APPID+"=12345678");
			//1.创建 SpeechSynthesizer 对象, 第二个参数:本地合成时传 InitListener
			SpeechSynthesizer mTts=SpeechSynthesizer.createSynthesizer(MainActivity.this, null);
			//2.合成参数设置
			mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");
			mTts.setParameter(SpeechConstant.SPEED, "50");//设置语速
			mTts.setParameter(SpeechConstant.VOLUME, "80");//设置音量,范围 0~100
			mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); //设置云端
			mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, "./sdcard/iflytek.pcm");
			//开始合成
			mTts.startSpeaking("科大讯飞,让世界聆听我们的声音",  listener);
			break;

		default:
			break;
		}
	}
	
	private SynthesizerListener listener =new SynthesizerListener() {
		
		@Override
		public void onSpeakResumed() {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onSpeakProgress(int arg0, int arg1, int arg2) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onSpeakPaused() {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onSpeakBegin() {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onEvent(int arg0, int arg1, int arg2, Bundle arg3) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onCompleted(SpeechError arg0) {
			// TODO Auto-generated method stub
			//arg0.getPlainDescription(true);
		}
		
		@Override
		public void onBufferProgress(int arg0, int arg1, int arg2, String arg3) {
			// TODO Auto-generated method stub
			
		}
	};
	

}


posted @ 2016-04-15 10:32  稻香鱼  阅读(360)  评论(0)    收藏  举报