-
Whisper 시리즈 4화 – Whisper를 이용한 실시간 음성 인식 구현 방법AI/음성 2025. 4. 29. 12:05
지금까지 Whisper를 사용해 로컬 파일을 텍스트로 변환하는 방법을 배웠습니다.
그렇다면, 실시간 음성 인식도 가능할까요?결론부터 말하면, Whisper는 실시간 처리에 최적화되어 있지는 않지만, 스트리밍 형태의 마이크 입력을 받아 주기적으로 처리하는 방식으로 충분히 유사한 경험을 만들 수 있습니다.
이번 글에서는 Python을 활용한 실시간 음성 인식 흐름, 그리고 Whisper 모델과 마이크 입력을 연동하는 기본 예제 코드를 정리해드립니다.
Whisper로 실시간 음성 인식이 가능한가?
Whisper는 기본적으로 batch 기반 모델입니다.
즉, 전체 음성 파일을 입력받고 분석하는 구조이기 때문에, 진정한 의미의 "리얼타임 STT"는 아닙니다.하지만 다음 두 가지 방식을 통해 실시간 인식에 근접할 수 있습니다.
- 마이크 입력을 짧은 오디오로 분할하여 반복적으로 Whisper에 전달
- WebSocket 또는 비동기 큐를 이용한 실시간 처리 파이프라인 구성
이번 글에서는 첫 번째 방식, 짧은 오디오를 주기적으로 저장해 Whisper로 처리하는 구조를 구현해봅니다.
사전 준비 패키지
다음 Python 패키지가 필요합니다.
pip install pyaudio numpy soundfile
- pyaudio: 마이크 입력 스트리밍
- numpy: 오디오 데이터 처리
- soundfile: Whisper가 읽을 수 있도록 .wav 저장
Whisper는 이미 설치되었다고 가정합니다.
기본 흐름 구조
- 마이크로부터 5초간 음성 입력
- 입력 데이터를 .wav 파일로 저장
- 저장된 파일을 Whisper로 처리
- 텍스트 출력
- 위 과정을 반복
실시간 인식 예제 코드
import whisper import pyaudio import wave import time CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 16000 RECORD_SECONDS = 5 WAVE_OUTPUT_FILENAME = "temp.wav" model = whisper.load_model("base") audio = pyaudio.PyAudio() stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) print("실시간 음성 인식 시작 (Ctrl+C로 종료)") try: while True: frames = [] for _ in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') wf.setnchannels(CHANNELS) wf.setsampwidth(audio.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close() result = model.transcribe(WAVE_OUTPUT_FILENAME) print("📢 인식된 텍스트:", result["text"]) except KeyboardInterrupt: print("종료합니다.") stream.stop_stream() stream.close() audio.terminate()
유의사항 및 확장 팁
- 마이크 입력은 환경에 따라 노이즈 제거, 게인 조정이 필요할 수 있습니다.
- Whisper 모델 크기를 small, tiny로 줄이면 처리 속도가 개선됩니다.
- WebSocket 기반 프론트엔드와 연동해 실시간 자막 UI를 구현하는 것도 가능합니다.
결론 및 인사이트
Whisper는 본래 실시간 시스템이 아니지만, 위와 같은 구조를 통해 현실적인 수준의 실시간 음성 인식을 구현할 수 있습니다.
이는 회의 자막 생성, 인터뷰 기록, 실시간 보조 시스템 등에 유용하게 활용될 수 있습니다.물론 Whisper보다 더 빠른 실시간 STT를 원한다면 Vosk, DeepSpeech, Google STT API 등도 함께 고려하는 것이 좋습니다.
하지만 Whisper는 높은 정확도와 다국어 지원을 동시에 제공하기 때문에, 그만한 가치가 있습니다.
다음 예고
다음 글에서는 Whisper 자막 생성 자동화 – 유튜브 영상 자막 만들기를 다룹니다.
실제 영상 파일을 Whisper로 처리해 자막 파일(SRT, VTT)을 생성하는 법까지 상세히 알려드리겠습니다.LIST'AI > 음성' 카테고리의 다른 글
Whisper 시리즈 6화 – Whisper API 사용법, OpenAI 연동과 서버 구축 가이드 (0) 2025.05.01 Whisper 시리즈 5화 – Whisper 자막 생성 자동화, 유튜브 영상 자막 만들기 (1) 2025.04.30 Whisper 시리즈 3화 - Whisper 기본 사용법 Python으로 음성 파일 변환하기 (0) 2025.04.28 Whisper 시리즈 2화 - Whisper 설치 방법 총정리 Mac, Windows, Linux 별 완벽 가이드 (0) 2025.04.28 Whisper 시리즈 1화 - OpenAI Whisper란 무엇인가? 음성 인식 기술의 진화 (0) 2025.04.28