프로젝트 소개

SenseVoice는 자동 음성 인식(ASR), 음성 언어 식별(LID), 음성 감정 인식(SER), 오디오 이벤트 감지(AED) 등 여러 음성 이해 기능을 갖춘 음성 파운데이션 모델입니다. 공개된 체크포인트의 범위: SenseVoiceSmall은 중국어, 광둥어, 영어, 일본어, 한국어에 대한 ASR과 언어 ID를 지원하며, 감정 및 오디오 이벤트 태그도 함께 제공합니다. 더 넓은 SenseVoice 연구 작업은 40만 시간 이상의 훈련과 50개 이상 언어 지원을 보고하지만, 공개된 소형 체크포인트는 위의 다섯 언어를 다룹니다. 화자 분리는 체크포인트 자체의 출력이 아니며, 별도의 FSMN-VAD와 CAM++ 모델을 사용하는 구성된 FunASR 파이프라인입니다. 주요 특징 - 풍부한 전사: 감정 인식 태그와 배경 음악, 박수, 웃음, 음, 기침, 재채기와 같은 이벤트에 대한 사운드 이벤트 감지. - 효율적인 추론: 낮은 지연 추론을 위한 비자기회귀 드투엔드 프레임워크. 프로젝트의 벤치마크 설정에서 SenseVoiceSmall은 유사한 파라미터 수에서 Whisper-Small보다 5배 이상, Whisper-Large보다 15배 이상 빠르게 실행되는 것으로 보고됩니다. - 롱테일 데이터에 적응하기 위한 파인튜닝 스크립트와 전략. - 다중 동시 요청을 지원하는 서비스 배포 파이프라인, 클라이언트 측 언어로 Python, C++, HTML, Java, C# 포함. 사용법 pip install -r requirements.txt로 의존성을 설치합니다. 예제와 구성된 화자 분리 경로는 funasr>=1.3.26이 필요합니다(현재 배포 경로는 funasr==1.4.14 권장). 기본 추론은 iic/SenseVoiceSmall 모델과 함께 FunASR의 AutoModel을 사용하며, 긴 오디오에 대한 선택적 FSMN-VAD 분할, 언어 선택(auto, zh, en, yue, ja, ko, nospeech), 역 텍스트 정규화, 동적 배칭, VAD 병합을 지원합니다. rich_transcription_postprocess 헬퍼가 원시 출력을 포맷합니다. VAD 없는 긴 오디오: 한 시간 길이의 파형을 단일 generate 호출에 전달하면 인코더 메모리가 오디오 크기를 훨씬 초과하여 증가할 수 있습니다. long_audio_no_vad.py 스크립트는 ffmpeg를 통해 디코딩하고 2초 겹침으로 고정된 30초 윈도우에서 SenseVoice를 실행하여 원시 청크 출력을 JSONL 파일에 유지합니다. 윈도우 오프은 입력 경계를 설명하며 단어 타임스탬프가 아니며, 고정 경계는 절단 주변의 인식에 여전히 영향을 미칠 수 있습니다. 화자 분리: FSMN-VAD, CAM++ 화자 레이블, 구두점 모델을 사용하여 FunASR을 통해 구성됩니다. 화자 레이블은 명 클러스터이며 인식된 개인 신원이 아닙니다. output_timestamp=True인 경우 타임스탬프는 단어와 일대일로 정렬된 [start_ms, end_ms] 입니다. 내보내기 및 엣지 배포: ONNX 및 Libtorch 내보내기 경로가 문서화되어 있으며, llama.cpp/GGUF 런타임은 내장 FSMN-VAD와 런타임에 Python 없이 SenseVoice를 자체 포함 바이너리로 실행할 수 있게 하여 CPU 및 엣지 장치를 대상으로 합니다. 서비스 및 컨테이너: FastAPI 배포는 포트 50000에서 수신 대기하며, Docker/Docker Compose 파일은 모델 캐시 볼륨과 함께 CPU 및 GPU 실행을 지원합니다. 파인튜닝: 데이터 준비는 key, source, target, language, emotion, event 레이블이 있는 JSONL 레코드를 사용합니다. 헬퍼 명령은 wav.scp와 스트 파일을 train/val JSONL로 변환합니다. 감정 레이블에는 HAPPY, SAD, ANGRY, NEUTRAL, FEARFUL, DISGUSTED, SURPRISED가 포함되며, 이벤트 레이블에는 BGM, Speech, Applause, Laughter, Cry, Sneeze, Breath, Cough가 포함됩니다. finetune.sh 스크립트와 webui.py 데모가 제공됩니다. 벤치마크: 프로젝트는 AISHELL-1, AISHELL-2, Wenetspeech, LibriSpeech, Common Voice에서 Whisper와 다국어 ASR을 비교하여 중국어와 광둥어 인식의 이점을 보고합니다. 감정 인식의 경우 중국어와 영어 테스트 세트에서 경쟁력 있는 제로샷 결과를 보고하며 재현 가능한 SER 평가 계약을 제공합니다. 오디오 이벤트 감지의 경우 ESC-50에서 BEATS 및 PANN과 비교하며 특수 AED 모델과의 격차를 언급합니다. 생태계: SenseVoice는 FunASR, Fun-ASR, CosyVoice와 함께 FunAudioLLM 제품군의 일부입니다. 타사 통합에는 Triton/TensorRT 배포, sherpa-onnx(iOS, Android, Raspberry Pi와 같은 많은 프로그래밍 언어 및 플랫폼 지원), SenseVoice.cpp, streaming-sensevoice, OmniSenseVoice, 워드 강화 변형이 포함됩니다.