Android开发基于科大讯飞实现语音识别

简介

通过使用科大讯飞的API开发Android APP实现语音识别

下载相应SDK

访问https://www.xfyun.cn/?jump=login进行注册,然后创建一个应用并进行相应SDK下载
在这里插入图片描述

添加相应的包

打开刚刚下载的SDK,找到libs,将两个jar包复制到Android工程里
在这里插入图片描述
在这里插入图片描述
右键libs进行添加
在这里插入图片描述
在main下创建jinLibs
在这里插入图片描述在这里插入图片描述

将刚刚下载的SDK包libs里剩下的复制进去
在这里插入图片描述在这里插入图片描述
OK,环境配置完成,现在就可以开始写代码了

参考代码

实现通过按下一个按钮,进行语音输入,然后将语音转换成文本显示在TextView里

在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" /> 

初始化

初始化即创建语音配置对象,只有初始化后才可以使用MSC的各项服务。建议将初始化放在程序入口处(如Application、Activity的onCreate方法),初始化代码如下:

// 将“12345678”替换成您申请的APPID,申请地址:http://www.xfyun.cn
// 请勿在“=”与appid之间添加任何空字符或者转义符
SpeechUtility.createUtility(context, SpeechConstant.APPID +"=12345678");

在这里插入图片描述将代码放在主Activity的 protected void onCreate(Bundle savedInstanceState)

主Activity代码

public class MainActivity extends AppCompatActivity {private TextView tv_content;// 用HashMap存储听写结果private HashMap<String, String> mIatResults = new LinkedHashMap<String, String>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv_content = (TextView) findViewById(R.id.textView_content);SpeechUtility.createUtility(this, SpeechConstant.APPID +"=111111");}public void startSpeechClick(View view) {//初始化识别无UI识别对象//使用SpeechRecognizer对象,可根据回调消息自定义界面;SpeechRecognizer mIat = SpeechRecognizer.createRecognizer(this, null);//设置参数mIat.setParameter(SpeechConstant.PARAMS, "iat");      //应用领域mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn"); //语音mIat.setParameter(SpeechConstant.ACCENT, "mandarin"); //普通话mIat.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);//引擎mIat.setParameter(SpeechConstant.RESULT_TYPE, "json");//返回结果格式// 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理mIat.setParameter(SpeechConstant.VAD_BOS, "4000");// 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音mIat.setParameter(SpeechConstant.VAD_EOS,"1000");// 设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点mIat.setParameter(SpeechConstant.ASR_PTT, "0");// 设置音频保存路径,保存音频格式支持pcm、wav,设置路径为sd卡请注意WRITE_EXTERNAL_STORAGE权限// mIat.setParameter(SpeechConstant.AUDIO_FORMAT,"wav");//mIat.setParameter(SpeechConstant.ASR_AUDIO_PATH, Environment.getExternalStorageDirectory()+"/msc/iat.wav");//开始听写mIat.startListening(mRecoListener);}private RecognizerListener mRecoListener= new RecognizerListener() {//音量0-30@Overridepublic void onVolumeChanged(int i, byte[] bytes) {}//开始录音@Overridepublic void onBeginOfSpeech() {}//结束录音@Overridepublic void onEndOfSpeech() {}//返回结果@Overridepublic void onResult(RecognizerResult recognizerResult, boolean b) {System.out.println(recognizerResult.getResultString());printResult(recognizerResult);}@Overridepublic void onError(SpeechError speechError) {}@Overridepublic void onEvent(int i, int i1, int i2, Bundle bundle) {}};//输出结果private void printResult(RecognizerResult results) {String text = JsonParser.parseIatResult(results.getResultString());String sn = null;// 读取json结果中的sn字段try {JSONObject resultJson = new JSONObject(results.getResultString());sn = resultJson.optString("sn");} catch (JSONException e) {e.printStackTrace();}mIatResults.put(sn, text);StringBuffer resultBuffer = new StringBuffer();for (String key : mIatResults.keySet()) {resultBuffer.append(mIatResults.get(key));}tv_content.setText(resultBuffer.toString());}
}

添加json进行解析

将刚刚下载的SDK里的JsonParser.java添加到java里
在这里插入图片描述
在这里插入图片描述

activity_main.xml参考代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><Buttonandroid:id="@+id/button_input"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="startSpeechClick"android:text="@string/button_input"android:layout_centerHorizontal="true"/><TextViewandroid:id="@+id/textView_content"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="New Text"android:layout_below="@id/button_input"android:layout_centerHorizontal="true"/>
</RelativeLayout>

现在可以将代码下载到手机里进行测试了
注: 1.需要用真机 2.需要联网

源码下载

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

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

相关文章

手语翻译系统系列之使用旭日X3派实时识别播报手语

一、准备工作 硬件部分&#xff1a;旭日X3派&#xff0c;USB免驱摄像头&#xff0c;电源适配器&#xff0c;烧录Ubuntu系统的SD卡&#xff0c;USB扬声器&#xff0c;显示屏&#xff08;或者VNC/SSH远程连接&#xff09; 软件部分&#xff1a;Thonny IDE集成开发环境 首先&…

android 打字 语音,手机聊天神器不用手写打字 说话秒变文字 允许一点家乡口音 老年人爸妈必备语音输入法...

时代在进步&#xff0c;如今智能手机已风靡街头巷尾。不过老年人对于新生事物的接受能力较差&#xff0c;手机上网沟通交流成为他们“可望而不可及”的奢望&#xff0c;以往老年人对手机的使用仅局限于按键通话这么简单&#xff0c;是不太会用微信、QQ等沟通方式打字聊天的&…

AI读心术

近期&#xff0c;德克萨斯大学奥斯汀分校的神经科学家们展开了一场「AI」实验&#xff0c;利用人工智能聊天机器人ChatGPT&#xff0c;将大脑活动转化为文字信息。 参与实验的志愿者&#xff0c;在进行长达20小时的「训练」后&#xff0c;成功被「AI」识别出正在进行的活动。按…

chatgpt赋能python:Python反转句子——让你的程序搞定转化难题

Python反转句子——让你的程序搞定转化难题 Python作为一门优秀的编程语言&#xff0c;拥有强大的数据处理能力&#xff0c;常被用于数据清洗、数据分析、统计计算等领域。本文将介绍Python反转句子的实现方法&#xff0c;并讨论其在实际应用中的运用场景。 什么是Python反转…

chatgpt赋能python:Python提取名词:利用NLP技术进行文本分析的高效方法

Python提取名词&#xff1a;利用NLP技术进行文本分析的高效方法 当我们需要对大量文本数据进行分析时&#xff0c;提取其中的名词信息是一个很有用的技巧。 Python提供了各种工具和库来进行NLP自然语言处理&#xff0c;帮助我们快速地实现文本分析。 本文将讨论如何使用Python…

生成式人工智能时代:研究机构与工业机构的角色之争

来源&#xff1a;Illustration by IconScout Store from IconScout 作者&#xff1a;刘鹏飞 微软创始人比尔盖茨说人生中让他印象深刻的两次技术革命演示&#xff0c;一次是现在操作系统的先驱“图形用户界面”&#xff0c;另一个就是以ChatGPT为代表的生成式人工智能技术。 一…

chatgpt赋能python:Python有什么好玩的项目

Python 有什么好玩的项目 Python 是一种多用途的编程语言&#xff0c;被广泛应用于网站开发、数据分析、机器学习以及科学计算等领域。但是除了这些实用的场景&#xff0c;Python 也有很多有趣的项目。在这篇文章中&#xff0c;我将介绍几个有趣的 Python 项目&#xff0c;带你…

用 AI 生成漂亮小姐姐(一)——Stable Diffusion 小白搭建教程

最近 AIGC、ChatGPT 等话题持续发酵,热门程度不亚于之前的 “元宇宙”。抖音、小红书到处都是机器对话、AI 绘图的视频。我看见别人生成的漂亮小姐姐图片眼馋得不行,终于按捺不住自己的好奇心,也尝试一下搭建。本文只是简单记录一下搭建过程。 △ 别人生成的漂亮小姐姐 我使…

如何用 GPT-4 帮你写游戏(以24点游戏举例)

目录 给我一个24点游戏 游戏规则 GPT给的代码 ​改进 再改进 最近呢掀起了一阵GPT-4的热潮&#xff0c;很多人都想用GPT-4&#xff0c;这里呢我就打一个广告&#xff08;嘿嘿&#xff09;&#xff0c;如果不知道国内如何使用GPT的&#xff0c;可以看看这个博客&#xff1a;G…

发送Email、接收Email

邮件软件称为MUA&#xff1a;Mail User Agent&#xff0c;意思是给用户服务的邮件代理&#xff1b; 邮件服务器则称为MTA&#xff1a;Mail Transfer Agent&#xff0c;意思是邮件中转的代理&#xff1b; 最终到达的邮件服务器称为MDA&#xff1a;Mail Delivery Agent&#xff0…

Android studio通过lame生成把pcm转成MP3的so库以及音频的录制和播放附源码

1.先新建C项目 2. 在cpp目录下创建目录map3lame(名字随便起) &#xff0c;接下来要用到 3.下载lame 地址lame 最新版本是3.100&#xff0c;解压完成后如下图 把libmp3lame目录中的所有.c和.h文件(注意其他类型的文件和目录不需要)都复制到项目中新建的map3lame目录中&#xff…

香港金曲奖分析(1983-2017 by SIRMAN)

以前的金曲奖就是华语音乐的代表&#xff0c;特别是80、90年代&#xff0c;谭张争霸&#xff0c;四大天王等&#xff0c;虽然近来影响力已不如之前&#xff0c;但让我们来看看1983-2017的获奖名单。数据来源于百度百科“十大劲歌金曲颁奖典礼”&#xff0c;由于名单较多&#x…

Android中Pcm文件转换为Mp3

刚完成了一个pcm转成mp3的小工作&#xff0c;记录下自己解决这个问题的过程&#xff0c;以便以后可以参考。pcm转换mp3首选的就是lame这个开源框架&#xff0c;下载地址lame&#xff0c;下载完成后需要ndk编译lame。安卓ndk环境配置可以百度。下面记录下ndk编译lame的过程 首先…

NCM转MP3神奇的网页

由于毕业演出需要&#xff0c;下了QQ音乐上的一首需要会员的歌&#xff0c;发现是NCM格式&#xff0c;没有办法打开&#xff0c;于是在网上找方法&#xff0c;然后就发现了这个好方便的网页&#xff0c;直接线上转格式&#xff01;赶紧记下来&#xff0c;以备下次用&#xff01…

使用Lame库实现wav、pcm转mp3

文章目录 前言 一、Lame库是什么&#xff1f; 二、使用步骤 0.创建native项目 1.下载Lame库 2.pcm转MP3 3.wav转MP3 4、native方法如下 三、注意 总结 前言 因为使用android录音后生成的文件是wav或者pcm格式&#xff0c;项目要求最后的文件需要是mp3格式&#xff0c;于…

Android集成LAME库,实现pcm转mp3

一、交叉编译LAME库 LAME是一种非常优秀的MP3编码引擎&#xff0c;在业界&#xff0c;转码成MP3格式的音频文件时&#xff0c;最常用的编码器就是LAME库。 1. 下载LAME库源码 https://sourceforge.net/projects/lame/files/lame/ 进入LAME官网下载LAME源码&#xff0c;我选择…

[opcv图像处理] C/C|++将图片转换为马赛克效果

这个程序将图片转换为马赛克效果。 算法原理&#xff1a;求出每个小方块内所有像素的颜色平均值&#xff0c;然后用来设置为该小方块的颜色。依次处理每个小方块&#xff0c;即可实现马赛克效果。 完整代码如下&#xff1a; / // 程序名称&#xff1a;将图片转换为马赛克效果…

从入门到入土:Python实现爬取网易云歌词|评论生成词云图

写在前面&#xff1a; 此博客仅用于记录个人学习进度&#xff0c;学识浅薄&#xff0c;若有错误观点欢迎评论区指出。欢迎各位前来交流。&#xff08;部分材料来源网络&#xff0c;若有侵权&#xff0c;立即删除&#xff09; Python实现爬取网易云歌词|评论生成词云图 免责声明…

用python写一个爬取周杰伦所有歌词的爬虫

写一个爬虫爬一下周董的所有歌词看看这么多年他为啥这么火 唱的都是什么主题的歌可以这么经久不衰&#xff0c;他凭啥被称为流行歌曲天王。废话不多说 直接上代码 今天比较晚了 之后再慢慢完善讲解。代码比较low因为是编自学边完成的&#xff0c;所以只是实现了基本的功能&…

buuoj 来首歌吧 writeup

题目&#xff08;二十三&#xff09;&#xff1a; 【题型】Misc 【题目】来首歌吧 【来源】&#xff08;buuoj&#xff09;https://buuoj.cn/challenges#%E6%9D%A5%E9%A6%96%E6%AD%8C%E5%90%A7 【思路】通过音频的节奏得出摩斯密码&#xff0c;得到flag。 【具体步骤】 Step1&a…