讯飞语音合成

第一步:将下载好的Sdk解压,将压缩文件中的libs下的jar文件放到项目中的libs包下,将压缩文件中的lisb下除jar文件放到main下的jniLibs包中
在这里插入图片描述
第二步:Sdk初始化,建议选择在自定义的application中初始化。

 //初始化讯飞语音
SpeechUtility.createUtility(getApplicationContext(), SpeechConstant.APPID + "=5bbf3e23");

第三步:添加权限,建议自己看文档
打包或者生成APK的时候进行混淆

-keep class com.iflytek.**{*;}
-keepattributes Signature

语音合成

  public void onClick(View v) {

            mTts = SpeechSynthesizer.createSynthesizer(this, null);
            // 清空参数
            mTts.setParameter(SpeechConstant.PARAMS, null);
            // 设置在线云端
            mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);
            // 设置发音人
            mTts.setParameter(SpeechConstant.VOICE_NAME, sp.getString("name", "xiaoyan"));
            // 设置发音语速
            mTts.setParameter(SpeechConstant.SPEED, "50");
            // 设置音调
            mTts.setParameter(SpeechConstant.PITCH, "50");
            // 设置合成音量
            mTts.setParameter(SpeechConstant.VOLUME, "100");
            // 设置播放器音频流类型
            mTts.setParameter(SpeechConstant.STREAM_TYPE, "3");
            // 设置播放合成音频打断音乐播放,默认为true
            mTts.setParameter(SpeechConstant.KEY_REQUEST_FOCUS, "true");
            // 设置音频保存路径,需要申请WRITE_EXTERNAL_STORAGE权限,如不需保存注释该行代码
//            mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH,"./sdcard/iflytek.pcm");

            //获取文本并开始合成
            mTts.startSpeaking(text.getText().toString(), mSynListener);


            //开始播放按钮
            btn_play.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mTts.resumeSpeaking();
                }
            });
            
		    //暂停按钮
            btn_puase.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mTts.pauseSpeaking();
                }
            });
        }

   private SynthesizerListener mSynListener = new SynthesizerListener() {


            //开始播放
            @Override
            public void onSpeakBegin() {
 
            }

            //缓冲进度回调
            @Override
            public void onBufferProgress(int i, int i1, int i2, String s) {

            }

            //暂停播放
            @Override
            public void onSpeakPaused() {
      
            }

            //恢复播放回调接口
            @Override
            public void onSpeakResumed() {
  
            }

            //播放进度回调
            @Override
            public void onSpeakProgress(int percent, int beginPos, int endPos) {
                if (beginPos == 0) {
                    
                }
            }

            //会话结束回调接口,没有错误时,error为null
            @Override
            public void onCompleted(SpeechError speechError) {
                if (speechError == null) {
        
            }

            //会话事件回调接口
            @Override
            public void onEvent(int i, int i1, int i2, Bundle bundle) {

            }
        };

设置发音人建议自己查看讯飞语音官方文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值