114 lines
3.9 KiB
Markdown
114 lines
3.9 KiB
Markdown
|
|
# 语音识别插件编译说明
|
|||
|
|
|
|||
|
|
## 问题原因
|
|||
|
|
|
|||
|
|
错误信息:`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. 测试语音识别功能
|