Listen kit for the stop gestures: /ata/ /ada/ /aka/ /ala/ /apa/ /aba/ and the --no-burst twins
Predictions and measured figures sit in the hidden titles only; the /l/ title carries the F2 miss (725 Hz against a 1000-1300 design target). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
3ad54b9bb9
commit
83bca175d0
8 changed files with 104 additions and 0 deletions
78
tools/aqua-listen/kits/tract-stops/kit.json
Normal file
78
tools/aqua-listen/kits/tract-stops/kit.json
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"kit": {
|
||||
"id": "tract-stops-1",
|
||||
"title": "Articulatory vocal tract: stops and the lateral",
|
||||
"note": "Short synthetic words from the tract model. Tell us what you hear; there are no wrong answers. Some are pairs: rate both, then say which you prefer."
|
||||
},
|
||||
"clips": [
|
||||
{
|
||||
"id": "stop-t",
|
||||
"file": "ata.wav",
|
||||
"group": "stop",
|
||||
"title": "/ɑtɑ/ at 140 Hz. Measured: closure -24.9 dB re the flanking vowels (/p/ -20.4), burst peak 0.39 of the vowel peak, burst spectral peak 3950 Hz (inside 3.5-7 kHz; CW14 5216), burst only around its own release. PREDICTION: heard as 'ah-tah', a crisp tongue-tip tap-and-release with a sharp click on the release; the twin without the burst loses that click and sounds softer, like a stop with no edge. FALSIFIED if heard as 'ah-kah' or 'ah-pah', or if the burst is not audible against the no-burst twin.",
|
||||
"feel": "'ah-tah': the tongue tip taps behind the teeth between two open vowels",
|
||||
"pair": "stop-t-noburst"
|
||||
},
|
||||
{
|
||||
"id": "stop-t-noburst",
|
||||
"file": "ata_noburst.wav",
|
||||
"group": "stop",
|
||||
"title": "/ɑtɑ/ rendered with --no-burst (plosive release_flow splines dropped), otherwise the same word. Measured: no burst energy by construction (the release_flow splines are dropped); closure and transitions as in the burst render. PREDICTION: still a stop by closure and formant transitions, but soft, with no click at the release. FALSIFIED if it sounds the same as the burst twin.",
|
||||
"feel": "the same word with a gentler, softer release",
|
||||
"pair": "stop-t"
|
||||
},
|
||||
{
|
||||
"id": "stop-d",
|
||||
"file": "ada.wav",
|
||||
"group": "stop",
|
||||
"title": "/ɑdɑ/ at 140 Hz. Measured: voice bar -28.9 dB re the following vowel (/t/ -38.7, /b/ -29.2, /p/ -40.1), burst spectral peak 3950 Hz, same as /t/ (CW14 d 4878), burst peak 0.0603 at the release and none before or after; the 7 consonant splines are identical to /t/'s. PREDICTION: 'ah-dah': a tongue-tip stop with voicing through the closure, a softer release than /t/. FALSIFIED if heard as /t/ or /n/ or /l/, or if no voicing is audible in the closure.",
|
||||
"feel": "'ah-dah': the tongue tip taps behind the teeth, with the voice kept humming",
|
||||
"pair": "stop-d-noburst"
|
||||
},
|
||||
{
|
||||
"id": "stop-d-noburst",
|
||||
"file": "ada_noburst.wav",
|
||||
"group": "stop",
|
||||
"title": "/ɑdɑ/ rendered with --no-burst, otherwise the same word. Measured: voice bar unchanged at the closure; no burst energy. PREDICTION: the voice bar still marks a stop, but the release is smooth. FALSIFIED if it sounds the same as the burst twin.",
|
||||
"feel": "the same word with a gentler, softer release",
|
||||
"pair": "stop-d"
|
||||
},
|
||||
{
|
||||
"id": "stop-k",
|
||||
"file": "aka.wav",
|
||||
"group": "stop",
|
||||
"title": "/ɑkɑ/ at 140 Hz. Measured: burst peak 0.45 of the vowel peak, burst spectral peak 3100 Hz (Chodroff and Wilson 2014: 2868 Hz; /t/ 3950 Hz by the same measure), burst only at its own release; closure -14.9 dB re vowels against /p/ -20.4, so the closure is NOT at or under /p/ (the voicing the voiceless source still carries leaks through it). PREDICTION: 'ah-kah', a back-of-the-tongue stop with a duller, lower burst than /t/; the closure is audibly less empty than in /apa/. FALSIFIED if heard as /t/ or /p/, or if the closure carries a clear hum that makes it sound like /g/.",
|
||||
"feel": "'ah-kah': the back of the tongue lifts to the roof of the mouth between two open vowels",
|
||||
"pair": "stop-k-noburst"
|
||||
},
|
||||
{
|
||||
"id": "stop-k-noburst",
|
||||
"file": "aka_noburst.wav",
|
||||
"group": "stop",
|
||||
"title": "/ɑkɑ/ rendered with --no-burst, otherwise the same word. Measured: no burst energy; closure unchanged from the burst render. PREDICTION: a softer, less distinct stop whose place is carried by the transitions alone. FALSIFIED if it sounds the same as the burst twin, or if the place is lost altogether.",
|
||||
"feel": "the same word with a gentler, softer release",
|
||||
"pair": "stop-k"
|
||||
},
|
||||
{
|
||||
"id": "stop-l",
|
||||
"file": "ala.wav",
|
||||
"group": "lateral",
|
||||
"title": "/ɑlɑ/ at 140 Hz, a lateral with a closed side stub (midline narrowed to 0.06 cm, not closed: the ladder cannot hold parallel side channels). Measured: level -5.0 dB re the flanking vowels, F1 263 Hz (design 250-400: met), F2 725 Hz (design 1000-1300: NOT MET, F2 is about 300 Hz too low), side stub notch 13.4 dB at 2.8 kHz against the same render with the stub shut, no burst. PREDICTION: heard as a liquid between the vowels, possibly dark ('ahl-ah' as in a dark /l/) because F2 is low; may be heard as a nasal or /w/ rather than /l/. FALSIFIED if heard as a plain vowel glide with no consonant, or as a stop.",
|
||||
"feel": "'ah-lah': the tongue tip touches behind the teeth while the sound flows past the sides"
|
||||
},
|
||||
{
|
||||
"id": "stop-p",
|
||||
"file": "apa.wav",
|
||||
"group": "stop",
|
||||
"title": "/ɑpɑ/ at 140 Hz, the labial reference. Measured: closure -20.4 dB re the flanking vowels (-19.9 in the burst-site probe), burst enters at the glottal end (pinned labial burst), /p/ voice bar -40.1 dB. PREDICTION: 'ah-pah', a lip stop; the reference against which /t/ and /k/ are judged. FALSIFIED if heard as /b/ (voiced), or if the lip closure sounds leaky.",
|
||||
"feel": "'ah-pah': the lips close and pop open between two open vowels"
|
||||
},
|
||||
{
|
||||
"id": "stop-b",
|
||||
"file": "aba.wav",
|
||||
"group": "stop",
|
||||
"title": "/ɑbɑ/ at 140 Hz, the voiced labial reference. Measured: voice bar -29.2 dB re the following vowel (/p/ -40.1). PREDICTION: 'ah-bah', lips close with voicing kept through the closure; softer than /p/. FALSIFIED if heard as /p/ or as /m/.",
|
||||
"feel": "'ah-bah': the lips close and open with the voice humming"
|
||||
}
|
||||
]
|
||||
}
|
||||
1
tools/aqua-listen/kits/tract-stops/phones/aba.json
Normal file
1
tools/aqua-listen/kits/tract-stops/phones/aba.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"language": "en-US", "source": "ɑbɑ", "phones": [{"ipa": "ɑ", "stress": "none"}, {"ipa": "b", "stress": "none"}, {"ipa": "ɑ", "stress": "none"}]}
|
||||
1
tools/aqua-listen/kits/tract-stops/phones/ada.json
Normal file
1
tools/aqua-listen/kits/tract-stops/phones/ada.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"language": "en-US", "source": "ɑdɑ", "phones": [{"ipa": "ɑ", "stress": "none"}, {"ipa": "d", "stress": "none"}, {"ipa": "ɑ", "stress": "none"}]}
|
||||
1
tools/aqua-listen/kits/tract-stops/phones/aka.json
Normal file
1
tools/aqua-listen/kits/tract-stops/phones/aka.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"language": "en-US", "source": "ɑkɑ", "phones": [{"ipa": "ɑ", "stress": "none"}, {"ipa": "k", "stress": "none"}, {"ipa": "ɑ", "stress": "none"}]}
|
||||
1
tools/aqua-listen/kits/tract-stops/phones/ala.json
Normal file
1
tools/aqua-listen/kits/tract-stops/phones/ala.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"language": "en-US", "source": "ɑlɑ", "phones": [{"ipa": "ɑ", "stress": "none"}, {"ipa": "l", "stress": "none"}, {"ipa": "ɑ", "stress": "none"}]}
|
||||
1
tools/aqua-listen/kits/tract-stops/phones/apa.json
Normal file
1
tools/aqua-listen/kits/tract-stops/phones/apa.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"language": "en-US", "source": "ɑpɑ", "phones": [{"ipa": "ɑ", "stress": "none"}, {"ipa": "p", "stress": "none"}, {"ipa": "ɑ", "stress": "none"}]}
|
||||
1
tools/aqua-listen/kits/tract-stops/phones/ata.json
Normal file
1
tools/aqua-listen/kits/tract-stops/phones/ata.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"language": "en-US", "source": "ɑtɑ", "phones": [{"ipa": "ɑ", "stress": "none"}, {"ipa": "t", "stress": "none"}, {"ipa": "ɑ", "stress": "none"}]}
|
||||
20
tools/aqua-listen/kits/tract-stops/render.sh
Executable file
20
tools/aqua-listen/kits/tract-stops/render.sh
Executable file
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
# Renders the tract-stops kit (WordRender, 140 Hz, 48 kHz mono 16-bit): /apa aba ata ada aka ala/ (the vowel is /ɑ/) and the
|
||||
# --no-burst twins of ata ada aka, whose release_flow splines are dropped so a pair isolates the burst.
|
||||
# render.sh <repo-root> <out-root> [jobs]
|
||||
# Needs CULTLIB_ROOT at the admitted CultLib revision and AQUASYNTH_FAUST_HOME. Under load each render is minutes (a Faust compile).
|
||||
# <out-root>/out/<w>/<w>.wav <out-root>/outnb/<w>/<w>.wav (--no-burst) <out-root>/clips/*.wav the files kit.json names
|
||||
# Build the page: node tools/aqua-listen/build.mjs --manifest tools/aqua-listen/kits/tract-stops/kit.json --clips <out-root>/clips --out <out-root>/dist
|
||||
set -eu
|
||||
REPO=$(cd "$1" && pwd); OUT=$2; JOBS=${3:-4}; HERE=$REPO/tools/aqua-listen/kits/tract-stops
|
||||
dotnet build "$REPO/tools/WordRender" -c Release -v q -o "$OUT/wr" | grep -E "rror\(s\)"
|
||||
mkdir -p "$OUT/out" "$OUT/outnb" "$OUT/clips"
|
||||
job() { n=$1; o=$2; f=$3; shift 3; dotnet "$OUT/wr/WordRender.dll" "$OUT/$o/$n" "$n" "$f" "$HERE/phones/$n.json" "$@" > "$OUT/$o/$n.log" 2>&1 && echo "$n $o ok" || echo "$n $o FAILED (see $OUT/$o/$n.log)"; }
|
||||
export -f job; export OUT HERE
|
||||
{
|
||||
for n in ata ada aka ala apa aba; do echo "$n out 140"; done
|
||||
for n in ata ada aka; do echo "$n outnb 140 --no-burst"; done
|
||||
} | xargs -P "$JOBS" -L1 bash -c 'job "$@"' _
|
||||
C=$OUT/clips
|
||||
for n in ata ada aka ala apa aba; do cp "$OUT/out/$n/$n.wav" "$C/$n.wav"; done
|
||||
for n in ata ada aka; do cp "$OUT/outnb/$n/$n.wav" "$C/${n}_noburst.wav"; done
|
||||
Loading…
Reference in a new issue