녹음 파일을 텍스트로 바꾸는 방법
- 오디오나 동영상 파일을 고르거나, 마이크로 녹음하기를 누르고 다 말한 뒤 멈추세요. MP3, M4A, WAV, WebM, MP4는 물론 브라우저에서 재생되는 형식이면 대부분 돼요.
- 모델을 고르세요. 한국어는 Base 이상이 좋고, Small이 더 정확하지만 느려요. 옆의 표시로 모델이 이미 브라우저에 받아져 있는지 알 수 있어요.
- 녹음 언어를 고르세요. 기본은 한국어이고, 모르겠으면 자동 감지를 고르면 돼요.
- 받아쓰기 시작을 누르세요. 처음에는 모델을 받고, 그다음부터 글이 부분부분 나타나요. 중간에 취소해도 그때까지 받아쓴 글은 남아요.
- 결과를 확인하세요(시간 표시를 누르면 그 부분부터 들려요). 그다음 복사하거나 TXT·SRT·VTT로 받으면 돼요.
어떻게 돌아가고, 무엇이 밖으로 나가나요
받아쓰기는 OpenAI가 2022년에 오픈 소스로 공개한 음성 인식 모델 Whisper로 해요. 이 페이지는 Transformers.js와 ONNX Runtime Web으로 Whisper를 돌려서, 모든 과정이 브라우저 탭 안에서 끝나요. 파일을 오디오로 푸는 것도, 모델이 글로 바꾸는 것도 내 컴퓨터에서 하고, 받아쓴 글도 복사하거나 내려받기 전까지 탭 안에만 있어요.
네트워크 사용은 정확히 이렇게 돼요.
- 모델 파일은 Hugging Face(huggingface.co)에서 받아요. 처음 쓸 때 고른 모델의 파일을 받고, 브라우저가 보관해 둬요. 브라우저 저장 공간을 지우지 않는 한 다음부터는 다시 받지 않아요.
- ONNX 런타임은 jsDelivr(cdn.jsdelivr.net)에서 받아요. 모델을 돌리는 엔진으로, 약 21MB짜리 WebAssembly 파일이에요.
- 내 데이터는 나가지 않아요. 오디오, 동영상, 받아쓴 글은 Hugging Face에도, jsDelivr에도, EasyTest에도 보내지 않아요. 사이트의 다른 페이지처럼 Google 애널리틱스가 방문 수와 받아쓰기·내려받기를 했다는 사실(모델 이름만, 글 내용은 빼고)을 세고, 도구 바깥에는 Google 애드센스 광고가 나와요.
브라우저가 WebGPU를 지원하면 Whisper가 그래픽 칩에서 돌아서 보통 훨씬 빨라요. 지원하지 않으면 WebAssembly(WASM)로 프로세서에서 도는데, 어디서나 되지만 훨씬 느려요. 어느 쪽으로 돌지는 모델 메뉴 옆에 표시돼요.
모델은 무엇을 골라야 하나요
네 모델 모두 여러 언어를 받아쓰는 Whisper 모델이에요. 클수록 덜 틀리지만 받는 용량과 메모리가 커지고 느려져요. WebGPU에서는 인코더를 원래 정밀도로 받아서 용량이 더 커요.
| 모델 | 매개변수 | 받는 용량(WASM) | 받는 용량(WebGPU) | 이럴 때 |
|---|---|---|---|---|
| Tiny | 3,900만 | 45MB | 124MB | 빠른 초안용. 한국어에는 약해요 |
| Base | 7,400만 | 81MB | 211MB | 또렷한 녹음을 빠르게 |
| Small | 2억 4,400만 | 253MB | 591MB | 한국어 회의·강의를 더 정확하게 |
| Large v3 Turbo | 8억 900만 | 1.1GB | 2.9GB | 가장 정확하게. 메모리가 넉넉한 컴퓨터에서 |
매개변수 수는 OpenAI의 Whisper 저장소에 나온 값이에요. 같은 저장소는 turbo 모델을 large-v3를 더 빠르게 받아쓰도록 최적화한 버전으로, 정확도 손실은 적다고 소개해요. 속도는 무엇보다 기기에 따라 크게 달라요. 노트북 GPU에서는 녹음 길이만큼도 안 걸리는 모델이 휴대폰 프로세서에서는 몇 배 더 걸릴 수 있어요. 받아쓰기가 끝나면 내 기기에서 실제로 걸린 시간을 알려 드리니, 그 숫자를 기준으로 삼으세요.
Whisper는 얼마나 정확하고, 무엇을 자주 틀리나요
Whisper는 웹에서 모은 68만 시간 분량의 음성으로 학습해서, 예전 음성 인식보다 사투리나 잡음, 전문 용어에 강한 편이에요. 그래도 언어마다 정확도 차이가 커요. Whisper 논문을 보면 학습 데이터가 많은 언어일수록 결과가 좋고, 영어 데이터가 가장 많아요. 정확도를 몇 퍼센트라고 적지 않는 건, 그 숫자가 모델보다 녹음 상태에 더 크게 좌우되기 때문이에요.
이런 실수를 특히 살펴보세요.
- 이름과 드문 낱말: 사람 이름, 회사·제품 이름, 영어 약어는 발음이 비슷한 흔한 낱말로 바뀌기 쉬워요.
- 겹쳐 말하기: 여러 사람이 동시에 말하면 대개 한 목소리만 따라가고 나머지는 빠져요.
- 화자 구분 없음: 누가 말했는지는 적어 주지 않아요. Whisper에는 화자 구분 기능이 없어요.
- 무음·음악·잡음: Whisper 논문에 따르면 같은 말을 되풀이하거나, 구간의 처음이나 끝 몇 낱말을 빼먹거나, 드물게 하지 않은 말을 지어내기도 해요. 긴 무음이나 음악 구간에서 자주 생겨요.
- 숫자와 띄어쓰기·문장부호: 숫자가 아라비아 숫자나 한글로 섞여 나오고, 띄어쓰기와 문장 끊기가 실제 말과 다를 수 있어요.
더 잘 받아쓰는 요령
- 말하는 사람 가까이에서 녹음하세요. 회의라면 노트북 마이크보다 탁자 가운데 둔 휴대폰이 훨씬 나아요.
- 언어를 알면 자동 감지 대신 직접 고르세요. 짧은 녹음이나 음악으로 시작하는 녹음일수록 효과가 커요.
- 결과가 아쉬우면 Small로 다시 해 보세요. Tiny나 Base가 틀린 한국어를 상당 부분 바로잡아요.
- 긴 무음과 음악은 미리 잘라 내면 더 빠르고, 조용한 구간에서 없는 말이 생기는 일도 줄어요.
- 긴 파일을 돌릴 때는 탭을 열어 두고, 노트북은 전원에 꽂아 두세요.
자주 묻는 질문
- 녹음 파일이 어딘가로 올라가나요?
- 아니요. 오디오를 풀고 받아쓰는 일은 모두 이 브라우저 탭 안에서 일어나고, 결과도 복사하거나 내려받기 전까지 탭 안에만 있어요. 네트워크를 쓰는 건 처음 쓸 때 Hugging Face(huggingface.co)에서 Whisper 모델 파일을, jsDelivr(cdn.jsdelivr.net)에서 ONNX 런타임을 받는 것뿐이고, 녹음 내용은 이 둘에게도 보내지 않아요.
- 길이 제한이 있나요?
- 가입도, 하루 사용량이나 분 단위 제한도 없어요. 파일 하나는 4시간까지 받아쓸 수 있어요. 다만 길수록 오래 걸리고 풀어낸 오디오가 메모리를 차지해서(1시간에 약 230MB, 여기에 모델이 더해져요) 30분이 넘으면 미리 알려 드려요.
- 누가 말했는지도 구분해 주나요?
- 아니요. Whisper는 말한 내용을 받아쓰지만 화자를 구분하지는 않아요. 두 사람이 동시에 말하면 대개 더 큰 목소리만 받아써요. 인터뷰라면 시간 표시를 켜 두고 다시 들으면서 이름을 직접 붙이는 게 빨라요.
- 한국어는 어떤 모델이 좋아요?
- Base 이상을 쓰세요. Tiny는 한국어에서 틀린 글자가 많이 나와요. 컴퓨터에 WebGPU가 있으면 Small이 확실히 더 정확해서 기본으로 골라 두었고, WebGPU가 없으면 속도 때문에 Base로 시작해요.
- 휴대폰에서도 되나요?
- 최신 모바일 브라우저에서는 돼요. 다만 휴대폰은 메모리가 적고 느려서 Tiny나 Base로, 30분 이하 파일로 하는 게 좋아요. 탭이 새로 고쳐지거나 멈추면 메모리가 모자란 거라, 같은 파일을 컴퓨터에서 해 보세요.
출처
- Radford 외(2022), Robust Speech Recognition via Large-Scale Weak Supervision, arXiv:2212.04356 (Whisper 논문: 학습 데이터, 언어별 정확도, 실패 유형)
- OpenAI Whisper 저장소 (모델 크기와 turbo 모델)
- Transformers.js 문서 (브라우저에서 Whisper 돌리기)
- 이 페이지가 받는 ONNX Whisper 모델 (Hugging Face, Base 예시)
녹음 파일은 이 기기 밖으로 나가지 않아요. 모델은 이 브라우저 탭에서 돌고, 처음 쓸 때 Hugging Face에서 모델 파일을, jsDelivr에서 런타임을 받는 것 말고는 녹음도 받아쓴 글도 어디로도 보내지 않아요.