phoneme 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dea0d754d88bb4dca156ce2643c451c8190b16f1
4
+ data.tar.gz: 2a1c408e7e0777e1c26b06d1366262ded5007291
5
+ SHA512:
6
+ metadata.gz: 50bcf8090102991fc205d5ff43d2c5ec9ed0930e672d6e5a8672a37eef2d511aac0ba5adeedf1e015fe7a3a75778b5861d558623b51a793256c557c228bf3d2c
7
+ data.tar.gz: fe8127a46f6d4e111b0ab44c36b1b672b3d00fe8954c54348336ac12b90fd64fe4f9416a03a952c1a7e3c8338efe5180412387a3e7cce77b264f7803b76f49bd
checksums.yaml.gz.sig ADDED
Binary file
data/lib/phoneme.rb ADDED
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: phoneme.rb
4
+
5
+ # resources
6
+ # =========
7
+ #
8
+ # * https://github.com/chrisvfritz/isabella
9
+ # * http://www.speech.cs.cmu.edu/tools/lmtool-new.html
10
+ #
11
+
12
+ class Phoneme
13
+
14
+ attr_reader :to_s
15
+
16
+ def initialize(s)
17
+
18
+ @a = [
19
+ {ey: /^a.[eo]/, ae: /^a.*/ },
20
+ :b,
21
+ {k: /^ca/, ch: /^(ch)/,s: /^ce|^c.*/},
22
+ :d,
23
+ {iy: /^ee|^e$/, eh: /^e.*/},
24
+ :f,
25
+ {jh: /^ge/, g: /^g.*/},
26
+ {hh: /^h./},
27
+ {ay: /^i$|^ie|^igh|^i.e/, ih: /^i.*/},
28
+ :jh,
29
+ {n: /^kn/, k: /^k.*/},
30
+ :l,
31
+ {m: /^(me)|^m/},
32
+ {ng: /^ng/, n: /^n.*/},
33
+ {ow: /^oa|^o$/, oy: /^oy/, aw: /^(ou)/, ah: /^om|^pl/},
34
+ {p: /^p.*/},
35
+ :q,
36
+ :r,
37
+ {sh: /^(sh)/, s: /^s.*/},
38
+ {th: /^(th)/, t: /^t.*/},
39
+ {uw: /^(u)b|^(u)de/, er: /^(ur)/, uh: /^u.*/},
40
+ :v,
41
+ {w: /^(wh)|^w.*/},
42
+ {z: /^xy/, e: /^x.*/},
43
+ {zh: /^zu/, z: /^z.*/}
44
+ ]
45
+
46
+ @to_s = phonemize(s).sub(/(e|iy) $/,'').rstrip.upcase
47
+ end
48
+
49
+ private
50
+
51
+ def phonemize(s)
52
+
53
+ s2 = s[0..2]
54
+
55
+ r3 = ''
56
+
57
+ r = @a.detect do |x|
58
+
59
+ if x.is_a? Symbol then
60
+
61
+ found = s2[0] == x.to_s
62
+ r3 = x.to_s + ' '
63
+ found
64
+
65
+ elsif x.is_a? Hash
66
+
67
+ x.detect do |sym,regex|
68
+
69
+ found = s2[regex]
70
+ r3 = found ? sym.to_s + ' ' : ''
71
+ found
72
+ end
73
+
74
+ end
75
+ end
76
+
77
+ if r then
78
+
79
+ new_s = $1 ? s[2..-1] : s[1..-1]
80
+
81
+ if new_s.length > 0 then
82
+ new_sym = phonemize(new_s)
83
+ r3 + new_sym
84
+ else
85
+ r3
86
+ end
87
+
88
+ end
89
+
90
+ end
91
+ end
92
+
93
+
94
+ if __FILE__ == $0 then
95
+
96
+ puts Phoneme.new(ARGV[0].first).to_s
97
+
98
+ end
99
+
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,68 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: phoneme
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTE1MDcyOTE3MDYyNFoXDTE2MDcyODE3MDYyNFowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
+ ggEBAKcqYKiQBPmoZPIUgpaKC9hf84zTCqdfugjiSunwEdMGw2uAq52CStZsCpFc
19
+ aHOtFIzeUHZ+/kgkTr4vSwy1o2/VWEZbyy60zor7xXbWcnndig5ag65gPpoJ40tE
20
+ TBlawXc0CW/xzCFWi3UKJLMloYRbP0KSD+Mlwzsws6HbGemxinWEDgSZQ2myJV9k
21
+ vZFmJvMpo0KXczif1e2VsxxnDwpWJLaDm+CjEi2wTxjOC5Pa9XQq8bgOMAl5iFJs
22
+ jNoijfFROA4pTl/pp/XomkhpIdYsF9RXzzrArIDvzabL2/1HGAL77pS4etnPSfD2
23
+ gKNUcLXTg06+XBpzNkEsU7CG2XECAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQU6xEFUFAlWSUAyxjNWrQeeNyaJ7swJgYDVR0RBB8w
25
+ HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAgeq0OYeP
27
+ e3bvY5SP/FseUt4t5RJo4vyuGYrH5ZEOFlaf2RRfeUzT4+3mjZq7ZYjjGgHJDEis
28
+ RIYahc5YOzqlGLjZRHzjlfV7QsZJ/j0l9v/KvXcTY3r28Q4DibpNLBmufZom19rD
29
+ pjf/e2/S5uT1HjyAjNR+Co8b77qhJSBQht9bRJGx5bo2BKhxr+wQEAXnsoWOqo8f
30
+ HM1mabqMTVj9SSDbxHO8J7SH++BYGULJdEoq3eMU3Zv7HoVOIUMOFpQpVm0/9bP4
31
+ SQk8Kbde1FTCm9onCpo6/RPLxcaiyl97opYx0Cje7Vs/TIygD197+rC4MkSKY9oo
32
+ IkOAXDyB+OV+RA==
33
+ -----END CERTIFICATE-----
34
+ date: 2015-07-29 00:00:00.000000000 Z
35
+ dependencies: []
36
+ description:
37
+ email: james@r0bertson.co.uk
38
+ executables: []
39
+ extensions: []
40
+ extra_rdoc_files: []
41
+ files:
42
+ - lib/phoneme.rb
43
+ homepage: https://github.com/jrobertson/phoneme
44
+ licenses:
45
+ - MIT
46
+ metadata: {}
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubyforge_project:
63
+ rubygems_version: 2.4.8
64
+ signing_key:
65
+ specification_version: 4
66
+ summary: Experimental gem to input a word and output a phenome for use in a dictionary
67
+ file used by PocketSphinx.
68
+ test_files: []
metadata.gz.sig ADDED
@@ -0,0 +1 @@
1
+ �ˏ#(P��� G��E�<;.�@Y�z��p��.�P;�n�h�b �pa��y�J8�G�^�"3t+�_�����w��J�oW[�+3�eJm����9V���4}�k�=M+�~���%�U~���^�+��ڜb��f�NZ��Q��_��*���@{�o�,�E�;EӉKc�^��}���q���c�ʒEk�G�#1��ov�����#r$���&A��ז��f^�qud{ -�Rnrd膂�_��;�cB�L���+Y���