Skip to content

支持息屏语音唤醒(always-on热词检测),补全默认数字助理体验 #57

Description

@Wu-HZ

背景与动机

Eta 已支持在 ColorOS 上被设为默认数字助理,通过电源键/长按唤起,这条链路很好用。但作为「系统级 AI Agent」和默认助理,目前缺少息屏/锁屏状态下直接语音唤醒的能力——即像小布、小爱、Google Assistant 那样,喊一声唤醒词就能点亮并唤起。

对把 Eta 设为默认助理的用户,这是一个明显缺口:

  • 小布被 Eta 替代后,原本的息屏语音唤醒入口也一并没了;
  • Google Assistant 依赖 Google 云端,国内网络下无法正常使用;
  • 于是「不动手、喊一声就唤起」这条路径变成空白,只能退回长按电源键。

现状(技术事实)

当前版本(2.6.0)已注册了完整的系统语音交互组件:

  • android.service.voice.VoiceInteractionServiceEtaVoiceInteractionService
  • android.speech.RecognitionServiceEtaRecognitionService
  • android.intent.action.ASSISTEtaVoiceAssistActivity
  • Session 服务 EtaVoiceInteractionSessionService

但 manifest 中没有 android.service.voice.HotwordDetectionService,也未使用 AlwaysOnHotwordDetector,因此系统级 always-on 热词检测缺失,无法在息屏时持续监听唤醒词。

期望

  1. 支持息屏/锁屏语音唤醒,唤醒后直接进入 Eta 语音助手(开始听或弹出 EtaVoiceAssistActivity)。
  2. 唤醒词可自定义,至少支持中文(例如「你好 Eta」),避免只能复用英文唤醒词。
  3. 尽量低功耗,不明显影响待机续航。

可能的实现方向(供参考)

  • 标准方案:实现 HotwordDetectionService(Android 11+ 的 always-on hotword API),绑定到现有 VoiceInteractionService,配合系统 SoundTrigger / 骁龙 Hexagon DSP 做低功耗检测;需适配各 ROM 的 SoundTrigger HAL。
  • 应用侧方案:常驻前台服务 + AudioRecord + 本地唤醒词引擎(如 openWakeWord、sherpa-onnx、Porcupine 等),熄屏时通过前台服务/无障碍保活;灵活、跨 ROM,但功耗高于 DSP 方案。
  • 两者可结合:优先走 DSP,DSP 不可用时降级到应用侧监听。

环境信息

  • 设备:ColorOS(骁龙平台),已 Root + LSPosed
  • Eta 版本:2.6.0
  • 系统默认数字助理已设为 Eta;Google Assistant 因网络原因不可用

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions