{ "model_name": "whisper-tiny-frozen-encoder-logreg", "architecture": [ "16kHz mono audio", "Whisper Tiny frozen encoder (openai/whisper-tiny, loaded via transformers at runtime, NOT bundled here)", "mean pooling over encoder time axis (384-dim vector for whisper-tiny)", "Logistic Regression (StandardScaler -> LogisticRegression, class_weight=balanced, C=1.0)", "threshold/hysteresis decision layer (src/turn_detector/inference.py: TurnDecisionConfig)" ], "classifier_artifact": "whisper_classifier.joblib", "classifier_trained_on": { "experiment": "EXP-004", "run_location": "Google Colab (notebooks/EXP004_whisper_baseline.ipynb)", "sample": "Fresh 250-clip HF-streaming sample from pipecat-ai/smart-turn-data-v3.2-train, independent of the Phase 3 sample", "dev_n": 175, "val_n": 75, "seed": 42 }, "measured_performance_val_set": { "n": 75, "f1": 0.693, "accuracy": 0.693, "false_end_rate": 0.257, "false_continue_rate": 0.350, "note": "Measured on ONE 75-clip validation split from ONE 250-clip sample. Not full-dataset or official-test-set performance. See docs/RESULTS.md." }, "encoder_param_count": 8208384, "encoder_approx_size_fp32_mb": 32.8, "classifier_param_count": 92, "classifier_approx_size_bytes": 2920, "sklearn_version_trained_with": "1.6.1", "sklearn_version_note": "This classifier was pickled with scikit-learn 1.6.1 in the Colab environment. Loading it with a different sklearn version (e.g. this project's dev sandbox, which has 1.8.0) raises an InconsistentVersionWarning — observed and non-fatal in testing, but worth pinning scikit-learn==1.6.1 in a production deployment to avoid any risk of silent incompatibility.", "whisper_weights_not_included": true, "whisper_weights_loading": "TurnDetector loads openai/whisper-tiny via transformers.WhisperModel.from_pretrained() at runtime, which downloads/caches the weights (~151MB, separate from this classifier). Requires network access to Hugging Face on first run." }