Kotlin으로 오픈소스 Android 음성 비서 만들기

발행: (2026년 2월 4일 오후 12:53 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

자체 AI로 Google Assistant 대체하기

홈 버튼을 길게 눌러 Google 대신 당신의 AI와 대화할 수 있다면 어떨까요? 저는 OpenClaw Assistant라는 오픈소스 Android 앱을 만들었습니다. 바로 그 기능을 수행합니다.

  • 📹 데모:
  • 🔗 GitHub:

기능

  • 🏠 시스템 어시스턴트 통합 – 홈 버튼을 길게 눌러 활성화
  • 🎤 커스텀 웨이크 워드 – “Jarvis”, “Computer”, 혹은 원하는 문구
  • 📴 오프라인 웨이크 워드 감지 – Vosk 기반, 클라우드 불필요
  • 🔊 음성 입출력 – 음성 인식 + TTS
  • 🔗 백엔드 독립형 – Ollama, OpenAI, Claude, 혹은 임의의 커스텀 API와 연결 가능

아키텍처 개요

ComponentTechnology
UIKotlin + Jetpack Compose + Material 3
System HookVoiceInteractionService
Wake WordVosk (offline)
SpeechAndroid SpeechRecognizer + TTS
NetworkOkHttp + Gson
  • 앱은 Android의 디지털 어시스턴트로 등록됩니다.
  • Vosk가 로컬에서 웨이크 워드를 청취합니다.
  • 활성화되면 음성이 텍스트로 변환되어 웹훅으로 전송됩니다.
  • 응답은 TTS를 통해 음성으로 재생됩니다.

설치

git clone https://github.com/yuga-hashimoto/OpenClawAssistant
cd OpenClawAssistant
./gradlew assembleDebug

또는 GitHub Releases 페이지에서 APK를 다운로드하세요.

웹훅 API 계약

백엔드는 POST 요청을 받아야 합니다:

POST /your-endpoint
Content-Type: application/json

{
  "message": "user's speech",
  "session_id": "..."
}

그리고 다음과 같이 응답해야 합니다:

{
  "response": "AI's reply"
}

기여

기여를 환영합니다! 이슈를 열거나 GitHub 저장소에 풀 리퀘스트를 제출해 주세요.

Back to Blog

관련 글

더 보기 »

AI가 당신에게 뺨을 때릴 때

AI가 당신을 뺨 때릴 때: Adama에서 Claude가 생성한 코드 디버깅 AI에게 복잡한 기능을 “vibe‑code”하게 맡겨본 적이 있나요? 그 결과 미묘한 버그를 디버깅하느라 몇 시간을 보내게 됩니다.