google_tts2 0.0.2 → 0.0.3

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/.gitignore CHANGED
@@ -15,3 +15,4 @@ tmp
15
15
  .yardoc
16
16
  _yardoc
17
17
  doc/
18
+ lib/out/
data/README.md CHANGED
@@ -1,16 +1,34 @@
1
1
  Inspired on another gem - https://github.com/bloomrain/google_tts - this library is a
2
2
  complete refactoring to support large texts.
3
3
 
4
- #Install on Gemfile
5
- gem 'google_tts2', '0.0.2', :git => "https://github.com/filipesperandio/google_tts2.git"
4
+ #Install
5
+ on Gemfile
6
+
7
+ gem 'google_tts2'
8
+
9
+ or just
10
+
11
+ gem install google_tts2
12
+
13
+
6
14
  #Usage
7
15
  require 'google_tts'
8
- google_tts = GoogleTts.instantiate({:lang => :pt, :output => "out", :proxy => {:port => 8080, :host => 'localhost' }})
9
- google_tts.save "FileName" "Texto em Portugês"
16
+ google_tts = GoogleTts.instantiate
17
+ google_tts.save("FileName", "English text")
18
+ # => "out/FileName.mp3"
10
19
 
20
+ or
21
+
22
+ google_tts = GoogleTts.instantiate({:lang => :pt, :output => "tmp/mp3"})
23
+ google_tts.save("FileName", File.open("big_text_file.txt").read)
24
+ # => "tmp/mp3/FileName.mp3"
25
+
26
+ or
27
+
28
+ google_tts = GoogleTts.instantiate({:lang => :pt, :output => "out", :proxy => {:port => 8080, :host => 'localhost' }})
29
+ google_tts.save("FileName", "Texto em Portugês")
30
+ # => "out/FileName.mp3"
11
31
 
12
- #TODO
13
- * gemspec
14
32
 
15
33
  #Development
16
34
 
@@ -18,10 +36,11 @@ Just install the bundles:
18
36
 
19
37
  bundle install
20
38
 
39
+
21
40
  To run the tests
22
41
 
23
42
  bundle exec guard
24
-
43
+
25
44
  or
26
45
 
27
46
  bundle exec rspec spec
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'google_tts'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "google_tts2"
8
+ gem.version = GoogleTts::VERSION
9
+ gem.authors = ["Filipe Esperandio"]
10
+ gem.email = ["filipesperandio@gmail.com"]
11
+ gem.summary = %q{Google TTS client}
12
+ gem.description = %q{Google TTS client which accepts large text input, parses and split into multiple requests. Saves a single mp3 matching the input text.}
13
+ gem.homepage = "http://github.com/filipesperandio/google_tts2"
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+ gem.add_development_dependency 'rspec'
20
+ end
@@ -42,7 +42,17 @@ module GoogleTts
42
42
  bad_size?(txt) ? partials.call : txt
43
43
  end
44
44
 
45
+ def splitInHalf(sentence, separator)
46
+ firstHalf = sentence[0..(sentence.length/2)]
47
+ firstHalf = firstHalf[0..(firstHalf.rindex(separator)-1)]
48
+ secondHalf = sentence[(firstHalf.length)..-1]
49
+ [firstHalf, secondHalf]
50
+ end
51
+
45
52
  def accumulate(sentence, separator, &next_step)
53
+ splitInTwo = splitInHalf(sentence, separator)
54
+ return splitInTwo if splitInTwo[0].length <= 100 and splitInTwo[1].length <= 100
55
+
46
56
  partial = []
47
57
  tmp = ''
48
58
  sentence.split(separator).each do |a|
data/lib/google_tts.rb CHANGED
@@ -4,7 +4,7 @@ require 'google_tts/parser'
4
4
  require 'google_tts/mp3writer'
5
5
 
6
6
  module GoogleTts
7
- VERSION = "0.0.2"
7
+ VERSION = "0.0.3"
8
8
 
9
9
  class Client
10
10
  include GoogleTts
@@ -41,6 +41,14 @@ describe GoogleTts::Parser do
41
41
  expect(result_escaped).to eq(original_escaped)
42
42
  end
43
43
 
44
+ it 'should split big sentence in commas but try to keep pieces as big as possible' do
45
+ text = 'O projeto é de autoria do arquiteto João Batista Giovenale, então professor da Academia de Belas Artes - São Lucas - de Roma, e membro da Comissão de Arte Sacra da Basílica de São Pedro.'
46
+ result = subject.sentences text
47
+ result.each do |txt|
48
+ txt.length.should be > 40
49
+ end
50
+ end
51
+
44
52
  it 'should split big sentence in commas or minor pieces' do
45
53
  text = "O projeto é de autoria do arquiteto João Batista Giovenale, então professor da Academia de Belas Artes - São Lucas - de Roma, e membro da Comissão de Arte Sacra da Basílica de São Pedro."
46
54
  result = subject.sentences text
@@ -52,7 +60,6 @@ describe GoogleTts::Parser do
52
60
  result = subject.sentences 'Ola. tudo bem?'
53
61
  expect(result.length).to eq(1)
54
62
  end
55
-
56
63
  end
57
64
 
58
65
  def readable(t)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_tts2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-30 00:00:00.000000000 Z
12
+ date: 2014-02-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -42,6 +42,7 @@ files:
42
42
  - LICENSE
43
43
  - README.md
44
44
  - Rakefile
45
+ - google_tts2.gempspec
45
46
  - lib/google_tts.rb
46
47
  - lib/google_tts/connector.rb
47
48
  - lib/google_tts/mp3writer.rb