ModelScope 기반의 엔드 투 엔드 음성 인식 툴킷으로, 음성 인식, 음성 활동 감지, 구두점 복원 등 다양한 기능을 지원합니다.

MITPythonFunASRmodelscope 12.6k Last Updated: September 09, 2025

FunASR - 기본 종단 간 음성 인식 툴킷

프로젝트 개요

FunASR은 음성 인식(ASR), 음성 활동 감지(VAD), 구두점 복원, 언어 모델, 화자 검증, 화자 분리 및 다중 화자 ASR을 포함한 다양한 기능을 제공하는 기본 음성 인식 툴킷입니다. 이 프로젝트는 알리바바 다모 아카데미(Alibaba DAMO Academy)에서 개발되었으며, 학술 연구와 산업 응용 간의 다리를 구축하는 것을 목표로 합니다.

프로젝트 주소: https://github.com/modelscope/FunASR

핵심 기능

1. 다기능 음성 처리

  • 음성 인식 (ASR): 스트리밍 및 비스트리밍 인식 지원
  • 음성 활동 감지 (VAD): 음성 활동 구간 감지
  • 구두점 복원: 구두점 자동 추가
  • 화자 인식: 화자 검증 및 분리 지원
  • 감정 인식: 음성 감정 분석
  • 키워드 감지: 키워드 웨이크업 지원

2. 사전 학습 모델 라이브러리

FunASR은 ModelScope 및 Hugging Face에 방대한 학술 및 산업 등급의 사전 학습 모델을 게시했으며, 주요 모델은 다음과 같습니다.

모델 이름 기능 설명 학습 데이터 파라미터 수
SenseVoiceSmall ASR, ITN, LID, SER 및 AED를 포함한 다중 음성 이해 능력 30만 시간 234M
paraformer-zh 중국어 음성 인식, 타임스탬프 포함, 비스트리밍 6만 시간, 중국어 220M
paraformer-zh-streaming 중국어 음성 인식, 스트리밍 6만 시간, 중국어 220M
paraformer-en 영어 음성 인식, 비스트리밍 5만 시간, 영어 220M
ct-punc 구두점 복원 1억 개, 중국어 및 영어 290M
fsmn-vad 음성 활동 감지 5000시간, 중국어 및 영어 0.4M
Whisper-large-v3 다국어 음성 인식 다국어 1550M

3. 핵심 모델 소개

Paraformer

Paraformer-large는 높은 정확도, 높은 효율성 및 편리한 배포의 장점을 가진 비자기회귀 종단 간 음성 인식 모델로, 음성 인식 서비스를 빠르게 구축할 수 있도록 지원합니다.

SenseVoice

SenseVoice는 ASR, LID, SER 및 AED를 포함한 다양한 음성 이해 능력을 가진 음성 기반 모델로, 중국어, 광둥어, 영어, 일본어, 한국어 등 다양한 언어를 지원합니다.

설치 및 사용

설치 방법

pip를 통한 설치

pip3 install -U funasr

소스 코드에서 설치

git clone https://github.com/alibaba/FunASR.git && cd FunASR
pip3 install -e ./

모델 라이브러리 지원 설치 (선택 사항)

pip3 install -U modelscope huggingface_hub

빠른 시작

1. 명령줄 사용

funasr ++model=paraformer-zh ++vad_model="fsmn-vad" ++punc_model="ct-punc" ++input=asr_example_zh.wav

2. Python API - SenseVoice 모델

from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocess

model_dir = "iic/SenseVoiceSmall"
model = AutoModel(
    model=model_dir,
    vad_model="fsmn-vad",
    vad_kwargs={"max_single_segment_time": 30000},
    device="cuda:0",
)

# 영어 인식
res = model.generate(
    input=f"{model.model_path}/example/en.mp3",
    cache={},
    language="auto", # "zn", "en", "yue", "ja", "ko", "nospeech"
    use_itn=True,
    batch_size_s=60,
    merge_vad=True,
    merge_length_s=15,
)
text = rich_transcription_postprocess(res[0]["text"])
print(text)

3. Python API - Paraformer 모델

from funasr import AutoModel

# paraformer-zh는 다기능 ASR 모델입니다.
model = AutoModel(
    model="paraformer-zh", 
    vad_model="fsmn-vad", 
    punc_model="ct-punc",
    # spk_model="cam++",  # 선택 사항: 화자 인식
)

res = model.generate(
    input=f"{model.model_path}/example/asr_example.wav",
    batch_size_s=300,
    hotword='魔搭'  # 핫워드
)
print(res)

4. 스트리밍 인식

from funasr import AutoModel
import soundfile
import os

chunk_size = [0, 10, 5]  # [0, 10, 5] 600ms 지연 구성
encoder_chunk_look_back = 4
decoder_chunk_look_back = 1

model = AutoModel(model="paraformer-zh-streaming")

wav_file = os.path.join(model.model_path, "example/asr_example.wav")
speech, sample_rate = soundfile.read(wav_file)
chunk_stride = chunk_size[1] * 960  # 600ms

cache = {}
total_chunk_num = int(len((speech)-1)/chunk_stride+1)

for i in range(total_chunk_num):
    speech_chunk = speech[i*chunk_stride:(i+1)*chunk_stride]
    is_final = i == total_chunk_num - 1
    res = model.generate(
        input=speech_chunk, 
        cache=cache, 
        is_final=is_final, 
        chunk_size=chunk_size,
        encoder_chunk_look_back=encoder_chunk_look_back, 
        decoder_chunk_look_back=decoder_chunk_look_back
    )
    print(res)

서비스 배포

FunASR은 사전 학습되거나 추가 미세 조정된 모델을 서비스에 배포하는 것을 지원하며, 현재 다음 유형의 서비스 배포를 지원합니다.

지원되는 서비스 유형

  • 오프라인 파일 전사 서비스 (중국어, CPU 버전)
  • 실시간 전사 서비스 (중국어, CPU 버전)
  • 오프라인 파일 전사 서비스 (영어, CPU 버전)
  • 오프라인 파일 전사 서비스 (중국어, GPU 버전)

배포 구성 권장 사항

권장 구성:

  • 구성 1: (X86 컴퓨팅 유형) 4코어 vCPU, 8GB 메모리, 단일 머신에서 약 32개 요청 지원
  • 구성 2: (X86 컴퓨팅 유형) 16코어 vCPU, 32GB 메모리, 단일 머신에서 약 64개 요청 지원

기술적 특징

1. 모델 혁신

  • 비자기회귀 아키텍처: Paraformer는 비자기회귀 설계를 채택하여 추론 효율성 향상
  • 2Pass 모드: 스트리밍 및 비스트리밍의 장점 결합
  • 핫워드 지원: 특정 단어 인식 정확도를 높이기 위한 사용자 정의 핫워드 지원

2. 엔지니어링 최적화

  • ONNX 내보내기: 배포를 용이하게 하기 위한 ONNX 형식 모델 내보내기 지원
  • 다중 플랫폼 지원: CPU, GPU, ARM64 등 다양한 플랫폼 지원
  • 컨테이너화된 배포: Docker 이미지 지원 제공

3. 개발자 친화적

  • 통합 인터페이스: AutoModel은 ModelScope, Hugging Face 및 FunASR의 추론 인터페이스를 통합
  • 플러그인 방식 설계: VAD, 구두점, 화자 등 구성 요소의 유연한 조합 지원
  • 풍부한 문서: 자세한 튜토리얼 및 예제 제공

응용 시나리오

1. 실시간 음성 전사

  • 회의록
  • 라이브 스트리밍 자막
  • 음성 비서

2. 오프라인 오디오 처리

  • 오디오 파일 전사
  • 음성 데이터 분석
  • 콘텐츠 검토

3. 다국어 지원

  • 교차 언어 음성 인식
  • 음성 번역
  • 다국어 고객 서비스

최신 업데이트

2024년 주요 업데이트

  • 2024/10/29: 실시간 전사 서비스 1.12 출시, 2pass-offline 모드에서 SenseVoice 모델 지원
  • 2024/10/10: Whisper-large-v3-turbo 모델 지원 추가
  • 2024/09/26: 메모리 누수 문제 해결, SenseVoice ONNX 모델 지원
  • 2024/07/04: SenseVoice 음성 기반 모델 출시
  • 2024/06/27: 오프라인 파일 전사 서비스 GPU 1.0 출시

커뮤니티 및 지원

오픈 소스 라이선스

커뮤니티 참여

  • GitHub Issues: 기술 문제 및 버그 피드백
  • 딩톡(DingTalk) 그룹: 일상적인 교류 및 토론
  • ModelScope: 모델 다운로드 및 공유

인용

연구에서 FunASR을 사용하신 경우 다음 논문을 인용해 주십시오.

@inproceedings{gao2023funasr,
  author={Zhifu Gao and Zerui Li and Jiaming Wang and Haoneng Luo and Xian Shi and Mengzhe Chen and Yabin Li and Lingyun Zuo and Zhihao Du and Zhangyu Xiao and Shiliang Zhang},
  title={FunASR: A Fundamental End-to-End Speech Recognition Toolkit},
  year={2023},
  booktitle={INTERSPEECH},
}

요약

FunASR은 기능이 완벽하고 성능이 뛰어난 음성 인식 툴킷으로, 학술 연구의 최첨단 기술과 산업 응용의 실제 요구 사항을 성공적으로 결합했습니다. 연구원이 알고리즘을 검증하든, 개발자가 음성 응용 프로그램을 구축하든, FunASR은 강력한 기술 지원과 편리한 개발 경험을 제공합니다. 풍부한 사전 학습 모델, 유연한 배포 솔루션 및 활발한 오픈 소스 커뮤니티를 통해 FunASR은 음성 인식 분야의 중요한 인프라가 되고 있습니다.

Star History Chart