On 2026-08-28 01:46, Sampo Syreeni wrote:

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

Hello,

There is PDF version attached in my second message: https://listserv.cuit.columbia.edu/scripts/wa.exe?A2=MUSIC-DSP;4112bc14.2608A&S= [1]

The later update was also attached as a PDF: https://listserv.cuit.columbia.edu/scripts/wa.exe?A2=MUSIC-DSP;8bd93c70.2608C&S= [2]



Links:
------
[1] https://listserv.cuit.columbia.edu/scripts/wa.exe?A2=MUSIC-DSP;4112bc14.2608A&S= [2] https://listserv.cuit.columbia.edu/scripts/wa.exe?A2=MUSIC-DSP;8bd93c70.2608C&S=

Reply via email to