此处没有注明SDK的集成,,,请小伙伴到科大的平台自行集成/**
     * ATTENTION: This was auto-generated to implement the App Indexing API.
     * See https://g.co/AppIndexing/AndroidStudio for more information.
     */

    private StringBuilder mStringBuilder;@Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void Listen(View view) {//1.创建RecognizerDialog对象,第二个参数就是一个初始化的监听器,我们用不上就设置为null
        RecognizerDialog mDialog = new RecognizerDialog(this, null);//2.设置accent、language等参数
        mDialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");//设置为中文模式
        mDialog.setParameter(SpeechConstant.ACCENT, "mandarin");//设置普通话模式
        //若要将UI控件用于语义理解,必须添加以下参数设置,设置之后onResult回调返回将是语义理解
        //mDialog.setParameter("asr_sch", "1");
        //mDialog.setParameter("nlp_version", "2.0");
        //创建一个装每次解析数据的容器
        mStringBuilder = new StringBuilder();//3.设置回调接口
        mDialog.setListener(new RecognizerDialogListener() {@Override//识别成功执行,参数recognizerResult 识别的结果,Json格式的字符串
            //第二参数 b:等于true时会话结束.方法才不会继续回调
            //一般情况下通过onResult接口多次返回结果,完整识别内容是多次结果累加的
            public void onResult(RecognizerResult recognizerResult, boolean b) {//拿到讯飞识别的结果
                String resultString = recognizerResult.getResultString();
/*                System.out.println("讯飞识别的结果 " + resultString);
                System.out.println("b参数是什么 " + b);*/
                //自定义解析bean数据的方法,得到解析数据
                String content = parseData(resultString);
//                System.out.println("解析后的数据 "+ content);
                mStringBuilder.append(content);//对参数2b进行判断,如果为true,代表这个方法不会对调,那么我们容器的数据转为字符串,拿来使用即可
                if (b) {String result = mStringBuilder.toString();System.out.println(result);//回答对象,在没有匹配到用户说的话,默认输出语句
                    String anwser = "不好意思,年纪大了,耳朵不好,没有听清楚";if (result.contains("你好")) {anwser = "你好,我是你的智能语音助手,很高兴为你服务";} else if (result.contains("安卓学习哪家强")) {anwser = "快到北京,找至远教育";} else if (result.contains("美女")) {String[] anwserList = new String[]{"你是坏人不和你玩", "小助手很纯洁,不要说我听不懂的话", "小助手我就是美女,主人", "500元,小助手帮主人找美女一起打英雄联盟"};int random = (int) (Math.random() * anwserList.length);anwser = anwserList[random];}shuo(anwser);}}@Override//识别失败执行的方法,speechError错误码
            public void onError(SpeechError speechError) {System.out.println("错误码 " + speechError);}});//4.显示dialog,接收语音输入
        mDialog.show();}/**
     * 把文字转换为声音
     *
     * @param view
     */
    public void Talk(View view) {shuo("什么鬼什么鬼什么什么什么鬼");}public void shuo(String result) {//1.创建 SpeechSynthesizer 对象, 第二个参数:本地合成时传 InitListener
        SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(this, null);//2.合成参数设置,详见《MSC Reference Manual》SpeechSynthesizer 类
        // 设置发音人(更多在线发音人,用户可参见 附录13.2
        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 卡权限
        //仅支持保存为 pcm 和 wav 格式,如果不需要保存合成音频,注释该行代码
        // mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, "./sdcard/iflytek.pcm");
        // 3.开始合成,第一个参数就是转换成声音的文字,自定义,第二个参数就是合成监听器对象,我们不需要对声音有什么特殊处理,就传null
        mTts.startSpeaking(result, null);}private String parseData(String resultString) {//创建gson对象.记得要关联一下gson.jar包,方可以使用
        Gson gson = new Gson();//参数1 String类型的json数据   参数2.存放json数据对应的bean类
        XFBean xfBean = gson.fromJson(resultString, XFBean.class);//创建集合,用来存放bean类里的对象
        ArrayList<XFBean.WS> ws = xfBean.ws;//创建一个容器,用来存放从每个集合里拿到的数据,使用StringBUndle效率高
        StringBuilder stringBuilder = new StringBuilder();for (XFBean.WS w : ws) {String text = w.cw.get(0).w;stringBuilder.append(text);}//把容器内的数据转换为字符串返回出去
        return stringBuilder.toString();}}bean类
///用来存放讯飞语音的识别结果的JSON数据

public class XFBean {public ArrayList<WS> ws;public class WS{public ArrayList<CW> cw;}public class CW{public String w;}
///
创建
Application类
加入APPID

 ///特别注意

//在.gradle中//android下,,添加
sourceSets {main {jniLibs.srcDir 'libs'
    }
}

讯飞语音的 简单实现相关推荐

  1. 讯飞语音输入简单使用

    讯飞开放平台: http://www.xfyun.cn/mycloud/app/appManage 登录-----创建应用-----选择服务 下载SDK 查看开发集成: http://www.xfyu ...

  2. 讯飞语音——带你简单实现语音听写

    语音听写 de 简单实现 一.前言 如果你没有在讯飞语音平台上创建应用,请先参考讯飞语音的详细配置使用 二.功能描述 语音听写和语音合成都是较为基础也是最常使用的两个基本功能. 语音合成是将文本转化为 ...

  3. (原创)用讯飞语音实现人机交互的功能

    目前在做一款车载的项目,其中有一个需求是在开车的时候实现人与手机的对话,全过程不需要用手,只用语音操控. 这个就类似于人与机器人的对话,机器人在后台一直待命,用户说话 机器人做出对应的反映. 但由于用 ...

  4. Android——讯飞语音唤醒简介及实现

    前段时间写了一个关于百度语音唤醒文章,最近有做了一个讯飞语音的应用,在这里把学习的资料整理一下. 唤醒的整个过程如下: (图源自讯飞官网) 讯飞的语音唤醒功能实现起来挺方便的(相比百度,百度语音And ...

  5. 讯飞语音 使用步骤(针对androidStudio):语音转文字:

    前言:最近做项目用到了讯飞语音,遂搞了一个简单的教程,供大家使用. 讯飞语音  使用步骤:语音转文字:   1,首先去讯飞开放平台( http://www.xfyun.cn/)注册,账号:   2,注 ...

  6. Node + 讯飞语音 定时播放天气预报音频

    前言 最近看了几篇文章,总觉得自己没发挥树莓派的作用,于是就琢磨着,哎,灵光一闪,整一个早晨叫醒服务,于是便有了本篇水文. 功能 每天早上八点钟,定时播放音频(音频内容为当天天气预报和空气质量),播放 ...

  7. 如何通过讯飞语音将文本合成后的语音保存到本地

    如何通过讯飞语音将文本合成后的语音保存到本地 2014-2-21分类:Android, 解决方案, 随手实例 | 暂无评论 转自:http://www.krislq.com/2014/02/voice ...

  8. 关于讯飞语音SDK开发学习

    前奏,浑浑噩噩已经工作一年多,这一年多收获还是挺多的.逛园子应该有两年多了,工作后基本上是天天都会来园子逛逛,园子 里还是有很多牛人写了一些不错的博客,帮我解决很多问题.但是一直没写过博客,归根到底一 ...

  9. android 百度语音 对话框,Android 通过调用系统接口使用如 谷歌语音、百度语音、讯飞语音等语音识别对话框的方法...

    现在app的开发进程会集成一些语音识别功能,而一般开发者是不具备自己开发一套语音识别引擎的,因此大多数情况是选择一个已经成熟的语音识别引擎SDK集成到自己的app中. 通常情况下,这种集成分两种,一种 ...

最新文章

  1. R语言union函数计算数据对象(vector、list、dataframe)的并集:union函数计算两个vector向量、dataframe、列表list的并集
  2. python怎么用excel-python怎么连接excel
  3. 如何获取字符串中某个具体的数值--通过json.load转化成字典形式获取
  4. 贪心+构造 Codeforces Round #277 (Div. 2) C. Palindrome Transformation
  5. openmpi安装_Intel Parallel Studio XE 2019安装设置
  6. 华为取代苹果 手机销量再创新高
  7. sci期刊投稿指南 计算机科学 人工智能方向 145本sci期刊目录 从一区到四区(2022年 最新影响因子更新了)
  8. pygame使用多种方法让背景和人物运动起来
  9. 25条很棒的Python一行代码,建议收藏!
  10. Python UnboundLocalError: local variable ‘str‘ referenced before assignment
  11. hbase snappy 安装_Hadoop HBase 配置 安装 Snappy 终极教程
  12. Java_计算机基础知识
  13. Python||PyCharm||代码为什么是灰色的???(已解决)
  14. Python基础之线程(Thread)
  15. 笔记:C#_委托_delegate
  16. CopyTranslator——一个PDF文本翻译神器
  17. 计算机教案在幻灯片中插入影片,小学信息技术《在幻灯片中插入艺术字》说课稿...
  18. 我的世界服务器linux,如何在Linux上安装Minecraft服务器?
  19. 我爱开源,我爱php
  20. TN-S TN-C TN-C-S TT IT接地系统的接线图解

热门文章

  1. cdkjava | 分子sdf文件生成
  2. 基于PHP的校园二手交易系统(前后台)
  3. xinxin - 学习天气预报
  4. 【python】pyplot绘制横轴为时间的图
  5. 华为陈帮华:数字化转型的阿基米德技术支点
  6. 2023中国石油大学计算机考研信息汇总
  7. Python中判断字母数字的方法合集
  8. 【Linux】grub2基础教程
  9. Typora 免费版下载/主题下载
  10. 玩转Python中迭代器与迭代对象的使用与演示