cartesia 1.4.0__py3-none-any.whl → 2.0.0__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.
Files changed (181) hide show
  1. cartesia/__init__.py +302 -3
  2. cartesia/api_status/__init__.py +6 -0
  3. cartesia/api_status/client.py +104 -0
  4. cartesia/api_status/requests/__init__.py +5 -0
  5. cartesia/api_status/requests/api_info.py +8 -0
  6. cartesia/api_status/types/__init__.py +5 -0
  7. cartesia/api_status/types/api_info.py +20 -0
  8. cartesia/base_client.py +156 -0
  9. cartesia/client.py +163 -40
  10. cartesia/core/__init__.py +50 -0
  11. cartesia/core/api_error.py +15 -0
  12. cartesia/core/client_wrapper.py +55 -0
  13. cartesia/core/datetime_utils.py +28 -0
  14. cartesia/core/file.py +67 -0
  15. cartesia/core/http_client.py +499 -0
  16. cartesia/core/jsonable_encoder.py +101 -0
  17. cartesia/core/pagination.py +88 -0
  18. cartesia/core/pydantic_utilities.py +296 -0
  19. cartesia/core/query_encoder.py +58 -0
  20. cartesia/core/remove_none_from_dict.py +11 -0
  21. cartesia/core/request_options.py +35 -0
  22. cartesia/core/serialization.py +272 -0
  23. cartesia/datasets/__init__.py +24 -0
  24. cartesia/datasets/requests/__init__.py +15 -0
  25. cartesia/datasets/requests/create_dataset_request.py +7 -0
  26. cartesia/datasets/requests/dataset.py +9 -0
  27. cartesia/datasets/requests/dataset_file.py +9 -0
  28. cartesia/datasets/requests/paginated_dataset_files.py +10 -0
  29. cartesia/datasets/requests/paginated_datasets.py +10 -0
  30. cartesia/datasets/types/__init__.py +17 -0
  31. cartesia/datasets/types/create_dataset_request.py +19 -0
  32. cartesia/datasets/types/dataset.py +21 -0
  33. cartesia/datasets/types/dataset_file.py +21 -0
  34. cartesia/datasets/types/file_purpose.py +5 -0
  35. cartesia/datasets/types/paginated_dataset_files.py +21 -0
  36. cartesia/datasets/types/paginated_datasets.py +21 -0
  37. cartesia/embedding/__init__.py +5 -0
  38. cartesia/embedding/types/__init__.py +5 -0
  39. cartesia/embedding/types/embedding.py +201 -0
  40. cartesia/environment.py +7 -0
  41. cartesia/infill/__init__.py +2 -0
  42. cartesia/infill/client.py +318 -0
  43. cartesia/tts/__init__.py +167 -0
  44. cartesia/{_async_websocket.py → tts/_async_websocket.py} +212 -85
  45. cartesia/tts/_websocket.py +479 -0
  46. cartesia/tts/client.py +407 -0
  47. cartesia/tts/requests/__init__.py +76 -0
  48. cartesia/tts/requests/cancel_context_request.py +17 -0
  49. cartesia/tts/requests/controls.py +11 -0
  50. cartesia/tts/requests/generation_request.py +58 -0
  51. cartesia/tts/requests/mp_3_output_format.py +11 -0
  52. cartesia/tts/requests/output_format.py +30 -0
  53. cartesia/tts/requests/phoneme_timestamps.py +10 -0
  54. cartesia/tts/requests/raw_output_format.py +11 -0
  55. cartesia/tts/requests/speed.py +7 -0
  56. cartesia/tts/requests/tts_request.py +24 -0
  57. cartesia/tts/requests/tts_request_embedding_specifier.py +16 -0
  58. cartesia/tts/requests/tts_request_id_specifier.py +16 -0
  59. cartesia/tts/requests/tts_request_voice_specifier.py +7 -0
  60. cartesia/tts/requests/wav_output_format.py +7 -0
  61. cartesia/tts/requests/web_socket_base_response.py +11 -0
  62. cartesia/tts/requests/web_socket_chunk_response.py +11 -0
  63. cartesia/tts/requests/web_socket_done_response.py +7 -0
  64. cartesia/tts/requests/web_socket_error_response.py +7 -0
  65. cartesia/tts/requests/web_socket_flush_done_response.py +9 -0
  66. cartesia/tts/requests/web_socket_phoneme_timestamps_response.py +9 -0
  67. cartesia/tts/requests/web_socket_raw_output_format.py +11 -0
  68. cartesia/tts/requests/web_socket_request.py +7 -0
  69. cartesia/tts/requests/web_socket_response.py +70 -0
  70. cartesia/tts/requests/web_socket_stream_options.py +8 -0
  71. cartesia/tts/requests/web_socket_timestamps_response.py +9 -0
  72. cartesia/tts/requests/web_socket_tts_output.py +18 -0
  73. cartesia/tts/requests/web_socket_tts_request.py +25 -0
  74. cartesia/tts/requests/word_timestamps.py +10 -0
  75. cartesia/tts/socket_client.py +302 -0
  76. cartesia/tts/types/__init__.py +90 -0
  77. cartesia/tts/types/cancel_context_request.py +28 -0
  78. cartesia/tts/types/context_id.py +3 -0
  79. cartesia/tts/types/controls.py +22 -0
  80. cartesia/tts/types/emotion.py +34 -0
  81. cartesia/tts/types/flush_id.py +3 -0
  82. cartesia/tts/types/generation_request.py +71 -0
  83. cartesia/tts/types/mp_3_output_format.py +23 -0
  84. cartesia/tts/types/natural_specifier.py +5 -0
  85. cartesia/tts/types/numerical_specifier.py +3 -0
  86. cartesia/tts/types/output_format.py +58 -0
  87. cartesia/tts/types/phoneme_timestamps.py +21 -0
  88. cartesia/tts/types/raw_encoding.py +5 -0
  89. cartesia/tts/types/raw_output_format.py +22 -0
  90. cartesia/tts/types/speed.py +7 -0
  91. cartesia/tts/types/supported_language.py +7 -0
  92. cartesia/tts/types/tts_request.py +35 -0
  93. cartesia/tts/types/tts_request_embedding_specifier.py +27 -0
  94. cartesia/tts/types/tts_request_id_specifier.py +27 -0
  95. cartesia/tts/types/tts_request_voice_specifier.py +7 -0
  96. cartesia/tts/types/wav_output_format.py +17 -0
  97. cartesia/tts/types/web_socket_base_response.py +22 -0
  98. cartesia/tts/types/web_socket_chunk_response.py +22 -0
  99. cartesia/tts/types/web_socket_done_response.py +17 -0
  100. cartesia/tts/types/web_socket_error_response.py +19 -0
  101. cartesia/tts/types/web_socket_flush_done_response.py +21 -0
  102. cartesia/tts/types/web_socket_phoneme_timestamps_response.py +20 -0
  103. cartesia/tts/types/web_socket_raw_output_format.py +22 -0
  104. cartesia/tts/types/web_socket_request.py +7 -0
  105. cartesia/tts/types/web_socket_response.py +125 -0
  106. cartesia/tts/types/web_socket_stream_options.py +19 -0
  107. cartesia/tts/types/web_socket_timestamps_response.py +20 -0
  108. cartesia/tts/types/web_socket_tts_output.py +29 -0
  109. cartesia/tts/types/web_socket_tts_request.py +37 -0
  110. cartesia/tts/types/word_timestamps.py +21 -0
  111. cartesia/{_constants.py → tts/utils/constants.py} +2 -2
  112. cartesia/tts/utils/tts.py +64 -0
  113. cartesia/tts/utils/types.py +70 -0
  114. cartesia/version.py +3 -1
  115. cartesia/voice_changer/__init__.py +27 -0
  116. cartesia/voice_changer/client.py +395 -0
  117. cartesia/voice_changer/requests/__init__.py +15 -0
  118. cartesia/voice_changer/requests/streaming_response.py +38 -0
  119. cartesia/voice_changer/types/__init__.py +17 -0
  120. cartesia/voice_changer/types/output_format_container.py +5 -0
  121. cartesia/voice_changer/types/streaming_response.py +64 -0
  122. cartesia/voices/__init__.py +81 -0
  123. cartesia/voices/client.py +1218 -0
  124. cartesia/voices/requests/__init__.py +29 -0
  125. cartesia/voices/requests/create_voice_request.py +23 -0
  126. cartesia/voices/requests/embedding_response.py +8 -0
  127. cartesia/voices/requests/embedding_specifier.py +10 -0
  128. cartesia/voices/requests/get_voices_response.py +24 -0
  129. cartesia/voices/requests/id_specifier.py +10 -0
  130. cartesia/voices/requests/localize_dialect.py +11 -0
  131. cartesia/voices/requests/localize_voice_request.py +28 -0
  132. cartesia/voices/requests/mix_voice_specifier.py +7 -0
  133. cartesia/voices/requests/mix_voices_request.py +9 -0
  134. cartesia/voices/requests/update_voice_request.py +15 -0
  135. cartesia/voices/requests/voice.py +43 -0
  136. cartesia/voices/requests/voice_metadata.py +36 -0
  137. cartesia/voices/types/__init__.py +53 -0
  138. cartesia/voices/types/base_voice_id.py +5 -0
  139. cartesia/voices/types/clone_mode.py +5 -0
  140. cartesia/voices/types/create_voice_request.py +34 -0
  141. cartesia/voices/types/embedding_response.py +20 -0
  142. cartesia/voices/types/embedding_specifier.py +22 -0
  143. cartesia/voices/types/gender.py +5 -0
  144. cartesia/voices/types/gender_presentation.py +5 -0
  145. cartesia/voices/types/get_voices_response.py +34 -0
  146. cartesia/voices/types/id_specifier.py +22 -0
  147. cartesia/voices/types/localize_dialect.py +11 -0
  148. cartesia/voices/types/localize_english_dialect.py +5 -0
  149. cartesia/voices/types/localize_french_dialect.py +5 -0
  150. cartesia/voices/types/localize_portuguese_dialect.py +5 -0
  151. cartesia/voices/types/localize_spanish_dialect.py +5 -0
  152. cartesia/voices/types/localize_target_language.py +7 -0
  153. cartesia/voices/types/localize_voice_request.py +39 -0
  154. cartesia/voices/types/mix_voice_specifier.py +7 -0
  155. cartesia/voices/types/mix_voices_request.py +20 -0
  156. cartesia/voices/types/update_voice_request.py +27 -0
  157. cartesia/voices/types/voice.py +54 -0
  158. cartesia/voices/types/voice_expand_options.py +5 -0
  159. cartesia/voices/types/voice_id.py +3 -0
  160. cartesia/voices/types/voice_metadata.py +48 -0
  161. cartesia/voices/types/weight.py +3 -0
  162. cartesia-2.0.0.dist-info/METADATA +414 -0
  163. cartesia-2.0.0.dist-info/RECORD +165 -0
  164. {cartesia-1.4.0.dist-info → cartesia-2.0.0.dist-info}/WHEEL +1 -1
  165. cartesia/_async_sse.py +0 -95
  166. cartesia/_logger.py +0 -3
  167. cartesia/_sse.py +0 -143
  168. cartesia/_types.py +0 -70
  169. cartesia/_websocket.py +0 -358
  170. cartesia/async_client.py +0 -82
  171. cartesia/async_tts.py +0 -176
  172. cartesia/resource.py +0 -44
  173. cartesia/tts.py +0 -292
  174. cartesia/utils/deprecated.py +0 -55
  175. cartesia/utils/retry.py +0 -87
  176. cartesia/utils/tts.py +0 -78
  177. cartesia/voices.py +0 -204
  178. cartesia-1.4.0.dist-info/METADATA +0 -663
  179. cartesia-1.4.0.dist-info/RECORD +0 -23
  180. cartesia-1.4.0.dist-info/licenses/LICENSE.md +0 -21
  181. /cartesia/{utils/__init__.py → py.typed} +0 -0
@@ -0,0 +1,29 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .create_voice_request import CreateVoiceRequestParams
4
+ from .embedding_response import EmbeddingResponseParams
5
+ from .embedding_specifier import EmbeddingSpecifierParams
6
+ from .get_voices_response import GetVoicesResponseParams
7
+ from .id_specifier import IdSpecifierParams
8
+ from .localize_dialect import LocalizeDialectParams
9
+ from .localize_voice_request import LocalizeVoiceRequestParams
10
+ from .mix_voice_specifier import MixVoiceSpecifierParams
11
+ from .mix_voices_request import MixVoicesRequestParams
12
+ from .update_voice_request import UpdateVoiceRequestParams
13
+ from .voice import VoiceParams
14
+ from .voice_metadata import VoiceMetadataParams
15
+
16
+ __all__ = [
17
+ "CreateVoiceRequestParams",
18
+ "EmbeddingResponseParams",
19
+ "EmbeddingSpecifierParams",
20
+ "GetVoicesResponseParams",
21
+ "IdSpecifierParams",
22
+ "LocalizeDialectParams",
23
+ "LocalizeVoiceRequestParams",
24
+ "MixVoiceSpecifierParams",
25
+ "MixVoicesRequestParams",
26
+ "UpdateVoiceRequestParams",
27
+ "VoiceMetadataParams",
28
+ "VoiceParams",
29
+ ]
@@ -0,0 +1,23 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing_extensions
4
+ from ...embedding.types.embedding import Embedding
5
+ import typing_extensions
6
+ from ...tts.types.supported_language import SupportedLanguage
7
+ from ..types.base_voice_id import BaseVoiceId
8
+
9
+
10
+ class CreateVoiceRequestParams(typing_extensions.TypedDict):
11
+ name: str
12
+ """
13
+ The name of the voice.
14
+ """
15
+
16
+ description: str
17
+ """
18
+ The description of the voice.
19
+ """
20
+
21
+ embedding: Embedding
22
+ language: typing_extensions.NotRequired[SupportedLanguage]
23
+ base_voice_id: typing_extensions.NotRequired[BaseVoiceId]
@@ -0,0 +1,8 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing_extensions
4
+ from ...embedding.types.embedding import Embedding
5
+
6
+
7
+ class EmbeddingResponseParams(typing_extensions.TypedDict):
8
+ embedding: Embedding
@@ -0,0 +1,10 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing_extensions
4
+ from ...embedding.types.embedding import Embedding
5
+ from ..types.weight import Weight
6
+
7
+
8
+ class EmbeddingSpecifierParams(typing_extensions.TypedDict):
9
+ embedding: Embedding
10
+ weight: Weight
@@ -0,0 +1,24 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing_extensions
4
+ import typing
5
+ from .voice import VoiceParams
6
+ import typing_extensions
7
+ from ..types.voice_id import VoiceId
8
+
9
+
10
+ class GetVoicesResponseParams(typing_extensions.TypedDict):
11
+ data: typing.Sequence[VoiceParams]
12
+ """
13
+ The paginated list of Voices.
14
+ """
15
+
16
+ has_more: bool
17
+ """
18
+ Whether there are more Voices to fetch (using `starting_after=id`, where id is the ID of the last Voice in the current response).
19
+ """
20
+
21
+ next_page: typing_extensions.NotRequired[VoiceId]
22
+ """
23
+ (Deprecated - use the id of the last Voice in the current response instead.) An ID that can be passed as `starting_after` to get the next page of Voices.
24
+ """
@@ -0,0 +1,10 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing_extensions
4
+ from ..types.voice_id import VoiceId
5
+ from ..types.weight import Weight
6
+
7
+
8
+ class IdSpecifierParams(typing_extensions.TypedDict):
9
+ id: VoiceId
10
+ weight: Weight
@@ -0,0 +1,11 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from ..types.localize_english_dialect import LocalizeEnglishDialect
5
+ from ..types.localize_spanish_dialect import LocalizeSpanishDialect
6
+ from ..types.localize_portuguese_dialect import LocalizePortugueseDialect
7
+ from ..types.localize_french_dialect import LocalizeFrenchDialect
8
+
9
+ LocalizeDialectParams = typing.Union[
10
+ LocalizeEnglishDialect, LocalizeSpanishDialect, LocalizePortugueseDialect, LocalizeFrenchDialect
11
+ ]
@@ -0,0 +1,28 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing_extensions
4
+ from ..types.localize_target_language import LocalizeTargetLanguage
5
+ from ..types.gender import Gender
6
+ import typing_extensions
7
+ from .localize_dialect import LocalizeDialectParams
8
+
9
+
10
+ class LocalizeVoiceRequestParams(typing_extensions.TypedDict):
11
+ voice_id: str
12
+ """
13
+ The ID of the voice to localize.
14
+ """
15
+
16
+ name: str
17
+ """
18
+ The name of the new localized voice.
19
+ """
20
+
21
+ description: str
22
+ """
23
+ The description of the new localized voice.
24
+ """
25
+
26
+ language: LocalizeTargetLanguage
27
+ original_speaker_gender: Gender
28
+ dialect: typing_extensions.NotRequired[LocalizeDialectParams]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from .id_specifier import IdSpecifierParams
5
+ from .embedding_specifier import EmbeddingSpecifierParams
6
+
7
+ MixVoiceSpecifierParams = typing.Union[IdSpecifierParams, EmbeddingSpecifierParams]
@@ -0,0 +1,9 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing_extensions
4
+ import typing
5
+ from .mix_voice_specifier import MixVoiceSpecifierParams
6
+
7
+
8
+ class MixVoicesRequestParams(typing_extensions.TypedDict):
9
+ voices: typing.Sequence[MixVoiceSpecifierParams]
@@ -0,0 +1,15 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing_extensions
4
+
5
+
6
+ class UpdateVoiceRequestParams(typing_extensions.TypedDict):
7
+ name: str
8
+ """
9
+ The name of the voice.
10
+ """
11
+
12
+ description: str
13
+ """
14
+ The description of the voice.
15
+ """
@@ -0,0 +1,43 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing_extensions
4
+ from ..types.voice_id import VoiceId
5
+ import datetime as dt
6
+ import typing_extensions
7
+ from ...embedding.types.embedding import Embedding
8
+ from ...tts.types.supported_language import SupportedLanguage
9
+
10
+
11
+ class VoiceParams(typing_extensions.TypedDict):
12
+ id: VoiceId
13
+ is_owner: bool
14
+ """
15
+ Whether the current user is the owner of the voice.
16
+ """
17
+
18
+ name: str
19
+ """
20
+ The name of the voice.
21
+ """
22
+
23
+ description: str
24
+ """
25
+ The description of the voice.
26
+ """
27
+
28
+ created_at: dt.datetime
29
+ """
30
+ The date and time the voice was created.
31
+ """
32
+
33
+ embedding: typing_extensions.NotRequired[Embedding]
34
+ """
35
+ The vector embedding of the voice. Only included when `expand` includes `embedding`.
36
+ """
37
+
38
+ is_starred: typing_extensions.NotRequired[bool]
39
+ """
40
+ Whether the current user has starred the voice. Only included when `expand` includes `is_starred`.
41
+ """
42
+
43
+ language: SupportedLanguage
@@ -0,0 +1,36 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing_extensions
4
+ from ..types.voice_id import VoiceId
5
+ import datetime as dt
6
+ from ...tts.types.supported_language import SupportedLanguage
7
+
8
+
9
+ class VoiceMetadataParams(typing_extensions.TypedDict):
10
+ id: VoiceId
11
+ user_id: str
12
+ """
13
+ The ID of the user who owns the voice.
14
+ """
15
+
16
+ is_public: bool
17
+ """
18
+ Whether the voice is publicly accessible.
19
+ """
20
+
21
+ name: str
22
+ """
23
+ The name of the voice.
24
+ """
25
+
26
+ description: str
27
+ """
28
+ The description of the voice.
29
+ """
30
+
31
+ created_at: dt.datetime
32
+ """
33
+ The date and time the voice was created.
34
+ """
35
+
36
+ language: SupportedLanguage
@@ -0,0 +1,53 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .base_voice_id import BaseVoiceId
4
+ from .clone_mode import CloneMode
5
+ from .create_voice_request import CreateVoiceRequest
6
+ from .embedding_response import EmbeddingResponse
7
+ from .embedding_specifier import EmbeddingSpecifier
8
+ from .gender import Gender
9
+ from .gender_presentation import GenderPresentation
10
+ from .get_voices_response import GetVoicesResponse
11
+ from .id_specifier import IdSpecifier
12
+ from .localize_dialect import LocalizeDialect
13
+ from .localize_english_dialect import LocalizeEnglishDialect
14
+ from .localize_french_dialect import LocalizeFrenchDialect
15
+ from .localize_portuguese_dialect import LocalizePortugueseDialect
16
+ from .localize_spanish_dialect import LocalizeSpanishDialect
17
+ from .localize_target_language import LocalizeTargetLanguage
18
+ from .localize_voice_request import LocalizeVoiceRequest
19
+ from .mix_voice_specifier import MixVoiceSpecifier
20
+ from .mix_voices_request import MixVoicesRequest
21
+ from .update_voice_request import UpdateVoiceRequest
22
+ from .voice import Voice
23
+ from .voice_expand_options import VoiceExpandOptions
24
+ from .voice_id import VoiceId
25
+ from .voice_metadata import VoiceMetadata
26
+ from .weight import Weight
27
+
28
+ __all__ = [
29
+ "BaseVoiceId",
30
+ "CloneMode",
31
+ "CreateVoiceRequest",
32
+ "EmbeddingResponse",
33
+ "EmbeddingSpecifier",
34
+ "Gender",
35
+ "GenderPresentation",
36
+ "GetVoicesResponse",
37
+ "IdSpecifier",
38
+ "LocalizeDialect",
39
+ "LocalizeEnglishDialect",
40
+ "LocalizeFrenchDialect",
41
+ "LocalizePortugueseDialect",
42
+ "LocalizeSpanishDialect",
43
+ "LocalizeTargetLanguage",
44
+ "LocalizeVoiceRequest",
45
+ "MixVoiceSpecifier",
46
+ "MixVoicesRequest",
47
+ "UpdateVoiceRequest",
48
+ "Voice",
49
+ "VoiceExpandOptions",
50
+ "VoiceId",
51
+ "VoiceMetadata",
52
+ "Weight",
53
+ ]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .voice_id import VoiceId
4
+
5
+ BaseVoiceId = VoiceId
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ CloneMode = typing.Union[typing.Literal["similarity", "stability"], typing.Any]
@@ -0,0 +1,34 @@
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 ...embedding.types.embedding import Embedding
6
+ import typing
7
+ from ...tts.types.supported_language import SupportedLanguage
8
+ from .base_voice_id import BaseVoiceId
9
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
10
+
11
+
12
+ class CreateVoiceRequest(UniversalBaseModel):
13
+ name: str = pydantic.Field()
14
+ """
15
+ The name of the voice.
16
+ """
17
+
18
+ description: str = pydantic.Field()
19
+ """
20
+ The description of the voice.
21
+ """
22
+
23
+ embedding: Embedding
24
+ language: typing.Optional[SupportedLanguage] = None
25
+ base_voice_id: typing.Optional[BaseVoiceId] = None
26
+
27
+ if IS_PYDANTIC_V2:
28
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
29
+ else:
30
+
31
+ class Config:
32
+ frozen = True
33
+ smart_union = True
34
+ extra = pydantic.Extra.allow
@@ -0,0 +1,20 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ...core.pydantic_utilities import UniversalBaseModel
4
+ from ...embedding.types.embedding import Embedding
5
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import typing
7
+ import pydantic
8
+
9
+
10
+ class EmbeddingResponse(UniversalBaseModel):
11
+ embedding: Embedding
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
+ from ...embedding.types.embedding import Embedding
5
+ from .weight import Weight
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import typing
8
+ import pydantic
9
+
10
+
11
+ class EmbeddingSpecifier(UniversalBaseModel):
12
+ embedding: Embedding
13
+ weight: Weight
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,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ Gender = typing.Union[typing.Literal["male", "female"], typing.Any]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ GenderPresentation = typing.Union[typing.Literal["masculine", "feminine", "gender_neutral"], typing.Any]
@@ -0,0 +1,34 @@
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 .voice import Voice
6
+ import pydantic
7
+ from .voice_id import VoiceId
8
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
9
+
10
+
11
+ class GetVoicesResponse(UniversalBaseModel):
12
+ data: typing.List[Voice] = pydantic.Field()
13
+ """
14
+ The paginated list of Voices.
15
+ """
16
+
17
+ has_more: bool = pydantic.Field()
18
+ """
19
+ Whether there are more Voices to fetch (using `starting_after=id`, where id is the ID of the last Voice in the current response).
20
+ """
21
+
22
+ next_page: typing.Optional[VoiceId] = pydantic.Field(default=None)
23
+ """
24
+ (Deprecated - use the id of the last Voice in the current response instead.) An ID that can be passed as `starting_after` to get the next page of Voices.
25
+ """
26
+
27
+ if IS_PYDANTIC_V2:
28
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
29
+ else:
30
+
31
+ class Config:
32
+ frozen = True
33
+ smart_union = True
34
+ 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 .voice_id import VoiceId
5
+ from .weight import Weight
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import typing
8
+ import pydantic
9
+
10
+
11
+ class IdSpecifier(UniversalBaseModel):
12
+ id: VoiceId
13
+ weight: Weight
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,11 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from .localize_english_dialect import LocalizeEnglishDialect
5
+ from .localize_spanish_dialect import LocalizeSpanishDialect
6
+ from .localize_portuguese_dialect import LocalizePortugueseDialect
7
+ from .localize_french_dialect import LocalizeFrenchDialect
8
+
9
+ LocalizeDialect = typing.Union[
10
+ LocalizeEnglishDialect, LocalizeSpanishDialect, LocalizePortugueseDialect, LocalizeFrenchDialect
11
+ ]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ LocalizeEnglishDialect = typing.Union[typing.Literal["au", "in", "so", "uk", "us"], typing.Any]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ LocalizeFrenchDialect = typing.Union[typing.Literal["eu", "ca"], typing.Any]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ LocalizePortugueseDialect = typing.Union[typing.Literal["br", "eu"], typing.Any]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ LocalizeSpanishDialect = typing.Union[typing.Literal["mx", "pe"], typing.Any]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ LocalizeTargetLanguage = typing.Union[
6
+ typing.Literal["en", "de", "es", "fr", "ja", "pt", "zh", "hi", "it", "ko", "nl", "pl", "ru", "sv", "tr"], typing.Any
7
+ ]
@@ -0,0 +1,39 @@
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 .localize_target_language import LocalizeTargetLanguage
6
+ from .gender import Gender
7
+ import typing
8
+ from .localize_dialect import LocalizeDialect
9
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
10
+
11
+
12
+ class LocalizeVoiceRequest(UniversalBaseModel):
13
+ voice_id: str = pydantic.Field()
14
+ """
15
+ The ID of the voice to localize.
16
+ """
17
+
18
+ name: str = pydantic.Field()
19
+ """
20
+ The name of the new localized voice.
21
+ """
22
+
23
+ description: str = pydantic.Field()
24
+ """
25
+ The description of the new localized voice.
26
+ """
27
+
28
+ language: LocalizeTargetLanguage
29
+ original_speaker_gender: Gender
30
+ dialect: typing.Optional[LocalizeDialect] = None
31
+
32
+ if IS_PYDANTIC_V2:
33
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
34
+ else:
35
+
36
+ class Config:
37
+ frozen = True
38
+ smart_union = True
39
+ 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 .id_specifier import IdSpecifier
5
+ from .embedding_specifier import EmbeddingSpecifier
6
+
7
+ MixVoiceSpecifier = typing.Union[IdSpecifier, EmbeddingSpecifier]
@@ -0,0 +1,20 @@
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 .mix_voice_specifier import MixVoiceSpecifier
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class MixVoicesRequest(UniversalBaseModel):
11
+ voices: typing.List[MixVoiceSpecifier]
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,27 @@
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 UpdateVoiceRequest(UniversalBaseModel):
10
+ name: str = pydantic.Field()
11
+ """
12
+ The name of the voice.
13
+ """
14
+
15
+ description: str = pydantic.Field()
16
+ """
17
+ The description of the voice.
18
+ """
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