NVIDIA가 Hugging Face에 다국어 음성 인식 모델 Nemotron-Labs-Unified-ASR-0.6b를 올렸다. 저장소는 2026년 8월 21일(UTC)에 만들어졌고, 모델 카드는 Hugging Face 공개일을 10월 27일로 적었다. 저장소 생성이나 수정 시각이 공개 발표 시각과 같다고 단정할 수는 없다. 녹음 파일을 통째로 받아 받아쓰는 오프라인 방식과 말하는 도중에 글자를 내보내는 스트리밍 방식을 하나의 모델이 모두 처리한다. 알고리즘상 최소 지연 시간은 160ms이고, 지원 언어는 25개 유럽 언어다.
이용 조건은 OpenMDW License Agreement 1.1이다. 카드는 상업 목적과 비상업 목적 모두 쓸 수 있고 배포 지역은 전 세계라고 적었다. 파라미터는 6억 개다. NVIDIA NeMo 프레임워크로 불러 쓰며, 현재 학습 코드는 없고 추론만 지원한다. NVIDIA는 음성 비서, 실시간 자막, 대화형 봇, 자막 생성에 쓸 수 있고 LLM 번역기와 묶으면 실시간 음성 번역도 가능하다고 소개했다.
지원 언어는 불가리아어, 크로아티아어, 체코어, 덴마크어, 네덜란드어, 영어, 에스토니아어, 핀란드어, 프랑스어, 독일어, 그리스어, 헝가리어, 이탈리아어, 라트비아어, 리투아니아어, 몰타어, 폴란드어, 포르투갈어, 루마니아어, 슬로바키아어, 슬로베니아어, 스페인어, 스웨덴어, 러시아어, 우크라이나어다. 한국어는 목록에 없어 국내에서 한국어 음성에 바로 쓸 수는 없다.
하나의 모델로 두 방식을 처리하는 구조
이 모델은 영어 전용이던 Parakeet-unified-en-0.6b를 25개 언어로 넓힌 다국어판이다. 출력 글에는 문장부호와 대문자 표기가 들어간다. 구조는 24층짜리 Unified FastConformer 인코더에 RNNT(Recurrent Neural Network Transducer) 디코더를 붙인 것이고, 8배 깊이별 분리 합성곱 다운샘플링을 쓴다. 인코더는 parakeet-tdt-0.6b-v3로 초기화했는데, 학습 처음부터 강한 다국어 음향 표현을 주려는 조치다.
오프라인 모드는 전체 문맥을 보는 셀프 어텐션과 비인과 합성곱으로 학습했다. 스트리밍 모드는 왼쪽·중간(청크)·오른쪽 문맥으로 나눈 청크 단위 어텐션 마스크와 FastConformer 층마다 들어가는 동적 청크 합성곱을 적용했다. 두 모드의 성능 차이를 줄이려고 모드 일관성 규제(MCR) 손실도 더했다. 인코더, 예측기, 결합 네트워크를 포함한 모든 파라미터를 두 모드가 공유하므로 체크포인트는 하나다.
언어는 프롬프트로 지정한다. 인코더가 낸 음향 표현(D, T)에 언어 원핫 벡터를 시간 축으로 펼친 값(K, T)을 이어 붙이고, 합쳐진 (D+K, T) 텐서를 투영층을 거쳐 디코더에 넘긴다. 25개 언어 전사문으로 만든 토크나이저 하나를 공유하므로 토크나이저에는 언어 정보가 없다. 지연이 560ms 이하인 설정에서는 첫 청크의 음성이 짧아 모델이 언어를 스스로 가려내지 못하고 다른 언어의 토큰을 내보내기도 한다. 충분한 오디오가 쌓이면 모델이 바로잡지만 이미 나온 초기 토큰은 고칠 수 없다. 언어 ID를 미리 주면 첫 청크부터 출력 언어가 정해진다. 오프라인이나 지연이 긴 스트리밍에서는 이 효과가 훨씬 작다.
언어를 미리 알 수 없을 때는 target_lang=auto로 자동 판별 모드를 쓴다. 다만 저지연 스트리밍에서는 언어를 직접 지정하라고 권장하며, 카드의 모든 성능 수치도 언어를 명시한 상태에서 얻었다.
학습 데이터는 사람이 받아 적은 NeMo ASR Set 3.0 약 1만 시간과 Granary의 ASR 부분집합에서 가져온 자동 라벨 66만 시간이다. 합치면 약 67만 시간이다. 사람 전사 쪽에는 LibriSpeech(960시간), Fisher Corpus, National Speech Corpus Part 1, VCTK, Mozilla Common Voice 7.0, AMI가 들어 있다. 자동 라벨 쪽은 YTC(YouTube-Commons), MOSEL, YODAS다. 전사문은 모두 문장부호와 대문자를 유지하고, 코퍼스와 언어 비중은 온도 샘플링으로 맞췄다. 구성은 parakeet-tdt-0.6b-v3와 같다.
성능 비교
NVIDIA는 자체 평가 환경에서 이 모델이 오프라인 모드에서는 parakeet-tdt-0.6b-v3를, 알고리즘 지연이 160ms까지 내려가는 스트리밍 상황 대부분에서는 nemotron-3.5-asr-streaming-0.6b를 앞선다고 밝혔다. 수치는 단어 오류율(WER, 낮을수록 좋음)이며 지연은 청크 크기와 오른쪽 문맥을 더한 값이다. 새 통합 모델의 스트리밍 결과는 왼쪽 문맥 5.6초와 명시적 언어 ID로 얻었다. 비교 대상인 캐시 인식형 Nemotron 3.5는 그에 상응하는 알고리즘 지연을 적용했다.
| 평가 묶음 | 모델 | 오프라인 | 1.12초 | 0.56초 | 0.32초 | 0.16초 |
|---|---|---|---|---|---|---|
| 영어 7개 정제 세트 | parakeet-tdt-0.6b-v3 | 4.93 | 32.31 | - | - | - |
| 영어 7개 정제 세트 | nemotron-3.5-asr-streaming-0.6b | - | 7.26 | 7.58 | 7.97 | 8.90 |
| 영어 7개 정제 세트 | nemotron-labs-unified-asr-0.6b | 4.68 | 5.41 | 5.68 | 6.27 | 7.87 |
| 다국어 HF 14회 | parakeet-tdt-0.6b-v3 | 4.68 | 27.14 | - | - | - |
| 다국어 HF 14회 | nemotron-3.5-asr-streaming-0.6b | - | 7.22 | 7.60 | 8.01 | 8.53 |
| 다국어 HF 14회 | nemotron-labs-unified-asr-0.6b | 4.61 | 5.69 | 6.36 | 7.27 | 9.95 |
| 25개 언어 44회 | parakeet-tdt-0.6b-v3 | 10.55 | 30.93 | - | - | - |
| 25개 언어 44회 | nemotron-3.5-asr-streaming-0.6b | - | 20.00 | 20.91 | 21.81 | 22.77 |
| 25개 언어 44회 | nemotron-labs-unified-asr-0.6b | 9.49 | 11.85 | 13.25 | 15.24 | 19.19 |
다국어 HF 묶음은 독일어, 프랑스어, 이탈리아어, 스페인어, 포르투갈어를 대상으로 14회 측정했다. 25개 언어 묶음은 FLEURS, MCV, MLS의 평가를 모두 모은 44회 결과다.
언어별 편차는 크다. 오프라인 기준 WER이 가장 낮은 언어는 스페인어(3.61)이고 독일어 4.32, 이탈리아어 4.33, 러시아어 4.42, 포르투갈어 5.18이 뒤를 잇는다. 가장 높은 언어는 라트비아어(21.93)이고 슬로베니아어 20.95, 리투아니아어 18.66이 다음이다. 지연 0.16초에서는 스페인어가 7.15, 라트비아어가 47.48이다. 44회 평균은 오프라인 9.49, 1.12초 11.85, 0.56초 13.25, 0.32초 15.24, 0.16초 19.19다. 언어별 수치는 FLEURS, MCV, MLS 중 그 언어에 있는 데이터셋의 평균이며, 평균 행은 44회 전체의 평균이라 언어별 행의 단순 평균과 다르다.
영어는 Hugging Face Open ASR 리더보드용 정제 세트로 따로 쟀다. 오프라인 평균은 4.68이고 1.12초 5.41, 0.56초 5.68, 0.32초 6.27, 0.16초 7.87, 0.08초 9.02다. 세트별로는 LibriSpeech test-clean이 오프라인 1.38, test-other가 2.81이고, Earnings22(AA-chunked)는 6.96에서 0.16초 15.48까지 오른다. 0.08초 설정은 청크 0.08초에 오른쪽 문맥이 없는 구성이다. 오른쪽 문맥이 없으면 모델이 덜 안정적이어서 영어에서만 평가했고 권장 설정에도 넣지 않았다. 정제 세트를 쓴 평균이라 예전 비정제 세트 결과와 직접 비교할 수 없다고 카드는 밝혔다.
평가에 쓴 데이터는 FLEURS(25개 언어), Mozilla Common Voice(13개 언어), Multilingual LibriSpeech(6개 언어)와 영어 정제 세트인 AMI, Earnings22, GigaSpeech, LibriSpeech, SPGISpeech, VoxPopuli다. 음성은 모두 사람이 녹음한 것이다.
스트리밍 설정과 한계
스트리밍 지연은 청크와 오른쪽 문맥의 합이며, 재학습 없이 2080ms에서 160ms까지 80ms 단위로 바꿀 수 있다. 왼쪽 문맥은 학습 때 쓴 5.6초가 기본값이다. 권장 조합은 아래와 같고, 다른 조합도 용도에 따라 고를 수 있다. 왼쪽 문맥을 2초 밑으로 줄이면 정확도가 눈에 띄게 떨어지므로 줄이지 말라고 권고한다.
- 청크 1.04초, 오른쪽 문맥 1.04초, 지연 2.08초
- 청크 0.56초, 오른쪽 문맥 0.56초, 지연 1.12초
- 청크 0.16초, 오른쪽 문맥 0.40초, 지연 0.56초
- 청크 0.08초, 오른쪽 문맥 0.24초, 지연 0.32초
- 청크 0.08초, 오른쪽 문맥 0.16초, 지연 0.24초
- 청크 0.08초, 오른쪽 문맥 0.08초, 지연 0.16초
현재 스트리밍 추론은 버퍼 방식이며 캐시 인식형 스트리밍이 아니다. NVIDIA의 일반 스트리밍 음성 인식 모델은 인과 합성곱을 쓰고 오른쪽 문맥을 두지 않아 인코더 상태를 캐시해 청크마다 재사용한다. 이 모델은 오프라인 수준 정확도를 내려고 비인과 합성곱과 오른쪽 문맥을 쓰기 때문에, 학습과 추론 조건을 맞추려면 청크마다 왼쪽 문맥을 다시 계산해야 한다. 같은 지연이면 캐시 인식형보다 계산량이 많다.
이 모델로 캐시 인식 디코딩을 하는 것도 기술적으로 가능하지만 학습 조건과 어긋나 정확도가 떨어진다. 오른쪽 문맥 0으로 미세 조정(fine-tuning)하면 캐시 인식 디코딩이 가능해지지만 이 모델의 장점인 최고 수준 오프라인 성능을 내줘야 한다. 추론을 빠르게 하려면 왼쪽 문맥을 3초에서 2초 정도로 줄이는 방법이 있으며, 이때 정확도가 떨어질 수 있다.
음성 번역 연결과 사용법
NVIDIA는 이 모델을 ASR 앞단과 번역 LLM을 잇는 연쇄 동시 음성 번역의 입구로도 쓸 수 있다고 소개했다. 오른쪽 문맥 덕분에 현재 청크가 다음 소리를 일부 보고 나서 전사를 확정하므로, 번역 LLM이 더 정확한 원문을 받는다는 설명이다. 영어 전용 전신인 Parakeet-unified-en-0.6b는 NVIDIA의 IWSLT 2026 시스템에서 영어에서 다른 언어로 옮기는 트랙의 ASR 앞단을 맡았다. 이 시스템은 두 지연 구간 모두에서 영어→독일어, 영어→중국어, 영어→이탈리아어 번역이 COMET 기준 1위였다.
새 체크포인트의 번역 실험은 Riva-Translate-4B-Instruct-v2에 최장 공통 접두사 번역 정책(waitk=-1)과 800ms 발화 종료 감지를 적용해 FLEURS로 했다. COMET(Unbabel/XCOMET-XL로 채점, 높을수록 좋음)과 LAAL(길이 적응형 평균 지연, 초 단위, 낮을수록 좋음)은 각 방향 23개 언어쌍의 평균이다. 번역 LLM이 몰타어를 지원하지 않아 몰타어는 뺐다.
| ASR 모델과 설정 | 영어→X COMET | 영어→X LAAL | X→영어 COMET | X→영어 LAAL |
|---|---|---|---|---|
| Unified, 청크 0.56초 + 오른쪽 0.56초 | 81.4 | 2.40초 | 81.7 | 2.58초 |
| Unified, 청크 0.80초 + 오른쪽 0.80초 | 81.2 | 2.74초 | 82.8 | 2.97초 |
| Unified, 청크 1.04초 + 오른쪽 0.56초 | 82.1 | 3.14초 | 83.7 | 3.36초 |
| Nemotron 3.5 캐시 인식형, 지연 1.12초 | 79.3 | 2.96초 | 78.5 | 3.27초 |
모델은 아래와 같이 불러 쓴다. 오프라인 추론은 NeMo의 ASRModel로 모델을 불러온 뒤 transcribe에 오디오 경로와 target_lang(독일어는 de, 불가리아어는 bg, 자동 판별은 auto)을 넘긴다. 스트리밍은 NeMo 저장소의 speech_to_text_streaming_infer_rnnt.py 스크립트로 돌리며, 여기에도 target_lang에 언어 ID(en, bg, auto 등)를 넘겨야 한다. 1.12초 지연 설정은 left_context_secs=5.6, chunk_secs=0.56, right_context_secs=0.56, att_context_size_as_chunk=true다. 문장부호와 대문자 처리, 역텍스트 정규화(ITN), 번역까지 묶은 종단 파이프라인은 buffered_rnnt.yaml 설정 파일과 PipelineBuilder로 만든다.
입력은 16kHz 단일 채널 wav 오디오와 언어 ID 문자열이며 오디오는 80ms 이상이어야 한다. 음성이 없는 오디오에는 출력이 빈 문자열일 수 있다. 실행 엔진은 NeMo Speech 3.1.0이고 운영체제는 Linux다. 하드웨어는 NVIDIA Volta, Ampere, Hopper, Blackwell 계열 GPU를 지원한다. 모델 버전은 Nemotron-Labs-Unified-ASR-0.6b-v1이다.
번역 연쇄는 한 프로세스에서 asr_streaming_infer.py로 돌린다. 통합 모델이 버퍼 스트리밍으로 받아 적고, 확정된 구간마다 vLLM으로 띄운 LLM이 번역한다. vLLM이 all, cu12, cu13 extras와 충돌하므로 NeMo Speech 체크아웃 안에 별도 환경을 만들어 uv sync로 설치하고, Python 3.13에서 asr와 vllm extras를 지정한다. 독일어를 영어로 옮기는 예시는 lang=de, nmt.source_language=German, nmt.target_language=English로 설정한다. 언어 ID는 ASR 프롬프트에, 언어 이름은 번역 모델에 쓰이므로 서로 다른 값을 넣는다. Riva-Translate-4B-Instruct-v2에서는 FLEURS 스페인어와 포르투갈어 데이터에 각각 Latin American Spanish와 Brazilian Portuguese를 쓴다. 번역 LLM은 nmt.device_id의 GPU에서 돌고, 한 GPU에서 두 모델을 함께 돌리려면 nmt.device_id=0으로 두고 gpu_memory_utilization을 0.6 정도로 낮춘다.
NVIDIA는 파운데이션 모델과 미세 조정 모델을 AI 시스템에 넣을 때 용도별 데이터로 추가 시험이 필요하다고 안내했다. 단위 수준과 시스템 수준에서 반복 검증해 안전과 윤리 기준 준수를 점검한 뒤 배포하라는 것이다. 모델 품질, 위험, 보안 취약점은 NVIDIA에 신고할 수 있다.
출처
이 기사는 아래 자료를 바탕으로 정리했습니다. 제목을 누르면 원문이 새 창으로 열립니다.