项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2579
使用教程
⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。
⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。
环境要求
- Kotlin 编写的 Android 应用工程(UI 基于 Jetpack Compose)
- 已接入 Hilt 依赖注入,可标注 @HiltAndroidApp 与 @AndroidEntryPoint
- 可用的 Anthropic API Key
- 设备麦克风与扬声器,用于音频采集与语音播放
安装与启动步骤
-
1确认工程前置条件
README 只给出 Hilt 配置与配置项说明,未提供 Gradle 依赖坐标,需先到仓库或官网确认引入方式再动手。
-
2开启 Hilt 应用入口
在自定义 Application 类上加 @HiltAndroidApp;这是 README Quick Start 中明确给出的 Hilt setup 步骤。
@HiltAndroidApp class MyApp : Application() -
3标记 Activity 入口
在承载语音交互界面的 Activity 上加 @AndroidEntryPoint,Hilt 才能完成注入;README 示例为 ComponentActivity 子类。
@AndroidEntryPoint class MainActivity : ComponentActivity() { ... } -
4覆盖 VoiceAIConfig
把 config { } 块传给 VoiceAISDK.Builder 覆盖默认值,anthropicApiKey 为必填;参考 README 配置表填写其他字段。
config { anthropicApiKey = "sk-ant-xxxxxxxx" aiModel = "claude-3-5-sonnet-20241022" }
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
anthropicApiKey | 是 | Anthropic API Key,所有 AI 轮次使用;禁止硬编码 | sk-ant-xxxxxxxx |
aiModel | 否 | 用于全部对话轮次的 Claude 模型 ID | claude-3-5-sonnet-20241022 |
systemPrompt | 否 | 附加到每次会话前的系统指令 | You are a helpful voice assistant… |
inputMode | 否 | HANDS_FREE 开启 VAD 免提;PUSH_TO_TALK 按住才录音 | HANDS_FREE |
piiRedaction | 否 | 为 true 时在发送给 AI 前抹去电话、邮箱、卡号 | true |
emotionDetectionEnabled | 否 | 开启语音情绪识别,需用户同意并设置 emotionConsentRationale | false |
如何确认成功
运行应用并授予麦克风权限,对设备说一句话;若能听到 TTS 语音回复,说明 VAD→STT→Claude→TTS 链路已打通。
常见问题
Q:Anthropic API Key 可以直接写进代码吗?
A:不可以。README 明确要求绝不硬编码,应从 BuildConfig 或加密存储中读取。
Q:HANDS_FREE 与 PUSH_TO_TALK 有什么区别?
A:HANDS_FREE 会激活 VAD 自动检测说话,PUSH_TO_TALK 只在按住按钮期间录音。
Q:怎样避免把敏感信息发给 AI?
A:把 piiRedaction 设为 true,SDK 会在转写文本发往 Claude 前移除电话号、邮箱和信用卡号。
Q:为什么一轮识别结束得比较慢?
A:由 silenceTimeoutMs 控制,默认 1200 毫秒,指说话后静音多久才结束该轮 STT。
注意事项
- README 的 Quick Start 只展示了 Step 2(Hilt setup),缺少 Step 1 的依赖引入说明,请以仓库和官网文档为准。
- 配置表字段均属于 VoiceAIConfig,通过传给 VoiceAISDK.Builder 的 config { } 块覆盖默认值。
- 启用 emotionDetectionEnabled 必须先取得用户同意并填写 emotionConsentRationale。
- certificatePins 只接受 SHA-256 证书指纹,用于 OkHttp 客户端的证书固定。
核心亮点
- 提供完整的语音对话流水线,集成简单,可快速上线
- 基于 MVVM 架构,代码结构清晰,易于维护和扩展
- 支持自定义语音识别和对话逻辑,灵活适配业务需求
不足之处
- 文档/社区待观察
- 可能依赖特定语音服务,对离线场景支持有限
适用场景
- 智能家居控制应用
- 车载语音助手
- 无障碍辅助应用
替代项目
Kaldi Android、Picovoice、Dialogflow Android SDK
上一篇:WhisperLive
下一篇:AriaType
同类项目推荐
whisper-timestamped
开源
给Whisper识别结果加上精准词级时间戳和置信度
Multilingual Automatic Speech Recognition with word-level timestamps and confidence
whisper
开源
音频丢进去,多语言文字直接出来
Robust Speech Recognition via Large-Scale Weak Supervision
typeflux
开源
按住热键说话,松开就把文字打进当前应用
Typeflux is a macOS menu bar voice input tool built with Swift. It is designed for a···
Kaze
开源
按住说话,松手出字,全程本地不联网
Local speech to text app - Talk instead of typing.
DeLive
开源
抓系统声音实时出字幕,转完自动生成摘要和思维导图
System audio capture + multi-provider ASR + local-first AI review workspace. Floatin···
voice-quickstart-android
开源
跑通安卓实时语音通话的官方示例起点
Quickstart app for the Voice Android SDK
petal
开源
菜单栏一点,本地把音频转成文字
Petal is a native macOS menu bar app for fast, local-first audio transcription.
qwen-scribe
开源
Mac 上离线语音转文字,说完即出字,音频不出本机
Private, local transcription and system-wide dictation for Apple Silicon.
Easy-Voice-Toolkit
开源
一句话搞定语音识别、转写和去噪,小白也能上手
A user-friendly toolkit for voice recgonition/transcription/conversion etc. | 简单易···
