Android基于讯飞语音SDK实现语音识别_Android

一、准备工作

1、你需要android手机应用开发基础

2、科大讯飞语音识别SDK android版

3、科大讯飞语音识别开发API文档

4、android手机

关于科大讯飞SDK及API文档,请到科大语音官网下载:http://www.xfyun.cn/

当然SDK和API有多个版本可选,按照你的需要下载,其次,下载需要填写资料申请注册,申请通过或可获得Appid

如下图,申请一个APPID,就可以了。

二、语音识别流程

1、创建识别控件

函数原型

Public RecognizerDialog(Context context,String params)

其中Context表示当前上下文环境,传this即可

Params有参数详见API文档

2、用Appid登录到科大讯飞服务器(自动连接,需要联网)

主要用到SpeechUser(com.iflytek.speech包下)类下的getUser().login()函数

其中getUser()表示获取用户对象,可以实现用户登录,注销等操作

Login函数原型

Public boolean login(Context context,String usr,String pwd,String

参数详见API文档

3、读取语言识别语法

详见API文档

4、设置识别参数及识别监听器

通过RecognizerDialog下的setEngine()方法设置参数

函数原型

public void setEngine(String engine,String params,String grammar)

详细的参数请参考API文档

5、识别结果回调

需要实现RecognizerDialogListener接口,其中有两个方法需要重写,分别是

1)public void onResults(ArrayList<RecognizerResult> results,boolean isLast)

其中result是RecognizerResult对象的集合,RecognizerResult的属性有

String text 识别文本

Int confidence 识别可信度

2)public void onEnd(SpeechError error)

6、识别结果处理(自行处理)

自己将文本进行处理。

三、详细开发过程

1、新建Android项目

和普通的android项目一样,只是需要加入科大讯飞语言SDK包,主要包括

Msc.jar及libmsc.so动态库文件,项目lib截图

2、布局

这里只进行简单的布局,只设置一个按钮作为语言识别按钮及一个文本组件用作显示识别结果,布局文件如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"
  tools:context="${relativePackage}.${activityClass}" >

  <EditText
    android:id="@+id/editText"
    android:layout_width="fill_parent"
    android:layout_height="300dp"
    android:gravity="top"
    android:inputType="textMultiLine" >

    <requestFocus />
   </EditText>
   <Button
     android:id="@+id/button_start"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="点击开始说话" />

</LinearLayout>

3、Main.java代码如下:

public class Main extends Activity {

  // 组件
  private Button button = null;
  private TextView result = null;
  private Toast mToast = null;

  // 语音识别
  private final String APP_ID = "这里改成自己的APP_ID";
  private RecognizerDialog recognizerDialog = null;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.setContentView(R.layout.main);

    button = (Button) super.findViewById(R.id.button_start);
    result = (TextView) super.findViewById(R.id.editText);

    // 初始化识别
    mToast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
    mToast.setMargin(0f, 0.2f);
    recognizerDialog = new RecognizerDialog(this, "appid=" + APP_ID);
    SpeechUser.getUser().login(this, null, null, "appid=" + APP_ID, loginListener);

    this.button.setOnClickListener(new Btn());

  }

  private class Btn implements OnClickListener {

    @Override
    public void onClick(View v) {

      //MainActivity.this.voice.setImageResource(R.drawable.voicelight);
      recognizerDialog.setListener(mRecoListener);
      recognizerDialog.setEngine(null, "grammar_type=abnf", grammarText);
      recognizerDialog.show();
    }
  }

  // 语音识别用户登录监听器
  private SpeechListener loginListener = new SpeechListener() {

    @Override
    public void onData(byte[] arg0) {
    }

    @Override
    public void onEvent(int arg0, Bundle arg1) {
    }

    @Override
    public void onEnd(SpeechError arg0) {
      // TODO Auto-generated method stub
      if (arg0 != null) {
        mToast.setText("登录失败");
        mToast.show();
      } else {
        mToast.setText("登录成功");
        mToast.show();
      }
    }
  };

  // 识别结果回调
  private RecognizerDialogListener mRecoListener = new RecognizerDialogListener() {

    @Override
    public void onEnd(SpeechError error) {
      //MainActivity.this.voice.setImageResource(R.drawable.voice);
    }

    @Override
    public void onResults(ArrayList<RecognizerResult> results, boolean isLast) {
      // TODO Auto-generated method stub
      String text = "";
      text = results.get(0).text;
      mToast.setText("识别结果为:" + text);
      mToast.show();
      result.setText("识别结果为:" + text);
    }

  };

}

4、需要的权限:

  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

5、结果截图:

 

以上就是本文的全部内容了,希望小伙伴们能够喜欢。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java实现语音识别
科大讯飞语音识别sdk、讯飞语音识别sdk、讯飞语音识别sdk破解、讯飞语音sdk、讯飞人脸识别sdk 离线,以便于您获取更多的相关知识。

时间: 2024-10-26 21:07:21

Android基于讯飞语音SDK实现语音识别_Android的相关文章

Android基于讯飞语音SDK实现语音识别

一.准备工作 1.你需要android手机应用开发基础 2.科大讯飞语音识别SDK android版 3.科大讯飞语音识别开发API文档 4.android手机 关于科大讯飞SDK及API文档,请到科大语音官网下载:http://www.xfyun.cn/ 当然SDK和API有多个版本可选,按照你的需要下载,其次,下载需要填写资料申请注册,申请通过或可获得Appid 如下图,申请一个APPID,就可以了. 二.语音识别流程 1.创建识别控件 函数原型 Public RecognizerDialo

老罗推荐的讯飞语音,有这些 know-how | 硬创公开课

据说,看了锤子手机发布会的人,印象最深的就是老罗演示讯飞语音输入那一段(从视频的第100分钟开始).很多人表示自己受到了深深的震撼.但"震撼"之余,我们也应该冷静下来,清醒地认识到语音输入的春天,在科技史上已经来过 N 次了.究竟是什么,让2016年的语音输入变得不一样,让讯飞的语音输入变得不一样? 为了解答这个问题,雷锋网请来了讯飞输入法产品总监,或者用时髦的说法"讯飞输入法之父",为大家解解馋. 雷锋网雷锋网雷锋网 嘉宾简介 翟吉博,讯飞输入法产品总监.2009

讯飞“语音云”

每一部手机都将具备能听会说的功能: 每一台家电都将具备能听会说的功能: 每一台轿车都将具备能听会说的功能: 每一个玩具都将具备能听会说的功能: -- 这是安徽科大讯飞信息科技股份有限公司高级副总裁吴晓如先生在接受CTI论坛记者专访时,为我描绘出的语音远景,而在此之前的若干年,语音应用虽然已得到行业人士足够的重视,但真正落地无疑与移动互联网的飞速发展有着密不可分的关系. 图:安徽科大讯飞信息科技股份有限公司高级副总裁吴晓如先生 讯飞"语音云" 正如创新工场CEO 李开复在科大讯飞&quo

研究讯飞语音 demo,下载跑跑

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/53401000 未经博主允许不得转载. 博主地址是:http://blog.csdn.net/freewebsys 1,讯飞语音 老罗的发布会使劲的夸了下讯飞. 最近讯飞也开了个发布会,吹了吹牛.还是有很多的技术亮点的. 最近百度开始推广他的语音了. 讯飞语音地址: http://www.xfyun.cn/ 百度语音地址: http://yuyin.baidu.com/ 当然,无

Android 基于Socket的聊天应用实例(二)_Android

前言 很久没写BLOG了,之前在写Android聊天室的时候答应过要写一个客户(好友)之间的聊天demo,Android 基于Socket的聊天室已经实现了通过Socket广播形式的通信功能. 以下是我写的一个类似现在多数聊天软件的冒泡聊天APP.全部功能都是自己的想法,对于现在市面上成功的例子是怎么实现的,我还不了解.所以读者可只做参考学习,也可以分享您的案例给我. 功能 一对一聊天,非聊天室 好友列表 好友在线,离线状态(实时更新) 冒泡实时聊天窗口 发送离线信息 基本原理 之前的聊天室原理

讯飞语音

.你需要android手机应用开发基础 2.科大讯飞语音识别SDK android版 3.科大讯飞语音识别开发API文档 4.android手机 关于科大讯飞SDK及API文档,请到科大语音官网下载:http://open.voicecloud.cn/ 当然SDK和API有多个版本可选,按照你的需要下载,其次,下载需要填写资料申请注册,申请通过或可获得Appid 二.语音识别流程 1.创建识别控件 函数原型 Public RecognizerDialog(Context context,Stri

新版讯飞输入法支持东北话语音识别

  据悉,讯飞输入法的东北话识别技术基于科大讯飞自主研发的方言识别引擎,具有自动纠错.智能联想及同步转写文字的能力. 识别语音 讯飞输入法东北话语音识别技术突破了方言识别难题,具有极高的准确率达到实用水平;使用东北话语音输入的用户无需花费时间学习和训练,在室内室外均可"即开即用";此外,东北话识别还能同步转文字,方便用户使用东北话聊微信.发微博.发短信等应用. 截至目前,讯飞输入法已率先支持四川话.河南话以及东北话,是国内首个支持多方言语种的手机输入法.科大讯飞研发的方言语音技术不仅能

讯飞语音输入法如何进行语音修改

  在选择语音输入时,周边环境.口音.语速都有可能给语音识别的准确率造成影响,一旦识别错误可能会改变整句话的含义,想修改可以,但还是需要双手进行配合,在开车时或其它特殊场景下实现起来就没那么容易了,本应是一项智能服务,用户体验却似乎并没有太大的提升. 为了解决这一痛点,讯飞语音推出了独家的语音修改功能,用户可以使用纯粹的自然语言进行改错,你只需要打开讯飞输入法,点击"语音修改"功能,你就可以一边说话,一遍修改已经录入的文字. 例如,在"一起去吃饭"前面加上"

科大讯飞年度发布会:讯飞超脑摘取认知智能桂冠,输入法领衔AI+ (刘庆峰、胡郁演讲实录)

纵观整场发布会,可以看到,讯飞以语音为切入口的.从感知智能到认知智能的人工智能革命正在稳步推进:战略上,讯飞专注人工智能的决心非常坚定,认为本次人工智能的爆发是真正的行业浪潮,其中蕴含巨大的机会:技术研发上,讯飞利用多年在人工智能上积累,拿下多项国际比赛的冠军,不仅语音,还有知识图谱.自然语言理解等:产品应用上,科大讯飞在车载和家居上扩展布局,推出相关产品.行业竞争上,讯飞人工智能生态建设取得初步进展,多个领域的市场与技术上都有布局,与3000多家机器人公司达成合作,拥有20万开发者.市场上,在