from __future__ import annotations from dataclasses import dataclass, replace import hashlib import json from pathlib import Path from types import MappingProxyType, SimpleNamespace import threading import numpy as np import pytest import glyph_hybrid_adapter as adapter_module from glyph_assets import ( AssetSegment, CarrierSegment, GenerationAttemptRecord, condition_carrier_v1, ) from glyph_hybrid_adapter import ( GlyphAdapterRuntime, HardenedGlyphHybridAdapter, ) from glyph_hybrid_evidence import ( GatePolicy, GlyphHybridEvidenceError, ) from quality_runtime import ( SQUIM_OBJECTIVE_WEIGHT_SHA256, ) MODEL_REPO_ID = "OpenFormosa/BlueMagpie-TTS" MODEL_REVISION = "a" * 40 ECAPA_REPO_ID = "speechbrain/spkrec-ecapa-voxceleb" ECAPA_REVISION = "b" * 40 SAMPLE_RATE = 48_000 def _sha(value: bytes | str) -> str: if isinstance(value, str): value = value.encode("utf-8") return hashlib.sha256(value).hexdigest() def _pcm( samples: int, amplitude: int, *, terminal_silence: int = 480, ) -> bytes: indexes = np.arange(samples, dtype=np.int64) values = np.where(indexes % 2, amplitude, -amplitude) values[-terminal_silence:] = 0 return values.astype(" np.ndarray: return ( np.frombuffer(pcm16_le, dtype=" GlyphAdapterRuntime: asr_languages: list[str | None] = [] def transcriber(audio, sample_rate, **kwargs): assert sample_rate == SAMPLE_RATE assert kwargs["language"] in { adapter_module.BREEZE25_PRIMARY_LANGUAGE, adapter_module.BREEZE25_CONFIRMATION_LANGUAGE, } assert kwargs["task"] == "transcribe" assert kwargs["max_new_tokens"] == 160 assert kwargs["max_verification_segments"] == 160 asr_languages.append(kwargs["language"]) counters["asr"] += 1 return transcript transcriber.languages = asr_languages def speaker_measure( audio, sample_rate, encoder, exact_anchor, **kwargs, ): assert sample_rate == SAMPLE_RATE assert encoder == "encoder" assert np.array_equal(exact_anchor, anchor) counters["ecapa"] += 1 return SimpleNamespace( similarity=0.55, begin_similarity=0.52, end_similarity=0.50, ) def squim_measure(audio, sample_rate): assert sample_rate == SAMPLE_RATE counters["squim"] += 1 return SimpleNamespace(stoi=0.91, pesq=1.55, si_sdr=4.0) return GlyphAdapterRuntime( sample_rate=SAMPLE_RATE, inference_steps=10, model_repo_id=MODEL_REPO_ID, model_revision=MODEL_REVISION, ecapa_repo_id=ECAPA_REPO_ID, ecapa_revision=ECAPA_REVISION, speaker_anchor_sha256=_sha( np.asarray(anchor, dtype=" bytes: return adapter( raw_text=case.raw_text, plan=case.plan, profile_state=case.profile_state, segments=case.segments, assembly=case.assembly, semantic_commitment=case.semantic_commitment, request_ledger=case.request_ledger, final_verification=case.final_verification, independent_final_verification=( case.independent_final_verification ), ) def test_adapter_replays_generation_and_reruns_pinned_evaluators( monkeypatch, ): key_sizes: list[int] = [] def token_bytes(size: int) -> bytes: key_sizes.append(size) return b"k" * size monkeypatch.setattr(adapter_module.secrets, "token_bytes", token_bytes) case = _carrier_case() serialized = _call( HardenedGlyphHybridAdapter(case.runtime), case, ) payload = json.loads(serialized) assert key_sizes == [32] assert case.counters == { "generation": 1, "asr": 2, "ecapa": 1, "squim": 1, "assembly": 1, } assert case.runtime.breeze_primary_transcriber.languages == [ adapter_module.BREEZE25_PRIMARY_LANGUAGE, adapter_module.BREEZE25_CONFIRMATION_LANGUAGE, ] assert payload["request_proof"]["content_commitment_scheme"] == ( "hmac-sha256-v1" ) assert payload["request_proof"]["final_gate"]["passed"] is True assert payload["request_proof"]["independent_gate"]["passed"] is True segments = { row["segment_id"]: row for row in payload["request_proof"]["segments"] } calls = { row["call_id"]: row for row in payload["runtime_call_ledger"] } for gate_name in ("final_gate", "independent_gate"): gate = payload["request_proof"][gate_name] assert ( calls[gate["asr_call_id"]]["target_sha256"] == payload["request_proof"]["canonical_target_sha256"] ) assert ( calls[ payload["request_proof"]["final_gate"]["asr_call_id"] ]["evaluator_pin_name"] != calls[ payload["request_proof"]["independent_gate"]["asr_call_id"] ]["evaluator_pin_name"] ) evaluator_pins = { pin["name"]: pin for pin in payload["renderer_contract"]["evaluator_pins"] } primary_pin = evaluator_pins[ adapter_module.BREEZE25_PRIMARY_PIN_NAME ] confirmation_pin = evaluator_pins[ adapter_module.BREEZE25_CONFIRMATION_PIN_NAME ] assert ( primary_pin["uri"], primary_pin["revision"], primary_pin["sha256"], ) == ( confirmation_pin["uri"], confirmation_pin["revision"], confirmation_pin["sha256"], ) assert primary_pin["config_sha256"] != confirmation_pin["config_sha256"] asset_segment = next( row for row in segments.values() if row["kind"] == "asset" ) asset_load = next( row for row in calls.values() if row["kind"] == "asset_load" ) assert ( asset_load["asset_id"], asset_load["manifest_entry_sha256"], asset_load["loaded_pcm_sha256"], asset_load["loaded_sample_count"], ) == ( asset_segment["asset_id"], asset_segment["asset_manifest_entry_sha256"], asset_segment["realized_pcm_sha256"], asset_segment["output_sample_count"], ) selection = payload["carrier_selections"][0] carrier_segment = segments[selection["segment_id"]] selected_model = calls[selection["selected_call_id"]] assert ( selected_model["text_sha256"], selected_model["output_pcm_sha256"], selected_model["output_sample_count"], ) == ( carrier_segment["carrier_text_sha256"], carrier_segment["realized_pcm_sha256"], carrier_segment["output_sample_count"], ) assert "letter-a" not in serialized.decode("ascii") assert "\\u7532" not in serialized.decode("ascii") assert ( payload["renderer_contract_sha256"] == _sha( json.dumps( payload["renderer_contract"], ensure_ascii=True, allow_nan=False, separators=(",", ":"), sort_keys=True, ).encode("ascii") ) ) source_pins = { pin["name"]: pin for pin in payload["renderer_contract"]["source_pins"] } exact_runtime_sources = { "glyph-ascii-runtime-source": ( adapter_module.glyph_ascii_module.__file__ ), "glyph-hybrid-plan-source": adapter_module.glyph_plan_module.__file__, "glyph-assets-runtime-source": ( adapter_module.glyph_assets_module.__file__ ), "glyph-hybrid-evidence-source": adapter_module.evidence.__file__, "glyph-hybrid-adapter-source": adapter_module.__file__, "glyph-generation-runtime-source": ( case.runtime.generate_chunk.__code__.co_filename ), } assert set(exact_runtime_sources).issubset(source_pins) for name, path in exact_runtime_sources.items(): assert source_pins[name]["sha256"] == _sha(Path(path).read_bytes()) def test_adapter_replays_every_completed_carrier_attempt(): case = _carrier_case() first_completed = case.request_ledger.completed_attempts[0] second_pcm = _pcm(48_000, 4_500) second_outcome = SimpleNamespace( audio=_waveform(second_pcm), stop_reason="stop_threshold", endpoint_energy_ratio=0.0, generated_steps=4, hard_stop_steps=5, ) second_record = GenerationAttemptRecord( ordinal=1, attempt_id="model-attempt-1", seed=54_321, text_sha256=_sha("甲"), endpoint_evidence_sha256=_sha("endpoint-1"), generated_chunk_count=1, generated_text_units=1, ) second_reservation = SimpleNamespace( carrier_segment_id="glyph-plan-segment-0", candidate_index=1, candidate_ordinal=1, network_conditioned=False, attempt_id=second_record.attempt_id, seed=second_record.seed, text="甲", ) second_completed = SimpleNamespace( reservation=second_reservation, endpoint_outcome=second_outcome, record=second_record, ) replay_by_seed = { first_completed.record.seed: first_completed.endpoint_outcome, second_record.seed: second_outcome, } def generate_chunk(*args, **kwargs): case.counters["generation"] += 1 assert args[0] == "甲" return replay_by_seed[kwargs["request_seed"]] case.runtime = replace( case.runtime, generate_chunk=generate_chunk, ) case.request_ledger = SimpleNamespace( records=(first_completed.record, second_record), completed_attempts=(first_completed, second_completed), ) payload = json.loads( _call(HardenedGlyphHybridAdapter(case.runtime), case) ) model_calls = [ row for row in payload["runtime_call_ledger"] if row["kind"] == "model_generation" ] assert case.counters["generation"] == 2 assert [row["attempt_ordinal"] for row in model_calls] == [0, 1] assert payload["carrier_selections"][0]["attempted_call_ids"] == [ row["call_id"] for row in model_calls ] assert ( payload["carrier_selections"][0]["selected_call_id"] == model_calls[0]["call_id"] ) def test_adapter_rejects_logged_generation_that_exact_replay_disagrees_with(): case = _carrier_case(logged_pcm=_pcm(48_000, 5_000)) with pytest.raises( GlyphHybridEvidenceError, match="does not match pinned replay", ): _call(HardenedGlyphHybridAdapter(case.runtime), case) def test_pure_asset_request_never_invokes_generation_evaluator(): anchor = np.asarray([1.0, 0.0], dtype=np.float32) # A pure expanded letter token carries seven speech units. asset_pcm = _pcm(96_000, 3_000) _, state = _bundle( _sha(anchor.astype("