Android应用开发接入讯飞语音合成

前言:
在日常的生活中免不了要有一些指定的文字需要手机帮我们读出来,那这个时候我就需要考虑到怎么样才能让手机帮我们读出来呢?
实现的方法:
接下来我来说说实现的方法以及步骤,我们都知道Android原声给我们提供了一种方式供我们实现这样的功能,这个类叫做TextToSpeech(文本转化为语言),这是第一种实现的方式,但是这个方式的局限性比较大;这个时候我们可以考虑第二种实现的方式,使用第三方的SDK接入到我们的APP中,这里我使用的是讯飞的SDK,接下来看看实现步骤:

  • 步骤一
    要使用第三方平台的SDK,那第一步肯定是在平台上注册开发者账号:http://www.xfyun.cn/这是讯飞的开发者平台的链接
    步骤二
    创建自己的应用,如图所示
    这里写图片描述
    步骤三
    应用创建成功后根据提示去下载相应的SDK,下载完成之后如图所示
    这里写图片描述
    步骤四
    创建自己的项目,然后导入相应的so文件和jar包,这里需要提的一个地方就是下载的sdk包中 官方的项目是eclipse的使用Android studio的人需要分成两个文件夹来导入,在下载后的libs文件夹中导入MSC.jar到项目的libs中,而另一个文件需要导入到main文件下面的jniLibs文件夹中,需要导入的文件如图,也就是so文件
    这里写图片描述
    这样的话准备工作就已经完成,接下来就按照官方的文档来实现自己的代码逻辑就可以了,接下来贴出我的代码。
    private void Speak() {
    String content = editText.getText().toString().trim();
    // 初始化AppId
    SpeechUtility.createUtility(context, SpeechConstant.APPID + “=你的申请的APPID”);
    // 1.创建SpeechSynthesizer对象, 第二个参数:本地合成时传InitListener
    SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(context, null);
    // 2.合成参数设置,详见《科大讯飞MSC API手册(Android)》SpeechSynthesizer 类
    mTts.setParameter(SpeechConstant.VOICE_NAME, “xiaoyan”);// 设置发音人
    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(content, mSynListener);
    }

    //合成监听器
    private SynthesizerListener mSynListener = new SynthesizerListener() {
    //会话结束回调接口,没有错误时,error为null
    public void onCompleted(SpeechError error) {
    }
    //缓冲进度回调
    //percent为缓冲进度0~100,beginPos为缓冲音频在文本中开始位置,endPos表示缓冲音频在文本中结束位置,info为附加信息。
    public void onBufferProgress(int percent, int beginPos, int endPos, String info) {
    }
    //开始播放
    public void onSpeakBegin() {
    }
    //暂停播放
    public void onSpeakPaused() {
    }
    //播放进度回调
    //percent为播放进度0~100,beginPos为播放音频在文本中开始位置,endPos表示播放音频在文本中结束位置.
    public void onSpeakProgress(int percent, int beginPos, int endPos) {
    }
    //恢复播放回调接口
    public void onSpeakResumed() {
    }
    //会话事件回调接口
    public void onEvent(int arg0, int arg1, int arg2, Bundle arg3) {
    }
    };
    以上就是整个使用语音合成的所有步骤,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值