第三方SDK:讯飞语音

分类

这里写图片描述

前提

在讯飞开发者平台创建应用,获取Appid,下载SDK,复制jar和so文件,在Application中初始化

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        SpeechUtility.createUtility(this, SpeechConstant.APPID +"=59892b71");
    }
}

语音合成

SpeechSynthesizer
初始化语音合成对象

SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(this, mTtsInitListener);

初始化监听mTtsInitListener

private InitListener mTtsInitListener = new InitListener() {
    @Override
    public void onInit(int code) {
        if (code != ErrorCode.SUCCESS) {
            ToastUtil.showLongToast(context, "初始化失败,错误码:" + code);
        } else {
            // 初始化成功,之后可以调用startSpeaking方法
            // 注:有的开发者在onCreate方法中创建完合成对象之后马上就调用startSpeaking进行合成,
            // 正确的做法是将onCreate中的startSpeaking调用移至这里
        }
    }
};

开始合成:

int code = mTts.startSpeaking("科大讯飞,让世界聆听我们的声音", synthesizerListener);

mTtsListener:synthesizerListener

private SynthesizerListener synthesizerListener = new SynthesizerListener() {

    @Override
    public void onSpeakBegin() {
        showTip("开始播放");
    }

    @Override
    public void onSpeakPaused() {
        showTip("暂停播放");
    }

    @Override
    public void onSpeakResumed() {
        showTip("继续播放");
    }

    @Override
    public void onBufferProgress(int percent, int beginPos, int endPos,
                                 String info) {
        // 合成进度
        showTip(String.format(getString(R.string.tts_toast_format), percent));
    }

    @Override
    public void onSpeakProgress(int percent, int beginPos, int endPos) {
        // 播放进度
    }

    @Override
    public void onCompleted(SpeechError error) {
        if (error == null) {
            showTip("播放完成");
        } else if (error != null) {
            showTip(error.getPlainDescription(true));
        }
    }

    @Override
    public void onEvent(int eventType, int arg1, int arg2, Bundle obj) {
        // 以下代码用于获取与云端的会话id,当业务出错时将会话id提供给技术支持人员,可用于查询会话日志,定位出错原因
        // 若使用本地能力,会话id为null
        //  if (SpeechEvent.EVENT_SESSION_ID == eventType) {
        //      String sid = obj.getString(SpeechEvent.KEY_EVENT_SESSION_ID);
        //      Log.d(TAG, "session id =" + sid);
        //  }
    }
};

Demo:http://git.oschina.net/ThirdPartySDKSample/SpeechSynthesizer01

语音听写

第三方SDK:讯飞语音听写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值