2023/10/4 docker-whisperX 試す
m-bain/whisperX: WhisperX: Automatic Speech Recognition with Word-level Timestamps (& Diarization)
jim60105/docker-whisperX: Dockerfile for WhisperX: Automatic Speech Recognition with Word-Level Timestamps and Speaker Diarization (Dockerfile and CI image build)
Docker image があって親切
docker-whisperX/load_align_model.py at master · jim60105/docker-whisperX
diarize もやるには
pyannote はモデル落としてくる必要ある & 最初は失敗する
gated model だから HF で認証しておく必要ある
先にファイルDLしておくだけじゃだめかなあ
pyannote/speaker-diarization-3.0 · Hugging Face
pyannote/segmentation-3.0 · Hugging Face
pyannote
pyannote/pyannote-audio: Neural building blocks for speaker diarization: speech activity detection, speaker change detection, overlapped speech detection, speaker embedding
pyannote/pyannote-audio@ad8a9e9 - pyannote/audio/core/pipeline.py#L51
PYANNOTE_CACHE
pyannote/pyannote-audio@ad8a9e9 - pyannote/audio/core/model.py#L57
~/.cache/torch/pyannote 以下に models--pyannote--... ができてる
ffmpeg も入ってて助かる
$ docker run --gpus all -it -v "${PWD}:/app" -w /app --entrypoint=/usr/local/bin/ffmpeg ghcr.io/jim60105/whisperx:large-v2-ja -i ./movie.mp4 -vn -ac 1 -sample_fmt s16 output.flac
whisperx の CLI オプションはここ
whisperX/whisperx/transcribe.py at main · m-bain/whisperX
ファイルフォーマット
Which audio file format is best? · openai/whisper · Discussion 41
内部で以下通して処理しているのと同じ
$ ffmpeg -i <recording> -ar 16000 -ac 1 -c:a pcm_s16le <output>.wav
Diarization がめちゃめちゃ遅い理由
pyannote/speaker-diarization-3.0 runs slower than pyannote/speaker-diarization@2.1 · Issue 499 · m-bain/whisperX
いま pyannote 3.0 を使っていて onnxruntime-gpu ではなく onnxruntime が使われて Diarization が CPU モードになる