본문 바로가기
카테고리 없음

음성 AI 개발 입문 2026: STT·TTS·Realtime 학습 경로

by 정부우르사 2026. 5. 3.
반응형

ChatGPT Voice가 자연스럽게 끼어들고 OpenAI Realtime API로 200ms 안에 대답하는 데모가 쏟아지면서, 한국 개발자 사이드 프로젝트 주제도 챗봇에서 음성 인터페이스로 빠르게 옮겨가는 중이다. 그런데 막상 시작하려고 하면 STT·TTS·Realtime·VAD·Diarization 같은 용어가 한꺼번에 쏟아져 어디부터 손대야 할지 막막하다.

이 글은 GitHub의 Voice-AI-for-Beginners 커리큘럼을 뼈대로, 한국어 환경에서 음성 AI 개발을 처음 시작하는 개발자가 한 달 안에 "음성 챗봇 1개"를 만들 수 있도록 5단계 학습 경로와 도구 선택 기준, 한국어 처리 시 자주 막히는 지점까지 정리한다.


📌 핵심 3줄 요약

  • 음성 AI는 STT(듣기) · TTS(말하기) · Realtime(대화) 3축으로 나누면 학습 곡선이 완만하다
  • 입문자는 Whisper로 STT → OpenAI/ElevenLabs TTS → Realtime API 순서가 가장 빠르다
  • 한국어 환경에선 받침·외래어·존댓말 톤 보정이 핵심이고, 클로바·카카오 API가 보조 옵션으로 유효하다

1. 음성 AI의 3축 이해

음성 AI는 결국 세 가지 기능 블록의 조합이다.

  • STT(Speech-to-Text): 마이크 입력을 텍스트로 변환. 대표 도구는 OpenAI Whisper, Deepgram, 네이버 클로바 Speech.
  • TTS(Text-to-Speech): 텍스트를 사람 목소리로 합성. ElevenLabs, OpenAI TTS, 카카오 Speech가 자주 쓰인다.
  • Realtime/Voice Agent: STT → LLM → TTS를 묶어 200~500ms 지연으로 대화하는 파이프라인. OpenAI Realtime API, LiveKit Agents가 대표.

처음에는 Realtime이 매력적이라 바로 뛰어들기 쉬운데, 내부 구조를 모르고 시작하면 지연 디버깅이 거의 불가능하다. STT와 TTS를 따로 한 번씩 돌려본 뒤 합치는 순서가 훨씬 안전하다.


2. 학습 경로 5단계

한 달 잡고 주말마다 한 단계씩 끝낸다는 페이스가 현실적이다.

  1. 개념·용어 정리 — 샘플레이트(16kHz vs 24kHz), VAD, 코덱(Opus·PCM), 스트리밍과 배치 차이를 한 페이지로 요약.
  2. Whisper로 STT 첫 실습 — pip install openai-whisper로 5분짜리 wav 파일을 한국어/영어 양쪽으로 받아쓰기.
  3. OpenAI/ElevenLabs TTS — 같은 문장을 두 서비스로 합성해 톤·감정·발음을 비교.
  4. Realtime API로 대화형 — WebSocket으로 마이크 입력을 실시간 스트리밍하고 응답을 스피커로 바로 재생.
  5. 한국어 특화 처리 — 외래어 사전, 존댓말 톤, 노이즈 환경 후처리까지 붙이면 실제 서비스 품질에 근접한다.

처음 Whisper를 노트북 CPU에서 돌렸을 때 5분 음성에 4분이 걸려 당황했는데, medium 대신 small 모델로 내리거나 GPU 한 줄을 켜면 체감이 완전히 달라진다.


3. 도구 선택 가이드

여섯 개 주요 도구를 가격·지연·한국어 품질·실시간 지원·난이도로 비교했다.

도구 종류 가격(대략) 지연 한국어 실시간 난이도
OpenAI Whisper STT 오픈소스 무료 배치 부분 낮음
OpenAI Realtime API Realtime $0.06/분(입력) 200~400ms O
ElevenLabs TTS $5/월~ 빠름 중상 O 낮음
Deepgram STT $0.0043/분~ 200ms O
네이버 클로바 Speech STT/TTS 건당 과금 빠름 최상 부분
카카오 Speech STT/TTS 무료 쿼터+과금 빠름 최상 부분

의사결정 요령: 영어·다국어 대화 중심이면 OpenAI 스택이 가장 매끄럽고, 한국어 콜센터·받아쓰기처럼 발음 정확도가 핵심이면 클로바·카카오를 STT 백엔드로 끼우는 하이브리드 구성을 추천한다.


4. 첫 프로젝트: 30분 음성 챗봇

흐름은 단순하다. 마이크 입력 → STT → LLM 호출 → TTS → 스피커 재생.

import openai, sounddevice as sd, soundfile as sf

# 1) 5초 녹음
audio = sd.rec(int(5 * 16000), samplerate=16000, channels=1)
sd.wait()
sf.write("in.wav", audio, 16000)

# 2) Whisper로 STT
text = openai.audio.transcriptions.create(
    model="whisper-1", file=open("in.wav", "rb"), language="ko"
).text

# 3) LLM 응답 + 4) TTS
reply = openai.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": text}],
).choices[0].message.content

speech = openai.audio.speech.create(model="tts-1", voice="alloy", input=reply)
speech.stream_to_file("out.mp3")

여기까지 동작하면 다음 주말엔 5초 녹음 대신 WebSocket 기반 Realtime API로 바꿔 체감 지연을 절반으로 줄인다. 동작 확인용 코드라 에러 처리·중단 버튼은 일부러 뺐다.


5. 한국어 음성 처리 유의점

영어 기준으로 만든 파이프라인을 한국어에 그대로 붙이면 작은 사고가 자주 난다.

  • 받침 처리: TTS가 "값이"를 [가비]로 읽거나 "닭을"을 [닥글]로 읽는 경우. 사전 치환으로 보정하거나 한국어 특화 모델 사용.
  • 외래어·고유명사: "Claude"가 [클로드]/[클라우드] 둘 다 읽혀 혼란. 발음 사전을 합성 단계에 주입.
  • 존댓말 톤: 같은 문장이라도 "~합니다체"와 "~예요체" 톤이 합성기에 따라 부자연스럽다. ElevenLabs는 voice clone, 클로바는 다중 음색 프리셋이 무난.
  • 노이즈 환경: 카페·차량 소음에선 Whisper 정확도가 뚝 떨어진다. RNNoise 같은 전처리 한 단을 두면 체감 차이가 크다.

6. 다음 단계와 학습 리소스

한 달짜리 입문 코스가 끝났다면 다음 세 갈래 중 하나를 골라 깊게 파는 편이 좋다.

  • 실시간 통역기 — STT(언어 A) → 번역 LLM → TTS(언어 B). 회의록·여행용 PoC.
  • 음성 클론 — ElevenLabs Voice Lab이나 오픈소스 XTTS-v2로 자기 목소리 합성.
  • 온디바이스 STT — whisper.cpp·faster-whisper로 네트워크 없이 로컬 처리.

학습 리소스 추천:


작성자: AI 음성 인터페이스를 6개월간 사이드 프로젝트로 만들어보며 정리한 입문자 시점의 학습 경로입니다. 도구 가격·지연 수치는 2026년 5월 기준이며 이후 변동이 있을 수 있습니다.

반응형