통화 흐름을 준비한다는 것은 대본을 쓰는 일이 아닙니다. 어떤 대화가 오갈지는 상대가 정하고, 우리가 정할 수 있는 것은 그 대화를 받아내는 방식입니다. 무엇을 먼저 물을지, 상대가 말을 멈췄을 때 얼마나 기다릴지, 확실하지 않을 때 무엇을 하지 않을지 — 준비란 주로 이런 것들입니다.
이 글은 보이스 엔진이 실제로 하는 일을 전제로 씁니다. 파이프라인은 한국어를 우선으로 튜닝되어 있고, 브라우저와 모바일이 오늘 라이브인 전송이며, 전화망은 구축되어 키로 잠겨 있습니다. 준비 단계에서 이 경계를 먼저 확인해 두면 나중에 흐름을 다시 짜지 않아도 됩니다.
우리가 정합니다
무엇을 먼저 묻는지, 어디까지 기다리는지, 어디서 사람에게 넘기는지
상대가 정합니다
얼마나 말하는지, 어떤 순서로 말하는지, 언제 끼어드는지
통화가 시작되기 전에
통화가 열리기 전에 이미 정해져 있는 것이 있습니다. 인사말은 시작 시점에 미리 합성해 둡니다. 통화가 연결된 직후가 가장 긴 침묵이 생기기 쉬운 순간이고, 그 자리에 합성을 기다리는 시간을 두면 상대는 아무 일도 일어나지 않는다고 느낍니다.
전송도 이 단계에서 결정됩니다. 브라우저에서는 WebRTC로, 모바일에서는 앱 클라이언트로 연결됩니다. 전화망 경로는 아키텍처가 구축되어 있지만 키로 잠겨 있어 배포 단위로 연동합니다 — 내일 당장 전화를 걸 수 있다는 인상을 주기보다 이 사실을 그대로 말씀드립니다.
인사말은 시작 시점에 미리 합성해 두고, 도구 호출이 길어지면 한국어 필러 오디오가 이어받습니다 — 기다림을 공학적으로 없앱니다.
지연 시간 엔지니어링 — 통화가 열리는 순간과 도구 호출 사이의 침묵
대화의 모양 정하기
대화의 모양은 질문 목록이 아니라 타이밍으로 결정됩니다. 같은 질문도 상대가 말을 마치기 전에 던지면 끊는 것이 되고, 너무 늦게 던지면 통화가 비어 버립니다.
어디까지 기다릴 것인가
턴테이킹은 한국어를 기준으로 튜닝되어 있습니다. 0.2초 Silero 음성 활동 감지 기반 종료에 맞장구 처리를 더해, 듣는 사람의 “네”나 “음”을 말이 끝난 신호로 처리하지 않습니다. 한국어 대화에서 맞장구는 발화의 종료가 아니라 계속하라는 신호에 가깝기 때문입니다.
끼어들기도 같은 층에서 다룹니다. 상대가 실제로 말을 시작하면 합성을 문장 중간에 멈추고, 단순한 호응이면 계속합니다. 이 구분이 없으면 에이전트는 둘 중 하나를 항상 잘못합니다 — 사람 말을 자르거나, 사람이 끼어들었는데도 계속 말하거나.
침묵을 어떻게 다룰 것인가
도구 호출이 약 0.8초를 넘기면 한국어 필러 음성이 그 사이를 메웁니다. 통화가 무음으로 비지 않게 하는 것이 목적이며, 시간을 버는 것이 아니라 상대가 통화가 끊겼다고 판단하지 않게 하는 것이 목적입니다.
전송
브라우저 WebRTC 또는 모바일 클라이언트가 연결됩니다
음성 인식
벤더 모델을 오케스트레이션해 말을 텍스트로 옮깁니다
한국어 튜닝
턴 감지, 맞장구 처리, 텍스트 정규화가 실행됩니다
언어 모델
벤더 언어 모델이 응답을 만듭니다
음성 합성
공급자 간 고정형 페일오버 위에서 합성합니다

사람에게 넘기는 지점
준비 단계에서 가장 자주 빠뜨리는 것이 이것입니다. 에이전트가 어디까지 하고 어디서 멈추는지를 정하지 않으면, 멈춰야 할 자리에서 계속 말하게 됩니다.
- 리스크 스코어링이 확인이 필요하다고 표시한 지점.
- 출력 가드레일이 응답을 통과시키지 않은 지점.
- 상대가 명시적으로 사람을 찾는 지점.
- 확인되지 않은 상태로 판단해야 하는 지점 — 이때는 페일클로즈가 기본입니다. 안전 설계에서 이 규칙이 어떻게 강제되는지 볼 수 있습니다.
보이스 에이전트는 응급 서비스가 아니며 응급 상황에서 의존해서는 안 됩니다. 응급 상황에서는 화재·구조·구급은 119, 범죄 신고는 112로 연락해야 합니다. 통화 흐름에는 이 경로가 반드시 들어가야 합니다.
시작 전 점검 목록
아래 다섯 가지는 흐름을 다시 짜게 만드는 문제 대부분을 통화 전에 드러냅니다.
- 어떤 전송으로 연결되는지 정해져 있습니까 — 브라우저, 모바일, 아니면 배포 단위 전화망 연동입니까?
- 상대가 말을 멈췄을 때 기다리는 시간이 한국어 대화 기준으로 맞춰져 있습니까?
- 도구 호출이 길어질 때 무엇이 그 침묵을 메웁니까?
- 사람에게 넘기는 조건이 목록으로 적혀 있습니까?
- 통화 이후에 남는 처리가 운영 콘솔에서 실제로 마무리됩니까?
이어서 볼 것
통화가 끝난 뒤의 처리와, 기능을 단계적으로 여는 방식으로 이어집니다.