- Add database migrations (006-028) for face recognition, identity, file_uuid - Add test scripts for ASR, face, search, processing - Add portal frontend (Tauri) - Add config, benchmark, and monitoring utilities - Add model checkpoints and pretrained model references
71 lines
1.9 KiB
Python
71 lines
1.9 KiB
Python
#!/opt/homebrew/bin/python3.11
|
|
"""Test Whisper model loading and minimal transcription."""
|
|
|
|
import sys
|
|
import os
|
|
import time
|
|
import whisper
|
|
|
|
|
|
def test_model_load():
|
|
print("Testing Whisper model loading...")
|
|
|
|
# Test loading tiny model
|
|
start = time.time()
|
|
try:
|
|
model = whisper.load_model("tiny", device="cpu")
|
|
elapsed = time.time() - start
|
|
print(f"✓ Model loaded successfully in {elapsed:.2f}s")
|
|
|
|
# Test transcription on a tiny audio file
|
|
# Create a 1-second silent audio file or use a test file
|
|
import tempfile
|
|
import subprocess
|
|
|
|
# Create a 1-second silent WAV file using sox or ffmpeg
|
|
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
|
|
temp_wav = f.name
|
|
|
|
# Create silent audio using ffmpeg
|
|
cmd = [
|
|
"ffmpeg",
|
|
"-f",
|
|
"lavfi",
|
|
"-i",
|
|
"anullsrc=r=16000:cl=mono",
|
|
"-t",
|
|
"1",
|
|
"-acodec",
|
|
"pcm_s16le",
|
|
temp_wav,
|
|
"-y",
|
|
]
|
|
try:
|
|
subprocess.run(cmd, capture_output=True, check=True)
|
|
print(f"✓ Created test audio file: {temp_wav}")
|
|
|
|
# Try transcription
|
|
print("Testing transcription...")
|
|
start_trans = time.time()
|
|
result = model.transcribe(temp_wav, beam_size=5)
|
|
elapsed_trans = time.time() - start_trans
|
|
print(f"✓ Transcription successful in {elapsed_trans:.2f}s")
|
|
print(f" Segments: {len(result['segments'])}")
|
|
|
|
os.unlink(temp_wav)
|
|
|
|
except Exception as e:
|
|
print(f"✗ Failed to create test audio: {e}")
|
|
if os.path.exists(temp_wav):
|
|
os.unlink(temp_wav)
|
|
|
|
except Exception as e:
|
|
print(f"✗ Model loading failed: {e}")
|
|
import traceback
|
|
|
|
traceback.print_exc()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
test_model_load()
|