phoneme 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +1 -3
- data/lib/phoneme.rb +17 -13
- metadata +1 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 892ce9b25534b32c6dd943fe2c8b44e2e9465739
|
4
|
+
data.tar.gz: 65f0324b60013aa95a5b370a44a2876fcb03993a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3536b5bd2c71347a9196c2b6cf7c980b106f481dce33cb54b142c2c8754c92c9cadd9387837759df17a1f2234cc20d708790a95afd11b171aae36a7e1ca02b25
|
7
|
+
data.tar.gz: caf9b07d998c6d38e72ee827ad9f230197d5b46e908f382d170d86b82d26a58c72c02ec95fdb2dab6d9dee3f1c563e4b6dfaec2185ab9b96ff30cfa671a92582
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
data/lib/phoneme.rb
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
#
|
8
8
|
# * https://github.com/chrisvfritz/isabella
|
9
9
|
# * http://www.speech.cs.cmu.edu/tools/lmtool-new.html
|
10
|
+
# * http://www.speech.cs.cmu.edu/cgi-bin/cmudict
|
10
11
|
#
|
11
12
|
|
12
13
|
class Phoneme
|
@@ -16,49 +17,52 @@ class Phoneme
|
|
16
17
|
def initialize(s)
|
17
18
|
|
18
19
|
@a = [
|
19
|
-
{ey: /^a.[eo]/, ah: /^a$/, ae: /^a.*/ },
|
20
|
+
{:'ey k ah n' => /^(acon)$/, ey: /^a.[eo]/, ah: /^a$|^al$/, ae: /^a.*/ },
|
20
21
|
:b,
|
21
|
-
{:'s k' => /^(sc)/},
|
22
|
-
{
|
23
|
-
{
|
24
|
-
{
|
22
|
+
{:'s k' => /^(sc)/},
|
23
|
+
{:'s ih r iy' => /^(cere)/ },
|
24
|
+
{:'k l ow' => /^(clo)/, k: /^c[oal]|^(ck)/, ch: /^(ch)/,s: /^ce|^c.*/},
|
25
|
+
{dz: /^(ds)/, d: /^(d[de])$|^d.*/},
|
26
|
+
{:'iy z' => /^(eese)$/, iy: /^(e[eayi])|^e$/},
|
27
|
+
{:'eh k s' => /^x$|^(ex)/, eh: /^e.*/},
|
25
28
|
:f,
|
26
29
|
{jh: /^ge/, :'' => /^(gh)/, g: /^g.*/},
|
27
30
|
{hh: /^h.*/},
|
28
31
|
{ay: /^i$|^(ie)|^igh|^i.e/, ih: /^i.*/},
|
29
32
|
:jh,
|
30
|
-
{n: /^(kn)/, k: /^k.*/},
|
33
|
+
{n: /^(kn)/, k: /^(ke)$|^k.*/},
|
31
34
|
{l: /^(le)$|^l.*/},
|
32
35
|
{m: /^me$|^(me)|^m/},
|
33
|
-
{ng: /^(ng)/, n: /^n.*/},
|
36
|
+
{ng: /^(ng)/, nz: /^(ns)/, n: /^n.*/},
|
34
37
|
{ow: /^(oa)|^o$/, oy: /^(oy)/, uh: /^(oo)/, ao: /^(ou)/,
|
35
38
|
aw: /^(o[uw])/, ah: /^om|^pl/, aa: /^(o).*/},
|
36
39
|
{p: /^p.*/},
|
37
40
|
:q,
|
41
|
+
{:'r ah t' => /(rrot)/, :'r ay n' => /^(rin)d/},
|
38
42
|
:r,
|
39
|
-
{sh: /^(sh)/,
|
43
|
+
{sh: /^(sh)/, s: /^(s[es])$|^s.*/},
|
40
44
|
{:'t ah l' => /(t?tle)$/},
|
41
45
|
{th: /^(th)/},
|
42
46
|
{:'ch er' => /(ture)/},
|
43
|
-
{t: /^(te)$|^t.*/},
|
47
|
+
{:'t er' => /^(ter)/, t: /^(te)$|^t.*/},
|
44
48
|
{:'y uw' => /^ut[eu]/},
|
45
49
|
{uw: /^(u)b|^(u)de/, er: /^(ure?)/, ah: /^u.*/},
|
46
50
|
:v,
|
47
51
|
{uw: /^(wo)/, w: /^(wh)|^w.*/},
|
48
|
-
{z: /^xy/,
|
52
|
+
{z: /^xy/, e: /^x.*/},
|
49
53
|
:y,
|
50
54
|
{zh: /^zu/, z: /^z.*/}
|
51
55
|
]
|
52
56
|
|
53
57
|
@to_s = phonemize(s.downcase)\
|
54
|
-
.sub(/
|
55
|
-
.sub(/th eh t /, 'th ey t ').sub(/^(y )ay( l )/,'\1iy\2').rstrip.upcase
|
58
|
+
.sub(/ ([mn]) iy$/,' \1').sub(/th( iy)$/,'dh\1')\
|
59
|
+
.sub(/th eh t /, 'th ey t ').sub(/^([y] )ay( l )/,'\1iy\2').rstrip.upcase
|
56
60
|
end
|
57
61
|
|
58
62
|
private
|
59
63
|
|
60
64
|
def phonemize(s)
|
61
|
-
|
65
|
+
#puts 's: ' + s.inspect
|
62
66
|
s2 = s[0..3]
|
63
67
|
|
64
68
|
r3 = ''
|
metadata
CHANGED
metadata.gz.sig
CHANGED
Binary file
|