Mel scale

From testwiki
Revision as of 09:28, 5 May 2024 by imported>Mikhail Ryazanov (Criticism: punct.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Short description

Plots of pitch mel scale versus hertz scale
A440 Template:Audio. 440 Hz = 549.64 mels

The mel scale (after the word melody)[1] is a perceptual scale of pitches judged by listeners to be equal in distance from one another. The reference point between this scale and normal frequency measurement is defined by assigning a perceptual pitch of 1000 mels to a 1000 Hz tone, 40 dB above the listener's threshold. Above about 500 Hz, increasingly large intervals are judged by listeners to produce equal pitch increments.

Formula

A formula (O'Shaughnessy 1987) to convert f hertz into m mels is[2] m=2595log10(1+f700). File:Mel-scale from 200 to 1500, in intervals of 50.ogg

History and other formulas

The formula from O'Shaughnessy's book can be expressed with different logarithmic bases: m=2595log10(1+f700)=1127ln(1+f700).

The corresponding inverse expressions are f=700(10m25951)=700(em11271).

There were published curves and tables on psychophysical pitch scales since Steinberg's 1937[3] curves based on just-noticeable differences of pitch. More curves soon followed in Fletcher and Munson's 1937[4] and Fletcher's 1938[5] and Stevens' 1937[1] and Stevens and Volkmann's 1940[6] papers using a variety of experimental methods and analysis approaches.

In 1949 Koenig published an approximation based on separate linear and logarithmic segments, with a break at 1000 Hz.[7]

Gunnar Fant proposed the current popular linear/logarithmic formula in 1949, but with the 1000 Hz corner frequency.[8]

An alternate expression of the formula, not depending on choice of logarithm base, is noted in Fant (1968):[9][10] m=1000log2log(1+f1000).

In 1976, Makhoul and Cosell published the now-popular version with the 700 Hz corner frequency.[11] As Ganchev et al. have observed, "The formulae [with 700], when compared to [Fant's with 1000], provide a closer approximation of the Mel scale for frequencies below 1000 Hz, at the price of higher inaccuracy for frequencies higher than 1000 Hz."[12] Above 7 kHz, however, the situation is reversed, and the 700 Hz version again fits better.

Data by which some of these formulas are motivated are tabulated in Beranek (1949), as measured from the curves of Stevens and Volkmann:[13]

Beranek 1949 mel scale data from Stevens and Volkmann 1940
Hz 20 160 394 670 1000 1420 1900 2450 3120 4000 5100 6600 9000 14000
mel 0 250 500 750 1000 1250 1500 1750 2000 2250 2500 2750 3000 3250

A formula with a break frequency of 625 Hz is given by Lindsay & Norman (1977);[14] the formula does not appear in their 1972 first edition: m=2410log10(0.0016f+1).

For direct comparison with other formulae, this is equivalent to m=2410log10(1+f625).

Most mel-scale formulas give exactly 1000 mels at 1000 Hz. The break frequency (e.g. 700 Hz, 1000 Hz, or 625 Hz) is the only free parameter in the usual form of the formula. Some non-mel auditory-frequency-scale formulas use the same form but with much lower break frequency, not necessarily mapping to 1000 at 1000 Hz; for example the ERB-rate scale of Glasberg and Moore (1990) uses a break point of 228.8 Hz,[15] and the cochlear frequency–place map of Greenwood (1990) uses 165.3 Hz.[16]

Other functional forms for the mel scale have been explored by Umesh et al.; they point out that the traditional formulas with a logarithmic region and a linear region do not fit the data from Stevens and Volkmann's curves as well as some other forms, based on the following data table of measurements that they made from those curves:[17]

Umesh et al. 1999 mel scale data from Stevens and Volkmann 1940
Hz 40 161 200 404 693 867 1000 2022 3000 3393 4109 5526 6500 7743 12000
mel 43 257 300 514 771 928 1000 1542 2000 2142 2314 2600 2771 2914 3228

Slaney's MATLAB Auditory Toolbox agrees with Umesh et al. and uses the following two-piece fit, though notably not using the "1000 mels at 1000 Hz" convention:[18] m(f)={3f200,f<1000,15+27log6.4(f1000),f1000.

Applications

The first version of Google's Lyra codec uses log mel spectrograms as the feature-extraction step. The transmitted data is a vector-quantized form of the spectrogram, which is then synthesized back to speech by a neural network. Use of the mel scale is believed to weigh the data in a way appropriate to human perception.[19] MelGAN takes a similar approach.[20]

Template:See also

Criticism

Stevens' student Donald D. Greenwood, who had worked on the mel scale experiments in 1956, considers the scale biased by experimental flaws. In 2009 he posted to a mailing list:[21] Template:Blockquote

See also

References

Template:Reflist

Template:Acoustics

  1. 1.0 1.1 Template:Cite journal
  2. Template:Cite book
  3. Template:Cite journal
  4. Template:Cite journal
  5. Template:Cite journal
  6. Template:Cite journal
  7. Template:Cite journal
  8. Gunnar Fant (1949) "Analys av de svenska konsonantljuden : talets allmänna svängningsstruktur", LM Ericsson protokoll H/P 1064.
  9. Fant, Gunnar. (1968). Analysis and synthesis of speech processes. In B. Malmberg (ed.), Manual of phonetics (pp. 173–177). Amsterdam: North-Holland.
  10. Template:Cite book
  11. Template:Cite book
  12. Template:Citation
  13. Beranek, Leo L. (1949). Acoustic measurements. New York: McGraw-Hill.
  14. Lindsay, Peter H.; & Norman, Donald A. (1977). Human information processing: An introduction to psychology (2nd ed.). New York: Academic Press.
  15. B. C. J. Moore and B. R. Glasberg, "Suggested formulae for calculating auditory-filter bandwidths and excitation patterns", Journal of the Acoustical Society of America 74: 750–753, 1983.
  16. Greenwood, D. D. (1990). A cochlear frequency–position function for several species—29 years later. The Journal of the Acoustical Society of America, 87, 2592–2605.
  17. Template:Cite conference
  18. Slaney, M. Auditory Toolbox: A MATLAB Toolbox for Auditory Modeling Work. Technical Report, version 2, Interval Research Corporation, 1998., translated to Python in librosa (librosa documentation).
  19. Template:Cite web See also: Template:ArXiv, Template:ArXiv.
  20. Template:Cite journal
  21. Template:Cite web