phoneme 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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���