tts 0.5.0 → 0.8.2

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.
@@ -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: []