关于项目中个使用到的自然语言语音转文字&文字转语言的个人总结:

VOICE_NAME, "xiaoyan");speechSynthesizer.setParameter(SpeechConstant.SPEED, "50");//语速
speechSynthesizer.setParameter(SpeechConstant.VOLUME, "50");//音量,范围是0---100
speechSynthesizer.setParameter(SpeechConstant.PITCH, "50");
}
/**
* percent 缓冲进度 0-100
* beginPos 缓冲音频在文中的开始位置
* endPos 缓冲音频在文中的末位置
* info 附加信息
* */
@Override
public void onBufferProgress(int percent, int beginPos, int endPos, String info) { }
//会话结束回调接口,无错误时err为null
@Override
public void onCompleted(SpeechError err) { }
//开始播放
@Override
public void onSpeakBegin() { }
//暂停播放
@Override
public void onSpeakPaused() { }
/**
* percent 播放进度 0-100
* beginPos 播放音频在文中的开始位置
* endPos 播放音频在文中的末位置
* */
@Override
public void onSpeakProgress(int percent, int beginPos, int endPos) { }
//恢复 播放
@Override
public void onSpeakResumed() { }}

最后的是把你的话转为文字

package zy.voice;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Environment;
import android.text.TextUtils;
import android.widget.Toast;
import com.iflytek.cloud.speech.SpeechConstant;
import com.iflytek.cloud.speech.SpeechError;
import com.iflytek.cloud.speech.SpeechListener;
import com.iflytek.cloud.speech.SpeechRecognizer;
import com.iflytek.cloud.speech.SpeechUser;
import com.iflytek.cloud.ui.RecognizerDialog;
import com.iflytek.cloud.ui.RecognizerDialogListener;
import com.iflytek.sunflower.FlowerCollector;
public class VoiceToWord extends Activity {
private Context context;
private Toast mToast;
// 识别窗口
private RecognizerDialog iatDialog;
// 识别对象
private SpeechRecognizer iatRecognizer;
// 缓存,保存当前的引擎参数到下一次启动应用程序使用.
private SharedPreferences mSharedPreferences;
private RecognizerDialogListener recognizerDialogListener = null;
public VoiceToWord(Context context, String APP_ID) {
// TODO Auto-generated constructor stub
// 用户登录
this.context = context;
// 初始化缓存对象.
mSharedPreferences = context.getSharedPreferences(
context.getPackageName(), MODE_PRIVATE);
SpeechUser.getUser().login(context, null, null, "appid=" + APP_ID,
listener);
// 初始化听写Dialog,如果只使用有UI听写功能,无需创建SpeechRecognizer
iatDialog = new RecognizerDialog(context);
mToast = Toast.makeText(context, "", Toast.LENGTH_LONG);
// 初始化听写Dialog,如果只使用有UI听写功能,无需创建SpeechRecognizer
iatDialog = new RecognizerDialog(context);
iatDialog.setCanceledOnTouchOutside(false);
}
public VoiceToWord(Context context, String APP_ID,
RecognizerDialogListener recognizerDialogListener) {
this.context = context;
SpeechUser.getUser().login(context, null, null, "appid=" + APP_ID,
listener);
// 初始化听写Dialog,如果只使用有UI听写功能,无需创建SpeechRecognizer
iatDialog = new RecognizerDialog(context);
mToast = Toast.makeText(context, "", Toast.LENGTH_LONG);
// 初始化听写Dialog,如果只使用有UI听写功能,无需创建SpeechRecognizer
iatDialog = new RecognizerDialog(context);
// 在dialog外面不能取消
iatDialog.setCanceledOnTouchOutside(false);
// 初始化缓存对象.
mSharedPreferences = context.getSharedPreferences(
context.getPackageName(), MODE_PRIVATE);
this.recognizerDialogListener = recognizerDialogListener;
}
public void GetWordFromVoice() {
boolean isShowDialog = mSharedPreferences.getBoolean("iat_show", true);
if (isShowDialog) {
// 显示语音听写Dialog.
showIatDialog();
} else {
if (null == iatRecognizer) {
iatRecognizer = SpeechRecognizer.createRecognizer(this);
// 设置返回结果格式
// iatRecognizer.setParameter(SpeechConstant.RESULT_TYPE, "json");
//
// String lag = mSharedPreferences.getString(
// "iat_language_preference", "mandarin");
// if (lag.equals("en_us")) {
// // 设置语言
// iatRecognizer
// .setParameter(SpeechConstant.LANGUAGE, "en_us");
// } else {
// // 设置语言
// iatRecognizer
// .setParameter(SpeechConstant.LANGUAGE, "zh_cn");
// // 设置语言区域
// iatRecognizer.setParameter(SpeechConstant.ACCENT, lag);
// }
// // 设置语音前端点
// iatRecognizer.setParameter(SpeechConstant.VAD_BOS,
// mSharedPreferences.getString("iat_vadbos_preference",
// "4000"));
// // 设置语音后端点
// iatRecognizer.setParameter(SpeechConstant.VAD_EOS,
// mSharedPreferences.getString("iat_vadeos_preference",
// "1000"));
// // 设置标点符号
// iatRecognizer.setParameter(SpeechConstant.ASR_PTT,
// mSharedPreferences
// .getString("iat_punc_preference", "1"));
// // 设置音频保存路径
// iatRecognizer.setParameter(SpeechConstant.ASR_AUDIO_PATH,
// Environment.getExternalStorageDirectory()
// + "/iflytek/wavaudio.pcm");//需在清单文件里添加sd卡的权限
}
if (iatRecognizer.isListening()) {
iatRecognizer.stopListening();
// ((Button)
// findViewById(android.R.id.button1)).setEnabled(false);
} else {
}
}
} /**
* 显示听写对话框.
*
* @param
*/
public void showIatDialog() {
if (null == iatDialog) {
// 初始化听写Dialog
iatDialog = new RecognizerDialog(this);
}
// 获取引擎参数
String engine = mSharedPreferences.getString("iat_engine", "iat");
// 清空Grammar_ID,防止识别后进行听写时Grammar_ID的干扰
iatDialog.setParameter(SpeechConstant.CLOUD_GRAMMAR, null);
// 设置听写Dialog的引擎
iatDialog.setParameter(SpeechConstant.DOMAIN, engine);
// 设置采样率参数,支持8K和16K
String rate = mSharedPreferences.getString("sf", "sf");
if (rate.equals("rate8k")) {
iatDialog.setParameter(SpeechConstant.SAMPLE_RATE, "8000");
} else {
iatDialog.setParameter(SpeechConstant.SAMPLE_RATE, "16000");
}
if (recognizerDialogListener == null) {
getRecognizerDialogListener();
}
// 显示听写对话框
iatDialog.setListener(recognizerDialogListener);
iatDialog.show();
}
private void getRecognizerDialogListener() {
/**
* 识别回调监听器
*/
recognizerDialogListener = new MyRecognizerDialogLister(context);
}
/**
* 用户登录回调监听器.
*/
private SpeechListener listener = new SpeechListener() {
@Override
public void onData(byte[] arg0) {
}
@Override
public void onCompleted(SpeechError error) {
if (error != null) {
System.out.println("user login success");
}
}
@Override
public void onEvent(int arg0, Bundle arg1) {
}
};
protected void onDestroy() {
// 退出时释放连接
iatRecognizer.cancel();
iatRecognizer.destroy();
};
@Override
protected void onResume() {
// 移动数据统计分析
FlowerCollector.onResume(this);
FlowerCollector.onPageStart("VoiceToWord");
super.onResume();
}
@Override
protected void onPause() {
// 移动数据统计分析
FlowerCollector.onPageEnd("VoiceToWord");
FlowerCollector.onPause(this);
super.onPause();
}
}

最后别忘了添加权限

如果您愿意花几块钱请我喝杯茶的话,可以用手机扫描下方的二维码,通过 支付宝 捐赠。我会努力写出更好的文章。 
(捐赠不显示捐赠者的个人信息,如需要,请注明您的联系方式) 
Thank you for your kindly donation!!


 
 

自然语言交流系统 phxnet团队 创新实训 个人博客 (四)的更多相关文章

  1. 自然语言交流系统 phxnet团队 创新实训 个人博客 (五)

    有关我们这个项目:智能自然语言交流系统,所借鉴的技术有: 第一:我们使用了科大讯飞的在线语音转换,涉及的有文本传给云端服务器的文字转换成语音和本地的语音上传给服务器转换成文字. 涉及的相关的代码有: ...

  2. 自然语言交流系统 phxnet团队 创新实训 项目博客 (四)

    刚开始做时,一点头绪都没有,整天的上网找资料,各种谷歌百度,各种博客论坛,搜索的关键词也无非是智能自然语言交流.智能机器人.中文问答系统等等等等.而我们的思路也是些零散的,例如我们知道会用到分词,会用 ...

  3. 自然语言交流系统 phxnet团队 创新实训 项目博客 (二)

    基本要求 打开软件,即可进入2D文本交流界面, 软件此时已经连接到服务器,点击文本输入框输入你想说的话,点击发送按钮即可进行交流,点击CHAT和STUDY分别切换到聊天模式或是学习模式,聊天模式是机器 ...

  4. 自然语言交流系统 phxnet团队 创新实训 个人博客 (十一)

    名思义是 给游戏场景 添加一个 天空背景 让游戏更加精美,更具有魅力 添加天空盒 有两种方式  1 : 在当前相机上添加skybox   2 : 在当前场景上添加skybox 上面的两种方式的结果是一 ...

  5. 自然语言交流系统 phxnet团队 创新实训 个人博客 (九)

    情感倾向可认为是主体对某一客体主观存在的内心喜恶,内在评价的一种倾向.它由两个方面来衡量:一个情感倾向方向,一个是情感倾向度. 情感倾向方向也称为情感极性.在微博中,可以理解为用户对某客体表达自身观点 ...

  6. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十四)

    项目技术借鉴报告: 一.服务器端(Server) 1.分词 分词使用的是庖丁分词.使用盘古分词词库和词素作为辅助.其中包括下载Jar包并且使用. 2.人工神经网络 以网上已有的初级网络为蓝图,结合机器 ...

  7. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十三)

    对我们项目中的关键技术实现进行总结: 一.3DMax关键技术实现 1.一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. 2. 骨骼架设:首先对导入到3DM ...

  8. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十二)

    关于情感词典的学习总结: 情感倾向可认为是主体对某一客体主观存在的内心喜恶,内在评价的一种倾向.它由两个方面来衡量:一个情感倾向方向,一个是情感倾向度. 情感倾向方向也称为情感极性.在微博中,可以理解 ...

  9. 自然语言交流系统 phxnet团队 创新实训 项目博客 (五)

    3DMax方面所涉及的专业知识:                       (1)一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. (2)骨骼架设:首先 ...

随机推荐

  1. Atitti dbutil获取多个返回结果集的解决

    Atitti dbutil获取多个返回结果集的解决 1.1. 多个select默认只返回第一个resultset1 1.2. 调用存储过程,也是返回第一个select的1 1.3. 如果insert前 ...

  2. ssr.js数据模拟工具

    ssr相当于是搭建了一个 Mock Server ,构建假数据,然后把这些假数据存到 JSON 文件上,Mock Server 可以响应请求或者生成页面,当然也可以顺便生成 API 文档. 强制跨域访 ...

  3. angular-resource版本差异问题

    在 AngularJS v1.3.0-beta.14 这个版本里,使用query方法,如果传递进来的数据不是数组,会报错. 在 AngularJS v1.2.18 这个版本里,使用query方法,如果 ...

  4. 每日英语:Why Rate Your Marriage? A Numerical Score Can Help Couples Talk About Problems

    When marriage therapist Sharon Gilchrest O'Neill met with new clients recently, she asked them why t ...

  5. 用户手势检测-GestureDetector使用详解

    一.概述 当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等. 一般情况下,我们知道View类有个View.OnTouchListener内部接口,通过重写他的o ...

  6. 【驱动】linux设备驱动·字符设备驱动开发

    Preface 前面对linux设备驱动的相应知识点进行了总结,现在进入实践阶段! <linux设备驱动入门篇>:http://infohacker.blog.51cto.com/6751 ...

  7. 安装C/C++交叉编译环境

    转:http://blog.csdn.net/nokiaguy/article/details/8509739 X86架构的CPU采用的是复杂指令集(Complex Instruction Set C ...

  8. java中的数据结构[copy]

    转自http://developer.51cto.com/art/201107/273003.htm java版数据结构与算法,希望对你有帮助. 线性表,链表,哈希表是常用的数据结构,在进行Java开 ...

  9. Django-管理站点重写admin模板

    参考链接:https://blog.csdn.net/u013378306/article/details/79023242 使用Django的admin管理工具,可以快速的构建自己的管理平台,使用D ...

  10. jQuery 学习笔记2 点击时弹出一个对话框

    上次学习的是页面加载完成后弹出一个警告框,这里我们改为当用户点击后弹出一个警告框. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...