Observe actual same-board Free before the last numeric word completes

This commit is contained in:
NINI
2026-10-07 01:39:17 +09:00
parent dbdce3b661
commit 4d8f63e9b2
+5 -1
View File
@@ -40,12 +40,16 @@ try {
$result.rapidStartedUtc=[DateTime]::UtcNow.ToString('o')
for($pindex=0;$pindex-lt$points.Count;$pindex++){$p=$points[$pindex];Adb @('shell','input','tap',"$($p[0])","$($p[1])")|Out-Null;if($pindex-eq0){Adb @('shell','input','tap',"$($p[0])","$($p[1])")|Out-Null}}
$result.rapidFinishedUtc=[DateTime]::UtcNow.ToString('o')
Start-Sleep -Seconds 12
$done=Save 'twenty-rapid-after';Check 'twenty-native-rapid-complete' ($done.latestFreePlay.sourceStageId-eq20-and@($done.puzzleStates|Where-Object stageId -eq 20).Count-eq0-and(Same $save.completedStageIds $done.completedStageIds)-and(Same $actual.balls $done.latestFreePlay.balls)-and(Same $actual.camera $done.latestFreePlay.camera)) 'Ten direct taps plus duplicate remove replay20 and make exact same board Free20; original actual30 records unchanged'
$result.sameBoardFreeObservedUtc=[DateTime]::UtcNow.ToString('o')
# Wrapper launch precedes native PCM start: this elapsed time bounds Free observation conservatively.
$result.freeObservationPcmAgeUpperBoundSeconds=([DateTime]::UtcNow-$recorders[-1].startedUtc).TotalSeconds
Start-Sleep -Seconds 12
CompareAudio 'audio-ten-rapid' @(1..10|ForEach-Object{'count_{0:D2}'-f$_})
$matches=@(1..10|ForEach-Object{Get-Content (Join-Path $EvidenceDir ('audio-ten-rapid-count_{0:D2}-match.json'-f$_)) -Raw|ConvertFrom-Json})
for($i=1;$i-lt10;$i++){Check "rapid-fifo-$i" ($matches[$i-1].onsetSeconds+$matches[$i-1].referenceDurationSeconds-le$matches[$i].onsetSeconds+.015) 'Entire numeric clip completes before next onset'}
Check 'rapid-last-complete-before-record-end' ($matches[-1].onsetSeconds+$matches[-1].referenceDurationSeconds-le$matches[-1].capturedDurationSeconds) 'Entire tenth numeric clip retained after same-board Free transition'
Check 'same-board-free-before-last-word-completes' ($result.freeObservationPcmAgeUpperBoundSeconds-lt($matches[-1].onsetSeconds+$matches[-1].referenceDurationSeconds)) 'Actual Free state read immediately after native11 taps, before full tenth word ends; conservative age measured from wrapper launch before PCM started'
& pwsh -NoProfile -File (Join-Path $PSScriptRoot 'check-count-audio-residual.ps1') -CapturedPath (Join-Path $EvidenceDir 'audio-ten-rapid.wav') -MatchDir $EvidenceDir -Prefix 'audio-ten-rapid' -OutputPath (Join-Path $EvidenceDir 'rapid-no-extra-speech.json')
Check 'rapid-no-extra-or-duplicate-speech' ($LASTEXITCODE-eq0) 'All gaps and trailing PCM outside ten complete matched words are below PCM32 RMS'
$result.speechMatches=$matches