Directories
¶
| Path | Synopsis |
|---|---|
|
Package bench holds the results, the statistics and the report of the speed and accuracy benchmarks (PLAN.md 9.6 and the Phase 9 Accept, docs/FINDINGS.md F-040): the Go side measured by bench/cmd/whistle-bench, the engine side by tools/oracle's bench command, both rendered into bench/RESULTS.md.
|
Package bench holds the results, the statistics and the report of the speed and accuracy benchmarks (PLAN.md 9.6 and the Phase 9 Accept, docs/FINDINGS.md F-040): the Go side measured by bench/cmd/whistle-bench, the engine side by tools/oracle's bench command, both rendered into bench/RESULTS.md. |
|
cmd/whistle-bench
command
Command whistle-bench measures go-whistle against itself and renders the benchmark report (PLAN.md 9.6 and the Phase 9 Accept, docs/FINDINGS.md F-040): Load time, TTFT, decode rate, real-time factor and peak RSS on the 32 fixture clips and a 30 s clip, and the LibriSpeech WER, each packed against float.
|
Command whistle-bench measures go-whistle against itself and renders the benchmark report (PLAN.md 9.6 and the Phase 9 Accept, docs/FINDINGS.md F-040): Load time, TTFT, decode rate, real-time factor and peak RSS on the 32 fixture clips and a 30 s clip, and the LibriSpeech WER, each packed against float. |
|
cmd
|
|
|
whistle
command
Command whistle is the CLI of the pure-Go Whistle port: download fetches the pinned model files, transcribe turns WAV files of up to 30 s into text, stream transcribes audio of any length live from a WAV file or raw PCM on stdin, embed writes the encoder output, doctor checks the install, and serve offers transcription and streaming over HTTP and WebSocket.
|
Command whistle is the CLI of the pure-Go Whistle port: download fetches the pinned model files, transcribe turns WAV files of up to 30 s into text, stream transcribes audio of any length live from a WAV file or raw PCM on stdin, embed writes the encoder output, doctor checks the install, and serve offers transcription and streaming over HTTP and WebSocket. |
|
whistle-wasm
command
Command whistle-wasm is the js/wasm build of the library for the web demo in web/.
|
Command whistle-wasm is the js/wasm build of the library for the web demo in web/. |
|
whistle-wasm/serve
command
Command serve serves the web demo (web/) for local use: a static file server that sends every file uncached, so a rebuilt whistle.wasm is picked up on reload.
|
Command serve serves the web demo (web/) for local use: a static file server that sends every file uncached, so a rebuilt whistle.wasm is picked up on reload. |
|
internal
|
|
|
align
Package align turns a decoded transcript into timed words (PLAN.md Phase 7): it groups the text tokens into the engine's words, scores each word's probability from the token probabilities, and times the words by a monotonic DTW over the decoder's cross-attention on the 80 ms encoder frames.
|
Package align turns a decoded transcript into timed words (PLAN.md Phase 7): it groups the text tokens into the engine's words, scores each word's probability from the token probabilities, and times the words by a monotonic DTW over the decoder's cross-attention on the 80 ms encoder frames. |
|
cact
Package cact reads the .cact deployment container that Needle 3 exports (upstream needle/model/export.py @ af2654dffa): a fixed header with the model geometry, the CQ codebooks, a nameless tensor directory and 64-byte aligned tensor blobs.
|
Package cact reads the .cact deployment container that Needle 3 exports (upstream needle/model/export.py @ af2654dffa): a fixed header with the model geometry, the CQ codebooks, a nameless tensor directory and 64-byte aligned tensor blobs. |
|
cq
Package cq multiplies by CQ matrices straight from their packed .cact form, in the rotated (Hadamard) domain, without dequantising the weights (docs/FINDINGS.md F-028).
|
Package cq multiplies by CQ matrices straight from their packed .cact form, in the rotated (Hadamard) domain, without dequantising the weights (docs/FINDINGS.md F-028). |
|
decoder
Package decoder is Whistle's text decoder: the token embedding scaled by √512, eight Needle 3 blocks (engram memory at layers 3 and 7) inside mHC, each with a gated cross-attention over the encoder output, the final norm and the head tied to the embedding.
|
Package decoder is Whistle's text decoder: the token embedding scaled by √512, eight Needle 3 blocks (engram memory at layers 3 and 7) inside mHC, each with a gated cross-attention over the encoder output, the final norm and the head tied to the embedding. |
|
encoder
Package encoder is Whistle's audio encoder: the log-mel front end, the 2-D conv stem, eight non-causal blocks wrapped in mHC and the final norm, mapping 16 kHz audio to one 512-wide row per 80 ms frame (needle_embed).
|
Package encoder is Whistle's audio encoder: the log-mel front end, the 2-D conv stem, eight non-causal blocks wrapped in mHC and the final norm, mapping 16 kHz audio to one 512-wide row per 80 ms frame (needle_embed). |
|
eval
Package eval holds the error rates the parity tests and the evaluation harnesses score transcripts with: the edit distance, the word error rate over normalised words and the character error rate over the raw text.
|
Package eval holds the error rates the parity tests and the evaluation harnesses score transcripts with: the edit distance, the word error rate over normalised words and the character error rate over the raw text. |
|
frontend
Package frontend turns audio into what Whistle's encoder consumes.
|
Package frontend turns audio into what Whistle's encoder consumes. |
|
hub
Package hub is a minimal pure-Go Hugging Face Hub downloader for the pinned Whistle weights and the pinned Needle 3 text model.
|
Package hub is a minimal pure-Go Hugging Face Hub downloader for the pinned Whistle weights and the pinned Needle 3 text model. |
|
needle
Package needle implements the Needle 3 blocks that Whistle's encoder and decoder share, in float32, with upstream's semantics (needle/model/architecture.py @ af2654dffa; PLAN.md "Shared Needle 3 blocks"; docs/FINDINGS.md F-011, F-013):
|
Package needle implements the Needle 3 blocks that Whistle's encoder and decoder share, in float32, with upstream's semantics (needle/model/architecture.py @ af2654dffa; PLAN.md "Shared Needle 3 blocks"; docs/FINDINGS.md F-011, F-013): |
|
pcm
Package pcm decodes the raw PCM formats `whistle stream` reads from stdin and `whistle serve` takes over HTTP and WebSocket: 16 kHz mono, s16le or f32le.
|
Package pcm decodes the raw PCM formats `whistle stream` reads from stdin and `whistle serve` takes over HTTP and WebSocket: 16 kHz mono, s16le or f32le. |
|
safetensors
Package safetensors reads and writes safetensors files: an 8-byte LE header length, a JSON header (tensor entries plus an optional string map under __metadata__), then the raw tensor data.
|
Package safetensors reads and writes safetensors files: an 8-byte LE header length, a JSON header (tensor entries plus an optional string map under __metadata__), then the raw tensor data. |
|
search
Package search decodes Whistle transcripts by beam search over the decoder (PLAN.md 6.2).
|
Package search decodes Whistle transcripts by beam search over the decoder (PLAN.md 6.2). |
|
server
Package server is the HTTP interface of `whistle serve`: one loaded model behind four endpoints.
|
Package server is the HTTP interface of `whistle serve`: one loaded model behind four endpoints. |
|
silence
Package silence is the engine's silence gate (PLAN.md 6.6, U10).
|
Package silence is the engine's silence gate (PLAN.md 6.6, U10). |
|
spm
Package spm is a pure-Go SentencePiece BPE tokenizer for Needle 3's text model.
|
Package spm is a pure-Go SentencePiece BPE tokenizer for Needle 3's text model. |
|
text
Package text is the Needle 3 text model (tool calling, HF Cactus-Compute/needle3 @ 93e88ede; PLAN.md Phase 11): upstream's SimpleAttentionNetwork (needle/model/architecture.py @ af2654dffa) for the text config, in float32, on the shared blocks of internal/needle.
|
Package text is the Needle 3 text model (tool calling, HF Cactus-Compute/needle3 @ 93e88ede; PLAN.md Phase 11): upstream's SimpleAttentionNetwork (needle/model/architecture.py @ af2654dffa) for the text config, in float32, on the shared blocks of internal/needle. |
|
tokenizer
Package tokenizer reads Whistle's SentencePiece BPE vocabulary from the RAW blob in whistle.cact (export.py _tokenizer_blob) and decodes and encodes with it.
|
Package tokenizer reads Whistle's SentencePiece BPE vocabulary from the RAW blob in whistle.cact (export.py _tokenizer_blob) and decodes and encodes with it. |
|
weights
Package weights serves a model's tensors by their upstream-style .cact names (cact.WhistleNames, docs/FINDINGS.md F-006) from either format: the deployed .cact file (Cact) or the float32 safetensors checkpoint (Safetensors).
|
Package weights serves a model's tensors by their upstream-style .cact names (cact.WhistleNames, docs/FINDINGS.md F-006) from either format: the deployed .cact file (Cact) or the float32 safetensors checkpoint (Safetensors). |
|
tools
|
|
|
oracle/probe
Package probe synthesises the encoder probe signals: digital silence, DC, quiet tones and bursts, low-level noise and single-sample impulses, where the stem output is small or follows a known pattern, so that terms the speech clips bury (pe_gate, the log floor, the framing) dominate the engine's needle_embed rows (docs/FINDINGS.md F-019, F-020).
|
Package probe synthesises the encoder probe signals: digital silence, DC, quiet tones and bursts, low-level noise and single-sample impulses, where the stem output is small or follows a known pattern, so that terms the speech clips bury (pe_gate, the log floor, the framing) dominate the engine's needle_embed rows (docs/FINDINGS.md F-019, F-020). |
|
Package whistle is a pure-Go port of Whistle, the 55M-parameter speech-to-text model of Cactus Compute: no cgo, no Python and no ONNX at run time.
|
Package whistle is a pure-Go port of Whistle, the 55M-parameter speech-to-text model of Cactus Compute: no cgo, no Python and no ONNX at run time. |
Click to show internal directories.
Click to hide internal directories.