いらないモノ、ひつようなモノ

書籍、音楽、そして若干のテクノロジー

日本語フォルマント周波数

確かなんかの論文かなんかからとってきました

表 1:日本語の 5母音のホルマント周波数( Hz)
       F1      F2      F3      F4      F5
/a/     800     1300    2500    3500    4500
/i/     250     2100    3100    3500    4500
/u/     250     1400    2200    3500    4500
/e/     450     1900    2400    3500    4500
/o/     450     900     2600    3500    4500

これを使って

<CsoundSynthesizer>
;fof1
<CsOptions>
-d --sched 88 -+rtaudio=alsa -odac:hw:0,0 -m0
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 44100
kr = 44100
ksmps = 1
nchnls = 2

; Instrument #1. should be a
instr 1
  ; Values common to all of the formants.
  kfund init 261.659
  koct  init 0
  kris  init 0.003
  kdur  init 0.02
  kdec  init 0.007
  iolaps = 14850
  ifna = 1
  ifnb = 2
  itotdur = p3

  ; First formant.
  k1amp = ampdb(0)
  k1form init 800
  k1band init 80

  ; Second formant.
  k2amp = ampdb(-4)
  k2form init 1300
  k2band init 90

  ; Third formant.
  k3amp = ampdb(-20)
  k3form init 2500
  k3band init 120

  ; Fourth formant.
  k4amp = ampdb(-36)
  k4form init 3500
  k4band init 130

  ; Fifth formant.
  k5amp = ampdb(-60)
  k5form init 4500
  k5band init 140

  a1 fof k1amp, kfund, k1form, koct, k1band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a2 fof k2amp, kfund, k2form, koct, k2band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a3 fof k3amp, kfund, k3form, koct, k3band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a4 fof k4amp, kfund, k4form, koct, k4band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a5 fof k5amp, kfund, k5form, koct, k5band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur

  ; Combine all of the formants together.
  outs (a1+a2+a3+a4+a5) * 16384, (a1+a2+a3+a4+a5) * 16384
endin

instr 2 ; shoud be i
  ; Values common to all of the formants.
  kfund init 261.659
  koct  init 0
  kris  init 0.003
  kdur  init 0.02
  kdec  init 0.007
  iolaps = 14850
  ifna = 1
  ifnb = 2
  itotdur = p3

  ; First formant.
  k1amp = ampdb(0)
  k1form init 250
  k1band init 80

  ; Second formant.
  k2amp = ampdb(0)
  k2form init 2000
  k2band init 80

  ; Third formant.
  k3amp = ampdb(-40)
  k3form init 3100
  k3band init 100

  ; Fourth formant.
  k4amp = ampdb(-49)
  k4form init 3500
  k4band init 130

  ; Fifth formant.
  k5amp = ampdb(-50)
  k5form init 4500
  k5band init 140

  a1 fof k1amp, kfund, k1form, koct, k1band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a2 fof k2amp, kfund, k2form, koct, k2band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a3 fof k3amp, kfund, k3form, koct, k3band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a4 fof k4amp, kfund, k4form, koct, k4band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a5 fof k5amp, kfund, k5form, koct, k5band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur

  ; Combine all of the formants together.
  outs (a1+a2+a3+a4+a5) * 16384, (a1+a2+a3+a4+a5) * 16384
endin

instr 3
  ; Values common to all of the formants.
  kfund init 261.659
  koct  init 0
  kris  init 0.003
  kdur  init 0.02
  kdec  init 0.007
  iolaps = 14850
  ifna = 1
  ifnb = 2
  itotdur = p3

  ; First formant.
  k1amp = ampdb(0)
  k1form init 250
  k1band init 80

  ; Second formant.
  k2amp = ampdb(-4)
  k2form init 1400
  k2band init 90

  ; Third formant.
  k3amp = ampdb(-20)
  k3form init 2200
  k3band init 120

  ; Fourth formant.
  k4amp = ampdb(-36)
  k4form init 3500
  k4band init 130

  ; Fifth formant.
  k5amp = ampdb(-60)
  k5form init 4500
  k5band init 140

  a1 fof k1amp, kfund, k1form, koct, k1band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a2 fof k2amp, kfund, k2form, koct, k2band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a3 fof k3amp, kfund, k3form, koct, k3band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a4 fof k4amp, kfund, k4form, koct, k4band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a5 fof k5amp, kfund, k5form, koct, k5band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur

  ; Combine all of the formants together.
  outs (a1+a2+a3+a4+a5) * 16384, (a1+a2+a3+a4+a5) * 16384
endin

instr 4
  ; Values common to all of the formants.
  kfund init 261.659
  koct  init 0
  kris  init 0.003
  kdur  init 0.02
  kdec  init 0.007
  iolaps = 14850
  ifna = 1
  ifnb = 2
  itotdur = p3

  ; First formant.
  k1amp = ampdb(0)
  k1form init 450
  k1band init 80

  ; Second formant.
  k2amp = ampdb(-4)
  k2form init 1900
  k2band init 90

  ; Third formant.
  k3amp = ampdb(-20)
  k3form init 2400
  k3band init 120

  ; Fourth formant.
  k4amp = ampdb(-36)
  k4form init 3500
  k4band init 130

  ; Fifth formant.
  k5amp = ampdb(-60)
  k5form init 4500
  k5band init 140

  a1 fof k1amp, kfund, k1form, koct, k1band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a2 fof k2amp, kfund, k2form, koct, k2band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a3 fof k3amp, kfund, k3form, koct, k3band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a4 fof k4amp, kfund, k4form, koct, k4band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a5 fof k5amp, kfund, k5form, koct, k5band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur

  ; Combine all of the formants together.
  outs (a1+a2+a3+a4+a5) * 16384, (a1+a2+a3+a4+a5) * 16384
endin

instr 5
  ; Values common to all of the formants.
  kfund init 261.659
  koct  init 0
  kris  init 0.003
  kdur  init 0.02
  kdec  init 0.007
  iolaps = 14850
  ifna = 1
  ifnb = 2
  itotdur = p3

  ; First formant.
  k1amp = ampdb(0)
  k1form init 450
  k1band init 80

  ; Second formant.
  k2amp = ampdb(-4)
  k2form init 900
  k2band init 90

  ; Third formant.
  k3amp = ampdb(-20)
  k3form init 2600
  k3band init 120

  ; Fourth formant.
  k4amp = ampdb(-36)
  k4form init 3500
  k4band init 130

  ; Fifth formant.
  k5amp = ampdb(-60)
  k5form init 4500
  k5band init 140

  a1 fof k1amp, kfund, k1form, koct, k1band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a2 fof k2amp, kfund, k2form, koct, k2band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a3 fof k3amp, kfund, k3form, koct, k3band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a4 fof k4amp, kfund, k4form, koct, k4band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a5 fof k5amp, kfund, k5form, koct, k5band, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur

  ; Combine all of the formants together.
  outs (a1+a2+a3+a4+a5) * 16384, (a1+a2+a3+a4+a5) * 16384
endin

</CsInstruments>
<CsScore>

; Table #1, a sine wave.
f 1 0 4096 10 1
; Table #2.
f 2 0 1024 19 0.5 0.5 270 0.5

; Play Instrument #1 for three seconds.
i1  0    0.5
i2  1    0.5
i3  1.5    0.5
i4  2.0    0.5
i5  2.5    0.5
</CsScore>
</CsoundSynthesizer>

まだ、まだ、修正が必要。