voxbi 0.3.0 → 1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -2
- data/bin/voxbi +3 -2
- data/data/{paires_disponibles.csv → available_pairs.csv} +1 -0
- data/data/conversion.csv +10 -10
- data/data/{phono.json → dictionary.json} +1 -1
- data/data/exceptions.csv +1 -0
- data/data/{liaisons.csv → linkage.csv} +0 -0
- data/data/pairs.wav +0 -0
- data/data/{paires → pairs}/_.ogg +0 -0
- data/data/{paires → pairs}/a.ogg +0 -0
- data/data/pairs/b.ogg +0 -0
- data/data/{paires → pairs}/ba-old1.ogg +0 -0
- data/data/{paires → pairs}/ba.ogg +0 -0
- data/data/{paires → pairs}/be.ogg +0 -0
- data/data/{paires → pairs}/bi-old1.ogg +0 -0
- data/data/{paires → pairs}/bi.ogg +0 -0
- data/data/{paires → pairs}/bibi.ogg +0 -0
- data/data/{paires → pairs}/bo.ogg +0 -0
- data/data/{paires → pairs}/bu.ogg +0 -0
- data/data/{paires → pairs}/by.ogg +0 -0
- data/data/{paires → pairs}/b/305/223.ogg +0 -0
- data/data/{paires → pairs}/b/311/224.ogg +0 -0
- data/data/{paires → pairs}/b/316/261.ogg +0 -0
- data/data/{paires → pairs}/b/317/203.ogg +0 -0
- data/data/{paires → pairs}/b/317/265.ogg +0 -0
- data/data/{paires → pairs}/d.ogg +0 -0
- data/data/{paires → pairs}/da.ogg +0 -0
- data/data/{paires → pairs}/de.ogg +0 -0
- data/data/{paires → pairs}/di.ogg +0 -0
- data/data/{paires → pairs}/do.ogg +0 -0
- data/data/{paires → pairs}/du.ogg +0 -0
- data/data/{paires → pairs}/dy.ogg +0 -0
- data/data/{paires → pairs}/d/303/270.ogg +0 -0
- data/data/{paires → pairs}/d/305/223.ogg +0 -0
- data/data/{paires → pairs}/d/311/224.ogg +0 -0
- data/data/{paires → pairs}/d/316/261.ogg +0 -0
- data/data/{paires → pairs}/d/317/203.ogg +0 -0
- data/data/pairs/d/317/265.ogg +0 -0
- data/data/{paires → pairs}/e.ogg +0 -0
- data/data/{paires → pairs}/error.ogg +0 -0
- data/data/{paires → pairs}/f.ogg +0 -0
- data/data/{paires → pairs}/fa.ogg +0 -0
- data/data/{paires → pairs}/fe.ogg +0 -0
- data/data/{paires → pairs}/fi.ogg +0 -0
- data/data/{paires → pairs}/fo.ogg +0 -0
- data/data/{paires → pairs}/fu.ogg +0 -0
- data/data/{paires → pairs}/fy.ogg +0 -0
- data/data/{paires → pairs}/f/303/270.ogg +0 -0
- data/data/{paires → pairs}/f/305/223.ogg +0 -0
- data/data/{paires → pairs}/f/311/224.ogg +0 -0
- data/data/{paires → pairs}/f/311/233.ogg +0 -0
- data/data/{paires → pairs}/f/316/261.ogg +0 -0
- data/data/{paires → pairs}/f/317/203.ogg +0 -0
- data/data/{paires → pairs}/f/317/265.ogg +0 -0
- data/data/{paires → pairs}/g.ogg +0 -0
- data/data/{paires → pairs}/ga.ogg +0 -0
- data/data/{paires → pairs}/ge.ogg +0 -0
- data/data/{paires → pairs}/gi.ogg +0 -0
- data/data/{paires → pairs}/go.ogg +0 -0
- data/data/{paires → pairs}/gu.ogg +0 -0
- data/data/{paires → pairs}/gy.ogg +0 -0
- data/data/{paires → pairs}/g/305/223.ogg +0 -0
- data/data/{paires → pairs}/g/311/224.ogg +0 -0
- data/data/{paires → pairs}/g/311/233.ogg +0 -0
- data/data/{paires → pairs}/g/317/203.ogg +0 -0
- data/data/{paires → pairs}/i.ogg +0 -0
- data/data/{paires → pairs}/il.ogg +0 -0
- data/data/{paires → pairs}/j.ogg +0 -0
- data/data/{paires → pairs}/je.ogg +0 -0
- data/data/{paires → pairs}/jo.ogg +0 -0
- data/data/{paires → pairs}/ju.ogg +0 -0
- data/data/{paires → pairs}/j/303/270.ogg +0 -0
- data/data/{paires → pairs}/j/311/224.ogg +0 -0
- data/data/{paires → pairs}/j/311/233.ogg +0 -0
- data/data/{paires → pairs}/j/316/261.ogg +0 -0
- data/data/{paires → pairs}/j/317/203.ogg +0 -0
- data/data/{paires → pairs}/j/317/265.ogg +0 -0
- data/data/{paires → pairs}/k.ogg +0 -0
- data/data/{paires → pairs}/ka.ogg +0 -0
- data/data/{paires → pairs}/ka.oggpaires.wav +0 -0
- data/data/{paires → pairs}/ke.ogg +0 -0
- data/data/{paires → pairs}/ki.ogg +0 -0
- data/data/{paires → pairs}/ko.ogg +0 -0
- data/data/{paires → pairs}/ku.ogg +0 -0
- data/data/{paires → pairs}/ky.ogg +0 -0
- data/data/{paires → pairs}/k/303/270.ogg +0 -0
- data/data/{paires → pairs}/k/305/223.ogg +0 -0
- data/data/{paires → pairs}/k/311/224.ogg +0 -0
- data/data/{paires → pairs}/k/311/233.ogg +0 -0
- data/data/{paires → pairs}/k/316/261.ogg +0 -0
- data/data/{paires → pairs}/k/317/200.ogg +0 -0
- data/data/{paires → pairs}/k/317/203.ogg +0 -0
- data/data/{paires → pairs}/k/317/265.ogg +0 -0
- data/data/{paires → pairs}/l.ogg +0 -0
- data/data/{paires → pairs}/la.ogg +0 -0
- data/data/{paires → pairs}/le.ogg +0 -0
- data/data/{paires → pairs}/li.ogg +0 -0
- data/data/{paires → pairs}/lo.ogg +0 -0
- data/data/{paires → pairs}/lu.ogg +0 -0
- data/data/{paires → pairs}/ly.ogg +0 -0
- data/data/{paires → pairs}/l/303/270.ogg +0 -0
- data/data/{paires → pairs}/l/305/223.ogg +0 -0
- data/data/{paires → pairs}/l/311/224.ogg +0 -0
- data/data/{paires → pairs}/l/311/233.ogg +0 -0
- data/data/{paires → pairs}/l/316/261.ogg +0 -0
- data/data/{paires → pairs}/l/317/203.ogg +0 -0
- data/data/{paires → pairs}/l/317/265.ogg +0 -0
- data/data/{paires → pairs}/m.ogg +0 -0
- data/data/{paires → pairs}/ma.ogg +0 -0
- data/data/{paires → pairs}/me.ogg +0 -0
- data/data/{paires → pairs}/mi.ogg +0 -0
- data/data/{paires → pairs}/mo.ogg +0 -0
- data/data/{paires → pairs}/mu.ogg +0 -0
- data/data/{paires → pairs}/my.ogg +0 -0
- data/data/{paires → pairs}/m/305/223.ogg +0 -0
- data/data/{paires → pairs}/m/311/224.ogg +0 -0
- data/data/{paires → pairs}/m/311/233.ogg +0 -0
- data/data/{paires → pairs}/m/316/261.ogg +0 -0
- data/data/{paires → pairs}/m/317/203.ogg +0 -0
- data/data/{paires → pairs}/m/317/265.ogg +0 -0
- data/data/{paires → pairs}/n(old).ogg +0 -0
- data/data/{paires → pairs}/n.ogg +0 -0
- data/data/{paires → pairs}/na.ogg +0 -0
- data/data/{paires → pairs}/ne.ogg +0 -0
- data/data/{paires → pairs}/ni.ogg +0 -0
- data/data/{paires → pairs}/nu.ogg +0 -0
- data/data/{paires → pairs}/ny.ogg +0 -0
- data/data/{paires → pairs}/n/305/223.ogg +0 -0
- data/data/{paires → pairs}/n/311/224.ogg +0 -0
- data/data/{paires → pairs}/n/311/233.ogg +0 -0
- data/data/{paires → pairs}/n/316/261.ogg +0 -0
- data/data/{paires → pairs}/n/317/203.ogg +0 -0
- data/data/{paires → pairs}/n/317/265.ogg +0 -0
- data/data/{paires → pairs}/o.ogg +0 -0
- data/data/{paires → pairs}/out.ogg +0 -0
- data/data/{paires → pairs}/p.ogg +0 -0
- data/data/{paires → pairs}/pa.ogg +0 -0
- data/data/{paires → pairs}/pe.ogg +0 -0
- data/data/{paires → pairs}/phoque.ogg +0 -0
- data/data/{paires → pairs}/pi.ogg +0 -0
- data/data/{paires → pairs}/po.ogg +0 -0
- data/data/{paires → pairs}/pu.ogg +0 -0
- data/data/{paires → pairs}/py.ogg +0 -0
- data/data/{paires → pairs}/p/303/270.ogg +0 -0
- data/data/{paires → pairs}/p/305/223.ogg +0 -0
- data/data/{paires → pairs}/p/311/224.ogg +0 -0
- data/data/{paires → pairs}/p/311/233.ogg +0 -0
- data/data/{paires → pairs}/p/316/261.ogg +0 -0
- data/data/{paires → pairs}/p/317/203.ogg +0 -0
- data/data/{paires → pairs}/p/317/265.ogg +0 -0
- data/data/{paires → pairs}/r.ogg +0 -0
- data/data/{paires → pairs}/ra.ogg +0 -0
- data/data/{paires → pairs}/re.ogg +0 -0
- data/data/{paires → pairs}/ri.ogg +0 -0
- data/data/{paires → pairs}/ro.ogg +0 -0
- data/data/{paires → pairs}/ru.ogg +0 -0
- data/data/{paires → pairs}/ry.ogg +0 -0
- data/data/{paires → pairs}/r/305/223.ogg +0 -0
- data/data/{paires → pairs}/r/311/224.ogg +0 -0
- data/data/{paires → pairs}/r/311/233.ogg +0 -0
- data/data/{paires → pairs}/r/316/261.ogg +0 -0
- data/data/{paires → pairs}/r/317/203.ogg +0 -0
- data/data/{paires → pairs}/r/317/265.ogg +0 -0
- data/data/{paires → pairs}/s.ogg +0 -0
- data/data/{paires → pairs}/sa.ogg +0 -0
- data/data/{paires → pairs}/se.ogg +0 -0
- data/data/{paires → pairs}/si.ogg +0 -0
- data/data/{paires → pairs}/so.ogg +0 -0
- data/data/{paires → pairs}/su.ogg +0 -0
- data/data/{paires → pairs}/sy.ogg +0 -0
- data/data/{paires → pairs}/s/305/223.ogg +0 -0
- data/data/{paires → pairs}/s/311/224.ogg +0 -0
- data/data/{paires → pairs}/s/311/233.ogg +0 -0
- data/data/{paires → pairs}/s/316/261.ogg +0 -0
- data/data/{paires → pairs}/s/317/203.ogg +0 -0
- data/data/{paires → pairs}/s/317/265.ogg +0 -0
- data/data/{paires → pairs}/t.ogg +0 -0
- data/data/{paires → pairs}/ta.ogg +0 -0
- data/data/{paires → pairs}/te.ogg +0 -0
- data/data/{paires → pairs}/ti.ogg +0 -0
- data/data/{paires → pairs}/to.ogg +0 -0
- data/data/{paires → pairs}/tu.ogg +0 -0
- data/data/{paires → pairs}/ty.ogg +0 -0
- data/data/{paires → pairs}/t/303/270.ogg +0 -0
- data/data/{paires → pairs}/t/305/223.ogg +0 -0
- data/data/{paires → pairs}/t/311/224.ogg +0 -0
- data/data/{paires → pairs}/t/311/233.ogg +0 -0
- data/data/{paires → pairs}/t/316/261.ogg +0 -0
- data/data/{paires → pairs}/t/317/203.ogg +0 -0
- data/data/{paires → pairs}/t/317/265.ogg +0 -0
- data/data/{paires → pairs}/u.ogg +0 -0
- data/data/{paires → pairs}/v.ogg +0 -0
- data/data/{paires → pairs}/va.ogg +0 -0
- data/data/{paires → pairs}/ve.ogg +0 -0
- data/data/{paires → pairs}/vi.ogg +0 -0
- data/data/{paires → pairs}/vo.ogg +0 -0
- data/data/{paires → pairs}/vu.ogg +0 -0
- data/data/{paires → pairs}/vy.ogg +0 -0
- data/data/{paires → pairs}/v/303/270.ogg +0 -0
- data/data/{paires → pairs}/v/305/223.ogg +0 -0
- data/data/{paires → pairs}/v/311/224.ogg +0 -0
- data/data/{paires → pairs}/v/311/233.ogg +0 -0
- data/data/{paires → pairs}/v/316/261.ogg +0 -0
- data/data/{paires → pairs}/v/317/203.ogg +0 -0
- data/data/{paires → pairs}/v/317/265.ogg +0 -0
- data/data/{paires → pairs}/w.ogg +0 -0
- data/data/{paires → pairs}/wa.ogg +0 -0
- data/data/{paires → pairs}/we.ogg +0 -0
- data/data/{paires → pairs}/wi.ogg +0 -0
- data/data/{paires → pairs}/w/311/233.ogg +0 -0
- data/data/{paires → pairs}/w/316/261.ogg +0 -0
- data/data/{paires → pairs}/w/317/203.ogg +0 -0
- data/data/{paires → pairs}/w/317/265.ogg +0 -0
- data/data/{paires → pairs}/y.ogg +0 -0
- data/data/{paires → pairs}/z.ogg +0 -0
- data/data/{paires → pairs}/za.ogg +0 -0
- data/data/{paires → pairs}/ze.ogg +0 -0
- data/data/{paires → pairs}/zi.ogg +0 -0
- data/data/{paires → pairs}/zo.ogg +0 -0
- data/data/{paires → pairs}/zu.ogg +0 -0
- data/data/{paires → pairs}/zy.ogg +0 -0
- data/data/{paires → pairs}/z/311/224.ogg +0 -0
- data/data/{paires → pairs}/z/311/233.ogg +0 -0
- data/data/{paires → pairs}/z/316/261.ogg +0 -0
- data/data/{paires → pairs}/z/317/203.ogg +0 -0
- data/data/{paires → pairs}/z/317/265.ogg +0 -0
- data/data/{paires → pairs}//302/265.ogg +0 -0
- data/data/{paires → pairs}//302/265i.ogg +0 -0
- data/data/{paires → pairs}//303/270.ogg +0 -0
- data/data/{paires → pairs}//305/223.ogg +0 -0
- data/data/{paires → pairs}//311/224.ogg +0 -0
- data/data/{paires → pairs}//311/233.ogg +0 -0
- data/data/{paires → pairs}//311/262.ogg +0 -0
- data/data/{paires → pairs}//312/203.ogg +0 -0
- data/data/{paires → pairs}//312/203a.ogg +0 -0
- data/data/{paires → pairs}//312/203e.ogg +0 -0
- data/data/{paires → pairs}//312/203i.ogg +0 -0
- data/data/{paires → pairs}//312/203o.ogg +0 -0
- data/data/{paires → pairs}//312/203u.ogg +0 -0
- data/data/{paires → pairs}//312/203/311/233.ogg +0 -0
- data/data/{paires → pairs}//312/203/316/261.ogg +0 -0
- data/data/{paires → pairs}//312/222.ogg +0 -0
- data/data/{paires → pairs}//312/222a.ogg +0 -0
- data/data/{paires → pairs}//312/222e.ogg +0 -0
- data/data/{paires → pairs}//312/222i.ogg +0 -0
- data/data/{paires → pairs}//312/222o.ogg +0 -0
- data/data/{paires → pairs}//312/222u.ogg +0 -0
- data/data/{paires → pairs}//312/222y.ogg +0 -0
- data/data/{paires → pairs}//312/222/303/270.ogg +0 -0
- data/data/{paires → pairs}//312/222/305/223.ogg +0 -0
- data/data/{paires → pairs}//312/222/311/224.ogg +0 -0
- data/data/{paires → pairs}//312/222/311/233.ogg +0 -0
- data/data/{paires → pairs}//312/222/316/261.ogg +0 -0
- data/data/{paires → pairs}//316/261.ogg +0 -0
- data/data/{paires → pairs}//317/200.ogg +0 -0
- data/data/{paires → pairs}//317/203.ogg +0 -0
- data/data/{paires → pairs}//317/265.ogg +0 -0
- data/lib/extensions/string.rb +7 -0
- data/lib/modules/rulable.rb +47 -0
- data/lib/services/get_pairs_service.rb +29 -0
- data/lib/services/get_syllables_service.rb +43 -0
- data/lib/services/linkage_service.rb +40 -0
- data/lib/services/phonetics_converter_service.rb +42 -0
- data/lib/services/prepare_text_service.rb +49 -0
- data/lib/voxbi.rb +40 -87
- data/voxbi.gemspec +12 -12
- metadata +288 -266
- data/data/paires/b.ogg +0 -0
- data/lib/special_chars.rb +0 -1
@@ -0,0 +1,40 @@
|
|
1
|
+
class LinkageService
|
2
|
+
include Rulable
|
3
|
+
|
4
|
+
attr_accessor :prepared_text, :phonetic_text
|
5
|
+
|
6
|
+
def initialize(prepared_text, phonetic_text)
|
7
|
+
@prepared_text = prepared_text
|
8
|
+
@phonetic_text = phonetic_text
|
9
|
+
end
|
10
|
+
|
11
|
+
def call
|
12
|
+
dup_phonetic_text
|
13
|
+
apply_linkage
|
14
|
+
|
15
|
+
@dup_phonetic_text
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def dup_phonetic_text
|
21
|
+
@dup_phonetic_text ||= phonetic_text.dup
|
22
|
+
end
|
23
|
+
|
24
|
+
def apply_linkage
|
25
|
+
prepared_text.each_with_index do |word, index|
|
26
|
+
if @dup_phonetic_text[index+1]
|
27
|
+
link_string = word[-1] + @dup_phonetic_text[index+1][0]
|
28
|
+
linkage_rule = linkage_rule_for(link_string)
|
29
|
+
|
30
|
+
if linkage_rule
|
31
|
+
@dup_phonetic_text[index+1] = linkage_rule[1].to_s + @dup_phonetic_text[index+1]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def linkage_rule_for(link_string)
|
38
|
+
linkage.select {|k,v| link_string =~ /#{k}/ }.first
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "timeout"
|
2
|
+
|
3
|
+
class PhoneticsConverterService
|
4
|
+
include Rulable
|
5
|
+
|
6
|
+
DEFAULT_TIMEOUT = 5.freeze
|
7
|
+
|
8
|
+
attr_accessor :word, :phonetized_word
|
9
|
+
|
10
|
+
def initialize(word)
|
11
|
+
@word = word
|
12
|
+
@phonetized_word = ''
|
13
|
+
end
|
14
|
+
|
15
|
+
def call
|
16
|
+
with_timeout { phonetize_word }
|
17
|
+
phonetized_word
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def with_timeout(&block)
|
23
|
+
Timeout::timeout(DEFAULT_TIMEOUT) do
|
24
|
+
block.call
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def phonetize_word
|
29
|
+
dup_word = word.dup
|
30
|
+
|
31
|
+
until dup_word.empty?
|
32
|
+
conversion_rule_for(dup_word).tap do |rule, phonetic|
|
33
|
+
dup_word.sub! /#{rule}/, ''
|
34
|
+
phonetized_word << phonetic.to_s
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def conversion_rule_for(word)
|
40
|
+
conversion.detect{ |rule, phonetic| word =~ /#{rule}/ }
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require "numbers_and_words"
|
2
|
+
|
3
|
+
class PrepareTextService
|
4
|
+
SPECIAL_CHARACTERS = /([•|—|–|\-|\’|,|?|!|^|\r|°|“|”|...|\u00a0|«|»|…|\\|\/|!|?|\"|\'|\[|\]|\(|\)|\]|<|>|=|+|%|$|&|#|;|*|:|}|{|`])/.freeze
|
5
|
+
|
6
|
+
attr_accessor :text, :prepared_text
|
7
|
+
|
8
|
+
def initialize(text)
|
9
|
+
@text = text
|
10
|
+
@prepared_text = text.dup
|
11
|
+
end
|
12
|
+
|
13
|
+
def call
|
14
|
+
downcase_text!
|
15
|
+
remove_special_characters!
|
16
|
+
split_text!
|
17
|
+
wordify_numbers!
|
18
|
+
|
19
|
+
prepared_text
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def downcase_text!
|
25
|
+
@prepared_text.downcase!
|
26
|
+
end
|
27
|
+
|
28
|
+
def split_text!
|
29
|
+
@prepared_text = @prepared_text.split
|
30
|
+
end
|
31
|
+
|
32
|
+
def remove_special_characters!
|
33
|
+
prepared_text.gsub!(SPECIAL_CHARACTERS, "")
|
34
|
+
end
|
35
|
+
|
36
|
+
# Other service ?
|
37
|
+
|
38
|
+
def wordify_numbers!
|
39
|
+
prepared_text.map! do |word|
|
40
|
+
word.to_i != 0 ? word_for(word.to_i) : word
|
41
|
+
end.flatten!
|
42
|
+
end
|
43
|
+
|
44
|
+
def word_for(number)
|
45
|
+
I18n.with_locale(:fr) do
|
46
|
+
number.to_words.gsub("-"," ").split
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/voxbi.rb
CHANGED
@@ -1,103 +1,56 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require "
|
4
|
-
|
3
|
+
require "require_all"
|
4
|
+
require_all "lib/**/*.rb"
|
5
5
|
|
6
|
-
|
6
|
+
ROOT_PATH = File.expand_path('..', __dir__).freeze
|
7
|
+
DATA_PATH = "#{ROOT_PATH}/data".freeze
|
8
|
+
DEFAULT_OUTPUT_FILENAME = 'pairs'
|
9
|
+
DEFAULT_OUTPUT_PATH = "#{DATA_PATH}/#{DEFAULT_OUTPUT_FILENAME}.wav".freeze
|
7
10
|
|
8
|
-
|
9
|
-
|
10
|
-
eval(File.read("#{ROOT}/lib/special_chars.rb"))
|
11
|
+
class Voxbi
|
12
|
+
include Rulable
|
11
13
|
|
12
|
-
|
13
|
-
Hash[File.open("#{ROOT}/data/#{path}.csv").read.split("\n").map {|ligne| ligne.split("#")}]
|
14
|
-
end
|
14
|
+
attr_accessor :text
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
def initialize(text)
|
17
|
+
@text = text
|
18
|
+
end
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
def read
|
21
|
+
file_paths = normalized_pairs.map{ |pair| "#{DATA_PATH}/pairs/#{pair}.ogg" }
|
22
|
+
`sox #{file_paths.join(" ")} #{DEFAULT_OUTPUT_PATH}`
|
23
|
+
`aplay #{DEFAULT_OUTPUT_PATH}`
|
24
|
+
end
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
|
26
|
+
def get_pairs
|
27
|
+
GetPairsService.new(linked_phonems).call
|
28
|
+
end
|
27
29
|
|
28
|
-
|
29
|
-
|
30
|
-
|
30
|
+
def get_syllables
|
31
|
+
GetSyllablesService.new(linked_phonems).call
|
32
|
+
end
|
31
33
|
|
32
|
-
|
33
|
-
@output_path = p
|
34
|
-
end
|
34
|
+
private
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
def Voxbi.apply_exceptions
|
41
|
-
exceptions.each {|k,v| dict[k] = v}
|
42
|
-
end
|
36
|
+
def normalized_pairs
|
37
|
+
get_pairs.map{ |pairs| pairs << '_' }.flatten
|
38
|
+
end
|
43
39
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
if word.to_i != 0
|
48
|
-
I18n.with_locale(:fr) { word.to_i.to_words.gsub("-"," ").split}
|
49
|
-
else
|
50
|
-
word
|
51
|
-
end
|
52
|
-
end
|
53
|
-
return new_text.flatten
|
54
|
-
end
|
40
|
+
def prepared_text
|
41
|
+
@prepared_text ||= PrepareTextService.new(text).call
|
42
|
+
end
|
55
43
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
conversion.select { |regle| mot =~ /#{regle}/ }.first.tap do |regle, api|
|
63
|
-
mot.sub! /#{regle}/, ""
|
64
|
-
result << api.to_s
|
65
|
-
end until mot.empty?
|
66
|
-
end
|
67
|
-
end
|
68
|
-
return liaison(graphie,phono)
|
69
|
-
end
|
44
|
+
def phonetic_text
|
45
|
+
@phonetic_text ||= prepared_text.map do |word|
|
46
|
+
dictionary[word] ||
|
47
|
+
PhoneticsConverterService.new(word).call
|
48
|
+
end
|
49
|
+
end
|
70
50
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
match = liaisons.select {|k,v| lien =~ /#{k}/ }.first
|
76
|
-
match ? phono[id+1] = match[1].to_s + phono[id+1] : next
|
77
|
-
end
|
78
|
-
end
|
79
|
-
return phono
|
80
|
-
end
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
def Voxbi.voxbi(texte)
|
85
|
-
paires_dispo = File.open("#{ROOT}/data/paires_disponibles.csv").read.split("\n")
|
86
|
-
api = apimatch(texte).join "_"
|
87
|
-
puts api.inspect
|
88
|
-
fichiers = []
|
89
|
-
while api.length !=0
|
90
|
-
paires_dispo.each do |paires|
|
91
|
-
if api.match(/^#{paires}/)
|
92
|
-
fichiers << "#{ROOT}/data/paires/#{paires}.ogg"
|
93
|
-
api = api.sub(/^#{paires}/,"")
|
94
|
-
break
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
`sox #{fichiers.join(" ")} #{output_path}`
|
99
|
-
`aplay #{output_path}`
|
100
|
-
end
|
51
|
+
def linked_phonems
|
52
|
+
LinkageService.new(prepared_text, phonetic_text).call
|
53
|
+
end
|
54
|
+
end
|
101
55
|
|
102
56
|
|
103
|
-
end
|
data/voxbi.gemspec
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
|
-
s.name
|
3
|
-
s.version
|
4
|
-
s.date
|
5
|
-
s.summary
|
6
|
-
s.description
|
7
|
-
s.authors
|
8
|
-
s.email
|
9
|
-
s.files
|
10
|
-
s.executables
|
11
|
-
s.require_path
|
12
|
-
s.homepage
|
13
|
-
'https://github.com/Galaad-Gauthier/VoxBi'
|
2
|
+
s.name = 'voxbi'
|
3
|
+
s.version = '1.0'
|
4
|
+
s.date = '2018-04-03'
|
5
|
+
s.summary = "VoxBi"
|
6
|
+
s.description = "Easy-to-use french voice synthesizer"
|
7
|
+
s.authors = ["Galaad Gauthier"]
|
8
|
+
s.email = 'coontail7@gmail.com'
|
9
|
+
s.files = Dir['**/*']
|
10
|
+
s.executables = ["voxbi"]
|
11
|
+
s.require_path = 'lib'
|
12
|
+
s.homepage = 'https://github.com/Galaad-Gauthier/VoxBi'
|
14
13
|
s.license = 'MIT'
|
15
14
|
s.add_dependency "json"
|
16
15
|
s.add_dependency "numbers_and_words"
|
16
|
+
s.add_dependency "require_all"
|
17
17
|
end
|
metadata
CHANGED
@@ -1,41 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voxbi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: '1.0'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Galaad Gauthier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: numbers_and_words
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: require_all
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '0'
|
41
55
|
description: Easy-to-use french voice synthesizer
|
@@ -45,265 +59,273 @@ executables:
|
|
45
59
|
extensions: []
|
46
60
|
extra_rdoc_files: []
|
47
61
|
files:
|
48
|
-
-
|
49
|
-
-
|
50
|
-
-
|
51
|
-
- data/paires.wav
|
52
|
-
- data/paires/jɛ.ogg
|
53
|
-
- data/paires/wα.ogg
|
54
|
-
- data/paires/ʒø.ogg
|
55
|
-
- data/paires/gɛ.ogg
|
56
|
-
- data/paires/du.ogg
|
57
|
-
- data/paires/n(old).ogg
|
58
|
-
- data/paires/fϵ.ogg
|
59
|
-
- data/paires/wσ.ogg
|
60
|
-
- data/paires/lσ.ogg
|
61
|
-
- data/paires/bi-old1.ogg
|
62
|
-
- data/paires/s.ogg
|
63
|
-
- data/paires/ge.ogg
|
64
|
-
- data/paires/ra.ogg
|
65
|
-
- data/paires/ø.ogg
|
66
|
-
- data/paires/pø.ogg
|
67
|
-
- data/paires/f.ogg
|
68
|
-
- data/paires/ta.ogg
|
69
|
-
- data/paires/je.ogg
|
70
|
-
- data/paires/nɔ.ogg
|
71
|
-
- data/paires/ku.ogg
|
72
|
-
- data/paires/sσ.ogg
|
73
|
-
- data/paires/jα.ogg
|
74
|
-
- data/paires/ʒa.ogg
|
75
|
-
- data/paires/lu.ogg
|
76
|
-
- data/paires/fœ.ogg
|
77
|
-
- data/paires/a.ogg
|
78
|
-
- data/paires/lœ.ogg
|
79
|
-
- data/paires/ʃe.ogg
|
80
|
-
- data/paires/by.ogg
|
81
|
-
- data/paires/pɛ.ogg
|
82
|
-
- data/paires/sα.ogg
|
83
|
-
- data/paires/b.ogg
|
84
|
-
- data/paires/do.ogg
|
85
|
-
- data/paires/ga.ogg
|
86
|
-
- data/paires/ʒo.ogg
|
87
|
-
- data/paires/nœ.ogg
|
88
|
-
- data/paires/lα.ogg
|
89
|
-
- data/paires/w.ogg
|
90
|
-
- data/paires/pϵ.ogg
|
91
|
-
- data/paires/zu.ogg
|
92
|
-
- data/paires/ly.ogg
|
93
|
-
- data/paires/n.ogg
|
94
|
-
- data/paires/zo.ogg
|
95
|
-
- data/paires/ba-old1.ogg
|
96
|
-
- data/paires/bu.ogg
|
97
|
-
- data/paires/sœ.ogg
|
98
|
-
- data/paires/se.ogg
|
99
|
-
- data/paires/pɔ.ogg
|
100
|
-
- data/paires/sϵ.ogg
|
101
|
-
- data/paires/v.ogg
|
102
|
-
- data/paires/pi.ogg
|
103
|
-
- data/paires/ʒœ.ogg
|
104
|
-
- data/paires/kϵ.ogg
|
105
|
-
- data/paires/sy.ogg
|
106
|
-
- data/paires/tu.ogg
|
107
|
-
- data/paires/out.ogg
|
108
|
-
- data/paires/de.ogg
|
109
|
-
- data/paires/sɛ.ogg
|
110
|
-
- data/paires/rœ.ogg
|
111
|
-
- data/paires/wi.ogg
|
112
|
-
- data/paires/fα.ogg
|
113
|
-
- data/paires/bo.ogg
|
114
|
-
- data/paires/ko.ogg
|
115
|
-
- data/paires/vu.ogg
|
116
|
-
- data/paires/_.ogg
|
117
|
-
- data/paires/va.ogg
|
118
|
-
- data/paires/kα.ogg
|
119
|
-
- data/paires/ry.ogg
|
120
|
-
- data/paires/fi.ogg
|
121
|
-
- data/paires/bɔ.ogg
|
122
|
-
- data/paires/fo.ogg
|
123
|
-
- data/paires/kσ.ogg
|
124
|
-
- data/paires/tα.ogg
|
125
|
-
- data/paires/pœ.ogg
|
126
|
-
- data/paires/my.ogg
|
127
|
-
- data/paires/π.ogg
|
128
|
-
- data/paires/i.ogg
|
129
|
-
- data/paires/g.ogg
|
130
|
-
- data/paires/ʃo.ogg
|
131
|
-
- data/paires/fu.ogg
|
132
|
-
- data/paires/dœ.ogg
|
133
|
-
- data/paires/ty.ogg
|
134
|
-
- data/paires/jø.ogg
|
135
|
-
- data/paires/zi.ogg
|
136
|
-
- data/paires/wa.ogg
|
137
|
-
- data/paires/ze.ogg
|
138
|
-
- data/paires/jσ.ogg
|
139
|
-
- data/paires/vα.ogg
|
140
|
-
- data/paires/kπ.ogg
|
141
|
-
- data/paires/ɲ.ogg
|
142
|
-
- data/paires/tσ.ogg
|
143
|
-
- data/paires/li.ogg
|
144
|
-
- data/paires/ʃɛ.ogg
|
145
|
-
- data/paires/tœ.ogg
|
146
|
-
- data/paires/ʒi.ogg
|
147
|
-
- data/paires/rσ.ogg
|
148
|
-
- data/paires/nα.ogg
|
149
|
-
- data/paires/ri.ogg
|
150
|
-
- data/paires/di.ogg
|
151
|
-
- data/paires/me.ogg
|
152
|
-
- data/paires/nu.ogg
|
153
|
-
- data/paires/wϵ.ogg
|
154
|
-
- data/paires/go.ogg
|
155
|
-
- data/paires/zα.ogg
|
156
|
-
- data/paires/mσ.ogg
|
157
|
-
- data/paires/ʒ.ogg
|
158
|
-
- data/paires/ky.ogg
|
159
|
-
- data/paires/zy.ogg
|
160
|
-
- data/paires/jϵ.ogg
|
161
|
-
- data/paires/kɛ.ogg
|
162
|
-
- data/paires/kœ.ogg
|
163
|
-
- data/paires/nɛ.ogg
|
164
|
-
- data/paires/k.ogg
|
165
|
-
- data/paires/œ.ogg
|
166
|
-
- data/paires/ny.ogg
|
167
|
-
- data/paires/mϵ.ogg
|
168
|
-
- data/paires/ϵ.ogg
|
169
|
-
- data/paires/mɔ.ogg
|
170
|
-
- data/paires/o.ogg
|
171
|
-
- data/paires/fe.ogg
|
172
|
-
- data/paires/be.ogg
|
173
|
-
- data/paires/to.ogg
|
174
|
-
- data/paires/gu.ogg
|
175
|
-
- data/paires/ti.ogg
|
176
|
-
- data/paires/dø.ogg
|
177
|
-
- data/paires/vɛ.ogg
|
178
|
-
- data/paires/mɛ.ogg
|
179
|
-
- data/paires/ke.ogg
|
180
|
-
- data/paires/ʃi.ogg
|
181
|
-
- data/paires/ne.ogg
|
182
|
-
- data/paires/j.ogg
|
183
|
-
- data/paires/py.ogg
|
184
|
-
- data/paires/tϵ.ogg
|
185
|
-
- data/paires/phoque.ogg
|
186
|
-
- data/paires/l.ogg
|
187
|
-
- data/paires/pe.ogg
|
188
|
-
- data/paires/zϵ.ogg
|
189
|
-
- data/paires/ro.ogg
|
190
|
-
- data/paires/fy.ogg
|
191
|
-
- data/paires/t.ogg
|
192
|
-
- data/paires/dy.ogg
|
193
|
-
- data/paires/e.ogg
|
194
|
-
- data/paires/ka.ogg
|
195
|
-
- data/paires/tø.ogg
|
196
|
-
- data/paires/lo.ogg
|
197
|
-
- data/paires/pσ.ogg
|
198
|
-
- data/paires/µi.ogg
|
199
|
-
- data/paires/bœ.ogg
|
200
|
-
- data/paires/la.ogg
|
201
|
-
- data/paires/ju.ogg
|
202
|
-
- data/paires/vy.ogg
|
203
|
-
- data/paires/ʃα.ogg
|
204
|
-
- data/paires/su.ogg
|
205
|
-
- data/paires/zɛ.ogg
|
206
|
-
- data/paires/mu.ogg
|
207
|
-
- data/paires/te.ogg
|
208
|
-
- data/paires/ni.ogg
|
209
|
-
- data/paires/bi.ogg
|
210
|
-
- data/paires/so.ogg
|
211
|
-
- data/paires/rϵ.ogg
|
212
|
-
- data/paires/ʒα.ogg
|
213
|
-
- data/paires/dɔ.ogg
|
214
|
-
- data/paires/re.ogg
|
215
|
-
- data/paires/za.ogg
|
216
|
-
- data/paires/ʒɔ.ogg
|
217
|
-
- data/paires/pu.ogg
|
218
|
-
- data/paires/bα.ogg
|
219
|
-
- data/paires/m.ogg
|
220
|
-
- data/paires/gɔ.ogg
|
221
|
-
- data/paires/si.ogg
|
222
|
-
- data/paires/lø.ogg
|
223
|
-
- data/paires/ki.ogg
|
224
|
-
- data/paires/fa.ogg
|
225
|
-
- data/paires/vœ.ogg
|
226
|
-
- data/paires/ʒɛ.ogg
|
227
|
-
- data/paires/lϵ.ogg
|
228
|
-
- data/paires/vσ.ogg
|
229
|
-
- data/paires/ʃa.ogg
|
230
|
-
- data/paires/lɔ.ogg
|
231
|
-
- data/paires/zσ.ogg
|
232
|
-
- data/paires/gi.ogg
|
233
|
-
- data/paires/vø.ogg
|
234
|
-
- data/paires/gσ.ogg
|
235
|
-
- data/paires/jɔ.ogg
|
236
|
-
- data/paires/gy.ogg
|
237
|
-
- data/paires/ma.ogg
|
238
|
-
- data/paires/ʃu.ogg
|
239
|
-
- data/paires/il.ogg
|
240
|
-
- data/paires/ba.ogg
|
241
|
-
- data/paires/le.ogg
|
242
|
-
- data/paires/vϵ.ogg
|
243
|
-
- data/paires/nϵ.ogg
|
244
|
-
- data/paires/ka.oggpaires.wav
|
245
|
-
- data/paires/tɛ.ogg
|
246
|
-
- data/paires/fɔ.ogg
|
247
|
-
- data/paires/mo.ogg
|
248
|
-
- data/paires/mi.ogg
|
249
|
-
- data/paires/sɔ.ogg
|
250
|
-
- data/paires/mα.ogg
|
251
|
-
- data/paires/ʒu.ogg
|
252
|
-
- data/paires/kø.ogg
|
253
|
-
- data/paires/rɛ.ogg
|
254
|
-
- data/paires/zɔ.ogg
|
255
|
-
- data/paires/dσ.ogg
|
256
|
-
- data/paires/error.ogg
|
257
|
-
- data/paires/wɛ.ogg
|
258
|
-
- data/paires/sa.ogg
|
259
|
-
- data/paires/da.ogg
|
260
|
-
- data/paires/jo.ogg
|
261
|
-
- data/paires/po.ogg
|
262
|
-
- data/paires/d.ogg
|
263
|
-
- data/paires/tɔ.ogg
|
264
|
-
- data/paires/rα.ogg
|
265
|
-
- data/paires/ʒe.ogg
|
266
|
-
- data/paires/we.ogg
|
267
|
-
- data/paires/dα.ogg
|
268
|
-
- data/paires/r.ogg
|
269
|
-
- data/paires/pα.ogg
|
270
|
-
- data/paires/gœ.ogg
|
271
|
-
- data/paires/rɔ.ogg
|
272
|
-
- data/paires/fø.ogg
|
273
|
-
- data/paires/fσ.ogg
|
274
|
-
- data/paires/y.ogg
|
275
|
-
- data/paires/pa.ogg
|
276
|
-
- data/paires/σ.ogg
|
277
|
-
- data/paires/ɔ.ogg
|
278
|
-
- data/paires/α.ogg
|
279
|
-
- data/paires/ʒy.ogg
|
280
|
-
- data/paires/vi.ogg
|
281
|
-
- data/paires/z.ogg
|
282
|
-
- data/paires/fɛ.ogg
|
283
|
-
- data/paires/bibi.ogg
|
284
|
-
- data/paires/ɛ.ogg
|
285
|
-
- data/paires/ve.ogg
|
286
|
-
- data/paires/nσ.ogg
|
287
|
-
- data/paires/na.ogg
|
288
|
-
- data/paires/u.ogg
|
289
|
-
- data/paires/kɔ.ogg
|
290
|
-
- data/paires/p.ogg
|
291
|
-
- data/paires/ru.ogg
|
292
|
-
- data/paires/bσ.ogg
|
293
|
-
- data/paires/mœ.ogg
|
294
|
-
- data/paires/ʃ.ogg
|
295
|
-
- data/paires/bϵ.ogg
|
296
|
-
- data/paires/lɛ.ogg
|
297
|
-
- data/paires/vɔ.ogg
|
298
|
-
- data/paires/µ.ogg
|
299
|
-
- data/paires/vo.ogg
|
300
|
-
- data/paires_disponibles.csv
|
62
|
+
- README.md
|
63
|
+
- bin/voxbi
|
64
|
+
- data/available_pairs.csv
|
301
65
|
- data/conversion.csv
|
302
|
-
- data/
|
66
|
+
- data/dictionary.json
|
303
67
|
- data/exceptions.csv
|
304
|
-
- data/
|
305
|
-
-
|
306
|
-
-
|
68
|
+
- data/linkage.csv
|
69
|
+
- data/paires.wav
|
70
|
+
- data/pairs.wav
|
71
|
+
- data/pairs/_.ogg
|
72
|
+
- data/pairs/a.ogg
|
73
|
+
- data/pairs/b.ogg
|
74
|
+
- data/pairs/ba-old1.ogg
|
75
|
+
- data/pairs/ba.ogg
|
76
|
+
- data/pairs/be.ogg
|
77
|
+
- data/pairs/bi-old1.ogg
|
78
|
+
- data/pairs/bi.ogg
|
79
|
+
- data/pairs/bibi.ogg
|
80
|
+
- data/pairs/bo.ogg
|
81
|
+
- data/pairs/bu.ogg
|
82
|
+
- data/pairs/by.ogg
|
83
|
+
- data/pairs/bœ.ogg
|
84
|
+
- data/pairs/bɔ.ogg
|
85
|
+
- data/pairs/bα.ogg
|
86
|
+
- data/pairs/bσ.ogg
|
87
|
+
- data/pairs/bϵ.ogg
|
88
|
+
- data/pairs/d.ogg
|
89
|
+
- data/pairs/da.ogg
|
90
|
+
- data/pairs/de.ogg
|
91
|
+
- data/pairs/di.ogg
|
92
|
+
- data/pairs/do.ogg
|
93
|
+
- data/pairs/du.ogg
|
94
|
+
- data/pairs/dy.ogg
|
95
|
+
- data/pairs/dø.ogg
|
96
|
+
- data/pairs/dœ.ogg
|
97
|
+
- data/pairs/dɔ.ogg
|
98
|
+
- data/pairs/dα.ogg
|
99
|
+
- data/pairs/dσ.ogg
|
100
|
+
- data/pairs/dϵ.ogg
|
101
|
+
- data/pairs/e.ogg
|
102
|
+
- data/pairs/error.ogg
|
103
|
+
- data/pairs/f.ogg
|
104
|
+
- data/pairs/fa.ogg
|
105
|
+
- data/pairs/fe.ogg
|
106
|
+
- data/pairs/fi.ogg
|
107
|
+
- data/pairs/fo.ogg
|
108
|
+
- data/pairs/fu.ogg
|
109
|
+
- data/pairs/fy.ogg
|
110
|
+
- data/pairs/fø.ogg
|
111
|
+
- data/pairs/fœ.ogg
|
112
|
+
- data/pairs/fɔ.ogg
|
113
|
+
- data/pairs/fɛ.ogg
|
114
|
+
- data/pairs/fα.ogg
|
115
|
+
- data/pairs/fσ.ogg
|
116
|
+
- data/pairs/fϵ.ogg
|
117
|
+
- data/pairs/g.ogg
|
118
|
+
- data/pairs/ga.ogg
|
119
|
+
- data/pairs/ge.ogg
|
120
|
+
- data/pairs/gi.ogg
|
121
|
+
- data/pairs/go.ogg
|
122
|
+
- data/pairs/gu.ogg
|
123
|
+
- data/pairs/gy.ogg
|
124
|
+
- data/pairs/gœ.ogg
|
125
|
+
- data/pairs/gɔ.ogg
|
126
|
+
- data/pairs/gɛ.ogg
|
127
|
+
- data/pairs/gσ.ogg
|
128
|
+
- data/pairs/i.ogg
|
129
|
+
- data/pairs/il.ogg
|
130
|
+
- data/pairs/j.ogg
|
131
|
+
- data/pairs/je.ogg
|
132
|
+
- data/pairs/jo.ogg
|
133
|
+
- data/pairs/ju.ogg
|
134
|
+
- data/pairs/jø.ogg
|
135
|
+
- data/pairs/jɔ.ogg
|
136
|
+
- data/pairs/jɛ.ogg
|
137
|
+
- data/pairs/jα.ogg
|
138
|
+
- data/pairs/jσ.ogg
|
139
|
+
- data/pairs/jϵ.ogg
|
140
|
+
- data/pairs/k.ogg
|
141
|
+
- data/pairs/ka.ogg
|
142
|
+
- data/pairs/ka.oggpaires.wav
|
143
|
+
- data/pairs/ke.ogg
|
144
|
+
- data/pairs/ki.ogg
|
145
|
+
- data/pairs/ko.ogg
|
146
|
+
- data/pairs/ku.ogg
|
147
|
+
- data/pairs/ky.ogg
|
148
|
+
- data/pairs/kø.ogg
|
149
|
+
- data/pairs/kœ.ogg
|
150
|
+
- data/pairs/kɔ.ogg
|
151
|
+
- data/pairs/kɛ.ogg
|
152
|
+
- data/pairs/kα.ogg
|
153
|
+
- data/pairs/kπ.ogg
|
154
|
+
- data/pairs/kσ.ogg
|
155
|
+
- data/pairs/kϵ.ogg
|
156
|
+
- data/pairs/l.ogg
|
157
|
+
- data/pairs/la.ogg
|
158
|
+
- data/pairs/le.ogg
|
159
|
+
- data/pairs/li.ogg
|
160
|
+
- data/pairs/lo.ogg
|
161
|
+
- data/pairs/lu.ogg
|
162
|
+
- data/pairs/ly.ogg
|
163
|
+
- data/pairs/lø.ogg
|
164
|
+
- data/pairs/lœ.ogg
|
165
|
+
- data/pairs/lɔ.ogg
|
166
|
+
- data/pairs/lɛ.ogg
|
167
|
+
- data/pairs/lα.ogg
|
168
|
+
- data/pairs/lσ.ogg
|
169
|
+
- data/pairs/lϵ.ogg
|
170
|
+
- data/pairs/m.ogg
|
171
|
+
- data/pairs/ma.ogg
|
172
|
+
- data/pairs/me.ogg
|
173
|
+
- data/pairs/mi.ogg
|
174
|
+
- data/pairs/mo.ogg
|
175
|
+
- data/pairs/mu.ogg
|
176
|
+
- data/pairs/my.ogg
|
177
|
+
- data/pairs/mœ.ogg
|
178
|
+
- data/pairs/mɔ.ogg
|
179
|
+
- data/pairs/mɛ.ogg
|
180
|
+
- data/pairs/mα.ogg
|
181
|
+
- data/pairs/mσ.ogg
|
182
|
+
- data/pairs/mϵ.ogg
|
183
|
+
- data/pairs/n(old).ogg
|
184
|
+
- data/pairs/n.ogg
|
185
|
+
- data/pairs/na.ogg
|
186
|
+
- data/pairs/ne.ogg
|
187
|
+
- data/pairs/ni.ogg
|
188
|
+
- data/pairs/nu.ogg
|
189
|
+
- data/pairs/ny.ogg
|
190
|
+
- data/pairs/nœ.ogg
|
191
|
+
- data/pairs/nɔ.ogg
|
192
|
+
- data/pairs/nɛ.ogg
|
193
|
+
- data/pairs/nα.ogg
|
194
|
+
- data/pairs/nσ.ogg
|
195
|
+
- data/pairs/nϵ.ogg
|
196
|
+
- data/pairs/o.ogg
|
197
|
+
- data/pairs/out.ogg
|
198
|
+
- data/pairs/p.ogg
|
199
|
+
- data/pairs/pa.ogg
|
200
|
+
- data/pairs/pe.ogg
|
201
|
+
- data/pairs/phoque.ogg
|
202
|
+
- data/pairs/pi.ogg
|
203
|
+
- data/pairs/po.ogg
|
204
|
+
- data/pairs/pu.ogg
|
205
|
+
- data/pairs/py.ogg
|
206
|
+
- data/pairs/pø.ogg
|
207
|
+
- data/pairs/pœ.ogg
|
208
|
+
- data/pairs/pɔ.ogg
|
209
|
+
- data/pairs/pɛ.ogg
|
210
|
+
- data/pairs/pα.ogg
|
211
|
+
- data/pairs/pσ.ogg
|
212
|
+
- data/pairs/pϵ.ogg
|
213
|
+
- data/pairs/r.ogg
|
214
|
+
- data/pairs/ra.ogg
|
215
|
+
- data/pairs/re.ogg
|
216
|
+
- data/pairs/ri.ogg
|
217
|
+
- data/pairs/ro.ogg
|
218
|
+
- data/pairs/ru.ogg
|
219
|
+
- data/pairs/ry.ogg
|
220
|
+
- data/pairs/rœ.ogg
|
221
|
+
- data/pairs/rɔ.ogg
|
222
|
+
- data/pairs/rɛ.ogg
|
223
|
+
- data/pairs/rα.ogg
|
224
|
+
- data/pairs/rσ.ogg
|
225
|
+
- data/pairs/rϵ.ogg
|
226
|
+
- data/pairs/s.ogg
|
227
|
+
- data/pairs/sa.ogg
|
228
|
+
- data/pairs/se.ogg
|
229
|
+
- data/pairs/si.ogg
|
230
|
+
- data/pairs/so.ogg
|
231
|
+
- data/pairs/su.ogg
|
232
|
+
- data/pairs/sy.ogg
|
233
|
+
- data/pairs/sœ.ogg
|
234
|
+
- data/pairs/sɔ.ogg
|
235
|
+
- data/pairs/sɛ.ogg
|
236
|
+
- data/pairs/sα.ogg
|
237
|
+
- data/pairs/sσ.ogg
|
238
|
+
- data/pairs/sϵ.ogg
|
239
|
+
- data/pairs/t.ogg
|
240
|
+
- data/pairs/ta.ogg
|
241
|
+
- data/pairs/te.ogg
|
242
|
+
- data/pairs/ti.ogg
|
243
|
+
- data/pairs/to.ogg
|
244
|
+
- data/pairs/tu.ogg
|
245
|
+
- data/pairs/ty.ogg
|
246
|
+
- data/pairs/tø.ogg
|
247
|
+
- data/pairs/tœ.ogg
|
248
|
+
- data/pairs/tɔ.ogg
|
249
|
+
- data/pairs/tɛ.ogg
|
250
|
+
- data/pairs/tα.ogg
|
251
|
+
- data/pairs/tσ.ogg
|
252
|
+
- data/pairs/tϵ.ogg
|
253
|
+
- data/pairs/u.ogg
|
254
|
+
- data/pairs/v.ogg
|
255
|
+
- data/pairs/va.ogg
|
256
|
+
- data/pairs/ve.ogg
|
257
|
+
- data/pairs/vi.ogg
|
258
|
+
- data/pairs/vo.ogg
|
259
|
+
- data/pairs/vu.ogg
|
260
|
+
- data/pairs/vy.ogg
|
261
|
+
- data/pairs/vø.ogg
|
262
|
+
- data/pairs/vœ.ogg
|
263
|
+
- data/pairs/vɔ.ogg
|
264
|
+
- data/pairs/vɛ.ogg
|
265
|
+
- data/pairs/vα.ogg
|
266
|
+
- data/pairs/vσ.ogg
|
267
|
+
- data/pairs/vϵ.ogg
|
268
|
+
- data/pairs/w.ogg
|
269
|
+
- data/pairs/wa.ogg
|
270
|
+
- data/pairs/we.ogg
|
271
|
+
- data/pairs/wi.ogg
|
272
|
+
- data/pairs/wɛ.ogg
|
273
|
+
- data/pairs/wα.ogg
|
274
|
+
- data/pairs/wσ.ogg
|
275
|
+
- data/pairs/wϵ.ogg
|
276
|
+
- data/pairs/y.ogg
|
277
|
+
- data/pairs/z.ogg
|
278
|
+
- data/pairs/za.ogg
|
279
|
+
- data/pairs/ze.ogg
|
280
|
+
- data/pairs/zi.ogg
|
281
|
+
- data/pairs/zo.ogg
|
282
|
+
- data/pairs/zu.ogg
|
283
|
+
- data/pairs/zy.ogg
|
284
|
+
- data/pairs/zɔ.ogg
|
285
|
+
- data/pairs/zɛ.ogg
|
286
|
+
- data/pairs/zα.ogg
|
287
|
+
- data/pairs/zσ.ogg
|
288
|
+
- data/pairs/zϵ.ogg
|
289
|
+
- data/pairs/µ.ogg
|
290
|
+
- data/pairs/µi.ogg
|
291
|
+
- data/pairs/ø.ogg
|
292
|
+
- data/pairs/œ.ogg
|
293
|
+
- data/pairs/ɔ.ogg
|
294
|
+
- data/pairs/ɛ.ogg
|
295
|
+
- data/pairs/ɲ.ogg
|
296
|
+
- data/pairs/ʃ.ogg
|
297
|
+
- data/pairs/ʃa.ogg
|
298
|
+
- data/pairs/ʃe.ogg
|
299
|
+
- data/pairs/ʃi.ogg
|
300
|
+
- data/pairs/ʃo.ogg
|
301
|
+
- data/pairs/ʃu.ogg
|
302
|
+
- data/pairs/ʃɛ.ogg
|
303
|
+
- data/pairs/ʃα.ogg
|
304
|
+
- data/pairs/ʒ.ogg
|
305
|
+
- data/pairs/ʒa.ogg
|
306
|
+
- data/pairs/ʒe.ogg
|
307
|
+
- data/pairs/ʒi.ogg
|
308
|
+
- data/pairs/ʒo.ogg
|
309
|
+
- data/pairs/ʒu.ogg
|
310
|
+
- data/pairs/ʒy.ogg
|
311
|
+
- data/pairs/ʒø.ogg
|
312
|
+
- data/pairs/ʒœ.ogg
|
313
|
+
- data/pairs/ʒɔ.ogg
|
314
|
+
- data/pairs/ʒɛ.ogg
|
315
|
+
- data/pairs/ʒα.ogg
|
316
|
+
- data/pairs/α.ogg
|
317
|
+
- data/pairs/π.ogg
|
318
|
+
- data/pairs/σ.ogg
|
319
|
+
- data/pairs/ϵ.ogg
|
320
|
+
- lib/extensions/string.rb
|
321
|
+
- lib/modules/rulable.rb
|
322
|
+
- lib/services/get_pairs_service.rb
|
323
|
+
- lib/services/get_syllables_service.rb
|
324
|
+
- lib/services/linkage_service.rb
|
325
|
+
- lib/services/phonetics_converter_service.rb
|
326
|
+
- lib/services/prepare_text_service.rb
|
327
|
+
- lib/voxbi.rb
|
328
|
+
- voxbi.gemspec
|
307
329
|
homepage: https://github.com/Galaad-Gauthier/VoxBi
|
308
330
|
licenses:
|
309
331
|
- MIT
|
@@ -314,17 +336,17 @@ require_paths:
|
|
314
336
|
- lib
|
315
337
|
required_ruby_version: !ruby/object:Gem::Requirement
|
316
338
|
requirements:
|
317
|
-
- -
|
339
|
+
- - ">="
|
318
340
|
- !ruby/object:Gem::Version
|
319
341
|
version: '0'
|
320
342
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
321
343
|
requirements:
|
322
|
-
- -
|
344
|
+
- - ">="
|
323
345
|
- !ruby/object:Gem::Version
|
324
346
|
version: '0'
|
325
347
|
requirements: []
|
326
348
|
rubyforge_project:
|
327
|
-
rubygems_version: 2.
|
349
|
+
rubygems_version: 2.5.1
|
328
350
|
signing_key:
|
329
351
|
specification_version: 4
|
330
352
|
summary: VoxBi
|