runapi-fish-audio 0.1.0 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 461ea948c2ab38055fcdb01571c33d22f892eddee856fd685f9e72cd7aeaddcf
4
- data.tar.gz: da42010da43a52562f1159ebcd8439223f84f78b681ce1c8280175fe9892a300
3
+ metadata.gz: a555b31c9b50ad3d2019857e82018a157e5f37a5421b68e56d317889199c0c26
4
+ data.tar.gz: 8a161d681ba81e80a95c51c85b665b026ac6edff3cced6bc1ce4513f0c769633
5
5
  SHA512:
6
- metadata.gz: 2ef0fb7d175cfa3efa25be84efbdbbd7fca032f68763cb247d8f3d808fd0ebc2172f195eb06ffdefed9419af49b9f35b78bf6023b2cd67c9b234fb731cb1c259
7
- data.tar.gz: bcd977a38eadedd99c733a847d7d4ae05cbe6d140a9424bf957508b16b2a8682b0d0e594287ed77ec5041205d2f824f77920056a39c5c1b962b39b7af291b2cb
6
+ metadata.gz: 47d8e0626b669fe121b9660b2499b3ce0f6dd7250f024736cf17c69ad0218e6f883015d1e483a21d70c76ec783b258bc6d242dc342dd42e3b01ef241f4331a1c
7
+ data.tar.gz: 485421987b03215943fb78014eae60f0880377097edd493bac1661fe4af9e189d5bdb587e77a7bc8ab52450709af4b03598cf96eb6cc84c6b796815c8eafa258
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Install `runapi-fish-audio`, create `RunApi::FishAudio::Client`, and call `client.text_to_speech.run(model: "s1", text: "Hello")`.
4
4
 
5
+ Pass optional `references` entries with base64-encoded raw audio bytes and exact transcripts for request-scoped voice matching.
6
+
5
7
  Model details and pricing: https://runapi.ai/models/fish-audio
6
8
 
7
9
  Licensed under the Apache License, Version 2.0.
@@ -17,8 +17,28 @@ module RunApi
17
17
  def run(options: nil, **params)
18
18
  params = compact_params(params)
19
19
  validate_contract!(CONTRACT["text-to-speech"], params)
20
+ validate_references!(params[:references])
20
21
  request(:post, ENDPOINT, body: params, options: options)
21
22
  end
23
+
24
+ private
25
+
26
+ def validate_references!(references)
27
+ return if references.nil?
28
+ raise Core::ValidationError, "references must be an array" unless references.is_a?(Array)
29
+
30
+ references.each_with_index do |reference, index|
31
+ raise Core::ValidationError, "references[#{index}] must be an object" unless reference.respond_to?(:key?)
32
+
33
+ %i[audio text].each do |field|
34
+ value = reference[field] || reference[field.to_s]
35
+ if value.nil? || (value.is_a?(String) && value.strip.empty?)
36
+ raise Core::ValidationError, "references[#{index}].#{field} is required"
37
+ end
38
+ raise Core::ValidationError, "references[#{index}].#{field} must be a string" unless value.is_a?(String)
39
+ end
40
+ end
41
+ end
22
42
  end
23
43
  end
24
44
  end
@@ -12,7 +12,7 @@ module RunApi
12
12
  end
13
13
 
14
14
  # Completed synchronous text-to-speech response.
15
- class TextToSpeechResponse < RunApi::Core::BaseModel
15
+ class TextToSpeechResponse < RunApi::Core::TaskResponse
16
16
  required :id, String
17
17
  required :status, String
18
18
  required :audios, [-> { Audio }]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runapi-fish-audio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - RunAPI
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 0.2.13
18
+ version: 0.3.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 0.2.13
25
+ version: 0.3.0
26
26
  description: 'Install `runapi-fish-audio`, create `RunApi::FishAudio::Client`, and
27
27
  call `client.text_to_speech.run(model: "s1", text: "Hello")`.'
28
28
  email:
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  - !ruby/object:Gem::Version
65
65
  version: '0'
66
66
  requirements: []
67
- rubygems_version: 4.0.10
67
+ rubygems_version: 4.0.17
68
68
  specification_version: 4
69
69
  summary: Fish Audio Ruby SDK for RunAPI
70
70
  test_files: []