transcribe.py 691 B

123456789101112131415161718192021222324
  1. import time
  2. import faster_whisper
  3. from faster_whisper.transcribe import Segment
  4. def transcribe(
  5. file: str,
  6. model_name: str = "large-v3",
  7. device: str = "cuda",
  8. language: str = "es",
  9. download_root: str = "/home/superti/workspace/models",
  10. initial_prompt: str = "",
  11. ) -> tuple[list[Segment], float]:
  12. whisper = faster_whisper.WhisperModel(model_name, device=device, download_root=download_root)
  13. start = time.time()
  14. trns, _ = whisper.transcribe(
  15. file,
  16. word_timestamps=True,
  17. language=language,
  18. initial_prompt=initial_prompt or None,
  19. )
  20. segments = list(trns)
  21. elapsed = time.time() - start
  22. return segments, elapsed