pile·
AI / ML·twilio-engTwilio Engineering·

Twilio Media Streams와 NVIDIA PersonaPlex로 실시간 음성 변환 전화 구축하기

Twilio Media Streams와 NVIDIA PersonaPlex를 연결하는 Node.js 브리지 서버를 구축해 약 70ms 지연으로 실시간 음성-음성 변환 전화를 구현하는 튜토리얼이다. PersonaPlex는 full-duplex Moshi 아키텍처 기반 대화 음성 모델로, 자연스러운 턴 테이킹과 음성 클로닝을 동시에 지원한다.

핵심 포인트
  • PersonaPlex는 3개의 오디오/텍스트 스트림을 동시 처리하는 full-duplex 모델로, 캐스케이드 파이프라인(음성 커스텀)과 하이브리드 시스템 프롬프트(행동 조건)를 결합한다.
  • 브리지 서버는 Twilio의 8kHz narrow-band mulaw 스트림을 24kHz Ogg Opus로 업샘플링 후 PersonaPlex에 전달하고, 응답을 다시 8kHz로 다운샘플링한다.
  • 바이너리 WebSocket 프로토콜로 PersonaPlex와 통신하며, 타입 프리픽스(0x00 핸드셰이크 / 0x01 오디오 / 0x02 텍스트)로 프레임을 구분한다.
  • RTX 4090(24GB VRAM) 이상의 GPU가 필요하며, RunPod 기준 유휴 시 시간당 약 0.01달러 비용이 발생한다.
  • VAD(음성 활동 감지기) 튜닝 없이는 무음 구간 노이즈가 응답을 과도하게 트리거하는 문제가 있다.
상세 정리
  • 아키텍처 개요: Twilio TwiML이 WebSocket 브리지 서버를 가리키고, 서버가 Twilio와 PersonaPlex 사이에서 프록시 역할을 한다.
  • 오디오 변환: Twilio는 8kHz mulaw 포맷으로 오디오를 전송하고, 선형 보간으로 24kHz PCM으로 업샘플링 후 Ogg Opus 컨테이너에 패키징해 PersonaPlex에 보낸다.
  • PersonaPlex 바이너리 프로토콜: 타입 바이트 프리픽스(0x00 핸드셰이크 확인, 0x01 오디오 데이터, 0x02 텍스트 토큰) 방식으로 프레임을 처리한다.
  • BridgeSession: 각 통화 세션을 캡슐화하며, 음성 경로가 섞이지 않도록 파싱 상태를 추적한다.
  • PersonaPlex 모델: Helium LLM 기반 경량 모델로 응답 품질보다 실시간 처리를 우선한다.
  • GPU 요구사항: RTX 4090(24GB VRAM 최소) / vCPU 16(AMD EPYC) / 메모리 62GB. 모델 가중치 약 14GB, 초기 다운로드 5~10분 소요.
  • 배포 시 주의: Trial Twilio 계정은 사전 검증된 번호만 사용 가능. WebSocket URL에서 쿼리 파라미터가 제거되므로 TwiML Parameter 엘리먼트로 대신 전달해야 한다.
  • 비용 관리: 테스트 미사용 시 RunPod 인스턴스 종료 권장.
  • 지연: 화자 전환 지연 약 70ms로 실시간 전화 통화에 적합한 수준.
왜 읽나Twilio 전화 인프라와 GPU 기반 실시간 음성 AI를 연결하고 싶은 백엔드/AI 엔지니어에게 단계별 구현 참고자료.
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