cartesia 1.3.1__py3-none-any.whl → 2.0.0a0__py3-none-any.whl
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.
- cartesia/__init__.py +288 -3
- cartesia/api_status/__init__.py +6 -0
- cartesia/api_status/client.py +104 -0
- cartesia/api_status/requests/__init__.py +5 -0
- cartesia/api_status/requests/api_info.py +8 -0
- cartesia/api_status/types/__init__.py +5 -0
- cartesia/api_status/types/api_info.py +20 -0
- cartesia/base_client.py +160 -0
- cartesia/client.py +163 -40
- cartesia/core/__init__.py +47 -0
- cartesia/core/api_error.py +15 -0
- cartesia/core/client_wrapper.py +55 -0
- cartesia/core/datetime_utils.py +28 -0
- cartesia/core/file.py +67 -0
- cartesia/core/http_client.py +499 -0
- cartesia/core/jsonable_encoder.py +101 -0
- cartesia/core/pydantic_utilities.py +296 -0
- cartesia/core/query_encoder.py +58 -0
- cartesia/core/remove_none_from_dict.py +11 -0
- cartesia/core/request_options.py +35 -0
- cartesia/core/serialization.py +272 -0
- cartesia/datasets/__init__.py +24 -0
- cartesia/datasets/client.py +422 -0
- cartesia/datasets/requests/__init__.py +15 -0
- cartesia/datasets/requests/create_dataset_request.py +7 -0
- cartesia/datasets/requests/dataset.py +9 -0
- cartesia/datasets/requests/dataset_file.py +9 -0
- cartesia/datasets/requests/paginated_dataset_files.py +10 -0
- cartesia/datasets/requests/paginated_datasets.py +10 -0
- cartesia/datasets/types/__init__.py +17 -0
- cartesia/datasets/types/create_dataset_request.py +19 -0
- cartesia/datasets/types/dataset.py +21 -0
- cartesia/datasets/types/dataset_file.py +21 -0
- cartesia/datasets/types/file_purpose.py +5 -0
- cartesia/datasets/types/paginated_dataset_files.py +21 -0
- cartesia/datasets/types/paginated_datasets.py +21 -0
- cartesia/embedding/__init__.py +5 -0
- cartesia/embedding/types/__init__.py +5 -0
- cartesia/embedding/types/embedding.py +201 -0
- cartesia/environment.py +7 -0
- cartesia/infill/__init__.py +2 -0
- cartesia/infill/client.py +294 -0
- cartesia/tts/__init__.py +167 -0
- cartesia/{_async_websocket.py → tts/_async_websocket.py} +159 -84
- cartesia/tts/_websocket.py +430 -0
- cartesia/tts/client.py +407 -0
- cartesia/tts/requests/__init__.py +76 -0
- cartesia/tts/requests/cancel_context_request.py +17 -0
- cartesia/tts/requests/controls.py +11 -0
- cartesia/tts/requests/generation_request.py +53 -0
- cartesia/tts/requests/mp_3_output_format.py +11 -0
- cartesia/tts/requests/output_format.py +30 -0
- cartesia/tts/requests/phoneme_timestamps.py +10 -0
- cartesia/tts/requests/raw_output_format.py +11 -0
- cartesia/tts/requests/speed.py +7 -0
- cartesia/tts/requests/tts_request.py +24 -0
- cartesia/tts/requests/tts_request_embedding_specifier.py +16 -0
- cartesia/tts/requests/tts_request_id_specifier.py +16 -0
- cartesia/tts/requests/tts_request_voice_specifier.py +7 -0
- cartesia/tts/requests/wav_output_format.py +7 -0
- cartesia/tts/requests/web_socket_base_response.py +11 -0
- cartesia/tts/requests/web_socket_chunk_response.py +8 -0
- cartesia/tts/requests/web_socket_done_response.py +7 -0
- cartesia/tts/requests/web_socket_error_response.py +7 -0
- cartesia/tts/requests/web_socket_flush_done_response.py +9 -0
- cartesia/tts/requests/web_socket_phoneme_timestamps_response.py +9 -0
- cartesia/tts/requests/web_socket_raw_output_format.py +11 -0
- cartesia/tts/requests/web_socket_request.py +7 -0
- cartesia/tts/requests/web_socket_response.py +69 -0
- cartesia/tts/requests/web_socket_stream_options.py +8 -0
- cartesia/tts/requests/web_socket_timestamps_response.py +9 -0
- cartesia/tts/requests/web_socket_tts_output.py +18 -0
- cartesia/tts/requests/web_socket_tts_request.py +24 -0
- cartesia/tts/requests/word_timestamps.py +10 -0
- cartesia/tts/socket_client.py +302 -0
- cartesia/tts/types/__init__.py +90 -0
- cartesia/tts/types/cancel_context_request.py +28 -0
- cartesia/tts/types/context_id.py +3 -0
- cartesia/tts/types/controls.py +22 -0
- cartesia/tts/types/emotion.py +29 -0
- cartesia/tts/types/flush_id.py +3 -0
- cartesia/tts/types/generation_request.py +66 -0
- cartesia/tts/types/mp_3_output_format.py +23 -0
- cartesia/tts/types/natural_specifier.py +5 -0
- cartesia/tts/types/numerical_specifier.py +3 -0
- cartesia/tts/types/output_format.py +58 -0
- cartesia/tts/types/phoneme_timestamps.py +21 -0
- cartesia/tts/types/raw_encoding.py +5 -0
- cartesia/tts/types/raw_output_format.py +22 -0
- cartesia/tts/types/speed.py +7 -0
- cartesia/tts/types/supported_language.py +7 -0
- cartesia/tts/types/tts_request.py +35 -0
- cartesia/tts/types/tts_request_embedding_specifier.py +27 -0
- cartesia/tts/types/tts_request_id_specifier.py +27 -0
- cartesia/tts/types/tts_request_voice_specifier.py +7 -0
- cartesia/tts/types/wav_output_format.py +17 -0
- cartesia/tts/types/web_socket_base_response.py +22 -0
- cartesia/tts/types/web_socket_chunk_response.py +20 -0
- cartesia/tts/types/web_socket_done_response.py +17 -0
- cartesia/tts/types/web_socket_error_response.py +19 -0
- cartesia/tts/types/web_socket_flush_done_response.py +21 -0
- cartesia/tts/types/web_socket_phoneme_timestamps_response.py +20 -0
- cartesia/tts/types/web_socket_raw_output_format.py +22 -0
- cartesia/tts/types/web_socket_request.py +7 -0
- cartesia/tts/types/web_socket_response.py +124 -0
- cartesia/tts/types/web_socket_stream_options.py +19 -0
- cartesia/tts/types/web_socket_timestamps_response.py +20 -0
- cartesia/tts/types/web_socket_tts_output.py +27 -0
- cartesia/tts/types/web_socket_tts_request.py +36 -0
- cartesia/tts/types/word_timestamps.py +21 -0
- cartesia/tts/utils/tts.py +64 -0
- cartesia/tts/utils/types.py +70 -0
- cartesia/version.py +3 -1
- cartesia/voice_changer/__init__.py +27 -0
- cartesia/voice_changer/client.py +395 -0
- cartesia/voice_changer/requests/__init__.py +15 -0
- cartesia/voice_changer/requests/streaming_response.py +36 -0
- cartesia/voice_changer/types/__init__.py +17 -0
- cartesia/voice_changer/types/output_format_container.py +5 -0
- cartesia/voice_changer/types/streaming_response.py +62 -0
- cartesia/voices/__init__.py +67 -0
- cartesia/voices/client.py +1812 -0
- cartesia/voices/requests/__init__.py +27 -0
- cartesia/voices/requests/create_voice_request.py +21 -0
- cartesia/voices/requests/embedding_response.py +8 -0
- cartesia/voices/requests/embedding_specifier.py +10 -0
- cartesia/voices/requests/id_specifier.py +10 -0
- cartesia/voices/requests/localize_dialect.py +6 -0
- cartesia/voices/requests/localize_voice_request.py +15 -0
- cartesia/voices/requests/mix_voice_specifier.py +7 -0
- cartesia/voices/requests/mix_voices_request.py +9 -0
- cartesia/voices/requests/update_voice_request.py +15 -0
- cartesia/voices/requests/voice.py +39 -0
- cartesia/voices/requests/voice_metadata.py +36 -0
- cartesia/voices/types/__init__.py +41 -0
- cartesia/voices/types/base_voice_id.py +5 -0
- cartesia/voices/types/clone_mode.py +5 -0
- cartesia/voices/types/create_voice_request.py +32 -0
- cartesia/voices/types/embedding_response.py +20 -0
- cartesia/voices/types/embedding_specifier.py +22 -0
- cartesia/voices/types/gender.py +5 -0
- cartesia/voices/types/id_specifier.py +22 -0
- cartesia/voices/types/localize_dialect.py +6 -0
- cartesia/voices/types/localize_english_dialect.py +5 -0
- cartesia/voices/types/localize_target_language.py +7 -0
- cartesia/voices/types/localize_voice_request.py +26 -0
- cartesia/voices/types/mix_voice_specifier.py +7 -0
- cartesia/voices/types/mix_voices_request.py +20 -0
- cartesia/voices/types/update_voice_request.py +27 -0
- cartesia/voices/types/voice.py +50 -0
- cartesia/voices/types/voice_id.py +3 -0
- cartesia/voices/types/voice_metadata.py +48 -0
- cartesia/voices/types/weight.py +3 -0
- cartesia-2.0.0a0.dist-info/METADATA +306 -0
- cartesia-2.0.0a0.dist-info/RECORD +158 -0
- {cartesia-1.3.1.dist-info → cartesia-2.0.0a0.dist-info}/WHEEL +1 -1
- cartesia/_async_sse.py +0 -95
- cartesia/_logger.py +0 -3
- cartesia/_sse.py +0 -143
- cartesia/_types.py +0 -70
- cartesia/_websocket.py +0 -358
- cartesia/async_client.py +0 -82
- cartesia/async_tts.py +0 -63
- cartesia/resource.py +0 -44
- cartesia/tts.py +0 -137
- cartesia/utils/deprecated.py +0 -55
- cartesia/utils/retry.py +0 -87
- cartesia/utils/tts.py +0 -78
- cartesia/voices.py +0 -208
- cartesia-1.3.1.dist-info/METADATA +0 -661
- cartesia-1.3.1.dist-info/RECORD +0 -23
- cartesia-1.3.1.dist-info/licenses/LICENSE.md +0 -21
- /cartesia/{utils/__init__.py → py.typed} +0 -0
- /cartesia/{_constants.py → tts/utils/constants.py} +0 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
from .context_id import ContextId
|
5
|
+
import pydantic
|
6
|
+
import typing
|
7
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
8
|
+
|
9
|
+
|
10
|
+
class CancelContextRequest(UniversalBaseModel):
|
11
|
+
context_id: ContextId = pydantic.Field()
|
12
|
+
"""
|
13
|
+
The ID of the context to cancel.
|
14
|
+
"""
|
15
|
+
|
16
|
+
cancel: typing.Literal[True] = pydantic.Field(default=True)
|
17
|
+
"""
|
18
|
+
Whether to cancel the context, so that no more messages are generated for that context.
|
19
|
+
"""
|
20
|
+
|
21
|
+
if IS_PYDANTIC_V2:
|
22
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
23
|
+
else:
|
24
|
+
|
25
|
+
class Config:
|
26
|
+
frozen = True
|
27
|
+
smart_union = True
|
28
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
from .speed import Speed
|
5
|
+
import typing
|
6
|
+
from .emotion import Emotion
|
7
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
8
|
+
import pydantic
|
9
|
+
|
10
|
+
|
11
|
+
class Controls(UniversalBaseModel):
|
12
|
+
speed: Speed
|
13
|
+
emotion: typing.List[Emotion]
|
14
|
+
|
15
|
+
if IS_PYDANTIC_V2:
|
16
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
17
|
+
else:
|
18
|
+
|
19
|
+
class Config:
|
20
|
+
frozen = True
|
21
|
+
smart_union = True
|
22
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
import typing
|
4
|
+
|
5
|
+
Emotion = typing.Union[
|
6
|
+
typing.Literal[
|
7
|
+
"anger:lowest",
|
8
|
+
"anger:low",
|
9
|
+
"anger:high",
|
10
|
+
"anger:highest",
|
11
|
+
"positivity:lowest",
|
12
|
+
"positivity:low",
|
13
|
+
"positivity:high",
|
14
|
+
"positivity:highest",
|
15
|
+
"surprise:lowest",
|
16
|
+
"surprise:low",
|
17
|
+
"surprise:high",
|
18
|
+
"surprise:highest",
|
19
|
+
"sadness:lowest",
|
20
|
+
"sadness:low",
|
21
|
+
"sadness:high",
|
22
|
+
"sadness:highest",
|
23
|
+
"curiosity:lowest",
|
24
|
+
"curiosity:low",
|
25
|
+
"curiosity:high",
|
26
|
+
"curiosity:highest",
|
27
|
+
],
|
28
|
+
typing.Any,
|
29
|
+
]
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import pydantic
|
5
|
+
import typing
|
6
|
+
from .tts_request_voice_specifier import TtsRequestVoiceSpecifier
|
7
|
+
from .supported_language import SupportedLanguage
|
8
|
+
from .web_socket_raw_output_format import WebSocketRawOutputFormat
|
9
|
+
from .context_id import ContextId
|
10
|
+
import typing_extensions
|
11
|
+
from ...core.serialization import FieldMetadata
|
12
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
13
|
+
|
14
|
+
|
15
|
+
class GenerationRequest(UniversalBaseModel):
|
16
|
+
model_id: str = pydantic.Field()
|
17
|
+
"""
|
18
|
+
The ID of the model to use for the generation. See [Models](/build-with-sonic/models) for available models.
|
19
|
+
"""
|
20
|
+
|
21
|
+
transcript: typing.Optional[typing.Any] = pydantic.Field(default=None)
|
22
|
+
"""
|
23
|
+
The transcript to generate speech for. This can be a string or an iterator over strings.
|
24
|
+
"""
|
25
|
+
|
26
|
+
voice: TtsRequestVoiceSpecifier
|
27
|
+
language: typing.Optional[SupportedLanguage] = None
|
28
|
+
output_format: WebSocketRawOutputFormat
|
29
|
+
duration: typing.Optional[float] = pydantic.Field(default=None)
|
30
|
+
"""
|
31
|
+
The maximum duration of the audio in seconds. You do not usually need to specify this.
|
32
|
+
If the duration is not appropriate for the length of the transcript, the output audio may be truncated.
|
33
|
+
"""
|
34
|
+
|
35
|
+
context_id: typing.Optional[ContextId] = None
|
36
|
+
continue_: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="continue")] = pydantic.Field(
|
37
|
+
default=None
|
38
|
+
)
|
39
|
+
"""
|
40
|
+
Whether this input may be followed by more inputs.
|
41
|
+
If not specified, this defaults to `false`.
|
42
|
+
"""
|
43
|
+
|
44
|
+
flush: typing.Optional[bool] = pydantic.Field(default=None)
|
45
|
+
"""
|
46
|
+
Whether to flush the context.
|
47
|
+
"""
|
48
|
+
|
49
|
+
add_timestamps: typing.Optional[bool] = pydantic.Field(default=None)
|
50
|
+
"""
|
51
|
+
Whether to return word-level timestamps.
|
52
|
+
"""
|
53
|
+
|
54
|
+
add_phoneme_timestamps: typing.Optional[bool] = pydantic.Field(default=None)
|
55
|
+
"""
|
56
|
+
Whether to return phoneme-level timestamps.
|
57
|
+
"""
|
58
|
+
|
59
|
+
if IS_PYDANTIC_V2:
|
60
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
61
|
+
else:
|
62
|
+
|
63
|
+
class Config:
|
64
|
+
frozen = True
|
65
|
+
smart_union = True
|
66
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import pydantic
|
5
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
6
|
+
import typing
|
7
|
+
|
8
|
+
|
9
|
+
class Mp3OutputFormat(UniversalBaseModel):
|
10
|
+
sample_rate: int
|
11
|
+
bit_rate: int = pydantic.Field()
|
12
|
+
"""
|
13
|
+
The bit rate of the audio in bits per second. Supported bit rates are 32000, 64000, 96000, 128000, 192000.
|
14
|
+
"""
|
15
|
+
|
16
|
+
if IS_PYDANTIC_V2:
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
18
|
+
else:
|
19
|
+
|
20
|
+
class Config:
|
21
|
+
frozen = True
|
22
|
+
smart_union = True
|
23
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
5
|
+
import typing
|
6
|
+
from .raw_encoding import RawEncoding
|
7
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
8
|
+
import pydantic
|
9
|
+
|
10
|
+
|
11
|
+
class OutputFormat_Raw(UniversalBaseModel):
|
12
|
+
container: typing.Literal["raw"] = "raw"
|
13
|
+
encoding: RawEncoding
|
14
|
+
sample_rate: int
|
15
|
+
bit_rate: typing.Optional[int] = None
|
16
|
+
|
17
|
+
if IS_PYDANTIC_V2:
|
18
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
19
|
+
else:
|
20
|
+
|
21
|
+
class Config:
|
22
|
+
frozen = True
|
23
|
+
smart_union = True
|
24
|
+
extra = pydantic.Extra.allow
|
25
|
+
|
26
|
+
|
27
|
+
class OutputFormat_Wav(UniversalBaseModel):
|
28
|
+
container: typing.Literal["wav"] = "wav"
|
29
|
+
encoding: RawEncoding
|
30
|
+
sample_rate: int
|
31
|
+
bit_rate: typing.Optional[int] = None
|
32
|
+
|
33
|
+
if IS_PYDANTIC_V2:
|
34
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
35
|
+
else:
|
36
|
+
|
37
|
+
class Config:
|
38
|
+
frozen = True
|
39
|
+
smart_union = True
|
40
|
+
extra = pydantic.Extra.allow
|
41
|
+
|
42
|
+
|
43
|
+
class OutputFormat_Mp3(UniversalBaseModel):
|
44
|
+
container: typing.Literal["mp3"] = "mp3"
|
45
|
+
sample_rate: int
|
46
|
+
bit_rate: int
|
47
|
+
|
48
|
+
if IS_PYDANTIC_V2:
|
49
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
50
|
+
else:
|
51
|
+
|
52
|
+
class Config:
|
53
|
+
frozen = True
|
54
|
+
smart_union = True
|
55
|
+
extra = pydantic.Extra.allow
|
56
|
+
|
57
|
+
|
58
|
+
OutputFormat = typing.Union[OutputFormat_Raw, OutputFormat_Wav, OutputFormat_Mp3]
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
6
|
+
import pydantic
|
7
|
+
|
8
|
+
|
9
|
+
class PhonemeTimestamps(UniversalBaseModel):
|
10
|
+
phonemes: typing.List[str]
|
11
|
+
start: typing.List[float]
|
12
|
+
end: typing.List[float]
|
13
|
+
|
14
|
+
if IS_PYDANTIC_V2:
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
16
|
+
else:
|
17
|
+
|
18
|
+
class Config:
|
19
|
+
frozen = True
|
20
|
+
smart_union = True
|
21
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
from .raw_encoding import RawEncoding
|
5
|
+
import typing
|
6
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class RawOutputFormat(UniversalBaseModel):
|
11
|
+
encoding: RawEncoding
|
12
|
+
sample_rate: int
|
13
|
+
bit_rate: typing.Optional[int] = None
|
14
|
+
|
15
|
+
if IS_PYDANTIC_V2:
|
16
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
17
|
+
else:
|
18
|
+
|
19
|
+
class Config:
|
20
|
+
frozen = True
|
21
|
+
smart_union = True
|
22
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import pydantic
|
5
|
+
from .tts_request_voice_specifier import TtsRequestVoiceSpecifier
|
6
|
+
import typing
|
7
|
+
from .supported_language import SupportedLanguage
|
8
|
+
from .output_format import OutputFormat
|
9
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
10
|
+
|
11
|
+
|
12
|
+
class TtsRequest(UniversalBaseModel):
|
13
|
+
model_id: str = pydantic.Field()
|
14
|
+
"""
|
15
|
+
The ID of the model to use for the generation. See [Models](/build-with-sonic/models) for available models.
|
16
|
+
"""
|
17
|
+
|
18
|
+
transcript: str
|
19
|
+
voice: TtsRequestVoiceSpecifier
|
20
|
+
language: typing.Optional[SupportedLanguage] = None
|
21
|
+
output_format: OutputFormat
|
22
|
+
duration: typing.Optional[float] = pydantic.Field(default=None)
|
23
|
+
"""
|
24
|
+
The maximum duration of the audio in seconds. You do not usually need to specify this.
|
25
|
+
If the duration is not appropriate for the length of the transcript, the output audio may be truncated.
|
26
|
+
"""
|
27
|
+
|
28
|
+
if IS_PYDANTIC_V2:
|
29
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
30
|
+
else:
|
31
|
+
|
32
|
+
class Config:
|
33
|
+
frozen = True
|
34
|
+
smart_union = True
|
35
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from ...embedding.types.embedding import Embedding
|
6
|
+
import typing_extensions
|
7
|
+
from .controls import Controls
|
8
|
+
from ...core.serialization import FieldMetadata
|
9
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
10
|
+
import pydantic
|
11
|
+
|
12
|
+
|
13
|
+
class TtsRequestEmbeddingSpecifier(UniversalBaseModel):
|
14
|
+
mode: typing.Literal["embedding"] = "embedding"
|
15
|
+
embedding: Embedding
|
16
|
+
experimental_controls: typing_extensions.Annotated[
|
17
|
+
typing.Optional[Controls], FieldMetadata(alias="__experimental_controls")
|
18
|
+
] = None
|
19
|
+
|
20
|
+
if IS_PYDANTIC_V2:
|
21
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
22
|
+
else:
|
23
|
+
|
24
|
+
class Config:
|
25
|
+
frozen = True
|
26
|
+
smart_union = True
|
27
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from ...voices.types.voice_id import VoiceId
|
6
|
+
import typing_extensions
|
7
|
+
from .controls import Controls
|
8
|
+
from ...core.serialization import FieldMetadata
|
9
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
10
|
+
import pydantic
|
11
|
+
|
12
|
+
|
13
|
+
class TtsRequestIdSpecifier(UniversalBaseModel):
|
14
|
+
mode: typing.Literal["id"] = "id"
|
15
|
+
id: VoiceId
|
16
|
+
experimental_controls: typing_extensions.Annotated[
|
17
|
+
typing.Optional[Controls], FieldMetadata(alias="__experimental_controls")
|
18
|
+
] = None
|
19
|
+
|
20
|
+
if IS_PYDANTIC_V2:
|
21
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
22
|
+
else:
|
23
|
+
|
24
|
+
class Config:
|
25
|
+
frozen = True
|
26
|
+
smart_union = True
|
27
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,7 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
import typing
|
4
|
+
from .tts_request_id_specifier import TtsRequestIdSpecifier
|
5
|
+
from .tts_request_embedding_specifier import TtsRequestEmbeddingSpecifier
|
6
|
+
|
7
|
+
TtsRequestVoiceSpecifier = typing.Union[TtsRequestIdSpecifier, TtsRequestEmbeddingSpecifier]
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from .raw_output_format import RawOutputFormat
|
4
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
5
|
+
import typing
|
6
|
+
import pydantic
|
7
|
+
|
8
|
+
|
9
|
+
class WavOutputFormat(RawOutputFormat):
|
10
|
+
if IS_PYDANTIC_V2:
|
11
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
12
|
+
else:
|
13
|
+
|
14
|
+
class Config:
|
15
|
+
frozen = True
|
16
|
+
smart_union = True
|
17
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from .context_id import ContextId
|
6
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class WebSocketBaseResponse(UniversalBaseModel):
|
11
|
+
context_id: typing.Optional[ContextId] = None
|
12
|
+
status_code: int
|
13
|
+
done: bool
|
14
|
+
|
15
|
+
if IS_PYDANTIC_V2:
|
16
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
17
|
+
else:
|
18
|
+
|
19
|
+
class Config:
|
20
|
+
frozen = True
|
21
|
+
smart_union = True
|
22
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from .web_socket_base_response import WebSocketBaseResponse
|
4
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
5
|
+
import typing
|
6
|
+
import pydantic
|
7
|
+
|
8
|
+
|
9
|
+
class WebSocketChunkResponse(WebSocketBaseResponse):
|
10
|
+
data: str
|
11
|
+
step_time: float
|
12
|
+
|
13
|
+
if IS_PYDANTIC_V2:
|
14
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
15
|
+
else:
|
16
|
+
|
17
|
+
class Config:
|
18
|
+
frozen = True
|
19
|
+
smart_union = True
|
20
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from .web_socket_base_response import WebSocketBaseResponse
|
4
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
5
|
+
import typing
|
6
|
+
import pydantic
|
7
|
+
|
8
|
+
|
9
|
+
class WebSocketDoneResponse(WebSocketBaseResponse):
|
10
|
+
if IS_PYDANTIC_V2:
|
11
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
12
|
+
else:
|
13
|
+
|
14
|
+
class Config:
|
15
|
+
frozen = True
|
16
|
+
smart_union = True
|
17
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from .web_socket_base_response import WebSocketBaseResponse
|
4
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
5
|
+
import typing
|
6
|
+
import pydantic
|
7
|
+
|
8
|
+
|
9
|
+
class WebSocketErrorResponse(WebSocketBaseResponse):
|
10
|
+
error: str
|
11
|
+
|
12
|
+
if IS_PYDANTIC_V2:
|
13
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
14
|
+
else:
|
15
|
+
|
16
|
+
class Config:
|
17
|
+
frozen = True
|
18
|
+
smart_union = True
|
19
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from .web_socket_base_response import WebSocketBaseResponse
|
4
|
+
from .flush_id import FlushId
|
5
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
6
|
+
import typing
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class WebSocketFlushDoneResponse(WebSocketBaseResponse):
|
11
|
+
flush_id: FlushId
|
12
|
+
flush_done: bool
|
13
|
+
|
14
|
+
if IS_PYDANTIC_V2:
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
16
|
+
else:
|
17
|
+
|
18
|
+
class Config:
|
19
|
+
frozen = True
|
20
|
+
smart_union = True
|
21
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from .web_socket_base_response import WebSocketBaseResponse
|
4
|
+
import typing
|
5
|
+
from .phoneme_timestamps import PhonemeTimestamps
|
6
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class WebSocketPhonemeTimestampsResponse(WebSocketBaseResponse):
|
11
|
+
phoneme_timestamps: typing.Optional[PhonemeTimestamps] = None
|
12
|
+
|
13
|
+
if IS_PYDANTIC_V2:
|
14
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
15
|
+
else:
|
16
|
+
|
17
|
+
class Config:
|
18
|
+
frozen = True
|
19
|
+
smart_union = True
|
20
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ...core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from .raw_encoding import RawEncoding
|
6
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class WebSocketRawOutputFormat(UniversalBaseModel):
|
11
|
+
container: typing.Literal["raw"] = "raw"
|
12
|
+
encoding: RawEncoding
|
13
|
+
sample_rate: int
|
14
|
+
|
15
|
+
if IS_PYDANTIC_V2:
|
16
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
17
|
+
else:
|
18
|
+
|
19
|
+
class Config:
|
20
|
+
frozen = True
|
21
|
+
smart_union = True
|
22
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,7 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
import typing
|
4
|
+
from .generation_request import GenerationRequest
|
5
|
+
from .cancel_context_request import CancelContextRequest
|
6
|
+
|
7
|
+
WebSocketRequest = typing.Union[GenerationRequest, CancelContextRequest]
|