From 8ce63a1ca3eece1b63bbe24cba1b4c4ba86bb91d Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 28 May 2026 15:45:35 +0100 Subject: [PATCH] Use cleaner bird syrinx references --- research/bird-syrinx-golf/README.md | 24 +++++---- state/evidence.jsonl | 1 + tools/BirdSyrinxGolf/Program.cs | 78 +++++++++++++++++------------ 3 files changed, 59 insertions(+), 44 deletions(-) diff --git a/research/bird-syrinx-golf/README.md b/research/bird-syrinx-golf/README.md index 45db440..01e89f5 100644 --- a/research/bird-syrinx-golf/README.md +++ b/research/bird-syrinx-golf/README.md @@ -1,17 +1,18 @@ # Bird Syrinx Golf -This sidequest uses Creative Commons bird recordings as a reality check for the graph-native syrinx path. The goal is not to make species-accurate bird impersonations yet. The goal is to force the paired-source syrinx graph to meet real calls, emit listenable WAVs, and expose which controls currently matter. +This sidequest uses open-licensed bird recordings as a reality check for the graph-native syrinx path. The goal is not to make species-accurate bird impersonations yet. The goal is to force the paired-source syrinx graph to meet clean calls, emit listenable WAVs, and expose which controls currently matter. ## Source Set -All references are Wikimedia Commons mirrors of xeno-canto recordings, with Commons file pages used as the license/provenance anchor and Commons MP3 transcodes used for robust local decoding. +All references are Wikimedia Commons files, with Commons file pages used as the license/provenance anchor and Commons MP3 transcodes used for robust local decoding. The Korean National Institute of Biological Resources clips are KOGL Type 1 rather than Creative Commons; keep that attribution distinction visible. | id | species | call | author | license | source | | --- | --- | --- | --- | --- | --- | | `common-iora-xc125847` | Common Iora (`Aegithina tiphia`) | song | Sudipto Roy | CC BY-SA 3.0 | | -| `bohemian-waxwing-xc132884` | Bohemian Waxwing (`Bombycilla garrulus`) | flight call | Bushman | CC BY-SA 3.0 | | -| `california-quail-xc109825` | California Quail (`Callipepla californica`) | natural calls | Jonathon Jongsma | CC BY-SA 3.0 | | -| `american-crow-xc115429` | American Crow (`Corvus brachyrhynchos`) | soft rattling calls | Jonathon Jongsma | CC BY-SA 3.0 | | +| `common-blackbird-1059970` | Common Blackbird (`Turdus merula`) | song | Diana Tudor | CC BY 4.0 | | +| `red-footed-falcon` | Red-footed Falcon (`Falco vespertinus`) | typical calls | Bubulcus | CC BY 3.0 | | +| `warbling-white-eye-ko` | Warbling White-eye (`Zosterops japonicus`) | call | National Institute of Biological Resources | KOGL Type 1 | | +| `eurasian-wren-ko` | Eurasian Wren (`Troglodytes troglodytes`) | song | National Institute of Biological Resources | KOGL Type 1 | | ## Tool @@ -26,19 +27,20 @@ All references are Wikimedia Commons mirrors of xeno-canto recordings, with Comm The generated audio lives under `artifacts/bird-syrinx-golf//`, which is intentionally ignored by git. -## First Run +## Clean Reference Run -Run: `artifacts/bird-syrinx-golf/20260528T141443104` +Run: `artifacts/bird-syrinx-golf/20260528T143401133` | bird | score | logMelCosine | best coarse control | | --- | ---: | ---: | --- | | Common Iora | 0.2423 | 0.2356 | `freq=1050`, high beak opening | -| Bohemian Waxwing | 0.2785 | 0.2778 | `freq=3000`, narrow labial opening | -| California Quail | 0.1888 | 0.3035 | `freq=760`, wider labial opening | -| American Crow | 0.2225 | 0.3654 | `freq=760`, wider labial opening | +| Common Blackbird | 0.2784 | 0.3223 | `freq=1050`, high beak opening | +| Red-footed Falcon | 0.2727 | 0.3004 | `freq=3000`, narrow labial opening | +| Warbling White-eye | 0.3102 | 0.3692 | `freq=3000`, narrow labial opening | +| Eurasian Wren | 0.2577 | 0.2081 | `freq=1050`, high beak opening | ## Interpretation -This proves the current graph source path can render paired-labium syrinx candidates against real CC bird audio. It does not prove the model is good. The search grid is deliberately coarse and mostly static; it cannot yet match call envelopes, syllable timing, pitch sweeps, side-to-side alternation, beak articulation, or turbulence bursts with enough authority. +This proves the current graph source path can render paired-labium syrinx candidates against clean real bird audio. It does not prove the model is good. The search grid is deliberately coarse and mostly static; it cannot yet match call envelopes, syllable timing, pitch sweeps, side-to-side alternation, beak articulation, or turbulence bursts with enough authority. The useful finding is that the syrinx controls now form an inspectable fitting surface. The next coherent step is not a larger brute-force grid. It is time-varying control curves over the same graph: pressure envelopes, labial tension sweeps, independent left/right gating, beak opening, and possibly tract morphology changes when the reference call has obvious articulatory motion. diff --git a/state/evidence.jsonl b/state/evidence.jsonl index 50351c6..593091f 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -204,3 +204,4 @@ {"evidence":"Removed legacy vocal audio authorities: `TractPropagationMode` now only accepts graph lowering, parser legacy values fail fast, the Faust `Voice.Tract` resonator/waveguide renderers were deleted, the acoustic response proxy fallback was removed, `WaveguideLoss` became graph `PropagationLoss`, `substeps` was rejected, and the Pink Trombone built-in plus graph tests now route through typed `AcousticPortNetwork` lowering. Verification: stale-symbol scan only finds historical evidence and explicit rejection tests; full DSL test suite passed 180 tests.","claim":"Vocal acoustics now have one live authority: the typed acoustic graph. `Voice.Tract`, PT-shaped commands, and built-ins are authoring sugar that populate graph records; they cannot secretly render old proxy/waveguide audio when the graph is missing or weak.","timestamp":"2026-05-28T13:40:00+01:00","topic":"legacy-vocal-renderer-cut"} {"evidence":"Added `AcousticSourcePort.Impedance`, parser aliases `impedance`/`load`/`source_impedance`, load-aware graph source lowering using node incident pressure, graph contact terminals with named closure/reservoir/release locals, generated tract contact terminals, a syrinx structural test, TractGraphRenderer `mode=syrinx`, and `patches/advanced/bird-syrinx.aqua`. Rendered `artifacts/audition/syrinx-graph-20260528b.wav` and `artifacts/audition/tract-contact-graph-20260528b.wav`; focused graph/PT parity smokes passed.","claim":"Source-tract coupling and closure storage are now graph-owned reusable semantics, not Pink Trombone-shaped gain hacks. A syrinx is expressible as paired loaded labial source ports feeding one acoustic graph through a merge junction and beak radiation, giving Mimir a differentiable bird-voice target surface.","timestamp":"2026-05-28T14:20:00+01:00","topic":"graph-source-load-contact-syrinx"} {"evidence":"Added `tools/BirdSyrinxGolf`, a CC birdcall sidequest tool that downloads Commons/xeno-canto mirrored bird recordings, extracts loudest 1.2 second clips, renders graph-native paired-labium syrinx candidates through Faust, and writes reference/candidate WAVs plus reports under `artifacts/bird-syrinx-golf/`. First run `20260528T141443104` produced candidate WAVs for Common Iora, Bohemian Waxwing, California Quail, and American Crow with log-mel cosine similarities from 0.2356 to 0.3654.","claim":"The syrinx graph now has a real bird-audio fitting surface, but static coarse candidates are not enough for species-like calls. Next improvement should add time-varying pressure, labial tension, left/right gating, beak opening, and morphology curves over the same graph rather than a larger static brute-force grid.","timestamp":"2026-05-28T15:20:00+01:00","topic":"bird-syrinx-golf"} +{"evidence":"Replaced noisy Bohemian Waxwing, California Quail, and American Crow bird-golf references with cleaner Commons files: Common Blackbird (CC BY 4.0), Red-footed Falcon (CC BY 3.0), Warbling White-eye (KOGL Type 1), and Eurasian Wren (KOGL Type 1), keeping Common Iora. Run `artifacts/bird-syrinx-golf/20260528T143401133` produced reference/candidate WAVs for all five clean sources with log-mel cosine similarities from 0.2081 to 0.3692.","claim":"Bird reference quality now better isolates syrinx model failures from background-noise contamination. The tool should describe the corpus as open-licensed, not CC-only, because the Korean clean clips are KOGL Type 1.","timestamp":"2026-05-28T15:41:00+01:00","topic":"bird-syrinx-clean-reference-set"} diff --git a/tools/BirdSyrinxGolf/Program.cs b/tools/BirdSyrinxGolf/Program.cs index a7654ae..6ba6e35 100644 --- a/tools/BirdSyrinxGolf/Program.cs +++ b/tools/BirdSyrinxGolf/Program.cs @@ -27,41 +27,53 @@ BirdSource[] sources = "https://upload.wikimedia.org/wikipedia/commons/transcoded/7/7c/Aegithina_tiphia_-_Common_Iora_XC125847.ogg/Aegithina_tiphia_-_Common_Iora_XC125847.ogg.mp3", "https://upload.wikimedia.org/wikipedia/commons/7/7c/Aegithina_tiphia_-_Common_Iora_XC125847.ogg"), new( - "bohemian-waxwing-xc132884", - "Bohemian Waxwing", - "Bombycilla garrulus", - "flight call", + "common-blackbird-1059970", + "Common Blackbird", + "Turdus merula", + "song", + BirdKind.HarmonicSong, + "Diana Tudor", + "CC BY 4.0", + "https://creativecommons.org/licenses/by/4.0", + "https://commons.wikimedia.org/wiki/File:Common_Blackbird_song_(Turdus_merula).ogg", + "https://upload.wikimedia.org/wikipedia/commons/transcoded/3/30/Common_Blackbird_song_%28Turdus_merula%29.ogg/Common_Blackbird_song_%28Turdus_merula%29.ogg.mp3", + "https://upload.wikimedia.org/wikipedia/commons/3/30/Common_Blackbird_song_%28Turdus_merula%29.ogg"), + new( + "red-footed-falcon", + "Red-footed Falcon", + "Falco vespertinus", + "typical calls", BirdKind.HighCall, - "Bushman", - "CC BY-SA 3.0", - "https://creativecommons.org/licenses/by-sa/3.0", - "https://commons.wikimedia.org/wiki/File:Bombycilla_garrulus_-_Bohemian_Waxwing_XC132884.ogg", - "https://upload.wikimedia.org/wikipedia/commons/transcoded/4/46/Bombycilla_garrulus_-_Bohemian_Waxwing_XC132884.ogg/Bombycilla_garrulus_-_Bohemian_Waxwing_XC132884.ogg.mp3", - "https://upload.wikimedia.org/wikipedia/commons/4/46/Bombycilla_garrulus_-_Bohemian_Waxwing_XC132884.ogg"), + "Bubulcus", + "CC BY 3.0", + "https://creativecommons.org/licenses/by/3.0", + "https://commons.wikimedia.org/wiki/File:Falco_vespertinus.ogg", + "https://upload.wikimedia.org/wikipedia/commons/transcoded/5/59/Falco_vespertinus.ogg/Falco_vespertinus.ogg.mp3", + "https://upload.wikimedia.org/wikipedia/commons/5/59/Falco_vespertinus.ogg"), new( - "california-quail-xc109825", - "California Quail", - "Callipepla californica", - "natural calls", - BirdKind.LowCall, - "Jonathon Jongsma", - "CC BY-SA 3.0", - "https://creativecommons.org/licenses/by-sa/3.0", - "https://commons.wikimedia.org/wiki/File:Callipepla_californica_-_California_Quail_-_XC109825.ogg", - "https://upload.wikimedia.org/wikipedia/commons/transcoded/3/3c/Callipepla_californica_-_California_Quail_-_XC109825.ogg/Callipepla_californica_-_California_Quail_-_XC109825.ogg.mp3", - "https://upload.wikimedia.org/wikipedia/commons/3/3c/Callipepla_californica_-_California_Quail_-_XC109825.ogg"), + "warbling-white-eye-ko", + "Warbling White-eye", + "Zosterops japonicus", + "call", + BirdKind.HighCall, + "National Institute of Biological Resources", + "KOGL Type 1", + "http://www.kogl.or.kr/info/licenseType1.do", + "https://commons.wikimedia.org/wiki/File:%EB%8F%99%EB%B0%95%EC%83%88.ogg", + "https://upload.wikimedia.org/wikipedia/commons/transcoded/e/e7/%EB%8F%99%EB%B0%95%EC%83%88.ogg/%EB%8F%99%EB%B0%95%EC%83%88.ogg.mp3", + "https://upload.wikimedia.org/wikipedia/commons/e/e7/%EB%8F%99%EB%B0%95%EC%83%88.ogg"), new( - "american-crow-xc115429", - "American Crow", - "Corvus brachyrhynchos", - "soft rattling calls", - BirdKind.LowCall, - "Jonathon Jongsma", - "CC BY-SA 3.0", - "https://creativecommons.org/licenses/by-sa/3.0", - "https://commons.wikimedia.org/wiki/File:Corvus_brachyrhynchos_-_American_Crow_-_XC115429.ogg", - "https://upload.wikimedia.org/wikipedia/commons/transcoded/9/90/Corvus_brachyrhynchos_-_American_Crow_-_XC115429.ogg/Corvus_brachyrhynchos_-_American_Crow_-_XC115429.ogg.mp3", - "https://upload.wikimedia.org/wikipedia/commons/9/90/Corvus_brachyrhynchos_-_American_Crow_-_XC115429.ogg") + "eurasian-wren-ko", + "Eurasian Wren", + "Troglodytes troglodytes", + "song", + BirdKind.HarmonicSong, + "National Institute of Biological Resources", + "KOGL Type 1", + "http://www.kogl.or.kr/info/licenseType1.do", + "https://commons.wikimedia.org/wiki/File:%EA%B5%B4%EB%9A%9D%EC%83%88.ogg", + "https://upload.wikimedia.org/wikipedia/commons/transcoded/2/2b/%EA%B5%B4%EB%9A%9D%EC%83%88.ogg/%EA%B5%B4%EB%9A%9D%EC%83%88.ogg.mp3", + "https://upload.wikimedia.org/wikipedia/commons/2/2b/%EA%B5%B4%EB%9A%9D%EC%83%88.ogg") ]; Directory.CreateDirectory(sourceRoot); @@ -231,7 +243,7 @@ static string Summary(IEnumerable rows) var builder = new StringBuilder(); builder.AppendLine("# Bird Syrinx Golf"); builder.AppendLine(); - builder.AppendLine("All references are Creative Commons files mirrored on Wikimedia Commons from xeno-canto. Candidates are graph-native Aqua syrinx patches using paired labial source ports."); + builder.AppendLine("All references are open-licensed bird recordings from Wikimedia Commons. Candidates are graph-native Aqua syrinx patches using paired labial source ports."); builder.AppendLine(); builder.AppendLine("| id | bird | call | score | logMelCosine | logMelDistance | centroidRatio | candidate |"); builder.AppendLine("| --- | --- | --- | ---: | ---: | ---: | ---: | --- |");