
STT(Speech-to-Text)는 사람이 말한 음성을 컴퓨터가 읽을 수 있는 텍스트로 변환하는 기술입니다. 흔히 자동 음성 인식(ASR, Automatic Speech Recognition)이라고도 부릅니다. 전화 상담 녹취, 회의록 자동 작성, 영상 자막 생성, 음성 검색 등 다양한 서비스의 기반 기술로 자리잡고 있으며, AI 챗봇이나 음성 어시스턴트가 사람의 말을 이해하는 첫 번째 단계이기도 합니다. STT는 음성을 입력받아 텍스트를 출력하는 단순한 기술처럼 보이지만, 내부적으로는 전처리, 음향 특징 추출, 인식, 후처리에 이르는 여러 단계가 순서대로 작동합니다. 각 단계에서 어떤 처리가 이루어지느냐가 최종 텍스트의 품질을 결정합니다.
STT 변환이 시작되기 전, 음성 데이터는 여러 전처리 과정을 거칩니다. 가장 먼저 이루어지는 것은 음성 활동 탐지(VAD, Voice Activity Detection)입니다. 전체 오디오에서 실제로 사람이 말한 구간만 골라내고, 묵음이나 비음성 구간을 제거합니다. 이어서 배경 잡음을 줄이고 음성을 선명하게 만드는 음성 향상(Speech Enhancement) 작업이 수행됩니다. 여러 사람이 대화하는 녹음이라면, 화자별로 발화를 분리하는 화자 분리(Speaker Diarization)도 이 단계에서 처리됩니다. 전처리가 잘 이루어질수록 이후 인식 단계의 정확도가 높아지기 때문에, 음성 품질이 좋지 않은 환경에서는 전처리가 특히 중요합니다. 파일 포맷의 경우, 일반적으로 무손실 품질의 WAV 형식이 인식 정확도 측면에서 유리하며, 스테레오보다는 모노 채널이 더 안정적인 결과를 냅니다.

전처리가 끝난 음성은 숫자의 나열로 이루어진 원시 신호 상태입니다. 이 상태 그대로는 AI 모델이 처리하기 어렵기 때문에, 음성의 특성을 압축해서 표현하는 특징 추출 과정이 필요합니다. 이때 자주 사용되는 방법이 멜 주파수 켑스트럼 계수(MFCC)나 스펙트로그램입니다. 사람의 귀가 소리를 인식하는 방식을 수학적으로 본뜬 방법으로, 음성 신호를 주파수 성분으로 분해해 모델이 학습하기 좋은 형태의 숫자 벡터로 변환합니다. 최근에는 대형 딥러닝 모델을 사용해 특징을 직접 추출하는 방식도 널리 쓰입니다. 수십만 시간의 음성 데이터로 사전 학습된 이 모델들은 음성 인식뿐 아니라 화자 구분 등 다양한 작업에도 활용됩니다.

특징 추출이 끝나면 본격적인 음성 인식이 이루어집니다. 인코더-디코더 구조의 모델이 가장 널리 사용됩니다. 인코더는 음성 특징에서 인식에 필요한 정보를 뽑아내고, 디코더는 그 정보를 바탕으로 사람이 말한 내용을 텍스트로 받아 씁니다. OpenAI Whisper처럼 트랜스포머(Transformer) 기반 아키텍처를 활용하는 모델들은 방대한 다국어 음성 데이터로 학습되어 잡음이 있는 환경에서도 비교적 높은 인식률을 보입니다. 음성 인식 성능의 핵심 지표는 단어 오류율(WER, Word Error Rate)과 문자 오류율(CER, Character Error Rate)입니다. 정답 텍스트와 모델이 출력한 텍스트 사이의 삽입·삭제·대체 오류 횟수를 기준으로 계산하며, 이 수치가 낮을수록 인식 정확도가 높습니다. 한국어는 단어 단위보다 문자 단위 오류율(CER)로 성능을 평가하는 것이 더 적합합니다.

모델이 음성을 텍스트로 변환하고 나면, 그 결과물을 그대로 사용하기 어려운 경우가 많습니다. 문장 부호가 없거나, 숫자가 한글로 전사되거나, 고유명사가 틀리게 인식되는 상황이 발생하기 때문입니다. 이를 보완하는 작업이 후처리입니다. Google Cloud Speech-to-Text 같은 서비스는 쉼표·물음표·마침표 같은 구두점을 자동으로 추가하는 기능을 제공하며, 욕설 필터링이나 숫자 표기 방식 변환(예: "십육 프로" → "16%")도 후처리 단계에서 처리됩니다. AI 학습용 음성 데이터를 구축할 때는 후처리 단계의 정규화 기준을 통일하는 것이 중요합니다. 데이터셋마다 잡음 표기 방식, 이중 전사 형식, 숫자 표현 방식이 달라지면 모델 학습 시 혼란이 생기기 때문에, 공통된 정규화 기준을 설계 단계에서 먼저 정의해야 합니다.
STT 변환 결과의 품질은 모델 성능만이 아니라 입력 음성의 환경 조건에도 크게 좌우됩니다. 배경 소음이 심할수록, 화자가 여럿일수록, 억양이 강하거나 발음이 불명확할수록 인식 오류율이 높아집니다. 마이크 품질과 녹음 환경도 중요한 요소입니다. 실제 통화 품질 환경(8kHz 샘플링 레이트)과 고품질 마이크 녹음 환경은 인식 결과가 달라지기 때문에, Google의 경우 전화 통화에 최적화된 별도 모델을 제공하고 있습니다. AI 학습 데이터를 구축할 때는 실제 서비스에서 만나게 될 음성 환경을 최대한 반영해 다양한 조건의 데이터를 확보하는 것이 중요합니다. 깨끗한 환경의 데이터만으로 학습된 모델은 노이즈가 섞인 실제 환경에서 인식률이 크게 떨어지는 경향이 있습니다.

일반적인 STT 모델은 일상 언어에서는 높은 인식률을 보이지만, 의학 용어, 법률 용어, 금융 전문 용어, 고유명사 등 특정 분야의 어휘에서는 오류율이 높아집니다. 이를 해결하기 위한 방법이 두 가지입니다. 첫 번째는 도메인 특화 어휘를 힌트로 모델에 전달하는 방식입니다. OpenAI Whisper는 'prompt' 파라미터를 통해 자주 등장할 전문 용어를 사전에 제공하면 인식 품질이 개선됩니다. 두 번째는 커스텀 모델을 학습시키는 방식입니다. 카카오엔터프라이즈는 기업이 자체 단어와 패턴을 추가하면 자동으로 맞춤형 모델을 생성하는 커스텀 STT 서비스를 출시해 기존 대비 음성 인식 오류율을 30% 이상 개선한 결과를 발표했습니다. 특수한 용어가 많은 분야일수록, 범용 모델을 그대로 쓰는 것보다 도메인에 맞춘 추가 학습이나 커스터마이징이 결과물의 품질 차이를 크게 만듭니다.

여러 사람이 대화하는 음성 데이터를 텍스트로 변환할 때는 누가 어떤 말을 했는지를 구분하는 화자 분리(Speaker Diarization)가 필요합니다. Google Cloud Speech-to-Text는 대화 참여자 발언에 대한 자동 예측 기능을 제공하며, 타임스탬프도 함께 출력해 텍스트와 음성 구간을 연결할 수 있습니다. 타임스탬프는 자막 파일(SRT, VTT) 생성이나 오디오-텍스트 정합 데이터 구축에도 필수적입니다. 화자 목소리가 비슷하거나 발화가 겹치는 구간에서는 화자 분리 정확도가 낮아지는 경향이 있기 때문에, 고품질 학습 데이터 구축 시에는 중요 구간을 사람이 직접 검수하는 과정이 함께 이루어지는 것이 좋습니다.
AI 학습용 음성 데이터를 만들 때는 STT 엔진을 먼저 돌려 초안 텍스트를 만든 다음, 사람이 직접 청취하며 오류를 수정하는 방식이 일반적입니다. AI허브의 음성 데이터 구축 사례에서도 STT 엔진으로 1차 전사를 진행하고, 이후 검수 단계에서 작업자들이 크로스 체크를 통해 오류를 수정하는 방식을 채택하고 있습니다. 완전 수작업 전사는 높은 정확도를 확보할 수 있지만 시간과 비용이 많이 들고, 완전 자동 전사는 속도는 빠르지만 복잡한 구간에서 오류가 많습니다. STT 자동화와 사람 검수를 결합하는 반자동 방식이 품질과 효율 모두를 챙길 수 있는 현실적인 접근입니다. 검수 기준과 전사 규칙은 시작 전에 명확하게 정의되어야 데이터 일관성이 유지됩니다.
오디오 전처리에서 시작해 음향 특징 추출, 인식, 후처리까지 이어지는 STT 프로세스는 각 단계가 서로 연결되어 있습니다. 앞 단계의 품질이 다음 단계 결과에 직접 영향을 미치기 때문에, 어느 한 단계만 잘 처리해서는 최종 텍스트 품질을 보장하기 어렵습니다. 좋은 전사 데이터를 만들기 위해서는 녹음 환경 관리, 전처리 설계, 도메인 특화 어휘 처리, 후처리 정규화, 검수 체계까지 전체 프로세스를 하나의 파이프라인으로 설계하고 관리하는 시각이 필요합니다. STT 기반 텍스트 변환은 음성을 글로 바꾸는 작업이 아니라, AI가 언어를 학습하는 토대가 되는 데이터를 만드는 과정입니다.
