freetts 0.1.0 → 0.2.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.
data/README.md CHANGED
@@ -19,11 +19,19 @@ This wrapper exposes the most essential functionality required for processing
19
19
  text-to-speech requests.
20
20
 
21
21
 
22
+ ### Installation
23
+ Installing the library is as simple as:
24
+
25
+ ```bash
26
+ gem install freetts
27
+ ```
28
+
29
+
22
30
  ### Sample Code
23
31
  It's easy enough to pass a String to FreeTTS:
24
32
 
25
33
  ```ruby
26
- require "lib/freetts"
34
+ require "freetts"
27
35
 
28
36
  FreeTTS.speak "hello world"
29
37
  ```
@@ -33,7 +41,7 @@ With a little bit of manipulation, FreeTTS can read the news to you:
33
41
  ```ruby
34
42
  require "uri"
35
43
  require "rss"
36
- require "lib/freetts"
44
+ require "freetts"
37
45
 
38
46
  uri = URI.parse("http://feeds.feedburner.com/RubyInside")
39
47
  feed_items = RSS::Parser.parse(uri.read, false).items.first(5)
@@ -64,4 +72,4 @@ examples/voice_play.rb
64
72
 
65
73
  ## Future Enhancements
66
74
  - An adapter for plugging IO objects directly into the speech synthesizer
67
- - Whack out a gem version of the library
75
+
@@ -1,16 +1,12 @@
1
1
  #!/usr/bin/env jruby
2
2
 
3
- require "freetts"
4
-
5
-
6
- USAGE_MESSAGE = "please enter a message for free t t s to speak"
7
3
  USAGE_EXAMPLE = "Usage: freetts <MESSAGE>"
8
4
 
9
5
  if ARGV.length > 0
6
+ require "freetts"
10
7
  message = ARGV.join(" ")
11
8
  FreeTTS.speak(message)
12
9
  else
13
- FreeTTS.speak(USAGE_MESSAGE)
14
10
  puts USAGE_EXAMPLE
15
11
  exit(false)
16
- end
12
+ end
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env jruby
2
2
 
3
- require "lib/freetts"
3
+ require "freetts"
4
4
 
5
5
  FreeTTS.speak("hello world")
@@ -1,20 +1,28 @@
1
1
  #!/usr/bin/env jruby
2
2
 
3
-
4
- $:.unshift File.join(File.dirname(__FILE__), "../lib")
5
3
  require "uri"
6
4
  require "rss"
7
5
  require "freetts"
8
6
 
9
7
 
10
- feed_url = "http://feeds.feedburner.com/RailsInside"
8
+ feed_url = "http://feeds.feedburner.com/RubyInside"
11
9
 
12
10
  uri = URI.parse(feed_url)
11
+ content = uri.read
12
+ puts content
13
+ puts content.encoding
14
+ content.force_encoding("utf-8")
15
+ puts content.encoding
13
16
 
14
- feed_items = RSS::Parser.parse(uri.read, false).items.first(5)
17
+ feed_items = RSS::Parser.parse(content, false).items.first(5)
15
18
 
16
19
  feed_items.each do |item|
17
- title = item.title.content
20
+ title = begin
21
+ item.title.content # works for RSS:Atom feeds
22
+ rescue NoMethodError
23
+ item.title.to_s # works for standard RSS
24
+ end
25
+
18
26
  puts title
19
27
  FreeTTS.speak(title)
20
28
  end
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env jruby
2
2
 
3
- $:.unshift File.join(File.dirname(__FILE__), "..")
4
- require "lib/freetts"
3
+ require "freetts"
5
4
 
6
5
 
7
6
  # A summary of the available commands
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.files = `git ls-files`.split("\n")
16
16
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
17
  s.executables = ["freetts"]
18
- s.require_paths = ["lib"]
18
+ s.require_paths = ["lib", "vendor"]
19
19
 
20
20
  # specify any dependencies here; for example:
21
21
  # s.add_development_dependency "rspec"
@@ -1,18 +1,8 @@
1
- $:.unshift(File.dirname(__FILE__))
2
-
3
1
  require "java"
4
- require "vendor/freetts.jar"
2
+ require "freetts.jar"
5
3
 
6
- require "freetts/voice"
7
4
  require "freetts/version"
5
+ require "freetts/voice"
6
+ require "freetts/freetts"
8
7
 
9
8
 
10
- module FreeTTS
11
- @current_voice = Voice.for_name(Voice::DEFAULT_NAME)
12
- class << self; attr_accessor :current_voice; end
13
-
14
-
15
- def self.speak(speakable)
16
- self.current_voice.speak(speakable)
17
- end
18
- end
@@ -0,0 +1,11 @@
1
+ module FreeTTS
2
+ class << self
3
+ attr_accessor :current_voice
4
+
5
+ def speak(speakable)
6
+ @current_voice.speak(speakable)
7
+ end
8
+ end
9
+
10
+ @current_voice = Voice.for_name(Voice::DEFAULT_NAME)
11
+ end
@@ -1,3 +1,3 @@
1
1
  module FreeTTS
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -2,9 +2,32 @@ module FreeTTS
2
2
  class Voice
3
3
  DEFAULT_NAME = "kevin16"
4
4
 
5
+ ACCESSIBLE_ATTRIBUTES = %w( age description domain duration_stretch
6
+ gender locale name organization pitch
7
+ pitch_range pitch_shift rate run_title style
8
+ volume )
9
+ MODIFIABLE_ATTRIBUTES = %w( duration_stretch pitch pitch_range pitch_shift
10
+ rate volume )
11
+
12
+
5
13
  @voice_manager = com.sun.speech.freetts.VoiceManager.get_instance
6
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
7
19
 
20
+ ACCESSIBLE_ATTRIBUTES.each do |attribute|
21
+ ruby_method = attribute.to_sym
22
+ java_method = "get_#{ attribute }".to_sym
23
+ define_method(ruby_method) { @voice_impl.send(java_method) }
24
+ end
25
+
26
+ MODIFIABLE_ATTRIBUTES.each do |attribute|
27
+ ruby_method = "#{ attribute }=".to_sym
28
+ java_method = "set_#{ attribute }".to_sym
29
+ define_method(ruby_method) { |value| @voice_impl.send(java_method, value) }
30
+ end
8
31
 
9
32
  def initialize(voice)
10
33
  @voice_impl = voice
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: freetts
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.0
5
+ version: 0.2.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Chris kottom
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-19 00:00:00.000000000 +02:00
12
+ date: 2011-09-21 00:00:00.000000000 +02:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
  description: FreeTTS provides a simple wrapper around the Java library of the same name in order to expose a voice synthesis API.
@@ -28,6 +28,7 @@ files:
28
28
  - examples/voice_play.rb
29
29
  - freetts.gemspec
30
30
  - lib/freetts.rb
31
+ - lib/freetts/freetts.rb
31
32
  - lib/freetts/version.rb
32
33
  - lib/freetts/voice.rb
33
34
  - test/freetts_test.rb
@@ -47,6 +48,7 @@ post_install_message:
47
48
  rdoc_options: []
48
49
  require_paths:
49
50
  - lib
51
+ - vendor
50
52
  required_ruby_version: !ruby/object:Gem::Requirement
51
53
  requirements:
52
54
  - - ! '>='