Files
momentry_core/debug_chunked_hang.py
Warren b54c2def30 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
2026-04-30 15:11:53 +08:00

86 lines
1.9 KiB
Python

#!/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")