Skip to content

openstetho v0.3.0-murmur-bigru — CNN+BiGRU murmur model

Choose a tag to compare

@ShaneBreazeale ShaneBreazeale released this 25 May 00:59
· 16 commits to master since this release

Model release

Publishes the current GUI-downloadable model bundle:

  • MurmurCNN.mlpackage: 5s log-mel CNN+BiGRU murmur detector.
  • MurmurCNN.openstetho.json: app sidecar with n_frames=78, murmur_aggregation=topk_mean, murmur_topk=4, and murmur_threshold=0.3433690369.
  • S3CNN_v2.mlpackage: bundled sibling S3 detector from the prior release path.

Asset:

  • MurmurCNN.mlpackage.zip

The app downloader expects that asset name and will discover the bundled sidecar and S3 package after extraction.

Murmur benchmark

Best selected operating point from the held-out validation tuning run:

  • Aggregation: top4_mean
  • Threshold: 0.343369
  • Sensitivity: 0.667
  • Specificity: 0.942
  • F1: 0.703
  • Counts: TP 58, FP 20, TN 323, FN 29

Core ML all-recording benchmark using the baked sidecar rule:

  • Recordings: 2964
  • AUROC: 0.909
  • Sensitivity: 0.749
  • Specificity: 0.936
  • Precision: 0.749
  • F1: 0.749
  • Counts: TP 454, FP 152, TN 2206, FN 152

Threshold sweep reference on the same all-recording Core ML benchmark:

  • Best F1: threshold 0.384910, sensitivity 0.715, specificity 0.955, F1 0.756
  • Specificity >= 0.95: threshold 0.377398, sensitivity 0.719, specificity 0.952, F1 0.755

Core ML export parity check:

  • max absolute logit diff: 7.6e-04

Caveats

This remains an experimental model trained on public CirCor data, not a clinically validated detector. The held-out validation result is the selection metric; the all-recording benchmark is a sanity check for the exported Core ML package and app-side aggregation rule, not an independent clinical estimate.