44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Транскрипция аудио через faster-whisper с исправлением MKL ошибки.
|
||
|
||
ИСПОЛЬЗОВАНИЕ:
|
||
import os
|
||
os.environ["MKL_SERVICE_FORCE_INTEL"] = "1"
|
||
os.environ["OMP_NUM_THREADS"] = "2"
|
||
|
||
from faster_whisper import WhisperModel
|
||
model = WhisperModel("small")
|
||
"""
|
||
|
||
import os
|
||
import sys
|
||
|
||
# CRITICAL: Must be set BEFORE importing faster_whisper
|
||
os.environ["MKL_SERVICE_FORCE_INTEL"] = "1"
|
||
os.environ["OMP_NUM_THREADS"] = "2"
|
||
|
||
from faster_whisper import WhisperModel
|
||
|
||
def transcribe_audio(audio_path, model_size="small", language="ru"):
|
||
"""Транскрибирует аудиофайл."""
|
||
print(f"Loading model {model_size}...")
|
||
model = WhisperModel(model_size)
|
||
|
||
print(f"Transcribing {audio_path}...")
|
||
segments, _ = model.transcribe(audio_path, language=language)
|
||
|
||
# Convert to list for proper handling
|
||
segments = list(segments)
|
||
|
||
return segments
|
||
|
||
if __name__ == "__main__":
|
||
if len(sys.argv) < 2:
|
||
print("Usage: python3 local_whisper.py <audio.wav>")
|
||
sys.exit(1)
|
||
|
||
segments = transcribe_audio(sys.argv[1])
|
||
|
||
for segment in segments:
|
||
print(segment.text)
|