安卓SDK——语音合成

接上讯飞语音识别(听写)

https://blog.csdn.net/nishigesb123/article/details/90478104

依旧是讯飞...接着上一个做下去了省的再集成一次


参考文档:https://doc.xfyun.cn/msc_android/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90.html

多的就不讲了

语音合成

布局




    

    

代码

基本上就是配置一下参数....建议参考Demo来配,或者读API

http://mscdoc.xfyun.cn/android/api/

语音合成中,主要参数包括:

  • 语言(LANGUAGE,中文、英文等)
  • 方言(ACCENT,中文的普通话,粤语等)
  • 发音人特征(性别,年龄,语气)
  • 语速(SPEED)
  • 音量(VOLUME)
  • 语调(PITCH)
  • 音频采样率(SAMPLE_RATE)
package com.example.a5_23speech_recognition;

import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechError;
import com.iflytek.cloud.SpeechSynthesizer;
import com.iflytek.cloud.SpeechUtility;
import com.iflytek.cloud.SynthesizerListener;
import com.iflytek.cloud.util.ResourceUtil;

public class Main2Activity extends AppCompatActivity {
    private EditText editText_content;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        editText_content = findViewById(R.id.editText_content);
    }

    public void startClick(View view) {
        //创建对象
        SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(this, null);
        //合成参数
        //朗读者列表可以参考
        // https://doc.xfyun.cn/msc_android/%E5%90%88%E6%88%90%E5%8F%91%E9%9F%B3%E4%BA%BA%E5%88%97%E8%A1%A8.html
        mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");
        //在线模式
        mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);
        //设置合成语速
        mTts.setParameter(SpeechConstant.SPEED, "50");
        //设置合成音调
        mTts.setParameter(SpeechConstant.PITCH, "50");
        //设置合成音量
        mTts.setParameter(SpeechConstant.VOLUME, "50");

        // 设置音频保存路径,保存音频格式支持pcm、wav,设置路径为sd卡请注意WRITE_EXTERNAL_STORAGE权限
/*        mTts.setParameter(SpeechConstant.AUDIO_FORMAT, "pcm");
        mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, Environment.getExternalStorageDirectory()+"/msc/tts.pcm");*/


        //离线模式
/*        if( SpeechConstant.TYPE_LOCAL.equals(engineType)
                &&SpeechConstant.MODE_MSC.equals(engineMode) ){
            // 需下载使用对应的离线合成SDK
            mTts.setParameter( ResourceUtil.TTS_RES_PATH, ttsResPath );
        }*/


        String content = editText_content.getText().toString();
        mTts.startSpeaking(content, mSynListener);
    }

    //合成监听器(导带cloud字样的包
    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 i, int i1, int i2) {
            //可以在这里设置,来实现显示朗读进度
        }

        @Override
        public void onCompleted(SpeechError speechError) {

        }

        @Override
        public void onEvent(int i, int i1, int i2, Bundle bundle) {

        }
    };

}

效果

好吧截图是截不出来效果的,输入内容点按钮反正是能听到声音就对了← ←

安卓SDK——语音合成_第1张图片

你可能感兴趣的:(安卓开发)