summaryrefslogtreecommitdiff
path: root/src/lib/sounds/sounds.mli
blob: 3b7b76018655fbad3b1e3f80f1859f241c2e8de6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
module Sig = Sig

type t
val muted : t -> t

val a : t
val e : [`Closed | `Opened] -> t
val eu : [`Closed | `Opened] -> t

val o : t
val schwa: t

(** This is an empty sound.

    It can be used to replace any element in a syllabus *)
val none: t

val space: string -> t

(** This is the voyel i like in "ici"
    When nazalized, the voyel become [in] like in "ainsi" *)
val i : t

(** This is the sound present with letter [ai].
    It is the e like in "semaine".

    When nazalized, the voyel become [in]


*)
val voyel_ai : t

(** This is the sound ou like in "ouvrier"
    When nazalized, the voyel does not change *)
val voyel_u : t

(** This is the sound u like in "unis"
    When nazalized, the voyel become [un] like in "brun" *)
val voyel_y : t

(** Create a diphtongue from a semi-voyel and a voyel. 

    Note that there is no control here that the two elements follows the
    expected type. *)
val diphtongue
  : t -> t -> t

val nasal: t -> t option

val p: t
val b: t
val t: t
val d: t
val k: t
val g: t
val f: t
val v: t
val s: t
val z: t
val sz: t
val ch: t
val j: t

val n: t
val gn: t
val m: t

val r: t
val l: t

val semi_voyel_w: t
val semi_voyel_y: t
val semi_voyel_u: t

val is_voyel : t -> bool
val is_nasal : t -> bool

val repr
  : (module Sig.REPR) -> t list -> string