分享

Android语音合成(使用科大讯飞sdk)

 quasiceo 2016-01-30
001.package com.tts.demo;
002. 
003.import com.iflytek.cloud.ErrorCode;
004.import com.iflytek.cloud.InitListener;
005.import com.iflytek.cloud.SpeechConstant;
006.import com.iflytek.cloud.SpeechError;
007.import com.iflytek.cloud.SpeechSynthesizer;
008.import com.iflytek.cloud.SpeechUtility;
009.import com.iflytek.cloud.SynthesizerListener;
010. 
011.import android.os.Bundle;
012.import android.app.Activity;
013.import android.util.Log;
014.import android.view.Menu;
015.import android.view.View;
016.import android.view.View.OnClickListener;
017.import android.widget.Button;
018. 
019.public class MainActivity extends Activity implements OnClickListener{
020.     
021.    private SpeechSynthesizer mySynthesizer;
022.     
023.    private Button tts_Button;
024. 
025.    @Override
026.    protected void onCreate(Bundle savedInstanceState) {
027.        super.onCreate(savedInstanceState);
028.        setContentView(R.layout.activity_main);
029.         
030.        tts_Button = (Button) findViewById(R.id.tts_button);
031.        tts_Button.setOnClickListener(this);
032.        /*
033.        在使用语音平台上传应用包的时候会自定生成一个appid   应该使用与包相对应的appid在申请提交后没有使用次数的限制
034.         
035.        */
036.        //语音初始化,在使用应用使用时需要初始化一次就好,如果没有这句会出现10111初始化失败
037.        SpeechUtility.createUtility(MainActivity.this, "appid=51e8ae25");
038.        //处理语音合成关键类
039.        mySynthesizer = SpeechSynthesizer.createSynthesizer(this, myInitListener);
040.    }
041. 
042.    private InitListener myInitListener = new InitListener() {
043.        @Override
044.        public void onInit(int code) {
045.            Log.d("mySynthesiezer:", "InitListener init() code = " + code);
046.        }
047.    };
048. 
049.    @Override
050.    public void onClick(View v) {
051.        // TODO Auto-generated method stub
052.        switch (v.getId()){
053.        case R.id.tts_button:
054.            //设置发音人
055.            mySynthesizer.setParameter(SpeechConstant.VOICE_NAME,"xiaoyan");
056.            //设置音调
057.            mySynthesizer.setParameter(SpeechConstant.PITCH,"50");
058.            //设置音量
059.            mySynthesizer.setParameter(SpeechConstant.VOLUME,"50");
060.            int code = mySynthesizer.startSpeaking("欢迎使用语音导航!", mTtsListener);
061.            Log.d("mySynthesiezer start code:", code+"");
062.            break;
063.        default:
064.            break;
065.        }
066.    }
067.     
068.     
069.    private SynthesizerListener mTtsListener = new SynthesizerListener() {
070.        @Override
071.        public void onSpeakBegin() {
072.        }
073.        @Override
074.        public void onSpeakPaused() {
075.        }
076.        @Override
077.        public void onSpeakResumed() {
078.        }
079.        @Override
080.        public void onBufferProgress(int percent, int beginPos, int endPos,
081.                String info) {
082.        }
083.        @Override
084.        public void onSpeakProgress(int percent, int beginPos, int endPos) {
085.        }
086. 
087.        @Override
088.        public void onCompleted(SpeechError error) {
089.            if(error!=null)
090.            {
091.                Log.d("mySynthesiezer complete code:", error.getErrorCode()+"");
092.            }
093.            else
094.            {
095.                Log.d("mySynthesiezer complete code:", "0");
096.            }
097.        }
098.    };
099. 
100.}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多