Telnyx에서 통화 도중 언어를 전환하는 음성 에이전트를 구축했습니다
요약
Telnyx는 통화 중 사용자가 언어를 변경하면 이를 즉시 감지하여 대응하는 '코드 스위칭(Code-switching)' 음성 에이전트 구축 방법을 소개합니다. 별도의 언어 감지 로직 없이 LLM 지침과 자동 언어 감지 STT를 활용해 구현되었습니다.
핵심 포인트
- 사용자의 언어 전환을 실시간으로 감지하고 동일한 언어로 응답하는 에이전트 구현
- 애플리케이션 계층의 복잡한 라우팅 없이 LLM 지침만으로 코드 스위칭 가능
- Deepgram의 자동 언어 감지 STT와 LLM, TTS를 결합한 단일 파이프라인 활용
- 기존 통역(Interpretation) 방식과 차별화된 단일 에이전트 중심의 접근법
번역 앱은 서로 다른 언어를 사용하는 두 사람 사이를 통역합니다. 코드 스위칭 (Code-switching)은 다릅니다. 한 명의 통화자가 대화 도중에 언어를 바꾸면 에이전트가 그를 따라가는 방식입니다. 통역사도, 재시작도, 별도의 벤더도 필요 없습니다. 매 턴마다 말하는 언어를 감지하고 그에 맞춰 응답하는 단 하나의 Telnyx AI Assistant가 있을 뿐입니다.
Telnyx 코드 예제는 다음과 같습니다:
이것은 전화번호를 보여주는 간단한 브라우저 페이지가 있는 Python Flask 앱입니다. 데이터베이스도, Cloud Storage도 없습니다. 번호로 전화를 걸어 영어로 말하다가 대화 도중 스페인어로 전환하면, 에이전트가 당신을 따라옵니다.
흐름 (The Flow)
고객이 지원 라인으로 전화를 겁니다. 영어로 시작했다가, 민감한 질문을 위해 스페인어로 전환한 뒤, 다시 원래 언어로 돌아옵니다. 에이전트는 매 턴마다 사용자의 음성에서 언어를 감지하고 해당 언어로 응답합니다. 언어 선택 메뉴도, "영어를 원하시면 1번을 누르세요"와 같은 안내도 없습니다. 통화자는 그냥 말하기만 하면 됩니다.
하나의 전화번호, 하나의 AI Assistant, 다섯 가지 언어 — 영어, 스페인어, 포르투갈어, 힌디어, 그리고 만다린(Mandarin)입니다.
코드 스위칭 (Code-Switching) 작동 방식
모든 동작은 어시스턴트의 지침 (instructions) 안에 들어 있습니다. 애플리케이션 계층의 언어 감지나 라우팅, 수동적인 STT/LLM/TTS 파이프라인은 존재하지 않습니다. LLM은 다음과 같은 평이한 영어 지침을 따릅니다:
통화자의 말을 주의 깊게 들으세요. 매 턴마다 그들이 말하는 언어를 감지하세요.
통화자가 현재 사용 중인 것과 동일한 언어로 응답하세요.
통화자가 대화 도중이나 문장 중간에 언어를 바꾸면, 함께 언어를 바꾸세요.
STT (Deepgram nova-3, language: "auto" 설정)는 통화자가 말하는 어떤 언어로든 전사 (transcribe)합니다. LLM은 지침을 따릅니다. TTS (voice ultra katie)는 해당 언어로 응답을 렌더링합니다. 하나의 플랫폼, 하나의 API 키로 가능합니다.
이것이 번역과 다른 이유
기존 ai-real-time-translation-bridge-python 예제는 서로 다른 언어를 사용하는 두 통화자를 연결하고 그들 사이에서 번역을 수행합니다. 이것은 해석(interpretation)입니다. 즉, 사람 두 명, 언어 두 개, 그리고 하나의 브릿지 역할을 합니다.
반면 이 예제는 코드 스위칭(code-switching)입니다. 즉, 통화자 한 명, 여러 언어, 단 하나의 에이전트가 존재합니다. 이 에이전트는 번역을 하는 것이 아닙니다. 에이전트 그 자체입니다. 사용자가 어떤 언어를 말하든 그 언어로 응답하고, 언어가 바뀔 때 함께 전환하며,
• ai-real-time-translation-bridge-python — 두 통화자 인터프리터
• ai-language-learning-phone-tutor-python — 전화 기반 언어 튜터
• language-learning-flashcards-python — 브라우저 기반 발음 채점
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기