Whisper Web Xenova의 오픈 소스 브라우저 음성 인식 애플리케이션입니다. 웹 작업자의 Transformers.js을 통해 Whisper 계열 모델을 실행하고, URL, 로컬 파일 또는 마이크에서 오디오를 받아들이고, TXT 또는 JSON로 내보낼 수 있는 타임스탬프가 있는 텍스트를 반환합니다. 이 프로젝트는 유지 관리되고 완전한 기능을 갖춘 전사 서비스가 아니라 클라이언트 측 자동 음성 인식의 간단한 데모로 유용합니다.
유지 관리 상태가 중요합니다. 메인 브랜치는 2024년 6월 10일에 마지막으로 커밋되었으며 핀 @xenova/변압기 2.7.0. README는 별도의 실험적인 WebGPU 분기를 가리킵니다. 기본 애플리케이션은 주로 이전 Worker/WASM 경로를 따릅니다. 현재 Transformers.js 문서는 v3 세대로 이동하여 WebGPU을 더 직접적으로 지원하므로 개발자는 이 저장소를 현재 프레임워크 시작 프로그램이 아닌 읽을 수 있는 참조 구현으로 취급해야 합니다.

누가 사용해야 하고, 누가 사용하면 안 됩니까?
| 사용자 또는 작업 | 핏 | 이유 |
|---|---|---|
| 프런트엔드 또는 ML 개발자 학습 브라우저 ASR | 강한 | React, Worker 및 Transformers.js 경로는 엔드 투 엔드를 검사할 수 있을 만큼 컴팩트합니다. |
| 짧고 민감하지 않은 녹음을 개인이 복사하는 경우 | 합리적인 | 계정이나 서버 작업은 필요하지 않지만 모델 다운로드와 브라우저 메모리는 여전히 중요합니다. |
| 검토된 자막을 제작하는 팀 | 제한적 | 성적표 편집기, SRT/VTT 내보내기, 발표자 라벨 지정 또는 공동 검토가 없습니다. |
| 장문 일괄 전사 서비스 | 나쁨 | 브라우저 탭은 메모리와 실행을 소유합니다. 대기열, 재시도, 지속성 및 관찰 가능성이 없습니다. |
| 의료, 법률 또는 규제 오디오 | 프로토타입만 | 로컬 추론은 개인 정보 보호에 도움이 될 수 있지만 액세스 제어, 보존, 감사 및 사람의 확인은 구현되지 않습니다. |
Whisper Web은 교육 및 프로토타이핑 표면으로 가장 잘 판단됩니다. 오디오 디코딩, 모델 로드, 청크 콜백, 타임스탬프 및 내보내기가 전사 백엔드 없이 어떻게 작동할 수 있는지 보여줍니다. 따라서 개인 실험, 컨퍼런스 데모 및 대상 하드웨어에 대한 첫 번째 타당성 테스트에 유용합니다. 지원되는 전사 제품을 즉시 대체하는 제품이 아닙니다. 사용자 계정, 작업 복구, 모델 관리, 감사 로그, 보존 제어, 수정 인터페이스 또는 서비스 수준 보장이 없습니다.
내부 도구의 경우 페이지 및 모델 가중치를 호스팅할 사람, 지원되는 브라우저, 탭 충돌 또는 캐시 제거로부터 사용자가 복구할 방법을 결정합니다. 공개 제품의 경우 마이크 사용, 모델 다운로드 기대치, 오류 보고 및 오디오 및 원격 측정이 이동하는 위치에 대한 명확한 설명에 대한 동의를 추가합니다. 이러한 운영 세부 사항은 데모가 하나의 깨끗한 샘플을 복사할 수 있는지 여부보다 더 중요합니다.
애플리케이션이 실제로 수행하는 작업
| 면적 | 구현 | 실질적인 결과 |
|---|---|---|
| 추론 | Transformers.js 웹 작업자의 자동 음성 인식 파이프라인 | 브라우저가 추론을 수행하는 동안 UI는 계속 반응합니다. |
| 오디오 준비 | 웹 오디오 API, 16kHz로 리샘플링되고 모노로 믹싱됨 | 브라우저 코덱 지원으로 어떤 파일이 성공적으로 디코딩되는지 결정 |
| 긴 오디오 | 5초 보폭의 30초 청크; Distil-Whisper은 20/3초를 사용합니다. | 중복은 연속성에 도움이 되지만 반복되거나 병합된 문구를 도입할 수 있습니다. |
| 디코딩 | 타임스탬프와 부분 콜백을 사용한 그리디 디코딩 | 간단하고 검사가 가능하지만 디코딩 컨트롤이 거의 노출되지 않습니다. |
| 수출 | 일반 텍스트 또는 JSON 타임스탬프 청크 | 네이티브 SRT/VTT, 화자 분할 또는 성적표 편집기 없음 |
파일이나 마이크에서 선택한 오디오는 디코딩되어 브라우저 내부의 모델로 전달됩니다. 앱은 처음 사용할 때 여전히 Hugging Face에서 모델 가중치를 다운로드하며 URL 입력으로 인해 브라우저가 해당 원격 오디오를 가져옵니다. 따라서 "로컬 추론"은 음성-텍스트 계산이 클라이언트 측에서 이루어짐을 의미합니다. 이는 페이지에서 네트워크 요청이 전혀 발생하지 않는다는 의미는 아닙니다.
입력, 모델 및 다운로드 크기
| 현재 UI의 선택 | 표시된 다운로드 | 최적의 핏 |
|---|---|---|
| 속삭이는 듯한 작은, 양자화된 | 41MB | 가장 빠른 첫 번째 테스트 및 낮은 메모리 장치 |
| 속삭임 기반, 양자화 | 77MB | 큰 다운로드 없이 적당한 정확도 단계 |
| 속삭이는 작은, 양자화된 | 249MB | 메모리가 허용하는 경우 더 많은 기능을 갖춘 로컬 전사 |
| 속삭임-중간, 양자화 | 776MB | 더 강력한 데스크탑 하드웨어에 대한 대용량 실험 |
| Whisper-tiny.en, 비양자화 | 152MB | 다운로드 크기보다 충실도가 더 중요한 영어 오디오 |
| Whisper-base.en, 비양자화 | 291MB | 추가 브라우저 메모리가 있는 영어로만 작업 가능 |
| Distil-Whisper 옵션 | 402 또는 767MB | 저장소의 증류된 체크포인트를 사용한 영어 전용 실험 |
다국어 모드에서는 긴 언어 선택기가 표시되며 사용자는 원본 언어로 전사하거나 영어로 번역할 수 있습니다. UI는 자동 언어 선택, 빔 검색, 온도 대체, 어휘 힌트 또는 분할을 노출하지 않습니다. 양자화는 가중치 크기를 줄이고 실현 가능성을 높이는 경우가 많지만 의도한 오디오에서 정확성과 안정성을 테스트해야 합니다.

실습 테스트: 속도 대 성적표 안정성
우리는 2026년 8월 20일 Chromium 기반 데스크톱 브라우저에서 공식 번들 60초 영어 샘플을 실행했습니다. 이는 표준화된 모델 벤치마크가 아닌 단일 환경 확인입니다. 네트워크 캐시, CPU, 브라우저, 열 상태 및 모델 다운로드에 따라 타이밍이 변경될 수 있습니다.
| 구성 | 관찰된 완료 | 관찰 결과 |
|---|---|---|
양자화된 다국어 Xenova/whisper-tiny (41MB) | 약 27초 | 빠르나 후반부에서 눈에 띄는 반복 문구가 발생하고 분할 오류가 여러 번 발생함 |
양자화되지 않은 영어 Xenova/whisper-tiny.en (152MB) | 약 36초 | 여전히 개별 인식 오류가 포함되어 있지만 훨씬 더 일관되고 더 잘 분할되었습니다. |
유용한 결론은 하나의 타이밍이 모든 곳에서 재현된다는 것이 아닙니다. 가장 작은 양자화된 다국어 설정도 미리보기 구성으로 취급해야 한다는 것입니다. 영어 자료의 경우 영어 전용 체크포인트가 더 큰 다운로드 가치가 있을 수 있습니다. 다국어, 시끄러운 녹음 또는 특정 도메인 녹음의 경우 기본값을 선택하기 전에 대표 클립에 대해 최소한 작은 크기, 기본 크기 및 작은 크기를 비교하십시오.

Whisper Web을 올바르게 평가하는 방법
| 미터법 | 측정 방법 | 왜 중요한가요? |
|---|---|---|
| 단어 또는 문자 오류율 | 사람이 검증한 참조 성적표와 비교 | 전반적인 정확도; 단어 공백이 없는 언어에는 문자 오류율을 사용합니다. |
| 명명된 엔터티 및 번호 | 이름, 제품, 날짜, 가격 및 단위를 별도로 점수 매기기 | 작은 오류로 인해 회의, 법률 또는 연구 노트가 무효화될 수 있습니다. |
| 환각률 | 침묵, 음악, 박수, 낮은 음성 세그먼트 포함 | Whisper 모델은 음성이 약한 경우 그럴듯한 텍스트를 내보낼 수 있습니다. |
| 타임스탬프 드리프트 | 시작, 중간, 끝의 경계를 확인하세요. | 자막 및 검색 가능한 스크립트에 중요 |
| 실시간 요인 | 처리 초를 오디오 초로 나눈 값 | 주관적인 대기 시간과 모델 속도를 분리합니다. |
| 콜드 스타트와 웜 스타트 | 추론과 별도로 모델 다운로드/로드 기록 | 반복 사용자는 매우 다른 경험을 볼 수 있습니다 |
| 메모리 및 고장률 | 대상 브라우저 및 긴 파일 테스트 | 충돌하는 모델은 사용 가능한 정확도 업그레이드가 아닙니다. |
권장 테스트 세트
깨끗한 단일 스피커 ── 이름 + 숫자 시끄러운 방 ─────────── 목소리가 겹쳐진다 전화 오디오 ────────── 압축 + 대역폭 음악/박수 ─────── 침묵 환각 체크 긴 녹음 ─────── 청크 조인 + 타임스탬프 드리프트 다국어 클립 ──── 언어/작업 정확성
- 실제 사용 사례와 일치하는 20~30개의 짧은 클립에 대해 사람이 검증한 참조를 만듭니다.
- 동일한 브라우저, 웜/콜드 상태 및 양자화 설정을 사용하여 작게, 기본적으로, 작게 실행하세요.
- 정확성, 첫 실행 시간, 웜 추론 시간, 최대 메모리 증상 및 오류를 기록합니다.
- 평균 오류율과 별도로 고유명사, 숫자, 반복 및 묵음 부분을 검토합니다.
- TXT 및 JSON 내보내기를 테스트한 다음 다운스트림 자막 변환이 허용되는지 결정합니다.
브라우저, 개인 정보 보호 및 배포 경계
| 경계 | 입양 전 확인해야 할 사항 |
|---|---|
| 브라우저 호환성 | README에는 Firefox Worker 플래그가 필요합니다. 앱의 오류 처리기는 M1/M2의 Safari에 대해 경고하고 Chrome, Firefox 또는 Edge을 권장합니다. |
| 교차 출처 오디오 | 원격 URL 로딩은 브라우저 요청을 허용하는 원본 서버에 따라 달라집니다. 일반 웹페이지 URL이 반드시 사용 가능한 오디오 URL일 필요는 없습니다. |
| 모델 캐싱 | 관리형 또는 개인용 검색 장치에서 저장소 할당량, 캐시 제거 및 반복 다운로드 확인 |
| 민감한 오디오 | 추론 코드뿐만 아니라 페이지 호스팅, 모델 제공, 원격 측정 및 브라우저 확장을 검토합니다. |
| 자체 호스팅 | 종속성을 고정하고, 의도적으로 모델 자산을 제공하고, 보안 헤더를 추가하고, 오프라인 동작을 테스트하세요. |
| 라이선스 | 애플리케이션 코드는 MIT 라이선스를 받았습니다. 모델 체크포인트와 제출된 오디오에는 여전히 자체적인 약관과 권리가 있습니다. |
저장소 세트 env.allowLocalModels = 거짓따라서 스톡 빌드에서는 번들 가중치가 아닌 원격 모델 제공을 기대합니다. 비공개 또는 오프라인 배포에는 코드 및 호스팅 변경이 필요합니다. 단순히 UI를 복제하면 에어갭(air-gapped) 전사 시스템이 생성된다고 주장하지 마십시오.
Whisper Web과 유사한 오픈 소스 도구
| 옵션 | 이럴 때 선택하세요 | 주요 절충안 |
|---|---|---|
| Whisper Web - Xenova 제작 | URL, 파일, 마이크 및 타임스탬프 내보내기가 포함된 간단한 React/Transformers.js 데모를 원합니다. | 메인 브랜치는 구식이고 제어가 제한적이며 기본 자막이나 분할 작업 흐름이 없습니다. |
| whisper.cpp WebAssembly 데모 | C/C++ 기반 브라우저 경로, 명시적인 로컬 모델 로딩 및 파일/마이크 지원을 원합니다. | 문서화된 WASM 예는 CPU 지향적이며 120초의 소형 및 캡 오디오를 통한 모델로 제한됩니다. |
| Whisper-WebUI | 보다 풍부한 자체 호스팅 자막 인터페이스, faster-whisper, 더 큰 모델 및 백엔드/API 옵션이 필요합니다. | Python/서버 설정이 필요하며 순수한 클라이언트 측 브라우저 추론이 아닙니다. |
| 현재 Transformers.js 맞춤형 앱 | 새로운 브라우저 제품을 구축 중이며 현재 WebGPU, ONNX 및 프레임워크 통합 패턴이 필요합니다. | 전체 UI, 오디오 파이프라인, 모델 수명 주기, QA 및 호환성 매트릭스를 소유하고 있습니다. |
| 기본 whisper.cpp 또는 faster-whisper | 긴 파일, 일괄 처리, 자동화 또는 제어된 데스크톱/서버 성능이 중요합니다. | 설치와 배포가 웹페이지를 여는 것보다 무겁습니다. |
Whisper Web은 소스가 작고 검사하기 쉽기 때문에 여전히 가치가 있습니다. 턴키 프로덕션 선택보다 더 나은 학습 결과물입니다. 새 애플리케이션의 경우 라이브 데모에 대한 프로토타입을 만든 다음 동일한 비공개 평가 세트를 사용하여 현재 Transformers.js 구현을 기본 또는 서버 측 엔진과 비교합니다.
생산 체크리스트
대표 오디오 + 참조 텍스트
↓
브라우저/모델/양자화 매트릭스
↓
정확성 · 환각 · 시간 · 기억력
↓
로컬 브라우저 ── 또는 ── 네이티브/서버 엔진
↓
보존 · 동의 · 수출 · 인적 검토
- 목표가 데모인지, 비공개 로컬 도구인지, 지원되는 제품인지 확인하세요.
- 저장소 커밋, Transformers.js 버전 및 정확한 모델 개정을 고정합니다.
- 대상 언어, 악센트, 소음, 묵음 및 파일 지속 시간을 벤치마크합니다.
- 콜드 다운로드 시간과 웜 전사 속도를 분리하세요.
- 명확한 진행 상황, 취소, 메모리 오류 및 지원되지 않는 브라우저 처리를 추가합니다.
- TXT/JSON이 충분한지 결정하거나 SRT/VTT을 추가하고 편집 및 분할합니다.
- 문서 오디오 보존, 모델 호스팅, 동의 및 삭제.
- 이름, 숫자, 법적 또는 의학적 의미가 중요한 경우 사람의 검토가 필요합니다.
FAQ
Whisper Web에서는 텍스트 변환을 위해 오디오를 업로드하나요?
추론 파이프라인은 브라우저 작업자에서 실행됩니다. 그러나 페이지는 모델 파일을 다운로드하고 URL 입력은 원격 오디오를 브라우저로 다운로드합니다. 완전히 오프라인이라고 설명하기 전에 배포된 사이트의 호스팅 및 네트워크 동작을 검토하세요.
라이브 마이크 전사를 지원합니까?
마이크를 통해 녹음하고 완료된 녹음 내용을 전사할 수 있습니다. 스톡 인터페이스는 지속적이고 지연 시간이 짧은 스트리밍 캡션 시스템이 아닙니다.
어떤 모델부터 시작해야 할까요?
빠른 타당성 확인을 위해서만 양자화된 최소형을 사용하세요. 대표 오디오에 대해 작은 크기, 기본 크기, 작은 크기를 비교하세요. 영어 전용 체크포인트는 영어 음성의 경우 더 안정적일 수 있으며, 기타 언어 및 영어 번역의 경우 다국어 체크포인트가 필요합니다.
자막을 내보낼 수 있나요?
직접적으로는 아닙니다. 현재 UI는 TXT을 내보내고 타임스탬프가 JSON입니다. SRT 또는 VTT에는 변환 단계와 타임스탬프 검토가 필요합니다.
WebGPU 버전이 기본값인가요?
아니요. 저장소 README는 WebGPU을 실험적 분기로 연결합니다. 현재 Transformers.js 문서는 WebGPU을 지원하지만 이 기본 분기는 이전 2.7 종속성을 유지합니다.
적극적으로 유지관리되고 있나요?
메인 브랜치의 최신 커밋은 2026년 8월 20일에 검토되었을 때 2024년 6월 10일이었습니다. 데모는 계속 실행되지만 유지 관리 격차는 기술 채택 결정에 포함되어야 합니다.
검토된 소스
- Whisper Web GitHub 저장소
- Whisper Web README 및 WebGPU 분기 참고
- 오디오 입력, 모델, 크기, 언어 및 작업
- 작업자 추론, 청킹 및 디코딩 구현
- 타임스탬프 표시 및 TXT/JSON 내보내기
- 공식 라이브 Hugging Face 스페이스
- 현재 Transformers.js WebGPU 가이드
- whisper.cpp WebAssembly 예
- Whisper-WebUI 저장소
독립적 검토 및 실습 테스트: 2026년 8월 20일. 저장소 상태, 브라우저 지원, 모델 파일 및 데모 가용성은 변경될 수 있습니다. 배포하기 전에 현재 소스 및 대상 장치를 확인하십시오.



