项目地址:https://github.com/zhanlv/VtDemo

讯飞AndroidSDK文档:https://doc.xfyun.cn/msc_android/%E9%A2%84%E5%A4%87%E5%B7%A5%E4%BD%9C.html

讯飞语音SDK不提供android平台语音转写的功能(只支持java平台,当然android可以通过访问后台去请求),这里是通过语音听写来识别音频文件内容,支持音频长度≤60s(没有测试过音频文件这么长的)。

创建应用-添加新服务-【语音听写】

集成讯飞语音SDK到项目后,可以创建一个识别类,将下面代码复制到项目即可

创建SpeechRecognizer实例,一些初始化操作

   @Override public void start(Context context) {  mRecognizer = SpeechRecognizer.createRecognizer(mContext, mInitListener);mSpeechResult = new StringBuilder();if (mRecognizer == null) {return;}mUserList = UserManager.getUserList();UserWords userWords = new UserWords();
//支持上传热词,比如用户名、关键字,可提高识别准确率for (User user : mUserList) {userWords.putWord(user.getName());}mRecognizer.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);mRecognizer.setParameter(SpeechConstant.TEXT_ENCODING, "utf-8");ret = mRecognizer.updateLexicon("userword", userWords.toString(), new LexiconListener() {@Override public void onLexiconUpdated(String s, SpeechError error) {if (error != null) {LogUtil.e(error.toString());} else {LogUtil.e("success");}}});if (ret != ErrorCode.SUCCESS) mView.showTip("上传热词失败,错误码:" + ret);
}

设置识别参数:

//设置参数public void setParam(String vadEos, String asrPtt, String asrPath) {if (mRecognizer == null) {return;}mView.stopPlayer();mRecognizer.setParameter(SpeechConstant.PARAMS, null);// 设置引擎mRecognizer.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);// 设置返回结果格式mRecognizer.setParameter(SpeechConstant.RESULT_TYPE, "json");mRecognizer.setParameter(SpeechConstant.LANGUAGE, "zh_cn");// 设置语言区域mRecognizer.setParameter(SpeechConstant.ACCENT, "zh_cn");// 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理mRecognizer.setParameter(SpeechConstant.VAD_BOS, "4000");// 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音mRecognizer.setParameter(SpeechConstant.VAD_EOS, vadEos);// 设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点mRecognizer.setParameter(SpeechConstant.ASR_PTT, asrPtt);mRecognizer.setParameter(SpeechConstant.AUDIO_FORMAT, "wav");//是否保存识别语音文件mRecognizer.setParameter(SpeechConstant.ASR_AUDIO_PATH, asrPath);//设置音频资源,通过写音频流方式(-1),如果通过Android自带的录音机录制音频方式(注释掉这一行)mRecognizer.setParameter(SpeechConstant.AUDIO_SOURCE, "-1");}//设置参数完成后,开始识别public void startRecognizer(File asrFile) {ret = mRecognizer.startListening(mRecognizerListener);if (ret != ErrorCode.SUCCESS) {mView.showTip("听写失败,错误码:" + ret);return;}if (asrFile == null) {return;}final byte[] audioData = FileUtils.readFile(asrFile);if (audioData != null) {mRecognizer.writeAudio(audioData, 0, audioData.length);mRecognizer.stopListening();} else {mRecognizer.cancel();LogUtil.e("read audiorecord file failed!");}}

监听识别结果:

 private RecognizerListener mRecognizerListener = new RecognizerListener() {@Override public void onBeginOfSpeech() {mView.showTip("开始说话");mSpeechResult.delete(0, mSpeechResult.length());}@Override public void onEndOfSpeech() {mView.showTip("结束说话");}@Override public void onResult(RecognizerResult results, boolean isLast) {final String result = JsonParser.parseIatResult(results.getResultString());mSpeechResult.append(result);//可在这打印结果 mSpeechResult.toString();}@Override public void onError(SpeechError error) {mView.showTip(error.getPlainDescription(true));}@Override public void onVolumeChanged(int volume, byte[] data) {mView.showTip("当前正在说话,音量大小:" + volume);}@Override public void onEvent(int eventType, int arg1, int arg2, Bundle obj) {}};

FileUtils

public static byte[] readFile(File file) {FileInputStream fis = null;byte[] bytes = null;try {fis = new FileInputStream(file);bytes = new byte[fis.available()];fis.read(bytes);} catch (Exception e) {e.printStackTrace();} finally {if (fis != null) {try {fis.close();} catch (IOException e) {e.printStackTrace();}}}return bytes;}

注意事项:默认识别语音文件,且格式是WAV或PCM。如果想通过麦克风获取语音,注释 mRecognizer.setParameter(SpeechConstant.AUDIO_SOURCE, "-1")这一行,startRecognizer(null)传入参数为null即可

Android语音转文字一识别语音相关推荐

  1. python 实现语音转文字_python3实现语音转文字(语音识别)和文字转语音(语音合成)...

    话不多说,直接上代码运行截图 1.语音合成 -------> 执行: 结果: 输入要转换的内容,程序直接帮你把转换好的mp3文件输出(因为下一步–语音识别–需要.pcm格式的文件,程序自动执行格 ...

  2. 语音对讲软件_三款语音转文字工具,语音输入,高效转换,准确率高

    关于语音转文字的软件我在之前讲了很多,有些人听了也用了,效果不错,有些人看了就忘了,主要是不知道用它干嘛,其实语音转文字的软件主要功能就是为了让自己在写作的时候可以减少时间,提高效率,其余的作用我暂时 ...

  3. 微信 语音转文字 java,微信语音转文字怎么操作?手把手教你,一秒钟搞定!

    原标题:微信语音转文字怎么操作?手把手教你,一秒钟搞定! ‍微信语音转文字怎么操作?相信多数人都知道微信有这样的功能,但真正操作起来不知道怎么做,也不知道能够适用于哪些场景.下面就来教大家手把手操作: ...

  4. 怎么把语音转文字,这个语音转文字的方法简直了

    我们知道,QQ和微信是现在很流行的两种聊天工具,而且这两个工具都有一个语音转文字的功能,朋友发过来的语音我们可以转换成文字进行查看,但是想要将长语音转文字,就需要借助转换工具的了,今天小编来为大家介绍 ...

  5. C# /.NET6 实现语音转文字(科大讯飞语音转文字接口)

    依赖包 <PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version ...

  6. vue 讯飞在线文字合成语音,文字转成语音

    资源链接: 讯飞在线语音合成demo.tts_ws_js_demo.rar-互联网文档类资源-CSDN下载

  7. 想知道怎么把语音转文字?这5个小技巧,职场新人必备!

    在平时的工作中,想必大家都需要梳理会议纪要,但是在这过程中经常穿插许多他人的意见,导致有些混乱,偶尔会漏记的一些重要事项等等.于是会使用一些录音工具来将会议的内容进行录制,事后再根据录音来整理会议的纪 ...

  8. 微信输入法语音转文字的设计点

    微信输入法语音转文字的设计点 1.点击语音按钮是否能够转到键盘输入法页面 2.点击键盘输入法按钮是否能够转到语音输入页面 3.语音和输入法切换是否流畅 4.语音输入是否支持方言 5.语音输入是否支持英 ...

  9. 电脑实现语音识别、语音转文字的方法?

    在很多情况下,我们都需要将谈话内容进行录音,作为日后的保障,但有时候我们需要将语音中的文字转换成文档文字,这样方便于观看和编辑,那我们该怎么做才能识别语音.语音转文字呢?其实方法很简单的,我们只需要在 ...

最新文章

  1. mysql查询filter_子查询包含or引起的filter性能问题案例
  2. GitHub 4K+Star!SpaceX火箭数据开放API接口,可用Python进行抓取分析
  3. android文件读写操作布局文件代码,android实现文件读写功能
  4. 全世界20座最有创意的桥,7座在中国,5座在荷兰!
  5. 动态规划——数塔(hdu2084)
  6. Opencv ORC——文字定位与切割
  7. 电脑开机出现奇怪字符_电脑开机出现Reboot and select proper boot device几种解决措施...
  8. pthread_create()函数
  9. CAD图层管理技巧 使画图效率事半功倍
  10. java文件扫描及多文件中查找字符串
  11. 一元二次方程组的简单解法
  12. 你会在本地搭建 Web 版 VS Code 吗,看完这一篇你就能轻松实现了!
  13. 服务器修改密码次数过多提示被锁定,路由器密码错误次数过多锁死了怎么办?...
  14. 凝思系统激活序列号_凝思磐石安全操作系统
  15. 西魏拓地与侯景防线之关系
  16. 请将标为Service Pack 2 CD-ROM的光盘插入CD-ROM驱动器(D:),然后单击确定。如何解决? 在windows server 2003服务器上。
  17. 关于字段超长导致的插入错误的提示信息(value too long for type character varying)
  18. 李宏毅机器学习01机器学习介绍
  19. Windows7 64位软件资源
  20. 【面试/笔试】—— 数学

热门文章

  1. CPU是怎么实现加速的?
  2. 51单片机开发板资料270G | 免费下载
  3. 如何批量翻译英语文章
  4. 加密资产交易所面临哪些风险?| CSA发布《加密资产交易所安全指南》
  5. 工信部:谨防钓鱼邮件攻击事件
  6. python实现模拟按键down_Python模拟keydown
  7. PG唯一索引与唯一约束.sql
  8. RuntimeError: cuda runtime error (30) : unknown error at /pytorch/aten/src/THC/THCGeneral.cpp:50
  9. 我的世界服务器自定义武器插件,我的世界想买啥就买啥 自定义商店服务器插件...
  10. 新版标准日本语初级_第十六课