4.7 KiB
v0.2.5 독립 리뷰 수정 증거
릴리스 차단. ebur128/pyloudnorm loudness 조건은 통과했지만 동일 faster-whisper VAD gate가
새 market WAV에서 1개 segment를 반환했다. requiredEmptyPassed=false이며 이를 true로 요구하는
단위 테스트는 실패 상태다. 승인/commit/push/merge/tag/deploy는 하지 않았다.
기존 상위 .agent/evidence-v0.2.5의 150개 파일은 history-sha256.json으로 고정했다.
수정 전 bundle과 RESULT/정규화 계획은 rejected-* 사본으로 보존한다. 기존 loudnorm input_i의
0.01 LU spread 주장은 전용 ebur128 2.0 LU / 독립 리뷰의 pyloudnorm 0.2.0 1.925 LU와 모순되어
거부된 역사 증거다. 상위 GREEN 표시는 당시 테스트 결과이며 현재 릴리스 통과가 아니다.
TDD와 결과
| 검사 | 증거 | 결과 |
|---|---|---|
| 복원한 전용 ebur128 목표/동등성 | 01 RED, 06 GREEN | 2.0 LU 실패 → 0.0 LU 통과 |
| 순수 scalar/사전 peak/보정/비수렴 | 02 RED, 04 GREEN | 7개 통과 |
| exact 새 WAV ASR gate | 03 RED, 08 실제 실행, 결과 | 실패 보존 |
| 새 manifest의 빌드 계약 | 07 RED, 15 unit | 해당 39개 통과 |
| 새 원자 생성 | 05 | 8개 전체 교환 |
| 전용 ebur128 독립 측정 | 스크립트, 결과 | 전수 −32.5 LUFS, spread 0.0 LU, 최대 −6.2 dBTP |
| 별도 pyloudnorm 독립 측정 | 스크립트, 결과 | −32.6062~−32.5291 LUFS, spread 0.0771547792 LU |
| Python 전체 | 11 | 47개 통과 |
| lint/typecheck | 14 | 통과 |
| npm test | 15 | 143 통과 / 1 실패 (ASR) |
| build | 16 | 통과 |
| audit | JSON | 취약점 0개 |
| Chrome desktop/mobile | 17, summary | 36 PASS, skipped/flaky/unexpected=0 |
| 같은 원본에서 두 번 재생성 | 18, JSON | PCM/통계/notice 동일, generatedAtUtc만 제외 |
| 역사/원본/음성/dist 보존 | 20, JSON | 통과 |
현재 manifest의 hash는 ASR와 pyloudnorm 결과에 연결되어 있고 각 WAV hash도 기록되어 있다.
ASR 모델 revision/모델 파일 hash/VAD hash/전체 기본 옵션/seed/의존성/스크립트 hash는
final-asr.json에 있다. 기존 실패·no-VAD는 수정하지 않았다.
market의 exact SHA-256은 7178307c48c192ac396dcd3c880c377bf56b45e829b459b1feca9f986437e632이며,
반환 구간 10.45–12.45초, 후보 텍스트 Let's go, let's go, let's go.를 그대로 남겼다.
이 텍스트는 검증된 전사가 아니다. humanListeningAcceptance/legalPrivacyClearance는 모두 false다.
독립 pyloudnorm 재현
일반 npm test는 이 가상 환경이나 네트워크를 사용하지 않는다. 아래 절차는 별도의 독립 증거 재현용이다. Python 3.11/Linux x86_64 wheel을 고정했다. 의존성 lock의 모든 버전과 SHA-256을 사용한다. wheel inventory, 설치 로그, freeze를 함께 보존했다. pyloudnorm=0.2.0, soundfile=0.13.1, libsndfile=1.2.2; 나머지 패키지 버전과 Python 버전은 결과 JSON에 있다.
기존 증거를 덮어쓰지 않도록 새 임시 디렉터리에 같은 상대 경로를 구성한다. 설치에는 네트워크가
필요할 수 있지만 WAV 측정은 로컬 파일만 읽는다. open('x')가 기존 결과 덮어쓰기를 거부한다.
review_run=$(mktemp -d /tmp/findword-independent-XXXXXX)
python3 -m venv "$review_run/venv"
"$review_run/venv/bin/pip" install --require-hashes -r .agent/evidence-v0.2.5/review-fixes/pyloudnorm-requirements.lock
mkdir -p "$review_run/public" "$review_run/.agent/evidence-v0.2.5/review-fixes"
cp -a public/ambience "$review_run/public/ambience"
cp .agent/evidence-v0.2.5/review-fixes/measure-pyloudnorm.py "$review_run/.agent/evidence-v0.2.5/review-fixes/"
"$review_run/venv/bin/python" "$review_run/.agent/evidence-v0.2.5/review-fixes/measure-pyloudnorm.py"
동일한 임시 경로에 measure-ebur128.py도 복사해 python3로 실행하면 전용 FFmpeg 계기를 별도 재현할 수 있다.
FFmpeg 6.1.1-3ubuntu5와 정확한 input bytes 범위에서 재현성을 검증했으며 다른 빌드의 byte 동일성을 보장하지 않는다.