美文网首页我们一起学Android
Android在线语音合成——讯飞开放平台

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

作者: Charon_Pluto | 来源:发表于2017-04-27 16:20 被阅读271次

    第一步准备工作

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

    讯飞开放平台官网

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

    (1)创建应用

    应用创建

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

    appid为箭头的位置

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

    sdk下载

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

    1.依赖jar包

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

    jar包位置

    之后进行jar依赖

    jar包依赖

    2.so库以及assets资源导入

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

    文件夹下内容 so库以及assets资源显示位置

    3.获取相应权限

    <uses-permission android:name="android.permission.INTERNET">

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">

    <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">

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE">

    <uses-permission android:name="android.permission.WRITE_SETTINGS">

    <uses-permission android:name="android.permission.CAMERA">

    第三步语音合成使用代码

    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在线语音合成——讯飞开放平台

        本文链接:https://www.haomeiwen.com/subject/ixfnzttx.html