guoyu/log/备份/md/语音识别插件编译说明.md

114 lines
3.9 KiB
Markdown
Raw Normal View History

2025-12-06 20:11:36 +08:00
# 语音识别插件编译说明
## 问题原因
错误信息:`uts插件[xwq-speech-to-text]编译失败,无法使用`
这是因为 UTS 插件需要编译成原生代码才能使用,标准基座无法运行 UTS 插件。
## 解决方案
### 方案一:云端制作自定义调试基座(强烈推荐)⭐⭐⭐⭐⭐
**重要:** 由于 UTS 插件依赖第三方库Vosk必须使用**云端打包**,不能本地编译!
1. **在 HBuilderX 中操作:**
- 菜单栏:`发行` → `原生App-云打包`
-**勾选 "打包为自定义调试基座"**(这是关键!)
- 选择 `Android` 平台
- 证书可以使用 DCloud 公共证书(测试用)
- 点击打包
2. **等待云端打包完成:**
- 打包过程需要 5-10 分钟
- 云端会自动下载和编译 Vosk 依赖库
- 完成后会在控制台显示下载链接
3. **安装自定义基座:**
- 下载生成的 APK 文件(文件名类似:`__UNI__XXXXX_自定义基座.apk`
- 安装到 Android 手机上
- 这个 APK 包含了编译好的 UTS 插件和 Vosk 库
4. **配置 HBuilderX 使用自定义基座:**
- 菜单栏:`运行` → `运行到手机或模拟器``运行配置`
- 选择 "自定义调试基座"(不是标准基座!)
- 点击确定
5. **运行项目:**
- 现在运行项目时会使用自定义基座
- 不会再尝试本地编译 UTS 插件
- 语音识别功能应该可以正常使用了
### 方案二:云打包(用于正式发布)
1. **在 HBuilderX 中操作:**
- 菜单栏:`发行` → `原生App-云打包`
- 选择 Android 平台
- 填写应用信息和证书
- 点击打包
2. **等待打包完成:**
- 打包完成后下载 APK
- 这个 APK 已经包含了编译好的 UTS 插件
### 方案三:本地打包(高级用户)
1. 导出项目到本地
2. 使用 Android Studio 编译
3. 参考 uni-app 官方文档的本地打包教程
## 注意事项
1. **模型文件:**
- 插件不包含 Vosk 模型文件
- 需要下载模型并放到 `/static/` 目录
- 模型下载地址https://alphacephei.com/vosk/models
- 推荐使用:`vosk-model-small-cn-0.22.zip`(中文小模型,约 40MB
2. **权限配置:**
- 插件已自动配置所需权限
- 运行时会自动请求麦克风权限
3. **测试建议:**
- 首次使用建议先用自定义基座测试
- 确认功能正常后再进行云打包
## 常见问题
### Q: 为什么会报 "找不到名称vosk" 错误?
A: 因为 Vosk 是第三方依赖库,本地编译环境找不到。必须使用云端打包,让云端服务器下载和编译依赖。
### Q: 为什么标准基座不能用?
A: UTS 插件需要编译成原生代码Kotlin/Java标准基座不包含这些代码。
### Q: 本地编译和云端编译有什么区别?
A:
- 本地编译:需要配置 Android SDK对于有第三方依赖的插件会失败 ❌
- 云端编译:自动处理所有依赖,稳定可靠 ✅
### Q: 每次修改代码都要重新打包吗?
A:
- 修改 Vue/JS 代码:不需要,热更新即可 ✅
- 修改 UTS 插件代码:需要重新云端打包自定义基座 ⚠️
### Q: 自定义调试基座和正式云打包有什么区别?
A:
- 自定义调试基座:用于开发测试,包含调试功能,勾选"打包为自定义调试基座"
- 正式云打包:用于发布,经过优化和签名,不勾选"打包为自定义调试基座"
### Q: 如何确认使用的是自定义基座?
A: 在 HBuilderX 运行配置中,确保选择了 "自定义调试基座",而不是 "标准基座"。
## 已修复的问题
- ✅ 修复了 `ResultData` 类型定义缺少 `errorMsg` 字段的问题
- ✅ 添加了错误处理,避免 APP 闪退
- ✅ 改进了错误信息提示
## 下一步
1. 制作自定义调试基座
2. 下载并放置 Vosk 模型文件
3. 安装基座到手机
4. 测试语音识别功能