1 登录讯飞平台,申请账号,创建一个应用
具体步骤可以百度查找

2 进入“我的应用”,下载相应的SDK文件
选择语音听写(流式版)-> Android MSC在这里插入图片描述

3 打开安卓,新建项目
创建一个EditText和一个Button

<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
tools:context=".MainActivity">

<EditTextandroid:id="@+id/textShow1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:hint="what heard will be shown here"android:text=""app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.344" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="SPEAK"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/textShow1"app:layout_constraintVertical_bias="0.284" />

</androidx.constraintlayout.widget.ConstraintLayout>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
4 将在官网下载的Android SDK 压缩包中libs目录下所有子文件拷贝至Android工程的libs目录下
5 在安卓项目文件中添加.so文件
在build.gradle(Module:XXX)文件中,在android节点下加入下面的内容(代码的作用是使得项目找到libs下的libmsc.so文件)

sourceSets {
main {
jniLibs.srcDirs = [‘libs’]
}
}
1
2
3
4
5
在这里插入图片描述
比较新的Gradle版本,已经自动实现打包.so文件的功能(在拷贝libs目录下文件后,配置上面的代码,即可完成在项目中添加.so文件)

6 右击libs目录下的msc.jar文件,选择Add As Library
7 sdk下文件夹main/assets/,自带UI页面(iflytek文件夹)和相关其他服务资源文件(语法文件、音频示例、词表),将该文件夹拷贝到项目main目录下
8 在工程 AndroidManifest.xml 文件中添加如下用户权限

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 9 编写java代码,实现语音听写功能 包名这里就不显示了

APPID
需要在讯飞平台“我的应用”界面中寻找
在这里插入图片描述

package XXXXXXXX;

import androidx.appcompat.app.AppCompatActivity;

import android.nfc.Tag;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.iflytek.cloud.ErrorCode;
import com.iflytek.cloud.InitListener;
import com.iflytek.cloud.RecognizerResult;
import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechError;
import com.iflytek.cloud.SpeechRecognizer;
import com.iflytek.cloud.SpeechUtility;
import com.iflytek.cloud.ui.RecognizerDialog;
import com.iflytek.cloud.ui.RecognizerDialogListener;

public class MainActivity extends AppCompatActivity {
private EditText mResultText;
private Button button;

private static String TAG = "speech"; // 输出log信息
private String engineType = "cloud"; // 语音识别引擎类型
private String resultType = "plain"; // 语音识别结果类型,plain或jsonprivate StringBuffer buffer = new StringBuffer(); // 用于存储结果
private Toast mToast; // 用于输出提示
int ret = 0; // 函数调用返回值
SpeechRecognizer mIat; // 语音识别模型
private RecognizerDialog mIatDialog; // 语音识别对话框@Override
protected void onCreate(Bundle savedInstanceState) {SpeechUtility.createUtility(this, SpeechConstant.APPID +"=XXX"); // 在讯飞平台查找super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mResultText = findViewById(R.id.textShow1);button = findViewById(R.id.button1);mToast = Toast.makeText(this, "",Toast.LENGTH_SHORT);// 初始化识别无UI识别对象// 使用 SpeechRecognizer 对象,即语音识别对话框mIat = SpeechRecognizer.createRecognizer(this, mInitListener);// 初始化识别有UI识别对象,即语音识别对话框mIatDialog = new RecognizerDialog(this, mInitListener);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {buffer.setLength(0);mResultText.setText(null);setParam();mIatDialog.setListener(mRecognizerDialogListener);mIatDialog.show();showTip("请开始说话");}});
}
/*** 初始化监听器。*/
private InitListener mInitListener = new InitListener() {@Overridepublic void onInit(int code) {Log.d(TAG, "SpeechRecognizer init() code = " + code);if (code != ErrorCode.SUCCESS) {showTip("初始化失败,错误码:" + code+",请点击网址https://www.xfyun.cn/document/error-code查询解决方案");}}
};
// 语音识别对话框监听器
private RecognizerDialogListener mRecognizerDialogListener = new RecognizerDialogListener() {@Overridepublic void onResult(RecognizerResult recognizerResult, boolean b) {//得到识别结果 results, 显示到界面EditText中if(resultType.equals("plain")) {buffer.append(recognizerResult.getResultString());mResultText.setText(buffer.toString());mResultText.setSelection(mResultText.length());}}@Override/*** 识别回调错误.*/public void onError(SpeechError error) {showTip(error.getPlainDescription(true));}
};public void setParam() {mIat.setParameter( SpeechConstant.CLOUD_GRAMMAR, null );mIat.setParameter( SpeechConstant.SUBJECT, null );mIat.setParameter(SpeechConstant.RESULT_TYPE, resultType);mIat.setParameter( SpeechConstant.ENGINE_TYPE, engineType );mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");mIat.setParameter(SpeechConstant.ACCENT, "mandarin");mIat.setParameter(SpeechConstant.VAD_BOS, "4000");mIat.setParameter(SpeechConstant.VAD_EOS, "1000");mIat.setParameter(SpeechConstant.ASR_PTT,"0");
}@Override
protected void onDestroy() {super.onDestroy();if( null != mIat ){// 退出时释放连接mIat.cancel();mIat.destroy();}
}
private void showTip(final String str) {mToast.setText(str);mToast.show();
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
10 拓展-添加语音识别的方言/语种
在这里插入图片描述

11 拓展-开通高级功能
在这里插入图片描述

12 拓展-添加个性化热词
在这里插入图片描述

移动开发-语音识别-调用讯飞平台提供的API相关推荐

  1. 微信小程序前台调用讯飞语音识别接口

    开整 之前我这边微信小程序调用讯飞的接口还是发一段音频到后台 再去连接讯飞的websocket 真的 贼慢 要是两三秒的还好 稍微长一点就GG 最近突然发现微信小程序有PCM格式了 所以就直接用小程序 ...

  2. uniapp语音识别(讯飞语音)转文字

    ☞ 常见应用: 游戏界面 文字语音.商城导航栏的语音输入搜索框.聊天界面的语音文字输入等. 引自官方 unicloud官方语音: 语音输入接口可使得网页开发人员能快速调用设备的麦克风进行语音输入,而不 ...

  3. uni-app 调用讯飞语音。

    uni-app 调用讯飞语音. // //讯飞语音输入接口voice() {var me = this;var options = {};options.engine = 'iFly';options ...

  4. IOS开发--语音合成(讯飞接口)

    IOS开发–语音播报 想要实现iOS语音播报,要使用讯飞/百度语音播报的第三方接口.我使用的是讯飞的语音合成接口. 登录注册讯飞平台,申请语音合成接口! 下载iOS开发所需sdk,sdk中包含语音开发 ...

  5. tts java web_SpringMVC调用讯飞语音合成WebApi示例

    最近讯飞开放了语音合成的WebAPI,相对于之前SDK的方式方便了很多,下面使用SpringMVC写了一个示例,调用讯飞的合成API. XFHelper.java 负责调用讯飞WebAPI接口,处理H ...

  6. android 语音识别 之 讯飞话音移植

    http://www.myexception.cn/android/1166876.html android 语音识别 之 讯飞语音移植 一.简介 语音识别现在应用越来越广泛了 比如语音写短信.语音搜 ...

  7. 【Qbot】6.讯飞文字转语音Api使用/VITS派蒙复读机实现

    该项目计划长期进行维护更新,欢迎star:https://github.com/zstar1003/Qbot 前言 看完流浪地球2之后,萌生了一个想法:我想给机器人完整的一生.作为一个完整的机器人,声 ...

  8. Unity XCode交互(unity调用讯飞的AIUI技能ios的sdk)

    最近要做ios的讯飞语音(aiui技能) 文章目录 前言 一.讯飞项目 二.XCode 1. 2.设置AIUI 2.创建AIUI 3.唤醒,录音,停止录音AIUI,文本写入 4.AIUI数据监听 5. ...

  9. android 语音识别 之 讯飞语音移植

    转载自:http://blog.csdn.net/chenshufei2/article/details/8496905 一.简介 语音识别现在应用越来越广泛了 比如语音写短信.语音搜索商品.语音搜索 ...

最新文章

  1. IT项目管理总结:第十二章 项目采购管理
  2. java .net 互通redis_C# servicestack.redis 互通 java jedis
  3. 外接显示器设置_如何为一台电脑设置两个显示器
  4. html5仿qq空间,JS实现的仿QQ空间图片弹出效果代码
  5. C++11 新特性整理 (1)
  6. C# 异常类型及对应异常类
  7. 华为NP课程笔记3-OSPF3
  8. 运维工具之科来网络分析系统安装和使用
  9. canvas设置lineWidth属性,出现线条被fill覆盖问题。
  10. 电脑从硬盘启动计算机,BIOS怎么设置成从硬盘启动?开启计算机或重新启动
  11. 解决no-console异常
  12. 2021-06-18App Tamer for Mac(CPU优化电池管理工具)
  13. 论文分享(一) CVPR 2018 Defense against Universal Adversarial Perturbations
  14. 不知不觉,二哥 CSDN 博客访问量破 1000 万了,这个成绩,全网也没几个吧?
  15. yyds,Win10真香!!!
  16. MYSQL中,CAST函数的使用规则
  17. JAVA_WEB Oracle 10g学习: PL/SQL与Oracle间交互
  18. 华硕FN键补充应用下载-可以在windows的应用商店寻找进行下载,安装。-asus-keyboard Hotkeys
  19. [BMIm]BF4离子液体修饰的铜纳米粒子直径小于10nm
  20. 计算机网络实验二cdma编码,CDMA编码实验_长春理工大学

热门文章

  1. 捋一捋20201217
  2. note_maven的pom.xml部分配置说明
  3. php自学建议_如何高效自学PHP?
  4. it just sudo_just do it是什么梗
  5. 怎么编写java_程序员学编程第一步:手把手教你开发第一个Java程序
  6. python 取值范围的命令_python获取命令行参数的方法
  7. vue实现留言板的功能_基于vue和bootstrap实现简单留言板功能
  8. 修改oracle 安裝參數,oracle 安裝相關參數設定
  9. mysql的安装用于连接jsp_怎么用JSP连接安装在Linux上的MySQL
  10. vue单表table