로컬 음성 인식·합성
최종 업데이트
WhisperX로 한국어 자막 싱크와 화자 표시 맞추기
전사한 문장과 음성을 강제 정렬해 단어별 시작·끝 시각을 붙여요.
WhisperX는 음성을 전사한 뒤 별도 정렬 모델로 단어 시각을 계산하고 SRT 자막을 만들어요. 화자 분리1도 추가할 수 있지만 pyannote 모델의 이용 약관을 받아들여야 해요. 생성된 자막은 화자 이름·숫자·겹쳐 말한 구간을 음성과 대조해 수정하세요.
단어별 타임코드가 필요한 이유
WhisperX는 녹음을 전사한 뒤 정렬 모델을 사용해 각 단어가 음성의 어느 구간에 놓이는지 계산해요. Whisper의 문장 단위 구간을 단어 수준으로 나누면 자막 편집기에서 어긋난 단어만 찾아 고치기 쉬워져요. 정렬은 전달받은 글자를 음성에 맞추는 단계이므로, 전사 오류가 있으면 잘못된 단어에도 시간이 붙어요. WhisperX 공식 저장소
짧은 한국어 WAV로 전사와 정렬을 실행해요. 문장 내용과 단어별 시작·끝 시각을 확인하고, 잘못 인식된 단어를 먼저 고쳐요. 수정한 문장으로 정렬을 다시 실행하면 자막에서 손볼 구간을 찾기 쉬워요.

한국어 정렬 모델로 자막을 저장해요
먼저 ffmpeg를 설치하고 작업 폴더에 recording.wav를 둬요. 아래 명령은 macOS와 Debian·Ubuntu Linux 기준이에요. 이어서 Python 환경에 PyTorch2와 WhisperX를 설치해요.
# macOS
brew install ffmpeg
# Debian / Ubuntu Linux
sudo apt-get update && sudo apt-get install -y ffmpegpython -m pip install torch torchaudio
python -m pip install whisperxwhisperx recording.wav --output_dir whisperx-output --language ko --model large-v2 --compute_type int8 --device cpu --highlight_words True현재 폴더에 recording.wav를 두고 명령을 실행하면 whisperx-output/recording.srt와 전사문이 저장돼요. --language ko로 한국어를 선택하면 WhisperX가 한국어 정렬 설정으로 단어별 시각을 계산해요.
화자 분리를 쓸 때 모델 접근을 먼저 마쳐요
화자 분리는 녹음 구간마다 화자 ID를 붙여요. WhisperX가 사용하는 pyannote 모델 카드의 접근 조건에 동의한 뒤 Hugging Face 읽기 토큰3을 준비해요. macOS·Linux Bash에서 아래처럼 입력하면 토큰이 화면에 표시되지 않고 현재 셸에서만 사용돼요.
참석자가 둘인 대화라면 --min_speakers 2 --max_speakers 2를 추가해 예상 화자 수를 알려줄 수 있어요. 이 값은 모델이 경계를 찾을 때 참고하는 범위예요. 겹쳐 말하거나 짧게 맞장구친 구간은 화자가 합쳐지거나 ID가 바뀔 수 있으니, 녹음을 다시 들으며 라벨을 확인해요.
read -rs HF_TOKEN
printf '\n'
export HF_TOKEN
whisperx recording.wav --output_dir whisperx-output --language ko --model large-v2 --compute_type int8 --device cpu --diarize --min_speakers 2 --max_speakers 2 --highlight_words True --hf_token "$HF_TOKEN"
SRT를 플레이어에서 듣고 고쳐요
whisperx-output/recording.srt를 WAV와 함께 자막 편집기에서 열어 문장과 타임코드를 고쳐요. 숫자와 이름, 겹쳐 말한 구간을 먼저 확인하면 정렬 오류와 전사 오류를 구분하기 쉬워요.
참석자 ID는 이름 대신 화자를 구분하는 번호예요. 회의록에 이름을 붙일 때는 음성을 다시 듣고, 참가자와 조직이 허용한 범위에 맞춰 WAV와 SRT를 보관해요.

용어 각주
자주 묻는 질문
- 이 글에서 가장 먼저 확인할 것은 무엇인가요?
- WhisperX는 음성을 전사한 뒤 별도 정렬 모델로 단어 시각을 계산하고 SRT 자막을 만들어요. 화자 분리도 추가할 수 있지만 pyannote 모델의 이용 약관을 받아들여야 해요. 생성된 자막은 화자 이름·숫자·겹쳐 말한 구간을 음성과 대조해 수정하세요.
- 조건과 출처는 어디서 확인하나요?
- 화자 분리는 녹음 구간마다 화자 ID를 붙여요. WhisperX가 사용하는 pyannote 모델 카드의 접근 조건에 동의한 뒤 Hugging Face 읽기 토큰을 준비해요. macOS·Linux Bash에서 아래처럼 입력하면 토큰이 화면에 표시되지 않고 현재 셸에서만 사용돼요.
