프로젝트 목록

WIGTN CREW

WIGVO 실시간 전화 통역

웹 클라이언트와 아무 전화번호 사이를 두 개의 실시간 음성 세션으로 잇습니다. 받는 쪽은 앱도 통신사 연동도 없이 그냥 전화를 받으면 됩니다.

ACL 2026 채택
역할
릴레이 서버와 배포 인프라 담당 · 논문 공저자 (5인 중 1인)
기간
2026
사용 기술
FastAPIPython 3.12OpenAI Realtime APITwilio Media StreamsDockerCaddy
앱 / 클라이언트네이티브서버워커저장소외부
브라우저와 일반 전화 사이를 릴레이 서버가 잇습니다. 방향별로 하나씩, 두 개의 실시간 세션이 통역을 맡습니다.블록에 마우스를 올리면 연결된 흐름만 강조됩니다. 드래그로 이동, 버튼으로 확대할 수 있습니다.

개선 결과

  • 555ms

    발신자에서 수신자까지 중간 지연 · 프로덕션 실측

  • 0 / 147

    통화 중 발생한 에코 유발 번역 루프

  • $0.28

    통화 1분당 비용

01무엇인가

일반 전화망 통화에서 두 언어 사이를 양방향으로 실시간 통역하는 오픈소스 시스템입니다. 웹 클라이언트와 임의의 전화번호 사이를 두 개의 동시 음성 세션으로 연결하고, 전송은 통신 API의 미디어 스트림을 사용합니다. 받는 쪽은 앱을 설치할 필요도, 통신사와 연동할 필요도 없습니다. ACL 2026 System Demonstrations 트랙에 채택됐고 MIT 라이선스로 공개되어 있습니다.

02풀어야 했던 문제

전화망에서 양방향 통역을 하면 고유한 고장이 생깁니다. 통역된 음성이 상대 스피커로 나가고, 그 소리가 마이크로 다시 들어와 또 번역되는 에코 루프입니다. 한 번 걸리면 통화가 끝날 때까지 같은 말이 되풀이됩니다. 게다가 전화망은 대역폭이 좁고 지연에 민감해서, 흔히 쓰는 에코 제거 기법을 그대로 적용하기 어렵습니다.

03검토한 대안

에코 루프를 끊는 방법이 시스템의 정체성을 결정했습니다. 논문에서 세 갈래를 비교했습니다.

장점문제
음향 에코 제거(AEC)통화 품질 분야의 표준 기법이고 구현체가 많음전화망은 대역이 좁고 지연 변동이 커서 기준 신호 정렬이 어렵고, 새어 나간 통역 음성을 충분히 지우지 못함
단일 세션으로 양방향 처리세션 비용이 절반이고 구성이 단순함지금 들리는 음성이 상대의 발화인지 방금 내보낸 통역인지 구분하지 못해, 자기 출력을 다시 번역하는 루프를 막을 수 없음
이중 세션 + 에코 게이팅채택방향별로 세션을 분리하고 말할 차례를 판정해, 자기 출력이 되돌아오는 경로 자체를 차단세션 두 개의 상태와 비용을 관리해야 하고, 릴레이 서버가 실시간 병목이 됨

04제가 맡은 부분

릴레이 서버와 배포 인프라를 담당했습니다. 릴레이 서버는 두 음성 세션과 통신 API 미디어 스트림 사이에서 오디오를 주고받으며 에코 게이팅을 실제로 집행하는 지점입니다. 통화가 실시간으로 도는 동안 멈추거나 지연되면 안 되기 때문에, 기능을 넣는 것보다 자원과 수명주기를 정확히 관리하는 일이 대부분이었습니다.

  • 동시 통화 용량을 하나의 잠금 아래에서 관리해, 예약과 활성 상태의 합이 언제나 상한을 넘지 않도록 보장했습니다
  • 예약, 확정, 종료로 이어지는 통화 수명주기를 정리해 준비 중 실패한 통화가 자원을 붙잡고 남지 않게 했습니다
  • 오디오 라우팅과 링 버퍼, 음성 활동 감지, 끼어들기 처리 등 실시간 경로를 구성했습니다
  • 세션이 끊겼을 때 복구하는 경로와 환각 응답을 걸러내는 처리를 넣었습니다
  • 요청 속도 제한과 테넌트 인증 키 발급 등 서버 진입 지점을 정리했습니다
  • 지연과 이벤트 루프 지체를 추적하는 관측 계층을 붙여, 통화 중 병목을 사후에 확인할 수 있게 했습니다
  • Docker Compose와 Caddy 기반 배포 구성을 만들어 자동 인증서 갱신과 함께 운영했습니다

05결과

논문의 핵심 기여인 이중 세션 에코 게이팅은 결정론적 무음 주입과 에너지 기반 음성 활동 감지로 어느 쪽이 말할 차례인지를 판정해, 자기 출력이 되돌아오는 경로를 막습니다. 프로덕션 배포에서 발신자에서 수신자까지 중간 지연 555밀리초, 147통 통화 중 에코 루프 0건, 통화 1분당 0.28달러를 기록했고 한국어와 영어 통화 155통으로 평가했으며, 대상 언어는 여기에 한정되지 않습니다. 릴레이 서버에는 47개의 테스트 파일을 두어 단위, 컴포넌트, 통합, 부하 시험을 나눠 검증하고 있습니다.

GitHub