On 2026-08-04, QueueSevenM wrote: Sorry about top-posting and going meta, here, but what I'm getting below is wholly unreadable. There ought to be at least a modicum of respect for the classical email etiquette, so that a textual nerd like me
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
 
ZjQcmQRYFpfptBannerEnd
On 2026-08-04, QueueSevenM wrote:

Sorry about top-posting and going meta, here, but what I'm getting below 
is wholly unreadable. There ought to be at least a modicum of respect 
for the classical email etiquette, so that a textual nerd like me could 
follow the discussion. Or the guy with a feature phone, somewhere in 
central Africa.

Seriously, man, look at this stuff even in (my) Alpine. It's but 
half-cognizable. Quite inhospitable to serious DSP work. :/

> On 2026-08-04 20: 09, Ross Bencina wrote: Correct me if I misunderstood, but
> if I understand correctly, you are proposing the following approach: Given a
> time domain signal assumed to comprise of a quasi-period glottal pulse
> train, estimate the
> ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
> This message came from outside your organization.
>  
> ZjQcmQRYFpfptBannerEnd
> 
> On 2026-08-04 20:09, Ross Bencina wrote:
>
>       Correct me if I misunderstood, but if I understand correctly,
>       you are proposing the following approach: Given a time domain
>       signal assumed to comprise of a quasi-period glottal pulse
>       train, estimate the onset time and spectrum of each glotal
> ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
> This message came from outside your organization.
>  
> ZjQcmQRYFpfptBannerEnd
> 
> Correct me if I misunderstood, but if I understand correctly, you are 
> proposing the following approach:
> 
> Given a time domain signal assumed to comprise of a quasi-period glottal 
> pulse train, estimate the onset time and spectrum of each glotal pulse 
> (i.e. a vector of pulse spectra and pulse onset times). [Note: by 
> quasi-periodic we mean a signal with slowly varying fundamental period, 
> and small amplitude local period-to-period variability.]
> 
> Estimate E_0: First, to bootstrap the estimator assume that the signal 
> is locally periodic. Form a fundamental frequency analysis and, under a 
> perfect periodicity assumption, estimate the onset time (or some 
> centroid) and pulse spectrum for each glottal pulse.
> 
> Resynthesize a time domain pulse train using E_0. Compute a time domain 
> residual. (Somehow) extract an error vector comprising pulse spectra 
> error and pulse time error for each pulse in the estimate.
> 
> Then you ask:
>
>  > Although I have proposed this algorithm, I am yet to implement it. 
> The main challenge is how the
>  > optimization taking into account the heuristics should be performed. 
> The simplest idea would be to
>  > optimize each row of the matrix individually using any appropriate 
> technique (e.g. gradient
>  > descent, Simultaneous Perturbation Stochastic Approximation). Then 
> repeat this many times.
>  > However this would presumably be very inefficient. Besides, we should 
> ideally be optimizing
>  > globally or at least using regions larger than a single sample. 
> Another issue is that optimization
>  > procedure may change the deltas to minimize the heuristics, instead 
> of distributing the residual in
>  > the way that minimizes the heuristics' cost.
> 
> These all seem like reasonable questions, but to me, ultimately boil 
> down to "what is the best way to construct an estimator for this 
> problem?". I am not an estimation theorist, but I suggest approaching it 
> experimentally: don't worry about efficiency yet, code up some 
> approaches using standard tools and see whether you can get *anything* 
> to work.
> 
> Regarding global vs local estimation:
> 
> This boils down to how much of the input signal to use to calculate the 
> residual, which components of the estimation vector to adjust, and how 
> to weight them.
> 
> Given that humans need to breath, I think you don't need to optimise 
> globally. You could consider a sliding window of "active" pulses.
> 
> The maximal temporal extent you would need to consider must comprise a 
> segment where at least two pulses overlap at all times. If you can find 
> gaps you can segment the input.
> 
> The minimal temporal extent must be at least as long as a pulse duration 
> (i.e. take into account all available information about that pulse). 
> Glottal pulses are causal impulse responses with finite temporal extent. 
> You should be able to derive an upper bound on their duration, either a 
> static upper bound based on what we know about vocal tract resonance, or 
> an adaptive bound based on your pulse spectra estimates.
> 
> The estimator should, for any time segment, consider all pulses that 
> make a non-zero contribution to the signal (possibly weighted). So you 
> might want to estimate at least a few overlapping pulses simultaneously. 
> This could be done as a moving-horizon estimate where you estimate pulse 
> parameters sequentially: i.e. once the window moves past a pulse onset, 
> that pulses estimate is frozen, and you could subtract its time domain 
> representation from the estimator's input signal. Maybe you could 
> estimate one pulse at a time and assume all previous pulse estimates are 
> perfect. These kind of considerations are standard in moving-horizon 
> estimation.
> 
> Ross.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> On 5/08/2026 5:14 am, QueueSevenM wrote:
> > On 2026-08-04 08: 53, robert bristow-johnson wrote: Maybe you should 
> > post this in the Signal Processing Stack Exchange or some place where we 
> > can read the LaTeX math. Or render it into a .pdf file and post a link 
> > to it? -- r b-j . _ . _ . _ .
> > ZjQcmQRYFpfptBannerStart
> > This Message Is From an External Sender
> > This message came from outside your organization.
> > ZjQcmQRYFpfptBannerEnd
> > 
> > On 2026-08-04 08:53, robert bristow-johnson wrote:
> > 
> >> Maybe you should post this in the Signal Processing Stack Exchange or 
> >> some place where we can read the LaTeX math. Or render it into a .pdf 
> >> file and post a link to it? -- r b-j . _ . _ . _ . _ rbj@  
> >> audioimagination. com "Imagination is more important
> >> ZjQcmQRYFpfptBannerStart
> >> This Message Is From an External Sender
> >> This message came from outside your organization.
> >> ZjQcmQRYFpfptBannerEnd
> >> Maybe you should post this in the Signal Processing Stack Exchange or som
> e place where we can read the LaTeX math.
> >>
> >> Or render it into a .pdf file and post a link to it?
> >>
> >>
> >> --
> >>
> >> r b-j . _ . _ . _ . _ [email protected]
> >>
> >> "Imagination is more important than knowledge."
> >>
> >> .
> >> .
> >> .
> > 
> >  > Or render it into a .pdf file and post a link to it?
> > 
> > That's a good idea. I've attached a pdf version.
> > 
> >  > Maybe you should post this in the Signal Processing Stack Exchange or 
> > some place where we can read the LaTeX math.
> > 
> > It's not really a question, so I don't think they'd accept it. Maybe you 
> > could say just the part optimization could be made into a question, but 
> > I think it would too open-ended. I believe Stack Exchange requires 
> > questions to not be open-ended.
> > 
> 
> Hello Ross,
> 
> I believe your understanding is mostly correct. But I will clarify something
> in case it didn't come through. A well-known property of the voice is that
> of shape-invariance. That is, that the properties of each voice pulse are
> roughly the same regardless of the pitch. Importantly for this, one of those
> properties is duration. In this theoretical model, the voice pulses are
> assumed to be infinite duration impulses. Of course, in reality, the energy
> decays rapidly so most of it can be assumed to be concentrated within a
> small time range.
> 
> In the proposed implementation, the windows used for the reconstruction
> process are actually quite large. So most of the window would actually have
> almost no energy, and the main voice pulse only makes a small portion of the
> window. The window size L is always constant, so a higher pitch means that
> the amount of voice pulses that can be overlapping also increases. I
> referred to that maximum as M. Anyway, most of this overlapping are actually
> very low energy contributions.
> 
> I should also add that the way I have proposed the technique, it is not
> really a new processing algorithm. Rather it is basically just a step that
> can be added on top of the WBHSM algorithm to refine its existing
> estimation.
> 
> With regards to local vs. global optimization, I should clarify I was
> actually not referring to time directly. The limited window size already
> limits the amount of overlapping voice pulses to M. Each row of the matrix
> corresponds to up to M different local samples within M different voice
> pulses that all correspond to the same input sample. Each local sample of
> each voice pulse uniquely corresponds to one input signal sample (but not
> the other way around). What I actually meant with the local vs. global
> optimization was regards to the heuristics. While the variables in each row
> are unique, they also affect the behavior for the optimization of other
> rows. This is a big problem if we are optimizing each row separately. For
> example, consider a heuristic which desires a smooth time-domain signal for
> each voice pulse (i.e. minimizes the total variation). This heuristic would
> be significantly hampered by this problem. For example, there were several
> adjacent local samples in a voice pulse windows that had high variation, and
> there was also residual such that adding it would make this variation much
> lower. However, this may not end out being optimized by the algorithm
> because each of these local samples in the voice pulse would correspond to
> separate rows, and just adding the residual to one individual value may not
> decrease that heuristic's cost.
> 
> >The estimator should, for any time segment, consider all pulses that make a
> non-zero contribution to the signal (possibly weighted). So you might want
> to estimate at least a few overlapping pulses simultaneously. This could be
> done as a moving-horizon estimate where you estimate pulse parameters
> sequentially: i.e. once the window moves past a pulse onset, that pulses
> estimate is frozen, and you could subtract its time domain representation
> from the estimator's input signal. Maybe you could estimate one pulse at a
> time and assume all previous pulse estimates are perfect. These kind of
> considerations are standard in moving-horizon estimation.
> 
> I have actually considered this idea already. In fact, this idea was
> actually the precursor to my present idea. There is a massive problem with
> though that makes unviable that I realized during testing. The problem is
> that we only subtract the voice pulses from one side, and not the other.
> Since other voice pulses still exist on the right side, our window is still
> limited to a single period assuming we doing this based on the wide-band
> harmonic method. However, since we subtracted voice pulses on the left side,
> the value there is exactly zero, but is not on the other side. Thus, the
> signal is no longer periodic and the spectrum is distorted significantly.
> 
> After this realization, I spent a lot of time thinking and eventually came
> up with my current idea.
> 
> Cheers.
> 
> 
>

-- 
Sampo Syreeni, aka decoy - [email protected], https://urldefense.com/v3/__http://decoy.iki.fi/front__;!!BDUfV1Et5lrpZQ!Vrr9Q_DapmDuLiPXxAz2EFyCMhT6QxBlKaKs_8QdQERYlkjn9svVMYQL2G9qw0GjroA-RjewswZ02ZwUuPdDDG8$
+358-40-3648785, 025E D175 ABE5 027C 9494 EEB0 E090 8BA9 0509 85C2

Reply via email to