BetterWhisperX: 화자와 분리된 자동 음성 인식으로 매우 정확한 단어 수준의 타임스탬프 제공

최신 AI 리소스7개월 전 업데이트 AI 공유 서클
1.9K 00

일반 소개

BetterWhisperX는 효율적이고 정확한 자동 음성 인식(ASR) 서비스를 제공하는 데 중점을 둔 WhisperX 프로젝트의 최적화된 버전입니다. 이 프로젝트는 WhisperX의 개선된 파생 버전으로, 프로젝트를 지속적으로 업데이트하고 성능을 개선하기 위해 최선을 다하는 Federico Torrielli가 관리하며, 음소 수준의 강제 정렬, 음성 활동 기반 일괄 처리, 화자 분리 등 여러 고급 기술을 통합하고 있습니다. 이 도구는 고속 트랜스크립션(대형 V2 모델 사용 시 최대 70배 실시간 속도)을 지원할 뿐만 아니라 정확한 단어 수준의 타임스탬프와 다중 화자 인식 기능도 제공합니다. 이 시스템은 더 빠른 속삭임을 백엔드로 사용하므로 대용량 모델도 처리하는 데 필요한 GPU 메모리가 적어 성능 대비 효율성이 매우 높습니다.

BetterWhisperX:自动语音识别与说话人分离,提供高精度单词级时间戳

 

기능 목록

  • 빠른 음성 텍스트 변환대형 모델인 large-v2를 사용하면 70배속 실시간 트랜스크립션이 지원됩니다.
  • 단어 수준 타임스탬프wav2vec2 정렬을 통해 정확한 단어 수준의 타임스탬프를 제공합니다.
  • 다중 화자 인식파이안노트 오디오로 화자 분리 및 라벨링.
  • 음성 활동 감지오류율 증가 없이 오식별 및 일괄 처리 감소.
  • 일괄 추론처리 효율을 높이기 위해 일괄 처리를 지원합니다.
  • 호환성다양한 환경을 위한 PyTorch 2.0 및 Python 3.10 지원.

 

도움말 사용

세부 운영 절차

  1. 오디오 파일 준비오디오 파일 형식이 WAV 또는 MP3이고 음질이 선명한지 확인하세요.
  2. 모델 로드요구 사항에 따라 적절한 모델(예: 대형-V2)을 선택하고 메모리에 로드합니다.
  3. 전사 수행트랜스크립트 기능을 호출하여 음성-텍스트 변환을 수행하고 예비 트랜스크립트 결과를 얻습니다.
  4. 정렬된 타임스탬프정확한 타임스탬프를 보장하기 위해 정렬 기능을 사용하여 전사 결과의 단어 수준 타임스탬프를 정렬합니다.
  5. 스피커 분리다중 화자 인식을 위한 일기장 기능을 호출하여 각 화자에 대한 레이블과 해당 음성 조각을 가져옵니다.
  6. 결과 출력최종 결과를 텍스트 파일 또는 JSON 형식으로 저장하여 추후 처리 및 분석할 수 있습니다.

1. 환경 준비

  1. 시스템 요구 사항:
    • Python 3.10 환경(가상 환경을 만들려면 mamba 또는 conda를 권장)
    • CUDA 및 cuDNN 지원(GPU 가속에 필요)
    • FFmpeg 툴킷
  2. 설치 단계:
# 创建 Python 环境
mamba create -n whisperx python=3.10
mamba activate whisperx
# 安装 CUDA 和 cuDNN
mamba install cuda cudnn
# 安装 BetterWhisperX
pip install git+https://github.com/federicotorrielli/BetterWhisperX.git

2. 기본 사용법

  1. 명령줄 사용법:
# 基础转录(英语)
whisperx audio.wav
# 使用大模型和更高精度
whisperx audio.wav --model large-v2 --align_model WAV2VEC2_ASR_LARGE_LV60K_960H --batch_size 4
# 启用说话人分离
whisperx audio.wav --model large-v2 --diarize --highlight_words True
# CPU 模式(适用于 Mac OS X)
whisperx audio.wav --compute_type int8
  1. Python 코드 호출:
import whisperx
import gc
device = "cuda"
audio_file = "audio.mp3"
batch_size = 16  # GPU 内存不足时可降低
compute_type = "float16"  # 内存不足可改用 "int8"
# 1. 加载模型并转录
model = whisperx.load_model("large-v2", device, compute_type=compute_type)
audio = whisperx.load_audio(audio_file)
result = model.transcribe(audio, batch_size=batch_size)
# 2. 音素对齐
model_a, metadata = whisperx.load_align_model(language_code=result["language"], device=device)
result = whisperx.align(result["segments"], model_a, metadata, audio, device)
# 3. 说话人分离(需要 Hugging Face token)
diarize_model = whisperx.DiarizationPipeline(use_auth_token=YOUR_HF_TOKEN, device=device)
diarize_segments = diarize_model(audio)
result = whisperx.assign_word_speakers(diarize_segments, result)

3. 성능 최적화 권장 사항

  1. GPU 메모리 최적화:
    • 배치 크기 줄이기(batch_size)
    • 소형 모델 사용(예: 대형 대신 기본형)
    • 경량 계산 유형 선택(int8)
  2. 다국어 지원:
    • 기본적으로 지원되는 언어: 영어, 프랑스어, 독일어, 스페인어, 이탈리아어, 일본어, 중국어, 네덜란드어, 우크라이나어, 포르투갈어
    • 사용할 언어를 지정합니다:--language de(독일어 예시)

4. 주의 사항

  • 특수 문자(예: 숫자, 통화 기호)의 경우 타임스탬프가 충분히 정확하지 않을 수 있습니다.
  • 여러 사람이 동시에 대화하는 장면의 인식이 효과적이지 않을 수 있습니다.
  • 스피커 분리는 여전히 최적화 중입니다.
  • 화자 분리 기능을 사용하려면 허깅 페이스 액세스 토큰이 필요합니다.
  • GPU 드라이버 및 CUDA 버전 호환성 확인
© 저작권 정책
AiPPT

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...