I'm planning to make my own virtual singer software, like Yamaha's Vocaloid. Contrary to Vocaloid which composes voice syllable-wise, my software should compose voice phoneme-wise.

As a consequence, I have to analyze the formants of all phonemes. Though technically there are infinite numbers of phonemes because my software must be able to produce phonemes of arbitrary languages, I have a workaround; see below.

I set [ə] as the neutral position, and let the other sounds driven by the following parameters. Though this is a crude model and doesn't reflect the actual semantics of acoustics, this model should be easy to implement.

The following parameters determine the vocal quality:

  • VOLume

  • PITch

  • Breath/Creak: Determines the glottal state. Voiceless ~ Breathy ~ Modal ~ Creaky ~ Glottal stop.

The following parameters determine the formants:

  • PHAryngealization: Determines the position of the tongue root. When set to maximum value, it is epiglottal stop.

  • NASalization: Determines the width of the velopharyngeal opening. When set to minimum value, it is an oral sound.

  • Front/Back: Determines the horizontal position of the tongue. When fully back, it is uvular stop.

  • Close/Open: Determines the vertical position of the tongue back and the jaw. When fully closed, it is dorsal stop.

  • CORonalization: Determines the vertical position of the tongue tip. When set to maximum value, it is coronal stop.

  • LATeralization: Determines the shape of the tongue. Also discriminates sibilant vs. non-sibilant.

  • JAW: Determines the horizontal position of the jaw. When set to maximum value, it is a labiodental consonant.

  • COMpression: Determines the closure of the lips. When set to maximum value, it is labial stop.

  • ROUnding: Determines the shape of the lips.

My plan to apply this model is, step-by-step (here only concerning vowels):

  1. Record voiceless versions of 'extreme' vowels, such as [ḁ], [i̥], and [u̥].

  2. Least-square-approximate their spectra with a linear combination of functions that models formants. I conjecture those functions to be the PDF of Kumaraswamy distribution.

  3. Interpolate the result to produce 'intermediate' vowels, such as [ə̥].

  4. Use resulting spectra as filters to produce voiced vowels.

TL;DR: But I'm unsure how many functions are needed to model formants. What is the maximum possible number of formants?

  • 2
    I don't think there's any theoretical limit on the number of formants, though practically speaking the first three are the ones that really matter.
    – Draconis
    Mar 22, 2020 at 0:43
  • The formants of sung vowels are not the same as the formants of spoken vowels, even if you are only talking about F1 - F3, which are usually considered to characterise the vowel as distinct from the voice of the speaker. I think this is true across the board, but professional singers will deliberately alter the vowel quality, for example because the alignment between the harmonics of F0 and the formants of the vowel has a significant effect on the timbre of the voice. You also have the so-called singer's formant.
    – rchivers
    Mar 22, 2020 at 5:03
  • I almost think that constraints imposed by the vowel should be the last step in the modelling process rather than the foundation of the whole model.
    – rchivers
    Mar 22, 2020 at 5:05

1 Answer 1


The theoretical answer is that there is no absolute upper limit, and the non-theoretical impractical answer is 10. The practical answer is 5-6, depending on why you really care. You describe your setup articulatorily, but formants are acoustic objects. I presume that you are using articulatory settings to somehow synthesize waveforms. If so, you could be more or less doing this as source-filter synthesis, or as lpc synthesis. Since some crucial details are lacking, I can only talk in general terms, from the perspective of source-filter synthesis. As it happens, I've been exploring some problems in that area, aiming to extract reliable formants for expertly-produced IPA vowels.

The number of formants that would be present is relative to a frequency range (e.g. "up to 5Khz" versus "up to 8Khz"). In the case of humans, 5K is approximately "what you would care about" for adult males, and for people with shorter vocal tracts, maybe 8K (children – dunno what would be correct for newborns). A conventional number for adult females is 5.5K. Given a target frequency range, you have to pick the right number of formants, i.e. 5, 5.5 or 6 (maybe 4.5 or 6.5, that remains to be seen). You basically pair the right number of formants with the right frequency range. If you are wrong, you may merge formants (F1 and F2 will not be distinguished for [u,o]) – not enough formants – or you may grow spurious formants – too many formants. You don't want the maximum possible number of formants, you want the right number of formants. I hope to know what number of formants and frequency range gives a "correct" answer for an IPA chart of 3 experts within a few days. I do know however that even the experts vary massively for what is ostensively the same vowel.

(The "5.5 formants" oddity is due to the way LPC analysis works: you need twice the number of LPC coefficients as desired formants, since the coefficients are pole-zero pairs. So saying 5.5 formants translates into 11 coefficients).

The upper limit on formants is based on facts of speeech, that is, we don't care from an informational perspective about the 6th formant value. The acoustics of singing is different enough that I don't think you can translate speech-centric settings to singing-specific settings. Filtering out (discounting) high frequencies could be counterproductive if the goal is synthesized singing voices that are aesthetically successful.

  • The frequency range I care about would be up to 22050Hz, since the usual sampling rate is 44100Hz. (cf. Nyquist theory) Mar 22, 2020 at 4:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.