feat: add migrations, test scripts, and utility tools
- 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
This commit is contained in:
85
debug_chunked_hang.py
Normal file
85
debug_chunked_hang.py
Normal file
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import time
|
||||
|
||||
print("Start")
|
||||
print("Importing faster_whisper...")
|
||||
try:
|
||||
from faster_whisper import WhisperModel
|
||||
|
||||
print("Import successful")
|
||||
except Exception as e:
|
||||
print(f"Import failed: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
print("Loading model...")
|
||||
try:
|
||||
model = WhisperModel("tiny", device="cpu", compute_type="int8")
|
||||
print("Model loaded")
|
||||
except Exception as e:
|
||||
print(f"Model load failed: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
import subprocess
|
||||
|
||||
print("Getting duration...")
|
||||
cmd = [
|
||||
"ffprobe",
|
||||
"-v",
|
||||
"error",
|
||||
"-show_entries",
|
||||
"format=duration",
|
||||
"-of",
|
||||
"csv=p=0",
|
||||
"/tmp/test_audio.wav",
|
||||
]
|
||||
result = subprocess.run(cmd, capture_output=True, text=True)
|
||||
print(f"ffprobe output: {result.stdout}")
|
||||
duration = float(result.stdout.strip())
|
||||
print(f"Duration: {duration}")
|
||||
|
||||
# Extract first chunk
|
||||
print("Extracting first chunk...")
|
||||
chunk_path = "/tmp/debug_chunk.wav"
|
||||
cmd = [
|
||||
"ffmpeg",
|
||||
"-i",
|
||||
"/tmp/test_audio.wav",
|
||||
"-t",
|
||||
"60",
|
||||
"-acodec",
|
||||
"pcm_s16le",
|
||||
"-ar",
|
||||
"16000",
|
||||
"-ac",
|
||||
"1",
|
||||
"-y",
|
||||
chunk_path,
|
||||
]
|
||||
result = subprocess.run(cmd, capture_output=True, text=True)
|
||||
print(f"ffmpeg return code: {result.returncode}")
|
||||
if result.returncode != 0:
|
||||
print(f"stderr: {result.stderr[:200]}")
|
||||
|
||||
import os
|
||||
|
||||
print(f"Chunk exists: {os.path.exists(chunk_path)}")
|
||||
if os.path.exists(chunk_path):
|
||||
print(f"Chunk size: {os.path.getsize(chunk_path)}")
|
||||
|
||||
print("Transcribing chunk...")
|
||||
start = time.time()
|
||||
try:
|
||||
segments, info = model.transcribe(chunk_path, beam_size=5)
|
||||
segments = list(segments)
|
||||
elapsed = time.time() - start
|
||||
print(f"Transcription succeeded in {elapsed}s, segments: {len(segments)}")
|
||||
except Exception as e:
|
||||
print(f"Transcription failed: {e}")
|
||||
import traceback
|
||||
|
||||
traceback.print_exc()
|
||||
else:
|
||||
print("Chunk not created")
|
||||
|
||||
print("Script finished")
|
||||
Reference in New Issue
Block a user