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