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

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>

4 将在官网下载的Android SDK 压缩包中libs目录下所有子文件拷贝至Android工程的libs目录下

5 在安卓项目文件中添加.so文件

在build.gradle(Module:XXX)文件中,在android节点下加入下面的内容(代码的作用是使得项目找到libs下的libmsc.so文件)

sourceSets {main {jniLibs.srcDirs = ['libs']}
}

在这里插入图片描述
比较新的Gradle版本,已经自动实现打包.so文件的功能(在拷贝libs目录下文件后,配置上面的代码,即可完成在项目中添加.so文件)

6 右击libs目录下的msc.jar文件,选择Add As Library

7 sdk下文件夹main/assets/,自带UI页面(iflytek文件夹)和相关其他服务资源文件(语法文件、音频示例、词表),将该文件夹拷贝到项目main目录下

8 在工程 AndroidManifest.xml 文件中添加如下用户权限

<!--连接网络权限,用于执行云端语音能力 -->
<uses-permission android:name="android.permission.INTERNET"/>
<!--获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<!--读取网络信息状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--获取当前wifi状态 -->
<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"/>
<!--读取联系人权限,上传联系人需要用到此权限 -->
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<!--外存储写权限,构建语法需要用到此权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--外存储读权限,构建语法需要用到此权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!--配置权限,用来记录应用配置信息 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<!--手机定位信息,用来为语义等功能提供定位,提供更精准的服务-->
<!--定位信息是敏感信息,可通过Setting.setLocationEnable(false)关闭定位请求 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--如需使用人脸识别,还要添加:摄像头权限,拍照需要用到 -->
<uses-permission android:name="android.permission.CAMERA" />
<!--  申请录音权限,记得在手机设置中的权限管理部分,给app分配录音权限  -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />

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; // 语音识别对话框@Overrideprotected 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");}@Overrideprotected void onDestroy() {super.onDestroy();if( null != mIat ){// 退出时释放连接mIat.cancel();mIat.destroy();}}private void showTip(final String str) {mToast.setText(str);mToast.show();}
}

10 拓展-添加语音识别的方言/语种

在这里插入图片描述

11 拓展-开通高级功能

在这里插入图片描述

12 拓展-添加个性化热词

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/41823.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UNIAPP调用讯飞语音评测API

1、历经千辛万苦&#xff0c;UNIAPP调用评测API终于完成&#xff0c;在此做下总结下&#xff1a;首先看效果&#xff01; 2、实现第1步&#xff0c;首先是鉴权&#xff0c;用到的CryptoJS等工具都可以从讯飞和uniapp官方获取 import * as base64 from "base-64" impo…

Android科大讯飞语音集成,非常详细的使用讲解

讯飞语音开发集成地址http://www.xfyun.cn/ 解压后的doc文件夹下的msc develop 文件中有详细集成步骤 AppId: 1.先要注册开发者账户, 添加我的应用 , 下载sdk 2.下载后将sdk解压, 把案例导入工程中运行看看效果 3.将libs下的两个jar包添加到libs目录下, 将同路径下的其它 …

Android 讯飞语音识别功能开发

以下代码主要参考博客&#xff1a; Android 科大讯飞语音识别 Android蓝牙串口开发部分请参照博客&#xff1a; Android蓝牙串口开发 讯飞语音官方开发文档&#xff1a; 语音听写 Android SDK 文档 文章目录 前言一、SDK的下载和导入1.SDK的下载2.新建工程3.配置项目a.导包b.权…

uniapp - 接入科大讯飞语音评测

欢迎关注微信公众号&#xff1a;FSA全栈行动 &#x1f44b; 一、简介 科大讯飞语音评测可以对字、词、句、篇章等题型进行多维度评分&#xff08;准确度、流畅度、完整度、声韵调型等&#xff09;&#xff0c;支持中文和英文。最新的流式版使用 webSocket 调用接口&#xff0c…

目标检测算法——YOLOv5/YOLOv7改进之结合​PP-LCNet(轻量级CPU网络)

>>>深度学习Tricks&#xff0c;第一时间送达<<< 目录 ​PP-LCNet——轻量级且超强悍的CPU级骨干网络&#xff01;&#xff01; &#xff08;一&#xff09;前沿介绍 1.PP-LCNet主要模块 2.相关实验结果 &#xff08;二&#xff09;YOLOv5/YOLOv7改进之结…

从Blip2到Segment Anything视觉语义金字塔+ChatGPT= 把图片变文本段落, 8G显存即可Run...

关注公众号&#xff0c;发现CV技术之美 8G GPU显存即可以运行 Twitter链接&#xff1a;https://twitter.com/awinyimgprocess/status/1646225454599372800?s46&tHvOe9T2n35iFuCHP5aIHpQ 代码链接&#xff1a;https://github.com/showlab/Image2Paragraph https:// 01 …

目标检测算法——YOLOv5/YOLOv7改进之结合​ASPP(空洞空间卷积池化金字塔)

&#x1f496;&#x1f496;>>>加勒比海带&#xff0c;QQ2479200884<<<&#x1f496;&#x1f496; &#x1f340;&#x1f340;>>>【YOLO魔法搭配&论文投稿咨询】<<<&#x1f340;&#x1f340; ✨✨>>>学习交流 | 温澜潮…

从BLIP-2到SAM视觉语义金字塔+ChatGPT= 把图片变文本段落, 8G显存即可Run

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【图像分割】微信技术交流群 作者&#xff1a;老大 |&#xff08;已授权转载&#xff09;编辑&#xff1a;CVer https://zhuanlan.zhihu.com/p/621503837 8G GPU显存即可以运…

问一下ChatGPT:DIKW金字塔模型

经常看到这张DIKW金字塔模型图&#xff0c;还看到感觉有点过份解读的图&#xff0c;后面又加上了insight&#xff0c;impact等内容。 Data&#xff1a;是数据&#xff0c;零散的、无规则的呈现到人们眼前&#xff0c;如果你只看到这些数字&#xff0c;如果没有强大的知识背景&a…

QCon: 工程师成长的金字塔思维

QCon 线下会议终于来了&#xff0c;但这次的分享有一些意外&#xff0c;不是性能、架构、内核、缓存&#xff0c;而不是AI实践相关的内容&#xff0c;论坛的主题是“工程师成长实践”&#xff0c;而我的topic 是“工程师成长的金字塔思维”。本以为这是一个非热门话题&#xff…

拉普拉斯金字塔

原文 高斯金字塔G0层下采样后为G1&#xff0c;用G0减去G1的上采样&#xff0c;就得到了拉普拉斯层L0. 高斯金字塔G1层上采样后与拉普拉斯金字塔L0层相加后就得到了G0层。 import numpy as np import cv2 as cv from matplotlib import pyplot as pltimg cv.imread(left_01.png…

微信称不会推出「已读」功能;马斯克宣布成立 AI 公司 xAI;GPT-4 架构曝光,有 1.8 万亿参数|极客头条

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&…

百度版本gactgpt即将来临,gpt人工智能机器横空出世

百度版本gactgpt即将来临&#xff0c;gpt人工智能机器横空出世&#xff0c;“一言”为定&#xff01;百度版ChatGPT确认&#xff01;李彦宏OKR曝光&#xff0c;率先应用于收索业务 gactCBT 大获&#xff0c;当下极有可能成为人工智能的 iPhone 时刻。为了在这场人工智能竞赛中…

解锁实盘交易,打通量化系统交易环节!股票量化分析工具QTYX-V2.3.9

前言 本期我们把股票量化分析工具QTYX的“交易”子页面给解锁了&#xff0c;这样一来&#xff0c;就打通了量化交易系统从分析到交易的完整过程&#xff0c;注意当前的QTYX版本升级到了2.3.9。 QTYX完整架构如下所示&#xff0c;其中包括了QTYX股票量化分析系统和实盘机器人两部…

自己做量化交易软件(43)小白量化实战16--利用小白量化金融模块在恒生PTrade交易系统(交易端)上仿大智慧指标回测及实战交易设计

自己做量化交易软件(43)小白量化实战16–利用小白量化金融模块在恒生PTrade交易系统(交易端)上仿大智慧指标回测及实战交易设计 量化产品PTrade(Personalise Trade)交易系统采用事件驱动式回测平台&#xff0c;与聚宽量化平台类似的量化框架&#xff0c;内置Ta-lib金融模块&am…

量化投资 | 量化交易平台工具汇总

量化投资必备手册&#xff0c;分享30个量化交易平台给你们&#xff0c;转需&#xff0c;不用谢&#xff01; 1. 掘金量化 量化交易系统官方网址&#xff1a;https://www.myquant.cn/ 2、国泰君安量化交易系统 量化交易系统网址&#xff1a;https://quant.gtja.com/ 3. 量化云…

初学Linux—解决开机卡在用户登录界面的问题

1.Linux关机之后开机界面卡在登录界面没有反应&#xff1b; 可能是我删除了某个文件… 2.解决办法&#xff1a; ctrlaltF2 ;切换终端 su root ;切换到超级用户 然后会弹出输入密码提示&#xff0c;直接输入超级用户的密码&#xff08;注意&#xff1a;linux中密码不会回显&am…

centos6.8开机一直卡在登录界面,无法登录

** **后面发现&#xff0c;问题出在&#xff0c;前几天配置的 java的jdk&#xff0c;还有mysql的环境变量上。 ** 解决问题的方法 使用CtrlAIt F3&#xff0c;竟然命令控制面板&#xff08;但是&#xff0c;进去后&#xff0c;你使用指令&#xff0c;比如&#xff0c;vi,ls -…

Ubuntu开机后卡在登陆界面进去不

系统&#xff1a;Ubuntu18.03 系统跑代码卡死了&#xff0c;导致鼠标键盘都用不了&#xff0c;直接强制关机后&#xff0c;卡在登陆界面进不去 步骤&#xff1a; 1. 系统启动后&#xff0c;在BIOS引导界面按"ESC"键进入选择菜单&#xff0c;选择第一个"*Ubun…