Module: RunApi::FishAudio

Defined in:
lib/runapi/fish_audio.rb,
lib/runapi/fish_audio/types.rb,
lib/runapi/fish_audio/client.rb,
lib/runapi/fish_audio/contract_gen.rb,
lib/runapi/fish_audio/resources/text_to_speech.rb

Defined Under Namespace

Modules: Resources, Types Classes: Client

Constant Summary collapse

AuthenticationError =
RunApi::Core::AuthenticationError
RateLimitError =
RunApi::Core::RateLimitError
InsufficientCreditsError =
RunApi::Core::InsufficientCreditsError
NotFoundError =
RunApi::Core::NotFoundError
ValidationError =
RunApi::Core::ValidationError
CONTRACT =
{
  "text-to-speech" => {
    "models" => ["s1", "s2-pro", "s2.1-pro"],
    "fields_by_model" => {
      "s1" => {
        "bitrate_kbps" => {
          "enum" => [64, 128, 192],
          "type" => "integer"
        },
        "model" => {
          "required" => true
        },
        "output_format" => {
          "enum" => ["mp3", "wav"]
        },
        "sample_rate_hz" => {
          "enum" => [8000, 16000, 24000, 32000, 44100],
          "type" => "integer"
        },
        "text" => {
          "required" => true
        }
      },
      "s2-pro" => {
        "bitrate_kbps" => {
          "enum" => [64, 128, 192],
          "type" => "integer"
        },
        "model" => {
          "required" => true
        },
        "output_format" => {
          "enum" => ["mp3", "wav"]
        },
        "sample_rate_hz" => {
          "enum" => [8000, 16000, 24000, 32000, 44100],
          "type" => "integer"
        },
        "text" => {
          "required" => true
        }
      },
      "s2.1-pro" => {
        "bitrate_kbps" => {
          "enum" => [64, 128, 192],
          "type" => "integer"
        },
        "model" => {
          "required" => true
        },
        "output_format" => {
          "enum" => ["mp3", "wav"]
        },
        "sample_rate_hz" => {
          "enum" => [8000, 16000, 24000, 32000, 44100],
          "type" => "integer"
        },
        "text" => {
          "required" => true
        }
      }
    },
    "rules" => [{
      "when" => {
        "output_format" => "wav"
      },
      "forbidden" => ["bitrate_kbps"]
    }, {
      "enum" => {
        "sample_rate_hz" => [32000, 44100]
      },
      "when" => {
        "output_format" => "mp3"
      }
    }, {
      "enum" => {
        "sample_rate_hz" => [32000, 44100]
      },
      "when" => {
        "output_format" => {
          "present" => false
        }
      }
    }]
  }
}.freeze