화자 분할은 개인 오디오 아카이브에서 목소리를 어떻게 구분하나요?

에바 왕기술 작가 그리고 이자 ZimaSpace의 상주 장인입니다. 평생을 기술에 열정을 가진 사람으로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며,복잡한 기술 개념을 쉽게 이해할 수 있는 실습 가이드로 번역하는 데 전문성을 가지고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록돕고 있습니다. 첫 NAS 구축부터 Docker 컨테이너 마스터링까지.

화자 분할은 음성이 있는 구간을 찾고, 화자 특성을 임베딩하며, 유사한 구간을 클러스터링한 다음, 화자 라벨을 오디오 타임라인에 다시 할당해 목소리를 구분합니다.

개인 아카이브에는 인터뷰, 회의, 홈 비디오, 음성 메모 등이 포함될 수 있으며, 말의 내용만으로는 충분하지 않은 경우가 많습니다. 화자 분할은 녹음을 홈 서버 외부로 전송하지 않고도 누가 언제 말했는지에 대한 구조를 추가합니다.

화자 분할은 먼저 음성이 존재하는 위치를 찾습니다

화자 분할은 일반적으로 음성과 무음 및 비음성 오디오를 분리하는 작업부터 시작합니다. 이를 통해 음악, 실내 잔향, 긴 침묵 구간이 화자 식별에 대한 잘못된 증거로 사용되는 것을 방지합니다.

NVIDIA는 음성 활동 감지부터 시작한 후 화자 임베딩과 클러스터링을 수행하는 단계적 화자 분할 파이프라인을 설명합니다. VAD 단계에서는 음성 구간의 타임스탬프를 생성합니다. NeMo는 화자 분할을 음성 감지, 화자 표현, 클러스터링 단계로 나누며, 이는 NVIDIA NeMo 화자 분할 파이프라인을 통해 화자를 할당하기 전에 먼저 음성 타임라인이 필요한 이유를 보여줍니다.

홈 서버에서는 불필요한 작업을 줄이는 동시에 초기 실패 경계를 만들 수 있습니다. 이 단계에서 작은 음성이 잘려 나가면 이후의 화자 클러스터링으로는 누락된 음성 구간을 복구할 수 없습니다.

화자 임베딩은 음성 구간을 서로 비교할 수 있게 합니다

감지된 각 음성 구간은 화자 임베딩으로 변환됩니다. 화자 임베딩은 목소리를 구분하는 데 유용한 특성을 보존하는 압축된 벡터입니다.

NeMo는 클러스터링 전에 화자 임베딩을 추출하는 파이프라인을 문서화하고 있습니다. 이러한 벡터는 가족 구성원의 실제 이름이 아니라 화자 간 유사성을 나타냅니다. Google Research는 화자 표현을 최신 화자 분할 시스템의 핵심 요소로 설명하며, Google의 화자 분할 연구에서 임베딩을 사용해 여러 구간에서 누가 말하고 있는지 비교하는 방식을 뒷받침합니다.

따라서 개인 아카이브에서는 신원 데이터베이스를 유지하지 않고도 화자 1과 화자 2를 생성할 수 있습니다.

클러스터를 실제 인물과 연결하는 작업은 별도의 등록 또는 라벨 지정 단계입니다.

클러스터링은 유사한 임베딩을 화자 라벨로 변환합니다

임베딩이 생성되면 시스템은 유사한 벡터를 클러스터로 그룹화합니다. 각 클러스터는 해당 녹음에서 임시 화자 신원이 됩니다.

NVIDIA는 클러스터링을 화자 임베딩을 그룹화하는 모듈로 설명합니다. 이 그룹화는 전사된 단어가 아니라 음향적 유사성을 기반으로 합니다. Microsoft Research는 학습된 화자 임베딩과 클러스터링을 서로 연결된 화자 분할 문제로 다뤄 왔으며, 이는 Microsoft Research의 화자 클러스터링 연구에서 설명하는 클러스터링 단계를 뒷받침합니다.

이 때문에 화자 분할과 음성 인식은 서로 구별되는 작업입니다. 전사문에 잘못된 단어가 포함되어 있더라도 주변 오디오에는 여전히 올바른 화자 클러스터가 할당될 수 있습니다.

발화 경계는 화자가 바뀌는 시점을 결정합니다

녹음은 연속적이므로 파이프라인은 어떤 클러스터가 적합한지뿐만 아니라 한 화자의 발화가 끝나고 다른 화자의 발화가 시작되는 위치도 결정해야 합니다.

NeMo는 서로 다른 구간 길이에서 추출한 임베딩을 사용하는 다중 스케일 화자 분할을 지원합니다. 긴 윈도우는 화자 신원을 안정화하고, 짧은 윈도우는 빠른 변화를 정확히 포착하는 데 도움을 줍니다. pyannote 화자 분할 연구에서 보여주듯, 최신 화자 분할 시스템은 녹음 전체에 하나의 화자 라벨을 할당하는 대신 화자의 발화와 분할 경계를 명시적으로 모델링합니다.

빠르게 진행되는 가족 간 대화에서는 이러한 균형이 드러납니다. 윈도우가 너무 길면 짧은 발화 전환이 뭉개질 수 있습니다.

반대로 윈도우가 너무 짧으면 안정적인 클러스터링에 필요한 음성 정보가 부족할 수 있습니다.

화자 라벨은 검색 가능한 전사문에 다시 정렬됩니다

화자 발화 구간이 생성되면 해당 타임스탬프를 ASR 출력과 정렬할 수 있어, 아카이브에 무엇을 말했는지와 누가 말했을 가능성이 높은지를 함께 저장할 수 있습니다.

NVIDIA는 화자 분할을 음성 인식과 함께 누가 언제 말했는지에 답하는 작업으로 정의합니다. 따라서 두 계층은 서로 독립적으로 다시 실행할 수 있습니다. 온디바이스 화자 분할에 관한 연구는 화자 분리를 로컬에서 수행할 수 있음을 보여주며, 클라우드 처리가 필요 없는 개인 오디오 아카이브에 화자 분할이 유용한 이유를 설명합니다. 자세한 내용은 온디바이스 화자 분할 연구를 참조하세요.

이 메커니즘은 일반적인 화자 분할 파이프라인이 이미 구축된 후 발생하는 클러스터 드리프트에 초점을 맞춘 ZimaSpace의 긴 전사문에서 발생하는 화자 신원 교체 분석을 보완합니다.

겹침과 음향 변화가 실질적인 한계를 만듭니다

두 사람이 동시에 말하면 구간마다 한 명의 화자만 존재한다는 단순한 가정이 깨집니다.

혼합된 구간에서는 어느 한 목소리에도 명확히 속하지 않는 임베딩이 생성될 수 있습니다.

NeMo는 클러스터링 파이프라인과 화자 라벨을 추정하는 표적 화자 VAD와 같은 신경망 기반 접근 방식을 구분합니다. 이러한 방법은 겹쳐 말하는 상황에 도움을 주지만 어려운 음향 환경 자체를 제거하지는 못합니다. IBM Research 역시 겹침과 변화하는 음향 조건의 어려움을 강조하며, IBM의 화자 분할 연구에서 설명하는 화자 분할 품질의 실질적인 한계를 뒷받침합니다.

거리와 잔향도 화자 특성을 왜곡할 수 있습니다. ZimaSpace의 원거리 음성 인식 분석은 인식과 화자 분할 모두에 영향을 줄 수 있는 상위 단계의 음향 변화를 설명합니다.

기술 및 AI 허브

더 읽어보기

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.