科大讯飞离线语音合成简单实例

科⼤讯飞离线语⾳合成简单实例
如何使⽤科⼤讯飞开放平台的语⾳合成呢?
1.⾸先要注册开发者账户, 创建我的新应⽤,创建完后就有⼀个专属APPID(⾮常重要),添加我的应⽤ , 下载你所需要的sdk,这⾥我们下载离线语⾳合成。注意:下载的sdk⽂件,都是⾃⼰创建的应⽤⽣成的,申请appid时就与⾃⼰的应⽤绑定了的。所以⼀定要使⽤⾃⼰下载的⽂件,appid的值也要使⽤⾃⼰的。
密令截击
2.下载后将sdk解压,将libs下的两个jar包添加到libs⽬录下(jar包还要右键 add to Libraries), 同路径下的其它 .so⽂件(与c进⾏交互)复制到main路径下新建的 jniLibs(L要⼤写)⽬录下, 将assert⽬录拷贝到main⽬录下,将res⽬录下的tts⽂件复制到assert⽬录下。并在你的继承了Application的类中添加下图的⼏⾏代码进⾏配置(appid的值写⾃⼰注册的)。这些⽂件的安放位置在我的项⽬中体现如下:
3.在MainActivity同⽬录下创建类KqwSpeechSynthesizer,并创建类SoundTipUtil,再通过下图⽅框圈出的代码,即可实现在activity内进⾏语⾳合成的使⽤了。不妨试试!
KqwSpeechSynthesizer类的代码如下:
t.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.iflytek.cloud.ErrorCode;
import com.iflytek.cloud.InitListener;
import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechError;
import com.iflytek.cloud.SpeechSynthesizer;
import com.iflytek.cloud.SynthesizerListener;
import com.iflytek.cloud.util.ResourceUtil;
/**
1982年诺贝尔医学奖
* 语⾳合成器
*
* @author kongqw
*/
public class KqwSpeechSynthesizer {
// Log标签
private static final String TAG = "KqwSpeechSynthesizer";
private Context mContext;
// 语⾳合成对象
private SpeechSynthesizer mTts;
public KqwSpeechSynthesizer(Context context) {
mContext = context;
// 初始化合成对象
mTts = ateSynthesizer(context, new InitListener() {
@Override
public void onInit(int code) {
Log.d(TAG, "InitListener init() code = " + code);
if (code != ErrorCode.SUCCESS) {
Toast.makeText(mContext, "初始化失败,错误码:" + code, Toast.LENGTH_SHORT).show();                }
}
防火墙终结者});
}
/**
* 开始语⾳合成
*
* @param text
*/
public void start(String text) {
// 设置参数
setParam();
int code = mTts.startSpeaking(text, mTtsListener);
if (code != ErrorCode.SUCCESS) {
Toast.makeText(mContext, "语⾳合成失败,错误码: " + code, Toast.LENGTH_SHORT).show();        }
}
/**
* 合成回调监听。
*/
private SynthesizerListener mTtsListener = new SynthesizerListener() {
@Override
public void onSpeakBegin() {
Log.i(TAG, "开始合成");
}
@Override
public void onSpeakPaused() {
Log.i(TAG, "暂停合成");
}
266uu@Override
public void onSpeakResumed() {
Log.i(TAG, "继续合成");
}
@Override
public void onBufferProgress(int percent, int beginPos, int endPos, String info) {
Log.i(TAG, "传冲进度:" + percent);
}
@Override
public void onSpeakProgress(int percent, int beginPos, int endPos) {
Log.i(TAG, "合成进度: " + percent);
}
@Override
public void onCompleted(SpeechError error) {
if (error == null) {
Log.i(TAG, "合成完成");
} else if (error != null) {
Log.i(TAG, "error : " + String());
}
}
微电极测井@Override
public void onEvent(int arg0, int arg1, int arg2, Bundle arg3) {
/
/ TODO Auto-generated method stub
}
};
/**
* 参数设置
*
* @return
* @return
*/
private void setParam() {
// 清空参数
mTts.setParameter(SpeechConstant.PARAMS, null);
// 设置使⽤本地引擎
mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);
// 设置发⾳⼈资源路径
mTts.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath());
// 设置发⾳⼈
mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");
// 设置语速
mTts.setParameter(SpeechConstant.SPEED, "50");
// 设置⾳调
mTts.setParameter(SpeechConstant.PITCH, "50");
/
/ 设置⾳量
mTts.setParameter(SpeechConstant.VOLUME, "50");
// 设置播放器⾳频流类型
mTts.setParameter(SpeechConstant.STREAM_TYPE, "3");向家坝水电站
}
// 获取发⾳⼈资源路径
private String getResourcePath() {
StringBuffer tempBuffer = new StringBuffer();
// 合成通⽤资源
tempBuffer.ateResourcePath(mContext, ResourceUtil.RESOURCE_TYPE.assets, "tts/common.jet"));        tempBuffer.append(";");
// 发⾳⼈资源
tempBuffer.ateResourcePath(mContext, ResourceUtil.RESOURCE_TYPE.assets, "tts/xiaoyan.jet"));        String();
}
}
SoundTipUtill类代码如下:
t.Context;
public class SoundTipUtil {
private static KqwSpeechSynthesizer kqwSpeechSynthesizer;
public static void soundTip(Context context,String text) {
kqwSpeechSynthesizer = new KqwSpeechSynthesizer(context);
kqwSpeechSynthesizer.start(text);
}
}
如果不是在activity内进⾏语⾳播报,那该咋办?
按以下步骤即可实现:1.在继承了Application的类中添加如下⼏⾏代码(图1);
2.在⾮Activity类中调⽤⽅法即可(如图2)

本文发布于:2024-09-21 17:24:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/203128.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:合成   设置   下载   代码
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议