Add VibeVoice-ASR backend

Third ASR backend option alongside faster-whisper and qwen3. Builds
microsoft/VibeVoice from source (pinned to a specific commit, since it's
custom modeling code not in transformers' Auto* registry) into its own venv,
inheriting the base image's torch/CUDA. Comes with built-in speaker
diarization (VibeVoiceASRProcessor.post_process_transcription returns
per-segment speaker ids directly, no separate pyannote pass needed).

Verified end-to-end against a real recording: 200 OK, correct Korean
transcription, speaker labels populated.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
du5t
2026-07-23 16:54:34 +09:00
parent a32b0acb09
commit ce064d6894
7 changed files with 202 additions and 2 deletions

View File

@@ -14,6 +14,7 @@ async function loadConfig() {
backends: {
'faster-whisper': { models: ['tiny','base','small','medium','large-v3','large-v2','turbo'] },
'qwen3': { models: ['Qwen/Qwen3-ASR-0.6B-hf','Qwen/Qwen3-ASR-1.7B-hf'] },
'vibevoice': { models: ['microsoft/VibeVoice-ASR'] },
},
};
}
@@ -52,8 +53,8 @@ function populateModels(backend) {
}
function onBackendChange() {
const isQwen = backendSel.value === 'qwen3';
fwOptions.style.display = isQwen ? 'none' : '';
const isFasterWhisper = backendSel.value === 'faster-whisper';
fwOptions.style.display = isFasterWhisper ? '' : 'none';
populateModels(backendSel.value);
}

View File

@@ -47,6 +47,7 @@
<select id="backend" name="backend">
<option value="faster-whisper" selected>faster-whisper</option>
<option value="qwen3">Qwen3-ASR</option>
<option value="vibevoice">VibeVoice-ASR</option>
</select>
</label>
<label>모델