음성 인식
Speech Recognition
음성을 텍스트로 변환. Whisper, STT 서비스.
Speech Recognition
음성을 텍스트로 변환. Whisper, STT 서비스.
음성 인식(Speech Recognition, ASR - Automatic Speech Recognition)은 사람의 음성을 컴퓨터가 이해할 수 있는 텍스트로 변환하는 기술입니다. STT(Speech-to-Text)라고도 불리며, 음성 비서, 자동 자막 생성, 콜센터 자동화, 의료 받아쓰기 등 다양한 분야에서 활용됩니다. 2024-2025년 현재 OpenAI Whisper, Google Speech-to-Text, AWS Transcribe 등이 대표적인 서비스입니다.
음성 인식 기술은 1950년대 단일 숫자 인식에서 시작해 2012년 딥러닝 혁명 이후 급격히 발전했습니다. 특히 2022년 OpenAI가 공개한 Whisper 모델은 68만 시간의 다국어 데이터로 학습되어 영어 기준 인간 수준(WER 5-6%)의 정확도를 달성했고, 오픈소스로 공개되어 업계 표준이 되었습니다.
현대 음성 인식 시스템의 핵심 구조는 인코더-디코더 아키텍처입니다. 음성 신호를 멜 스펙트로그램(Mel spectrogram)으로 변환한 후, Transformer 기반 인코더가 음향 특징을 추출하고, 디코더가 텍스트를 생성합니다. Whisper large-v3 모델은 15억 개의 파라미터로 100개 이상의 언어를 지원하며, 특히 한국어 인식 정확도가 이전 모델 대비 크게 향상되었습니다.
실무에서 음성 인식 도입 시 고려할 점은 정확도(WER/CER), 지연 시간(latency), 비용, 개인정보 보호입니다. 실시간 스트리밍이 필요한 경우 Deepgram이나 AssemblyAI 같은 특화 서비스를, 오프라인 배치 처리는 Whisper를 권장합니다. 2025년 현재 한국어 음성 인식은 네이버 CLOVA, 카카오 등 국내 서비스도 높은 정확도를 보여주고 있습니다.
# OpenAI Whisper를 사용한 음성 인식 예제
# pip install openai-whisper torch
import whisper
# 모델 로드 (tiny, base, small, medium, large-v3)
model = whisper.load_model("base")
# 오디오 파일 음성 인식
result = model.transcribe("audio.mp3", language="ko")
print("인식된 텍스트:", result["text"])
print("신뢰도:", result.get("confidence", "N/A"))
# 세그먼트별 타임스탬프 출력
for segment in result["segments"]:
start = segment["start"]
end = segment["end"]
text = segment["text"]
print(f"[{start:.2f}s - {end:.2f}s] {text}")
# 실시간 스트리밍용 faster-whisper 사용 예제
# pip install faster-whisper
from faster_whisper import WhisperModel
# GPU 사용 시 device="cuda", 없으면 device="cpu"
fast_model = WhisperModel("base", device="cpu", compute_type="int8")
segments, info = fast_model.transcribe("audio.mp3", language="ko")
print(f"언어 감지: {info.language} (확률: {info.language_probability:.2%})")
for segment in segments:
print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")
| 서비스 | 한국어 WER | 비용 (시간당) | 특징 |
|---|---|---|---|
| Whisper large-v3 | ~8% | 무료 (로컬) | 오픈소스, 오프라인 가능 |
| OpenAI Whisper API | ~8% | $0.006/분 | 간편 API, 빠른 응답 |
| Google Speech-to-Text | ~7% | $0.016/분 | 실시간 스트리밍, 다양한 모델 |
| AWS Transcribe | ~9% | $0.024/분 | AWS 생태계 통합 |
| Deepgram | ~10% | $0.0125/분 | 초저지연 실시간 특화 |
* 2025년 1월 기준. WER(Word Error Rate)은 낮을수록 좋음. 한국어 일반 대화 기준 측정치.
"콜센터 자동화에는 실시간 스트리밍이 필수라 Deepgram이나 Google STT를 권장합니다. Whisper는 정확도는 높지만 지연 시간이 있어서 배치 처리용 회의록 변환에 더 적합해요."
"현대 ASR 시스템은 대부분 Transformer 기반 인코더-디코더 구조입니다. Whisper는 멜 스펙트로그램을 입력으로 받아 인코더가 음향 특징을 추출하고, 디코더가 자기회귀적으로 텍스트를 생성합니다. 평가 지표로는 WER(Word Error Rate)과 CER(Character Error Rate)을 사용하고, 한국어는 어절 단위 분리 특성상 CER도 함께 확인해야 합니다."
"faster-whisper 사용하면 원본 Whisper 대비 4배 빠르게 추론할 수 있어요. CTranslate2 엔진 기반이라 INT8 양자화도 지원하고, 저사양 GPU나 CPU에서도 실용적인 속도가 나옵니다."
배경 소음이 많으면 정확도가 급락합니다. 노이즈 캔슬링 전처리(noisereduce 라이브러리)나 빔포밍 마이크 사용을 고려하세요.
의료, 법률 등 전문 용어는 일반 모델로 인식이 어렵습니다. 커스텀 어휘(custom vocabulary)를 등록하거나 도메인 특화 모델 파인튜닝을 고려하세요.
오디오 품질 향상 전처리 + 음성 인식 + 문장 부호 삽입/철자 교정 후처리를 파이프라인으로 구성하면 실용 수준의 정확도를 확보할 수 있습니다.