freetts 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +3 -0
- data/lib/freetts/version.rb +1 -1
- data/lib/freetts/voice.rb +17 -35
- metadata +2 -1
data/Gemfile
ADDED
data/lib/freetts/version.rb
CHANGED
data/lib/freetts/voice.rb
CHANGED
@@ -9,13 +9,25 @@ module FreeTTS
|
|
9
9
|
MODIFIABLE_ATTRIBUTES = %w( duration_stretch pitch pitch_range pitch_shift
|
10
10
|
rate volume )
|
11
11
|
|
12
|
+
class << self
|
13
|
+
attr_reader :voice_manager
|
14
|
+
|
15
|
+
def all
|
16
|
+
voice_manager.get_voices.map { |voice| voice.get_name }
|
17
|
+
end
|
18
|
+
|
19
|
+
def for_name(voice_name)
|
20
|
+
voice = voice_manager.get_voice(voice_name)
|
21
|
+
if voice
|
22
|
+
voice.allocate
|
23
|
+
Voice.new(voice)
|
24
|
+
else
|
25
|
+
raise "No voice found for name \"#{ voice_name }\""
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
12
29
|
|
13
30
|
@voice_manager = com.sun.speech.freetts.VoiceManager.get_instance
|
14
|
-
class << self; attr_reader :voice_manager; end
|
15
|
-
#class << self
|
16
|
-
# attr_accessor :voice_manager
|
17
|
-
# @voice_manager = com.sun.speech.freetts.VoiceManager.get_instance
|
18
|
-
#end
|
19
31
|
|
20
32
|
ACCESSIBLE_ATTRIBUTES.each do |attribute|
|
21
33
|
ruby_method = attribute.to_sym
|
@@ -36,35 +48,5 @@ module FreeTTS
|
|
36
48
|
def speak(saying)
|
37
49
|
@voice_impl.speak(saying)
|
38
50
|
end
|
39
|
-
|
40
|
-
def method_missing(method, *args, &block)
|
41
|
-
method = method.to_s
|
42
|
-
java_method_name = case method
|
43
|
-
when /\A(.*)=\Z/
|
44
|
-
"set_#{ $1 }"
|
45
|
-
when /\A(.*)\Z/
|
46
|
-
"get_#{ $1 }"
|
47
|
-
end
|
48
|
-
|
49
|
-
if java_method_name and @voice_impl.respond_to?(java_method_name.to_sym)
|
50
|
-
return @voice_impl.send(java_method_name.to_sym, *args)
|
51
|
-
else
|
52
|
-
error_message = "undefined method #{ method } for #{ self }:Voice"
|
53
|
-
raise NoMethodError.new(error_message)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def self.all
|
58
|
-
voice_manager.get_voices.map { |voice| voice.get_name }
|
59
|
-
end
|
60
|
-
|
61
|
-
def self.for_name(voice_name)
|
62
|
-
if voice = voice_manager.get_voice(voice_name)
|
63
|
-
voice.allocate
|
64
|
-
Voice.new(voice)
|
65
|
-
else
|
66
|
-
raise "no voice found for name \"#{ voice_name }\""
|
67
|
-
end
|
68
|
-
end
|
69
51
|
end
|
70
52
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: freetts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.2.
|
5
|
+
version: 0.2.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Chris kottom
|
@@ -21,6 +21,7 @@ extra_rdoc_files: []
|
|
21
21
|
files:
|
22
22
|
- .gitignore
|
23
23
|
- .rvmrc.example
|
24
|
+
- Gemfile
|
24
25
|
- README.md
|
25
26
|
- bin/freetts
|
26
27
|
- examples/hello_world.rb
|