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 +7 -0
- checksums.yaml.gz.sig +0 -0
- data/lib/phoneme.rb +99 -0
- data.tar.gz.sig +0 -0
- metadata +68 -0
- metadata.gz.sig +1 -0
    
        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���
         |