Use cleaner bird syrinx references

This commit is contained in:
Meta Vens 2026-05-28 15:45:35 +01:00
commit 8ce63a1ca3
3 changed files with 59 additions and 44 deletions

View file

@ -1,17 +1,18 @@
# Bird Syrinx Golf # 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 ## 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 | | id | species | call | author | license | source |
| --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- |
| `common-iora-xc125847` | Common Iora (`Aegithina tiphia`) | song | Sudipto Roy | CC BY-SA 3.0 | <https://commons.wikimedia.org/wiki/File:Aegithina_tiphia_-_Common_Iora_XC125847.ogg> | | `common-iora-xc125847` | Common Iora (`Aegithina tiphia`) | song | Sudipto Roy | CC BY-SA 3.0 | <https://commons.wikimedia.org/wiki/File:Aegithina_tiphia_-_Common_Iora_XC125847.ogg> |
| `bohemian-waxwing-xc132884` | Bohemian Waxwing (`Bombycilla garrulus`) | flight call | Bushman | CC BY-SA 3.0 | <https://commons.wikimedia.org/wiki/File:Bombycilla_garrulus_-_Bohemian_Waxwing_XC132884.ogg> | | `common-blackbird-1059970` | Common Blackbird (`Turdus merula`) | song | Diana Tudor | CC BY 4.0 | <https://commons.wikimedia.org/wiki/File:Common_Blackbird_song_(Turdus_merula).ogg> |
| `california-quail-xc109825` | California Quail (`Callipepla californica`) | natural calls | Jonathon Jongsma | CC BY-SA 3.0 | <https://commons.wikimedia.org/wiki/File:Callipepla_californica_-_California_Quail_-_XC109825.ogg> | | `red-footed-falcon` | Red-footed Falcon (`Falco vespertinus`) | typical calls | Bubulcus | CC BY 3.0 | <https://commons.wikimedia.org/wiki/File:Falco_vespertinus.ogg> |
| `american-crow-xc115429` | American Crow (`Corvus brachyrhynchos`) | soft rattling calls | Jonathon Jongsma | CC BY-SA 3.0 | <https://commons.wikimedia.org/wiki/File:Corvus_brachyrhynchos_-_American_Crow_-_XC115429.ogg> | | `warbling-white-eye-ko` | Warbling White-eye (`Zosterops japonicus`) | call | National Institute of Biological Resources | KOGL Type 1 | <https://commons.wikimedia.org/wiki/File:%EB%8F%99%EB%B0%95%EC%83%88.ogg> |
| `eurasian-wren-ko` | Eurasian Wren (`Troglodytes troglodytes`) | song | National Institute of Biological Resources | KOGL Type 1 | <https://commons.wikimedia.org/wiki/File:%EA%B5%B4%EB%9A%9D%EC%83%88.ogg> |
## Tool ## 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/<timestamp>/`, which is intentionally ignored by git. The generated audio lives under `artifacts/bird-syrinx-golf/<timestamp>/`, 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 | | bird | score | logMelCosine | best coarse control |
| --- | ---: | ---: | --- | | --- | ---: | ---: | --- |
| Common Iora | 0.2423 | 0.2356 | `freq=1050`, high beak opening | | Common Iora | 0.2423 | 0.2356 | `freq=1050`, high beak opening |
| Bohemian Waxwing | 0.2785 | 0.2778 | `freq=3000`, narrow labial opening | | Common Blackbird | 0.2784 | 0.3223 | `freq=1050`, high beak opening |
| California Quail | 0.1888 | 0.3035 | `freq=760`, wider labial opening | | Red-footed Falcon | 0.2727 | 0.3004 | `freq=3000`, narrow labial opening |
| American Crow | 0.2225 | 0.3654 | `freq=760`, wider 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 ## 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. 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.

View file

@ -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":"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 `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/<timestamp>`. 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":"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/<timestamp>`. 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"}

View file

@ -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/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"), "https://upload.wikimedia.org/wikipedia/commons/7/7c/Aegithina_tiphia_-_Common_Iora_XC125847.ogg"),
new( new(
"bohemian-waxwing-xc132884", "common-blackbird-1059970",
"Bohemian Waxwing", "Common Blackbird",
"Bombycilla garrulus", "Turdus merula",
"flight call", "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, BirdKind.HighCall,
"Bushman", "Bubulcus",
"CC BY-SA 3.0", "CC BY 3.0",
"https://creativecommons.org/licenses/by-sa/3.0", "https://creativecommons.org/licenses/by/3.0",
"https://commons.wikimedia.org/wiki/File:Bombycilla_garrulus_-_Bohemian_Waxwing_XC132884.ogg", "https://commons.wikimedia.org/wiki/File:Falco_vespertinus.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/transcoded/5/59/Falco_vespertinus.ogg/Falco_vespertinus.ogg.mp3",
"https://upload.wikimedia.org/wikipedia/commons/4/46/Bombycilla_garrulus_-_Bohemian_Waxwing_XC132884.ogg"), "https://upload.wikimedia.org/wikipedia/commons/5/59/Falco_vespertinus.ogg"),
new( new(
"california-quail-xc109825", "warbling-white-eye-ko",
"California Quail", "Warbling White-eye",
"Callipepla californica", "Zosterops japonicus",
"natural calls", "call",
BirdKind.LowCall, BirdKind.HighCall,
"Jonathon Jongsma", "National Institute of Biological Resources",
"CC BY-SA 3.0", "KOGL Type 1",
"https://creativecommons.org/licenses/by-sa/3.0", "http://www.kogl.or.kr/info/licenseType1.do",
"https://commons.wikimedia.org/wiki/File:Callipepla_californica_-_California_Quail_-_XC109825.ogg", "https://commons.wikimedia.org/wiki/File:%EB%8F%99%EB%B0%95%EC%83%88.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/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/3/3c/Callipepla_californica_-_California_Quail_-_XC109825.ogg"), "https://upload.wikimedia.org/wikipedia/commons/e/e7/%EB%8F%99%EB%B0%95%EC%83%88.ogg"),
new( new(
"american-crow-xc115429", "eurasian-wren-ko",
"American Crow", "Eurasian Wren",
"Corvus brachyrhynchos", "Troglodytes troglodytes",
"soft rattling calls", "song",
BirdKind.LowCall, BirdKind.HarmonicSong,
"Jonathon Jongsma", "National Institute of Biological Resources",
"CC BY-SA 3.0", "KOGL Type 1",
"https://creativecommons.org/licenses/by-sa/3.0", "http://www.kogl.or.kr/info/licenseType1.do",
"https://commons.wikimedia.org/wiki/File:Corvus_brachyrhynchos_-_American_Crow_-_XC115429.ogg", "https://commons.wikimedia.org/wiki/File:%EA%B5%B4%EB%9A%9D%EC%83%88.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/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/9/90/Corvus_brachyrhynchos_-_American_Crow_-_XC115429.ogg") "https://upload.wikimedia.org/wikipedia/commons/2/2b/%EA%B5%B4%EB%9A%9D%EC%83%88.ogg")
]; ];
Directory.CreateDirectory(sourceRoot); Directory.CreateDirectory(sourceRoot);
@ -231,7 +243,7 @@ static string Summary(IEnumerable<ResultRow> rows)
var builder = new StringBuilder(); var builder = new StringBuilder();
builder.AppendLine("# Bird Syrinx Golf"); builder.AppendLine("# Bird Syrinx Golf");
builder.AppendLine(); 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();
builder.AppendLine("| id | bird | call | score | logMelCosine | logMelDistance | centroidRatio | candidate |"); builder.AppendLine("| id | bird | call | score | logMelCosine | logMelDistance | centroidRatio | candidate |");
builder.AppendLine("| --- | --- | --- | ---: | ---: | ---: | ---: | --- |"); builder.AppendLine("| --- | --- | --- | ---: | ---: | ---: | ---: | --- |");