피드로 돌아가기
Dev.toBackend
원문 읽기
Cloud TTS Chirp3-HD와 GCS 캐싱을 통한 지연시간 89% 감소 및 비용 최적화
Cloud TTS Chirp3-HD with Caching: Fixing Voice Readout for Accessibility
AI 요약
Context
시각 장애 사용자를 위한 AI 응답 음성 출력 기능 구현 필요성 대두. 브라우저 내장 TTS의 기계적인 음성 품질 한계와 단일 소형 VM 환경의 리소스 제약으로 인한 고효율 아키텍처 설계 요구됨.
Technical Solution
- Neural2(0.5s)의 낮은 품질과 Gemini TTS(7~19s)의 높은 Latency를 분석하여 음성 자연스러움과 속도의 균형점을 갖춘 Cloud TTS Chirp3-HD(2s) 채택
- 표, 코드 블록 등 음성 출력 부적합 요소를 제거하여 노이즈를 방지하는 clean_for_tts 전처리 로직 구현
- 정제된 텍스트의 Hash 값을 키로 GCS 버킷에 MP3를 저장하는 Caching Layer 설계로 중복 생성 비용 및 API 쿼터 낭비 방지
- GCS 캐시 HIT 시 API 호출을 생략하여 무제한 무료 제공 및 응답 속도 즉시성 확보
- TTS_DAILY_CAP 설정을 통한 API MISS 발생 시의 일일 비용 상한선 제어 및 남용 방지
- Nginx의 Exact Match 설정을 통한 /api/chat/tts 엔드포인트의 정확한 라우팅 처리로 SSE 등 타 서비스와의 간섭 제거
실천 포인트
- Neural TTS 도입 시 품질, 지연시간, 비용의 3요소를 벤치마킹하여 최적의 Engine 선정 - API 호출 결과물이 결정론적(Deterministic)이라면 Hash 기반 캐싱 레이어를 통해 비용 절감 검토 - asyncpg 등 DB 라이브러리 사용 시 날짜 계산은 애플리케이션 단의 String Casting보다 SQL 내부 함수 사용 권장 - 비정형 텍스트를 음성/UI로 변환 시 전처리(Cleaning) 단계를 통해 데이터 노이즈 제거