Android-MVVM-Architecture-Android-Voice-AI-SDK
Android 语音 AI 开发库,通过可插拔引擎架构实现语音→文字→AI推理→语音输出全链路,最快5行代码即可接入。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Android 语音 AI 开发库,通过可插拔引擎架构实现语音→文字→AI推理→语音输出全链路,最快5行代码即可接入。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:用户对着手机说一声"帮我查下最近的会议安排",手机立刻识别语音、转为文字、发送给 AI、生成回答,再把文字转成语音读出来——整个过程行云流水,用户甚至感觉不到中间有多少个步骤在跑。
这就是 Android Voice AI SDK 正在做的事:它把语音 → 文字 → AI 推理 → 语音输出这条完整链路,打包成一个 Android 库,让任何 Android 应用都能在几分钟内拥有这样的能力。
在 2023-2024 年的大模型浪潮中,ChatGPT、Claude 等云端 AI 能力爆发,但将它们落地到 Android 移动端一直是个工程难题。难点不在于调用 API,而在于整个语音交互流程的工程复杂度:麦克风音频采集、噪音处理、语音活动检测(VAD)、语音转文字(STT)、AI 对话管理、文字转语音(TTS)……每一个环节都是一个独立的技术领域。
对于普通 Android 开发者来说,从零实现这套 pipeline 意味着要同时掌握音频工程、NLP、云端 API 对接、TTS 引擎集成等多种技能,工程量巨大。
Android Voice AI SDK 的出现,就是为了解决这个问题。 作者 Ahmed ElTaher 将这套完整链路抽象为一套可插拔的架构,通过 Builder 模式让开发者几行代码就能接入,同时保持了足够灵活的扩展性——STT 引擎可以换,TTS 引擎可以换,AI 模型也可以换。
项目的架构设计非常清晰,采用六层模块化结构,每层职责单一,通过接口解耦:
| 层级 | 包名 | 职责 |
|---|---|---|
| Audio | audio/ | 原始 PCM 音频采集、语音活动检测(VAD)、音频电平计量、PCM→WAV 转换 |
| STT | stt/ | SpeechToTextEngine 接口,默认实现 Android 内置 SpeechRecognizer,支持插入 Whisper |
| AI | ai/ | AIEngine 接口,由 ClaudeAIEngine 实现,封装 Anthropic Java SDK,维护对话历史 |
| TTS | tts/ | TextToSpeechEngine 接口,默认 Android 内置 TTS,支持插入 ElevenLabs 高质量语音 |
| Session | VoiceAISession | 协程驱动的 Pipeline 编排器,协调音频输入→文字→AI→语音输出全流程 |
| UI | ui/ | Jetpack Compose 可复用组件:VoiceButton、ConversationView、WaveformVisualizer 等 |
这套架构最精妙的地方在于可插拔引擎设计。每个核心功能(STT、TTS、AI)都有标准接口,应用开发者可以不用改核心逻辑,只替换引擎实现,就能在不同服务之间切换。例如 STT 可以从免费的 Android 内置引擎换成 OpenAI Whisper(更高准确率),TTS 可以从系统 TTS 换成 ElevenLabs(更自然的音色)。
SDK 支持两种交互范式。免按键模式(HANDS_FREE) 开启后,VAD 自动检测用户何时开始说话、何时结束,用户完全不需要按任何按钮,非常适合智能家居、车载等场景。按压通话模式(PUSH_TO_TALK) 则需要用户按住按钮后才开始录音,适合嘈杂环境或需要精确控制录音时机的场景。
语音转文字环节,SDK 提供了两套方案:
文字转语音同样提供了两套:
SDK 内置了基于音频特征的情绪检测功能,能够识别七种情绪:NEUTRAL(中性)、HAPPY(开心)、SAD(悲伤)、ANGRY(愤怒)、FEARFUL(恐惧)、SURPRISED(惊讶)、DISGUSTED(厌恶)。检测在设备端完成,不依赖云端 API,同时支持接入 Hume AI 的云端情绪识别服务获得更高准确率。
更有意思的是 emotionAwareAI 选项:检测到的情绪会自动注入 Claude 的 system prompt,让 AI 能根据用户的情绪调整回复语气——用户语气低落时,AI 语气会更温和共情;用户语气激动时,AI 则会更加冷静理性。
SDK 在隐私安全方面下了不少功夫:
piiRedaction = true 时,SDK 会在将文字发给 AI 之前,自动剥离电话号码、邮箱地址、信用卡号等敏感信息,防止隐私数据泄露。EncryptedSharedPreferences + AES-256-GCM 加密,密钥由 Android Keystore 管理。即使设备被 root,应用数据也无法被直接读取。VoiceAIConfig.certificatePins 配置 SHA-256 证书固定,防止中间人攻击。SDK 的使用体验设计得相当优雅。整个接入过程不超过 5 步:添加依赖 → 配置权限 → Hilt 绑定 → Builder 创建实例 → Compose UI 嵌入。对于没有使用 Hilt 的项目,也可以直接调用 VoiceAISDK.Builder 构造器创建实例,不需要额外依赖注入框架。
// 最简接入示例
val sdk = VoiceAISDK.Builder(context)
.anthropicApiKey(BuildConfig.ANTHROPIC_API_KEY)
.debugLogging(true)
.config { copy(systemPrompt = "你是一个简洁的语音助手。") }
.build()
val session: VoiceAISession = sdk.createSession()
session.start()
UI 层也是开箱即用:VoiceSessionPermissionGate 自动处理麦克风权限申请,VoiceButton 提供按住说话的按钮,ConversationView 显示对话历史,WaveformVisualizer 实时展示音频波形,LiveCaptionBanner 实时显示语音识别结果。开发者基本不需要写 UI 代码,就能获得一套完整的语音 AI 界面。
从 build.gradle.kts 可以看到项目的技术栈:
从测试覆盖率工具 Kover、MockK 单元测试、Espresso UI 测试的配置来看,这是一个工程品质较高的项目,测试体系建设完整。minSdk 设为 24(Android 7.0),覆盖了绝大多数活跃设备。
硬币的另一面也需要正视:
移动端语音 AI 的工程复杂度一直是阻碍 AI 应用落地的拦路虎。Android Voice AI SDK 的出现,降低了这个门槛——它不仅是一个 SDK,更代表了一种可插拔 AI 引擎架构的设计思路。在手机 App、智能车载、可穿戴设备等移动场景,这类架构的价值会越来越显著。
目前仓库获得了 2,576 颗星,11 个 topic 标签,活跃度高,是 Android 平台上语音 AI SDK 领域值得关注的项目。