pile·
AI / ML·twilio-engTwilio Engineering·

C#으로 Twilio Conversation Relay 기반 AI 음성 에이전트 구축하기

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

핵심 포인트
  • Conversation Relay는 STT-WebSocket-TTS 음성 파이프라인 전체를 추상화해 C# 개발자가 AI 로직에 집중할 수 있게 한다.
  • .NET의 WebSocket API로 Conversation Relay와 실시간으로 연결하고 setup/prompt/interrupt/error 메시지 유형을 처리한다.
  • Deepgram nova-3-general(Flux)으로 STT를 처리해 발화 종료 감지 지연을 200~600ms 줄이고 false interruption을 약 30% 감소시킨다.
  • OpenAI function calling으로 외부 데이터 조회 후 자연스럽게 응답을 이어가는 도구 호출 흐름을 C#으로 구현한다.
  • Conversation Relay 응답 지연 중앙값 0.5초 미만. JavaScript, PHP, Python 버전도 별도 제공된다.
상세 정리
  • 아키텍처 흐름: 발신자 전화 → Twilio TwiML 요청 → 서버가 ConversationRelay 동사 반환 → WebSocket 연결 → STT 전사 → OpenAI 추론 → TTS 재생.
  • 필수 스택: .NET 8+, ASP.NET Core, OpenAI .NET 클라이언트, Twilio .NET 헬퍼, ngrok.
  • TwiML 설정: ASP.NET Core 컨트롤러에서 ConversationRelay 동사를 반환하며 domain, welcomeGreeting, STT/TTS 제공자를 지정한다.
  • Conversation Relay 주요 속성: ttsProvider=ElevenLabs, transcriptionProvider=Deepgram, speechModel=nova-3-general, eotThreshold=0.8, ignoreBackchannel=true.
  • WebSocket 핸들러: .NET WebSocket으로 실시간 연결을 유지하고 OpenAI 스트리밍 응답을 토큰 단위로 Conversation Relay에 전달한다.
  • 음성 최적화 프롬프트: 마크다운/이모지 금지, 숫자 철자 표기, 응답 2~3문장 제한으로 TTS 품질을 높인다.
  • 도구 호출: OpenAI가 tool_calls를 반환하면 C# 메서드를 실행하고 결과로 두 번째 스트림 호출을 수행해 자연스러운 응답을 완성한다.
  • 성능: 응답 지연 중앙값 0.5초 미만, Deepgram Flux로 false interruption 약 30% 감소.
왜 읽나C#/.NET 스택으로 실시간 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