Persist physical voice research packet
This commit is contained in:
parent
58de311fc1
commit
bb97866e5f
11 changed files with 6745 additions and 1 deletions
|
|
@ -1,5 +1,11 @@
|
|||
# Physical Voice Modeling Research Pass
|
||||
|
||||
Canonical research packet: `research/physical-voice-modeling/`.
|
||||
|
||||
That folder contains downloaded/captured sources where possible, a source
|
||||
manifest with hashes, and the distilled implementation summary. This document
|
||||
remains the docs-facing copy of the same architectural direction.
|
||||
|
||||
## Objective
|
||||
|
||||
Generalize AquaSynth voice modeling beyond Pink Trombone. The target is a
|
||||
|
|
@ -190,4 +196,3 @@ Add model records before more audio golf:
|
|||
Then lower the current PT fixtures through those records as one larynx-shaped
|
||||
configuration. A syrinx should be expressible by adding two source ports and a
|
||||
bronchial/tracheal branch topology, not by forking the tract voice.
|
||||
|
||||
|
|
|
|||
13
research/physical-voice-modeling/README.md
Normal file
13
research/physical-voice-modeling/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Physical Voice Modeling Research Packet
|
||||
|
||||
This folder preserves the source material and distilled direction for the next
|
||||
AquaSynth voice architecture pass.
|
||||
|
||||
- `SUMMARY.md`: distilled implementation summary.
|
||||
- `SOURCES.md`: source manifest, URLs, notes, and hashes.
|
||||
- `sources/`: downloaded/captured source files where available.
|
||||
|
||||
The working conclusion: model voices as acoustic port networks with continuous
|
||||
morphology, source ports, branch/radiation ports, and wave-clock policies. Pink
|
||||
Trombone is a larynx-shaped reference configuration, not the architecture.
|
||||
|
||||
39
research/physical-voice-modeling/SOURCES.md
Normal file
39
research/physical-voice-modeling/SOURCES.md
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Physical Voice Modeling Sources
|
||||
|
||||
Downloaded or captured on 2026-05-26.
|
||||
|
||||
## Local Source Files
|
||||
|
||||
| File | Source | Notes | SHA-256 |
|
||||
| --- | --- | --- | --- |
|
||||
| `sources/faust-2.85.5-delays.lib` | Local Faust 2.85.5 install, `C:\Program Files\Faust\share\faust\delays.lib` | Fractional delay implementations: linear, Lagrange, Thiran/allpass, variable delay. | `3089afb6654e6a37105d910f8b58f5c3bc4384acd57c5644227d69cb62486a39` |
|
||||
| `sources/faust-2.85.5-physmodels.lib` | Local Faust 2.85.5 install, `C:\Program Files\Faust\share\faust\physmodels.lib` | Physical modeling primitives: bidirectional chains, length conversion, waveguides, tubes, terminations, wind/string models. | `4eaa76825372db0f79d0863912b46b21be73607dc99ac63dca3c` |
|
||||
| `sources/mullen-howard-murphy-2006-waveguide-vocal-tract.pdf` | White Rose Research Online, `https://eprints.whiterose.ac.uk/id/document/715711` | Open PDF: waveguide vocal tract acoustics and increased-dimensionality discussion. | `cdb98482ea5dd2ac153e5097caa743f3691de0ddb747b0ae40466c2932ea106b` |
|
||||
| `sources/mathur-story-rodriguez-2006-fractional-elongation.html` | Arizona Board of Regents page, `https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/` | Metadata/abstract page for half-sample vocal-tract model with fractional-delay segment elongation. | `5ff7d56bb888b7dc7c7f402d38c51c31552edd0345ee7d5a972e9a784e6b236c` |
|
||||
| `sources/frontiers-2023-ddsp-review.html` | Frontiers, `https://www.frontiersin.org/journals/signal-processing/articles/10.3389/frsip.2023.1284100/full` | Review article covering differentiable DSP for music/speech, including differentiable source-filter and Pink Trombone-style articulatory estimation. | `6f4f8cdfb5741df8a5e5be41304914cdbe887a8d5345161a8a63b8842fa54678` |
|
||||
|
||||
## Sources Not Fully Downloaded
|
||||
|
||||
- Mathur, Story, Rodriguez, "Vocal-tract modeling: Fractional elongation of
|
||||
segment lengths in a waveguide model with half-sample delays", IEEE TASLP
|
||||
2006, DOI `10.1109/TSA.2005.858550`.
|
||||
The local file is the accessible metadata/abstract page, not the full IEEE
|
||||
article PDF.
|
||||
|
||||
## Key Local Search Anchors
|
||||
|
||||
Useful terms inside the downloaded Faust libraries:
|
||||
|
||||
- `pm.l2s`
|
||||
- `pm.chain`
|
||||
- `pm.waveguideUd`
|
||||
- `pm.waveguideFd`
|
||||
- `pm.waveguideFd2`
|
||||
- `pm.waveguideFd4`
|
||||
- `de.fdelay`
|
||||
- `de.fdelayltv`
|
||||
- `de.fdelay1a`
|
||||
- `de.fdelay2a`
|
||||
- `de.fdelay3a`
|
||||
- `de.fdelay4a`
|
||||
|
||||
85
research/physical-voice-modeling/SUMMARY.md
Normal file
85
research/physical-voice-modeling/SUMMARY.md
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
# Physical Voice Modeling Research Summary
|
||||
|
||||
## Objective
|
||||
|
||||
Build AquaSynth voice synthesis around reusable physical-acoustic primitives,
|
||||
not a Pink Trombone-shaped module. The same language should express a human
|
||||
larynx, a bird-like syrinx, and alien anatomies by changing source ports,
|
||||
branches, geometry, and radiation, not by adding special-case engines.
|
||||
|
||||
## Distilled Model
|
||||
|
||||
The right abstraction is an acoustic port network:
|
||||
|
||||
- `AcousticMorphology` owns continuous geometry: named paths, lengths,
|
||||
area/diameter curves, branch locations, and radiation openings.
|
||||
- `AcousticSourcePort` owns excitation at a physical location: glottal folds,
|
||||
paired syrinx labia, reed-like oscillators, turbulence jets, click cavities,
|
||||
or synthetic/alien pressure sources.
|
||||
- `AcousticBranch` owns topology and coupling: nasal coupling, bronchial split,
|
||||
lateral channels, side vents, secondary resonators, and alien branch graphs.
|
||||
- `AcousticRadiationPort` owns boundary behavior: lips, nostrils, beak exits,
|
||||
membranes, vents, or other apertures.
|
||||
- `WaveClockPolicy` owns physical length to delay conversion and the lowering
|
||||
strategy: unit grid, half-sample grid, fractional delay, and smoothing.
|
||||
- Differentiable controls should be normalized physical controls: path position,
|
||||
area/opening, pressure, tension, coupling, loss, and source balance. Raw
|
||||
emitted section indices are a backend detail.
|
||||
|
||||
## Faust Implications
|
||||
|
||||
Faust already has useful primitives:
|
||||
|
||||
- `physmodels.lib`
|
||||
- `pm.l2s`: length in meters to samples using sample rate and speed of sound.
|
||||
- `pm.chain`: bidirectional physical-model chain composition.
|
||||
- `pm.waveguideUd`, `pm.waveguideFd`, `pm.waveguideFd2`, `pm.waveguideFd4`:
|
||||
unit and fractional bidirectional waveguides.
|
||||
- `delays.lib`
|
||||
- `de.fdelay`: linear fractional delay.
|
||||
- `de.fdelayltv` and `de.fdelay1..5`: Lagrange fractional delays.
|
||||
- `de.fdelay1a..4a`: Thiran/allpass delays, useful when magnitude-flat
|
||||
interpolation matters and delay constraints are respected.
|
||||
|
||||
The clean Aqua approach is hybrid:
|
||||
|
||||
- Use Faust delay/waveguide primitives for tube segments where they match the
|
||||
required delay behavior.
|
||||
- Continue generating custom scattering equations where Aqua needs live area
|
||||
controls, multi-port branch junctions, inspectable parameter paths, and
|
||||
training-friendly graph structure.
|
||||
- Avoid exposing `substeps` as a musical primitive. It is a historical clue
|
||||
about PT's half-sample wave clock, not the owner of voice physics.
|
||||
|
||||
## Implementation Direction
|
||||
|
||||
Next model records should likely be:
|
||||
|
||||
- `AcousticPath`: name, length, area curve, wave speed, loss.
|
||||
- `AcousticSourcePort`: path, normalized position, source type, pressure,
|
||||
tension/opening/noise controls.
|
||||
- `AcousticBranch`: source path/position, target path/position, opening,
|
||||
coupling, passivity constraints.
|
||||
- `AcousticRadiationPort`: path/position, opening, reflection, radiation
|
||||
filter/loss.
|
||||
- `WaveClockPolicy`: delay strategy, fractional-delay order, max delay, and
|
||||
smoothing mode.
|
||||
|
||||
Pink Trombone then becomes one larynx-shaped preset over these primitives:
|
||||
one glottal source port, one oral path, one nasal branch, and two radiation
|
||||
ports. A syrinx becomes two source ports plus bronchial/tracheal topology. Alien
|
||||
voices become more ports, branches, nonlinear junctions, and radiation surfaces.
|
||||
|
||||
## Open Questions
|
||||
|
||||
- Whether the primary training renderer should be the full waveguide network or
|
||||
a differentiable response proxy periodically checked against waveguide audio.
|
||||
- Which fractional-delay family is best for realtime moving morphology:
|
||||
first-order Thiran/allpass for magnitude preservation, Lagrange for FIR-like
|
||||
behavior, or crossfaded variable delay for fast geometry motion.
|
||||
- How to constrain branch/source/radiation controls so learned parameters remain
|
||||
passive or bounded enough to avoid explosive acoustic networks.
|
||||
- How to expose syrinx-specific controls without hardcoding "bird mode":
|
||||
paired source balance, independent tension/pressure, bronchial coupling, and
|
||||
shared tract loading seem like source-port/topology controls.
|
||||
|
||||
564
research/physical-voice-modeling/sources/faust-2.85.5-delays.lib
Normal file
564
research/physical-voice-modeling/sources/faust-2.85.5-delays.lib
Normal file
|
|
@ -0,0 +1,564 @@
|
|||
//################################ delays.lib ##########################################
|
||||
// Delays library. Its official prefix is `de`.
|
||||
//
|
||||
// This library provides reusable building blocks for delay-based processing:
|
||||
// single and multi-tap delays, fractional delays and utilities for echo and spatial effects.
|
||||
//
|
||||
// The Delays library is organized into 4 sections:
|
||||
//
|
||||
// * [Basic Delay Functions](#basic-delay-functions)
|
||||
// * [Lagrange Interpolation](#lagrange-interpolation)
|
||||
// * [Thiran Allpass Interpolation](#thiran-allpass-interpolation)
|
||||
// * [Others](#others)
|
||||
//
|
||||
// #### References
|
||||
//
|
||||
// * <https://github.com/grame-cncm/faustlibraries/blob/master/delays.lib>
|
||||
//########################################################################################
|
||||
|
||||
/************************************************************************
|
||||
************************************************************************
|
||||
FAUST library file
|
||||
Copyright (C) 2003-2016 GRAME, Centre National de Creation Musicale
|
||||
----------------------------------------------------------------------
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
EXCEPTION TO THE LGPL LICENSE : As a special exception, you may create a
|
||||
larger FAUST program which directly or indirectly imports this library
|
||||
file and still distribute the compiled code generated by the FAUST
|
||||
compiler, or a modified version of this compiled code, under your own
|
||||
copyright and license. This EXCEPTION TO THE LGPL LICENSE explicitly
|
||||
grants you the right to freely choose the license for the resulting
|
||||
compiled code. In particular the resulting compiled code has no obligation
|
||||
to be LGPL or GPL. For example you are free to choose a commercial or
|
||||
closed source license or any other license if you decide so.
|
||||
************************************************************************
|
||||
************************************************************************/
|
||||
|
||||
ma = library("maths.lib");
|
||||
ba = library("basics.lib");
|
||||
si = library("signals.lib");
|
||||
fi = library("filters.lib");
|
||||
|
||||
declare name "Faust Delay Library";
|
||||
declare version "1.2.0";
|
||||
|
||||
//==================================Basic Delay Functions=================================
|
||||
//========================================================================================
|
||||
|
||||
//-------`(de.)delay`----------
|
||||
// Simple `d` samples delay where `n` is the maximum delay length as a number of
|
||||
// samples. Unlike the `@` delay operator, here the delay signal `d` is explicitly
|
||||
// bounded to the interval [0..n]. The consequence is that delay will compile even
|
||||
// if the interval of d can't be computed by the compiler.
|
||||
// `delay` is a standard Faust function.
|
||||
//
|
||||
// #### Usage
|
||||
//
|
||||
// ```
|
||||
// _ : delay(n,d) : _
|
||||
// ```
|
||||
//
|
||||
// Where:
|
||||
//
|
||||
// * `n`: the max delay length in samples
|
||||
// * `d`: the delay length in samples (integer)
|
||||
|
||||
// #### Test
|
||||
// ```
|
||||
// de = library("delays.lib");
|
||||
// os = library("oscillators.lib");
|
||||
// delay_test = os.osc(440) : de.delay(44100, 22050);
|
||||
// ```
|
||||
//
|
||||
// TODO: add MBH np2
|
||||
//-----------------------------
|
||||
delay(n,d,x) = x @ min(n, max(0,d));
|
||||
|
||||
|
||||
//-------`(de.)fdelay`----------
|
||||
// Simple `d` samples fractional delay based on 2 interpolated delay lines where `n` is
|
||||
// the maximum delay length as a number of samples.
|
||||
//
|
||||
// `fdelay` is a standard Faust function.
|
||||
//
|
||||
// #### Usage
|
||||
//
|
||||
// ```
|
||||
// _ : fdelay(n,d) : _
|
||||
// ```
|
||||
//
|
||||
// Where:
|
||||
//
|
||||
// * `n`: the max delay length in samples
|
||||
// * `d`: the delay length in samples (float)
|
||||
//
|
||||
// #### Test
|
||||
// ```
|
||||
// de = library("delays.lib");
|
||||
// os = library("oscillators.lib");
|
||||
// fdelay_test = os.osc(440) : de.fdelay(44100, 22050.5);
|
||||
// ```
|
||||
//-----------------------------
|
||||
fdelay(n,d,x) = delay(n+1,int(d),x)*(1 - ma.frac(d)) + delay(n+1,int(d)+1,x)*ma.frac(d);
|
||||
|
||||
|
||||
//--------------------------`(de.)sdelay`----------------------------
|
||||
// s(mooth)delay: a mono delay that doesn't click and doesn't
|
||||
// transpose when the delay time is changed.
|
||||
//
|
||||
// #### Usage
|
||||
//
|
||||
// ```
|
||||
// _ : sdelay(n,it,d) : _
|
||||
// ```
|
||||
//
|
||||
// Where:
|
||||
//
|
||||
// * `n`: the max delay length in samples
|
||||
// * `it`: interpolation time (in samples), for example 1024
|
||||
// * `d`: the delay length in samples (float)
|
||||
//
|
||||
// #### Test
|
||||
// ```
|
||||
// de = library("delays.lib");
|
||||
// os = library("oscillators.lib");
|
||||
// sdelay_test = os.osc(440) : de.sdelay(44100, 1024, 22050.5);
|
||||
// ```
|
||||
//-----------------------------
|
||||
sdelay(n, it, d) = ctrl(it,d),_ : ddi(n)
|
||||
with {
|
||||
// ddi(n,i,d0,d1)
|
||||
// DDI (Double Delay with Interpolation) : the input signal is sent to two
|
||||
// delay lines. The outputs of these delay lines are crossfaded with
|
||||
// an interpolation stage. By acting on this interpolation value one
|
||||
// can move smoothly from one delay to another. When <i> is 0 we can
|
||||
// freely change the delay time <d1> of line 1, when it is 1 we can freely change
|
||||
// the delay time <d0> of line 0.
|
||||
//
|
||||
// <n> = maximal delay in samples
|
||||
// <i> = interpolation value between 0 and 1 used to crossfade the outputs of the
|
||||
// two delay lines (0.0: first delay line, 1.0: second delay line)
|
||||
// <d0> = delay time of delay line 0 in samples between 0 and <N>-1
|
||||
// <d1> = delay time of delay line 1 in samples between 0 and <N>-1
|
||||
// < > = the input signal we want to delay
|
||||
ddi(n, i, d0, d1) = _ <: delay(n,d0), delay(n,d1) : si.interpolate(i);
|
||||
|
||||
// ctrl(it,d)
|
||||
// Control logic for a Double Delay with Interpolation according to two
|
||||
//
|
||||
// USAGE : ctrl(it,d)
|
||||
// where :
|
||||
// <it> an interpolation time (in samples, for example 256)
|
||||
// <d> a delay time (in samples)
|
||||
//
|
||||
// ctrl produces 3 outputs : an interpolation value <i> and two delay
|
||||
// times <d0> and <d1>. These signals are used to control a ddi (Double Delay with Interpolation).
|
||||
// The principle is to detect changes in the input delay time d, then to
|
||||
// change the delay time of the delay line currently unused and then by a
|
||||
// smooth crossfade to remove the first delay line and activate the second one.
|
||||
//
|
||||
// The control logic has an internal state controlled by 4 elements
|
||||
// <v> : the interpolation variation (0, 1/it, -1/it)
|
||||
// <i> : the interpolation value (between 0 and 1)
|
||||
// <d0>: the delay time of line 0
|
||||
// <d1>: the delay time of line 1
|
||||
//
|
||||
// Please note that the last stage (!,_,_,_) cut <v> because it is only
|
||||
// used internally.
|
||||
ctrl(it, d) = \(v,ip,d0,d1).((nv, nip, nd0, nd1)
|
||||
with {
|
||||
// interpolation variation
|
||||
nv = ba.if (v!=0.0, // if variation we are interpolating
|
||||
ba.if ((ip>0.0) & (ip<1.0), v, 0), // should we continue or not ?
|
||||
ba.if ((ip==0.0) & (d!=d0), 1.0/it, // if true xfade from dl0 to dl1
|
||||
ba.if ((ip==1.0) & (d!=d1), -1.0/it, // if true xfade from dl1 to dl0
|
||||
0))); // nothing to change
|
||||
// interpolation value
|
||||
nip = ip+nv : min(1.0) : max(0.0);
|
||||
|
||||
// update delay time of line 0 if needed
|
||||
nd0 = ba.if ((ip >= 1.0) & (d1!=d), d, d0);
|
||||
|
||||
// update delay time of line 1 if needed
|
||||
nd1 = ba.if ((ip <= 0.0) & (d0!=d), d, d1);
|
||||
}) ~ (_,_,_,_) : (!,_,_,_);
|
||||
};
|
||||
|
||||
|
||||
//------------------`(de.)prime_power_delays`----------------
|
||||
// Prime Power Delay Line Lengths.
|
||||
//
|
||||
// #### Usage
|
||||
//
|
||||
// ```
|
||||
// si.bus(N) : prime_power_delays(N,pathmin,pathmax) : si.bus(N);
|
||||
// ```
|
||||
//
|
||||
// Where:
|
||||
//
|
||||
// * `N`: positive integer up to 16 (for higher powers of 2, extend 'primes' array below)
|
||||
// * `pathmin`: minimum acoustic ray length in the reverberator (in meters)
|
||||
// * `pathmax`: maximum acoustic ray length (meters) - think "room size"
|
||||
//
|
||||
// #### Test
|
||||
// ```
|
||||
// de = library("delays.lib");
|
||||
// prime_power_delays_test = de.prime_power_delays(4, 1, 10);
|
||||
// ```
|
||||
//
|
||||
// #### References
|
||||
//
|
||||
// * <https://ccrma.stanford.edu/~jos/pasp/Prime_Power_Delay_Line.html>
|
||||
//------------------------------------------------------------
|
||||
declare prime_power_delays author "Julius O. Smith III";
|
||||
|
||||
prime_power_delays(N,pathmin,pathmax) = par(i,N,delayvals(i)) with {
|
||||
Np = 16;
|
||||
primes = 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53;
|
||||
prime(n) = primes : ba.selector(n,Np); // math.lib
|
||||
|
||||
// Prime Power Bounds [matlab: floor(log(maxdel)./log(primes(53)))]
|
||||
maxdel = 8192; // more than 63 meters at 44100 samples/sec & 343 m/s
|
||||
ppbs = 13,8,5,4, 3,3,3,3, 2,2,2,2, 2,2,2,2; // 8192 is enough for all
|
||||
ppb(i) = ba.take(i+1,ppbs);
|
||||
|
||||
// Approximate desired delay-line lengths using powers of distinct primes:
|
||||
c = 343; // soundspeed in m/s at 20 degrees C for dry air
|
||||
dmin = ma.SR*pathmin/c;
|
||||
dmax = ma.SR*pathmax/c;
|
||||
dl(i) = dmin * (dmax/dmin)^(i/float(N-1)); // desired delay in samples
|
||||
ppwr(i) = floor(0.5+log(dl(i))/log(prime(i))); // best prime power
|
||||
delayvals(i) = prime(i)^ppwr(i); // each delay a power of a distinct prime
|
||||
};
|
||||
|
||||
|
||||
//===============================Lagrange Interpolation===================================
|
||||
//========================================================================================
|
||||
|
||||
//----------------------`(de.)fdelaylti` and `(de.)fdelayltv`-------------------------
|
||||
// Fractional delay line using Lagrange interpolation.
|
||||
//
|
||||
// #### Usage
|
||||
//
|
||||
// ```
|
||||
// _ : fdelaylt[i|v](N, n, d) : _
|
||||
// ```
|
||||
//
|
||||
// Where:
|
||||
//
|
||||
// * `N=1,2,3,...` is the order of the Lagrange interpolation polynomial (constant numerical expression)
|
||||
// * `n`: the max delay length in samples
|
||||
// * `d`: the delay length in samples
|
||||
//
|
||||
// `fdelaylti` is most efficient, but designed for constant/slowly-varying delay.
|
||||
// `fdelayltv` is more expensive and more robust when the delay varies rapidly.
|
||||
//
|
||||
// Note: the requested delay should not be less than `(N-1)/2`.
|
||||
//
|
||||
// #### Test
|
||||
// ```
|
||||
// de = library("delays.lib");
|
||||
// os = library("oscillators.lib");
|
||||
// fdelaylti_test = os.osc(440) : de.fdelaylti(3, 44100, 22050.5);
|
||||
// ```
|
||||
//
|
||||
// #### References
|
||||
//
|
||||
// * <https://ccrma.stanford.edu/~jos/pasp/Lagrange_Interpolation.html>
|
||||
// * [Fixed-delay case](https://ccrma.stanford.edu/~jos/Interpolation/Efficient_Time_Invariant_Lagrange_Interpolation.html)
|
||||
// * [Variable-delay case](https://ccrma.stanford.edu/~jos/Interpolation/Time_Varying_Lagrange_Interpolation.html)
|
||||
// * Timo I. Laakso et al., "Splitting the Unit Delay - Tools for Fractional Delay Filter Design", IEEE Signal Processing Magazine, vol. 13, no. 1, pp. 30-60, Jan 1996.
|
||||
// * Philippe Depalle and Stephan Tassart, "Fractional Delay Lines using Lagrange Interpolators", ICMC Proceedings, pp. 341-343, 1996.
|
||||
//------------------------------------------------------------
|
||||
declare fdelaylti author "Julius O. Smith III";
|
||||
|
||||
fdelaylti(N,n,d,x) = delay(n,id,x) <: seq(i,N,section(i)) : !,_
|
||||
with {
|
||||
o = (N-1.00001)/2; // offset to ~center FIR interpolator
|
||||
dmo = d - o; // assumed nonnegative [d > (N-1)/2]
|
||||
id = int(dmo);
|
||||
fd = o + ma.frac(dmo);
|
||||
section(i,x,y) = (x-x') * c(i) <: _,+(y);
|
||||
c(i) = (i - fd)/(i+1);
|
||||
};
|
||||
|
||||
declare fdelayltv author "Julius O. Smith III";
|
||||
|
||||
fdelayltv(N,n,d,x) = sum(i, N+1, delay(n,id+i,x) * h(N,fd,i))
|
||||
with {
|
||||
o = (N-1.00001)/2; // ~center FIR interpolator
|
||||
dmo = d - o; // assumed nonnegative [d > (N-1)/2]
|
||||
id = int(dmo);
|
||||
fd = o + ma.frac(dmo);
|
||||
h(N,d,n) = facs1(N,d,n) * facs2(N,d,n);
|
||||
facs1(N,d,n) = select2(n,1,prod(k,max(1,n),select2(k<n,1,fac(d,n,k))));
|
||||
facs2(N,d,n) = select2(n<N,1,prod(l,max(1,N-n),fac(d,n,l+n+1)));
|
||||
fac(d,n,k) = (d-k)/((n-k)+(n==k));
|
||||
// Explicit formula for Lagrange interpolation coefficients:
|
||||
// h_d(n) = \prod_{\stackrel{k=0}{k\neq n}}^N \frac{d-k}{n-k}, n=0:N
|
||||
};
|
||||
|
||||
//------------------`(de.)fdelay[N]`----------------------------
|
||||
// For convenience, `fdelay1`, `fdelay2`, `fdelay3`, `fdelay4`, `fdelay5`
|
||||
// are also available where `N` is the order of the interpolation, built using `fdelayltv`.
|
||||
//------------------------------------------------------------
|
||||
declare fdelay1 author "Julius O. Smith III";
|
||||
declare fdelay2 author "Julius O. Smith III";
|
||||
declare fdelay3 author "Julius O. Smith III";
|
||||
declare fdelay4 author "Julius O. Smith III";
|
||||
declare fdelay5 author "Julius O. Smith III";
|
||||
|
||||
fdelay1 = fdelayltv(1);
|
||||
fdelay2 = fdelayltv(2);
|
||||
fdelay3 = fdelayltv(3);
|
||||
fdelay4 = fdelayltv(4);
|
||||
fdelay5 = fdelayltv(5);
|
||||
|
||||
//==============================Thiran Allpass Interpolation==============================
|
||||
// Thiran Allpass Interpolation.
|
||||
//
|
||||
// #### References
|
||||
//
|
||||
// * <https://ccrma.stanford.edu/~jos/pasp/Thiran_Allpass_Interpolators.html>
|
||||
//========================================================================================
|
||||
|
||||
//----------------`(de.)fdelay[N]a`-------------
|
||||
// Delay lines interpolated using Thiran allpass interpolation.
|
||||
//
|
||||
// #### Usage
|
||||
//
|
||||
// ```
|
||||
// _ : fdelay[N]a(n, d) : _
|
||||
// ```
|
||||
//
|
||||
// (exactly like `fdelay`)
|
||||
//
|
||||
// Where:
|
||||
//
|
||||
// * `N=1,2,3, or 4` is the order of the Thiran interpolation filter (constant numerical expression),
|
||||
// and the delay argument is at least `N-1/2`. First-order: `d` at least 0.5, second-order: `d` at least 1.5,
|
||||
// third-order: `d` at least 2.5, fourth-order: `d` at least 3.5.
|
||||
// * `n`: the max delay length in samples
|
||||
// * `d`: the delay length in samples
|
||||
//
|
||||
// #### Test
|
||||
// ```
|
||||
// de = library("delays.lib");
|
||||
// os = library("oscillators.lib");
|
||||
// fdelay2a_test = os.osc(440) : de.fdelay2a(44100, 22050.5);
|
||||
// ```
|
||||
//
|
||||
// #### Note
|
||||
//
|
||||
// The interpolated delay should not be less than `N-1/2`.
|
||||
// (The allpass delay ranges from `N-1/2` to `N+1/2`).
|
||||
// This constraint can be alleviated by altering the code,
|
||||
// but be aware that allpass filters approach zero delay
|
||||
// by means of pole-zero cancellations.
|
||||
//
|
||||
// Delay arguments too small will produce an UNSTABLE allpass!
|
||||
//
|
||||
// Because allpass interpolation is recursive, it is not as robust
|
||||
// as Lagrange interpolation under time-varying conditions
|
||||
// (you may hear clicks when changing the delay rapidly).
|
||||
//
|
||||
//------------------------------------------------------------
|
||||
declare fdelay1a author "Julius O. Smith III";
|
||||
|
||||
fdelay1a(n,d,x) = delay(n,id,x) : fi.tf1(eta,1,eta)
|
||||
with {
|
||||
o = 0.49999; // offset to make life easy for allpass
|
||||
dmo = d - o; // assumed nonnegative
|
||||
id = int(dmo);
|
||||
fd = o + ma.frac(dmo);
|
||||
eta = (1-fd)/(1+fd); // allpass coefficient
|
||||
};
|
||||
|
||||
declare fdelay2a author "Julius O. Smith III";
|
||||
fdelay2a(n,d,x) = delay(n,id,x) : fi.tf2(a2,a1,1,a1,a2)
|
||||
with {
|
||||
o = 1.49999;
|
||||
dmo = d - o; // delay range is [order-1/2, order+1/2]
|
||||
id = int(dmo);
|
||||
fd = o + ma.frac(dmo);
|
||||
a1o2 = (2-fd)/(1+fd); // share some terms (the compiler does this anyway)
|
||||
a1 = 2*a1o2;
|
||||
a2 = a1o2*(1-fd)/(2+fd);
|
||||
};
|
||||
|
||||
declare fdelay3a author "Julius O. Smith III";
|
||||
fdelay3a(n,d,x) = delay(n,id,x) : fi.iir((a3,a2,a1,1),(a1,a2,a3))
|
||||
with {
|
||||
o = 2.49999;
|
||||
dmo = d - o;
|
||||
id = int(dmo);
|
||||
fd = o + ma.frac(dmo);
|
||||
a1o3 = (3-fd)/(1+fd);
|
||||
a2o3 = a1o3*(2-fd)/(2+fd);
|
||||
a1 = 3*a1o3;
|
||||
a2 = 3*a2o3;
|
||||
a3 = a2o3*(1-fd)/(3+fd);
|
||||
};
|
||||
|
||||
declare fdelay4a author "Julius O. Smith III";
|
||||
fdelay4a(n,d,x) = delay(n,id,x) : fi.iir((a4,a3,a2,a1,1),(a1,a2,a3,a4))
|
||||
with {
|
||||
o = 3.49999;
|
||||
dmo = d - o;
|
||||
id = int(dmo);
|
||||
fd = o + ma.frac(dmo);
|
||||
a1o4 = (4-fd)/(1+fd);
|
||||
a2o6 = a1o4*(3-fd)/(2+fd);
|
||||
a3o4 = a2o6*(2-fd)/(3+fd);
|
||||
a1 = 4*a1o4;
|
||||
a2 = 6*a2o6;
|
||||
a3 = 4*a3o4;
|
||||
a4 = a3o4*(1-fd)/(4+fd);
|
||||
};
|
||||
|
||||
//==================================Others================================================
|
||||
//========================================================================================
|
||||
|
||||
//----------------`(de.)multiTapSincDelay`-------------
|
||||
//
|
||||
// Variable delay line using multi-tap sinc interpolation.
|
||||
//
|
||||
// This function implements a continuously variable delay line by superposing (2K+2) auxiliary delayed signals
|
||||
// whose positions and gains are determined by a sinc-based interpolation method. It extends the traditional
|
||||
// crossfade delay technique to significantly reduce spectral coloration artifacts, which are problematic in
|
||||
// applications like Wave Field Synthesis (WFS) and auralization.
|
||||
//
|
||||
// Operation:
|
||||
//
|
||||
// - If tau1 and tau2 are very close (|tau2 - tau1| ≈ 0), a simple fixed fractional delay is applied
|
||||
// - Otherwise, a variable delay is synthesized by:
|
||||
//
|
||||
// - Computing (2K+2) taps symmetrically distributed around tau1 and tau2
|
||||
// - Applying sinc-based weighting to each tap, based on its offset from the target interpolated delay tau
|
||||
// - Summing all the weighted taps to produce the output
|
||||
//
|
||||
// Features:
|
||||
//
|
||||
// - Smooth delay variation without introducing Doppler pitch shifts
|
||||
// - Significant reduction of comb-filter coloration compared to classical crossfading
|
||||
// - Switching between fixed and variable delay modes to ensure stability
|
||||
//
|
||||
// #### Usage
|
||||
//
|
||||
// ```
|
||||
// _ : multiTapSincDelay(K, MaxDelay, tau1, tau2, alpha) : _
|
||||
// ```
|
||||
//
|
||||
// Where:
|
||||
//
|
||||
// * `K (integer)`: number of auxiliary tap pairs (a constant numerical expression). Total number of taps = 2*K + 2
|
||||
// * `MaxDelay`: maximum allowable delay in samples (buffer size)
|
||||
// * `tau1`: initial delay in samples (can be fractional)
|
||||
// * `tau2`: target delay in samples (can be fractional)
|
||||
// * `alpha`: interpolation factor between tau1 and tau2 (in [0,1] with 0 = tau1, 1 = tau2)
|
||||
//
|
||||
// #### Test
|
||||
// ```
|
||||
// de = library("delays.lib");
|
||||
// os = library("oscillators.lib");
|
||||
// multiTapSincDelay_test = os.osc(440) : de.multiTapSincDelay(2, 4096, 1024.0, 1536.0, 0.5);
|
||||
// ```
|
||||
//
|
||||
// #### References
|
||||
//
|
||||
// T. Carpentier, "Implementation of a continuously variable delay line by crossfading between several tap delays", 2024: <https://hal.science/hal-04646939>
|
||||
//------------------------------------------------------------
|
||||
multiTapSincDelay(K, MaxDelay, tau1, tau2, alpha, input) = output with {
|
||||
|
||||
// Total number of taps used in the sum (2K + 2).
|
||||
numTaps = 2 * K + 2;
|
||||
|
||||
// Normalized Sinc function: sinc(x) = sin(pi*x)/(pi*x)
|
||||
// Handles the case where x ≈ 0 to avoid division by zero and return 1.
|
||||
sinc(x) = ba.if(abs(x) < ma.EPSILON, 1, sin(ma.PI * x) / (ma.PI * x));
|
||||
|
||||
// Computes the difference between two delays: delta = tau2 - tau1
|
||||
delta(t1, t2) = t2 - t1;
|
||||
|
||||
// Computes the target interpolated delay: tau = (1-alpha)*tau1 + alpha*tau2
|
||||
// This is the center of the sinc function for the hk gains.
|
||||
tau(t1, t2, a) = (1 - a) * t1 + a * t2;
|
||||
|
||||
// Computes the position (delay in samples) of the i-th tap (tk),
|
||||
// according to equation (17) of the article.
|
||||
tk(i, t1, t2) = ba.if(i <= K,
|
||||
t1 - (K - i) * delta(t1, t2),
|
||||
t2 + (i - K - 1) * delta(t1, t2));
|
||||
|
||||
// Computes the gain (hk) of the i-th tap, according to equation (19) of the paper.
|
||||
// hk = sinc((tk - tau) / delta)
|
||||
hk(i, t1, t2, a) = sinc(offset) with {
|
||||
d = delta(t1, t2);
|
||||
denom = ba.if(abs(d) < ma.EPSILON, 1, d);
|
||||
offset = (tk(i, t1, t2) - tau(t1, t2, a)) / denom;
|
||||
};
|
||||
|
||||
// Computes the sum of delayed signals weighted by their gains.
|
||||
// This is the core of the variable multi-tap effect.
|
||||
tapSum(sig, t1, t2, a) =
|
||||
// Iterates from i = 0 to numTaps-1
|
||||
sum(i, numTaps,
|
||||
// For each tap 'i':
|
||||
// 1. Delays the signal 'sig' by tk(i) samples (fractional)
|
||||
// using an internal delay line (fdelay).
|
||||
// 2. Multiplies the delayed signal by the gain hk(i).
|
||||
sig : fdelay(MaxDelay, tk(i, t1, t2)) * hk(i, t1, t2, a)
|
||||
);
|
||||
|
||||
// Simple function to apply a fixed delay (potentially fractional).
|
||||
// Used when tau1 and tau2 are very close.
|
||||
fixedDelay(x, t) = x : fdelay(MaxDelay, t);
|
||||
|
||||
// Determines if delays tau1 and tau2 are close enough to be
|
||||
// considered fixed (to avoid unstable calculations when delta ≈ 0).
|
||||
// isFixed equals 1 if delta ≈ 0, otherwise 0.
|
||||
isFixed = abs(delta(tau1, tau2)) < ma.EPSILON;
|
||||
|
||||
// Computes the output corresponding to the fixed delay (used if isFixed=1).
|
||||
fd = fixedDelay(input, tau1);
|
||||
|
||||
// Computes the output corresponding to the variable multi-tap delay (used if isFixed=0).
|
||||
mt = tapSum(input, tau1, tau2, alpha);
|
||||
|
||||
// Selects the final output based on isFixed.
|
||||
output = ba.if(isFixed, fd, mt);
|
||||
};
|
||||
|
||||
|
||||
//////////////////////////////////Deprecated Functions////////////////////////////////////
|
||||
// This section implements functions that used to be in music.lib but that are now
|
||||
// considered as "deprecated".
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
delay1s(d) = delay(65536,d);
|
||||
delay2s(d) = delay(131072,d);
|
||||
delay5s(d) = delay(262144,d);
|
||||
delay10s(d) = delay(524288,d);
|
||||
delay21s(d) = delay(1048576,d);
|
||||
delay43s(d) = delay(2097152,d);
|
||||
|
||||
fdelay1s(d) = fdelay(65536,d);
|
||||
fdelay2s(d) = fdelay(131072,d);
|
||||
fdelay5s(d) = fdelay(262144,d);
|
||||
fdelay10s(d) = fdelay(524288,d);
|
||||
fdelay21s(d) = fdelay(1048576,d);
|
||||
fdelay43s(d) = fdelay(2097152,d);
|
||||
5115
research/physical-voice-modeling/sources/faust-2.85.5-physmodels.lib
Normal file
5115
research/physical-voice-modeling/sources/faust-2.85.5-physmodels.lib
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,819 @@
|
|||
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" class="nexus-font-support">
|
||||
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta name="google" content="nositelinkssearchbox"/>
|
||||
<meta name="tdm-reservation" content="0">
|
||||
<title>
|
||||
Vocal-tract modeling: Fractional elongation of segment lengths in a waveguide model with half-sample delays
|
||||
- Arizona Board of Regents</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta property="og:site_name" content="Arizona Board of Regents">
|
||||
|
||||
|
||||
<meta property="og:title" content="Vocal-tract modeling: Fractional elongation of segment lengths in a waveguide model with half-sample delays"/>
|
||||
|
||||
|
||||
<meta property="og:url" content="https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/">
|
||||
<meta property="og:locale" content="en_US">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://experts.azregents.edu/skin/headerImage/">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/assets/application-119d61ec31b02051205711822747d1ca.css" />
|
||||
|
||||
|
||||
<link href="/skin/css/" rel="stylesheet"/>
|
||||
|
||||
<script src="/skin/script/" type="text/javascript"></script>
|
||||
<script type="text/javascript" src="/assets/application-34cc2221eabdb23f03948cb449f4d1ca.js" ></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script type="text/javascript" src="/assets/html5shiv.min-ca5300beead9a4a9d2c9c584a9016410.js" ></script>
|
||||
<script type="text/javascript" src="/assets/respond.min-678d372b349e434d9923e1b591f14a1e.js" ></script>
|
||||
<![endif]-->
|
||||
|
||||
|
||||
|
||||
<meta name="citation_title" content="Vocal-tract modeling: Fractional elongation of segment lengths in a waveguide model with half-sample delays"></meta><meta name="citation_author" content="Siddharth Mathur"></meta><meta name="citation_author_institution" content="IEEE"></meta><meta name="citation_author_institution" content="Nellymoser, Inc."></meta><meta name="citation_author" content="Brad H. Story"></meta><meta name="citation_author_institution" content="Speech Language & Hearing Sci"></meta><meta name="citation_author_institution" content="Biomedical Engineering"></meta><meta name="citation_author_institution" content="Science Administration"></meta><meta name="citation_author" content="Jeffrey J. Rodríguez"></meta><meta name="citation_author_institution" content="Electrical and Computer Engr"></meta><meta name="citation_author_institution" content="Biomedical Engineering"></meta><meta name="citation_publication_date" content="2006/09"></meta><meta name="citation_doi" content="10.1109/TSA.2005.858550"></meta><meta name="citation_language" content="English (US)"></meta><meta name="citation_keywords" content="Articulatory speech synthesis; Digital waveguides; Vocal tract modeling"></meta><meta name="citation_journal_title" content="IEEE Transactions on Audio, Speech and Language Processing"></meta><meta name="citation_issn" content="1558-7916"></meta><meta name="citation_publisher" content="Institute of Electrical and Electronics Engineers Inc."></meta><meta name="citation_volume" content="14"></meta><meta name="citation_issue" content="5"></meta><meta name="citation_firstpage" content="1754"></meta><meta name="citation_lastpage" content="1762"></meta>
|
||||
<script src="/assets/Chart.min-27bff060c3e539ceb22e763c8f2e9e10.js"></script>
|
||||
<script src="/assets/jquery.content-chart-9c09bb79ba3fc3829b6478d0e114f737.js"></script>
|
||||
|
||||
|
||||
|
||||
<!-- Google Analytics: No account ID (G) found -->
|
||||
<script src="//assets.adobedtm.com/4a848ae9611a/ea83f870454d/launch-af020409b299.min.js" async=""></script>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body class="" data-page="publications">
|
||||
|
||||
<div id="aria-polite" aria-live="polite"></div>
|
||||
<div id="aria-assertive" aria-live="assertive"></div>
|
||||
|
||||
<a href="#main-navigation" class="sr-only sr-only-focusable">Skip to main navigation</a>
|
||||
|
||||
<a href="#main-search" class="sr-only sr-only-focusable">Skip to search</a>
|
||||
|
||||
<a href="#main-content" class="sr-only sr-only-focusable">Skip to main content</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="header" id="page-header">
|
||||
<div class="primary with-right-background ">
|
||||
<div class="container">
|
||||
|
||||
<div class="primary-right-background clearfix">
|
||||
|
||||
<a href="/en/" class="logo">
|
||||
|
||||
<span class="sr-only">Arizona Board of Regents Home</span>
|
||||
<img src="/skin/headerImage/" alt="Arizona Board of Regents Logo"/>
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="header-search">
|
||||
|
||||
<form action="/en/searchAll/index/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/" method="get"
|
||||
class="search-form" id="search-everything">
|
||||
|
||||
<div class="global-search-wrapper">
|
||||
<div class="global-search mini">
|
||||
<div class="field-button-wrapper">
|
||||
<div class="search-cell search-field">
|
||||
<label for="main-search" class="sr-only">Search content at Arizona Board of Regents</label>
|
||||
<input id="main-search" class="search-field" value="" name="search"
|
||||
placeholder="Search"/>
|
||||
</div>
|
||||
|
||||
<div class="search-submit">
|
||||
<button type="submit" aria-label="Search">
|
||||
<i class="icon icon-magnifying-glass" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
$(function () {
|
||||
var searchForm = $("#search-everything");
|
||||
var searchField = $(".search-field", searchForm);
|
||||
searchForm.on("submit", function () {
|
||||
var field = searchField.find("input");
|
||||
var searchString = field.val();
|
||||
|
||||
// No enter key submit nothing :-)
|
||||
if (!searchString) return false;
|
||||
|
||||
if (searchString.length >= 200) {
|
||||
searchForm.attr("method", "post");
|
||||
searchForm.attr("action", "/en/concepts/copypaste/");
|
||||
field.attr("name", "text");
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="subMenu">
|
||||
<div class="secondary">
|
||||
<div class="container">
|
||||
<nav id="main-navigation" aria-label="Main navigation" class="content-navigation three-third">
|
||||
<ul data-value="More" role="menubar" aria-label="Main navigation">
|
||||
<li class="" role="none">
|
||||
<a href="/en/" role="menuitem" tabindex="-1">Home</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li class="" role="none">
|
||||
<a class="portal_link" tabindex="-1" role="menuitem" href="/en/persons/"><span>Profiles</span></a>
|
||||
</li>
|
||||
|
||||
<li class="" role="none">
|
||||
<a class="portal_link" tabindex="-1" role="menuitem" href="/en/organisations/"><span>Departments and Centers</span></a>
|
||||
</li>
|
||||
|
||||
<li class="selected" role="none">
|
||||
<a class="portal_link" tabindex="0" role="menuitem" href="/en/publications/"><span>Scholarly Works</span></a>
|
||||
</li>
|
||||
|
||||
<li class="" role="none">
|
||||
<a class="portal_link" tabindex="-1" role="menuitem" href="/en/projects/"><span>Grants</span></a>
|
||||
</li>
|
||||
|
||||
<li class="" role="none">
|
||||
<a class="portal_link" tabindex="-1" role="menuitem" href="/en/activities/"><span>Activities</span></a>
|
||||
</li>
|
||||
|
||||
<li class="" role="none">
|
||||
<a class="portal_link" tabindex="-1" role="menuitem" href="/en/equipments/"><span>Equipment</span></a>
|
||||
</li>
|
||||
|
||||
<li class="" role="none">
|
||||
<a class="portal_link" tabindex="-1" role="menuitem" href="/en/datasets/"><span>Datasets</span></a>
|
||||
</li>
|
||||
|
||||
<li class="" role="none">
|
||||
<a class="portal_link" tabindex="-1" role="menuitem" href="/en/clippings/"><span>Press/Media</span></a>
|
||||
</li>
|
||||
|
||||
<li class="" role="none">
|
||||
<a class="portal_link" tabindex="-1" role="menuitem" href="/en/prizes/"><span>Prizes</span></a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
<main id="page-content">
|
||||
|
||||
<div class="page-section page-section-publications page-section-publications-view ">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section
|
||||
class="page-section-header page-section-header-publications page-section-header-publications-view
|
||||
no-backdrop-image"
|
||||
data-stickyheader=""
|
||||
style="">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="introduction no-metrics">
|
||||
<div class="rendering"><h1><span>Vocal-tract modeling: Fractional elongation of segment lengths in a waveguide model with half-sample delays</span></h1></div>
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_associatespersonsclassifiedportal rendering_contributiontojournal rendering_associatespersonsclassifiedportal rendering_contributiontojournal_associatespersonsclassifiedportal"><ul class="relations persons"><li>Siddharth Mathur</li><li>, <a rel="Person" href="https://experts.azregents.edu/en/persons/brad-h-story/" class="link person"><span>Brad H. Story</span></a></li><li>, <a rel="Person" href="https://experts.azregents.edu/en/persons/jeffrey-j-rodriguez-2/" class="link person"><span>Jeffrey J. Rodríguez</span></a></li></div>
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_associatesorganisationsportal rendering_contributiontojournal rendering_associatesorganisationsportal rendering_contributiontojournal_associatesorganisationsportal"><ul class="relations organisations"><li class="department"><a rel="Organisation" href="https://experts.azregents.edu/en/organisations/speech-language-hearing-sci/" class="link"><span>Speech Language & Hearing Sci</span></a></li><li class="department"><a rel="Organisation" href="https://experts.azregents.edu/en/organisations/biomedical-engineering/" class="link"><span>Biomedical Engineering</span></a></li><li class="department"><a rel="Organisation" href="https://experts.azregents.edu/en/organisations/science-administration/" class="link"><span>Science Administration</span></a></li><li class="department"><a rel="Organisation" href="https://experts.azregents.edu/en/organisations/electrical-and-computer-engr/" class="link"><span>Electrical and Computer Engr</span></a></li></ul></div>
|
||||
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_publicationcontenttyperendererportalng rendering_contributiontojournal rendering_publicationcontenttyperendererportalng rendering_contributiontojournal_publicationcontenttyperendererportalng"><p class="type"><span class="type_family">Research output<span class="type_family_sep">: </span></span><span class="type_classification_parent">Contribution to journal<span class="type_parent_sep"> › </span></span><span class="type_classification">Article</span><span class="type_classification"><span class="type_parent_sep"> › </span>peer-review</span></p></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="publication-metrics" role="region" aria-label="Publication metrics section">
|
||||
|
||||
<div class="metrics-container">
|
||||
|
||||
<div class="metrics-wrap metrics-top one">
|
||||
|
||||
<div class="metric scopus-citations">
|
||||
|
||||
<a target="_blank" href="https://www.scopus.com/pages/publications/34047258319#tab=citedBy" aria-label="Source: Scopus: 20">
|
||||
|
||||
<span class="count">20</span>
|
||||
|
||||
<span class="sr-only"> Link opens in a new tab</span> </a>
|
||||
|
||||
<span class="label">Scopus
|
||||
citations</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="metrics-wrap metrics-bottom ">
|
||||
|
||||
<div class="metric metric-plum-x">
|
||||
<a href="https://plu.mx/plum/a/?doi=10.1109/TSA.2005.858550" class="plumx-plum-print-popup" data-on-empty="plumXError" data-on-fail="plumXError" data-on-success="plumXSuccess" data-popup="left" data-hide-when-empty="true" data-site="plum"
|
||||
data-badge="false"></a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="metric metric-altmetric">
|
||||
|
||||
<div data-badge-popover="top" data-badge-type="donut" data-doi="10.1109/TSA.2005.858550" data-hide-no-mentions="true" data-link-target='_blank'
|
||||
class="altmetric-embed"></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="subMenu">
|
||||
<div class="content-profile-navigation">
|
||||
<div class="container">
|
||||
<nav role="navigation">
|
||||
<ul role="menubar">
|
||||
<li class="selected" role="none">
|
||||
<a class="portal_link" role="menuitem" href="/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/"><span>
|
||||
<i class="icon icon-publication" aria-hidden="true"></i>
|
||||
<span class="label">Overview</span>
|
||||
</span></a>
|
||||
</li>
|
||||
|
||||
<li class="" role="none">
|
||||
<a class="portal_link" role="menuitem" href="/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/fingerprints/"><span>
|
||||
<i class="icon icon-fingerprint" aria-hidden="true"></i>
|
||||
<span class="label">Fingerprint</span>
|
||||
</span></a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
<div id="main-content"
|
||||
class="page-section-content page-section-content-publications page-section-content-publications-view ">
|
||||
|
||||
<section class="page-section content-relation-section">
|
||||
<div class="container">
|
||||
<div class="clearfix">
|
||||
<div class="content-content publication-content">
|
||||
|
||||
|
||||
<h2 class="subheader">Abstract</h2>
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_abstractportal rendering_contributiontojournal rendering_abstractportal rendering_contributiontojournal_abstractportal"><div class="textblock"><p>Digital waveguide models are commonly used for simulating vocal-tract acoustics based on physiological data. In particular, waveguide models with half-sample delays are known to be well suited for speech production research. This paper presents enhancements to such a model, aimed at improved accuracy in mapping physiological vocal-tract data (shape and length of the airway) to waveguide parameters. The enhancements allow the length of the vocal tract to be continuously varied, thus enabling more realistic synthesis. This is achieved by smoothly varying the individual segment lengths of a piecewise-cylindrical representation of ;the airway, without altering the system sampling frequency. Fractional-delay filters are used for spatial interpolation of the digital waveguide model. The algorithms are validated by modeling the protrusion of lips, lowering of larynx and lengthening of intermediate segments for a static vowel shape.</p></div></div>
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_detailsportal rendering_contributiontojournal rendering_detailsportal rendering_contributiontojournal_detailsportal"><div class="article"><table class="properties"><tbody><tr class="language"><th scope="row">Original language</th><td>English (US)</td></tr><tr><th scope="row">Pages (from-to)</th><td>1754-1762</td></tr><tr class="numberofpages"><th scope="row">Number of pages</th><td>9</td></tr><tr><th scope="row">Journal</th><td><a rel="Journal" href="#" class="link"><span>IEEE Transactions on Audio, Speech and Language Processing</span></a></td></tr><tr><th scope="row">Volume</th><td>14</td></tr><tr><th scope="row">Issue number</th><td>5</td></tr><tr class="digital_object_identifiers"><th scope="row">DOIs</th><td><ul class="relations digital_object_identifiers"><li><a onclick="window.open(this.href, '_blank','noopener,noreferrer'); return false;" href="https://doi.org/10.1109/TSA.2005.858550" class="link"><span>https://doi.org/10.1109/TSA.2005.858550</span></a> </li></ul></td></tr><tr class="status"><th scope="row">State</th><td><span class="prefix">Published - </span><span class="date">Sep 2006</span></td></tr></tbody></table></div></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="rendering rendering_keywordable rendering_expertkeywordgrouspbytypeportal rendering_keywordable_expertkeywordgrouspbytypeportal"><div class="keyword-group"><h2 class="subheader">Keywords</h2><ul class="relations keywords"><li class="userdefined-keyword"><span>Articulatory speech synthesis</span></li><li class="userdefined-keyword"><span>Digital waveguides</span></li><li class="userdefined-keyword"><span>Vocal tract modeling</span></li></ul></div><div class="keyword-group"><h2 class="subheader">ASJC Scopus subject areas</h2><ul class="relations keywords"><li><span>Acoustics and Ultrasonics</span></li><li><span>Electrical and Electronic Engineering</span></li></ul></div></div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="content-sidebar publication-sidebar">
|
||||
|
||||
<h2 class="subheader">Access to Document</h2>
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_publicationaccessrenderer rendering_contributiontojournal rendering_publicationaccessrenderer rendering_contributiontojournal_publicationaccessrenderer"><ul class="dois"><li><div class="doi"><a onclick="window.open(this.href, '_blank','noopener,noreferrer'); return false;" href="https://doi.org/10.1109/TSA.2005.858550" class="link"><span>10.1109/TSA.2005.858550</span></a></div></li></ul></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="subheader">Other files and links</h2>
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_publicationotherfilesandlinksrenderer rendering_contributiontojournal rendering_publicationotherfilesandlinksrenderer rendering_contributiontojournal_publicationotherfilesandlinksrenderer"><ul class="links"><li><div class="link"><a onclick="window.open(this.href, '_blank','noopener,noreferrer'); return false;" href="https://www.scopus.com/pages/publications/34047258319" class="link"><span>Link to publication in Scopus</span></a></div></li><li><div class="link"><a onclick="window.open(this.href, '_blank','noopener,noreferrer'); return false;" href="https://www.scopus.com/pages/publications/34047258319#tab=citedBy" class="link"><span>Link to the citations in Scopus</span></a></div></li></ul></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page-section content-relation-section publication-fingerprint">
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<h2 class="section-title">
|
||||
<i class="icon icon-fingerprint" aria-hidden="true"></i>
|
||||
<span class="title">Fingerprint</span>
|
||||
</h2>
|
||||
<span class="sub-title">
|
||||
Dive into the research topics of 'Vocal-tract modeling: Fractional elongation of segment lengths in a waveguide model with half-sample delays'. Together they form a unique fingerprint.
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ul class="publication-top-concepts" role="menubar" aria-label="Related fingerprints">
|
||||
|
||||
<li class="concept-badge-large-container dropdown-overflow" role="none">
|
||||
|
||||
<button tabindex="0"
|
||||
class="concept-badge-large dropdown-toggle"
|
||||
type="button"
|
||||
role="menuitem"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
aria-controls="44100799-614b-490e-804b-d3d11d9289c0"
|
||||
data-concept-uuid="44100799-614b-490e-804b-d3d11d9289c0"
|
||||
data-rank-size="32"
|
||||
data-rank-thickness="8"
|
||||
data-rank-value="1.0"
|
||||
data-summary="true"
|
||||
data-summary-url="/en/concepts/summary/">
|
||||
<span class="concept-wrapper" title="100%">
|
||||
<span class="rank"></span>
|
||||
<span class="concept">Waveguide</span>
|
||||
<span class="thesauri">Engineering</span>
|
||||
<span class="value sr-only">100%</span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<div class="dropdown-container"></div>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="concept-badge-large-container dropdown-overflow" role="none">
|
||||
|
||||
<button tabindex="0"
|
||||
class="concept-badge-large dropdown-toggle"
|
||||
type="button"
|
||||
role="menuitem"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
aria-controls="4393e377-f622-41f9-8d45-365485ee6c37"
|
||||
data-concept-uuid="4393e377-f622-41f9-8d45-365485ee6c37"
|
||||
data-rank-size="32"
|
||||
data-rank-thickness="8"
|
||||
data-rank-value="1.0"
|
||||
data-summary="true"
|
||||
data-summary-url="/en/concepts/summary/">
|
||||
<span class="concept-wrapper" title="100%">
|
||||
<span class="rank"></span>
|
||||
<span class="concept">Segment Length</span>
|
||||
<span class="thesauri">Engineering</span>
|
||||
<span class="value sr-only">100%</span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<div class="dropdown-container"></div>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="concept-badge-large-container dropdown-overflow" role="none">
|
||||
|
||||
<button tabindex="0"
|
||||
class="concept-badge-large dropdown-toggle"
|
||||
type="button"
|
||||
role="menuitem"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
aria-controls="1f1b918d-c72b-45fc-a331-a69882577c3c"
|
||||
data-concept-uuid="1f1b918d-c72b-45fc-a331-a69882577c3c"
|
||||
data-rank-size="32"
|
||||
data-rank-thickness="8"
|
||||
data-rank-value="0.25"
|
||||
data-summary="true"
|
||||
data-summary-url="/en/concepts/summary/">
|
||||
<span class="concept-wrapper" title="25%">
|
||||
<span class="rank"></span>
|
||||
<span class="concept">Vocal Tract Acoustics</span>
|
||||
<span class="thesauri">Keyphrases</span>
|
||||
<span class="value sr-only">25%</span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<div class="dropdown-container"></div>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="concept-badge-large-container dropdown-overflow" role="none">
|
||||
|
||||
<button tabindex="0"
|
||||
class="concept-badge-large dropdown-toggle"
|
||||
type="button"
|
||||
role="menuitem"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
aria-controls="4614fbd8-ba03-4d4b-8679-df8a1debe054"
|
||||
data-concept-uuid="4614fbd8-ba03-4d4b-8679-df8a1debe054"
|
||||
data-rank-size="32"
|
||||
data-rank-thickness="8"
|
||||
data-rank-value="0.2"
|
||||
data-summary="true"
|
||||
data-summary-url="/en/concepts/summary/">
|
||||
<span class="concept-wrapper" title="20%">
|
||||
<span class="rank"></span>
|
||||
<span class="concept">Individual Segment</span>
|
||||
<span class="thesauri">Engineering</span>
|
||||
<span class="value sr-only">20%</span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<div class="dropdown-container"></div>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="concept-badge-large-container dropdown-overflow" role="none">
|
||||
|
||||
<button tabindex="0"
|
||||
class="concept-badge-large dropdown-toggle"
|
||||
type="button"
|
||||
role="menuitem"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
aria-controls="7f3aa696-86a1-4bd9-ab95-1cb5163929d9"
|
||||
data-concept-uuid="7f3aa696-86a1-4bd9-ab95-1cb5163929d9"
|
||||
data-rank-size="32"
|
||||
data-rank-thickness="8"
|
||||
data-rank-value="0.2"
|
||||
data-summary="true"
|
||||
data-summary-url="/en/concepts/summary/">
|
||||
<span class="concept-wrapper" title="20%">
|
||||
<span class="rank"></span>
|
||||
<span class="concept">Sampling Frequency</span>
|
||||
<span class="thesauri">Engineering</span>
|
||||
<span class="value sr-only">20%</span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<div class="dropdown-container"></div>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<div class="footer">
|
||||
<div class="view-all align-center">
|
||||
<a class="portal_link btn-primary btn-large btn-content-link" href="/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/fingerprints/"><span>
|
||||
View full fingerprint
|
||||
<i class="icon icon-right-open-mini" aria-hidden="true"></i>
|
||||
</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section class="page-section cite">
|
||||
<div class="container">
|
||||
<section class="publication-cite" aria-labelledby="publications-cite-title">
|
||||
<h2 class="subheader" id="publications-cite-title">Cite this</h2>
|
||||
<ul class="tabs" role="tablist" aria-label="Cite this">
|
||||
|
||||
<li class="selected" role="tab" id="tab-0" aria-controls="cite-apa" tabindex="-1" aria-selected="false" >
|
||||
APA
|
||||
</li>
|
||||
|
||||
<li class="" role="tab" id="tab-1" aria-controls="cite-standard" tabindex="-1" aria-selected="false" >
|
||||
Standard
|
||||
</li>
|
||||
|
||||
<li class="" role="tab" id="tab-2" aria-controls="cite-harvard" tabindex="-1" aria-selected="false" >
|
||||
Harvard
|
||||
</li>
|
||||
|
||||
<li class="" role="tab" id="tab-3" aria-controls="cite-vancouver" tabindex="-1" aria-selected="false" >
|
||||
Vancouver
|
||||
</li>
|
||||
|
||||
<li class="" role="tab" id="tab-4" aria-controls="cite-author" tabindex="-1" aria-selected="false" >
|
||||
Author
|
||||
</li>
|
||||
|
||||
<li class="" role="tab" id="tab-5" aria-controls="cite-BIBTEX" tabindex="-1" aria-selected="false" >
|
||||
BIBTEX
|
||||
</li>
|
||||
|
||||
<li class="" role="tab" id="tab-6" aria-controls="cite-RIS" tabindex="-1" aria-selected="false" >
|
||||
RIS
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<div class="tab-container">
|
||||
|
||||
<div id="cite-apa" class="tab selected" role="tabpanel" aria-labelledby="tab-0" tabindex="-1" aria-hidden="true">
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_apa rendering_contributiontojournal rendering_apa rendering_contributiontojournal_apa">Mathur, S.<a rel="Person" href="https://experts.azregents.edu/en/persons/brad-h-story/" class="link"><span>, Story, B. H.</span></a><a rel="Person" href="https://experts.azregents.edu/en/persons/jeffrey-j-rodriguez-2/" class="link"><span>, & Rodríguez, J. J.</span></a> (2006). <a rel="ContributionToJournal" href="https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/" class="link"><span>Vocal-tract modeling: Fractional elongation of segment lengths in a waveguide model with half-sample delays</span></a>. <span><em>IEEE Transactions on Audio, Speech and Language Processing</em></span>, <em>14</em>(5), 1754-1762. <a onclick="window.open(this.href, '_blank','noopener,noreferrer'); return false;" href="https://doi.org/10.1109/TSA.2005.858550" class="link"><span>https://doi.org/10.1109/TSA.2005.858550</span></a></div>
|
||||
</div>
|
||||
|
||||
<div id="cite-standard" class="tab " role="tabpanel" aria-labelledby="tab-1" tabindex="-1" aria-hidden="true">
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_standard rendering_contributiontojournal rendering_standard rendering_contributiontojournal_standard"><a rel="ContributionToJournal" href="https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/" class="link"><span><strong>Vocal-tract modeling: Fractional elongation of segment lengths in a waveguide model with half-sample delays.</strong></span></a> / Mathur, Siddharth<a rel="Person" href="https://experts.azregents.edu/en/persons/brad-h-story/" class="link"><span>; Story, Brad H.</span></a><a rel="Person" href="https://experts.azregents.edu/en/persons/jeffrey-j-rodriguez-2/" class="link"><span>; Rodríguez, Jeffrey J.</span></a> <br />In: <span>IEEE Transactions on Audio, Speech and Language Processing</span>, Vol. 14, No. 5, 09.2006, p. 1754-1762.<p class="type"><span class="type_family">Research output<span class="type_family_sep">: </span></span><span class="type_classification_parent">Contribution to journal<span class="type_parent_sep"> › </span></span><span class="type_classification">Article</span><span class="type_classification"><span class="type_parent_sep"> › </span>peer-review</span></p></div>
|
||||
</div>
|
||||
|
||||
<div id="cite-harvard" class="tab " role="tabpanel" aria-labelledby="tab-2" tabindex="-1" aria-hidden="true">
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_harvard rendering_contributiontojournal rendering_harvard rendering_contributiontojournal_harvard">Mathur, S<a rel="Person" href="https://experts.azregents.edu/en/persons/brad-h-story/" class="link"><span>, Story, BH</span></a><a rel="Person" href="https://experts.azregents.edu/en/persons/jeffrey-j-rodriguez-2/" class="link"><span> & Rodríguez, JJ</span></a> 2006, '<a rel="ContributionToJournal" href="https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/" class="link harvard_title"><span>Vocal-tract modeling: Fractional elongation of segment lengths in a waveguide model with half-sample delays</span></a>', <span><em>IEEE Transactions on Audio, Speech and Language Processing</em></span>, vol. 14, no. 5, pp. 1754-1762. <a onclick="window.open(this.href, '_blank','noopener,noreferrer'); return false;" href="https://doi.org/10.1109/TSA.2005.858550" class="link"><span>https://doi.org/10.1109/TSA.2005.858550</span></a></div>
|
||||
</div>
|
||||
|
||||
<div id="cite-vancouver" class="tab " role="tabpanel" aria-labelledby="tab-3" tabindex="-1" aria-hidden="true">
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_vancouver rendering_contributiontojournal rendering_vancouver rendering_contributiontojournal_vancouver">Mathur S<a rel="Person" href="https://experts.azregents.edu/en/persons/brad-h-story/" class="link"><span>, Story BH</span></a><a rel="Person" href="https://experts.azregents.edu/en/persons/jeffrey-j-rodriguez-2/" class="link"><span>, Rodríguez JJ</span></a>. <span class="title"><a rel="ContributionToJournal" href="https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/" class="link"><span>Vocal-tract modeling: <span class="subtitle">Fractional elongation of segment lengths in a waveguide model with half-sample delays</span></span></a></span>. <span>IEEE Transactions on Audio, Speech and Language Processing</span>. 2006 Sep;14(5):1754-1762. doi: 10.1109/TSA.2005.858550</div>
|
||||
</div>
|
||||
|
||||
<div id="cite-author" class="tab " role="tabpanel" aria-labelledby="tab-4" tabindex="-1" aria-hidden="true">
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_author rendering_contributiontojournal rendering_author rendering_contributiontojournal_author">Mathur, Siddharth <a rel="Person" href="https://experts.azregents.edu/en/persons/brad-h-story/" class="link"><span> ; Story, Brad H.</span></a> <a rel="Person" href="https://experts.azregents.edu/en/persons/jeffrey-j-rodriguez-2/" class="link"><span> ; Rodríguez, Jeffrey J.</span></a> / <a rel="ContributionToJournal" href="https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/" class="link"><span><strong>Vocal-tract modeling : Fractional elongation of segment lengths in a waveguide model with half-sample delays</strong></span></a>. In: <a rel="Journal" href="#" class="link"><span>IEEE Transactions on Audio, Speech and Language Processing</span></a>. 2006 ; Vol. 14, No. 5. pp. 1754-1762.</div>
|
||||
</div>
|
||||
|
||||
<div id="cite-BIBTEX" class="tab " role="tabpanel" aria-labelledby="tab-5" tabindex="-1" aria-hidden="true">
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_bibtex rendering_contributiontojournal rendering_bibtex rendering_contributiontojournal_bibtex"><div>@article{3a01ffadbd5840d6b8c942c4290212d7,</div><div> title = "Vocal-tract modeling: Fractional elongation of segment lengths in a waveguide model with half-sample delays",</div><div> abstract = "Digital waveguide models are commonly used for simulating vocal-tract acoustics based on physiological data. In particular, waveguide models with half-sample delays are known to be well suited for speech production research. This paper presents enhancements to such a model, aimed at improved accuracy in mapping physiological vocal-tract data (shape and length of the airway) to waveguide parameters. The enhancements allow the length of the vocal tract to be continuously varied, thus enabling more realistic synthesis. This is achieved by smoothly varying the individual segment lengths of a piecewise-cylindrical representation of ;the airway, without altering the system sampling frequency. Fractional-delay filters are used for spatial interpolation of the digital waveguide model. The algorithms are validated by modeling the protrusion of lips, lowering of larynx and lengthening of intermediate segments for a static vowel shape.",</div><div> keywords = "Articulatory speech synthesis, Digital waveguides, Vocal tract modeling",</div><div> author = "Siddharth Mathur and Story, \{Brad H.\} and Rodr{\'i}guez, \{Jeffrey J.\}",</div><div> note = "Funding Information: Manuscript received January 27, 2004; revised April 25, 2005. This work was supported by NIDCD Grant R01-DC04789. This paper was presented in part at IEEE-ISSPIT {\textquoteright}03. The associate editor coordinating the review of this manuscript and approving it for publication was Dr. T. Dutoit. S. Mathur is with Nellymoser, Inc., Arlington, MA 02476 USA (e-mail: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bbc895d6dacfd3cec9fbd2dedede95d4c9dc">[email protected]</a>). B. H. Story is with the Department of Speech and Hearing Sciences, University of Arizona, Tucson, AZ 85721 USA (e-mail: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9cfeefe8f3eee5dce9b2fdeef5e6f3f2fdb2f9f8e9">[email protected]</a>). J. J. Rodr{\'i}guez is with the Department of Electrical and Computer Engineering, University of Arizona, Tucson, AZ 85721 USA (e-mail: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d8aab7bcaab1bfadbda298bdbbbdf6b9aab1a2b7b6b9f6bdbcad">[email protected]</a>). Digital Object Identifier 10.1109/TSA.2005.858550 Fig. 1. Cross-sectional areas for the 44 equal-length cylindrical segments in a neutral vowel. They are labeled A (glottal end) through A (lip end).",</div><div> year = "2006",</div><div> month = sep,</div><div> doi = "10.1109/TSA.2005.858550",</div><div> language = "English (US)",</div><div> volume = "14",</div><div> pages = "1754--1762",</div><div> journal = "IEEE Transactions on Audio, Speech and Language Processing",</div><div> issn = "1558-7916",</div><div> publisher = "Institute of Electrical and Electronics Engineers Inc.",</div><div> number = "5",</div><p>}</p></div>
|
||||
</div>
|
||||
|
||||
<div id="cite-RIS" class="tab " role="tabpanel" aria-labelledby="tab-6" tabindex="-1" aria-hidden="true">
|
||||
<div class="rendering rendering_researchoutput rendering_researchoutput_ris rendering_contributiontojournal rendering_ris rendering_contributiontojournal_ris"><p>TY - JOUR</p><p>T1 - Vocal-tract modeling</p><p>T2 - Fractional elongation of segment lengths in a waveguide model with half-sample delays</p><p>AU - Mathur, Siddharth</p><p>AU - Story, Brad H.</p><p>AU - Rodríguez, Jeffrey J.</p><p>N1 - Funding Information: Manuscript received January 27, 2004; revised April 25, 2005. This work was supported by NIDCD Grant R01-DC04789. This paper was presented in part at IEEE-ISSPIT ’03. The associate editor coordinating the review of this manuscript and approving it for publication was Dr. T. Dutoit. S. Mathur is with Nellymoser, Inc., Arlington, MA 02476 USA (e-mail: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="91e2bffcf0e5f9e4e3d1f8f4f4f4bffee3f6">[email protected]</a>). B. H. Story is with the Department of Speech and Hearing Sciences, University of Arizona, Tucson, AZ 85721 USA (e-mail: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d9bbaaadb6aba099acf7b8abb0a3b6b7b8f7bcbdac">[email protected]</a>). J. J. Rodríguez is with the Department of Electrical and Computer Engineering, University of Arizona, Tucson, AZ 85721 USA (e-mail: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="94e6fbf0e6fdf3e1f1eed4f1f7f1baf5e6fdeefbfaf5baf1f0e1">[email protected]</a>). Digital Object Identifier 10.1109/TSA.2005.858550 Fig. 1. Cross-sectional areas for the 44 equal-length cylindrical segments in a neutral vowel. They are labeled A (glottal end) through A (lip end).</p><p>PY - 2006/9</p><p>Y1 - 2006/9</p><p>N2 - Digital waveguide models are commonly used for simulating vocal-tract acoustics based on physiological data. In particular, waveguide models with half-sample delays are known to be well suited for speech production research. This paper presents enhancements to such a model, aimed at improved accuracy in mapping physiological vocal-tract data (shape and length of the airway) to waveguide parameters. The enhancements allow the length of the vocal tract to be continuously varied, thus enabling more realistic synthesis. This is achieved by smoothly varying the individual segment lengths of a piecewise-cylindrical representation of ;the airway, without altering the system sampling frequency. Fractional-delay filters are used for spatial interpolation of the digital waveguide model. The algorithms are validated by modeling the protrusion of lips, lowering of larynx and lengthening of intermediate segments for a static vowel shape.</p><p>AB - Digital waveguide models are commonly used for simulating vocal-tract acoustics based on physiological data. In particular, waveguide models with half-sample delays are known to be well suited for speech production research. This paper presents enhancements to such a model, aimed at improved accuracy in mapping physiological vocal-tract data (shape and length of the airway) to waveguide parameters. The enhancements allow the length of the vocal tract to be continuously varied, thus enabling more realistic synthesis. This is achieved by smoothly varying the individual segment lengths of a piecewise-cylindrical representation of ;the airway, without altering the system sampling frequency. Fractional-delay filters are used for spatial interpolation of the digital waveguide model. The algorithms are validated by modeling the protrusion of lips, lowering of larynx and lengthening of intermediate segments for a static vowel shape.</p><p>KW - Articulatory speech synthesis</p><p>KW - Digital waveguides</p><p>KW - Vocal tract modeling</p><p>UR - https://www.scopus.com/pages/publications/34047258319</p><p>UR - https://www.scopus.com/pages/publications/34047258319#tab=citedBy</p><p>U2 - 10.1109/TSA.2005.858550</p><p>DO - 10.1109/TSA.2005.858550</p><p>M3 - Article</p><p>SN - 1558-7916</p><p>VL - 14</p><p>SP - 1754</p><p>EP - 1762</p><p>JO - IEEE Transactions on Audio, Speech and Language Processing</p><p>JF - IEEE Transactions on Audio, Speech and Language Processing</p><p>IS - 5</p><p>ER - </p></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
|
||||
$(function() {
|
||||
$(".tab-container .rendering a:not([href^='http://dx.doi.org'])").contents().unwrap();
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<script>
|
||||
$(function () {
|
||||
if($('.publication-sidebar').length > 0){
|
||||
if($('a.document-link').length === 0){
|
||||
$(".metrics-top").addClass("one");
|
||||
$('div.metrics-downloads').remove();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function plumXError(e) {
|
||||
$(e).closest('.metric-plum-x').closest('.metrics-bottom').addClass('one');
|
||||
$(e).closest('.metric-plum-x').remove();
|
||||
}
|
||||
$('div.altmetric-embed').on('altmetric:hide', function () {
|
||||
$(this).closest('.metric-altmetric').closest('.metrics-bottom').addClass('one');
|
||||
$(this).closest('.metric-altmetric').remove();
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="share-box">
|
||||
<ul>
|
||||
<li class="icon-share"></li>
|
||||
<li><a aria-label="Share on Facebook"
|
||||
href="https://www.facebook.com/sharer.php?u=https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/%3Futm_source%3Dfacebook%26utm_medium%3Dsocial%26utm_campaign%3Dsharelink%26doi%3D10.1109%2FTSA.2005.858550&p[summary]=Check+out+this+research+output+at+Arizona+Board+of+Regents%3A+Vocal-tract+modeling%3A+Fractional+elongation+of+segment+lengths+in+a+waveguide+model+with+half-sample+delays"
|
||||
class="icon-facebook"
|
||||
onclick="window.location.origin('https://www.facebook.com/sharer.php?u=https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/%3Futm_source%3Dfacebook%26utm_medium%3Dsocial%26utm_campaign%3Dsharelink%26doi%3D10.1109%2FTSA.2005.858550&p[summary]=Check+out+this+research+output+at+Arizona+Board+of+Regents%3A+Vocal-tract+modeling%3A+Fractional+elongation+of+segment+lengths+in+a+waveguide+model+with+half-sample+delays', 'Facebook', 'width=600,height=600,scrollbars=no,resizable=no');
|
||||
return false;" target="popup"></a></li>
|
||||
<li><a aria-label="Share on Twitter"
|
||||
href="https://twitter.com/intent/tweet?url=https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/%3Futm_source%3Dtwitter%26utm_medium%3Dsocial%26utm_campaign%3Dsharelink%26doi%3D10.1109%2FTSA.2005.858550&text=Check+out+this+research+output+at+Arizona+Board+of+Regents%3A+Vocal-tract+modeling%3A+Fractional+elongation+of+segment+lengths+in+a+waveguide+model+with+half-sample+delays"
|
||||
onclick="window.location.origin('https://twitter.com/intent/tweet?url=https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/%3Futm_source%3Dtwitter%26utm_medium%3Dsocial%26utm_campaign%3Dsharelink%26doi%3D10.1109%2FTSA.2005.858550&text=Check+out+this+research+output+at+Arizona+Board+of+Regents%3A+Vocal-tract+modeling%3A+Fractional+elongation+of+segment+lengths+in+a+waveguide+model+with+half-sample+delays doi%3A10.1109%2FTSA.2005.858550', 'Twitter', 'width=600,height=600,scrollbars=no,resizable=no');
|
||||
return false;" class="twitter" target="popup"><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 300 271">
|
||||
|
||||
<path d="m236 0h46l-101 115 118 156h-92.6l-72.5-94.8-83 94.8h-46l107-123-113-148h94.9l65.5 86.6zm-16.1 244h25.5l-165-218h-27.4z"></path>
|
||||
</svg></a></li>
|
||||
<li><a aria-label="Share on LinkedIn"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/%3Futm_source%3Dlinkedin%26utm_medium%3Dsocial%26utm_campaign%3Dsharelink%26doi%3D10.1109%2FTSA.2005.858550&summary=Check+out+this+research+output+at+Arizona+Board+of+Regents%3A+Vocal-tract+modeling%3A+Fractional+elongation+of+segment+lengths+in+a+waveguide+model+with+half-sample+delays"
|
||||
onclick="window.location.origin('https://www.linkedin.com/shareArticle?mini=true&url=https://experts.azregents.edu/en/publications/vocal-tract-modeling-fractional-elongation-of-segment-lengths-in-/%3Futm_source%3Dlinkedin%26utm_medium%3Dsocial%26utm_campaign%3Dsharelink%26doi%3D10.1109%2FTSA.2005.858550&summary=Check+out+this+research+output+at+Arizona+Board+of+Regents%3A+Vocal-tract+modeling%3A+Fractional+elongation+of+segment+lengths+in+a+waveguide+model+with+half-sample+delays doi%3A10.1109%2FTSA.2005.858550', 'LinkedIn', 'width=600,height=600,scrollbars=no,resizable=no');
|
||||
return false;" class="icon-linkedin" target="popup"></a></li>
|
||||
<li><a aria-label="Share by email" href="/cdn-cgi/l/email-protection#ac93dfd9cec6c9cfd891fac3cfcdc081d8decdcfd8899e9cc1c3c8c9c0c5c2cb899fed899e9ceadecdcfd8c5c3c2cdc0899e9cc9c0c3c2cbcdd8c5c3c2899e9cc3ca899e9cdfc9cbc1c9c2d8899e9cc0c9c2cbd8c4df899e9cc5c2899e9ccd899e9cdbcddac9cbd9c5c8c9899e9cc1c3c8c9c0899e9cdbc5d8c4899e9cc4cdc0ca81dfcdc1dcc0c9899e9cc8c9c0cdd5df8acec3c8d591efc4c9cfc7899e9cc3d9d8899e9cd8c4c5df899e9cdec9dfc9cddecfc4899e9cc3d9d8dcd9d8899e9ccdd8899e9ceddec5d6c3c2cd899e9ceec3cddec8899e9cc3ca899e9cfec9cbc9c2d8df899fed899e9cfac3cfcdc081d8decdcfd8899e9cc1c3c8c9c0c5c2cb899fed899e9ceadecdcfd8c5c3c2cdc0899e9cc9c0c3c2cbcdd8c5c3c2899e9cc3ca899e9cdfc9cbc1c9c2d8899e9cc0c9c2cbd8c4df899e9cc5c2899e9ccd899e9cdbcddac9cbd9c5c8c9899e9cc1c3c8c9c0899e9cdbc5d8c4899e9cc4cdc0ca81dfcdc1dcc0c9899e9cc8c9c0cdd5df8cd08cc4d8d8dcdf968383c9d4dcc9ded8df82cdd6dec9cbc9c2d8df82c9c8d983c9c283dcd9cec0c5cfcdd8c5c3c2df83dac3cfcdc081d8decdcfd881c1c3c8c9c0c5c2cb81cadecdcfd8c5c3c2cdc081c9c0c3c2cbcdd8c5c3c281c3ca81dfc9cbc1c9c2d881c0c9c2cbd8c4df81c5c2818393d9d8c1f3dfc3d9decfc991c9c1cdc5c08acdc1dc97d9d8c1f3c1c9c8c5d9c191c9c1cdc5c08acdc1dc97d9d8c1f3cfcdc1dccdc5cbc291dfc4cddec9c0c5c2c7" class="icon-email"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="new-modal-overlay"></div>
|
||||
|
||||
</main>
|
||||
|
||||
<footer id="page-footer" class="main-footer">
|
||||
<div class="container">
|
||||
<div class="footer-wrapper">
|
||||
<div class="content-navigation three-third">
|
||||
<div dir="ltr" class="footer-columns">
|
||||
|
||||
<div class="footer-column">
|
||||
<div class="footer-icon">
|
||||
<img src="/skin/footerIcon/" alt="Arizona Board of Regents Logo"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer-column">
|
||||
<p>
|
||||
Powered by <a href="http://www.elsevier.com/online-tools/research-intelligence/products-and-services/pure" target="_blank">Pure <span class="sr-only">Link opens in a new tab</span></a>, <a href="http://www.scopus.com/" target="_blank">Scopus <span class="sr-only">Link opens in a new tab</span></a> & <a href="https://www.elsevier.com/products/elsevier-fingerprint-engine" target="_blank">Elsevier Fingerprint Engine™ <span class="sr-only">Link opens in a new tab</span></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
All content on this site: Copyright © 2026 Arizona Board of Regents, its licensors, and contributors. All rights are reserved, including those for text and data mining, AI training, and similar technologies. For all open access content, the relevant licensing terms apply
|
||||
</p>
|
||||
|
||||
<p>We use cookies to help provide and enhance our service and tailor content. By continuing you agree to the <a href="/en/about/cookies/">use of cookies</a></p>
|
||||
|
||||
|
||||
<p></p>
|
||||
</div>
|
||||
|
||||
<div class="footer-column">
|
||||
|
||||
<p><a href="https://azregents.edu/privacy-policy" target="_blank">Arizona Board of Regents data protection policy <span class="sr-only"> Link opens in a new tab</span></a></p>
|
||||
|
||||
|
||||
|
||||
<p><a href="/en/web-accessibility/" rel="nofollow" target="_blank">About web accessibility <span class="sr-only"> Link opens in a new tab</span></a></p>
|
||||
|
||||
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="https://elsevier.responsibledisclosure.com/hc/en-us/requests/new" target="_blank" rel="nofollow">Report vulnerability <span class="sr-only"> Link opens in a new tab</span></a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer-column">
|
||||
|
||||
|
||||
<p>
|
||||
<a href="/en/contact/index/"> Contact us</a>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="back-to-top">
|
||||
<a href="#" class="back-to-top" aria-label="Go to top"><i class="icon icon-up-open"></i></a>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="//d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>window.appData = window.appData || [];</script><script type="text/javascript">
|
||||
try {(function() {
|
||||
appData.push({...{"page":{"businessUnit":"ELS:RP:ST","cmsName":"Pure Portal","environment":"prod","language":"en","loadTime":"262","loadTimestamp":"1779803281594","name":"pure portal:publications:view","noTracking":"false","productName":"PR","type":"CP-CA"},"visitor":{"accountId":"","accountName":"pr:Arizona Nexis System","ipAddress":"","accessType":"pr:ANON_GUEST","loginStatus":"anonymous"},"content":[{"id":"3a01ffad-bd58-40d6-b8c9-42c4290212d7","title":"Vocal-tract modeling: Fractional elongation of segment lengths in a waveguide model with half-sample delays","recordType":"researchoutput"}]}, event: "pageLoad"});})();} catch(e) {if(console) { console.log(e) } }</script>
|
||||
<script>try {(function() {
|
||||
window.appData = window.appData || [];
|
||||
})();} catch(e) {if(console) { console.log(e) } }</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Binary file not shown.
|
|
@ -143,3 +143,4 @@
|
|||
{"timestamp":"2026-05-26T10:10:00+01:00","topic":"continuous-tract-morphology","claim":"PT's 44 oral cells are a reference grid, not anatomy. A 17 cm tract split into 44 cells at 44.1 kHz has about 0.5 samples of acoustic delay per cell, so PT-style substeps are pressure for fractional-delay waveguide lowering rather than a durable Aqua DSL primitive. `TractAreaFunction` now owns physical length, normalized interpolation, resampling, and per-cell delay derivation; `tract sections=...` can choose a compiled lowering grid without forcing the named morphology's authoring sample count to match.","evidence":"Added `length_cm` parsing for `tract_shape`/`nasal_branch`, `TractAreaFunction.DiameterAt`, `Resample`, and `CellDelaySamples`; focused tests cover continuous interpolation, authoring-grid/lowering-grid separation, and the 44-cell half-sample delay fact."}
|
||||
{"timestamp":"2026-05-26T10:43:00+01:00","topic":"pink-trombone-acoustic-grid-parity","claim":"Waveguide tracts now default to a compiled acoustic unit-delay grid derived from physical length at the 44.1 kHz target. PT's 17 cm / 44-cell shape lowers to about 22 emitted oral sections; nasal length 12 cm lowers to 15 sections. `VocalTract.IndexScale` maps runtime PT-index controls onto the emitted grid so parameter knobs remain in source morphology coordinates. Removing stale `substeps=2` from PT parity fixtures and applying index scaling improved vowels/sibilant but exposed closure as still wrong: open 0.6143, front 0.6349, nasal 0.5425, sibilant 0.3744, closure-release -0.0820.","evidence":"dotnet test tests/AquaSynth.Dsl.Tests/AquaSynth.Dsl.Tests.csproj --no-build --filter \"WaveguideTractDefaultsToAcousticUnitDelayGrid|PinkTromboneParityFixturesUseReusableLowLevelPrimitives|PinkTromboneFixturesReportLogMelParityWhenFaustIsInstalled\" -v minimal passed; artifacts/parity/pink-trombone-logmel/20260526T104229319/summary.txt"}
|
||||
{"timestamp":"2026-05-26T11:03:00+01:00","topic":"physical-voice-modeling-research","claim":"The next voice architecture should be an acoustic port network, not a Pink Trombone module: continuous morphology owns paths/area curves, source ports model larynx/syrinx/reed/noise exciters, branch and radiation ports own topology, and wave-clock policies choose unit/half-sample/fractional-delay lowering. Faust `physmodels.lib` and `delays.lib` provide relevant primitives (`pm.chain`, `pm.l2s`, `pm.waveguideFd*`, `de.fdelay*`, Lagrange, Thiran/allpass), but AquaSynth should generate custom scattering where live area controls and inspectable differentiable parameters matter.","evidence":"Added docs/physical-voice-modeling-research.md after checking Faust 2.85.5 local libraries plus primary literature on half-sample/fractional-delay vocal-tract waveguides, waveguide tract acoustics, and differentiable articulatory/source-filter synthesis."}
|
||||
{"timestamp":"2026-05-26T14:50:00+01:00","topic":"physical-voice-research-packet","claim":"Physical voice modeling research is now persisted as a local packet under `research/physical-voice-modeling/`, with a distilled summary, source manifest, hashes, local Faust library captures, an open waveguide vocal-tract PDF, and downloaded HTML snapshots for fractional-delay vocal-tract and DDSP review sources.","evidence":"Added `research/physical-voice-modeling/README.md`, `SUMMARY.md`, `SOURCES.md`, and source files under `research/physical-voice-modeling/sources/`; updated docs and spine to point at the packet."}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ current_mechanism:
|
|||
pink_trombone_parity: docs/pink-trombone-parity.md
|
||||
pink_trombone_dsl_parity_plan: docs/pink-trombone-dsl-parity-plan.md
|
||||
physical_voice_modeling_research: docs/physical-voice-modeling-research.md
|
||||
physical_voice_modeling_packet: research/physical-voice-modeling
|
||||
parameter_contracts: src/AquaSynth.Core/Model.cs
|
||||
|
||||
live_invariants:
|
||||
|
|
|
|||
Loading…
Reference in a new issue