← 전체 글로

AI 사용기

AI 활용기: 받아쓰기 언어를 바꿨는데 옛 결과가 남는 캐시의 함정

실제 영상 제작의 STT 검증에서 음성 파일만 비교하던 캐시를 모델·요청 언어까지 비교하도록 바꾸고 원시 응답을 보존한 사례다.

이 글의 목적

AI 음성을 검수하는 사람이 설정 변경 뒤 재검사가 실제로 실행됐는지 확인하게 한다.

핵심 내용

10월 2일 영상 제작 기록은 음성 지문만 비교하던 STT 캐시에 모델·요청 언어를 추가하고 응답 언어를 보존했다. 재전사는 검증의 출발점이며 실제 발음 문제는 음성 재생성으로 해결했다.

읽고 나서

같은 파일을 다른 설정으로 검사할 때 캐시 입력에 설정이 들어 있는지 확인하고, 요청·응답·실제 음성 수선을 각각 기록한다.

목차

먼저 답하면

받아쓰기 검사의 언어 설정을 바꿨다고 새 검사가 실행됐다고 가정하면 안 된다. 검사 결과를 저장하는 캐시가 음성 파일만 비교하면, 파일이 같은 한 이전 설정의 결과를 다시 사용할 수 있다. 10월 2일 개인 영상 제작 작업에서 실제로 손본 부분이다.

실제 작업 기록에서 드러난 경계

영상에 넣을 AI 음성은 받아쓰기 결과와 대본을 대조해 검수한다. 당시 코드에는 음성 파일의 지문이 같으면 저장된 결과를 재사용하는 경로가 있었다. 모델이나 요청 언어가 달라졌는지는 재사용 조건에 포함되지 않았다.

수정한 코드는 음성 지문·모델·요청 언어가 모두 일치할 때만 기존 기록을 현재 결과로 인정한다. 받아쓴 문장만 남기던 기록에는 원시 응답과 응답 언어·언어 확률도 함께 보존했다. 어떤 조건으로 요청했고 무엇을 돌려받았는지 다음 조사자가 확인할 수 있게 한 것이다. 이 글에서는 해당 작업의 커밋과 인계 기록을 확인했으며, 같은 음성의 외부 API 호출을 다시 수행하지는 않았다.

여기서 원인을 너무 빨리 확정하는 것도 함정이었다. 이전 불량 기록에는 응답 언어가 보존되지 않아, 자동 감지 문제인지 옛 캐시 문제인지 단정할 수 없었다. 재전사 후에도 이름 발음이 부정확한 결과가 남았다. 결국 발음 표기를 조정해 음성을 다시 생성하고 실제 받아쓰기를 다시 확인했다. 캐시 수정만으로 원래 음성이 또렷해지는 것은 아니다.

공식 문서와 연결하면

Python의 lru_cache 문서는 같은 인자로 호출한 함수의 결과를 재사용하는 방식을 설명한다. 이번 파이프라인이 이 데코레이터를 사용했다는 뜻은 아니다. 파일만이 아니라 결과에 영향을 주는 설정도 입력으로 취급해야 한다는 비교 기준이다.

ElevenLabs 전사 API 문서는 모델을 요청에 지정하고, 언어는 ISO 639-1 또는 ISO 639-3 코드로 힌트를 줄 수 있다고 설명한다. 언어가 없으면 자동 예측하며, 힌트는 전사 성능을 도울 수 있지만 성공 보장은 아니다. 한국어의 ko와 kor는 모두 이 형식에 맞으므로, 둘의 차이만으로 기존 실패 원인을 단정하지 않았다.

다음 검사에서 분리해 남길 것

검사를 다시 돌릴 때는 요청한 모델·언어, 반환된 원시 응답, 실제 음성을 바꿨는지까지 구분한다. 같은 파일에 설정만 바꾼 재검사와 발음 자체를 고친 재생성은 서로 다른 시도다. 인계 검증 사례가 실행 환경을 확인했다면, 이번 사례는 저장된 검수 결과가 현재 입력을 가리키는지 확인한다. 결과를 새로 만들었는지부터 확인해야 그 결과로 품질을 판단할 수 있다.