tts 0.5.0 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 83919a609ee80d82a514a698936ebfb3e21e2bae
4
+ data.tar.gz: 20621b15fdcc69b2d6cd9dc1b0e022f021f718f0
5
+ SHA512:
6
+ metadata.gz: 3af93aff5e8d6d3890f1b4b362d610eb3f67c1633ed72aa5f9254a62d6458cc39755bf54af4a8cdac883c9336a93916c10e1d2309dd00e2e78f336225478562a
7
+ data.tar.gz: 567ee87246cd0d96a510ac9fbdf9c341e823d6e8ce210eeefc38fee1f66594aec764f86eb0c67558885af0fca7865b68eca374e3931eddfcece739373eccf6b3
data/Gemfile CHANGED
@@ -1,8 +1,8 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  group :development do
4
- gem "rspec", "~> 2.6"
5
- gem "bundler", ">= 1.0.0"
6
- gem "jeweler", "~> 1.6.2"
4
+ gem "rspec"
5
+ gem "bundler", "~> 2.0"
6
+ gem "jeweler"
7
7
  # gem "rcov", ">= 0"
8
8
  end
@@ -1,26 +1,75 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- diff-lcs (1.1.2)
5
- git (1.2.5)
6
- jeweler (1.6.2)
7
- bundler (~> 1.0)
4
+ addressable (2.4.0)
5
+ builder (3.2.3)
6
+ descendants_tracker (0.0.4)
7
+ thread_safe (~> 0.3, >= 0.3.1)
8
+ diff-lcs (1.3)
9
+ faraday (0.9.2)
10
+ multipart-post (>= 1.2, < 3)
11
+ git (1.5.0)
12
+ github_api (0.16.0)
13
+ addressable (~> 2.4.0)
14
+ descendants_tracker (~> 0.0.4)
15
+ faraday (~> 0.8, < 0.10)
16
+ hashie (>= 3.4)
17
+ mime-types (>= 1.16, < 3.0)
18
+ oauth2 (~> 1.0)
19
+ hashie (3.6.0)
20
+ highline (2.0.2)
21
+ jeweler (2.3.9)
22
+ builder
23
+ bundler
8
24
  git (>= 1.2.5)
25
+ github_api (~> 0.16.0)
26
+ highline (>= 1.6.15)
27
+ nokogiri (>= 1.5.10)
28
+ psych
9
29
  rake
10
- rake (0.9.2)
11
- rspec (2.6.0)
12
- rspec-core (~> 2.6.0)
13
- rspec-expectations (~> 2.6.0)
14
- rspec-mocks (~> 2.6.0)
15
- rspec-core (2.6.4)
16
- rspec-expectations (2.6.0)
17
- diff-lcs (~> 1.1.2)
18
- rspec-mocks (2.6.0)
30
+ rdoc
31
+ semver2
32
+ jwt (2.1.0)
33
+ mime-types (2.99.3)
34
+ mini_portile2 (2.4.0)
35
+ multi_json (1.13.1)
36
+ multi_xml (0.6.0)
37
+ multipart-post (2.1.0)
38
+ nokogiri (1.10.3)
39
+ mini_portile2 (~> 2.4.0)
40
+ oauth2 (1.4.1)
41
+ faraday (>= 0.8, < 0.16.0)
42
+ jwt (>= 1.0, < 3.0)
43
+ multi_json (~> 1.3)
44
+ multi_xml (~> 0.5)
45
+ rack (>= 1.2, < 3)
46
+ psych (3.1.0)
47
+ rack (2.0.7)
48
+ rake (12.3.2)
49
+ rdoc (6.1.1)
50
+ rspec (3.8.0)
51
+ rspec-core (~> 3.8.0)
52
+ rspec-expectations (~> 3.8.0)
53
+ rspec-mocks (~> 3.8.0)
54
+ rspec-core (3.8.0)
55
+ rspec-support (~> 3.8.0)
56
+ rspec-expectations (3.8.3)
57
+ diff-lcs (>= 1.2.0, < 2.0)
58
+ rspec-support (~> 3.8.0)
59
+ rspec-mocks (3.8.0)
60
+ diff-lcs (>= 1.2.0, < 2.0)
61
+ rspec-support (~> 3.8.0)
62
+ rspec-support (3.8.0)
63
+ semver2 (3.4.2)
64
+ thread_safe (0.3.6)
19
65
 
20
66
  PLATFORMS
21
67
  ruby
22
68
 
23
69
  DEPENDENCIES
24
- bundler (>= 1.0.0)
25
- jeweler (~> 1.6.2)
26
- rspec (~> 2.6)
70
+ bundler (~> 2.0)
71
+ jeweler
72
+ rspec
73
+
74
+ BUNDLED WITH
75
+ 2.0.1
@@ -3,7 +3,8 @@
3
3
  Using the Google Translate service as the speech engine, this gem generates a .mp3 voice file from any given string.
4
4
 
5
5
  == Usage
6
- require 'tts'
6
+
7
+ require 'tts'
7
8
  # Will download "Hello World!.mp3" to your current directory
8
9
  # Supported languages: ["zh", "en", "it", "fr"]
9
10
  "Hello World!".to_file "en"
@@ -21,11 +22,30 @@ Using the Google Translate service as the speech engine, this gem generates a .m
21
22
  #Direct playback (require mpg123 installed and in PATH with a POSIX system)
22
23
  "Established in 1853, the University of Melbourne is a public-spirited institution that makes distinctive contributions to society in research, learning and teaching and engagement.".play
23
24
 
25
+ #Direct playback in other language (2 times)
26
+ "Oggi il tempo è buono, andiamo in gita di esso.".play("it", 2)
27
+
28
+ #RTL Arabic language
29
+ "اليوم كان الطقس جيدا، ونحن نذهب في نزهة منه.".play("ar")
30
+
31
+ == Direct play dependencies
32
+ You need to install `mpg123`
33
+
34
+ sudo apt-get install mpg123 #for debain based
35
+ brew install mpg123 #mac
36
+
37
+ == CLI
38
+
39
+ tts "ruby is great" # play the string.
40
+ text2mp3 "中国上海天气不错" "zh" #create mp3 file.
41
+
24
42
  == Versions
25
43
 
26
- 0.4 fixed issue that long text unable to generated.
27
- 0.5 added all supported languages, added direct playback feature fixed some broken rspec.
44
+ * 0.4 fixed issue that long text unable to generated.
45
+ * 0.5 added all supported languages, added direct playback feature fixed some broken rspec.
46
+ * 0.7 added CLI support
47
+ * 0.7.1 fixed new google API
28
48
 
29
49
  == Copyright
30
50
 
31
- Copyright (c) 2011 Yiling Cao / Charlie Revett. Check LICENSE.txt
51
+ Copyright (c) 2011 Yiling Cao / and other supporters! Check LICENSE.txt
data/Rakefile CHANGED
@@ -17,8 +17,8 @@ Jeweler::Tasks.new do |gem|
17
17
  gem.name = "tts"
18
18
  gem.homepage = "http://github.com/c2h2/tts"
19
19
  gem.license = "MIT"
20
- gem.summary = "a text to speech file tool"
21
- gem.description = "easy way to generate a voice file based on text prvoided."
20
+ gem.summary = "Ruby convert text to mp3"
21
+ gem.description = "(tts) Text -> Mp3 made easy."
22
22
  gem.email = "yiling.cao@gmail.com"
23
23
  gem.authors = ["Yiling Cao"]
24
24
  # dependencies defined in Gemfile
@@ -34,8 +34,8 @@ RSpec::Core::RakeTask.new(:spec) do |t|
34
34
  t.rspec_opts = '--format progress -c'
35
35
  end
36
36
 
37
- require 'rake/rdoctask'
38
- Rake::RDocTask.new do |rdoc|
37
+ require 'rdoc/task'
38
+ RDoc::Task.new do |rdoc|
39
39
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
40
40
 
41
41
  rdoc.rdoc_dir = 'rdoc'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.8.2
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ require 'tts'
3
+
4
+ if ARGV.size == 1
5
+ ARGV[0].to_file "en"
6
+ exit 0
7
+ elsif ARGV.size == 2
8
+ ARGV[0].to_file ARGV[1]
9
+ exit 0
10
+ else
11
+ puts 'Usage: text2mp3 "Your Text"'
12
+ puts 'OR: text2mp3 "Your Text" "Language Code"'
13
+ exit 1
14
+ end
data/bin/tts ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ require 'tts'
3
+
4
+ if ARGV.size == 1
5
+ ARGV[0].play "en"
6
+ exit 0
7
+ elsif ARGV.size == 2
8
+ ARGV[0].play ARGV[1]
9
+ exit 0
10
+ else
11
+ puts 'Usage: tts "Your Text"'
12
+ puts 'OR: tts "Your Text" "Language Code"'
13
+ exit 1
14
+ end
@@ -0,0 +1,4 @@
1
+ require 'tts'
2
+
3
+
4
+ "Hello World".to_file "en"
@@ -0,0 +1,4 @@
1
+ require 'tts'
2
+
3
+
4
+ "Hello World".play("en", 2)
data/lib/tts.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  # encoding: utf-8
2
2
  require 'open-uri'
3
3
  require 'uri'
4
+ require 'tempfile'
4
5
 
5
6
  module Tts
6
7
  @@default_url = "http://translate.google.com/translate_tts"
7
- @@user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24"
8
+ @@user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24"
9
+ @@referer = "http://translate.google.com/"
8
10
 
9
11
  def self.server_url url=nil
10
12
  return @@default_url if url.nil?
@@ -16,14 +18,14 @@ module Tts
16
18
  file_name = self[0..20].generate_file_name if file_name.nil?
17
19
  parts.each do |part|
18
20
  url = part.to_url(lang)
19
- fetch_mp3(url, file_name)
21
+ fetch_mp3(url, file_name)
20
22
  end
21
23
  end
22
-
24
+
23
25
  def validate_text_length text
24
26
  if text.length > 100
25
27
  chunk_text(text)
26
- else
28
+ else
27
29
  [text]
28
30
  end
29
31
  end
@@ -50,21 +52,21 @@ module Tts
50
52
  to_valid_fn + ".mp3"
51
53
  end
52
54
 
53
- def to_valid_fn
55
+ def to_valid_fn
54
56
  gsub(/[\x00\/\\:\*\?\"<>\|]/, '_')
55
57
  end
56
58
 
57
59
  def to_url lang
58
- langs = ['af', 'ar', 'az', 'be', 'bg', 'bn', 'ca', 'cs', 'cy', 'da', 'de', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fr', 'ga', 'gl', 'gu', 'hi', 'hr', 'ht', 'hu', 'id', 'is', 'it', 'iw', 'ja', 'ka', 'kn', 'ko', 'la', 'lt', 'lv', 'mk', 'ms', 'mt', 'nl', 'no', 'pl', 'pt', 'ro', 'ru', 'sk', 'sl', 'sq', 'sr', 'sv', 'sw', 'ta', 'te', 'th', 'tl', 'tr', 'uk', 'ur', 'vi', 'yi', 'zh', 'zh-CN', 'zh-TW']
60
+ langs = ['af', 'ar', 'az', 'be', 'bg', 'bn', 'ca', 'cs', 'cy', 'da', 'de', 'el', 'en', 'en_us', 'en_gb', 'en_au', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fr', 'ga', 'gl', 'gu', 'hi', 'hr', 'ht', 'hu', 'id', 'is', 'it', 'iw', 'ja', 'ka', 'kn', 'ko', 'la', 'lt', 'lv', 'mk', 'ms', 'mt', 'nl', 'no', 'pl', 'pt', 'ro', 'ru', 'sk', 'sl', 'sq', 'sr', 'sv', 'sw', 'ta', 'te', 'th', 'tl', 'tr', 'uk', 'ur', 'vi', 'yi', 'zh', 'zh-CN', 'zh-TW']
59
61
  raise "Not accepted language, accpeted are #{langs * ","}" unless langs.include? lang
60
- base = "#{Tts.server_url}?tl=#{lang}&q=#{URI.escape self}"
62
+ base = "#{Tts.server_url}?tl=#{lang}&ie=UTF-8&client=tw-ob&q=#{URI.escape self}"
61
63
  end
62
64
 
63
65
  def fetch_mp3 url, file_name
64
- begin
65
- content = open(url, "User-Agent" => @@user_agent).read
66
-
67
- File.open("temp.mp3", "wb") do |f|
66
+ begin
67
+ content = open(url, "User-Agent" => @@user_agent, "Referer" => @@referer).read
68
+
69
+ File.open(temp_file_name, "wb") do |f|
68
70
  f.puts content
69
71
  end
70
72
  merge_mp3_file(file_name)
@@ -74,21 +76,28 @@ module Tts
74
76
  end
75
77
  end
76
78
 
79
+ def temp_file_name
80
+ @@temp_file ||= Tempfile.new.path
81
+ end
82
+
83
+ def play_file_name
84
+ @@play_file_file ||= Tempfile.new.path
85
+ end
86
+
77
87
  def merge_mp3_file file_name
78
- `cat temp.mp3 >> "#{file_name}" && rm temp.mp3`
88
+ `cat #{temp_file_name} >> "#{file_name}" && rm #{temp_file_name}`
79
89
  end
80
90
 
81
- def play lang="en", times=1, pause_gap = 1
91
+ def play lang="en", times=1, pause_gap = 1
82
92
  #test if mpg123 exists?
83
93
  `which mpg123`
84
94
  if $?.to_i != 0
85
95
  puts "mpg123 executable NOT found. This function only work with POSIX systems.\n Install mpg123 with `brew install mpg123` or `apt-get install mpg123`"
86
96
  exit 1
87
97
  end
88
- fn = "tts_playonce"
89
- self.to_file(lang, fn)
90
- times.times{|i| `mpg123 -q #{fn}`}
91
- File.delete(fn)
98
+ self.to_file(lang, play_file_name)
99
+ times.times{|i| `mpg123 --no-control -q #{play_file_name}`}
100
+ File.delete(play_file_name)
92
101
  end
93
102
 
94
103
  end
@@ -5,39 +5,39 @@ require "rspec"
5
5
  describe "to_valid_fn method" do
6
6
  # fn.gsub(/[\x00\/\\:\*\?\"<>\|]/, '_')
7
7
  it "should replace * with _" do
8
- "hello*nice".to_valid_fn.should == "hello_nice"
9
- "hello*nice*hello".to_valid_fn.should == "hello_nice_hello"
8
+ expect("hello*nice".to_valid_fn).to eq "hello_nice"
9
+ expect("hello*nice*hello".to_valid_fn).to eq "hello_nice_hello"
10
10
  end
11
11
 
12
12
  it "should replace / with _" do
13
- "hello/nice".to_valid_fn.should == "hello_nice"
14
- "hello/nice/hello".to_valid_fn.should == "hello_nice_hello"
13
+ expect("hello/nice".to_valid_fn).to eq "hello_nice"
14
+ expect("hello/nice/hello".to_valid_fn).to eq "hello_nice_hello"
15
15
  end
16
16
 
17
17
  it "should replace / with _" do
18
- "hello:nice".to_valid_fn.should == "hello_nice"
19
- "hello:nice:hello".to_valid_fn.should == "hello_nice_hello"
18
+ expect("hello:nice".to_valid_fn).to eq "hello_nice"
19
+ expect("hello:nice:hello".to_valid_fn).to eq "hello_nice_hello"
20
20
  end
21
21
 
22
22
  it "should replace / with _" do
23
- "hello?nice".to_valid_fn.should == "hello_nice"
24
- "hello?nice?hello".to_valid_fn.should == "hello_nice_hello"
23
+ expect("hello?nice".to_valid_fn).to eq "hello_nice"
24
+ expect("hello?nice?hello".to_valid_fn).to eq "hello_nice_hello"
25
25
  end
26
26
 
27
27
  it "should replace / with _" do
28
- "hello|nice".to_valid_fn.should == "hello_nice"
29
- "hello|nice?hello".to_valid_fn.should == "hello_nice_hello"
28
+ expect("hello|nice".to_valid_fn).to eq "hello_nice"
29
+ expect("hello|nice?hello".to_valid_fn).to eq "hello_nice_hello"
30
30
  end
31
31
 
32
32
  end
33
33
 
34
34
  describe 'to_url method' do
35
35
  it "to_url should return a correct string" do
36
- "hello".to_url("en").should == "http://translate.google.com/translate_tts?tl=en&q=hello"
36
+ expect("hello".to_url("en")).to eq "http://translate.google.com/translate_tts?tl=en&ie=UTF-8&client=tw-ob&q=hello"
37
37
  end
38
38
 
39
39
  it "to_url should return a correct string with chinese char" do
40
- "人民广场".to_url("zh").should == "http://translate.google.com/translate_tts?tl=zh&q=%E4%BA%BA%E6%B0%91%E5%B9%BF%E5%9C%BA"
40
+ expect("人民广场".to_url("zh")).to eq "http://translate.google.com/translate_tts?tl=zh&ie=UTF-8&client=tw-ob&q=%E4%BA%BA%E6%B0%91%E5%B9%BF%E5%9C%BA"
41
41
  end
42
42
 
43
43
  end
@@ -45,31 +45,31 @@ end
45
45
  describe 'to_file method' do
46
46
  it "to_file should generate a mp3 file for a correct string" do
47
47
  "hello".to_file("en")
48
- File.exist?("hello.mp3").should be_true
48
+ expect(File.exist?("hello.mp3")).to be true
49
49
  File.delete("hello.mp3")
50
50
  end
51
51
 
52
52
  it "to_file should generate a mp3 file with given name for a correct string" do
53
53
  "hello".to_file("en", "my_hello.mp3")
54
- File.exist?("my_hello.mp3").should be_true
54
+ expect(File.exist?("my_hello.mp3")).to be true
55
55
  File.delete("my_hello.mp3")
56
56
  end
57
57
 
58
58
  it "to_file should generate a mp3 file for a correct chinese string" do
59
59
  "人民广场到了".to_file("zh")
60
- File.exist?("人民广场到了.mp3").should be_true
60
+ expect(File.exist?("人民广场到了.mp3")).to be true
61
61
  File.delete("人民广场到了.mp3")
62
62
  end
63
63
 
64
64
  it "to_file should generate a mp3 file for a correct simplified chinese string" do
65
65
  "人民广场马上到了".to_file("zh-CN")
66
- File.exist?("人民广场马上到了.mp3").should be_true
66
+ expect(File.exist?("人民广场马上到了.mp3")).to be true
67
67
  File.delete("人民广场马上到了.mp3")
68
68
  end
69
69
 
70
70
  it "to_file should fail a non-exist language" do
71
- expect{"人民广场马上到了".to_file("dummy")}.should raise_error(RuntimeError)
72
- File.exist?("人民广场马上到了.mp3").should be_false
71
+ expect{"人民广场马上到了".to_file("dummy")}.to raise_error(RuntimeError)
72
+ expect(File.exist?("人民广场马上到了.mp3")).to be false
73
73
  end
74
74
 
75
75
  end
@@ -90,6 +90,6 @@ describe 'set a server url' do
90
90
  end
91
91
 
92
92
  it "to_url should return a correct string" do
93
- "hello".to_url("en").should == "http://127.0.0.1:3001/translate_tts?tl=en&q=hello"
93
+ expect("hello".to_url("en")).to eq "http://127.0.0.1:3001/translate_tts?tl=en&ie=UTF-8&client=tw-ob&q=hello"
94
94
  end
95
95
  end
@@ -2,16 +2,19 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: tts 0.7.1 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
- s.name = "tts"
8
- s.version = "0.5.0"
8
+ s.name = "tts".freeze
9
+ s.version = "0.8.2"
9
10
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Yiling Cao"]
12
- s.date = "2014-05-09"
13
- s.description = "easy way to generate a voice file based on text prvoided."
14
- s.email = "yiling.cao@gmail.com"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Yiling Cao".freeze]
14
+ s.date = "2019-05-11"
15
+ s.description = "(tts) Text -> Mp3 made easy.".freeze
16
+ s.email = "yiling.cao@gmail.com".freeze
17
+ s.executables = ["text2mp3".freeze, "tts".freeze]
15
18
  s.extra_rdoc_files = [
16
19
  "LICENSE.txt",
17
20
  "README.rdoc"
@@ -23,32 +26,35 @@ Gem::Specification.new do |s|
23
26
  "README.rdoc",
24
27
  "Rakefile",
25
28
  "VERSION",
29
+ "bin/text2mp3",
30
+ "bin/tts",
31
+ "example/gen_hello_world_en.rb",
32
+ "example/play_hello_world_en.rb",
26
33
  "lib/tts.rb",
27
34
  "spec/tts_spec.rb",
28
35
  "tts.gemspec"
29
36
  ]
30
- s.homepage = "http://github.com/c2h2/tts"
31
- s.licenses = ["MIT"]
32
- s.require_paths = ["lib"]
33
- s.rubygems_version = "1.8.11"
34
- s.summary = "a text to speech file tool"
37
+ s.homepage = "http://github.com/c2h2/tts".freeze
38
+ s.licenses = ["MIT".freeze]
39
+ s.rubygems_version = "3.0.3".freeze
40
+ s.summary = "Ruby convert text to mp3".freeze
35
41
 
36
42
  if s.respond_to? :specification_version then
37
- s.specification_version = 3
43
+ s.specification_version = 4
38
44
 
39
45
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
40
- s.add_development_dependency(%q<rspec>, ["~> 2.6"])
41
- s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
42
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
46
+ s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
47
+ s.add_development_dependency(%q<bundler>.freeze, ["~> 2.0"])
48
+ s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
43
49
  else
44
- s.add_dependency(%q<rspec>, ["~> 2.6"])
45
- s.add_dependency(%q<bundler>, [">= 1.0.0"])
46
- s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
50
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
51
+ s.add_dependency(%q<bundler>.freeze, ["~> 2.0"])
52
+ s.add_dependency(%q<jeweler>.freeze, [">= 0"])
47
53
  end
48
54
  else
49
- s.add_dependency(%q<rspec>, ["~> 2.6"])
50
- s.add_dependency(%q<bundler>, [">= 1.0.0"])
51
- s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
55
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
56
+ s.add_dependency(%q<bundler>.freeze, ["~> 2.0"])
57
+ s.add_dependency(%q<jeweler>.freeze, [">= 0"])
52
58
  end
53
59
  end
54
60
 
metadata CHANGED
@@ -1,52 +1,62 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.8.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Yiling Cao
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-05-09 00:00:00.000000000 Z
11
+ date: 2019-05-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
- requirement: &18654720 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ~>
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: '2.6'
19
+ version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *18654720
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: bundler
27
- requirement: &18654180 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - "~>"
31
32
  - !ruby/object:Gem::Version
32
- version: 1.0.0
33
+ version: '2.0'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *18654180
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: jeweler
38
- requirement: &18653660 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ~>
45
+ - - ">="
42
46
  - !ruby/object:Gem::Version
43
- version: 1.6.2
47
+ version: '0'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *18653660
47
- description: easy way to generate a voice file based on text prvoided.
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: "(tts) Text -> Mp3 made easy."
48
56
  email: yiling.cao@gmail.com
49
- executables: []
57
+ executables:
58
+ - text2mp3
59
+ - tts
50
60
  extensions: []
51
61
  extra_rdoc_files:
52
62
  - LICENSE.txt
@@ -58,35 +68,35 @@ files:
58
68
  - README.rdoc
59
69
  - Rakefile
60
70
  - VERSION
71
+ - bin/text2mp3
72
+ - bin/tts
73
+ - example/gen_hello_world_en.rb
74
+ - example/play_hello_world_en.rb
61
75
  - lib/tts.rb
62
76
  - spec/tts_spec.rb
63
77
  - tts.gemspec
64
78
  homepage: http://github.com/c2h2/tts
65
79
  licenses:
66
80
  - MIT
81
+ metadata: {}
67
82
  post_install_message:
68
83
  rdoc_options: []
69
84
  require_paths:
70
85
  - lib
71
86
  required_ruby_version: !ruby/object:Gem::Requirement
72
- none: false
73
87
  requirements:
74
- - - ! '>='
88
+ - - ">="
75
89
  - !ruby/object:Gem::Version
76
90
  version: '0'
77
- segments:
78
- - 0
79
- hash: 398776537257557662
80
91
  required_rubygems_version: !ruby/object:Gem::Requirement
81
- none: false
82
92
  requirements:
83
- - - ! '>='
93
+ - - ">="
84
94
  - !ruby/object:Gem::Version
85
95
  version: '0'
86
96
  requirements: []
87
97
  rubyforge_project:
88
- rubygems_version: 1.8.11
98
+ rubygems_version: 2.6.12
89
99
  signing_key:
90
- specification_version: 3
91
- summary: a text to speech file tool
100
+ specification_version: 4
101
+ summary: Ruby convert text to mp3
92
102
  test_files: []