antirez/qwen-asr
C inference for Qwen3-ASR 0.6b and 1.7b transcriptions models
해결하는 문제
이 프로젝트는 Qwen3-ASR 음성-텍스트 변환 모델을 위한 고성능 순수 C 추론 파이프라인을 제공합니다. 최소한의 의존성으로 강력한 ASR 모델(0.6B 및 1.7B 파라미터)을 CPU, NVIDIA GPU(CUDA 사용), AMD GPU(ROCm 사용)에서 효율적으로 실행할 수 있습니다.
작동 원리
이 구현체는 오디오 전처리, 토큰화, 모델 추론을 처리하는 C 기반 파이프라인을 사용합니다. 세 가지 주요 작동 모드를 지원합니다:
- 일반 모드 (Normal Mode): 오디오를 한 번에(오프라인) 처리하거나, 큰 파일을 처리하기 위해 세그먼트 단위로 처리합니다.
- 스트리밍 모드 (Streaming Mode): 2초 단위의 청크로 오디오를 처리하며, 슬라이딩 윈도우와 접두사 롤백(prefix rollback)을 사용하여 실시간 오디오의 문맥과 안정성을 유지합니다.
- 세그먼트 모드 (Segmented Mode): 메모리와 연산 비용을 관리하기 위해 무음 구간을 기준으로 긴 오디오를 세그먼트로 분할합니다.
성능 최적화를 위해 CPU 가속에는 BLAS를, GPU 백엔드에는 네이티브 커널을 사용합니다. 또한 CPU 추론 시 메모리 매핑된 가중치(memory-mapped weights)를 사용하여 메모리 오버헤드를 줄입니다.
대상 사용자
- 개발자: 음성-텍스트 변환 기능을 애플리케이션에 통합하기 위한 가볍고 의존성 없는 C 라이브러리를 찾는 분.
- 시스템 관리자: 무거운 Python 런타임 없이 원격 Linux 서버에서 ASR을 실행해야 하는 분.
- 사용자: 저사양 Intel/AMD 프로세서나 특정 AMD/NVIDIA GPU를 포함한 일반적인 하드웨어에서 Qwen3-ASR 모델을 실행하려는 분.
주요 특징
- 최소한의 의존성: CPU 빌드 시 C 표준 라이브러리와 BLAS 구현체만 필요합니다.
- GPU 가속: NVIDIA CUDA 및 AMD ROCm 백엔드를 네이티브로 지원합니다.
- 유연한 입력: WAV 파일 및 stdin을 통한 오디오 입력(예: ffmpeg에서 파이프)을 지원합니다.
- 실시간 진단: Unicode 기호를 사용하여 stderr에서 파이프라인 진행 상황을 시각화하는 '모니터 모드'를 제공합니다.
- 언어 및 프롬프트 제어: 특정 대상 언어를 강제하거나 시스템 프롬프트를 제공하여 철자 및 전문 용어를 조정할 수 있습니다.
- 스트리밍 기능: 메모리와 연산량을 제한하는 슬라이딩 윈도우를 통해 무제한 스트리밍을 지원합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트