My 9-Day Journey Building a Real-Time AI Voice Agent | VoiceForBharat

개요

9일간의 프로젝트를 통해 실시간 AI 음성 에이전트 구축 여정은 단순한 STT(Speech-to-Text) 및 TTS(Text-to-Speech) 연결을 넘어선 더 깊은 복잡성을 보여주었다.

주요 내용

  • 기능 구현: 음성 대화, 사용자 정보 기억, 대화 가드레일 준수, 외부 도구 사용, 발신 전화 연결, 인간 지원 요청, 통화 분석 추적, 인간/전문가 전환 워크플로우 지원 기능을 갖춘 음성 에이전트를 구축했다.
  • 기술 스택: STT에는 Deepgram, TTS에는 Murf Falcon, 실시간 통신에는 LiveKit, 백엔드 에이전트에는 Python, 프론트엔드 및 대시보드에는 Next.js, 통화 분석에는 SQLite를 활용했다. LLM은 추론 및 응답 생성에 사용되었다.
  • 빌드 과정:
  • 1일차: 기본적인 음성 입력 및 응답 기능 구현
  • 2일차: 에이전트 역할 정의, 행동 규정 및 대화 범위 설정을 위한 가드레일 추가
  • 3일차: 연결, 청취, 발화, 통화 종료 등 다양한 대화 상태를 처리하는 프론트엔드 인터페이스 구축
  • 4일차: 사용자 정보를 기억하고 맥락에 맞는 응답을 제공하는 메모리 기능 추가
  • 5일차: 언어 모델에만 의존하지 않고 외부 정보를 활용할 수 있도록 도구 호출 기능 추가
  • 6일차: 발신 통화 및 전화 통합 작업, 에이전트가 통화를 시작할 수 있도록 함
  • 7일차: 인간 지원이 필요한 상황을 인식하고 전환하는 인간 전환 워크플로우 구현
  • 8일차: 총 통화 수, 통화 시간, 완료 통화, 인간 전환, 통화 결과 등을 모니터링하는 분석 대시보드 구축
  • 9일차: 대화가 필요할 때 적절한 전문가에게 전달될 수 있도록 전문가/전환 워크플로우 작업
  • 음성 봇 vs. 음성 에이전트: 단순 음성 봇이 사용자의 음성을 받아 응답하는 것을 넘어, AI 에이전트는 이해, 추론, 기억, 도구 사용, 행동, 인간 도움 요청 등의 능력을 갖춰 실제 AI 비서에 가까운 시스템을 구현했다.
  • 기술적 도전 과제: LiveKit 실시간 연결, API 및 환경 설정, TTS/음성 연결, SIP 및 발신 통화, 분석 API 요청, 디버깅 과정에서 이슈가 발생했으며, API 자격 증명을 소스 코드에 노출하지 않고 환경 변수에 저장하는 것의 중요성을 배웠다.
  • 학습 내용: AI 모델 외에도 API, 음성, 실시간 통신, 데이터베이스, 프론트엔드, 디버깅, 보안 등 다양한 요소가 결합되어야 하는 AI 음성 에이전트 구축의 복합성을 이해했다. AI 에이전트는 단순히 답변을 생성하는 것을 넘어 이해, 결정, 행동, 기억, 도움 요청 시점을 파악하는 능력이 중요함을 학습했다.

시사점

9일간의 프로젝트는 AI 모델만으로는 복잡한 AI 음성 에이전트를 만들 수 없으며, 여러 기술 요소의 통합과 실질적인 문제 해결 능력이 필요함을 보여준다. 이는 실제 AI 비서와 같은 시스템을 구축하기 위한 실무적 경험과 깊이 있는 이해를 제공한다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions