speechcloud 0.1 → 0.1.1

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,54 @@
1
+ module SpeechCloud::AdditionalInfo
2
+ class << self
3
+ # Check the characters price for a specified speech parameters (text and voice pair)
4
+ def check_text_price(voice_id, text)
5
+ token = SpeechCloud::Auth.get_token
6
+ md5 = SpeechCloud::GetMd5.formula(token)
7
+ params = [ "token=#{token}",
8
+ "md5=#{md5}",
9
+ "text=#{text}",
10
+ "voiceId=#{voice_id}" ]
11
+ params = params.join('&')
12
+ HTTParty.get("#{BASE_URL}/textprice?#{params}")
13
+ end
14
+
15
+ # Show user TTS SaaS agreement data (this method will result in an error if there isn’t a SaaS agreement currently active for user)
16
+ def get_user_agreement_data
17
+ token = SpeechCloud::Auth.get_token
18
+ md5 = SpeechCloud::GetMd5.formula(token)
19
+ params = [ "token=#{token}",
20
+ "md5=#{md5}" ]
21
+ params = params.join('&')
22
+ HTTParty.get("#{BASE_URL}/agreementdata?#{params}")
23
+ end
24
+
25
+ # Get all available voices list
26
+ def list_voices
27
+ token = SpeechCloud::Auth.get_token
28
+ md5 = SpeechCloud::GetMd5.formula(token)
29
+ params = [ "token=#{token}",
30
+ "md5=#{md5}" ]
31
+ params = params.join('&')
32
+ HTTParty.get("#{BASE_URL}/voices?#{params}")
33
+ end
34
+
35
+ # Get single voice data
36
+ def get_voice_data( voice_id )
37
+ token = SpeechCloud::Auth.get_token
38
+ md5 = SpeechCloud::GetMd5.formula(token)
39
+ params = [ "token=#{token}",
40
+ "md5=#{md5}" ]
41
+ params = params.join('&')
42
+ HTTParty.get("#{BASE_URL}/voices/#{voice_id}?#{params}")
43
+ end
44
+
45
+ # Get all available codecs list
46
+ def list_codecs
47
+ token = SpeechCloud::Auth.get_token
48
+ params = [ "token=#{token}",
49
+ "md5=#{SpeechCloud::GetMd5.formula(token)}" ]
50
+ params = params.join('&')
51
+ HTTParty.get("#{BASE_URL}/codecs?#{params}")
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,18 @@
1
+ require 'httparty'
2
+
3
+ module SpeechCloud::Auth
4
+ class << self
5
+ # Make a request for a token
6
+ def get_token
7
+ email = SpeechCloud::Config.email
8
+ options = { :body => "email=#{email}" }
9
+ HTTParty.post("#{BASE_URL}/tokens/", options)
10
+ end
11
+
12
+ # Verify that token and md5 are legit. A response of 1 confirms that they are.
13
+ def check_token(token)
14
+ params = "token=#{token}&md5=#{SpeechCloud::GetMd5.formula(token)}"
15
+ HTTParty.get("#{BASE_URL}/tokens?#{params}")
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ module SpeechCloud::Config
2
+ class << self
3
+ attr_accessor :api_key, :email, :voice_id, :codec_id
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ module SpeechCloud::GetMd5
2
+ class << self
3
+ # Helper method to transform a string to MD5
4
+ def to_md5(a_string)
5
+ Digest::MD5.hexdigest(a_string)
6
+ end
7
+
8
+ # Formula for md5 param is: md5( md5( api_key ) + token )
9
+ def formula(token)
10
+ api_key = SpeechCloud::Config.api_key
11
+ api_key_as_md5 = to_md5( api_key )
12
+ to_md5( api_key_as_md5 + token )
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,58 @@
1
+ module SpeechCloud::Pronunciation
2
+ class << self
3
+ # Get the data for all user’s pronunciation rules for selected language
4
+ # lang_id example: 'gb'
5
+ def list_pronunciation_rules( lang_id )
6
+ token = SpeechCloud::Auth.get_token
7
+ md5 = SpeechCloud::GetMd5.formula(token)
8
+ params = [ "token=#{token}",
9
+ "md5=#{md5}",
10
+ "langId=#{lang_id}" ]
11
+ params = params.join('&')
12
+ HTTParty.get("#{BASE_URL}/pronunciationrules?#{params}")
13
+ end
14
+
15
+ # Add any number of pronunciation rules for selected language into user’s account
16
+ # lang_id example: 'en'
17
+ # stat example: 1 == case insensitive, 2 == case sensitive
18
+ # key (word to change) example: 'bcn'
19
+ # value (word it will change to) example: 'bacon'
20
+ def add_pronunciation_rule( lang_id, stat, key, value )
21
+ token = SpeechCloud::Auth.get_token
22
+ md5 = SpeechCloud::GetMd5.formula(token)
23
+ params = { token:token,
24
+ md5:md5,
25
+ langId:lang_id,
26
+ stat:stat,
27
+ key:key,
28
+ value:value }
29
+ HTTParty.post("#{BASE_URL}/pronunciationrules", {:body=>params})
30
+ end
31
+
32
+ # Modify any number of user’s pronunciation rules for selected language
33
+ # id is the rule identifier. Could be aquired by using the list_pronunciation_rules method
34
+ def modify_pronunciation_rule( id, lang_id, stat, key, value )
35
+ token = SpeechCloud::Auth.get_token
36
+ md5 = SpeechCloud::GetMd5.formula(token)
37
+ params = [ "token=#{token}",
38
+ "md5=#{md5}",
39
+ "langId=#{lang_id}",
40
+ "stat=#{stat}",
41
+ "key=#{key}",
42
+ "value=#{value}" ]
43
+ params = params.join('&')
44
+ HTTParty.put("#{BASE_URL}/pronunciationrules/#{id}?#{params}")
45
+ end
46
+
47
+ # Delete any number of user’s pronunciation rules for selected language.
48
+ def delete_pronunciation_rule( id, lang_id )
49
+ token = SpeechCloud::Auth.get_token
50
+ md5 = SpeechCloud::GetMd5.formula(token)
51
+ params = [ "token=#{token}",
52
+ "md5=#{md5}",
53
+ "langId=#{lang_id}" ]
54
+ params = params.join('&')
55
+ HTTParty.delete("#{BASE_URL}/pronunciationrules/#{id}?#{params}")
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,60 @@
1
+ module SpeechCloud::Speech
2
+ class << self
3
+ # Helper. Gathers params for the create_speech_file method defined below.
4
+ def get_speech_file_params(text, codec_id='mp3/22050' )
5
+ token = SpeechCloud::Auth.get_token
6
+ md5 = SpeechCloud::GetMd5.formula(token)
7
+ content_type = 'text/plain'
8
+ voice_id = SpeechCloud::Config.voice_id
9
+ codec_id = SpeechCloud::Config.codec_id
10
+ { token: token,
11
+ md5: md5,
12
+ text: text,
13
+ contentType: content_type,
14
+ voiceId: voice_id,
15
+ codecId: codec_id }
16
+ end
17
+
18
+ # Get a url for a speech file generated from uploaded text.
19
+ def create_speech_file( text )
20
+ HTTParty.post("#{BASE_URL}/speechfiles", {:body=>get_speech_file_params( text )})
21
+ end
22
+
23
+ # Get a url for a speech file generated from uploaded text and for a text file with speech
24
+ # marks describing the positions of the text entities in a speech file.
25
+ def create_speech_file_with_marks( text )
26
+ HTTParty.post("#{BASE_URL}/speechfileswithmarks", {:body=>get_speech_file_params( text )})
27
+ end
28
+
29
+ # Delete a single speech file data
30
+ # Result: success (int: 0/1) – success (1) or failure (0) of the operation
31
+ def delete_speech_file( file_id )
32
+ token = SpeechCloud::Auth.get_token
33
+ md5 = SpeechCloud::GetMd5.formula(token)
34
+ params = [ "token=#{token}",
35
+ "md5=#{md5}" ]
36
+ params = params.join('&')
37
+ HTTParty.delete("#{BASE_URL}/speechfiles/#{file_id}?#{params}")
38
+ end
39
+
40
+ # Get a list of all active speech files for the current user
41
+ def list_speech_files
42
+ token = SpeechCloud::Auth.get_token
43
+ md5 = SpeechCloud::GetMd5.formula(token)
44
+ params = [ "token=#{token}",
45
+ "md5=#{md5}" ]
46
+ params = params.join('&')
47
+ HTTParty.get("#{BASE_URL}/speechfiles?#{params}")
48
+ end
49
+
50
+ # Getting data of single utterance
51
+ def get_speech_file_data( file_id )
52
+ token = SpeechCloud::Auth.get_token
53
+ md5 = SpeechCloud::GetMd5.formula(token)
54
+ params = [ "token=#{token}",
55
+ "md5=#{md5}" ]
56
+ params = params.join('&')
57
+ HTTParty.get("#{BASE_URL}/speechfiles/#{file_id}?#{params}")
58
+ end
59
+ end
60
+ end
metadata CHANGED
@@ -5,7 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- version: "0.1"
8
+ - 1
9
+ version: 0.1.1
9
10
  platform: ruby
10
11
  authors:
11
12
  - Sean Holden
@@ -38,6 +39,12 @@ extra_rdoc_files: []
38
39
 
39
40
  files:
40
41
  - lib/speechcloud.rb
42
+ - lib/speechcloud/additional_information.rb
43
+ - lib/speechcloud/authorization.rb
44
+ - lib/speechcloud/configuration.rb
45
+ - lib/speechcloud/get_md5.rb
46
+ - lib/speechcloud/pronunciation_rules.rb
47
+ - lib/speechcloud/speech_generation.rb
41
48
  has_rdoc: true
42
49
  homepage: http://rubygems.org/gems/speechcloud
43
50
  licenses: []