8.7 KiB
8.7 KiB
语音识别插件自定义基座制作指南
❌ 问题原因
UTS 插件 xwq-speech-to-text 依赖第三方 Android 库 vosk-android,标准基座中不包含此依赖,因此需要制作自定义基座。
🔍 错误信息
error: Unresolved reference: vosk
import Model from "org.vosk.Model"
原因:
- Vosk 语音识别库未编译到基座中
- 需要制作包含 vosk-android 依赖的自定义基座
✅ 解决方案1:制作自定义调试基座(推荐)
步骤1:检查环境
1.1 检查 HBuilderX 版本
- 要求:HBuilderX 4.63 或更高版本
- 检查:
帮助→关于
1.2 检查 Android SDK
- 菜单:
工具→设置→插件配置→Android SDK - 如果未安装,点击"下载Android SDK"
步骤2:制作自定义基座
2.1 打开项目
- 在 HBuilderX 中打开项目:
fronted_uniapp - 确保项目已保存
2.2 制作基座
-
右键点击项目根目录
-
选择:
发行→原生 App-制作自定义调试基座 -
配置选项:
- ✅ 选择平台:
Android - ✅ 证书:使用 DCloud 公共证书(测试用)
- ❌ 不勾选"仅打正式包"
- ✅ 选择平台:
-
点击"打包"
2.3 等待打包
- 打包时间:约 5-15 分钟
- 控制台会显示打包进度
- 打包完成后会提示"打包成功"
2.4 下载基座
打包完成后,基座文件会自动下载到:
fronted_uniapp/unpackage/debug/android_debug.apk
步骤3:安装自定义基座
3.1 手机连接
- 手机开启 USB 调试
- 用数据线连接电脑
- 确认手机弹出的授权提示
3.2 安装基座
方法1:自动安装
- HBuilderX 会自动检测并提示安装
- 点击"安装"即可
方法2:手动安装
# 使用 adb 安装
adb install -r fronted_uniapp/unpackage/debug/android_debug.apk
方法3:直接安装
- 将
android_debug.apk复制到手机 - 在手机上点击安装
步骤4:使用自定义基座运行
4.1 运行项目
- 在 HBuilderX 中
- 点击工具栏 "运行" → "运行到手机或模拟器" → "运行到 Android App 基座"
- 重要: 选择"自定义基座"(不是"标准基座")
4.2 验证
- App 启动后,进入语音测评页面
- 如果能看到"准备就绪",说明插件加载成功
- 如果还是报错,查看控制台日志
✅ 解决方案2:云端打包(正式发布用)
如果是正式发布,使用云端打包:
步骤1:配置应用信息
- 打开 manifest.json
- 配置基础信息:
- 应用名称
- 应用版本号
- 应用图标
- 包名(com.xxx.xxx)
步骤2:配置证书
2.1 生成证书(如果没有)
# 使用 Android Studio 或命令行生成
keytool -genkey -v -keystore release.keystore -alias mykey -keyalg RSA -keysize 2048 -validity 10000
2.2 在 HBuilderX 中配置证书
manifest.json→App 打包配置- 选择证书文件
- 输入证书密码和别名密码
步骤3:云端打包
-
右键项目根目录
-
选择:
发行→原生 App-云打包 -
配置选项:
- ✅ 选择平台:
Android - ✅ 使用自有证书
- ✅ 勾选"打正式包"
- ✅ 选择平台:
-
点击"打包"
-
等待打包完成
- 时间:约 10-20 分钟
- 完成后会提示下载地址
-
下载并安装
- 下载 APK 文件
- 安装到手机测试
✅ 解决方案3:暂时禁用语音功能
如果暂时不需要语音识别,可以:
方法1:隐藏语音入口
修改首页,隐藏语音测评入口:
<!-- pages/index/index.vue -->
<!-- 注释掉或删除语音测评入口 -->
<!--
<view class="action-item" @click="goToSpeech">
<view class="action-icon-wrapper voice">
<text class="action-icon">🎤</text>
</view>
<text class="action-text">语音测评</text>
</view>
-->
方法2:显示提示信息
已修改 speech.vue,现在会显示友好提示:
需要制作自定义基座才能使用语音识别功能。
步骤:
1. HBuilderX菜单:发行 → 原生App-制作自定义调试基座
2. 选择Android平台
3. 等待打包完成
4. 安装自定义基座到手机
🔧 常见问题
问题1:打包失败 - SDK 未配置
错误: Android SDK path not configured
解决:
工具→设置→插件配置→Android SDK- 点击"下载 Android SDK"
- 等待下载完成
- 重新打包
问题2:打包失败 - 网络问题
错误: Failed to download dependency
解决:
- 检查网络连接
- 使用国内镜像(config.json 已配置阿里云镜像)
- 重试打包
问题3:基座安装失败
错误: App not installed
解决:
- 卸载旧的基座
- 清除手机缓存
- 重新安装
问题4:运行时仍然报错
检查:
- 是否选择了"自定义基座"运行(不是标准基座)
- 自定义基座版本是否最新
- 是否需要重新制作基座
重新制作基座:
- 删除旧的
android_debug.apk - 重新执行制作流程
- 重新安装到手机
问题5:插件仍然无法使用
检查 config.json:
{
"dependencies": [
"com.alphacephei:vosk-android:0.3.47"
]
}
验证依赖:
- 检查插件配置文件是否正确
- 清除缓存重新打包
- 查看打包日志是否有错误
📋 制作自定义基座完整流程
graph TD
A[开始] --> B[检查 HBuilderX 版本]
B --> C[配置 Android SDK]
C --> D[右键项目 → 发行 → 制作自定义调试基座]
D --> E[选择 Android 平台]
E --> F[点击打包]
F --> G[等待 5-15 分钟]
G --> H[下载基座 APK]
H --> I[安装到手机]
I --> J[运行项目 - 选择自定义基座]
J --> K{语音功能正常?}
K -->|是| L[完成]
K -->|否| M[查看日志排查]
M --> N[重新制作基座]
N --> G
🎯 验证成功的标志
1. 控制台日志
[Speech] ========== 开始初始化语音模型 ==========
[Speech] 已保存的模型路径: /storage/...
[Speech] 模型加载成功
2. 页面显示
- 状态:准备就绪,可以开始说话
- 调试信息:模型已加载
3. 功能测试
- 点击"开始说话"按钮
- 说话后能看到识别文本
- 没有报错提示
📱 自定义基座 vs 标准基座
| 项目 | 标准基座 | 自定义基座 |
|---|---|---|
| UTS 插件 | ❌ 不支持第三方依赖 | ✅ 支持 |
| 打包时间 | 快(秒级) | 慢(5-15分钟) |
| 更新频率 | 每次运行 | 需要重新制作 |
| 适用场景 | 普通功能开发 | 使用第三方依赖的插件 |
| 调试 | 实时同步代码 | 实时同步代码 |
💡 最佳实践
开发阶段
- ✅ 制作一次自定义基座
- ✅ 安装到测试手机
- ✅ 后续开发使用自定义基座运行
- ⚠️ 插件更新后需要重新制作基座
测试阶段
- ✅ 使用自定义基座测试完整功能
- ✅ 在不同机型上测试
- ✅ 测试语音识别准确性
发布阶段
- ✅ 使用云端打包
- ✅ 使用自有证书
- ✅ 打正式包发布
📝 注意事项
-
自定义基座只用于调试
- 不要发布自定义基座给用户
- 正式发布使用云端打包
-
基座需要定期更新
- 插件更新后重新制作
- HBuilderX 更新后重新制作
-
证书管理
- 测试用 DCloud 公共证书
- 正式发布用自有证书
- 妥善保管证书文件
-
版本匹配
- 自定义基座版本要与 HBuilderX 版本匹配
- 插件版本要兼容
🆘 获取帮助
官方文档
- UTS 插件开发:https://uniapp.dcloud.net.cn/tutorial/run/uts-development-android.html
- 自定义基座:https://uniapp.dcloud.net.cn/tutorial/run/run-app.html#customplayground
社区支持
- DCloud 社区:https://ask.dcloud.net.cn/
- uni-app 官方 QQ 群
插件作者
- 查看插件详情页的联系方式
✅ 总结
推荐方案
- 开发调试: 制作自定义调试基座
- 正式发布: 云端打包
核心步骤
- 配置 Android SDK
- 制作自定义基座
- 安装到手机
- 选择自定义基座运行
关键点
- ⚠️ 必须使用自定义基座
- ⚠️ 不能用标准基座
- ⚠️ 插件更新后需重新制作
现在请按照步骤制作自定义基座,完成后语音识别功能即可正常使用! 🚀