typecast-ruby 0.1.1 → 0.1.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.
- checksums.yaml +4 -4
- data/lib/typecast/client.rb +23 -0
- data/lib/typecast/models.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '07508aef051788fd8993b3c844fd431689193ea006541bc4f2cfc0224de8ed79'
|
|
4
|
+
data.tar.gz: 0dd2fc6ee5a0c435e5742f89dc8d14cb25feb9a3bc0dad9c6179ba0150617565
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a234192530e80f46f39d8bb4943d796dfad95f4dbe8521e92a52b74ee4b8c393ccd73741dc4f802469ea57e157d096f5a49a5e5ca8f93bfbde87605768a5543c
|
|
7
|
+
data.tar.gz: ec1f70d384151b04825b6018f9c478fe9c1a301859ddb529ee973128cbf8a44e097765bd9d735612ee9ed110576e1e782f08229cdeaae5d450a8600b540f3926
|
data/lib/typecast/client.rb
CHANGED
|
@@ -30,6 +30,22 @@ module Typecast
|
|
|
30
30
|
)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
+
# Browse available API voices at https://typecast.ai/developers/api/voices.
|
|
34
|
+
def generate_to_file(path, text:, voice_id:, model: Models::TTS_MODEL_V30, language: nil, prompt: nil, output: nil, seed: nil)
|
|
35
|
+
request = Models::TTSRequest.new(
|
|
36
|
+
voice_id: voice_id,
|
|
37
|
+
text: text,
|
|
38
|
+
model: model,
|
|
39
|
+
language: language,
|
|
40
|
+
prompt: prompt,
|
|
41
|
+
output: output || inferred_output(path),
|
|
42
|
+
seed: seed
|
|
43
|
+
)
|
|
44
|
+
response = text_to_speech(request)
|
|
45
|
+
File.binwrite(path, response.audio_data)
|
|
46
|
+
response
|
|
47
|
+
end
|
|
48
|
+
|
|
33
49
|
def text_to_speech_stream(request)
|
|
34
50
|
response = request_json(:post, "/v1/text-to-speech/stream", request.to_h)
|
|
35
51
|
return enum_for(:text_to_speech_stream, request) unless block_given?
|
|
@@ -81,6 +97,13 @@ module Typecast
|
|
|
81
97
|
|
|
82
98
|
private
|
|
83
99
|
|
|
100
|
+
def inferred_output(path)
|
|
101
|
+
case File.extname(path.to_s).downcase
|
|
102
|
+
when ".mp3" then Models::Output.new(audio_format: Models::AUDIO_MP3)
|
|
103
|
+
when ".wav" then Models::Output.new(audio_format: Models::AUDIO_WAV)
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
84
107
|
def request_json(method, path, body = nil, query = nil)
|
|
85
108
|
headers = auth_headers.merge("Content-Type" => "application/json")
|
|
86
109
|
request_raw(method, path, body.nil? ? nil : JSON.generate(body), headers, query)
|
data/lib/typecast/models.rb
CHANGED
|
@@ -90,6 +90,7 @@ module Typecast
|
|
|
90
90
|
class TTSRequest
|
|
91
91
|
attr_reader :voice_id, :text, :model, :language, :prompt, :output, :seed
|
|
92
92
|
|
|
93
|
+
# Browse available API voices at https://typecast.ai/developers/api/voices.
|
|
93
94
|
def initialize(voice_id:, text:, model:, language: nil, prompt: nil, output: nil, seed: nil)
|
|
94
95
|
@voice_id = voice_id
|
|
95
96
|
@text = text
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: typecast-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Neosapience
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-06-
|
|
11
|
+
date: 2026-06-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|