您当前的位置:中国IT科技网资讯正文

教你用Android做二次开发识别率到达科大讯飞语音输入水平

放大字体  缩小字体 2020-03-20 20:18:07  阅读:2475+ 作者:责任编辑NO。许安怡0216

作者 | Pek_KuaiJia

责编 | 夕颜

头图 | CSDN 下载自视觉我国

出品 | CSDN(ID:CSDNnews)

跟着现在客户的实在需求的精细化和智能化,许多时分咱们应该在App内集成语音输入模块,为用户更好的供给语音输入的功用。而科大讯飞语音作为行业界俊彦,辨认成果相对精确,且讯飞自带一套辨认动画,合适快速建立模块,废话不多说,先看下效果图。

下面开端详细步骤

请求key

百度查找讯飞敞开渠道,注册账号并实名认证,然后在产品中找到语音听写,可以收取90天试用包,商用需付费。接着翻开控制台,增加你需求用讯飞SDK的运用,留意保存这儿的APPID,这个便是之后需求装备到APP中。

下载SDK

在官网中找到资料库,挑选你方才增加的运用,下载在线语音辨认SDK

将加压所得文件夹中libs下的Msc.jar文件仿制到项目中的libs下

假设没有就新建一个,仿制完结后,右击Msc.jar文件,挑选add as library,这儿后边获取语音辨认成果需求解析json,因为我运用的是gson,所以同时导入了;接着将下载下来的文件夹libs下两个文件夹仿制到你项目目录的src/main/jniLibs,假设没有该文件夹就新建一个;终究在你项目app目录下新建assets文件夹,将下载下来的文件夹中assets中文件夹仿制进去,至此,文件悉数导入完结,放个全体项目文件结构图。

为语音听写增加权限

在mainfest.xml增加即可,留意Android6.0以上,读取麦克风和获取手机辨认码权限需求动态请求。

1

2

3

4

5

6

7

8

9

10

11

装备APPID

在APP的Application的onCreate()装备如下代码,假如没有application,也可以在需求用到这个功用的Activity的onCreate()增加,留意“=”不能少

1public class MyApplication extends Application{

2

3 @Override

4 public void onCreate() {

5 super.onCreate();

6 //留意这儿的“=”不能少

7 SpeechUtility.createUtility(getApplicationContext();, SpeechConstant.APPID + "=你的APPID");

8

9 }

10

11}

在发动语音辨认模块增加代码

这儿的result便是语音转化的成果字符串,可以终究靠iatDialog.setParameter()装备言语,间隔时间(即多长时间不说话时视为完毕)等,详细可参考官网文档。

1private void changeIntoText() {

2

3 // 初始化有交互动画的语音辨认器

4 iatDialog = new RecognizerDialog(SearchMusicActivity.this, mInitListener);

5 //设置监听,完成听写成果的回调

6 int a = 1+2;

7

8 iatDialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");

9 iatDialog.setParameter(SpeechConstant.ACCENT, "mandarin");

10

11 iatDialog.setListener(new RecognizerDialogListener() {

12 String resultJson = "[";//放置在外边做类的变量则报错,会形成json格局不对(?)

13

14 @Override

15 public void onResult(RecognizerResult recognizerResult, boolean isLast) {

16 System.out.println("----------------- onResult -----------------");

17 if (!isLast) {

18 resultJson += recognizerResult.getResultString() + ",";

19 } else {

20 resultJson += recognizerResult.getResultString() + "]";

21 }

22

23 if (isLast) {

24 //解析语音辨认后回来的json格局的成果

25 Gson gson = new Gson();

26 List resultList = gson.fromJson(resultJson,

27 new TypeToken() {

28 }.getType());

29 String result = "";

30 for (int i = 0; i

31 result += resultList.get(i).toString();

32 }

33

34 et_content.setText(result);

35 //获取焦点

36 et_content.requestFocus();

37 //将光标定位到文字终究,以便修正

38 et_content.setSelection(result.length());

39 }

40 }

41

42 @Override

43 public void onError(SpeechError speechError) {

44 //主动生成的办法存根

45 speechError.getPlainDescription(true);

46 }

47 });

48 //开端听写,需将sdk中的assets文件下的文件夹拷入项目的assets文件夹下(没有的话自己新建)

49 iatDialog.show();

50 }

51

52 private InitListener mInitListener = new InitListener() {

53 @Override

54 public void onInit(int code) {

55 Log.d(TAG, "SpeechRecognizer init() code = " + code);

56 if (code != ErrorCode.SUCCESS) {

57 Toast.makeText(SearchMusicActivity.this, "初始化失利,错误码:" + code, Toast.LENGTH_SHORT).show();

58 }

59 }

60 };

【End】

引荐阅览

罗永浩宣告进军电商直播;微博回运用户数据走漏;Android 11 开发者预览版 2 发布 | 极客头条

苹果阻挠上架的这款软件,到底有多憎恶?

了解这4个要点,带你探究未来将怎么规划智能体系和机器人!

超 6 成程序员月薪 8000 以上,后端开发最吃香!| 我国开发者现状陈述

Docker 开发环境的滑坡

比特币Logo背面有哪些前史及象征意义?Logo 上的“B”为何会向右歪斜?

你点的每一个在看,我仔细当成了喜爱

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!