guoyu/log/备份/md/语音识别插件编译说明.md
2025-12-07 00:11:06 +08:00

3.9 KiB
Raw Blame History

语音识别插件编译说明

问题原因

错误信息: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. 测试语音识别功能