pile·
AI / ML·twilio-engTwilio Engineering·

Node.js로 Twilio Conversation Relay 기반 AI 음성 에이전트 구축하기

Twilio Conversation Relay를 사용해 Node.js로 실시간 AI 음성 에이전트를 구축하는 튜토리얼이다. WebSocket으로 발신자 음성을 STT(Deepgram Flux)로 전사하고 OpenAI로 응답을 생성한 뒤 TTS(ElevenLabs)로 재생하는 전체 파이프라인을 Node.js 구현으로 다룬다. 가상 항공사 예제로 비행 상태 조회 등 OpenAI function calling까지 구현한다.

핵심 포인트
  • Conversation Relay는 STT-WebSocket-TTS 음성 파이프라인 전체를 추상화해 Node.js 개발자가 AI 로직에 집중할 수 있게 한다.
  • ws 라이브러리 또는 Express + ws로 WebSocket 서버를 구성하고 Conversation Relay와 실시간 메시지를 교환한다.
  • Deepgram nova-3-general(Flux)으로 STT를 처리해 발화 종료 감지 지연을 200~600ms 줄이고 false interruption을 약 30% 감소시킨다.
  • OpenAI streaming API와 function calling을 조합해 외부 데이터 조회 후 자연스럽게 응답을 이어가는 도구 호출 흐름을 구현한다.
  • 비동기 이벤트 기반 Node.js 특성이 실시간 음성 스트리밍 파이프라인에 적합하다.
상세 정리
  • 아키텍처 흐름: 발신자 전화 → Twilio TwiML 요청 → 서버가 ConversationRelay 동사 반환 → WebSocket 연결 → STT 전사 → OpenAI 추론 → TTS 재생.
  • 필수 스택: Node.js 18+, Express, ws(WebSocket), openai npm 패키지, Twilio Node.js 헬퍼, ngrok.
  • TwiML 설정: Express 라우트에서 ConversationRelay 동사를 반환하며 domain, welcomeGreeting, STT/TTS 제공자를 지정한다.
  • WebSocket 이벤트: message 이벤트에서 setup/prompt/interrupt/error 메시지 유형을 파싱하고 OpenAI 스트리밍 응답을 토큰 단위로 전달한다.
  • 음성 최적화 프롬프트: 마크다운/이모지 금지, 숫자 철자 표기, 응답 2~3문장 제한으로 TTS 품질을 높인다.
  • Conversation Relay 주요 속성: ttsProvider=ElevenLabs, transcriptionProvider=Deepgram, speechModel=nova-3-general, eotThreshold=0.8, ignoreBackchannel=true.
  • 도구 호출: OpenAI finish_reason=tool_calls 시 함수 실행 후 결과로 두 번째 스트림 호출을 수행해 자연스러운 응답을 완성한다.
  • 성능: 응답 지연 중앙값 0.5초 미만, Deepgram Flux로 false interruption 약 30% 감소. PHP, Python, C# 버전도 별도 제공된다.
왜 읽나Node.js 스택으로 실시간 AI 음성 에이전트를 구축하려는 개발자에게 STT-WebSocket-LLM-TTS 전체 파이프라인을 따라갈 수 있는 구현 레퍼런스다.
twilio-eng
Twilio Engineering 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. AI / ML·AWS KoreaAWS Korea Tech·

    1시간 대화로 만드는 Amazon Connect Customer AI Agent [AICC Builder 시리즈 #1]

    Amazon Connect Customer AI Agent를 1시간 내에 구축할 수 있게 해주는 오픈소스 샘플 앱 AICC Builder를 다룬다. 요구사항 인터뷰를 통해 Lambda 함수, OpenAPI 명세, AI 프롬프트, Contact Flow JSON, CDK 인프라 코드, FAQ/지식베이스 총 6가지 배포 에셋을 자동 생성한다. 코드 한 줄 없이 전화받는 PoC까지 완성하는 것이 핵심 목표다.

    #mcp#voice-ai#bedrock+2
  2. AI / ML·twilio-engTwilio Engineering·

    PHP에서 Conversation Relay 사용 시 배경 소음 처리 방법

    Twilio Conversation Relay를 PHP로 구현할 때 배경 소음이 STT(음성→텍스트) 정확도를 저하시키는 문제를 다룬다. 음성 AI는 STT → LLM → TTS 순차 파이프라인이라 전사 오류가 전체 응답 품질을 망친다. Nova-3 모델 설정 튜닝과 Flux 모델 전환 두 가지 해결책을 실측 테스트 결과와 함께 제시한다.

    #voice-ai#stt#deepgram+2