- 엔진 하나가 아니라 파이프라인 네 개. 음성, 채팅, 노트, 문서는 각각 고유의 엔진, 지연 시간 예산, 품질 범위로 동작하며 언어 선택기만 공유합니다.
- 역할이 다르면 엔진도 다릅니다. 음성은 프랑스에 있는 자체 엔진에서 회의실에 있는 대상 언어별로 실행되고, 문서는 DeepL의 Document API로 처리됩니다. 지원 언어는 각각 23개와 30개입니다.
- InterMIND는 회의 전체를 각 멤버의 언어로 유지합니다. 음성, 채팅, 노트, 파일 모두 해당되며, 언어 쌍별 품질은 매월 공개됩니다. 게스트는 링크로 계정 없이 무료로 참여하고, 비용은 활성 멤버에 대해서만 지불합니다.
InterMIND를 움직이는 네 가지 번역 파이프라인 들여다보기
mind.com의 예전 /product/overview/how-it-works 페이지는 여러 번의 메이저 릴리스 이전 내용입니다. 대부분의 벤더 페이지처럼 하나의 "번역 엔진"을 설명합니다. "내가 말하면" 에서 "상대가 듣는다"로 이어지는 커다란 화살표 하나였죠. 2년 전에도 이미 단순화된 그림이었고, 지금은 맞지 않습니다.
실제로 InterMIND는 서로 다른 네 개의 번역 파이프라인을 운영합니다. 각 파이프라인은 서로 다른 문제를 서로 다른 엔진, 지연 시간 예산, 품질 범위로 해결합니다. 언어 선택기는 공유하지만 엔진은 공유하지 않습니다.
이 글은 "어떻게 작동하나요?"라는 질문에 대한 새로운 답변입니다.
함께 읽어 보세요: "몇 개 언어를 지원하나요?"는 각 파이프라인이 무엇을 지원하는지(23 / 23 / 30 / 17)를 다룹니다. 이 글은 각 파이프라인이 무엇을 하는지, 그리고 왜 별개의 파이프라인인지를 다룹니다.
"모든 것을 하나의 엔진으로"라는 말이 거짓인 이유
실시간 회의 플랫폼은 동시에 최소 네 가지 일을 해야 하고, 이 일들은 서로 상충하는 방향으로 당깁니다.
- 실시간 음성: 오디오가 들어오면 화자가 아직 말하는 동안 번역된 오디오가 나갑니다. 모든 시청자가 각자의 언어로 듣습니다. 핵심 제약은 지연 시간입니다.
- 실시간 채팅 텍스트: 짧은 메시지를 빠르게 처리하며, 수정과 인용, HTML 구조를 보존해야 합니다.
- 실시간 공유 노트: 글자 단위로 함께 입력하며, 번역 후에도 목록, 제목, 체크박스 같은 구조적 계층이 유지되어야 합니다.
- 비동기 문서 파일: 채팅에 올라온 40페이지짜리 PDF 같은 파일입니다. 지연 시간 예산은 없고, 핵심 제약은 충실도입니다. 서식, 표, 페이지 번호, 글꼴이 그대로여야 합니다.
이 네 가지를 모두 처리하는 거대한 LLM 호출 하나를 만들 수도 있습니다. 우리도 시도해 봤고, 네 가지 모두 서툴렀습니다. 음성의 지연 시간 예산 때문에 모델은 생각할 시간이 없고, 문서의 충실도 예산 때문에 모델은 반드시 생각해야 합니다. 채팅 수정에는 시청자 언어로 된 diff가 필요하고, 40페이지 PDF에는 토큰 스트리밍 모델이 제공하지 못하는 서식 보존이 필요합니다.
그래서 우리는 네 개를 운영합니다. 하나씩 살펴보겠습니다.
파이프라인 1: 실시간 음성 번역
문제: 한 참가자는 프랑스어로 말합니다. 다른 참가자는 독일어로, 세 번째는 브라질 포르투갈어로, 네 번째는 일본어로 참여했습니다. 각자 화자의 말을 자기 언어로 자기 귀에 들어야 하고, 지연은 눈을 맞추며 대화할 수 있을 만큼 짧아야 합니다.
예산: 듣는 사람이 기다리는 일은 없어야 합니다. 번역된 음성이 너무 늦어져 사람들이 그 위에 말을 겹치기 시작하면, 회의는 "그냥 영어로 하자" 쪽으로 흘러갑니다.
오디오는 실제로 어떻게 이동하는가
짚고 넘어갈 점이 몇 가지 있습니다.
- ASR은 미디어 서버에서 실행됩니다. 화자의 오디오는 WebRTC를 통해 자체 엔진인 프랑스 OVH의 Mind API로 전달되고, 통화를 처리하는 바로 그 서버에서 인식됩니다. 브라우저는 오디오를 보내고 단어를 돌려받기만 합니다. 별도의 음성 벤더도, 번역을 시작하기 전의 추가 경유 구간도 없습니다. (채팅 음성 메모는 예외입니다. 이 경우 음성 텍스트 변환은 기본 AI 게이트웨이의 음성 서비스인 Azure AI Speech에서 실행됩니다.)
- 번역은 일괄 팬아웃이 아닙니다. 엔진은 시청자별이 아니라 회의실에 있는 대상 언어별로 번역합니다. 어떤 언어로의 번역은 그 언어를 쓰는 첫 번째 청취자가 번역 스트림을 요청할 때 시작됩니다. 독일어를 선택한 세 참가자는 하나의 독일어 번역을 공유하고, 아랍어로 듣는 사람이 없으면 아랍어로는 아무것도 번역되지 않습니다. 그래서 4개 언어 회의와 40개 언어 회의는 실제로 누가 참석했는지에 따라서만 비용이 달라집니다. 아무도 듣지 않는 언어로는 번역하지 않기 때문입니다.
- 합성 음성은 시청자별입니다. 각 참가자는 원래 화자의 영상과 믹싱된 자신만의 번역 오디오 트랙을 받습니다. 하나의 "번역된 회의"를 보는 것이 아니라 같은 회의를 보면서, 개인 오디오 채널만 선택한 언어로 번역되는 것입니다. 같은 방에 있는 두 사람이 각자 헤드폰을 끼고 서로 다른 언어를 들을 수 있는 이유입니다.
회의가 꼬였을 때 이것이 중요한 이유
8개 언어가 오가는 60분 통화에서는 흥미로운 방식으로 문제가 생깁니다. WebSocket이 끊기고, ASR이 고유명사를 일시적으로 잘못 전사하고, 한 참가자의 네트워크가 불안정해집니다. 위의 아키텍처 덕분에 장애를 격리할 수 있습니다. 한 시청자의 오디오가 깨져도 나머지 일곱 명에게는 영향이 없습니다. 번역 엔진은 애초에 "그 번역" 하나를 만든 것이 아니라 여덟 개를 병렬로 만들었고, 영향을 받은 하나만 복구하면 되기 때문입니다.
엔진 자체는 우리 소유이며 우리 인프라에서 호스팅됩니다. 실시간 음성을 서드파티 범용 LLM으로 보내지 않습니다. 지연 시간 예산상 그런 모델은 쓸 수 없고, 데이터 레지던시 측면에서도 이를 중요하게 여기는 규제 대상 고객에게는 맞지 않습니다.
음성 품질에 대해 공개하는 내용: /benchmark는 게시된 모든 언어 쌍에 대해 실제 운영 중인 음성 파이프라인을 FLORES-200 문장으로 매월 평가합니다. 평가자는 명시되어 있습니다(주 평가자는 Gemini 3.7 Flash, 대체 평가자는 Claude Sonnet 5). 중앙값, p10, p90, 최솟값, 최댓값, 표본 크기를 포함한 전체 분포가 페이지에 공개됩니다. 이 수치가 무엇을 측정하고 무엇을 측정하지 않는지는 방법론을 참고하세요.
파이프라인 2: 실시간 채팅 번역
문제: 회의 중의 모든 채팅 메시지를 보내는 즉시 모든 참가자에게 각자의 언어로 번역해야 합니다. 수정된 내용도 마찬가지인데, 수정은 다시 번역된 글이 아니라 수정으로 보여야 합니다.
예산: 음성보다 여유가 있습니다. 채팅 메시지가 다른 언어로 나타나기까지 잠깐 걸려도 신경 쓰는 사람은 없습니다. 사람들이 신경 쓰는 것은 번역이 정확한지, 그리고 수정 내용이 자연스러운지입니다.
채팅 파이프라인이 실제로 하는 일
각 메시지는 음성 파이프라인이 사용하는 것과 같은 번역 엔진을 거치지만, 전처리와 후처리가 다릅니다.
- HTML 구조가 보존됩니다. 채팅은 서식 있는 텍스트(문단, 목록, 인용, 굵게, 기울임)를 지원합니다. 모델에 넘기기 위해 일반 텍스트로 변환하고, 번역한 뒤, 결과를 원래 태그로 다시 감쌉니다. 모델은 HTML을 보지 않고 깔끔한 문장만 봅니다.
- 인용문은 독립적으로 번역됩니다. 메시지에 답장하며 인용하면
[QUOTE]…[/QUOTE]블록과 새 내용이 별개의 단위로 번역되므로, 모델이 둘을 혼동할 수 없습니다. - 긴 메시지는 분할됩니다. 문단 경계를 기준으로 청크당 1,000자로 나눕니다. 각 청크는 별도의 번역 호출입니다. 4,000자짜리 장문을 한 번에 모델에 넣지는 않습니다. 잘림, 문단 누락, 문장 중간 끊김 같은 실패 양상이 너무 심하기 때문입니다.
- 번역은 지연 실행됩니다. IntersectionObserver를 사용해, 메시지가 시청자의 뷰포트에 들어올 때만 번역합니다. 오래 이어진 채널에서 언어를 바꾸면 예전에는 기록에 있는 모든 번역 API 호출이 다시 실행되었지만, 이제는 그렇지 않습니다.
흥미로운 부분: diff로 보여 주는 수정
v1.2에서 다른 언어를 쓰는 시청자에게 채팅 수정이 보이는 방식을 바꿨습니다. 예전에는 누군가 메시지를 수정하면 전체를 다시 번역했고, 새로운 문단이 나타나 무엇이 바뀌었는지 직접 찾아야 했습니다.
새로운 동작은 다음과 같습니다.
- 원래 메시지는 이미 여러분의 언어로 번역되어 있습니다.
- 발신자가 수정하면 새 버전을 다시 번역합니다.
- 이전 번역과 새 번역 사이의 diff를 여러분의 언어로 계산합니다.
- 그 diff를 Git이 변경 사항을 보여 주는 것과 같은 방식으로 인라인에 표시합니다.
그래서 영어로 "review by Tuesday"가 "review by Thursday"로 바뀌면, 스페인어로 읽는 동료는 다시 읽어야 하는 번역된 문단 대신 강조 표시된 martes → jueves를 보게 됩니다.
이를 위해 채팅 파이프라인을 요청마다 번역하는 무상태 엔드포인트가 아니라, 시청자별로 상태를 가진 캐시로 다뤄야 했습니다. 문서와 음성에는 이런 구조가 필요 없지만, 채팅에는 필요합니다.
파이프라인 3: 실시간 공유 노트 번역
문제: 호스트가 공유 노트 창을 열고 입력을 시작합니다. 모든 참가자는 제목, 중첩 목록, 체크리스트, 코드 블록 같은 문서 구조를 그대로 유지한 채 자신의 언어로 노트를 글자 단위로 봅니다.
예산: 채팅과 같지만 두 가지 제약이 더 있습니다.
- 번역 대상이 번역 도중에도 바뀝니다. 호스트가 아직 입력 중입니다. 키 입력마다 "문서 전체"를 번역하는 단순한 시스템은 깜빡임을 일으키고 API 예산을 소모합니다. 우리는 문서 전체가 아니라 변경된 단위 수준에서 번역합니다.
- 구조가 유지되어야 합니다. 중첩 목록이 세 개 있는 마크다운 덩어리를 번역 모델에 맡기면, 원본처럼 보이지만 계층이 미묘하게 평평해지거나, 항목 번호가 다시 매겨지거나, 들여쓰기가 옮겨진 결과가 돌아옵니다. 그래서 모델에 전체 덩어리를 보여 주지 않습니다.
노트 파이프라인이 채팅과 다른 점
핵심은 구조 보존입니다. 문서 전체가 아니라 각 목록 항목을 독립적으로 번역합니다. 모델이 보는 것은 다음과 같습니다.
"Compliance review — Q2 deliverables"
다음과 같은 것이 아닙니다.
"# Project plan\n## Quarter\n- Compliance review — Q2 deliverables\n- Vendor scoring\n - Tier 1 vendors..."
<ul>, 제목, 들여쓰기 같은 감싸는 문서 구조는 원본 문서와 동일한 구조를 사용해 클라이언트 측에서 다시 구성하며, 각 말단 노드만 번역본으로 교체합니다. 모델은 계층을 "개선"할 기회를 얻지 못합니다.
노트도 채팅 수정과 같은 시청자별 diff 모델을 사용합니다. 호스트가 한 줄을 바꾸면 다른 언어의 시청자는 새 문단 대신 바뀐 단어가 강조 표시된 것을 봅니다.
파이프라인 4: 비동기 문서 번역
문제: 누군가 40페이지짜리 PDF, Word 문서, PowerPoint 덱, Excel 시트를 채팅에 올립니다. 각 참가자는 자신의 언어로 된 사본을 요청할 수 있습니다. 번역된 파일은 원본과 똑같아 보여야 합니다. 글꼴, 표, 페이지 번호, 머리글, 차트 위치가 모두 같아야 합니다.
예산: 실시간 제약은 없습니다. 1분도, 2분도 괜찮습니다. 제약은 충실도입니다. 번역된 PDF가 원본과 다르게 보이면 받는 사람이 신뢰하지 않습니다.
이 파이프라인이 음성과 엔진을 공유하지 않는 이유
아무리 뛰어난 범용 LLM이라도 문서의 번역된 텍스트를 돌려줄 뿐입니다. 같은 레이아웃의 번역된 PDF를 돌려주지는 못합니다. 모델에게는 "원본과 맞아야 하는 페이지 나눔"이나 "열 너비를 유지해야 하는 표 셀"이라는 개념이 없습니다.
이 영역에는 DeepL Document API를 직접 사용합니다. 이 API는 파일에서 추출한 문장이 아니라 파일 그 자체를 번역하도록 만들어졌습니다. DeepL이 처리하는 형식은 다음과 같습니다.
- PDF(레이아웃 보존)
- DOCX, DOC
- PPTX
- XLSX
문서는 DeepL의 파이프라인에 업로드되어 서버 측에서 서식이 유지된 채 번역되고, 같은 형식으로 반환됩니다. 그 결과를 우리 오브젝트 스토리지에 업로드하고, 채팅에서 다운로드 가능한 첨부 파일로 보여 줍니다.
비용이 얼마나 들고, 왜 숨기지 않는가
DeepL은 문서당 최소 50,000자를 과금합니다. 문서가 한 페이지든 서른 페이지든 관계없이 Pro 요금제 기준으로 파일당 대략 1달러입니다. 우리는 파일당 요금을 청구하는 대신 이 비용을 직접 부담합니다. 이 비용은 회의의 번역 사용량에 과금 문자 수로 나타나며, 제품의 다른 부분이 번역 활동을 보고하는 방식에 맞춰 단어 단위로 환산됩니다.
이 영역에 DeepL을 고른 이유는 파일을 파일로 번역하는 것이 바로 DeepL이 만들어진 목적이고, 우리가 더 나은 것을 만들려 하지 않았기 때문입니다. 반대 방향은 해당되지 않습니다. DeepL은 우리가 회의용으로 만든 것과 같은 종류의 실시간 음성 파이프라인을 운영하지 않습니다. 문제가 다르면 도구도 다릅니다. "InterMIND 번역을 구동하는 것은 무엇인가"에 대한 정직한 답은 "파이프라인마다 알맞은 엔진"이지, "어디서나 우리 엔진"이 아닙니다.
이 파이프라인은 지원하지만 음성은 지원하지 않는 언어
문서 파이프라인은 음성의 23개 언어에 비해 30개 언어를 지원합니다. 추가된 언어는 불가리아어, 그리스어, 에스토니아어, 인도네시아어, 리투아니아어, 라트비아어, 슬로바키아어, 슬로베니아어 등입니다. (아랍어도 이 목록에 있으며 추가 언어 중 하나입니다. 음성 품질이 우리 기준에 못 미치는 동안 실시간 선택기에서는 빠져 있고, 언어 쌍별 점수는 /benchmark에 계속 공개됩니다. 그 수치가 아랍어를 다시 돌아오게 합니다. 힌디어는 반대 방향의 비대칭입니다. 음성에서는 지원하지만 파일에서는 아직 지원하지 않습니다.)
이 비대칭은 실제입니다. 회의에 참여한 프랑스어 사용자가 에스토니아어로는 회의를 들을 수 없는데도 계약서 PDF는 에스토니아어로 요청할 수 있다는 뜻입니다. 우리는 이를 하나의 숫자로 매끄럽게 덮지 않고 선택기에 표시합니다. 이유는 언어 수 관련 글에 설명되어 있습니다.
파이프라인이 만나는 지점
네 개의 파이프라인은 서로 고립되어 실행되지 않습니다. 회의실은 파이프라인들이 서로 맞닿는 곳이고, 그 접점이 중요합니다.
- 문서가 첨부된 채팅 메시지는 텍스트에는 채팅 파이프라인을, 파일에는 문서 파이프라인을 작동시킵니다. 다른 언어의 참가자는 메시지가 즉시 번역되어 보이고, 첨부 파일의 번역은 다운로드 가능한 형태로 비동기적으로 도착합니다.
- 전사 문장을 인용한 공유 노트는 노트와 음성을 가로지릅니다. 전사는 음성 파이프라인이 발신자의 언어로 만든 결과이고, 노트 번역은 그 인용문의 시청자별 사본을 다른 모든 사람의 언어로 만들며 출처 표기를 유지합니다.
- 회의 후 내보낸 전사본은 전체 대화에 대해 채팅 방식의 텍스트 파이프라인을 실행해, 참가자가 다운로드할 수 있는 언어별 파일을 만듭니다. 채팅 번역과 같은 코드 경로이며, 일괄 처리만 다릅니다.
언어 선택기는 하나의 UI 요소입니다. 그 아래의 인프라는 서로 대화하는 네 개의 파이프라인입니다.
의도적으로 시도하지 않는 것
- "통합 번역 모델"은 없습니다. 음성, 채팅, 노트, 문서를 모두 처리하는 하나의 모델을 만들고 있지 않습니다. 지연 시간과 충실도 사이의 트레이드오프에는 승자가 없습니다. 영역마다 알맞은 엔진을 사용합니다.
- 조용한 경로 변경은 없습니다. 파일 파이프라인이 오늘 힌디어로 번역하지 못한다면, 조용히 음성 엔진으로 넘겨 놓고 잘 된 척하지 않습니다. 파일 선택기가 공백을 숨기지 않고 표시합니다.
- "200개 언어로 번역합니다"는 없습니다. 우리 엔진이 출력하는 언어는 24개입니다. 실시간 영역은 23개, 문서는 30개를 지원합니다. 마케팅에 좋은 숫자 하나 대신, 감사인 앞에서도 설명할 수 있어야 하는 언어 쌍별 품질을 약한 쌍까지 포함해
/benchmark에 공개합니다.
직접 체험해 보세요
- 라이브 데모 체험하기: 23개 제품 언어 중 원하는 언어로, 실제 음성 파이프라인이 여러분의 오디오를 처리합니다.
/benchmark의 점수를 산출하는 것과 같은 파이프라인입니다. - 벤치마크 보기: 실제 트래픽 기준의 언어 쌍별, 월별 품질입니다. 선택기에 있는 모든 쌍을 강한 쌍이든 약한 쌍이든 직접 링크로 볼 수 있습니다.
- 방법론 읽기: 수치가 무엇이고 무엇이 아닌지, 평가자가 누구인지 설명합니다.
파이프라인 네 개, 엔진 네 개, 회의실 하나. 이것이 예전 how-it-works 페이지를 대체하는 정직한 설명입니다.
— Mind.com 팀
출처: DeepL — 지원 언어, DeepL — 사용량 집계 및 과금(파일당 최소 50,000자), FLORES-200. 내부 파이프라인 관련 사실은 배포된 코드와 대조해 확인했으며, 확인 시점은 2026년 8월입니다.
실시간 번역 더 보기
실시간 번역의 모든 게시물동시통역사: 인간 통역, RSI 플랫폼, 또는 AI — 다국어 meeting에 필요한 것은 무엇일까 (2026)
The Mind.com Team
"몇 개 언어를 지원하나요?" — 저희의 솔직한 답이 하나의 숫자가 아니라 여섯 개의 숫자인 이유
모든 벤더가 하나의 언어 수만 내세웁니다. 하지만 저희는 그럴 수 없습니다. 번역은 하나의 제품이 아니기 때문입니다. InterMIND의 표면별 상세 내역, 무엇을 왜 필터링하는지, 그리고 웹사이트에 어떤 내용을 공개하는지 안내해 드립니다.
번역 품질 마케팅이 잘못된 이유, 그리고 우리가 대신 공개하는 것
모든 번역 업체가 지원 언어 수를 공개합니다. 하지만 실제 트래픽에서 측정한 언어쌍별 검증 가능한 품질을 공개하는 곳은 없습니다. 다음 업체 평가에서 이 격차가 중요한 이유와 우리가 대신 공개하는 내용을 소개합니다.