This Message Is From an External Sender
This message came from outside your organization.
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
