Add stress manipulation functions
Useful for comparing the phonetics in a more flexible manner.main
parent
6164773515
commit
3385e7fd15
@ -0,0 +1,64 @@
|
|||||||
|
(ns com.owoga.phonetics.stress-manip
|
||||||
|
(:require [clojure.string :as string]))
|
||||||
|
|
||||||
|
(defn primary-stress?
|
||||||
|
[phone]
|
||||||
|
(re-find #"1" phone))
|
||||||
|
|
||||||
|
(defn non-primary-stress?
|
||||||
|
[phone]
|
||||||
|
(re-find #"[2-9]" phone))
|
||||||
|
|
||||||
|
(defn unstressed?
|
||||||
|
[phone]
|
||||||
|
(re-find #"0" phone))
|
||||||
|
|
||||||
|
(defn remove-any-stress-signifiers
|
||||||
|
[phones]
|
||||||
|
(map #(string/replace % #"\d" "") phones))
|
||||||
|
|
||||||
|
(defn remove-non-primary-stress-signifiers
|
||||||
|
[phones]
|
||||||
|
(map #(string/replace % #"[02-9]" "") phones))
|
||||||
|
|
||||||
|
(defn unify-stressed
|
||||||
|
[phones]
|
||||||
|
(map #(string/replace % #"[2-9]" "1") phones))
|
||||||
|
|
||||||
|
(def consonant-unification-map
|
||||||
|
"This almost aligns with the phonemap that maps phones to whether they are vowels, aspirates, nasals, etc...
|
||||||
|
Slight but possibly important difference in stops. For example, I think T and D
|
||||||
|
are more unified than T and G; and G and K are more unifide than G and T."
|
||||||
|
{"T" "T"
|
||||||
|
"CH" "CH"
|
||||||
|
"K" "K"
|
||||||
|
"HH" "HH"
|
||||||
|
"L" "L"
|
||||||
|
"JH" "CH" ;; <-
|
||||||
|
"G" "K" ;; <-
|
||||||
|
"M" "M" ;; <-
|
||||||
|
"S" "S"
|
||||||
|
"Y" "Y"
|
||||||
|
"Z" "S" ;; <-
|
||||||
|
"R" "R"
|
||||||
|
"F" "F"
|
||||||
|
"B" "B"
|
||||||
|
"SH" "CH" ;; <-
|
||||||
|
"P" "B" ;; <-
|
||||||
|
"V" "F" ;; <-
|
||||||
|
"TH" "T" ;; <-
|
||||||
|
"N" "M" ;; <-
|
||||||
|
"DH" "T" ;; <-
|
||||||
|
"W" "Y" ;; <-
|
||||||
|
"ZH" "S" ;; <-
|
||||||
|
"NG" "M" ;; <-
|
||||||
|
"D" "T" ;; <-
|
||||||
|
})
|
||||||
|
|
||||||
|
(defn unify-consonants
|
||||||
|
[phones]
|
||||||
|
(mapv #(get consonant-unification-map % %) phones))
|
||||||
|
|
||||||
|
(defn remove-unstressed-signifiers
|
||||||
|
[phones]
|
||||||
|
(map #(string/replace % #"0" "")))
|
Loading…
Reference in New Issue