Android studio如何实现语音转文字功能
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍了Android studio如何实现语音转文字功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、在科大讯飞的官网
千家信息网最后更新 2025年01月20日Android studio如何实现语音转文字功能
这篇文章主要介绍了Android studio如何实现语音转文字功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
一、在科大讯飞的官网上注册并下载SDK
1.首先去讯飞开放平台申请一个账号(https://www.xfyun.cn/),然后点击"控制台"进入新的页面,创建一个应用,找到"语音听写",下载相应的SDK。
文件解压后内容如下:
二、配置安卓项目
1.在android studio中新建一个空项目,将libs文件夹中的内容复制到安卓项目的libs文件夹下,其中msc.jar要右键添加Add As Library:
2.将assets文件夹拷贝到项目的main目录下,并在main目录下新建一个名为jniLibs的文件夹,将下载的libs文件夹中的两个子文件夹复制到jniLibs中:
3.在AndriodManifest.xml中添加以下权限:
4.在app目录下的build.gradle中添加以下代码:
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
5.修改布局文件activity_main.xml中的代码:
6.新建一个名为XunFeiCallbackListener的接口:
package com.example.myapplication;import com.iflytek.cloud.RecognizerResult;public interface XunFeiCallbackListener { void onFinish(RecognizerResult results);}
7.新建一个名为XunFeiUtil的类:
package com.example.myapplication;import android.content.Context; import android.widget.Toast; import com.iflytek.cloud.RecognizerResult; import com.iflytek.cloud.SpeechConstant; import com.iflytek.cloud.SpeechError; import com.iflytek.cloud.SpeechUtility; import com.iflytek.cloud.ui.RecognizerDialog; import com.iflytek.cloud.ui.RecognizerDialogListener; import org.json.JSONArray; import org.json.JSONObject; import org.json.JSONTokener;public class XunFeiUtil { public static String appid = "自己的appid"; public static void initXunFei(Context context){ SpeechUtility.createUtility(context, SpeechConstant.APPID +"="+appid); } public static void startVoice(Context context, final XunFeiCallbackListener callbackListener) { RecognizerDialog dialog = new RecognizerDialog(context,null); dialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn"); dialog.setParameter(SpeechConstant.ACCENT, "mandarin"); dialog.setParameter(SpeechConstant.ASR_PTT, "0"); dialog.setListener(new RecognizerDialogListener() { @Override public void onResult(RecognizerResult recognizerResult, boolean b) { callbackListener.onFinish(recognizerResult); } @Override public void onError(SpeechError speechError) { } }); dialog.show(); //Toast.makeText(this, "请开始说话", Toast.LENGTH_SHORT).show(); } public static String parseIatResult(String json) { StringBuffer ret = new StringBuffer(); try { JSONTokener tokener = new JSONTokener(json); JSONObject joResult = new JSONObject(tokener); JSONArray words = joResult.getJSONArray("ws"); for (int i = 0; i < words.length(); i++) { // 转写结果词,默认使用第一个结果 JSONArray items = words.getJSONObject(i).getJSONArray("cw"); JSONObject obj = items.getJSONObject(0); ret.append(obj.getString("w")); } } catch (Exception e) { e.printStackTrace(); } return ret.toString(); }}
8.修改MainActivity:
package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import com.iflytek.cloud.RecognizerResult;import static com.example.myapplication.XunFeiUtil.parseIatResult;import static com.example.myapplication.XunFeiUtil.*;public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private Button btn_click; private EditText mResultText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initXunFei(this); btn_click = (Button) findViewById(R.id.btn_click); mResultText = ((EditText) findViewById(R.id.result)); btn_click.setOnClickListener(this); } @Override public void onClick(View v) { startVoice(this, new XunFeiCallbackListener() { @Override public void onFinish(RecognizerResult results) { String text = parseIatResult(results.getResultString()); // 自动填写地址 mResultText.append(text); } }); }}
三、运行效果展示
按照以上操作进行修改,完成后运行项目,会出现语音开启失败,错误码为20006的错误,出错原因是android系统在非动态申请权限的情况下,默认是把麦克风权限是关闭了的,因此需要打开权限,可以在手机的权限中自己修改权限设置,成功后的界面如下:
感谢你能够认真阅读完这篇文章,希望小编分享的"Android studio如何实现语音转文字功能"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
文件
文件夹
权限
项目
语音
篇文章
目录
功能
文字
代码
内容
结果
错误
安卓
讯飞
运行
成功
两个
价值
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上位机软件开发用哪些软件
湖北c语言软件开发哪家便宜
软件开发公司的税收
西宁软件开发价格走势
福建省学生网络安全
上海浅银互联网科技
云南互联网科技产业园住宅
简述数据库管理的安全性
如何制作一个信息服务器
数据库中唯一记录的属性
我的世界基服务器
网络技术基础名词ftp解释
云南大学网络安全专业
腾讯云服务器激活码
上海大型软件开发流程
云服务器建网站
ustats数据库
无锡手机回收软件开发公司
软件开发激励计划
医疗单位网络安全管理制度
云计算中的网络安全技术运用
科技互联网贸易
福建省学生网络安全
互联网对科技的变革
张家港口碑好服务器高质量的选择
网络安全与信息安全申论考点
登录服务器要求输入账号密码
网络视频网络技术的发展
批量运维linux服务器
宁波软件开发行业怎么样