정규화 개요 및 예시
01. 텍스트 전처리와 TTS 파이프라인 무결성
텍스트를 음성(Speech)으로 합성할 때 프론트엔드(TN/G2P) 단계의 오독은 다운스트림 음향 모델로 그대로 전파되어 최종 음성의 명료도를 훼손합니다. 오디오북이나 방송 더빙 제작 현장에서는 이를 보정하기 위해 대본을 사전 검수하기도 하지만, 즉각적인 반응이 필요한 실시간 대화형 AI(LLM-to-Speech) 환경에서는 음성 변환 전단계의 정확하고 빠른 자동 정규화가 중요합니다.
SNAP은 실시간 음성 스트리밍 파이프라인에 최적화된 경량 엔진입니다. '경량 신경망의 문맥 속성 판별'과 '결정론적 룰 엔진의 발음 제어'를 결합하여, 지연을 최소화하면서도 일관되고 신뢰할 수 있는 텍스트 전처리를 지원합니다.
02. Frozen BERT Probing을 통한 모호성 해소
SNAP은 대형 생성 모델 대신 고정된 소형 BERT 백본 위의 경량 Probing Head가 어휘·수사의 문맥적 속성만 판별하고, 실제 텍스트 치환과 한국어 표준 발음법 적용은 결정론적 룰 엔진이 수행합니다. 이를 통해 생성형 모델에서 발생하는 단어 왜곡이나 환각 위험을 억제하며 즉각적인 사전 수정이 가능합니다.
실제 문장 수준 변환 해결 예시
기존 G2P/MeCab 엔진에서 오독이 발생하는 문맥 모호성 문장에 대해 SNAP이 정확히 구별해 내는 비교 대조입니다.
위와 같은 예제들을 굳이 기존 방식대로 처리하려면, 수많은 어휘 사전과 예외 규칙을 지속적으로 확장해야만 합니다. 그러나 이는 규칙 수 폭증에 따른 엔진 복잡도가 기하급수적으로 증가하는 한계에 직면합니다. SNAP은 다양한 목적의 Neural Head들이 Frozen BERT 임베딩에서 문맥 구조를 1차 정제함으로써, 예외 규칙의 복잡도를 최소화하고 정교한 규칙 모듈 결합을 통해 안정적인 정규화를 수행합니다.
03. 실시간 인퍼런스 및 지연시간 최적화
SNAP은 Distilled Mini-BERT 백본과 고성능 C++17 Native 엔진(Zero-Allocation 1D Flat DP 음운 룰 및 Zero std::regex 네이티브 스캐너)을 결합하여, CPU 단일 스레드에서도 문장당 평균 1.85 ~ 2.68 ms (초당 370 ~ 538문장)의 극저지연 실시간 처리를 지원합니다. 또한 BERT 내장 음성 파이프라인 연동 시 사전 계산된 BERT Hidden State를 100% 캐싱·공유하여 추가 오버헤드를 제로화합니다.
| 구동 환경 | 문장 처리 지연시간 | 특징 및 적용 분야 |
|---|---|---|
| BERT Hidden State 재활용 (임베디드 모드) | +0.03 ms / 문장 | BERT 내장 음성 파이프라인 연동 시 캐시 공유 (추가 지연시간 Zero 수렴) |
| SNAP C++ Native 엔진 — CPU (단일 스레드) | 1.85 – 2.68 ms (370.8 FPS) | C++17 Native DLL (snap_cpp.dll), Zero-Allocation 1D Flat DP 룰 엔진 (10단어 이하 1.85ms / 20단어 이하 2.57ms / 30단어 이하 3.32ms) |
| SNAP 클라우드 마이크로서비스 (FastAPI REST) | ~20 ms / 요청 | Google Cloud Run 완전관리형 서비스 (서울 리전: asia-northeast3), 공개 OpenAPI 엔드포인트 제공 |
| 동시 처리 방식 (Batch Size) | 총 소요 시간 (전체 묶음) | 문장당 평균 처리 지연시간 |
|---|---|---|
| 단건 순차 처리 (1개씩 32회) | ~380 ms | ~11.8 ms |
| 배치 처리 (Batch 4: 4문장 동시) | ~16 ms | ~4.0 ms |
| 배치 처리 (Batch 16: 16문장 동시) | ~28 ms | ~1.7 ms |
| 배치 처리 (Batch 32: 32문장 동시) | ~42 ms | ~1.3 ms |
SNAP 기반 기술
SNAP 모듈형 신경망 Head 아키텍처
9개 언어별 프로브 및 규칙SNAP은 언어별 형태론적 복잡성에 맞춰 고정된 BERT 모델 상단에 신경망 프로브(Probes) 및 규칙 모듈을 선택적으로 결합합니다.
• 2-Layer 음운 엔진 (POS-First): 국립국어원 표준 발음법 30개 항 전수 지원. Zero-Allocation C++ 1차원 Flat DP Viterbi 룰 엔진(370+ FPS) 탑재. 접속조사 '과'([과]) vs 학과 명사 어근('문과'[문꽈]), 관형격 조사 '의'([에]) vs 명사 어간('의의'[의이]) 정밀 분별 및 현실 외래어 발음 지원.
• 신경망 Probing Heads: 형태소 Head (158개 복합 품사 태그, 국립국어원 NIKL_MP 2025 평가셋 93.98%), 동음이의어 Head (9대 다빈도 독립 서브헤드 97.25%, 안다/열병/감기 100%), 수사 단위 Head (8대 핵심 단위 99.11%), 기호/서식 분류 Head (8대 서식 클래스 98.21%).
• 스타일 변환 옵션 & 회귀 검증 체계: 대화체 어미 변환(speech_style: haeyo(해요)/banmal(반말)/hapsio(하십시오)), 발음 스타일(pronunciation_style: modern_standard/strict_standard/colloquial), 단위 표기(unit_style) 옵션 지원 및 1만 건 골든 베이스라인 자동 회귀 검증 체계.
핵심 기술 스택 & 사양
역정규화 개요 및 예시
01. 역정규화 (Inverse Text Normalization)
음성 인식(STT) 결과물은 일반적인 서식 형태의 문서와는 표기 방식에 큰 차이가 존재하며, 이러한 격차를 정교하게 줄여주는 단계가 역정규화(ITN)입니다. 특히 사람이 읽기 쉬운 표준 수치 표기는 문서의 용도와 문맥, 의미에 따라 유연하게 변환되어야 고품질의 텍스트 결과를 완성할 수 있습니다. 최근 STT 기술의 발전으로 이러한 차이는 점점 줄어들고 있으나, 결정적으로 의료·국방·연구소·금융 등 특정 도메인에서는 규정된 전문 표기법에 부합하는 맞춤형 역정규화 변환이 필수적입니다.
언어별 역정규화(ITN) 변환 해결 예시
🇰🇷 Korean Release / Multilingual Roadmap기존 규칙 기반 ITN 엔진에서 수치 파싱 오류가 발생하는 발화 문장에 대해 SNAP-ITN이 정확하게 역정규화하는 예시 대조입니다. (현재 한국어를 정식 지원하며, 일/영어는 다국어 확장 로드맵 진행 중입니다).
02. 도메인별 맞춤 표기 커스터마이징
역정규화는 문서를 일반적인 표준 표기 방식으로 변환하는 것도 가능하지만, 도메인의 필요에 따라 원하는 설정을 지정해 두면 금액 표기법, 단위 표기법, 시간 표기법 등 다양한 변환 규칙을 유연하게 커스터마이즈할 수 있습니다.
• 발화 입력: "삼천오백원 결제 / 십오만달러 송금"
• 표준 기본 변환: "3,500원 / $150,000"
• ⚙️ 커스텀 설정 변환: "3,500 KRW / 150,000 USD"
• 발화 입력: "오후 세시 삼십분 / 이천이십육년 칠월 이십칠일"
• 표준 기본 변환: "PM 3:30 / 2026-07-27"
• ⚙️ 커스텀 설정 변환: "15:30 / 2026. 07. 27."
• 발화 입력: "백오십 밀리그램 투여 / 체온 삼십칠도 오분"
• 표준 기본 변환: "150mg / 37.5℃"
• ⚙️ 커스텀 설정 변환: "150 mg / 37.5 deg C"
• 발화 입력: "공오삼공 시 일공오 밀리 포병대대 이동"
• 표준 기본 변환: "05:30시 105mm 포병대대 이동"
• ⚙️ 커스텀 설정 변환: "0530H 105mm 포병대대 이동"
SNAP_ITN 기반 기술
SNAP-ITN Hybrid Neural-Rule Architecture
🇰🇷 Korean Release / Multilingual Roadmap핵심 SNAP 엔진은 3개국어(한국어·영어·일본어) 정규화를 체계적으로 지원하며, 역정규화 엔진인 SNAP-ITN은 현재 한국어를 선행 정식 지원하고 일/영어 확장을 진행 중입니다.
날짜, 시각, 금액, 수사(한자어 vs 고유어), 전번, 기호 등 수치 세부 범주를 문맥에 따라 정밀 분류합니다.
신경망 인퍼런스 확률, N-gram Perplexity, 그리고 변환 전후 BERT Hidden Representation의 코사인 유사도를 실시간으로 검증(Semantic Preservation Verification)합니다. 불확실성이나 의미 발산이 검출되면 원본 음성 텍스트로 안전하게 롤백하여 수치 변환의 데이터 무결성을 유지합니다.
34,281 문장 대용량 코퍼스 및 300건의 고난도 벤치마크 테스트에서 99.96% Effective Pass Rate 달성 (CPU 10ms / GPU CUDA 0.23ms 초저지연).
응용 예시 및 데모
실시간 텍스트 정규화 데모
Hugging Face SpaceHugging Face Spaces 환경에서 SNAP Native C++ 엔진 기반의 텍스트 정규화(TN) 및 G2P 추론을 직접 테스트할 수 있는 대화형 데모입니다. 한국어, 영어, 일본어의 발음 변환 및 SSML 출력을 지원합니다.
SNAP과 TTS 연동 데모
SNAP Frontend를 Microsoft Edge-TTS 클라우드 뉴럴 보이스와 결합하여 한국어 문맥 발음 오류를 실시간으로 해결하고 자연스러운 고품질 음성을 생성하는 라이브 데모입니다. 대표 데모인 Edge-TTS 연동을 비롯하여 경량 온디바이스 및 확산 모델을 테스트할 수 있습니다.
SNAP Cloud REST API와 Microsoft Edge-TTS를 실시간 연동한 공식 연동 테스트 데모입니다. 일반 텍스트 원문만으로는 한계가 있는 문맥별 수사·단위 변별(예: 3번 버스[삼 번] vs 3번 갈아타기[세 번]), 동철이음어(동음이의어) 구분, 고유명사 및 사용자 정의 사전(custom_dict), 자연스러운 자동 운율 끊어읽기를 SNAP이 정밀하게 전처리하여 최상의 완성도 높은 한국어 음성을 실시간으로 합성하는 과정을 직접 테스트할 수 있습니다.
초경량 온디바이스 VITS TTS. 기존 espeak-ng의 발음 한계를 극복하고 22개 화자 스타일을 지원합니다.
Flow Matching 확산 모델. 16개 프리셋 화자 및 참조 음성 기반 Zero-Shot 보이스 클로닝을 지원합니다.
TTS 음성 합성 통합 (SNAP Frontend & 신경망 음성 모델)
SNAP G2P × Neural TTSSNAP G2P 엔진과 최신 신경망 음성 합성 모델(Edge-TTS, VITS, Flow Matching 등)을 결합하여, 더욱 정확하고 자연스러운 발음을 구사하는 고음질 TTS로 업그레이드시킵니다.
"고가도로를 지나는 3번 버스를 타고 3번 갈아타야 갈 수 있어요."
"2024년 3월 15일에 3명의 동료와 2번 버스를 타고 3번 출구로 나갔습니다."
"AI 모델의 성능이 99.8% 달성되어 3회 연속 1위를 기록했습니다."
위 예제는 SNAP Frontend와 신경망 음성 합성 모델(Edge-TTS, BERT-VITS2 등)을 결합하여 제작되었습니다. BERT 백본을 사용하는 모델에서는 Hidden Layer 값을 1회 연산 후 캐싱(Cache)하여 음성 디코더 및 SNAP 신경망 Head들에 공유함으로써, 추가 재계산 없이 최소한의 오버헤드로 문맥과 의미에 따른 정교한 발음을 실시간 합성합니다. 일반 경량 TTS 모델과 결합하더라도 ONNX INT8 양자화를 적용하여 실시간(Real-time) 처리가 원활하며, 상단 데모 섹션에서 Edge-TTS, Piper VITS, F5-TTS와의 연동 라이브 데모를 직접 체험해 보실 수 있습니다.
AI Video Dubbing (SNAP + 더빙 workflow)
SNAP + Dubbing WorkflowSNAP 엔진을 다국어 영상의 한국어 더빙 정규화 파이프라인에 적용한 예시입니다.
Inverse Text Normalization (SNAP-ITN Core Features)
SNAP-ITN 엔진은 STT(음성 인식) 결과를 각 산업 도메인 특성에 맞게 가독성 높은 표기법으로 후처리 변환하는 핵심 포스트 프로세서입니다. 단순 수치 변환을 넘어 금융·의료·방송·모빌리티·법률 등 도메인별 맞춤 포맷(날짜·시간·통화·주소), 추임새 정제, 자막 띄어쓰기, 개인정보 비식별화, Trust Layer 롤백 쉴드까지 통합 제공합니다.
구어체 발화 시 습관적으로 발생하는 '어', '음', '그...', '저...' 등의 유효하지 않은 추임새(Disfluency) 및 간성어를 자연어 엔진이 실시간 감지하여 깔끔하게 정제합니다. (설정 모드: 원형 보존 / 단순화 / 완전 제거)
주민등록번호, 전화번호, 계좌번호 등 개인식별정보(PII) 패턴을 자동 감지하여 데이터 저장 전 안전하게 마스킹 처리합니다.
변환 전후 텍스트의 BERT Hidden Representation 코사인 유사도 및 인퍼런스 확률 분포를 실시간으로 비교 검증(Semantic Preservation Verification)합니다. 변환 과정에서 원래 의미가 다르게 왜곡되거나 수치 할루시네이션(Hallucination) 위험이 감지될 경우, 변환을 즉시 차단하고 안전하게 원문 텍스트로 롤백하여 데이터 무결성을 보증합니다.
문서 및 저장소
SNAP 및 SNAP-ITN 엔진의 공식 C++ 런타임 바이너리 및 GitHub 저장소입니다.
표준 발음법 30개 조항 전수 지원, 문맥 변별 및 100여 종 단위 정규화 세부 명세
공개 REST API 엔드포인트 규격, 파라미터 및 cURL/Python 실전 연동 예제