Skip to content

Commit 97b4bcd

Browse files
committed
added support for faster_whisper.BatchedInferencePipeline
-added batched transcription support for Faster-Whisper models via `faster_whisper.BatchedInferencePipeline` -updated README.md with example of using batched transcription on Faster-Whisper models
1 parent c125472 commit 97b4bcd

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,9 @@ pip install -U stable-ts[fw]
381381
model = stable_whisper.load_faster_whisper('base')
382382
result = model.transcribe('audio.mp3')
383383

384+
# faster transcription with `BatchedInferencePipeline`
385+
result = model.transcribe('audio.mp3', batch_size=16)
386+
384387
# For versions < 2.18.0:
385388
result = model.transcribe_stable('audio.mp3')
386389
```

stable_whisper/whisper_word_level/faster_whisper.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,10 @@ def _inner_transcribe(model, audio, verbose, **faster_transcribe_options):
184184
import io
185185
audio = io.BytesIO(audio)
186186
progress_callback = faster_transcribe_options.pop('progress_callback', None)
187-
transcribe = model.transcribe_original if hasattr(model, 'transcribe_original') else model.transcribe
187+
if 'batch_size' in faster_transcribe_options:
188+
transcribe = model.batch_inference_pipeline.transcribe
189+
else:
190+
transcribe = model.transcribe_original if hasattr(model, 'transcribe_original') else model.transcribe
188191
segments, info = transcribe(audio, **faster_transcribe_options)
189192
language = LANGUAGES.get(info.language, info.language)
190193
if verbose is not None:
@@ -247,13 +250,15 @@ def load_faster_whisper(model_size_or_path: str, **model_init_options):
247250
faster_whisper.WhisperModel
248251
A modified instance of :class:`faster_whisper.WhisperModel`.
249252
"""
250-
from faster_whisper import WhisperModel
253+
from faster_whisper import WhisperModel, BatchedInferencePipeline
251254
faster_model = WhisperModel(model_size_or_path, **model_init_options)
252255
faster_model.model_size_or_path = model_size_or_path
253256

254257
faster_model.transcribe_original = faster_model.transcribe
255258
faster_model.transcribe = MethodType(faster_transcribe, faster_model)
256259
faster_model.transcribe_stable = MethodType(deprecated_transcribe, faster_model)
260+
faster_model.batch_inference_pipeline = BatchedInferencePipeline(faster_model)
261+
257262
from ..alignment import align, align_words, refine
258263
faster_model.align = MethodType(align, faster_model)
259264
faster_model.align_words = MethodType(align_words, faster_model)

0 commit comments

Comments
 (0)