3.9 KiB
3.9 KiB
语音识别插件编译说明
问题原因
错误信息:uts插件[xwq-speech-to-text]编译失败,无法使用
这是因为 UTS 插件需要编译成原生代码才能使用,标准基座无法运行 UTS 插件。
解决方案
方案一:云端制作自定义调试基座(强烈推荐)⭐⭐⭐⭐⭐
重要: 由于 UTS 插件依赖第三方库(Vosk),必须使用云端打包,不能本地编译!
-
在 HBuilderX 中操作:
- 菜单栏:
发行→原生App-云打包 - ✅ 勾选 "打包为自定义调试基座"(这是关键!)
- 选择
Android平台 - 证书可以使用 DCloud 公共证书(测试用)
- 点击打包
- 菜单栏:
-
等待云端打包完成:
- 打包过程需要 5-10 分钟
- 云端会自动下载和编译 Vosk 依赖库
- 完成后会在控制台显示下载链接
-
安装自定义基座:
- 下载生成的 APK 文件(文件名类似:
__UNI__XXXXX_自定义基座.apk) - 安装到 Android 手机上
- 这个 APK 包含了编译好的 UTS 插件和 Vosk 库
- 下载生成的 APK 文件(文件名类似:
-
配置 HBuilderX 使用自定义基座:
- 菜单栏:
运行→运行到手机或模拟器→运行配置 - 选择 "自定义调试基座"(不是标准基座!)
- 点击确定
- 菜单栏:
-
运行项目:
- 现在运行项目时会使用自定义基座
- 不会再尝试本地编译 UTS 插件
- 语音识别功能应该可以正常使用了
方案二:云打包(用于正式发布)
-
在 HBuilderX 中操作:
- 菜单栏:
发行→原生App-云打包 - 选择 Android 平台
- 填写应用信息和证书
- 点击打包
- 菜单栏:
-
等待打包完成:
- 打包完成后下载 APK
- 这个 APK 已经包含了编译好的 UTS 插件
方案三:本地打包(高级用户)
- 导出项目到本地
- 使用 Android Studio 编译
- 参考 uni-app 官方文档的本地打包教程
注意事项
-
模型文件:
- 插件不包含 Vosk 模型文件
- 需要下载模型并放到
/static/目录 - 模型下载地址:https://alphacephei.com/vosk/models
- 推荐使用:
vosk-model-small-cn-0.22.zip(中文小模型,约 40MB)
-
权限配置:
- 插件已自动配置所需权限
- 运行时会自动请求麦克风权限
-
测试建议:
- 首次使用建议先用自定义基座测试
- 确认功能正常后再进行云打包
常见问题
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 闪退
- ✅ 改进了错误信息提示
下一步
- 制作自定义调试基座
- 下载并放置 Vosk 模型文件
- 安装基座到手机
- 测试语音识别功能