fix: normalize ambience loudness for v0.2.5

This commit is contained in:
oz
2026-10-14 12:12:13 +00:00
parent 812540c743
commit 91aff66445
390 changed files with 97709 additions and 257 deletions
+36
View File
@@ -1,5 +1,41 @@
# Find-Word 변경 이력
## 0.2.5 — 2026-10-14 (exact 자산 소유자 승인, 배포 미실행)
- 독립 리뷰에서 loudnorm input_i의 0.01 LU spread 주장을 거부했다. 같은 WAV의 전용 ebur128은
2.0 LU, 독립 pyloudnorm 0.2.0은 1.925 LU로 릴리스 기준을 위반했다. 기존 증거를 모두 보존한다.
- 먼저 실패하는 ebur128 동등성 테스트를 복원했다. 최종 WAV 전수 목표 **−32.5 LUFS ±0.2**,
spread **≤0.4 LU**, true peak **≤−6 dBTP**를 강제한다. acceptance meter는 `ebur128=peak=true`다.
- hash-pinned 원본 8개·선택 구간·creator·license·attribution·50ms fade를 유지하고 fresh ebur128 실측에서
`gain_db=target−measured_i`를 구한다. 예측 peak가 내부 **−6.2 dBTP**를 넘으면 변환 전에 실패한다.
`volume=<gain_db>dB:precision=double`만 적용해 PCM16으로 인코딩하고 staged WAV를 새 프로세스로 측정한다.
필요할 때만 같은 원본에서 최대 3회 스칼라 보정하며 비수렴·측정 실패는 원자 공개를 차단한다.
- 8개 모두 ebur128 **−32.5 LUFS, spread 0.0 LU**, 최대 true peak **−6.2 dBTP**.
별도 disposable pyloudnorm 0.2.0/soundfile 0.13.1은 **−32.6062~−32.5291 LUFS, spread 0.0772 LU**로 통과했다.
입력/최종 통계·faded PCM hash·gain/filter·iterations·계약·FFmpeg 버전을 manifest/provenance에 기록한다.
일반 npm test는 네트워크·전역 pyloudnorm에 의존하지 않는다. 독립 스크립트/버전/wheel hash는 별도 보존한다.
- 8 WAV·manifest·고지를 staging에서 검증한 뒤 원자 교환했다. 12초/24kHz/mono/PCM16과 모든 출처를 보존했다.
- 환경/SNR/intro와 무관한 **고정 배경 gain 0.4198884518664126**을 유지했다. voice/intro RMS .03,
`B=.55,V=.25,I=.20,SNR_MAX=12,intro=1.8,ceiling=.8`과 20,200개 조합의 보수적 peak 검사를 유지한다.
JS에 고정한 109 WAV hash/bytes 검사, 3문항·SNR·중도 종료 등 게임 흐름은 유지한다.
- 새 WAV의 동일 faster-whisper tiny/VAD 검사는 **market 1 segment, requiredEmptyPassed=false**로 실패했다.
mall/cafe는 0개다. 원래 `true` 요구 테스트의 소스·실패 로그와 ASR 원문 바이트를 역사 진단으로 보존한다.
ASR 모델/설정/원본 구간/segment를 변경하지 않았다.
- Oz는 현재 8 WAV·manifest·notice 검수 ZIP을 받은 후 **“승인합니다. 이대로 진행하세요”**라고
**2026-10-14T11:29:51Z / 20:29:51 KST**에 회신했다. `.agent/RELEASE-APPROVAL-v0.2.5.json`에
정확한 문구/시각/범위/소유자, 전달 ZIP SHA-256
`bb2e974b652df43db4a1f2a59716836e2c521839c724b34d4b71c1b40c3322e5`, 현재 manifest 및 8 WAV 해시를 고정했다.
`productOwnerReleaseApproval=true`, `humanListeningAcceptance=true`, **`legalPrivacyClearance=false`**다.
- 승인 기록이 없어 실패하는 테스트를 먼저 실행한 뒤 릴리스 gate를 **자동 empty-ASR OR exact-byte 소유자
청취 승인**으로 변경했다. 현재는 승인 경로만 통과한다. 보존 ZIP과 현재 파일의 전수 바이트 비교 및
변조 테스트가 stale 자산/manifest, 다른 ZIP, 문구/범위/시각 누락, 법적 clearance 과장을 거부한다.
- lint/unit/전체 Python/build/audit 및 sandboxed Chrome desktop/mobile 검증 결과는
`.agent/RESULT-v0.2.5.md`에 기록한다. 릴리스 계약 통과를 ASR 성공이나 법적 clearance로 해석하지 않는다.
- 제품/manifest/query 버전 **0.2.5**, `Designed by OZ at Heat-T Medical Inc.`, 101 voice WAV 바이트,
제3자 notice와 market CC BY-SA 4.0을 유지한다. README/설계/provenance/배포 문서와 한국어 주석을 수정했다.
- 기존 `.agent/evidence-v0.2.5`와 `review-fixes/`는 불변 역사다. 이번 승인 증거는 `release-approval/`에 추가했다.
commit/push/merge/tag/deploy는 실행하지 않았다.
## 0.2.3 — 2026-10-14 (로컬 구현, 배포 미실행)
- 라운드를 정확히 3문항으로 변경하고 한 단계의 난이도를 유지한다. 시작 단계 1~5 선택,