ekko-tiny-browser / validation.json
emilstabil's picture
Prepare counted Hugging Face model downloads
d3c4073 verified
Raw
History Blame Contribute Delete
10.8 kB
{
"schema": "ekko-browser-validation-v1",
"date": "2026-09-21",
"status": "current-artifact-export-smoke-passed",
"platform": "macOS arm64",
"runtime": {
"sherpa_onnx": "1.13.6",
"onnxruntime_web": "1.29.0",
"sherpa_commit": "1cb484af5e69d3c7803c1eb0b3b5ab8041e0e911",
"emscripten": "4.0.23",
"wasm_sha256": "9b1d4b5ff9ff9f849fa725baa58e90a1c246cac7ff2f0303fa67aa3ad6ccd993",
"data_sha256": "f4452611fa61d1d51d6b764705812829c39088b1720c70ff01930b299d43796d",
"bundle_bytes_approximate": 13600000
},
"model": {
"revision": "e37e698805c538e447c25062ab13fa862462ee9e",
"download_bytes": 135307048,
"local_verified_cache_server": true,
"reason": "The private v5 artifact revision loaded through the checksum-verified local cache server."
},
"current_artifact_smoke": {
"onnx_structure": "passed",
"onnxruntime_cpu_load": "passed",
"sherpa_onnx_decode": "passed",
"native_q5_load_and_decode": "passed",
"browser_wasm": "passed-local-private-preview",
"browser_model_download_mib": 129.7
},
"pnc_v1_browser_validation": {
"revision": "b1ff0133c7a2bf63ae6288640c267462229a719f",
"download_bytes": 24434481,
"loads_after_asr_ready": true,
"local_verified_cache_server": true
},
"pnc_v2_browser_validation": {
"revision": "2eed18a93ff921de00e4ec53046ae9b1f33de172",
"manifest_verified_against_box_1_release": true,
"browser_runtime_status": "local-wasm-smoke-passed",
"platform": "macOS in-app Chromium browser",
"checks": {
"onnxruntime_web_load": "passed",
"browser_python_parity_on_three_fixed_inputs": "passed",
"interior_sentence_stop_preserved": true,
"cross_segment_sentence_start_capitalized": true,
"word_timestamps_preserved": true,
"one_word_output": "Ja."
},
"remaining_checks": [
"Live microphone speech with v2 PnC on physical desktop and mobile devices",
"Compare false sentence stops on one-word and short speech against v1",
"Memory and latency on desktop and mobile browsers"
]
},
"live_chunking_20260925": {
"status": "local-wasm-smoke-passed",
"fixture": "CoRal-project__coral-v3_train_0000002.wav",
"method": "Injected three copies with one-second pauses into the actual browser ASR worker",
"provisional_results_before_stop": 3,
"final_vad_results_before_stop": 3,
"first_preview_after_audio_seconds": 3.3,
"final_word_timestamps_present": true,
"capture_drain_acknowledgement_unit_test": "passed",
"full_demo_ui_with_synthetic_microphone": {
"status": "passed",
"preview_visible_while_speech_detected": true,
"final_punctuated_transcript_visible_before_stop": true,
"stop_completes_with_transcript_retained": true
},
"limitations": [
"Browser speech used a synthetic MediaStream rather than a physical microphone",
"The VAD maximum speech duration is a soft limit, so uninterrupted speech is provisional until a pause or stop",
"Physical desktop and mobile microphone checks remain"
]
},
"long_form_replay_20260925": {
"status": "completed-with-remaining-recognition-gaps",
"method": "User-provided Danish telephone recording converted to 16 kHz mono and queued through the actual browser WASM VAD and ASR worker; final segments then processed by the browser PnC worker",
"audio_seconds": 774.27,
"browser_worker_processing_seconds": 228.1,
"final_segments": 113,
"provisional_updates": 175,
"worker_errors": 0,
"overlapping_final_segments": 0,
"raw_words": 1736,
"pnc_preserved_segment_timing_and_word_count": true,
"pnc_processing_seconds": 1.6,
"quality_reference": "ElevenLabs transcript in the supplied Markdown, treated as gold for this evaluation",
"reference_words": 2316,
"normalization": "Speaker labels and punctuation removed; Unicode word tokens lowercased",
"wer_before_gap_recovery": 0.3735,
"wer_after_gap_recovery": 0.3549,
"final_substitutions": 200,
"final_deletions": 601,
"final_insertions": 21,
"remaining_issue": "One 16-second interval remained undertranscribed; this replay does not prove complete speech capture or physical-microphone behavior."
},
"sparse_boundary_retry_20260925": {
"status": "local-wasm-replay-passed",
"method": "Retry browser ASR on VAD segments at least 5 seconds long with fewer than 2.5 words per second, shifting the raw-audio decode window by plus and minus 64 samples (4 ms); select a retry only when it yields at least 3 more words",
"audio_seconds": 774.27,
"browser_worker_processing_seconds": 280.4,
"baseline_processing_seconds": 228.1,
"final_segments": 113,
"provisional_updates": 175,
"worker_errors": 0,
"changed_segments": 8,
"raw_words": 1841,
"pnc_preserved_segment_timing_and_word_count": true,
"pnc_processing_seconds": 1.79,
"quality_reference": "ElevenLabs transcript in the supplied Markdown, treated as gold for this evaluation",
"wer_before_retry": 0.3549,
"wer_after_retry": 0.3174,
"final_substitutions": 212,
"final_deletions": 499,
"final_insertions": 24,
"cross_service_probe": {
"source": "transcription-api-service phase vote and comfort-noise findings",
"strict_majority_vote_method": "Offline vote over baseline and plus/minus 4 ms browser decodes for the 17 sparse segments",
"strict_majority_vote_wer": 0.3390,
"changed_segments_overlapping_digital_silence_runs": 0,
"digital_silence_definition": "Absolute amplitude at most 0.0001 for at least 0.2 seconds",
"adopted": false
},
"limitations": [
"A 16-second interval remains undertranscribed",
"One recording does not establish the retry rule's accuracy on other speakers or devices",
"Accelerated file replay does not measure live microphone latency or mobile behavior"
]
},
"checks": {
"wasm_initialization": "passed",
"model_sha256_verification": "passed",
"localhost_preview_server": "passed",
"microphone_live_speech": {
"status": "passed-with-real-speech-through-synthetic-media-stream",
"word_count": 12,
"vad_segment_emitted": true,
"pnc_output": "Ja, sådan er det jo kraftigt, og sådan et metal, ikke ansigt."
},
"microphone_multi_chunk_speech": {
"status": "passed-with-real-speech-through-synthetic-media-stream",
"audio_seconds": 20.53,
"segments_before_stop": 5,
"segments_after_stop": 5,
"explicit_inter_word_spacing": true,
"text_stays_below_orb_controls": true,
"toolbar_stays_below_transcript": true,
"stop_page_errors": 0
},
"microphone_onset_preroll": {
"status": "passed-with-real-speech-through-synthetic-media-stream",
"model_revision": "aff2c6e39817e66186a0aa0b3cc8d78fc1ea68ad",
"fixture": "CoRal-project__coral-v3_train_0000002.wav",
"runs": 2,
"opening_word": "nu",
"opening_word_preserved_runs": 2,
"first_word_start_seconds": 0.0,
"second_session_zero_based": true,
"page_errors": 0,
"pnc_enabled": false
},
"microphone_one_word": {
"status": "passed-with-real-speech-through-synthetic-media-stream",
"model_revision": "aff2c6e39817e66186a0aa0b3cc8d78fc1ea68ad",
"fixture_durations_seconds": [0.47, 0.62, 0.82],
"expected_word": "ja",
"recognized_before_stop": ["ja", "ja", "ja"],
"minimum_speech_seconds": 0.12
},
"pnc_export_regression": {
"status": "passed",
"source_words": 176,
"output_words": 176,
"lowercase_after_sentence_stop": false,
"malformed_mid_segment_stops_removed": true,
"cross_segment_sentence_starts_capitalized": true,
"word_timestamps_retained": true
},
"v5_browser_wasm_smoke": {
"status": "passed-local-private-preview",
"model_revision": "e37e698805c538e447c25062ab13fa862462ee9e",
"int8_bundle_bytes": 135307058,
"current_matrix_mean_wer": 12.945774,
"one_word_fixture_seconds": 0.47,
"one_word_output": "ja",
"sentence_output": "nu tager du det her billede for det er lidt mærkeligt",
"native_timestamps_present": true,
"resource_errors": 0
},
"conversation_history": {
"status": "passed",
"storage": "localStorage",
"maximum_sessions": 20,
"persists_across_reload": true,
"reopens_saved_transcript": true,
"individual_delete": true,
"clear_all": true,
"stores_audio": false,
"mobile_dialog_fits_viewport": true
},
"pnc_browser_parity_probe": {
"status": "passed",
"input": "hej mit navn er emil hvordan går det",
"browser_and_python_output": "Hej, mit navn er Emil, hvordan går det?",
"word_count": 8,
"timestamps_preserved": true
},
"rye_voice_interaction": {
"orb_shader_parity": "passed",
"mobile_stage_css_pixels": 218,
"mobile_orb_css_pixels": 192,
"shader_colors": ["#27AE60", "#8CBFFF", "#FFAAAD"],
"mobile_orb_lift_pixels": 186,
"mobile_idle_label_gap_pixels": 42,
"animated_words": 12,
"mobile_orb_transcript_overlap": false,
"desktop_orb_transcript_overlap": false,
"desktop_transcript_toolbar_overlap": false
},
"warmed_decoder_performance_harness": {
"device": "Apple M1 Pro",
"browser": "Chromium 148 / Electron 42",
"initial_model_download_and_load_excluded": true,
"note": "Measured through the same offline decoder before file upload was removed from the public UI.",
"short_clip": {
"audio_seconds": 3.12,
"runs": 5,
"median_processing_seconds": 0.526,
"median_rtf": 0.16859,
"times_realtime": 5.93
},
"long_clip": {
"audio_seconds": 17.86,
"runs": 3,
"median_processing_seconds": 2.099,
"median_rtf": 0.11753,
"times_realtime": 8.51
}
},
"mobile_390x844_horizontal_overflow": false,
"desktop_1440x1000_horizontal_overflow": false,
"mobile_dialogs_fit_viewport": true,
"clean_reload_resource_errors": 0
},
"checks_model_revision": "7cb1747204bddd558ff449399689d5bb641fadd8",
"remaining_release_checks": [
"Load the current Tiny and PnC models directly from their public Hugging Face revisions without interception.",
"Run the complete current-model WER matrix through WebAssembly; local initialization cannot establish browser parity.",
"Run microphone speech on physical desktop and mobile devices.",
"Verify Safari, Chromium, and Firefox memory behavior.",
"Publish the static Space only after model terms and visibility are final."
]
}