TL;DR

  • Moondream이 NVIDIA Parakeet 기반의 25개 언어 음성-텍스트 모델 Parakeet Redux와 Parakeet Ultra를 출시했으며, Redux는 작은 크기와 CPU 추론에, Ultra는 GPU 추론과 높은 정확도에 초점을 둠.
  • Parakeet Redux는 1.2GB 모델 가중치를 178MB로 압축하고, 삼진 양자화와 Photon 전용 커널을 이용해 CPU와 Apple Silicon에서 빠르게 추론함.
  • Parakeet Ultra는 전체 정밀도 가중치 크기를 유지하며 후속 학습으로 평가 그룹 전반의 단어 오류율을 낮춤.
  • 두 모델은 음성 활동 감지(VAD)를 내장해 최대 30초 단위로 녹음을 나누며, Redux와 Ultra는 TED-LIUM 장시간 녹음에서 각각 2.51%, 1.94%의 단어 오류율을 기록함.
  • Moondream Python 패키지에서 파일·실시간 오디오·타임스탬프·스트리밍 전사를 지원하며, 모델 가중치 라이선스는 CC-BY-4.0임.

Parakeet을 더 작게 만들기

  • Moondream은 노트북에서 실행하거나 서버 운영 비용을 줄일 수 있도록 시각 언어 모델(VLM)을 작고 빠르게 만드는 작업을 진행했으며, 음성 모델에도 같은 접근을 적용함.
  • Parakeet Redux와 Parakeet Ultra는 NVIDIA의 Parakeet을 기반으로 하는 음성-텍스트 모델이며, 모두 25개 언어 자동 음성 인식(ASR)을 지원함.
  • Parakeet Redux는 모델 가중치를 1.2GB에서 178MB로 줄이고 CPU와 Mac에서의 빠른 추론에 맞춰 설계됨. Parakeet Ultra는 전체 정밀도 가중치를 유지하고 추가 학습으로 전사 정확도를 높이며 GPU 실행에 맞춰 설계됨.
  • CPU와 Apple Silicon에서는 연산량보다 메모리 대역폭이 추론 속도를 제한하는 경우가 많음. 가중치가 작아지면 메모리와 프로세서 사이의 데이터 이동량도 줄어들어 메모리 사용량과 전사 시간을 함께 낮출 수 있음.
  • Redux는 인코더 가중치를 −1, 0, +1 세 값으로 제한하는 삼진 양자화(ternary quantization)를 적용함. 가중치 저장 공간이 줄어들며, 추론 엔진 Photon은 압축된 표현에서 직접 연산하는 전용 커널을 제공함.
  • Photon에서 측정한 Parakeet Redux 처리 속도는 다음과 같음.
  • Apple M2 CPU, MacBook Air: 초당 오디오 38초
  • Apple M2 GPU, MacBook Air: 초당 오디오 43초
  • AMD EPYC 9575F CPU, 8코어: 초당 오디오 113초
  • 동일한 AMD CPU에서 Parakeet Redux는 측정한 가장 빠른 대안인 parakeet.cpp보다 처리량이 2.5배 높음. 다른 엔진과의 비교 및 전체 테스트 세부 정보는 모델 카드에 제시됨.
  • 한 사용자는 LLM을 위한 GPU 메모리를 확보하려고 전사를 CPU로 옮겼으며, AMD Ryzen 9 9950X3D CPU에서 실행한 Redux가 NVIDIA RTX PRO 6000 GPU의 8비트 parakeet.cpp보다 짧은 클립에서 앞서고 긴 클립에서는 거의 비슷한 성능을 보였음.
  • 단어 오류율(word error rate)은 기준 전사와 비교해 누락·오류·추가 단어를 세는 지표이며, 값이 낮을수록 정확도가 높음.
  • 영어 테스트 세트 7개의 평균 단어 오류율은 원본 Parakeet의 6.26%에서 Redux의 6.55%로 높아짐. 25개 언어 FLEURS 평가에서는 원본의 11.62%에서 Redux의 10.56%로 낮아짐.
  • 가장 큰 성능 절충은 배경 소음 환경이며, Redux는 원본보다 더 많은 오류를 냄. 소음이 우려되고 GPU를 사용할 수 있는 경우에는 Parakeet Ultra를 권장함.

Parakeet의 정확도를 높이기

  • Parakeet Ultra는 원본 모델 크기를 유지하면서 전사 품질 개선에 초점을 두며, 후속 학습으로 영어·다국어 음성·비즈니스 녹음·배경 소음이 섞인 음성 등 평가한 모든 그룹에서 평균 오류율을 낮춤.
  • 원본 Parakeet, Parakeet Redux, Parakeet Ultra의 단어 오류율 비교는 다음과 같음.
  • 영어, 테스트 세트 7개: 6.26% / 6.55% / 5.80%
  • FLEURS, 25개 언어: 11.62% / 10.56% / 9.55%
  • 비즈니스 음성: 6.15% / 6.96% / 5.79%
  • 배경 소음: 6.72% / 9.04% / 5.82%
  • 장시간 녹음, TED-LIUM 강연 11개: 2.71% / 2.51% / 1.94%
  • 다국어 평가에서 Parakeet Ultra의 평균 단어 오류율은 원본보다 18% 낮음.

일시정지 지점 찾기

  • 긴 녹음을 작은 구간으로 나누는 위치에 따라 전사 정확도가 달라질 수 있으며, 단어 중간에서 자르면 정확한 전사가 어려워질 수 있음.
  • 두 모델 모두 음성 활동 감지(VAD)를 내장함. VAD가 음성이 있는 구간을 찾고, Photon은 이를 이용해 녹음을 최대 30초 길이의 청크로 나눌 수 있는 일시정지 지점을 식별함.
  • 별도의 VAD 모델을 설정하거나 오디오를 직접 자르지 않고 전체 녹음을 입력할 수 있음.
  • 각각 10~20분 길이인 TED-LIUM 전체 강연 11개 평가에서 Redux는 원본의 단어 오류율 2.71%를 2.51%로 낮춤. Ultra는 이를 1.94%로 낮춰 28% 감소를 기록함.

사용해 보기

  • 두 모델은 Moondream Python 패키지에서 파일, 실시간 오디오, 타임스탬프 처리를 지원하며, 패키지 버전은 moondream>=2.4.1임.
  • CPU에서 Redux를 실행해 WAV·MP3·FLAC·M4A 등 오디오 파일을 전사할 수 있으며, 긴 녹음은 자동으로 분할됨.
  • Apple GPU에서는 mps 장치를 사용하고, NVIDIA GPU에서 Ultra를 실행할 때는 모델을 moondream/parakeet-ultra, 장치를 cuda로 지정함. 두 모델은 언어를 자동으로 선택하고 문장부호와 대소문자를 보존함.
  • timestamps="word" 설정으로 문장 구간과 단어별 시작·종료 시각을 초 단위로 얻을 수 있음. 문장 단위 시각만 필요한 경우 timestamps="segment", 텍스트만 필요한 경우 timestamps="none"을 사용함.
  • stream=True를 지정하면 오디오를 처리하는 동안 갱신된 전사 결과를 받을 수 있음. 각 업데이트는 이전 결과에 덧붙이는 내용이 아니라 이전 결과를 대체하는 스냅샷임.
  • 마이크나 네트워크 스트림의 실시간 오디오는 비동기 반복자(asynchronous iterator)와 샘플 레이트를 atranscribe에 전달해 처리함. 각 청크는 비어 있지 않은 1차원 NumPy 배열 또는 CPU Torch 텐서이며, 원시 PCM 샘플을 담아야 함.
  • 실시간 미리보기는 오디오 4초가 입력된 뒤 시작되며 이후 2초마다 예약됨. 더 많은 문맥이 들어오면 이전 텍스트가 바뀔 수 있음. 녹음이 끝나면 반복자를 종료해 최종 전사를 받을 수 있음.
  • 원본 파일을 편집하지 않고 시작·종료 시각을 지정해 일부 구간만 전사할 수 있으며, 인코딩된 오디오 바이트도 직접 전달할 수 있음.
  • 메모리에 있는 원시 오디오는 1차원 모노 NumPy 배열 또는 CPU Torch 텐서로 전달하고 샘플 레이트를 지정함. 인코딩된 파일과 바이트에는 샘플 레이트 정보가 포함됨. 클립 구간 지정은 녹음된 오디오에 적용되며 실시간 스트림에는 적용되지 않음.
  • 가중치는 NVIDIA 원본 모델과 동일한 CC-BY-4.0 라이선스로 제공됨. Parakeet Redux 및 Parakeet Ultra 모델 카드에 상세 벤치마크와 예제가 있음.