받아쓰기가 늘 무너지는 순간
지난 화요일 아침, 개를 산책시키면서 머릿속으로 한 장면을 짜고 있었다. 인물 두 명, Ezra와 Lyra가, 반쯤 물에 잠긴 지하실에서 강이 일부러 물길을 바꿨는지를 두고 다투는 장면. 좋은 장면이었다. 통째로 떨어져 내려와서, 키보드 앞에 앉는 순간 사라져 버리는 종류의 장면.
그래서 휴대전화를 가진 모든 글쟁이가 하는 일을 했다. 받아쓰기 앱을 열고 말하기 시작했다. 3분 뒤 장면이 있었다. 5분 뒤 받아쓰기 결과가 있었다. 「Ezra」는 전부 「Israel」로 바뀌어 있었다. 「Lyra」는 전부 「Lila」로. 지하실은 「the bay」가 되어 있었고, 강은 「the reefer」가 되어 있었다. 찾기-바꾸기를 30분 한 뒤 장면은 페이지 위에 올라왔지만, 불꽃은 꺼져 있었다.
이게 목소리로 소설을 쓰는 사람 모두가 겪는 보편적인 경험이다. 범용 받아쓰기 모델은 당신의 책을 읽은 적이 없다. 등장인물 명단조차 본 적이 없다. 신문 기사 빈도표에서 고유명사를 추측한다. 그래서 흔치 않은 이름 — 정확히 소설이 즐겨 쓰는 그런 이름 — 이 흔한 이름으로 바꿔 적힌다. Ezra가 Israel로. Lyra가 Lila로. Saoirse가 「Sersha」로. Caitlyn이 「Caitlin」으로 (혹은 더 심하게).
해결은 구조적이어야 한다. 받아쓰기 모델은 받아 적기 시작하기 전에 당신의 프로젝트를 알고 있어야 한다. MimicReader의 Writing Studio 에디터는 정확히 그 일을 한다.
왜 일반 받아쓰기는 소설가에게 맞지 않을까
대안들을 정직하게 짚어 보자:
- Google Web Speech / Chrome 받아쓰기 — 빠르고 무료, 브라우저에서 돈다. 당신의 원고에 대해선 0을 안다. 흔치 않은 단어는 가장 가까운 흔한 단어로 바꾼다. 약 60초 침묵이 흐르면 듣기를 그만둔다. 음성은 Google로 간다.
- Apple 받아쓰기 (iOS) — iOS 17 이후 온디바이스 모델은 다소 나아졌지만 코퍼스는 여전히 일반 영어다. 「텍스트 대체」를 몇 개 추가할 수 있지만, 그건 모델에 바이어스를 주는 게 아니라 특정 문자열을 후처리할 뿐이다.
- Otter.ai — 회의용으로 만들어졌다. Zoom에서 화자를 식별하는 데는 훌륭하다. 당신 주인공이 「soaring」이 아니라 Soren이라는 걸 아는 데는 쓸모없다.
- Dragon Naturally Speaking — 옛 왕. 자체 어휘를 훈련시킬 수 있지만 워크플로가 번잡하고, 라이선스는 수백 파운드, 모바일 경험은 거칠다.
- 순정 Whisper (오픈소스 모델) — 현대 도구 대부분의 뒤에서 도는 실제 받아쓰기 엔진. 훌륭하지만, 당신이 주는 프롬프트만큼만 좋다. 그대로 두면 소설 맥락은 0이다.
패턴은 같다 — 이들 중 어느 것도 당신의 세계를 모른다. 그럴 수가 없다. 어느 것도 당신 원고 안에 있지 않기 때문이다. 범용 도구를 특정 작업에 나중에 덧붙인 물건들이다.
MimicReader의 음성 받아쓰기는 어떻게 동작할까
Writing Studio 에디터는 당신의 등장인물 명단, 줄거리, 지금 편집 중인 챕터에서 한 번 클릭 거리에 있다. 마이크 버튼을 누르면, 무대 뒤에서 이런 일이 일어난다:
- 브라우저가 음성을 로컬에서 녹음한다 (브라우저 MediaRecorder API, 스트리밍 없음).
- 녹음을 멈추면, 음성 blob이 HTTPS로 MimicReader의 GPU로 올라간다.
- 백엔드가 프로젝트 메타데이터를 가져온다 — 이름 있는 인물 전부, 줄거리, 작업 제목, 핵심 지명까지.
- 그 이름들이 Whisper의
initial_prompt로 정돈된다 — 디코더에 바이어스를 주기 위해 Whisper가 쓰는 짧은 맥락 문자열이다. 「다음 음성은 반쯤 물에 잠긴 도시 Veridia를 배경으로 한, Ezra와 Lyra, Saoirse가 등장하는 소설에서 가져온 것…」 - Whisper Large V3 Turbo가 우리 RTX 3090에서 음성을 받아 적는다. 프롬프트가 고유명사 쪽으로 바이어스를 주어, Ezra는 그대로 Ezra로 남는다.
- 받아쓰기 결과는 챕터 에디터의 커서 위치에 삽입된다.
- 원본 음성은 당신 계정에 노트로 저장된다 — Whisper가 한 단어를 잘못 들었을 때 원본에서 직접 고치고 싶다면 다시 들어 볼 수 있도록.
이게 비밀의 전부다. Whisper는 첫날부터 initial_prompt를 지원했다. 그런데도 일반 사용자 대상 받아쓰기 도구 중 이걸 원고에 자동으로 연결한 것은 하나도 없다. 우리는 한다. 원고가 바로 옆에 있기 때문이다.
Ezra Vance, Lyra Ó Dálaigh, Saoirse Quinn이 들어 있다면, Whisper가 내놓는 것은 정확히 그 철자다. 「Israel」, 「Lila」, 「Sersha」로 자동 보정되지 않는다. 인물들의 이름은 그대로 남는다.
당신의 음성은 여기 머문다
이 부분이 사람들이 생각하는 것보다 훨씬 중요하다. 받아쓰기 도구는 당신의 목소리로 뭐든 해야 한다. 기본값이 늘 친절한 건 아니다.
- Google Web Speech는 음성을 Google 서버로 보낸다. 그들이 그것으로 무엇을 하는지, 그리고 학습 데이터에 대해 EU와 UK 법무팀이 결국 무엇을 합의해 낼지에 따라 달라진다.
- Otter, Rev, Trint는 기본값으로 음성을 자기네 클라우드에 무기한 저장한다. 수동 삭제는 가능하다. 집계·비식별화된 데이터로 학습한다 — 약관은 요금제마다 다르다.
- Apple 받아쓰기는 짧은 발화의 경우 기기에 머물지만, 향상된 받아쓰기는 본가에 전화를 걸 수 있다.
MimicReader는 약속이 아니라 아키텍처로 다르다:
- 음성은 우리 GPU(글래스고 외곽 서버 캐비닛에 있는 RTX 3090)로 간다. OpenAI도, Google도, 어떤 제3자도 거치지 않는다.
- 받아쓰기는 우리가 직접 호스팅하는 로컬 Whisper 모델 위에서 돈다. 외부 받아쓰기 서비스로 가는 API 키는 없다. 제3자는 없다.
- 음성은 당신 계정 안에 노트로 보관된다. 듣는 건 오직 당신뿐이다. 노트 탭에서 언제든 지울 수 있다. 계정 삭제(GDPR 제17조)도 함께 지운다.
- 당신의 음성으로도, 원고로도 어떤 모델도 학습시키지 않는다. 끝.
예민한 장면을 받아쓰는 일이 한 번이라도 불편했다면 — 회고록의 한 장, 비공개 인터뷰, Google ML 팀에게는 절대 보여주고 싶지 않은 결정적인 반전 — 이건 그걸 더 이상 신경 쓰지 않아도 되는 버전이다.
모바일 워크플로
마이크 버튼은 모바일 Chrome과 Safari에서 동작한다. 개가 알아서 산책하지는 않으니, 실제로 내가 쓰는 워크플로는 이렇다:
- 주머니에 S24 Ultra, 귀에 이어버드, 왼손에 개 목줄.
- mimicreader.ai/app을 열고, 작업 중인 챕터로 이동한다.
- 마이크를 누른다(에디터 툴바 아래쪽 큰 빨간 점 — 놓치기 어렵다).
- 말한다. 단락 통째로. 장면 통째로. 아침이 잘 풀리면 챕터 통째로.
- 정지를 누른다. 10초 기다린다. 받아쓰기가 본문에 나타난다.
- 계속 걷는다. 다음 장면도 같은 식으로.
Whisper Large V3 Turbo는 빠르다. 3분 받아쓰기는 우리 3090에서 약 8초에 끝난다. 휴대전화를 주머니에 다시 넣고 개가 가로등 기둥 냄새 맡는 걸 보는 사이에 텍스트는 이미 챕터 안에 들어가 있다.
배터리 부담은 거의 없다. 온디바이스 모델이 돌지 않기 때문이다 — 휴대전화가 하는 일은 녹음뿐이고, 녹음은 거의 아무것도 먹지 않는다. 네트워크 비용은 약간 있다. 3분짜리 Opus blob이 대략 1 MB다. 4G에서도 싸고, 집 와이파이에서는 공짜다.
무엇이 저장되는가 (그리고 왜)
받아쓰기를 마칠 때마다 두 가지가 남는다:
- 받아쓰기 결과 — 커서 위치에 삽입되고, 즉시 편집 가능. 주된 결과물이다.
- 원본 음성 — 계정 안에 노트로 보관, 녹음 타임스탬프와 받아쓰던 챕터로 돌아가는 링크가 함께 붙는다.
음성 아카이브가 중요한 이유는 Whisper가 바이어스를 받아도 완벽하지 않기 때문이다. 「the morning when I」를 「the moaning weather」로 들었을 수도 있다. 바람이 단어 하나를 가로채 잡음으로 만들었을 수도 있다. 원본 음성이 Notes에서 한 번의 탭 거리에 있다면, 바로 그 구절을 재생해 실제로 무엇을 말했는지 귀로 확인하고 받아쓰기를 고칠 수 있다. 사흘 뒤 기억에서 재구성할 필요가 없다.
Notes 화면은 또 나중을 위해 원본 음성을 쌓아 두는 용도로도 좋다. 월요일 산책에서 장면 스케치를 네 개 받아쓴다. 수요일 저녁, 커피 한 잔과 함께 앉아 Notes 탭을 열고, 다시 들으며 어느 것이 살릴 가치가 있는지 정한다. 음성 메모에서 오디오북까지의 파이프라인이 쓰는 패턴과 같다. 다만 「챕터로 승격」 버튼이 아니라 에디터에 곧장 연결되어 있을 뿐이다.
활성화 방법
Writing Studio는 지금 피처 플래그 뒤에 있다. 에디터의 일부를 아직 다듬는 중이기 때문이다. 켜는 방법:
- MimicReader 앱에서 /settings를 연다.
- Writing Studio까지 내려간다.
- 토글을 켠다. 저장한다.
- 아무 프로젝트 챕터든 연다. 에디터 툴바에 서식 버튼 옆으로 마이크 아이콘이 생긴다.
- 누른다. 브라우저가 물어보면 마이크 권한을 허용한다. 말한다.
그게 전부다. 확장 프로그램도, 설치도, 별도 앱도 없다. Writing Studio를 켜는 그 순간부터 마이크 버튼은 에디터의 일부다.
이 워크플로를 써 보자
아침 7시에 빈 문서를 열어 머릿속의 장면을 가지고 시작했다가, 첫 단락을 타이핑하는 사이에 그 장면을 잃어 본 적이 있다면, 이게 그걸 고치는 워크플로다. 목소리는 불꽃을 지킨다. 프로젝트를 인식하는 받아쓰기는 인물들의 이름을 지킨다.
다음 챕터를 받아써 보자
모든 MimicReader 계정에 무료. 추가 크레딧 없음, 요청당 과금 없음. 그저 에디터와, 마이크와, 당신이 이미 적어 둔 이름들뿐이다.
무료로 시작