Android 离线语音(讯飞语音)封装工具类
2016-12-23 13:36
507 查看
一开始为了赶项目进度,没进行封装工具类,在好几个Actiivty里写了好几遍重复代码,
感觉太冗余了,今天把代码封装一下,使用起来就很方便了
如果对离线语音配置与使用方法不是很了解
请先阅读我上一篇文章Android 离线语音使用方法与配置
util:
setParam 写一遍就行了 如果不需要改参数的话
作者水平有限 不喜勿喷
感觉太冗余了,今天把代码封装一下,使用起来就很方便了
如果对离线语音配置与使用方法不是很了解
请先阅读我上一篇文章Android 离线语音使用方法与配置
工具类
Myapplication:public void initVoice(){ //初始化语音播报 StringBuffer param = new StringBuffer(); param.append("appid=" + "APPID"); param.append(","); param.append(SpeechConstant.ENGINE_MODE + "=" + SpeechConstant.MODE_MSC); SpeechUtility.createUtility(getApplicationContext(), param.toString()); }
util:
import android.content.Context; import com.iflytek.cloud.ErrorCode; import com.iflytek.cloud.InitListener; import com.iflytek.cloud.SpeechConstant; import com.iflytek.cloud.SpeechSynthesizer; import com.iflytek.cloud.util.ResourceUtil; /** * Created by ly on 2016/12/22. */ public class OfflineVoiceUtils { // 语音合成对象 public static SpeechSynthesizer mTts; // 默认本地发音人 public static String voicerLocal = "xiaoyan"; Context context; private static OfflineVoiceUtils instance = null; // 获取发音人资源路径 public String getResourcePath() { StringBuffer tempBuffer = new StringBuffer(); // 合成通用资源 tempBuffer.append(ResourceUtil.generateResourcePath(context, ResourceUtil.RESOURCE_TYPE.assets, "tts/common.jet")); tempBuffer.append(";"); // 发音人资源 tempBuffer.append(ResourceUtil.generateResourcePath(context, ResourceUtil.RESOURCE_TYPE.assets, "tts/" + OfflineVoiceUtils.voicerLocal + ".jet")); return tempBuffer.toString(); } public void setParam(String voice_text_rate) { // 清空参数 mTts.setParameter(SpeechConstant.PARAMS, null); // 设置使用本地引擎 mTts.setParameter(SpeechConstant.ENGINE_T e9aa YPE, SpeechConstant.TYPE_LOCAL); // 设置发音人资源路径 mTts.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath()); // 设置发音人 mTts.setParameter(SpeechConstant.VOICE_NAME, voicerLocal); // 设置语速 mTts.setParameter(SpeechConstant.SPEED, voice_text_rate); // 设置音调 mTts.setParameter(SpeechConstant.PITCH, "50"); // 设置音量 mTts.setParameter(SpeechConstant.VOLUME, "50"); // 设置播放器音频流类型 mTts.setParameter(SpeechConstant.STREAM_TYPE, "3"); } public static OfflineVoiceUtils getInstance(Context context) { if (instance == null) instance = new OfflineVoiceUtils(); instance.setContext(context); mTts = SpeechSynthesizer.createSynthesizer(context, new InitListener() { @Override public void onInit(int code) { if (code != ErrorCode.SUCCESS) { // Toast.makeText(mContext, "初始化失败,错误码:" + code, Toast.LENGTH_SHORT).show(); } } }); return instance; } public void setContext(Context context) { this.context = context; } }
Activity:(使用的地方)
onCreate:OfflineVoiceUtils.getInstance(this).setParam(); OfflineVoiceUtils.mTts.startSpeaking("我爱你中国",null);
setParam 写一遍就行了 如果不需要改参数的话
作者水平有限 不喜勿喷
相关文章推荐
- Android 离线语音使用方法(讯飞语音)
- Android 离线语音用法(讯飞语音)
- Android上封装的一个音频工具类
- Android下PocketSphinx的离线语音识别
- Android下通过pocketsphinx实现离线语音识别的环境搭建和demo运行(续)--实现Windows下的语音识别
- android animation demo (2014-12-11 封装为工具类)
- Android 封装http请求的工具类
- 【Android】封装一个简单好用的打印Log的工具类
- 【iOS开发】封装聊天输入框MKInputBar,语音支持iOS & Android平台
- [置顶] Android下通过pocketsphinx实现离线语音识别的环境搭建和demo运行
- Android封装的http请求实用工具类
- Android离线语音识别demo调试(Ubuntu12.04)
- Android下PocketSphinx的离线语音识别
- Android 封装http请求的工具类
- Android下通过pocketsphinx实现离线语音识别的环境搭建和demo运行(续)--实现Windows下的语音识别
- Android下PocketSphinx的离线语音识别
- Android 网络连接工具类封装,支持wifi以及3G网络
- android的UI工具类封装
- Android 封装http请求的工具类
- 【Android】封装一个简单好用的打印Log的工具类