서울의 공급업체나 상파울루의 고객과 화상 통화를 하면서, 바로 옆 방에 있는 동료에게 말하듯 자연스럽게 대화하는 모습을 상상해 보십시오. 음소거 상태로 대기 중인 통역사도, 채팅창에 글자를 입력하느라 키보드 앞에 구부정하게 앉아 있는 사람도 없습니다. 실시간 AI 음성 번역이 지금 바로 이 일을 가능하게 만들고 있습니다. 이는 인간의 연결을 대체하는 것이 아니라, 사람 사이를 가로막는 마찰을 제거하는 것입니다. 하지만 실제로 자연스러운 대화처럼 느껴지는 시스템을 구축하는 것은 진정으로 어려운 일입니다. 단순히 단어를 변환하는 것이 아니라, 소프트웨어 내부에서 인간의 말하기 흐름을 재구성하는 것이기 때문입니다.
파이프라인의 5가지 계층
제대로 작동하는 시스템은 다섯 가지의 뚜렷한 부분으로 나뉩니다. 이 중 하나라도 건너뛰거나 약화시키면 전체적인 환상은 깨지고 맙니다.
**Voice Communication Layer(음성 통신 계층)**는 토대입니다. 마이크 캡처, 노이즈 억제, 에코 캔슬링, 인터넷을 통한 패킷 전송을 담당합니다. 디지털 전화선이라고 생각하면 됩니다. 이 계층에서 패킷이 손실되거나 지터(jitter)가 발생하면, 나머지 파이프라인은 쓰레기 데이터를 처리하게 됩니다. 대부분의 팀은 WebRTC를 사용하는데, 이는 P2P(peer-to-peer) 연결을 처리하고 내장된 음향 보호 기능을 갖추고 있기 때문입니다.
다음은 **Speech-to-Text (STT)**입니다. 들어오는 소리를 가능한 한 빨리 텍스트로 변환해야 합니다. 스트리밍 STT 엔진은 침묵이 생길 때까지 기다리지 않습니다. 음절이 도착하는 대로 부분적인 전사(transcript)를 내보냅니다. 이러한 동작은 필수적입니다. 만약 STT 모듈이 일시 정지가 들릴 때까지 버퍼링을 한다면, 이미 소중한 밀리초(ms)를 낭비한 셈입니다. 최신 스트리밍 구현 방식은 들어오는 오디오를 지속적으로 처리하며, 더 많은 문맥이 들어옴에 따라 추측 내용을 수정합니다.
**Machine Translation (MT)**는 중간에 위치합니다. 원문 텍스트를 가져와 대상 언어로 다시 작성합니다. 초기 시스템은 구절을 맞바꾸는 수준에 불과했습니다. 현재의 트랜스포머(transformer) 기반 모델은 구문과 장거리 의존성(long-range dependencies)을 훨씬 더 잘 처리하지만, 여전히 세심한 통합이 필요합니다. 화자가 생각을 마치기 전에 문장 파편을 번역하기 시작할 수 있도록 스트리밍 입력을 수용하는 MT 모듈이 필요합니다.
그다음은 **Text-to-Speech (TTS)**입니다. 여기서 시스템은 자신의 목소리를 찾게 됩니다. 과거의 연결식(concatenative) TTS는 고속도로 출구를 안내하는 GPS처럼 들렸습니다. 신경망(Neural) TTS 모델은 스펙트로그램(spectrogram)이나 원시 파형(raw waveform)을 직접 예측함으로써 판도를 바꾸었습니다. 이 모델들은 고저가 있고 호흡이 느껴지는 목소리를 생성합니다. 또한 어느 정도의 감정적 색채를 유지할 수 있는데, 이는 매우 중요합니다. 로봇 같은 단조로운 말투로 전달되는 무미건조한 사과는 의도치 않게 비꼬는 것처럼 들릴 수 있기 때문입니다.
마지막으로, Audio Streaming 계층은 번역된 음성을 청취자에게 다시 전달합니다. 여기서도 타이밍이 중요합니다. 합성된 오디오는 네트워크 타이밍과 일치해야 합니다. 너무 빨리 도착하여 에코를 만들거나, 너무 늦게 도착하여 청취자를 침묵 속에 방치해서는 안 됩니다.
지연 시간 문제
지연 시간(Latency)은 가장 큰 적입니다. 인간의 대화는 아주 짧은 간격만을 허용합니다. 시스템이 번역을 시작하기 전에 사용자가 문장 전체를 마칠 때까지 기다린다면, 상호작용은 느리고 끊기는 느낌을 줍니다. 사람들은 서로 말을 가로채기 시작하거나, 더 나쁘게는 무전기 대화처럼 딱딱한 리듬에 빠지게 됩니다. 목표는 엔드 투 엔드(end-to-end) 총 지연 시간을 1초 미만으로 유지하는 것이어야 합니다.
이 목표를 달성하려면 오디오를 작은 청크(chunk) 단위로 처리해야 합니다. 청크 크기를 20밀리초에서 100밀리초 사이로 유지하십시오. 20밀리초는 대략 단일 자음 소리의 지속 시간과 비슷합니다. 100밀리초는 약 한 음절 반 정도를 담습니다. 이러한 청크를 스트리밍 파이프라인에 공급하여 STT, 번역, TTS가 모두 부분적인 정보를 바탕으로 작동하게 해야 합니다. 그 어떤 것도 문장의 끝을 기다려서는 안 됩니다.
모든 단계에서 스트리밍 오디오 처리를 사용하십시오. 이는 STT 엔진이 부분적인 전사를 지속적으로 내보내고, MT 엔진은 일관된 절(clause)을 형성할 만큼 충분한 단어를 받는 즉시 파편을 번역하며, TTS 엔진은 문장의 후반부가 아직 디코딩되는 동안 문장의 전반부를 말하기 시작한다는 것을 의미합니다.
1초 미만의 지연 시간을 달성하려면 캡처, 인코딩, 전송, 큐(queue), 처리, 합성, 재생에 이르는 모든 단계(hop)에서 엄격한 관리가 필요합니다. 각 단계에서 불필요한 버퍼링을 제거하십시오. 예를 들어, 꼭 필요한 경우가 아니라면 0.5초의 미리 보기(lookahead)가 필요한 노이즈 제거 알고리즘을 실행하는 것을 피하십시오. 원시 PCM 대신 Opus와 같은 효율적인 압축 프로토콜을 사용하십시오. 네트워크 왕복 시간(round trip)을 짧게 유지할 수 있도록 두 통화자 모두에게 지리적으로 가까운 에지(edge) 서버에서 추론(inference)을 실행하십시오.
AI 모델이 여전히 어려움을 겪는 부분
AI는 기존의 복사-붙여넣기 방식의 번역기들이 직면할 필요가 없었던 특유의 장애물들을 가져옵니다.
문맥 파악은 정말 어렵습니다. 영어에서 'duck'이라는 단어는 동물일 수도 있고, 머리를 숙인다는 의미의 동사일 수도 있으며, 특정 방언에서는 애칭으로 쓰이기도 합니다. 단어를 고립된 상태로 보는 엔진은 잘못된 추측을 할 수 있습니다. 스트리밍 증폭(Streaming amplification)은 시스템이 전체 문장을 통해 의미가 명확해지기 전에 단어를 확정해야 하므로 이를 더욱 어렵게 만듭니다. 일부 팀은 STT 엔진에 작은 롤백 윈도우(rollback window)를 구축하여, 나중에 들리는 오디오가 해석을 바꿀 경우 전사 내용을 수정할 수 있도록 대응합니다.
음성의 자연스러움은 대부분의 엔지니어가 예상하는 것보다 훨씬 중요합니다. 사람들은 로봇 같은 소리를 싫어합니다. 신경망 TTS 모델은 인간의 말하기에서 운율(prosody) 패턴을 복제하여 목소리에 감정을 유지합니다. 원래 화자가 흥분하거나 걱정하는 것처럼 들린다면, 번역된 출력물도 모든 문장을 일기예보처럼 전달하기보다는 그 에너지를 어느 정도 담아내야 합니다. 소스 오디오의 문장 부호 단서나 억양 마커를 TTS 모듈로 전달하면 이러한 인간적인 질감을 보존하는 데 도움이 됩니다.
대화는 무질서합니다. 사람들은 서로 말을 끊고, 말을 되돌리고, "어..."라고 말하며, 끝내지 못할 문장을 시작하기도 합니다. 시스템이 이러한 중단을 지능적으로 처리하려면 VAD(Voice Activity Detection)가 필요합니다. 좋은 VAD는 실제 음성과 배경 소음을 구분할 뿐만 아니라, 발화 중의 짧은 일시 정지와 실제 발화의 종료를 구분합니다. VAD가 너무 민감하면 답변의 시작 부분이 잘려 나갑니다. 반대로 너무 신중하면 침묵을 번역 엔진으로 보내 컴퓨팅 자원을 낭비하고 흐름에 이상한 공백을 만듭니다.
확장성 및 보안
첫 설계 단계부터 확장성을 고려하여 구축하십시오. 한 번의 통화를 매끄럽게 번역하는 모놀리스(Monolith) 구조는 수천 개의 동시 대화 부하를 견디지 못하고 무너질 것입니다. 각 단계를 독립적으로 확장할 수 있도록 마이크로서비스를 사용하십시오. 특정 언어가 다른 언어보다 더 많은 음성학적 복잡성을 요구하여 TTS 큐가 밀린다면, STT 클러스터를 건드리지 않고도 더 많은 TTS 워커를 실행할 수 있습니다. MT 서비스가 특정 언어 쌍에서 과부하가 걸린다면, 해당 컴포넌트만 격리하여 확장할 수 있습니다.
보안은 타협할 수 없는 요소입니다. 음성 데이터는 생체 정보이며 매우 개인적인 정보입니다. 전송 중인 원시 오디오를 보호하기 위해 종단간 암호화(end-to-end encryption)를 사용하십시오. 모델 개선을 위한 명시적인 사용자 동의와 같이 구체적이고 공개된 이유가 없는 한 원시 음성 데이터를 저장하지 마십시오. 설령 저장하더라도 암호화하여 저장하고 엄격한 일정에 따라 삭제하십시오. 통화 내용을 유출하거나 몰래 대화를 보관하는 음성 번역 시스템은 사용자의 신뢰를 영구적으로 저버리게 됩니다.
구축 시작하기
개발자들은 이제 몇 년 전만 해도 찾기 불가능했던 오픈 소스 STT 모델, 클라우드 기반 MT API, 그리고 사전 학습된 신경망 TTS 체크포인트에 접근할 수 있습니다. 필요한 조각들은 이미 준비되어 있습니다. 아키텍처도 이해되었습니다.
작게 시작하십시오. 마이크 오디오 2초 분량을 스트리밍 STT 엔진으로 흘려보내 보십시오.
