Ch.1 Python 라이브러리 15선

Whisper — 음성을 텍스트로

Whisper의 역할과 동작 원리를 설명할 수 있다음성 파일을 텍스트로 변환하는 코드를 작성할 수 있다타임스탬프 포함 회의록을 자동 생성할 수 있다

녹음 파일이 쌓여만 가는데 누가 타이핑 좀 해줬으면

2시간짜리 회의를 녹음해놨는데, 회의록 정리하려면 4시간이 걸립니다. 인터뷰 영상도 자막을 달아야 하는데 엄두가 안 납니다.

녹음 파일을 넣으면 알아서 텍스트로 바꿔주는 게 있을까?

Whisper를 쓰면 됩니다. OpenAI가 만든 음성 인식 AI로, 음성/영상 파일을 넣으면 텍스트로 자동 변환합니다.


article

핵심 내용

Whisper는 OpenAI가 만든 음성 인식 AI입니다. 음성 파일이나 영상 파일을 넣으면, 사람이 말한 내용을 텍스트로 자동 변환합니다.

한 줄 요약: 녹음기를 가진 AI 비서 — 들으면서 타이핑까지 해준다 실생활 비유: 회의에 속기사를 데려가는 것과 같습니다. Whisper는 녹음 파일만 주면 혼자서 듣고, 받아쓰고, 타임스탬프까지 찍어줍니다.

녹음된 말을 텍스트로 바꿔야 할 때, 사람 대신 AI가 받아쓰게 합니다.

수동으로 하면: 녹음 재생 → 일시정지 → 타이핑 → 다시 재생 → 2시간 회의에 4시간 소요

Whisper 쓰면: model.transcribe('meeting.mp3') → 몇 분 안에 전체 텍스트 완성

Whisper를 설치하고, 음성 파일을 텍스트로 변환해 봅시다. ffmpeg도 함께 필요합니다 (음성 파일을 읽는 도구).

pip install openai-whisper
import whisper

# 모델 로드 (tiny, base, small, medium, large)
model = whisper.load_model("base")

# 음성 파일 → 텍스트 변환
result = model.transcribe("meeting.mp3")

# 결과 출력
print(result["text"])

모델 크기에 따라 정확도와 속도가 달라집니다. tiny(가장 빠름) → basesmallmediumlarge(가장 정확) 처음엔 base로 시작하고, 정확도가 부족하면 medium으로 올리세요.

AI에게 Whisper 코드를 만들어 달라고 할 때, 입력 파일 + 언어 + 출력 형식 + 모델 크기를 구체적으로 말하세요.

좋은 프롬프트 예시: "Whisper로 meeting.mp3를 텍스트로 변환해줘. 한국어(language='ko'), 타임스탬프 포함, 회의록.txt로 저장, medium 모델 사용"

프롬프트 변형: "폴더 안의 mp3 파일 전부 텍스트로 변환하고, 각각 같은 이름의 .txt 파일로 저장해줘. 진행률도 보여줘"

import whisper

model = whisper.load_model("medium")

# 한국어 지정 + 타임스탬프 포함
result = model.transcribe(
    "meeting.mp3",
    language="ko",
    verbose=True  # 진행 상황 표시
)

# 타임스탬프 포함 회의록 저장
with open("회의록.txt", "w", encoding="utf-8") as f:
    for segment in result["segments"]:
        start = segment["start"]
        end = segment["end"]
        text = segment["text"]
        f.write(f"[{start:.1f}s ~ {end:.1f}s] {text}\n")

print("회의록 저장 완료!")

미니 프로젝트: 회의 녹음 → 회의록 자동 생성기 타임스탬프 포함, 발언자 구분, 파일 저장까지 한 번에 처리합니다.

import whisper
import os
from datetime import datetime

def create_meeting_minutes(audio_file, model_size="medium"):
    """회의 녹음 → 회의록 자동 생성"""
    
    # 1. 모델 로드
    print(f"모델 로딩 중... ({model_size})")
    model = whisper.load_model(model_size)
    
    # 2. 음성 → 텍스트 변환
    print(f"변환 중: {audio_file}")
    result = model.transcribe(audio_file, language="ko")
    
    # 3. 회의록 파일 생성
    today = datetime.now().strftime("%Y-%m-%d")
    filename = f"회의록_{today}.txt"
    
    with open(filename, "w", encoding="utf-8") as f:
        f.write(f"=== 회의록 ({today}) ===\n")
        f.write(f"원본 파일: {audio_file}\n")
        f.write("=" * 40 + "\n\n")
        
        for seg in result["segments"]:
            start = seg["start"]
            text = seg["text"].strip()
            minutes = int(start // 60)
            seconds = int(start % 60)
            f.write(f"[{minutes:02d}:{seconds:02d}] {text}\n")
        
        f.write("\n" + "=" * 40 + "\n")
        f.write(f"전체 텍스트:\n{result['text']}\n")
    
    print(f"회의록 저장 완료: {filename}")
    return filename

# 실행
create_meeting_minutes("meeting.mp3")

실행 방법: meeting_minutes.py로 저장 → python meeting_minutes.py 실행 → meeting.mp3를 분석해서 타임스탬프 포함 회의록을 자동 생성합니다. 팁: GPU가 있으면 large 모델도 빠르게 돌릴 수 있습니다.

OpenAI Whisper의 주요 기능은?

key

핵심 용어

입력 형식

mp3, wav, m4a, mp4, webm 등 대부분의 음성/영상 파일

지원 언어

한국어, 영어, 일본어 등 99개 언어 자동 감지

출력

텍스트, 타임스탬프, SRT 자막 파일

회의록 정리

회의 녹음 → 텍스트 변환 → 요약 정리까지 자동화

유튜브 자막

영상 파일에서 자막(SRT) 파일 자동 생성

인터뷰 정리

인터뷰 녹음을 텍스트로 변환 → 보고서 작성에 활용

강의 노트

수업 녹음을 텍스트로 변환 → 핵심 요약 정리

check_circle

핵심 정리

  • 1Whisper는 OpenAI의 음성 인식 AI — 음성/영상 파일을 텍스트로 자동 변환
  • 2model.transcribe()로 변환하고, result['segments']로 타임스탬프 접근
  • 3모델 크기(tiny~large)로 속도와 정확도를 조절할 수 있다
  • 4회의록, 자막, 인터뷰 정리 등 반복적인 받아쓰기를 자동화한다

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작