Android在线语音合成——讯飞开放平台

第一步准备工作

1.讯飞账户注册(这就不介绍了,看看步骤做就可以了)

讯飞开放平台官网

2.创建应用获取应用的Appid

(1)创建应用

Android在线语音合成——讯飞开放平台_第1张图片
应用创建

(2)获取Appid(下面代码会用到)

Android在线语音合成——讯飞开放平台_第2张图片
appid为箭头的位置

3.下载讯飞在线语音SDK资源

Android在线语音合成——讯飞开放平台_第3张图片
sdk下载

第二步Android的资源以及权限配置

1.依赖jar包

首先把下载的jar包放到app下的libs下面

Android在线语音合成——讯飞开放平台_第4张图片
jar包位置

之后进行jar依赖

Android在线语音合成——讯飞开放平台_第5张图片
jar包依赖

2.so库以及assets资源导入

在app\src\main文件夹下面放入so库以及asstes文件

Android在线语音合成——讯飞开放平台_第6张图片
文件夹下内容
Android在线语音合成——讯飞开放平台_第7张图片
so库以及assets资源显示位置

3.获取相应权限


第三步语音合成使用代码

1.进行第三方语音合成的注册 (第二个参数appid就是的第一注册的appid)

public static void intSpeech(Context context,String appid){

  SpeechUtility.createUtility(context, SpeechConstant.APPID+"="+appid);

}

2.在进行文件读取位置的语音操作(speechText语音文字,speaker语音发音人可以为null为默认)

public static void speak( Context context,String speechText,String speaker) {

//1.创建SpeechSynthesizer对象, 第二个参数:本地合成时传InitListener

SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(context,newInitListener() {

@Override

public voidonInit(inti) {

Log.e("app","errorInfo"+i);

}

});

Log.e("app","isnull>"+(mTts==null));

//2.合成参数设置,详见《科大讯飞MSC API手册(Android)》SpeechSynthesizer 类

if(speaker==null){

mTts.setParameter(SpeechConstant.VOICE_NAME,"xiaoyan");//设置发音人

}else{

mTts.setParameter(SpeechConstant.VOICE_NAME, speaker);//设置发音人

}

mTts.setParameter(SpeechConstant.SPEED,"50");//设置语速

mTts.setParameter(SpeechConstant.VOLUME,"80");//设置音量,范围0~100

mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);//设置云端

//设置合成音频保存位置(可自定义保存位置),保存在“./sdcard/iflytek.pcm”

//保存在SD卡需要在AndroidManifest.xml添加写SD卡权限

//如果不需要保存合成音频,注释该行代码

mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH,"./sdcard/iflytek.pcm");

//3.开始合成

mTts.startSpeaking(""+speechText,newcom.iflytek.cloud.SynthesizerListener() {

//开始播放

@Override

public voidonSpeakBegin() {

}

//缓冲进度回调

//percent为缓冲进度0~100,beginPos为缓冲音频在文本中开始位置,endPos表示缓冲音频在文本中结束位置,info为附加信息。

@Override

public voidonBufferProgress(inti,inti1,inti2, String s) {

}

//暂停播放

@Override

public voidonSpeakPaused() {

}

//恢复播放回调接口

@Override

public voidonSpeakResumed() {

}

//播放进度回调

//percent为播放进度0~100,beginPos为播放音频在文本中开始位置,endPos表示播放音频在文本中结束位置.

@Override

public voidonSpeakProgress(inti,inti1,inti2) {

}

//会话结束回调接口,没有错误时,error为null

@Override

public voidonCompleted(SpeechError speechError) {

}

//会话事件回调接口

@Override

public voidonEvent(inti,inti1,inti2, Bundle bundle) {

}

});

}

你可能感兴趣的:(Android在线语音合成——讯飞开放平台)