dejan-espeak-ruby 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.rdoc +15 -10
  2. data/VERSION.yml +2 -2
  3. data/lib/espeak-ruby.rb +24 -6
  4. metadata +1 -1
data/README.rdoc CHANGED
@@ -2,24 +2,29 @@
2
2
 
3
3
  espeak-ruby is small Ruby API for utilizing 'espeak' and 'lame' to create Text-To-Speech mp3 files.
4
4
 
5
- * http://espeak.sourceforge.net - eSpeak is a compact open source software speech synthesizer for English and other languages, for Linux and Windows.
6
- * http://lame.sourceforge.net - LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.
5
+ * eSpeak is a compact open source software speech synthesizer for English and other languages, for Linux and Windows.
6
+ * LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.
7
+
8
+ == Example
7
9
 
8
- == examples
9
10
  require 'rubygems'
10
11
  require 'espeak-ruby'
11
12
 
12
13
  include ESpeak
13
14
 
14
15
  espeak("Hello World")
15
- espeak("Guten Tag", :lang => :de)
16
+ espeak("Guten Tag", :v => "de")
17
+
18
+ == Requirements
19
+
20
+ * Linux or Windows (I failed in trying to compile espeak on Mac)
21
+ * http://espeak.sourceforge.net
22
+ * http://lame.sourceforge.net/index.php
16
23
 
17
- == requirements
24
+ == Related
18
25
 
19
- * linux or windows (I failed in trying to compile espeak on Mac)
20
- * espeak http://espeak.sourceforge.net
21
- * lame http://lame.sourceforge.net/index.php
26
+ * http://github.com/dejan/espeak-http - Micro web app for Text-To-Speech conversion via HTTP powered by Ruby, Sinatra, lame, espeak and espeak-ruby
22
27
 
23
- == author
28
+ == Credits
24
29
 
25
- Dejan Simic ~ http://rors.org
30
+ Author: Dejan Simic ~ http://rors.org
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :minor: 1
3
- :patch: 2
2
+ :minor: 2
3
+ :patch: 0
4
4
  :major: 0
data/lib/espeak-ruby.rb CHANGED
@@ -1,19 +1,37 @@
1
1
  require 'rubygems'
2
- require 'active_support'
2
+ require 'digest/sha1'
3
3
 
4
4
  module ESpeak
5
- def espeak(text, opts = {})
6
5
 
7
- options = {:pitch => 30, :speed => 100, :filename => "test.mp3", :lang => 'en'}
6
+ def espeak(text, opts = {})
8
7
  opts.symbolize_keys!
9
- options.merge!(opts)
8
+ options = {
9
+ :v => 'en', # use voice file of this name from espeak-data/voices
10
+ :p => 50, # pitch adjustment, 0 to 99
11
+ :s => 170 # speed in words per minute, 80 to 370
12
+ }.merge(opts)
13
+
10
14
  sanitized_text = text.gsub(/(!|\?|"|`|\\)/, ' ')
15
+ filename = Digest::SHA1.hexdigest(options.to_s)
11
16
 
12
- if system(%$espeak "#{sanitized_text}" --stdout -v#{options[:lang]} -p#{options[:pitch]} -s#{options[:speed]} | lame -V2 - #{options[:filename]}$)
13
- options[:filename]
17
+ if system(%$espeak "#{sanitized_text}" --stdout -v#{options[:lang]} -p#{options[:pitch]} -s#{options[:speed]} | lame -V2 - #{filename}$)
18
+ filename
14
19
  else
15
20
  raise "Error while running espeak. You don't seem to have espeak or lame installed ..."
16
21
  end
22
+ end
23
+
24
+ private
25
+
26
+ def symbolize_keys
27
+ inject({}) do |options, (key, value)|
28
+ options[(key.to_sym rescue key) || key] = value
29
+ options
30
+ end
31
+ end
17
32
 
33
+ def symbolize_keys!
34
+ self.replace(self.symbolize_keys)
18
35
  end
36
+
19
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dejan-espeak-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dejan Simic