로컬 음성 인식·합성

Nemotron 3 Diarization: 회의 녹음에서 누가 말했는지 찾기

회의 녹음을 받아쓰면 분명 편해집니다. 그런데 며칠 뒤 ‘이 부분은 제가 맡을게요’라는 문장만 남아 있으면 다시 녹음을 찾아야 합니다. Nemotron 3 Diarization1은 이런 빈칸을 채우는 화자 분리 모델입니다. 음성을 문장으로 바꾸는 ASR2 옆에서 발화자와 시간 구간을 정리합니다. 새 모델을 설치하는 일보다 먼저, 지금 만드는 회의록에 어떤 정보가 빠져 있는지부터 살펴보겠습니다.

실행 조건과 핵심 내용
  • 최대 8명의 발화 구간을 구분합니다. 받아쓰기나 실명 확인을 대신하지는 않습니다.
  • Mac은 NeMo-Speech.cpp의 Metal 경로를 확인할 수 있습니다. NeMo Python의 GPU 조건과 나눠 봅니다.
  • 0.32초는 권장 최저 입력 버퍼 지연입니다. 자막이 완성되는 전체 시간은 아닙니다.

받아쓰기 다음에 남는 질문

가령 세 사람이 녹음한 회의에 ‘초안은 내일 보낼게요’, ‘수치는 제가 확인할게요’라는 말이 이어졌다고 해봅시다. 문장을 정확히 옮겼더라도 담당자가 빠지면 할 일 목록으로 쓰기 어렵습니다. 이때 필요한 것은 더 유창한 요약문보다, 각 문장이 나온 구간과 발화자를 보존하는 일입니다.

여기서 ASR은 ‘무슨 말을 했는가’를, diarization은 ‘어느 화자가 언제 말했는가’를 맡습니다. 두 결과를 맞춰야 화자별 회의록이 됩니다. 그 뒤에 로컬 LLM3으로 결론과 할 일을 정리하더라도, 원문 발언으로 돌아갈 수 있는 타임스탬프는 남겨두는 편이 좋습니다.

네 개의 빈 의자에 둘러싸인 원목 회의 테이블과 중앙 마이크
회의록에 필요한 것은 문장뿐 아니라 발언의 주체입니다.

8명을 구분한다는 말의 정확한 의미

2026년 9월 23일 공개된 Nemotron 3 Diarization은 약 100M 파라미터의 오픈웨이트 모델입니다. 녹음 속 목소리에 등장 순서대로 구분표를 붙이고 발화 구간을 출력합니다. speaker_0이 내 동료의 실명이라는 뜻은 아닙니다. 이름을 붙이려면 녹음을 듣거나 회의 참석 정보와 대조하는 과정이 따로 필요합니다.

동시에 두 사람이 말하면 같은 시각에 두 화자를 표시할 수 있습니다. 다만 이것은 겹친 목소리를 각각 깨끗한 음원으로 뽑아내는 source separation과 다릅니다. 겹침을 알아냈다고 그 구간의 모든 단어와 발화자가 자동으로 확정되는 것은 아닙니다. 여덟 명을 넘는 대화 역시 지원 범위 밖으로 봐야 합니다.

한국어·영어·일본어는 ASR 선택도 함께 봅니다

화자 구분 모델의 이름만으로 한국어 받아쓰기 품질을 판단할 수는 없습니다. 영어 회의인지, 한국어와 영어 제품명이 섞이는 회의인지, 일본어 인터뷰인지에 따라 문장을 만드는 ASR도 골라야 합니다. Qwen3-ASR·Whisper·Nemotron 3.5처럼 여러 언어를 다루는 모델을 살펴보되, 단어 단위 시간 정보까지 내보낼 수 있는 실행 방식인지 확인하세요.

평가는 짧은 낭독보다 실제 작업과 닮은 대화로 하는 편이 낫습니다. 잠깐 끼어드는 사람, 멀리 앉은 사람, 긴 침묵 뒤에 다시 말하는 사람을 포함해보세요. 확인할 것은 세 가지입니다. 문장이 맞는지, 화자 번호가 바뀌지 않는지, 겹친 구간을 놓치지 않는지입니다. 한 점수로 합치면 어느 부분을 고쳐야 할지 오히려 흐려집니다.

세 가지 색의 음성 트랙을 띄운 노트북과 헤드폰, 휴대용 녹음기
화자가 겹친 구간은 한 명의 발언으로 단정하지 않고 따로 확인합니다. 화면은 개념을 설명하는 삽화입니다.

Mac에서도 길이 있습니다: 모델과 실행 프로그램을 나누기

NVIDIA의 NeMo Python 경로는 Linux와 NVIDIA GPU4를 중심으로 안내됩니다. 그렇다고 모델을 NVIDIA 카드에서만 쓸 수 있다는 뜻은 아닙니다.

같은 회사의 NeMo-Speech.cpp는 네이티브 C++ 실행 프로그램5이며 Apple Silicon의 Metal, CPU6, CUDA7 등의 경로를 제공합니다. 설치한 빌드가 무엇을 지원하는지는 doctor 명령으로 먼저 확인합니다.

Mac·iPhone 앱 개발 쪽에는 Nemotron 3 Diarization을 지원하는 Argmax Pro SDK 3도 있습니다. Python 가중치나 C++ CLI8와는 별도 제품이므로 배포 조건과 이용 조건을 따로 확인해야 합니다. 어느 경로든 ‘지원한다’는 사실과 ‘내 녹음을 몇 초 만에 처리한다’는 수치는 구분해서 읽으면 됩니다.

실행 경로별로 확인할 항목
환경실행 경로먼저 확인할 것
Apple Silicon 맥NeMo-Speech.cpp · Metal설치 빌드의 Metal 지원과 모델 선택
NVIDIA GPU 장착 PCNeMo-Speech.cpp · CUDA / NeMo Python드라이버·런타임 버전과 ASR 동시 사용량
GPU 없는 PCNeMo-Speech.cpp · CPU짧은 녹음의 처리시간부터 확인
Mac·iPhone 앱Argmax Pro SDK 3SDK 이용 조건과 앱 통합 방식

실행 경로별로 확인할 항목

Apple Silicon 맥

실행 경로
NeMo-Speech.cpp · Metal
먼저 확인할 것
설치 빌드의 Metal 지원과 모델 선택

NVIDIA GPU 장착 PC

실행 경로
NeMo-Speech.cpp · CUDA / NeMo Python
먼저 확인할 것
드라이버·런타임 버전과 ASR 동시 사용량

GPU 없는 PC

실행 경로
NeMo-Speech.cpp · CPU
먼저 확인할 것
짧은 녹음의 처리시간부터 확인

Mac·iPhone 앱

실행 경로
Argmax Pro SDK 3
먼저 확인할 것
SDK 이용 조건과 앱 통합 방식

새 8인용 모델을 지정해 첫 파일 실행하기

NeMo-Speech.cpp의 운영체제별 설치를 마친 뒤 새 터미널에서 아래 명령을 실행합니다. 첫 두 줄은 환경과 모델 목록을 확인하고, pull은 필요한 가중치를 미리 받습니다. 설치 버전마다 기본 모델이 다를 수 있어 예제에서는 Nemotron 3의 별칭을 명시했습니다. 모델 목록에 해당 이름이 없으면 설치 버전을 확인하세요.

meeting.wav에는 사용 권한이 있는 짧은 대화 녹음을 넣습니다. diarize는 화자 구간만, transcribe와 --diar-model의 조합은 ASR 문장에 화자 정보를 붙입니다. 두 작업을 따로 실행해 보면 문장이 틀린 문제와 화자 배정이 틀린 문제를 나눠 찾기 쉽습니다. 여기서는 명령과 공식 모델 목록을 대조했으며, 모든 장비에서 실행 시간을 실측한 예제는 아닙니다.

NeMo-Speech.cpp 설치 후 실행
nemo-speech doctor
nemo-speech model list
nemo-speech pull nemotron-3-diarization
nemo-speech diarize meeting.wav --model nemotron-3-diarization
nemo-speech transcribe meeting.wav --model nemotron-3.5 --diar-model nemotron-3-diarization --json
첫 실행은 모델 다운로드가 필요할 수 있습니다. CUDA·Metal·CPU는 설치 빌드와 감지된 장비에 따라 선택됩니다.

0.32초와 30.4초는 처리 완료시간이 아닙니다

실시간 모델은 앞으로 들어올 소리를 조금 기다려야 앞뒤 관계를 판단할 수 있습니다. 공개된 0.32·0.64·1.04·30.4초는 이 입력 버퍼의 길이입니다. 녹음 1시간을 30.4초에 끝낸다는 뜻도, 모든 기기에서 0.32초 만에 자막이 나온다는 뜻도 아닙니다. 계산과 ASR, 결과 표시까지의 시간은 추가됩니다.

이미 녹음이 끝난 회의라면 바로 반응해야 할 이유가 적습니다. 먼저 긴 문맥을 사용하는 설정으로 결과를 확인하고, 실시간 표시가 꼭 필요할 때만 지연을 줄여보세요. NeMo Python과 C++의 설정 이름을 서로 그대로 복사하지 말고, 사용 중인 런타임의 프리셋과 도움말을 따릅니다.

NeMo 모델의 권장 입력 버퍼 설정
설정입력 버퍼선택할 상황
오프라인형30.4 s녹음이 끝난 파일부터 시험
낮은 지연1.04 s실시간 처리의 비교 출발점
더 낮은 지연0.64 s더 빠른 갱신이 필요할 때
권장 최저 지연0.32 s전체 지연과 정확도를 함께 평가

NeMo 모델의 권장 입력 버퍼 설정

오프라인형

입력 버퍼
30.4 s
선택할 상황
녹음이 끝난 파일부터 시험

낮은 지연

입력 버퍼
1.04 s
선택할 상황
실시간 처리의 비교 출발점

더 낮은 지연

입력 버퍼
0.64 s
선택할 상황
더 빠른 갱신이 필요할 때

권장 최저 지연

입력 버퍼
0.32 s
선택할 상황
전체 지연과 정확도를 함께 평가

공개 성능 수치에서 가져갈 것과 남겨둘 것

발표 당시 VoiceArena 초기 평가에서는 영어 대화 139개, 약 22시간을 대상으로 DER 14.72%를 기록했습니다. 발화 겹침을 포함하고 경계 허용 구간을 두지 않은 조건입니다.

DER는 단어 오타율이 아니라 놓친 발화·잘못 검출한 발화·화자 혼동을 합쳐 보는 지표이므로, ‘받아쓰기 정확도 85.28%’로 바꾸면 안 됩니다. 이 영어 평가만으로 한국어 회의의 오류율을 정할 수도 없습니다.

15,113배라는 처리량9도 눈에 띄지만, RTX PRO 5000에서 BF1610·batch 32·torch.compile을 사용한 조건입니다. 개인 PC에서 파일 하나를 읽는 속도나 ASR까지 포함한 시간이 아닙니다. 따라서 이 숫자를 사이트의 Mac mini나 RTX 4090 속도 체험에 그대로 넣지 않았습니다. 장비를 비교하려면 같은 녹음, 같은 런타임, 같은 배치 크기11부터 맞춰야 합니다.

소형 데스크톱 컴퓨터와 음성 트랙 모니터, 빈 노트와 헤드폰이 놓인 책상
지금 장비에서 짧은 대화를 확인한 다음 긴 녹음으로 넓혀갑니다.

내 회의록에 붙일 때는 마지막 확인이 더 중요합니다

처음에는 2~5분 정도의 녹음에서 발언 순서를 직접 적어 기준을 만드세요. 전사문과 화자 구간을 나란히 보면서 첫 등장, 끼어들기, 재등장 구간을 확인합니다. 이름이나 담당자가 중요한 문장은 녹음으로 돌아가 확인하고, 잘 구분되지 않은 겹침은 한 사람의 확정 발언으로 바꾸지 않습니다.

장비를 고를 때도 순서는 같습니다. 모델을 불러올 수 있는지, 녹음 길이보다 빠르게 처리하는지, ASR를 함께 켜도 여유가 있는지를 확인합니다. 화자 구분만 필요했던 작업에 대형 LLM까지 늘 켜둘 이유는 없습니다. 필요한 단계만 조합하면 기존 컴퓨터를 더 오래 쓸 수도 있습니다.

로컬 실행이라도 녹음에 대한 동의와 파일 보관 범위는 따로 정해야 합니다. 모델은 OpenMDW 1.1 조건으로 배포되며, 함께 쓰는 앱과 SDK의 조건은 별개입니다. 초기 다운로드와 업데이트에 인터넷이 필요할 수 있으니, 외부 전송을 피해야 하는 환경은 파일 경로와 앱의 동기화 설정도 확인하세요.

용어 각주

  1. 화자 분리녹음에서 누가 언제 말했는지 구간을 나누고 화자별로 표시하는 작업입니다. 화자의 실제 신원을 알아내는 것과는 다릅니다.

    본문으로 돌아가기
  2. 자동 음성 인식음성에서 발화를 인식해 텍스트로 변환하는 기술입니다. 인식 결과는 발화 내용을 나타내며 음향 자체를 복원하는 것은 아닙니다.

    본문으로 돌아가기
  3. 대규모 언어 모델대량의 텍스트 데이터로 학습해 텍스트를 처리하고 생성하는 언어 모델입니다. 기능과 지원 입력은 모델마다 다릅니다.

    본문으로 돌아가기
  4. GPU많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.

    본문으로 돌아가기
  5. 실행 프로그램모델 파일을 읽고 연산을 실행하는 소프트웨어입니다. 지원 형식, 하드웨어와 최적화 기능은 런타임마다 다릅니다.

    본문으로 돌아가기
  6. CPU컴퓨터에서 일반적인 프로그램 명령을 실행하는 중앙 처리 장치입니다. AI 작업에서는 GPU 등 다른 프로세서와 역할을 나누기도 합니다.

    본문으로 돌아가기
  7. CUDANVIDIA GPU에서 범용 계산을 실행하기 위한 소프트웨어 플랫폼입니다. CUDA용으로 만든 프로그램은 다른 GPU에서 그대로 동작한다고 보장되지 않습니다.

    본문으로 돌아가기
  8. CLICommand-Line Interface의 약자입니다. 터미널에 명령어를 입력해 프로그램을 조작하는 방식입니다.

    본문으로 돌아가기
  9. 처리량일정 시간 동안 처리하거나 생성한 작업량입니다. 토큰/초, 요청/초처럼 단위를 함께 확인해야 비교할 수 있습니다.

    본문으로 돌아가기
  10. BF16모델의 수를 저장하고 계산하는 16비트 부동소수점 형식입니다. 사용 가능 여부는 하드웨어와 실행 프로그램에 달려 있습니다.

    본문으로 돌아가기
  11. 배치 크기한 번의 처리 묶음에 함께 넣는 입력 또는 요청 수입니다. 배치를 키우면 처리량과 메모리 요구량이 모두 달라질 수 있습니다.

    본문으로 돌아가기