diff --git a/src/libs/FishAudio/Generated/FishAudio.IOpenAPIV1Client.CreateTts.g.cs b/src/libs/FishAudio/Generated/FishAudio.IOpenAPIV1Client.CreateTts.g.cs
index 1d9148c..0c148d3 100644
--- a/src/libs/FishAudio/Generated/FishAudio.IOpenAPIV1Client.CreateTts.g.cs
+++ b/src/libs/FishAudio/Generated/FishAudio.IOpenAPIV1Client.CreateTts.g.cs
@@ -123,7 +123,7 @@ public partial interface IOpenAPIV1Client
///
///
/// Early stopping threshold for batch processing.
- /// Default Value: 1F
+ /// Default Value: 1
///
/// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.
/// The token to cancel the operation with
diff --git a/src/libs/FishAudio/Generated/FishAudio.Models.TTSRequest.g.cs b/src/libs/FishAudio/Generated/FishAudio.Models.TTSRequest.g.cs
index b0f1193..5b4168b 100644
--- a/src/libs/FishAudio/Generated/FishAudio.Models.TTSRequest.g.cs
+++ b/src/libs/FishAudio/Generated/FishAudio.Models.TTSRequest.g.cs
@@ -148,7 +148,7 @@ public sealed partial class TTSRequest
///
/// Early stopping threshold for batch processing.
- /// Default Value: 1F
+ /// Default Value: 1
///
[global::System.Text.Json.Serialization.JsonPropertyName("early_stop_threshold")]
public double? EarlyStopThreshold { get; set; }
@@ -230,7 +230,7 @@ public sealed partial class TTSRequest
///
///
/// Early stopping threshold for batch processing.
- /// Default Value: 1F
+ /// Default Value: 1
///
#if NET7_0_OR_GREATER
[global::System.Diagnostics.CodeAnalysis.SetsRequiredMembers]
diff --git a/src/libs/FishAudio/Generated/FishAudio.OpenAPIV1Client.CreateTts.g.cs b/src/libs/FishAudio/Generated/FishAudio.OpenAPIV1Client.CreateTts.g.cs
index f861f73..51094c7 100644
--- a/src/libs/FishAudio/Generated/FishAudio.OpenAPIV1Client.CreateTts.g.cs
+++ b/src/libs/FishAudio/Generated/FishAudio.OpenAPIV1Client.CreateTts.g.cs
@@ -593,7 +593,7 @@ partial void ProcessCreateTtsResponse(
///
///
/// Early stopping threshold for batch processing.
- /// Default Value: 1F
+ /// Default Value: 1
///
/// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.
/// The token to cancel the operation with
diff --git a/src/libs/FishAudio/openapi.json b/src/libs/FishAudio/openapi.json
index 436482f..2069cb1 100644
--- a/src/libs/FishAudio/openapi.json
+++ b/src/libs/FishAudio/openapi.json
@@ -50,7 +50,10 @@
"schema": {
"type": "string",
"default": "s2-pro",
- "enum": ["s1", "s2-pro"]
+ "enum": [
+ "s1",
+ "s2-pro"
+ ]
}
}
],
@@ -97,7 +100,10 @@
"type": "string"
}
},
- "required": ["status", "message"],
+ "required": [
+ "status",
+ "message"
+ ],
"type": "object"
}
}
@@ -119,7 +125,10 @@
"type": "string"
}
},
- "required": ["status", "message"],
+ "required": [
+ "status",
+ "message"
+ ],
"type": "object"
}
}
@@ -161,17 +170,29 @@
"in": {
"title": "In",
"type": "string",
- "enum": ["path", "query", "header", "cookie", "body"]
+ "enum": [
+ "path",
+ "query",
+ "header",
+ "cookie",
+ "body"
+ ]
}
},
- "required": ["loc", "type", "msg"]
+ "required": [
+ "loc",
+ "type",
+ "msg"
+ ]
}
}
}
}
}
},
- "tags": ["OpenAPI v1"]
+ "tags": [
+ "OpenAPI v1"
+ ]
}
},
"/v1/asr": {
@@ -215,7 +236,9 @@
"type": "boolean"
}
},
- "required": ["audio"],
+ "required": [
+ "audio"
+ ],
"type": "object"
}
},
@@ -248,7 +271,9 @@
"type": "boolean"
}
},
- "required": ["audio"],
+ "required": [
+ "audio"
+ ],
"type": "object"
}
}
@@ -279,7 +304,11 @@
"type": "array"
}
},
- "required": ["text", "duration", "segments"],
+ "required": [
+ "text",
+ "duration",
+ "segments"
+ ],
"type": "object"
}
}
@@ -301,7 +330,10 @@
"type": "string"
}
},
- "required": ["status", "message"],
+ "required": [
+ "status",
+ "message"
+ ],
"type": "object"
}
}
@@ -323,7 +355,10 @@
"type": "string"
}
},
- "required": ["status", "message"],
+ "required": [
+ "status",
+ "message"
+ ],
"type": "object"
}
}
@@ -365,17 +400,29 @@
"in": {
"title": "In",
"type": "string",
- "enum": ["path", "query", "header", "cookie", "body"]
+ "enum": [
+ "path",
+ "query",
+ "header",
+ "cookie",
+ "body"
+ ]
}
},
- "required": ["loc", "type", "msg"]
+ "required": [
+ "loc",
+ "type",
+ "msg"
+ ]
}
}
}
}
}
},
- "tags": ["OpenAPI v1"]
+ "tags": [
+ "OpenAPI v1"
+ ]
}
},
"/wallet/{user_id}/package": {
@@ -467,7 +514,10 @@
"type": "string"
}
},
- "required": ["status", "message"],
+ "required": [
+ "status",
+ "message"
+ ],
"type": "object"
}
}
@@ -509,17 +559,29 @@
"in": {
"title": "In",
"type": "string",
- "enum": ["path", "query", "header", "cookie", "body"]
+ "enum": [
+ "path",
+ "query",
+ "header",
+ "cookie",
+ "body"
+ ]
}
},
- "required": ["loc", "type", "msg"]
+ "required": [
+ "loc",
+ "type",
+ "msg"
+ ]
}
}
}
}
}
},
- "tags": ["Wallet"]
+ "tags": [
+ "Wallet"
+ ]
}
},
"/wallet/{user_id}/api-credit": {
@@ -632,7 +694,10 @@
"type": "string"
}
},
- "required": ["status", "message"],
+ "required": [
+ "status",
+ "message"
+ ],
"type": "object"
}
}
@@ -674,17 +739,29 @@
"in": {
"title": "In",
"type": "string",
- "enum": ["path", "query", "header", "cookie", "body"]
+ "enum": [
+ "path",
+ "query",
+ "header",
+ "cookie",
+ "body"
+ ]
}
},
- "required": ["loc", "type", "msg"]
+ "required": [
+ "loc",
+ "type",
+ "msg"
+ ]
}
}
}
}
}
},
- "tags": ["Wallet"]
+ "tags": [
+ "Wallet"
+ ]
}
},
"/model": {
@@ -852,7 +929,11 @@
"required": false,
"schema": {
"default": "score",
- "enum": ["score", "task_count", "created_at"],
+ "enum": [
+ "score",
+ "task_count",
+ "created_at"
+ ],
"title": "Sort By",
"type": "string"
},
@@ -879,7 +960,10 @@
"type": "array"
}
},
- "required": ["total", "items"],
+ "required": [
+ "total",
+ "items"
+ ],
"type": "object"
}
}
@@ -921,17 +1005,29 @@
"in": {
"title": "In",
"type": "string",
- "enum": ["path", "query", "header", "cookie", "body"]
+ "enum": [
+ "path",
+ "query",
+ "header",
+ "cookie",
+ "body"
+ ]
}
},
- "required": ["loc", "type", "msg"]
+ "required": [
+ "loc",
+ "type",
+ "msg"
+ ]
}
}
}
}
}
},
- "tags": ["Model"]
+ "tags": [
+ "Model"
+ ]
},
"post": {
"summary": "Create Model",
@@ -950,14 +1046,20 @@
"visibility": {
"default": "public",
"description": "Model visibility, public will be shown in the discovery page, unlist allows anyone with the link to access, private only be visible to the creator",
- "enum": ["public", "unlist", "private"],
+ "enum": [
+ "public",
+ "unlist",
+ "private"
+ ],
"title": "Visibility",
"type": "string"
},
"type": {
"const": "tts",
"description": "Model type, tts is for text to speech",
- "enum": ["tts"],
+ "enum": [
+ "tts"
+ ],
"title": "Type",
"type": "string"
},
@@ -996,7 +1098,9 @@
"train_mode": {
"const": "fast",
"description": "Model train mode, for TTS model, fast means model instantly available after creation",
- "enum": ["fast"],
+ "enum": [
+ "fast"
+ ],
"title": "Train Mode",
"type": "string"
},
@@ -1061,7 +1165,12 @@
"type": "boolean"
}
},
- "required": ["type", "title", "train_mode", "voices"],
+ "required": [
+ "type",
+ "title",
+ "train_mode",
+ "voices"
+ ],
"type": "object"
}
},
@@ -1071,14 +1180,20 @@
"visibility": {
"default": "public",
"description": "Model visibility, public will be shown in the discovery page, unlist allows anyone with the link to access, private only be visible to the creator",
- "enum": ["public", "unlist", "private"],
+ "enum": [
+ "public",
+ "unlist",
+ "private"
+ ],
"title": "Visibility",
"type": "string"
},
"type": {
"const": "tts",
"description": "Model type, tts is for text to speech",
- "enum": ["tts"],
+ "enum": [
+ "tts"
+ ],
"title": "Type",
"type": "string"
},
@@ -1117,7 +1232,9 @@
"train_mode": {
"const": "fast",
"description": "Model train mode, for TTS model, fast means model instantly available after creation",
- "enum": ["fast"],
+ "enum": [
+ "fast"
+ ],
"title": "Train Mode",
"type": "string"
},
@@ -1182,7 +1299,12 @@
"type": "boolean"
}
},
- "required": ["type", "title", "train_mode", "voices"],
+ "required": [
+ "type",
+ "title",
+ "train_mode",
+ "voices"
+ ],
"type": "object"
}
}
@@ -1201,7 +1323,10 @@
"type": "string"
},
"type": {
- "enum": ["svc", "tts"],
+ "enum": [
+ "svc",
+ "tts"
+ ],
"title": "Type",
"type": "string"
},
@@ -1219,12 +1344,20 @@
},
"train_mode": {
"default": "full",
- "enum": ["fast", "full"],
+ "enum": [
+ "fast",
+ "full"
+ ],
"title": "Train Mode",
"type": "string"
},
"state": {
- "enum": ["created", "training", "trained", "failed"],
+ "enum": [
+ "created",
+ "training",
+ "trained",
+ "failed"
+ ],
"title": "State",
"type": "string"
},
@@ -1262,7 +1395,11 @@
"type": "array"
},
"visibility": {
- "enum": ["public", "unlist", "private"],
+ "enum": [
+ "public",
+ "unlist",
+ "private"
+ ],
"title": "Visibility",
"type": "string"
},
@@ -1344,7 +1481,10 @@
"type": "string"
}
},
- "required": ["status", "message"],
+ "required": [
+ "status",
+ "message"
+ ],
"type": "object"
}
}
@@ -1386,17 +1526,29 @@
"in": {
"title": "In",
"type": "string",
- "enum": ["path", "query", "header", "cookie", "body"]
+ "enum": [
+ "path",
+ "query",
+ "header",
+ "cookie",
+ "body"
+ ]
}
},
- "required": ["loc", "type", "msg"]
+ "required": [
+ "loc",
+ "type",
+ "msg"
+ ]
}
}
}
}
}
},
- "tags": ["Model"]
+ "tags": [
+ "Model"
+ ]
}
},
"/model/{id}": {
@@ -1433,7 +1585,10 @@
"type": "string"
},
"type": {
- "enum": ["svc", "tts"],
+ "enum": [
+ "svc",
+ "tts"
+ ],
"title": "Type",
"type": "string"
},
@@ -1451,12 +1606,20 @@
},
"train_mode": {
"default": "full",
- "enum": ["fast", "full"],
+ "enum": [
+ "fast",
+ "full"
+ ],
"title": "Train Mode",
"type": "string"
},
"state": {
- "enum": ["created", "training", "trained", "failed"],
+ "enum": [
+ "created",
+ "training",
+ "trained",
+ "failed"
+ ],
"title": "State",
"type": "string"
},
@@ -1494,7 +1657,11 @@
"type": "array"
},
"visibility": {
- "enum": ["public", "unlist", "private"],
+ "enum": [
+ "public",
+ "unlist",
+ "private"
+ ],
"title": "Visibility",
"type": "string"
},
@@ -1576,7 +1743,10 @@
"type": "string"
}
},
- "required": ["status", "message"],
+ "required": [
+ "status",
+ "message"
+ ],
"type": "object"
}
}
@@ -1618,17 +1788,29 @@
"in": {
"title": "In",
"type": "string",
- "enum": ["path", "query", "header", "cookie", "body"]
+ "enum": [
+ "path",
+ "query",
+ "header",
+ "cookie",
+ "body"
+ ]
}
},
- "required": ["loc", "type", "msg"]
+ "required": [
+ "loc",
+ "type",
+ "msg"
+ ]
}
}
}
}
}
},
- "tags": ["Model"]
+ "tags": [
+ "Model"
+ ]
},
"patch": {
"summary": "Update Model",
@@ -1696,7 +1878,11 @@
"visibility": {
"anyOf": [
{
- "enum": ["public", "unlist", "private"],
+ "enum": [
+ "public",
+ "unlist",
+ "private"
+ ],
"type": "string"
},
{
@@ -1767,7 +1953,11 @@
"visibility": {
"anyOf": [
{
- "enum": ["public", "unlist", "private"],
+ "enum": [
+ "public",
+ "unlist",
+ "private"
+ ],
"type": "string"
},
{
@@ -1838,7 +2028,11 @@
"visibility": {
"anyOf": [
{
- "enum": ["public", "unlist", "private"],
+ "enum": [
+ "public",
+ "unlist",
+ "private"
+ ],
"type": "string"
},
{
@@ -1909,7 +2103,11 @@
"visibility": {
"anyOf": [
{
- "enum": ["public", "unlist", "private"],
+ "enum": [
+ "public",
+ "unlist",
+ "private"
+ ],
"type": "string"
},
{
@@ -1960,7 +2158,10 @@
"type": "string"
}
},
- "required": ["status", "message"],
+ "required": [
+ "status",
+ "message"
+ ],
"type": "object"
}
}
@@ -2002,17 +2203,29 @@
"in": {
"title": "In",
"type": "string",
- "enum": ["path", "query", "header", "cookie", "body"]
+ "enum": [
+ "path",
+ "query",
+ "header",
+ "cookie",
+ "body"
+ ]
}
},
- "required": ["loc", "type", "msg"]
+ "required": [
+ "loc",
+ "type",
+ "msg"
+ ]
}
}
}
}
}
},
- "tags": ["Model"]
+ "tags": [
+ "Model"
+ ]
},
"delete": {
"summary": "Delete Model",
@@ -2055,7 +2268,10 @@
"type": "string"
}
},
- "required": ["status", "message"],
+ "required": [
+ "status",
+ "message"
+ ],
"type": "object"
}
}
@@ -2097,17 +2313,29 @@
"in": {
"title": "In",
"type": "string",
- "enum": ["path", "query", "header", "cookie", "body"]
+ "enum": [
+ "path",
+ "query",
+ "header",
+ "cookie",
+ "body"
+ ]
}
},
- "required": ["loc", "type", "msg"]
+ "required": [
+ "loc",
+ "type",
+ "msg"
+ ]
}
}
}
}
}
},
- "tags": ["Model"]
+ "tags": [
+ "Model"
+ ]
}
}
},
@@ -2173,14 +2401,19 @@
"type": "string"
}
},
- "required": ["audio", "text"],
+ "required": [
+ "audio",
+ "text"
+ ],
"title": "ReferenceAudio",
"type": "object"
},
"TTSRequest": {
"description": "Request body for text-to-speech synthesis. Supports single-speaker synthesis on all compatible TTS models. Multi-speaker dialogue synthesis is only available with the S2-Pro model.\n\n## Single Speaker\nProvide either `reference_id` (string) pointing to a voice model, or `references` (array of ReferenceAudio) for zero-shot cloning.\n\n## Multiple Speakers (Dialogue, S2-Pro only)\nFor multi-speaker synthesis, provide:\n- `reference_id`: array of voice model IDs, e.g., [\"speaker-0-id\", \"speaker-1-id\"]\n- `text`: use speaker tags `<|speaker:0|>`, `<|speaker:1|>`, etc. to indicate speaker changes, e.g., \"<|speaker:0|>Hello!<|speaker:1|>Hi there!\"\n\nAlternatively, for zero-shot multi-speaker:\n- `references`: 2D array where each inner array contains references for one speaker\n- `reference_id`: array of identifiers (can be arbitrary strings for zero-shot)\n\n## Example (Multi-Speaker with Model IDs)\n```json\n{\n \"text\": \"<|speaker:0|>Good morning!<|speaker:1|>Good morning! How are you?<|speaker:0|>I'm great, thanks!\",\n \"reference_id\": [\"model-id-alice\", \"model-id-bob\"]\n}\n```",
"type": "object",
- "required": ["text"],
+ "required": [
+ "text"
+ ],
"properties": {
"text": {
"description": "Text to convert to speech.",
@@ -2192,16 +2425,16 @@
"title": "Temperature",
"type": "number",
"default": 0.7,
- "minimum": 0.0,
- "maximum": 1.0
+ "minimum": 0,
+ "maximum": 1
},
"top_p": {
"description": "Controls diversity via nucleus sampling.",
"title": "Top P",
"type": "number",
"default": 0.7,
- "minimum": 0.0,
- "maximum": 1.0
+ "minimum": 0,
+ "maximum": 1
},
"references": {
"anyOf": [
@@ -2279,12 +2512,24 @@
"format": {
"default": "mp3",
"description": "Output audio format.",
- "enum": ["wav", "pcm", "mp3", "opus"],
+ "enum": [
+ "wav",
+ "pcm",
+ "mp3",
+ "opus"
+ ],
"title": "Format",
"type": "string"
},
"sample_rate": {
- "anyOf": [{ "type": "integer" }, { "type": "null" }],
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
"default": null,
"description": "Audio sample rate in Hz. When null, uses the format's default (44100 Hz for most formats, 48000 Hz for opus).",
"title": "Sample Rate"
@@ -2292,21 +2537,35 @@
"mp3_bitrate": {
"default": 128,
"description": "MP3 bitrate in kbps. Only applies when format is mp3.",
- "enum": [64, 128, 192],
+ "enum": [
+ 64,
+ 128,
+ 192
+ ],
"title": "Mp3 Bitrate",
"type": "integer"
},
"opus_bitrate": {
"default": -1000,
"description": "Opus bitrate in bps. -1000 for automatic. Only applies when format is opus.",
- "enum": [-1000, 24, 32, 48, 64],
+ "enum": [
+ -1000,
+ 24,
+ 32,
+ 48,
+ 64
+ ],
"title": "Opus Bitrate",
"type": "integer"
},
"latency": {
"default": "normal",
"description": "Latency-quality trade-off. normal: best quality, balanced: reduced latency, low: lowest latency.",
- "enum": ["low", "normal", "balanced"],
+ "enum": [
+ "low",
+ "normal",
+ "balanced"
+ ],
"title": "Latency",
"type": "string"
},
@@ -2337,12 +2596,12 @@
"type": "boolean"
},
"early_stop_threshold": {
- "default": 1.0,
+ "default": 1,
"description": "Early stopping threshold for batch processing.",
"title": "Early Stop Threshold",
"type": "number",
- "minimum": 0.0,
- "maximum": 1.0
+ "minimum": 0,
+ "maximum": 1
}
},
"title": "TTSRequest"
@@ -2362,7 +2621,11 @@
"type": "number"
}
},
- "required": ["text", "start", "end"],
+ "required": [
+ "text",
+ "start",
+ "end"
+ ],
"title": "ASRSegment",
"type": "object"
},
@@ -2381,7 +2644,11 @@
"type": "string"
}
},
- "required": ["_id", "nickname", "avatar"],
+ "required": [
+ "_id",
+ "nickname",
+ "avatar"
+ ],
"title": "AuthorEntity",
"type": "object"
},
@@ -2392,7 +2659,10 @@
"type": "string"
},
"type": {
- "enum": ["svc", "tts"],
+ "enum": [
+ "svc",
+ "tts"
+ ],
"title": "Type",
"type": "string"
},
@@ -2410,12 +2680,20 @@
},
"train_mode": {
"default": "full",
- "enum": ["fast", "full"],
+ "enum": [
+ "fast",
+ "full"
+ ],
"title": "Train Mode",
"type": "string"
},
"state": {
- "enum": ["created", "training", "trained", "failed"],
+ "enum": [
+ "created",
+ "training",
+ "trained",
+ "failed"
+ ],
"title": "State",
"type": "string"
},
@@ -2453,7 +2731,11 @@
"type": "array"
},
"visibility": {
- "enum": ["public", "unlist", "private"],
+ "enum": [
+ "public",
+ "unlist",
+ "private"
+ ],
"title": "Visibility",
"type": "string"
},
@@ -2536,10 +2818,15 @@
"type": "string"
}
},
- "required": ["title", "text", "task_id", "audio"],
+ "required": [
+ "title",
+ "text",
+ "task_id",
+ "audio"
+ ],
"title": "SampleEntity",
"type": "object"
}
}
}
-}
+}
\ No newline at end of file