第二章 编译运行Android Wenet语音识别

2024-06-22 02:20

本文主要是介绍第二章 编译运行Android Wenet语音识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章目录

第一章 基于Ubuntu 24.04 搭建wenet语音转文字
第二章 编译运行Android Wenet语音识别


文章目录

  • 系列文章目录
  • 前言
  • 一、Android Wenet语音识别
  • 二、使用步骤
    • 1.修改gradle配置
    • 2.下载预训练模型
    • 3.执行task extractAARForNativeBuild
    • 4.构建并运行APK
    • 5.遇到问题
  • 总结


前言

本文继续前一章内容,开始前,请先准备好Wenet源码。


一、Android Wenet语音识别

本文目标是使用Android studio 运行Wenet语音识别-Android Demo。

二、使用步骤

1.修改gradle配置

  • 修改文件 wenet/runtime/android/build.gradle,
    gradle:8.4.1 版本号改为与自己的Android studio匹配;
buildscript {repositories {google()
//        jcenter()mavenCentral()gradlePluginPortal()}dependencies {classpath 'com.android.tools.build:gradle:8.4.1'}
}allprojects {repositories {google()
//        jcenter()mavenCentral()maven { url 'https://jitpack.io' }}
}task clean(type: Delete) {delete rootProject.buildDir
}
  • 修改文件 wenet/runtime/android/app/build.gradle,
// 增加命名空间
namespace "com.mobvoi.wenet"
  • 修改文件 wenet/runtime/android/gradle/wrapper/gradle-wrapper.properties,
    将gradle版本号改为与自己的Android studio匹配;
    distributionUrl=https://services.gradle.org/distributions/gradle-8.6-bin.zip

2.下载预训练模型

官方提供了两种,这里我们下载中文的即可;

  • 中文演讲
  • 英语(GigaSpeech)

下载解压后,将“final.zip”和“units.txt”放入Androidde(“app/src/main/assets”)文件夹中;

3.执行task extractAARForNativeBuild

在文件wenet/runtime/android/app/build.gradle中点击运行按钮 执行task extractAARForNativeBuild

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a0c6431095fa44a7957be1391bc1ca7c.png =300)在build下生成pytorch_android*.aar文件;
在这里插入图片描述
修改wenet/runtime/android/app/src/main/cpp/cmake/libtorch.cmake,配置版本号

# Change version in runtime/android/app/build.gradle.file(GLOB PYTORCH_INCLUDE_DIRS "${build_DIR}/pytorch_android-1.13.0.aar/headers")file(GLOB PYTORCH_LINK_DIRS "${build_DIR}/pytorch_android-1.13.0.aar/jni/${ANDROID_ABI}")

4.构建并运行APK

最后构建并运行APK即可。
在这里插入图片描述

5.遇到问题

  • CMake Error: The following variables are used in this project, but they are set to NOTFOUND. PYTORCH_LIBRARY

原因是没有执行第3步:执行task extractAARForNativeBuild;


总结

至此Wenet的Android Demo 已跑通运行。
注意:此方式运行的Android Demo 语音识别过程无需移动网络或Wifi。

参考
https://github.com/wenet-e2e/wenet/blob/main/runtime/android/README.md

这篇关于第二章 编译运行Android Wenet语音识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083018

相关文章

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加