当前位置: 首页 > news >正文

基于sherpa-onnx 安卓语音识别尝鲜

sherpa-onnx简介

Sherpa:是一个由 K2-FSA 团队 开发的 开源语音处理框架,旨在解决传统语音识别工具(如 Kaldi)在模型部署和跨平台适配中的复杂性问题。它通过整合现代深度学习技术和高效推理引擎,提供了从语音识别、合成到说话人识别的一站式解决方案,尤其在实时性、低资源消耗和跨平台兼容性方面表现突出。

ONNX(Open Neural Network Exchange):即开放神经网络交换格式,是一种用于表示深度学习模型的开放标准文件格式。它由微软、Facebook 和亚马逊等科技公司联合推出,旨在打破不同深度学习框架之间的壁垒,让模型能够在不同的工具和硬件平台之间更便捷地迁移和部署。

所以Sherpa-onnx是一款基于开放神经网络交换格式的实时语音识别引擎。

sherpa-onnx尝鲜

由于笔者主要从事Android开发,所以本次尝鲜也就仅带大家将官方Demo跑起来并看到效果。

1.下载sharpa-onnx源码

下载地址:https://github.com/k2-fsa/sherpa-onnx

或者执行:

git clone https://github.com/k2-fsa/sherpa-onnx

2.导入Demo工程到Android Studio

完成上一步下载源码之后,解压源码,然后进入源码中的:sherpa-onnx-master\sherpa-onnx-master\android目录

内容如下:
在这里插入图片描述

这个里面这些目录基本上都是sharpa-onnx在Android上面的示例,我们本次指导示例使用的是SherpaOnnx,SherpaOnnx的功能是语音转文字(ASR),其余的在成功跑起SherpaOnnx后,可自行了解,配置方式基本上都差不多。 SherpaOnnx导入Android Studio之。

3.更换工程中的类文件

因为SherpaOnnx中默认除MainActivity.kt外其他都是伪类,因此需要找到真的类文件进行替换,好的一点是官方在每个类中标明了使用的类文件的具体位置,有些同学可能看不明白,没关系,跟我操作即可。

sherpa-onnx-master\sherpa-onnx\kotlin-api目录内拷贝下图中红框标记的文件:

在这里插入图片描述

复制到Android Studio中替换demo中当前同名的类文件。

4.下载并导入依赖

官方只提供了macOS和linux下的依赖编译,windows下的没提供,而笔者和大部分小伙伴应该都是windows吧,所以我们也就不费那劲了,直接下载官方已经编译好的依赖文件导入即可,如果有小伙伴对于依赖编译有想法的可以参看官方文档,或者留言我后续再出一遍依赖编译的指导文档。

下载路径:https://github.com/k2-fsa/sherpa-onnx/releases

在这里插入图片描述

我们这里下载sherpa-onnx-v1.11.3-android.tar.bz2,下载完成后可以看到里面有一个jniLibs目录,将这个目录拷贝,复制并替换工程中已经存在的JniLibs目录,当然如果觉得依赖比较大的话,可以自行根据调试平台删除掉不需要的库,如果搞不明白,就直接全部拷到工程即可。

自此,工程的配置就算全部完成了,下面我们看下如何下载模型并导入到工程。

5.下载模型并导入

可能是考虑到sherpa-onnx源码大小,所以demo中既没有上传依赖,也没有上传模型,所以这些都得我们自己下载自行导入,好的一点是官方又很贴心,提供了很多预训练模型供大家下载。

在下载之前我们需要知道要下载那个模型,所以我们的先从demo中查找它加载的是那个模型,因此让我们打开MainActivity。

在这里插入图片描述

在205行也就是我红框标记的这里,通过名称不难看出是获取模型配置,在获取配置时传入一个type参数,这个参数的值为0,大家要记住这个值,待会有用,我们继续看下getModelConfig函数是怎么加载模型配置的。

在这里插入图片描述

这里跳转到了OnlineRecognizer类中,在这里可以看到传入的type就是为了区分加载那个模型,模型名称可以认为就是 “modelDir”, 因为截图有限,大家如果打开的话应该能看到,支持加载的模型很多,我们这里就还是以默认加载模型来进行调试吧。

在MainActivity中的截图中应该有小伙伴也看到了,官方亲切的将模型下载链接已经给出,不过那个链接是总的模型下载地址,当然根据大家需要可选择我下面提供的链接或者demo中的链接下载都可以。

模型下载地址:https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models

因为模型很多,所以我们这里直接搜索

在这里插入图片描述

找到我们要下载的模型后,直接下载,根据个人网速,如果过慢的话,可能还需要科学上网,大家自行选择。

待下载完成后,解压,将整个模型目录拷贝到工程的assets根目录,结构如下:

在这里插入图片描述

这一步完成之后,那么我们整个demo的导入就算完成了,接下来就是运行看效果了。

效果截图如下:

在这里插入图片描述

简单试了下,识别速度和准确率还可以,效果还是杠杠的,至此我们sherpa-onnx安卓语音识别尝鲜就圆满结束了,感谢大家的观看。

相关文章:

  • 与AI深度融合的Go开发框架sponge,解决使用cursor、trae等AI辅助编程工具开发项目时的部分痛点
  • n8n 为技术团队打造的安全工作流自动化平台
  • 优化 Dockerfile 性能之实践(Practice of Optimizing Dockerfile Performance)
  • 【场景应用9】多语言预训练语音模型进行自动语音识别
  • 基于骨骼识别的危险动作报警分析系统
  • 基于uniapp的鸿蒙APP大数据量性能优化
  • 招贤纳士|Walrus 亚太地区招聘高级开发者关系工程师
  • 量化视角:比特币美债黄金三角博弈的DeepSeek推演
  • 1.2 使用RawInputSharp来取得键盘硬件信息以及虚拟码
  • Being-0:具有视觉-语言模型和模块化技能的人形机器人智体
  • QT —— 信号和槽(槽函数)
  • 【1】CICD持续集成-docker本地搭建gitlab代码仓库社区版
  • 用cursor三个小时复刻高德地图的足迹地图
  • 突发重磅消息!!!CVE项目将被取消?
  • MySQL的MVCC机制详解
  • SQL刷题日志(day2)
  • 【AI】IDEA 集成 AI 工具的背景与意义
  • 一个基于Django的写字楼管理系统实现方案
  • C/C++---头文件保护机制
  • Spring Boot整合Kafka的详细步骤
  • 西安住房和城乡建设部网站/重庆seo网络优化师
  • 如何运用网站做宣传/九幺seo工具
  • 湖北网站建设公司/如何在微信上做推广
  • 德清县建设银行官方网站/网络营销平台名词解释
  • 济南制作网站的公司吗/今天最火的新闻头条
  • 二级学院网站建设方案/企业网络营销策划书范文