실시간 번역의 정확도는 대부분 모델이 실행되기 전, 마이크가 어디에 있느냐로 정해집니다. 음향 믹싱 데스크에서 오디오를 가져와 한 번만 전사하면, 실수는 누구나 고칠 수 있는 한 줄이 됩니다.
휴대폰에 내장된 번역 앱은 충분히 훌륭한 기술입니다. 대개 기기와 배터리에 들어갈 만큼 작은 음성 모델을 기기에서 실행하고(연결이 되어 있으면 일부는 오디오를 서버로 보내기도 합니다), 길을 묻거나 메뉴를 읽거나 카운터에서 대화하는 것처럼 짧고 분명하며 일상적인 문장에서는 제 역할을 합니다.
한 명의 연사를 여럿이 듣는 방은 전혀 다른 문제입니다. 실제 말에서 잘못되는 것들은 작은 모델이 가장 못하는 바로 그것들입니다. 흔하지 않은 단어와 이름, 소리가 비슷한 단어("their"와 "there", "sail"과 "sale"), 전문 용어, 억양, 서로 겹쳐 말하는 사람들, 배경 소음이 그렇습니다. 세일링 클럽에서 "sale"이라고 듣는 모델은 합리적인 추측을 했지만, 확신에 찬 실수를 한 것입니다.
작은 모델이 큰 모델보다 더 많이 추측하게 만드는 이유는 두 가지입니다. 휴대폰에 맞게 압축되어 있어서 아는 단어와 그 단어를 말하는 방식이 적습니다. 그리고 만나 본 적 없는 성은 소리만으로 근사합니다. 또한 실시간 인식은 문장의 나머지가 도착하기 전에 단어 하나를 확정해야 합니다. 그래서 모델은 "sail"과 "sale" 중 무엇인지를 가려 줄 뒤따르는 단어나, 강연의 주제를 알려 주는 스크립트를 활용할 수 없습니다. 음성 인식에서 문맥이란 정확히 이 두 가지를 뜻합니다. 주변의 단어들, 그리고 미리 알고 있는 정보입니다.
모델이 확신하지 못하면 추측합니다. 번역은 그 추측 위에 세워지고, 읽는 사람은 그것을 알 방법이 없습니다. 방 안의 누구도 한 줄이 틀렸다는 것을 볼 수 없고, 하물며 바로잡을 수는 더더욱 없습니다. 게다가 방에는 청취자가 한 명이 아니라 쉰 명이 있습니다.
휴대폰은 연사가 아니라 방을 듣습니다. 거리가 문제입니다. 옷깃에 다는 마이크나 데스크 마이크는 입에서 몇 센티미터 떨어져 있지만, 열두 번째 줄에 있는 휴대폰은 10미터 이상 떨어져 있고, 거기 도달하는 소리 대부분은 벽, 천장, 의자 등받이에 먼저 반사된 소리입니다. 반사음은 늦게, 뭉개진 채 도착합니다. 여기에 두 줄 뒤 사람의 기침, 옆자리 이웃의 속삭임, 그리고 스피커가 홀을 가로지르며 목소리에 가하는 변형까지 더해집니다. 자리마다 조금씩 다른 녹음이 생기고, 그래서 자리마다 조금씩 다른 전사본이 생깁니다.
휴대폰은 또한 한 사람을 위해서만 번역합니다. 쉰 명의 참석자가 쉰 대의 휴대폰을 들면, 같은 강연에 대해 쉰 개의 독립된 전사본이 생기고, 실수도 쉰 가지로 다릅니다. 나중에 두 사람이 메모를 비교하면 무엇이 말해졌는지에 대해 의견이 일치하지 않을 것입니다. 한편 연사는 높이 들린 휴대폰의 벽을 바라보며 말해야 하는데, 이는 읽어 내기 어려운 청중입니다.
방에 있는 일부 사람들에게 이것은 불편함 이상입니다. 강연을 따라갈 수 있는지 없는지를 결정합니다. 청력이 약한 참석자나 세 번째 언어로 따라가는 사람에게는 최선을 다한 쉰 개의 텍스트가 아니라, 정확하고 모두가 공유하는 하나의 텍스트가 필요합니다. 그러려면 연사를 한 번만 전사하고 모두에게 같은 결과를 주어야 합니다. 한 번만 전사하는 방식은 잘 했을 때만 가치가 있으며, 그것은 오디오가 어디에서 오는지부터 시작됩니다.
전사본의 품질은 그것을 만든 오디오의 품질을 넘지 못합니다. 그래서 첫 번째 결정은 어떤 모델을 쓸지가 아니라 어떤 신호를 넣을지입니다. 두 번째는 모델이 시작하기 전에 무엇을 알려 줄지입니다.
실시간 전사는 깨끗한 신호가 이미 있는 곳에서 오디오를 가져옵니다.
VocalStack은 URL 스트림을 직접 가져오므로 사용자 쪽에서 실행할 것은 없습니다. RTMP 피드는 반대 방향으로 동작합니다. 인코더가 밀어 넣습니다. 연사의 언어는 자동으로 감지되며, 연사는 언제든 언어를 바꿀 수 있습니다. 언어를 알고 있고 녹음이 시끄럽거나 억양이 강하다면 언어를 지정하면 정확도가 높아집니다.
깨끗한 오디오는 방 때문에 생기는 실수를 없애 줍니다. 어휘 때문에 생기는 실수에는 아무 효과가 없으며, 그것에는 다른 종류의 도움이 필요합니다.
휴대폰은 누가 말하고 있는지, 강연이 무엇에 관한 것인지 전혀 모릅니다. 그래서 제품명이나 성은 근사해야 할 또 하나의 소리일 뿐입니다. 방송은 미리 무엇을 기대할지 알려 줄 수 있습니다.
시작하기 전에 스크립트나 슬라이드를 추가하면, 그 안의 이름과 용어가 엔진이 잘못 들은 것보다 우선합니다. 녹음 중에는 Script 탭이 연사를 따라가며 텔레프롬프터처럼 보여 줍니다. 회의와 강의를 가득 채우는 종류의 발화에서는 이것이 가장 큰 정확도 향상입니다. 고유명사와, 범용 모델이 충분히 많이 들어 보지 못한 어휘로 빽빽하기 때문입니다.
좋은 오디오와 용어집은 대부분의 오류를 없앱니다. 문제는 남은 오류에 무슨 일이 일어나느냐입니다.
좋은 오디오와 스크립트가 있어도 일부 줄은 여전히 틀리게 나옵니다. 차이는 그다음에 무슨 일이 일어나느냐에 있습니다.
휴대폰에서는 아무 일도 일어나지 않습니다. 틀린 줄은 지나가고, 그 위에 세워진 번역도 함께 사라집니다.
방송에서는 보여 줄 가치가 없을 만큼 불분명한 줄을 사실처럼 내보내지 않고, 청취자에게는 "오디오 불명확"으로 가려 보여 줍니다.
그다음에는 Fix 탭을 가진 호스트가 있습니다. 엔진이 확신하지 못한 단어는 색이 칠해지고 밑줄이 그어지며, 클릭하면 그 줄이 검토용으로 열리고, 전사가 아직 진행 중인 동안 어떤 단어나 줄이든 다시 쓸 수 있습니다. 모든 청취자는 자신의 언어로 수정 내용을 봅니다. 모든 수정은 표시되며 되돌릴 수 있습니다.
핵심은 서버가 실수를 하지 않는다는 것이 아닙니다. 실수가 눈에 보이고, 방 안의 누군가가 책임을 지며, 한 번 고치면 모두에게 반영된다는 것입니다.
수정은 청취자가 읽는 것을 고칩니다. 말로 듣는 것을 선호하는 청취자도 같은 수정된 텍스트를 음성으로 듣습니다.
읽기보다 듣기를 선호하는 청취자는 번역된 각 줄을 소리 내어 읽게 할 수 있습니다. 기본적으로 각 연사에게는 성별이 맞는 서로 다른 기본 음성이 배정되므로, 패널은 여전히 패널처럼 들립니다. 연사마다 음성을 지정하거나 한 명을 음소거할 수 있습니다.
연사의 허락을 받으면 한 걸음 더 나아갈 수 있습니다. 연사의 말 30초로 음성을 복제할 수 있으며, 클립을 업로드하거나 녹음에 있는 연사에게서 직접 가져올 수 있습니다. 몇 분이면 더 나은 결과가 나옵니다. 그러면 번역은 모든 언어에서 연사 본인의 목소리로 읽힙니다. 저장된 음성을 가진 연사는 이후 녹음에서도 인식될 수 있지만, 시스템은 잘못된 사람의 이름을 대느니 연사를 이름 없이 두는 편을 택합니다.
두 가지 규칙이 적용되며, 이는 의도된 것입니다. 복제된 음성은 생체 정보이므로 연사의 명시적 동의가 있을 때에만 만들어지며, 언제든 삭제할 수 있습니다. 그리고 음성은 오직 전사본이나 그 번역을 읽을 뿐이며, 소유자가 한 적 없는 말을 하도록 만들 수 없습니다.
지금까지의 모든 일은 연사가 말하는 동안 일어납니다. 마지막 차이는 연사가 말을 멈춘 뒤에 나타납니다.
휴대폰 전사본 쉰 개는 앱을 닫는 순간 사라집니다. 방송은 라이브러리에 녹음을 보관합니다. 오디오와, 모든 수정과 번역이 담긴 전사본입니다. 여기서는 줄 단위로 다시 재생할 수 있고, 어떤 언어로든 검색하고 내보낼 수 있습니다. 라이브러리가 무엇을 하는지는 하나의 링크, 모든 언어에서 안내합니다. 청취자는 몇 명이든 비용이 들지 않습니다. 전사한 오디오에 대해서만 요금을 냅니다. 라이브는 시간당 $0.60이며, 전사당 최소 5분입니다. 요금표는 요금제 페이지에 있습니다.
휴대폰을 손에 든 모든 사람은 복도에서 나누는 대화에는 여전히 좋은 대비책입니다. 하지만 방이 한 연사를 함께 이해해야 한다면, 연사는 소스에서 한 번 전사되어야 하며, 잘못된 부분을 고칠 수 있는 누군가가 곁에 있어야 합니다. 그 모습은 홈 페이지의 대화형 데모에서 확인할 수 있습니다.