- 날짜: 2026-08-15 (KST)
- 작성자: modam
- 주제: 음성파일 → 텍스트파일 로컬 변환(OpenAI Whisper 사용) 작업 순서 및 절차별 코드
1. 개요
- 목적: 인터넷 없이 로컬 PC에서 음성파일(mp3, m4a, wav 등)을 텍스트(txt/srt/vtt 등)로 변환한다.
- 사용 도구: OpenAI Whisper — 오픈소스 음성인식 모델. 완전 로컬 실행(첫 실행 시 모델만 자동 다운로드, 이후 오프라인 가능).
- 현재 설치 상태(이 PC 기준):
- Whisper 실행 파일:
C:\Users\modam\AppData\Local\Programs\Python\Python38\Scripts\whisper.exe - Python:
Python 3.8(C:\Users\modam\AppData\Local\Programs\Python\Python38) - 다운로드된 모델(
C:\Users\modam\.cache\whisper\):large-v3.pt(약 2.9GB, 최고 정확도 / CPU에서 느림)medium.pt(약 1.4GB, 정확도·속도 균형)
- 오디오 디코더: ffmpeg (Whisper가 내부적으로 호출 — 필수 의존성)
- Whisper 실행 파일:
2. 사전 준비물 (의존성)
| 구성요소 | 역할 | 확인 명령 |
|---|---|---|
| Python 3.8+ | Whisper 실행 환경 | python --version |
| whisper | 음성인식 CLI | whisper --help |
| ffmpeg | 오디오 파일 디코딩 | ffmpeg -version |
확인용 코드 (PowerShell)
# whisper 위치 확인
Get-Command whisper | Select-Object Source
# ffmpeg 설치 여부 확인 (없으면 오류가 남)
ffmpeg -version | Select-Object -First 1
# 다운로드된 모델 목록 확인
Get-ChildItem "$env:USERPROFILE\.cache\whisper" | Select-Object Name, @{n='MB';e={[int]($_.Length/1MB)}}
미설치 시 설치 방법 (이 PC엔 이미 설치되어 있으므로 참고용)
powershell pip install -U openai-whisper # whisper 설치 winget install Gyan.FFmpeg # ffmpeg 설치 (또는 https://www.gyan.dev/ffmpeg/)
3. 작업 순서 (전체 흐름)
[1] 음성파일 준비 → [2] 해당 폴더로 이동 → [3] whisper 실행
→ [4] 진행 대기(CPU는 느림) → [5] output 폴더에서 txt 결과 확인
가장 흔한 실패 원인은 파일 경로 문제다. whisper는 "현재 작업 폴더" 기준으로 파일을 찾으므로,
파일이 있는 폴더로 먼저 이동하거나 전체 경로를 지정해야 한다.
4. 절차별 코드
절차 1 — 음성파일이 있는 폴더로 이동
# 예: 음성파일이 C:\Users\modam 에 있는 경우
cd C:\Users\modam
# 파일이 실제로 있는지 먼저 확인 (있어야 함)
Get-ChildItem *.mp3
절차 2 — 기본 변환 (한국어, txt 출력)
whisper "CodingStudywithAI.mp3" --model medium --language Korean --output_format txt --output_dir ./output
--model medium: 정확도·속도 균형 (일상 용도 권장)--language Korean: 언어 지정 (자동감지 생략 → 더 빠르고 정확)--output_format txt: 텍스트만 출력--output_dir ./output: 결과를output폴더에 저장
절차 3 — 정확도 우선 (large-v3, 느리지만 최고 품질)
whisper "CodingStudywithAI.mp3" --model large-v3 --language Korean --output_format txt --output_dir ./output
절차 4 — 자막(srt/vtt)까지 함께 뽑기
# srt 자막
whisper "회의녹음.m4a" --model medium --language Korean --output_format srt --output_dir ./output
# 모든 형식(txt, srt, vtt, tsv, json) 한 번에
whisper "회의녹음.m4a" --model medium --language Korean --output_format all --output_dir ./output
절차 5 — 결과 확인
# 생성된 결과 파일 목록
Get-ChildItem .\output
# txt 내용 미리보기 (앞 20줄)
Get-Content .\output\CodingStudywithAI.txt -TotalCount 20
5. 옵션 요약
| 옵션 | 설명 | 예시 값 |
|---|---|---|
--model |
모델 크기(클수록 정확·느림) | tiny, base, small, medium, large-v3 |
--language |
음성 언어 지정 | Korean, English |
--output_format |
출력 형식 | txt, srt, vtt, tsv, json, all |
--output_dir |
결과 저장 폴더 | ./output |
--device |
연산 장치 | cpu(기본), cuda(GPU 있을 때) |
--task |
작업 종류 | transcribe(받아쓰기), translate(영어로 번역) |
6. 자주 나오는 메시지 / 오류 대처
(1) FP16 is not supported on CPU; using FP32 instead
- 오류 아님(경고). GPU 없이 CPU로 돌릴 때 항상 뜨는 정상 안내. 결과에 영향 없음 → 무시.
(2) Error opening input file ... : No such file or directory
- 원인: 지정한 음성파일이 현재 폴더에 없음(경로 문제).
-
해결:
```powershell
파일이 있는 폴더로 이동했는지 확인
Get-Location
Get-ChildItem *.mp3또는 파일 전체 경로를 직접 지정
whisper "C:\Users\modam\소리\CodingStudywithAI.mp3" --model medium --language Korean --output_format txt --output_dir ./output
```
(3) 변환이 너무 느림
large-v3+ CPU 조합은 녹음 길이의 수 배 시간이 걸릴 수 있음(정상).- 속도 개선:
--model medium또는--model small로 낮추기.
(4) 진행 표시 없이 멈춘 것처럼 보임
- CPU 처리 중일 뿐. 프롬프트가 안 돌아와도 끝날 때까지 기다리면 됨.
7. 참고
- Whisper 공식: https://github.com/openai/whisper
- 지원 입력 포맷: ffmpeg가 읽을 수 있는 대부분의 오디오/비디오(mp3, m4a, wav, flac, mp4 등).
- 완전 로컬 처리이므로 외부로 데이터가 전송되지 않음(개인정보 안전).