BLOG · 블로그

팀벨 블로그

업무를 끝내는 AI,
팀벨이 만드는 제품과 기술, 도입 사례를 가장 먼저 전합니다.

블로그› 테크› 700ms의 벽, 왜 AI 상담은 어색하게 느껴질까?

700ms의 벽, 왜 AI 상담은 어색하게 느껴질까?

응답이 1초를 넘는 순간, 대화라는 착각은 깨집니다. cxVisor가 실시간 음성 상담에서 지연시간을 다루는 방식을 정리했어요.

< 1.0s
사람이 말하고 AI가 답하기까지, 왕복 목표 시간

사람의 뇌는 400ms 이상의 침묵을 이상하게 느낀다

전화 통화의 자연스러움을 규정하는 국제 표준이 있어요. 국제전기통신연합(ITU-T)이 정한 G.114는 한쪽에서 말한 소리가 상대방 귀에 도달하기까지의 지연시간(일방향 전송 지연) 기준을 제시합니다. 1993년 처음 제정된 이후 여러 차례 개정을 거친, 통신 업계에서 가장 널리 인용되는 지연시간 표준이에요.

150ms
이하면 대부분의 서비스에서 문제없음 (ITU-T G.114)
400ms
초과 시 일반적으로 품질 저하가 뚜렷해짐 (ITU-T G.114)
100ms
바지인(barge-in, 끼어들기) 감지
실시간 음성 UX 업계 경험치

* G.114는 '일방향' 지연 기준이에요. 질문하고 답을 듣기까지의 왕복 대화라면 이 값의 대략 두 배, 즉 300ms 안팎을 체감 기준으로 보는 게 업계 통례입니다. 100ms 바지인(barge-in) 기준은 특정 ITU 표준이 아니라 여러 음성 AI 업체가 실사용 테스트를 통해 공통적으로 수렴한 경험적 목표치예요.

이 기준을 넘기면, 기술적으로는 정상 작동해도 사람은 "이상하다"고 느껴요. 특히 왕복 지연이 길어질수록 사람의 뇌는 "상대가 대답을 안 하네, 다시 말해야겠다"고 판단해버립니다. 그 결과가 바로 사용자가 같은 말을 반복하고, AI가 그 말 위에 겹쳐서 대답하는 어색한 순간이에요. G.114 자체도 "150ms 아래에서도 일부 고도로 상호작용적인 음성·데이터 서비스는 지연의 영향을 받을 수 있다"고 명시할 만큼, 대화형 서비스는 일반 통화보다 더 엄격한 기준이 필요하다고 봅니다.

# 사람과 사람의 실제 대화는 얼마나 빠른가
> 10개 언어, 실제 대화 녹음 비교 연구
> 질문 → 답변까지 평균 텀 간격 ≈ 200ms
> 언어·문화권이 달라도 편차는 ±250ms 수준
$ 출처: Stivers et al., 2009, PNAS 106(26)

2009년 미국국립과학원회보(PNAS)에 실린 스티버스 연구팀의 비교언어학 연구는 이 감각이 통신 표준만의 이야기가 아니라는 걸 보여줘요. 서로 다른 10개 언어권의 실제 대화를 녹음해 분석한 결과, 질문을 던지고 답이 돌아오기까지의 간격은 문화권에 관계없이 평균 약 200ms였습니다. 언어와 문화는 달라도, 대화의 리듬을 조율하는 '침묵을 못 견디는 감각'은 인류 공통이라는 뜻이에요.

결국 AI 음성 상담이 자연스럽게 느껴지려면, 통신 표준이 요구하는 최소 조건(G.114)을 지키는 것을 넘어, 사람과 사람이 실제로 주고받는 대화의 리듬(≈200ms대 응답 텀)에 최대한 가깝게 다가가야 해요. cxVisor가 목표로 하는 왕복 1초 이내 응답은 이 리듬을 완전히 재현하지는 못하더라도, 최소한 "대답을 놓쳤나" 하는 의심이 들지 않는 지점을 지키기 위한 기준선입니다.

1초 안에 세 단계를 모두 마쳐야 한다

실시간 음성 AI는 듣기(STT) → 이해하고 답 만들기(LLM) → 말하기(TTS), 세 단계를 거쳐요. 각 단계가 얼마의 시간을 쓰는지 예산을 짜듯 배분하지 않으면, 어느새 합계가 3~4초를 넘어버립니다.

STT
LLM
TTS
듣기 · ≈200ms 이해·생성 · ≈500ms 말하기 · ≈100ms

세 단계를 순서대로 하나씩 끝내고 다음으로 넘어가면 이 예산은 절대 못 지켜요. 그래서 실제로는 겹쳐서 처리합니다. LLM이 답변 앞부분을 만드는 동안 TTS가 그 부분을 먼저 말하기 시작하는 식으로, 세 단계가 순차가 아니라 파이프라인처럼 흘러가야 왕복 1초 안에 들어옵니다.

세 단계 중 가장 시간을 많이 쓰는 건 LLM이에요. 이유는 서로 다른 두 시간 요소가 함께 포함되어 있기 때문입니다.

TTFT
Time To First Token
첫 글자가 나오기까지 걸리는 시간
TPOT
Time Per Output Token
이후 한 글자씩 생성되는 속도
체감 시간
= TTFT + (문장 길이 × TPOT)

답변 전체가 다 만들어질 때까지 기다렸다가 말하기 시작하면, 문장이 길수록 대기 시간이 길어져요. 그래서 실무에서는 첫 문장이나 첫 구절이 만들어지는 즉시 TTS로 넘겨서 말하기 시작하고, 뒷부분은 LLM이 계속 생성하는 동안 이어 붙이는 방식을 씁니다. STT 쪽도 마찬가지예요. 방문자가 말을 다 마칠 때까지 기다리지 않고, 침묵이 일정 시간(보통 300~500ms) 이어지면 "말이 끝났다"고 판단하고 다음 단계로 넘어가는 엔드포인팅(endpointing) 기법을 씁니다. 이 판단이 너무 성급하면 말이 끝나지 않았는데 잘라버리고, 너무 느리면 그만큼 응답이 늦어지는 트레이드오프가 있어요.

왜 "붙여서 만든" 음성봇은 느릴 수밖에 없는가

시중의 많은 음성봇은 STT·LLM·TTS를 각각 다른 회사의 API로 가져와 이어붙여요. 문제는 이 셋이 서로 다른 서버에 있다는 거예요. 한 단계가 끝날 때마다 네트워크를 타고 결과를 주고받아야 하니, 그때마다 왕복 지연이 쌓입니다.

이어붙인 API (STT·LLM·TTS 개별 벤더)3~5s
네트워크 홉마다 지연 누적
단일 파이프라인 엔진≈0.6s
단계 간 네트워크 지연 없음

이 격차가 왜 생기는지 조금 더 뜯어보면, 서로 다른 서버로 결과를 넘길 때마다 다음 세 가지 비용이 매번 추가돼요.

# 네트워크 홉 하나를 건널 때마다 붙는 비용
1 왕복 전송 시간 (RTT) — 서버가 물리적으로 멀수록 증가
2 직렬화·역직렬화 — 데이터를 포맷에 맞게 변환하는 처리 비용
3 대기열(큐) 지연 — 상대 서버가 다른 요청을 처리 중이면 대기
$ STT→LLM→TTS, 벤더가 다르면 이 비용이 최소 2번 반복

여기에 더해, 서로 다른 벤더의 API는 대부분 스트리밍이 아니라 완료 후 응답 방식이에요. STT 벤더가 "다 들었다"고 완전한 문장을 넘겨줘야 LLM 벤더가 시작하고, LLM이 답변을 통째로 완성해야 TTS 벤더가 시작하는 식이면, 앞서 설명한 겹쳐 처리(파이프라이닝) 자체가 불가능해져요. 세 단계가 순수하게 순차적으로 더해지니 3~5초가 나오는 겁니다.

단계 사이의 네트워크 이동이 없는 구조일수록 이 격차를 줄일 수 있어요. 팀벨의 실시간 음성 에이전트 'Brain'이 STT·LLM·TTS를 하나의 엔진으로 묶어 약 600ms 왕복 응답을 내세우는 것도 같은 이유입니다. 단계 사이의 이동 비용 자체를 없애고, 각 단계가 서로의 중간 결과를 스트리밍으로 주고받을 수 있게 만드는 접근이에요.

AI가 말하는 중에 끼어들어도 자연스러워야 한다

사람의 대화는 100% 순서대로 진행되지 않아요. 상대가 말하는 도중에 "아 잠깐만요" 하고 끼어드는 게 자연스러운 대화의 일부죠. AI가 이걸 못 받아주면, 방문자는 로봇과 얘기하고 있다는 걸 곧바로 눈치챕니다.

> AI가 응답을 말하는 중...
> 방문자가 새로운 발화 시작 감지 (<100ms)
> TTS 재생 즉시 중단
> 새 발화를 컨텍스트에 병합
> 응답 재생성 → 이어서 대화

이 흐름이 100ms 안에 처리되지 않으면, AI는 방문자의 말을 무시하고 계속 떠들거나, 뒤늦게 멈추면서 대화가 툭툭 끊기는 느낌을 줘요. 바지인(barge-in) 처리는 지연시간 최적화 중에서도 가장 체감 효과가 큰 부분입니다.

바지인(barge-in)이 기술적으로 까다로운 진짜 이유는 따로 있어요. 방문자의 마이크는 방문자의 목소리만 듣는 게 아니라, 스피커에서 나오는 AI의 목소리까지 함께 주워 담아요. 이 상태에서 "지금 들리는 소리가 방문자가 새로 말을 시작한 건지, 아니면 스피커에서 나온 AI 목소리가 마이크에 다시 들어온 것뿐인지"를 구분하지 못하면, AI가 자기 말소리에 스스로 끼어들어 멈추는 오작동이 생겨요.

VAD
Voice Activity Detection
사람 목소리인지 잡음인지 실시간 판별
AEC
Acoustic Echo Cancellation
스피커로 나간 AI 목소리를 마이크 입력에서 제거
디바운스
순간적인 헛기침·잡음에 반응하지 않도록 최소 지속시간 확인

이 세 가지가 함께 작동해야 "진짜 끼어든 것"과 "그냥 잡음이거나 AI 목소리의 되울림"을 구분할 수 있어요. 너무 민감하면 방문자가 헛기침만 해도 AI가 계속 멈추고, 너무 둔감하면 실제로 끼어들었는데도 AI가 계속 말해서 대화가 겹치는 문제가 생깁니다.

1초를 지키기 위한 엔지니어링 체크리스트

지연시간을 줄이는 작업은 한 가지 큰 기술이 아니라, 자잘한 최적화가 쌓여서 만들어져요.

✓ 스트리밍 STT — 문장이 끝나기 전부터 인식 시작
✓ 스트리밍 TTS — 문장 앞부분부터 먼저 발화
✓ 백엔드 호출 병렬화 — CRM 조회 등을 동시에 처리
✓ 자주 쓰는 데이터 캐싱 — 반복 조회 지연 제거
✓ 단계별 지연시간 상시 모니터링 — P95 기준 추적

각 항목이 실제로 무엇을 의미하는지 조금 더 풀어보면:

청크 분할
문장을 통째로가 아니라
구(句) 단위로 잘라 순차 처리
병렬 호출
CRM 조회·지식 검색을
LLM 생성과 동시에 실행
P95 기준
평균이 아니라
'느린 상위 5%'를 기준으로 관리

평균이 아니라 P95를 보는 이유도 짚을 만해요. 평균 응답속도가 아무리 빨라도, 100명 중 5명이 3초씩 기다린다면 그 5명에게는 서비스가 "느리다"로 기억돼요. 그래서 지연시간을 관리할 때는 평균값보다 P95(전체 요청 중 느린 쪽 5%가 걸리는 시간), P99(가장 느린 1%) 같은 지표를 함께 추적하는 게 실무에서는 훨씬 중요합니다. 이런 자잘한 최적화들이 쌓여야, 어쩌다 한 번 빠른 게 아니라 열 번 중 아홉 번 이상 안정적으로 1초 안에 들어오는 응답을 만들 수 있어요.

지연시간은 결국 신뢰의 문제예요.
응답이 늦을수록 방문자는 "이게 진짜 도와줄 수 있나" 의심하기 시작합니다.

1초 안에 들어오는 응답은 단순한 기술 스펙이 아니라, 방문자가 AI 상담을 사람과의 대화처럼 느끼게 만드는 최소 조건이에요. cxVisor는 이 700ms의 벽을 넘기 위해 듣기·이해·말하기 세 단계를 하나의 파이프라인으로 설계했습니다.

팀벨의 다음 소식이 궁금하다면

제품 도입·협업·취재 문의를 남겨주세요.