File size: 4,679 Bytes
f233cce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e26d5ef
f233cce
 
e26d5ef
f233cce
 
e26d5ef
f233cce
e26d5ef
f233cce
 
 
 
 
 
 
 
 
 
 
 
 
 
e26d5ef
f233cce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e26d5ef
f233cce
 
 
e26d5ef
f233cce
e26d5ef
f233cce
 
 
 
 
 
 
e26d5ef
 
 
f233cce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
---
language:
  - en
license: apache-2.0
library_name: dotcheck
pipeline_tag: audio-classification
tags:
  - audio-classification
  - ai-detection
  - synthetic-media
  - dasheng
  - apache-2.0
  - dotcheck
  - helmholtz
base_model: mispeech/dasheng-base
base_model_relation: adapter
model-index:
  - name: Helmholtz (inhouse-audio@3)
    results:
      - task:
          type: audio-classification
          name: binary AI detection (audio)
        dataset:
          name: DotCheck audio holdout (CodecFake / DFADD / AudioGen + fal family)
          type: other
          split: holdout
        metrics:
          - name: mean_P_AI_real
            type: mean_score_real
            value: 0.018
          - name: mean_P_AI_ai
            type: mean_score_ai
            value: 0.989
          - name: balanced_accuracy
            type: balanced_accuracy
            value: 0.995
        source:
          name: audio_gates_audio_h3e / Data.json
          url: https://dotcheck.ai/docs
---

# DotCheck/helmholtz-audio-v3

**Helmholtz** is DotCheck’s production audio detector. We train a logistic head on frozen Dasheng-Base embeddings, gate on held-out speech, music/SFX, and fal-family TTS, and publish the holdout table below.

Open package: live `.npz` head, card, license, notices. In product, soundtrack windows can fuse with Muybridge frame bags (Covenant); that seating stays private. This repo is standalone audio.

| Field | Value |
|-------|--------|
| Hub id | `DotCheck/helmholtz-audio-v3` |
| Wire id | `inhouse-audio@3` |
| Label | Helmholtz |
| Artifact | `dasheng_base_linear_head_audio_h3e.npz` |
| Backbone | [`mispeech/dasheng-base`](https://huggingface.co/mispeech/dasheng-base) (Apache-2.0) |
| Protocol | 4 s / center crop / up to 2 windows / max aggregate (serve may single-pass prewindowed clips) |
| Output | `p ∈ [0,1]` — estimated P(AI) |
| Serve | CPU FastAPI `/v1/analyze-audio`; Express Check + video soundtrack fuse |

## Model description

Frozen Dasheng-Base masked audio encoder + logistic head for speech, music, and general audio. Product Covenant seats soundtrack windows with Muybridge frame bags when a video has usable audio. Covenant is DotCheck-private; these files are the open audio head only.

**In this repo:** `README.md`, `LICENSE`, `NOTICE`, `CITATION.cff`, and the `.npz` head.

## Architecture

```text
audio bytes
  → mono 16 kHz
  → protocol window(s) (4 s)
  → frozen Dasheng-Base emb → logistic head → p
  → multi-window: max
```

Missing audio head at serve → `/v1/analyze-audio` returns **503** (fail closed).

## Inference

Open weights: the live `.npz` head (Apache-2.0) with the frozen backbone above. Not `AutoModel.from_pretrained("DotCheck/…")`.

Product scoring: [Check](https://dotcheck.ai/check) or [Pro API](https://dotcheck.ai/api).

```bash
curl -sS -X POST "https://dotcheck-server-c221c1f32c68.herokuapp.com/analyze-audio" \
  -H "Authorization: Bearer dc_YOUR_KEY" \
  -F "audio=@clip.wav"
```

Gates: [dotcheck.ai/docs](https://dotcheck.ai/docs).

## Training data

| Split | Content |
|-------|---------|
| Fit reals | LibriTTS + FSD50K (concat, no loop-tile) |
| Fit AI | parler-mini / melo-en / dasheng-audiogen + fal train (Kokoro / Eleven Turbo / mixes) + Imagine in the linear mix |
| Holdout speech | CodecFake / DFADD (sha-disjoint) |
| Holdout music/SFX | AudioGen odd-seed partition |
| Holdout fal | prompt-id holdout (same gens, disjoint sha) |
| Holdout Imagine | owned exam (Layer A); not a separate public claim row |

Evidence: `audio_gates_audio_h3e.json` · `AUDIO_GATES_OK`. Public floats are the overall holdout (`claims.audio`).

## Evaluation

### Holdout (public claim SSOT)

| Metric | Target | Measured |
|--------|--------|---------:|
| mean P(AI) \| real | ≤ 0.12 | **0.018** |
| mean P(AI) \| AI | ≥ 0.85 | **0.989** |
| bal_acc @ thr | ≥ 0.90 | **0.995** |

## Intended use

- Standalone audio AI detection in DotCheck inference.
- Soundtrack windows fused with video frames in product serve.
- Citation of the holdout table above.

### Out of scope

- Product SLA via Hub download alone
- Courtroom deepfake forensics or speaker identification
- Legal determinations

## Limitations

- Protocol windows are short; long-form structure is not modeled.
- Codec, compression, and unseen generators can shift scores.
- Public floats are standalone audio gates; fused video bags are not a separate claim table here.

## License

[`LICENSE`](LICENSE) — Apache License 2.0 for DotCheck heads in this repo. Upstream: [`NOTICE`](NOTICE).

## Citation

[`CITATION.cff`](CITATION.cff) · wire `inhouse-audio@3` / Helmholtz@3 · https://dotcheck.ai/docs