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

기능 목록
- 빠른 음성 텍스트 변환대형 모델인 large-v2를 사용하면 70배속 실시간 트랜스크립션이 지원됩니다.
- 단어 수준 타임스탬프wav2vec2 정렬을 통해 정확한 단어 수준의 타임스탬프를 제공합니다.
- 다중 화자 인식파이안노트 오디오로 화자 분리 및 라벨링.
- 음성 활동 감지오류율 증가 없이 오식별 및 일괄 처리 감소.
- 일괄 추론처리 효율을 높이기 위해 일괄 처리를 지원합니다.
- 호환성다양한 환경을 위한 PyTorch 2.0 및 Python 3.10 지원.
도움말 사용
세부 운영 절차
- 오디오 파일 준비오디오 파일 형식이 WAV 또는 MP3이고 음질이 선명한지 확인하세요.
- 모델 로드요구 사항에 따라 적절한 모델(예: 대형-V2)을 선택하고 메모리에 로드합니다.
- 전사 수행트랜스크립트 기능을 호출하여 음성-텍스트 변환을 수행하고 예비 트랜스크립트 결과를 얻습니다.
- 정렬된 타임스탬프정확한 타임스탬프를 보장하기 위해 정렬 기능을 사용하여 전사 결과의 단어 수준 타임스탬프를 정렬합니다.
- 스피커 분리다중 화자 인식을 위한 일기장 기능을 호출하여 각 화자에 대한 레이블과 해당 음성 조각을 가져옵니다.
- 결과 출력최종 결과를 텍스트 파일 또는 JSON 형식으로 저장하여 추후 처리 및 분석할 수 있습니다.
1. 환경 준비
- 시스템 요구 사항:
- Python 3.10 환경(가상 환경을 만들려면 mamba 또는 conda를 권장)
- CUDA 및 cuDNN 지원(GPU 가속에 필요)
- FFmpeg 툴킷
- 설치 단계:
# 创建 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. 기본 사용법
- 명령줄 사용법:
# 基础转录(英语)
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
- 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. 성능 최적화 권장 사항
- GPU 메모리 최적화:
- 배치 크기 줄이기(batch_size)
- 소형 모델 사용(예: 대형 대신 기본형)
- 경량 계산 유형 선택(int8)
- 다국어 지원:
- 기본적으로 지원되는 언어: 영어, 프랑스어, 독일어, 스페인어, 이탈리아어, 일본어, 중국어, 네덜란드어, 우크라이나어, 포르투갈어
- 사용할 언어를 지정합니다:
--language de
(독일어 예시)
4. 주의 사항
- 특수 문자(예: 숫자, 통화 기호)의 경우 타임스탬프가 충분히 정확하지 않을 수 있습니다.
- 여러 사람이 동시에 대화하는 장면의 인식이 효과적이지 않을 수 있습니다.
- 스피커 분리는 여전히 최적화 중입니다.
- 화자 분리 기능을 사용하려면 허깅 페이스 액세스 토큰이 필요합니다.
- GPU 드라이버 및 CUDA 버전 호환성 확인
© 저작권 정책
이 글은 저작권이 있으며 무단으로 복제해서는 안 됩니다.
관련 문서
댓글 없음...