cartesia 2.0.0b7__py3-none-any.whl → 2.0.2__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 (37) hide show
  1. cartesia/__init__.py +15 -1
  2. cartesia/auth/__init__.py +13 -0
  3. cartesia/auth/client.py +159 -0
  4. cartesia/auth/requests/__init__.py +7 -0
  5. cartesia/auth/requests/token_grant.py +10 -0
  6. cartesia/auth/requests/token_request.py +17 -0
  7. cartesia/auth/requests/token_response.py +10 -0
  8. cartesia/auth/types/__init__.py +7 -0
  9. cartesia/auth/types/token_grant.py +22 -0
  10. cartesia/auth/types/token_request.py +28 -0
  11. cartesia/auth/types/token_response.py +22 -0
  12. cartesia/base_client.py +4 -0
  13. cartesia/core/client_wrapper.py +1 -1
  14. cartesia/tts/_async_websocket.py +8 -0
  15. cartesia/tts/_websocket.py +11 -0
  16. cartesia/tts/client.py +40 -4
  17. cartesia/tts/requests/generation_request.py +19 -1
  18. cartesia/tts/requests/tts_request.py +10 -1
  19. cartesia/tts/requests/web_socket_tts_request.py +3 -1
  20. cartesia/tts/types/generation_request.py +19 -1
  21. cartesia/tts/types/tts_request.py +10 -1
  22. cartesia/tts/types/web_socket_tts_request.py +3 -1
  23. cartesia/voices/__init__.py +6 -0
  24. cartesia/voices/client.py +208 -159
  25. cartesia/voices/requests/create_voice_request.py +2 -0
  26. cartesia/voices/requests/localize_dialect.py +6 -1
  27. cartesia/voices/requests/localize_voice_request.py +15 -2
  28. cartesia/voices/types/__init__.py +6 -0
  29. cartesia/voices/types/create_voice_request.py +2 -0
  30. cartesia/voices/types/localize_dialect.py +6 -1
  31. cartesia/voices/types/localize_french_dialect.py +5 -0
  32. cartesia/voices/types/localize_portuguese_dialect.py +5 -0
  33. cartesia/voices/types/localize_spanish_dialect.py +5 -0
  34. cartesia/voices/types/localize_voice_request.py +16 -3
  35. {cartesia-2.0.0b7.dist-info → cartesia-2.0.2.dist-info}/METADATA +68 -63
  36. {cartesia-2.0.0b7.dist-info → cartesia-2.0.2.dist-info}/RECORD +37 -24
  37. {cartesia-2.0.0b7.dist-info → cartesia-2.0.2.dist-info}/WHEEL +0 -0
@@ -1,7 +1,6 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing_extensions
4
- from ...embedding.types.embedding import Embedding
5
4
  from ..types.localize_target_language import LocalizeTargetLanguage
6
5
  from ..types.gender import Gender
7
6
  import typing_extensions
@@ -9,7 +8,21 @@ from .localize_dialect import LocalizeDialectParams
9
8
 
10
9
 
11
10
  class LocalizeVoiceRequestParams(typing_extensions.TypedDict):
12
- embedding: Embedding
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
+
13
26
  language: LocalizeTargetLanguage
14
27
  original_speaker_gender: Gender
15
28
  dialect: typing_extensions.NotRequired[LocalizeDialectParams]
@@ -11,6 +11,9 @@ from .get_voices_response import GetVoicesResponse
11
11
  from .id_specifier import IdSpecifier
12
12
  from .localize_dialect import LocalizeDialect
13
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
14
17
  from .localize_target_language import LocalizeTargetLanguage
15
18
  from .localize_voice_request import LocalizeVoiceRequest
16
19
  from .mix_voice_specifier import MixVoiceSpecifier
@@ -34,6 +37,9 @@ __all__ = [
34
37
  "IdSpecifier",
35
38
  "LocalizeDialect",
36
39
  "LocalizeEnglishDialect",
40
+ "LocalizeFrenchDialect",
41
+ "LocalizePortugueseDialect",
42
+ "LocalizeSpanishDialect",
37
43
  "LocalizeTargetLanguage",
38
44
  "LocalizeVoiceRequest",
39
45
  "MixVoiceSpecifier",
@@ -5,6 +5,7 @@ import pydantic
5
5
  from ...embedding.types.embedding import Embedding
6
6
  import typing
7
7
  from ...tts.types.supported_language import SupportedLanguage
8
+ from .base_voice_id import BaseVoiceId
8
9
  from ...core.pydantic_utilities import IS_PYDANTIC_V2
9
10
 
10
11
 
@@ -21,6 +22,7 @@ class CreateVoiceRequest(UniversalBaseModel):
21
22
 
22
23
  embedding: Embedding
23
24
  language: typing.Optional[SupportedLanguage] = None
25
+ base_voice_id: typing.Optional[BaseVoiceId] = None
24
26
 
25
27
  if IS_PYDANTIC_V2:
26
28
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -2,5 +2,10 @@
2
2
 
3
3
  import typing
4
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
5
8
 
6
- LocalizeDialect = typing.Union[LocalizeEnglishDialect]
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
+ 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]
@@ -1,17 +1,30 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  from ...core.pydantic_utilities import UniversalBaseModel
4
- from ...embedding.types.embedding import Embedding
4
+ import pydantic
5
5
  from .localize_target_language import LocalizeTargetLanguage
6
6
  from .gender import Gender
7
7
  import typing
8
8
  from .localize_dialect import LocalizeDialect
9
9
  from ...core.pydantic_utilities import IS_PYDANTIC_V2
10
- import pydantic
11
10
 
12
11
 
13
12
  class LocalizeVoiceRequest(UniversalBaseModel):
14
- embedding: Embedding
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
+
15
28
  language: LocalizeTargetLanguage
16
29
  original_speaker_gender: Gender
17
30
  dialect: typing.Optional[LocalizeDialect] = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cartesia
3
- Version: 2.0.0b7
3
+ Version: 2.0.2
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -47,53 +47,6 @@ Our complete API documentation can be found [on docs.cartesia.ai](https://docs.c
47
47
  pip install cartesia
48
48
  ```
49
49
 
50
- ## Reference
51
-
52
- A full reference for this library is available [here](./reference.md).
53
-
54
- ## Voices
55
-
56
- ```python
57
- from cartesia import Cartesia
58
- import os
59
-
60
- client = Cartesia(api_key=os.getenv("CARTESIA_API_KEY"))
61
-
62
- # Get all available voices
63
- voices = client.voices.list()
64
- print(voices)
65
-
66
- # Get a specific voice
67
- voice = client.voices.get(id="a0e99841-438c-4a64-b679-ae501e7d6091")
68
- print("The embedding for", voice.name, "is", voice.embedding)
69
-
70
- # Clone a voice using file data
71
- cloned_voice = client.voices.clone(
72
- clip=open("path/to/voice.wav", "rb"),
73
- name="Test cloned voice",
74
- language="en",
75
- mode="similarity", # or "stability"
76
- enhance=False, # use enhance=True to clean and denoise the cloning audio
77
- description="Test voice description"
78
- )
79
-
80
- # Mix voices together
81
- mixed_voice = client.voices.mix(
82
- voices=[
83
- {"id": "voice_id_1", "weight": 0.25},
84
- {"id": "voice_id_2", "weight": 0.75}
85
- ]
86
- )
87
-
88
- # Create a new voice from embedding
89
- new_voice = client.voices.create(
90
- name="Test Voice",
91
- description="Test voice description",
92
- embedding=[...], # List[float] with 192 dimensions
93
- language="en"
94
- )
95
- ```
96
-
97
50
  ## Usage
98
51
 
99
52
  Instantiate and use the client with the following:
@@ -112,10 +65,6 @@ client.tts.bytes(
112
65
  voice={
113
66
  "mode": "id",
114
67
  "id": "694f9389-aac1-45b6-b726-9d9369183238",
115
- "experimental_controls": {
116
- "speed": 0.5, # range between [-1.0, 1.0], or "slow", "fastest", etc.
117
- "emotion": ["positivity", "curiosity:low"] # list of emotions with optional intensity
118
- }
119
68
  },
120
69
  language="en",
121
70
  output_format={
@@ -176,7 +125,7 @@ except ApiError as e:
176
125
 
177
126
  ## Streaming
178
127
 
179
- The SDK supports streaming responses, as well, the response will be a generator that you can loop over.
128
+ The SDK supports streaming responses as well, returning a generator that you can iterate over with a `for ... in ...` loop:
180
129
 
181
130
  ```python
182
131
  from cartesia import Cartesia
@@ -215,7 +164,9 @@ for chunk in chunks:
215
164
  print(f"Received chunk of size: {len(chunk.data)}")
216
165
  ```
217
166
 
218
- ## WebSocket
167
+ ## WebSockets
168
+
169
+ For the lowest latency in advanced usecases (such as streaming in an LLM-generated transcript and streaming out audio), you should use our websockets client:
219
170
 
220
171
  ```python
221
172
  from cartesia import Cartesia
@@ -223,15 +174,10 @@ from cartesia.tts import TtsRequestEmbeddingSpecifierParams, OutputFormat_RawPar
223
174
  import pyaudio
224
175
  import os
225
176
 
226
- client = Cartesia(
227
- api_key=os.getenv("CARTESIA_API_KEY"),
228
- )
177
+ client = Cartesia(api_key=os.getenv("CARTESIA_API_KEY"))
229
178
  voice_id = "a0e99841-438c-4a64-b679-ae501e7d6091"
230
179
  transcript = "Hello! Welcome to Cartesia"
231
180
 
232
- # You can check out our models at https://docs.cartesia.ai/getting-started/available-models
233
- model_id = "sonic-2"
234
-
235
181
  p = pyaudio.PyAudio()
236
182
  rate = 22050
237
183
 
@@ -242,14 +188,14 @@ ws = client.tts.websocket()
242
188
 
243
189
  # Generate and stream audio using the websocket
244
190
  for output in ws.send(
245
- model_id=model_id,
191
+ model_id="sonic-2", # see: https://docs.cartesia.ai/getting-started/available-models
246
192
  transcript=transcript,
247
193
  voice={"id": voice_id},
248
194
  stream=True,
249
195
  output_format={
250
196
  "container": "raw",
251
197
  "encoding": "pcm_f32le",
252
- "sample_rate": 22050
198
+ "sample_rate": rate
253
199
  },
254
200
  ):
255
201
  buffer = output.audio
@@ -267,6 +213,40 @@ p.terminate()
267
213
  ws.close() # Close the websocket connection
268
214
  ```
269
215
 
216
+ ## Voices
217
+
218
+ List all available Voices with `client.voices.list`, which returns an iterable that automatically handles pagination:
219
+
220
+ ```python
221
+ from cartesia import Cartesia
222
+ import os
223
+
224
+ client = Cartesia(api_key=os.getenv("CARTESIA_API_KEY"))
225
+
226
+ # Get all available Voices
227
+ voices = client.voices.list()
228
+ for voice in voices:
229
+ print(voice)
230
+ ```
231
+
232
+ You can also get the complete metadata for a specific Voice, or make a new Voice by cloning from an audio sample:
233
+
234
+ ```python
235
+ # Get a specific Voice
236
+ voice = client.voices.get(id="a0e99841-438c-4a64-b679-ae501e7d6091")
237
+ print("The embedding for", voice.name, "is", voice.embedding)
238
+
239
+ # Clone a Voice using file data
240
+ cloned_voice = client.voices.clone(
241
+ clip=open("path/to/voice.wav", "rb"),
242
+ name="Test cloned voice",
243
+ language="en",
244
+ mode="similarity", # or "stability"
245
+ enhance=False, # use enhance=True to clean and denoise the cloning audio
246
+ description="Test voice description"
247
+ )
248
+ ```
249
+
270
250
  ## Requesting Timestamps
271
251
 
272
252
  ```python
@@ -290,7 +270,8 @@ async def main():
290
270
  "encoding": "pcm_f32le",
291
271
  "sample_rate": 44100
292
272
  },
293
- add_timestamps=True, # Enable word-level timestamps
273
+ add_timestamps=True, # Enable word-level timestamps
274
+ add_phoneme_timestamps=True, # Enable phonemized timestamps
294
275
  stream=True
295
276
  )
296
277
 
@@ -358,6 +339,26 @@ client.tts.bytes(..., request_options={
358
339
  })
359
340
  ```
360
341
 
342
+ ### Mixing voices and creating from embeddings
343
+
344
+ ```python
345
+ # Mix voices together
346
+ mixed_voice = client.voices.mix(
347
+ voices=[
348
+ {"id": "voice_id_1", "weight": 0.25},
349
+ {"id": "voice_id_2", "weight": 0.75}
350
+ ]
351
+ )
352
+
353
+ # Create a new voice from embedding
354
+ new_voice = client.voices.create(
355
+ name="Test Voice",
356
+ description="Test voice description",
357
+ embedding=[...], # List[float] with 192 dimensions
358
+ language="en"
359
+ )
360
+ ```
361
+
361
362
  ### Custom Client
362
363
 
363
364
  You can override the `httpx` client to customize it for your use-case. Some common use-cases include support for proxies
@@ -375,6 +376,10 @@ client = Cartesia(
375
376
  )
376
377
  ```
377
378
 
379
+ ## Reference
380
+
381
+ A full reference for this library is available [here](./reference.md).
382
+
378
383
  ## Contributing
379
384
 
380
385
  Note that most of this library is generated programmatically from
@@ -1,15 +1,25 @@
1
- cartesia/__init__.py,sha256=r67mE_XxfYDeojBqnpfBgpAo1FnUESbX7Qm-7Vjes_Q,7965
1
+ cartesia/__init__.py,sha256=wqKLSdaX3HebPUATK1p8tTcd5TMcLzvhJR2dNcEBKgo,8414
2
2
  cartesia/api_status/__init__.py,sha256=_dHNLdknrBjxHtU2PvLumttJM-JTQhJQqhhAQkLqt_U,168
3
3
  cartesia/api_status/client.py,sha256=GJ9Dq8iCn3hn8vCIqc6k1fCGEhSz0T0kaPGcdFnbMDY,3146
4
4
  cartesia/api_status/requests/__init__.py,sha256=ilEMzEy1JEw484CuL92bX5lHGOznc62pjiDMgiZ0tKM,130
5
5
  cartesia/api_status/requests/api_info.py,sha256=AmB6RpquI2yUlTQBtOk8e0qtLmXHYLcGZKpXZahOwmc,172
6
6
  cartesia/api_status/types/__init__.py,sha256=6NUyGWiGK1Wl3mXlSMJN2ObKf2LK3vjX2MUP1uopfEQ,118
7
7
  cartesia/api_status/types/api_info.py,sha256=o1LwSxnoHpCR7huw9J-cF6LRlC_fiftDQLYUz8p-vTc,568
8
- cartesia/base_client.py,sha256=EIfMrSkJgMCgzYWJ5GN2RxsWikxcH0kMmcb3WYqfQ_g,6321
8
+ cartesia/auth/__init__.py,sha256=T8_EGgzdzyJLqfD7DAgdkE6G1Ey2sUMyze-7x8HTzGg,355
9
+ cartesia/auth/client.py,sha256=gJurqzV5r-edd5DV2xc1Uy1Fm8Fi3ndaourZmbOh15E,5261
10
+ cartesia/auth/requests/__init__.py,sha256=hR7qCSJCPiOG7f8z8jTKQLOC7QoonSvvPKe0JbcEYEs,278
11
+ cartesia/auth/requests/token_grant.py,sha256=HTrgl6TsokxYIMXeTK-NjSKQ8WQfDwnbEfbyzirs0kk,251
12
+ cartesia/auth/requests/token_request.py,sha256=DeQQhHOLfmL4O3ZqrFq1FtxTDmTsYGpMtmRRiCvxUcE,498
13
+ cartesia/auth/requests/token_response.py,sha256=jXpHZmFe6RWO837e_lC2GJWwqO-b6KHOA-b6tTJVC54,211
14
+ cartesia/auth/types/__init__.py,sha256=iZrkHrlWs8e9KkR27f2IG-B72HC_N05A7Lcyt_EU9SM,242
15
+ cartesia/auth/types/token_grant.py,sha256=sdEqlqS95XSy_Xdp4TEeRSC1hQp4nbPv1HHZFxbU0So,666
16
+ cartesia/auth/types/token_request.py,sha256=2cx2OBXTEjrbuVMOpBzkIm9-DZD2mGiWE6Ui3kumxGI,893
17
+ cartesia/auth/types/token_response.py,sha256=_GcvfQdjwgNu1ODj8EuTkaMsez508a6xuOo8HOVNOJQ,626
18
+ cartesia/base_client.py,sha256=YH0l0UUzanAa9mDdJU6BFQ9XKELiaPTm9NsJpVQ4evA,6539
9
19
  cartesia/client.py,sha256=sPAYQLt9W2E_2F17ooocvvJImuNyLrL8xUypgf6dZeI,6238
10
20
  cartesia/core/__init__.py,sha256=-t9txgeQZL_1FDw_08GEoj4ft1Cn9Dti6X0Drsadlr0,1519
11
21
  cartesia/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
12
- cartesia/core/client_wrapper.py,sha256=tTxN1WEjVJuMSKTZ4kVKQykuql_lcQuiUfDU89z-f0A,1856
22
+ cartesia/core/client_wrapper.py,sha256=RLjY6z-CDfSO5WPCxechq__-Xhikk8_gn3-HAdFFXiE,1854
13
23
  cartesia/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
14
24
  cartesia/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
15
25
  cartesia/core/http_client.py,sha256=KL5RGa0y4n8nX0-07WRg4ZQUTq30sc-XJbWcP5vjBDg,19552
@@ -42,19 +52,19 @@ cartesia/infill/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,6
42
52
  cartesia/infill/client.py,sha256=PWE5Ak-wsaBM_8g52oDl9PYx76PkW6f900mnxvZf4Bk,12571
43
53
  cartesia/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
54
  cartesia/tts/__init__.py,sha256=G0wcYlPrr7hmu5DQgCG7bDTQq36fpP3iBM5164Z0-Js,4701
45
- cartesia/tts/_async_websocket.py,sha256=mPykrS40FJee58T8NtGUnQ7AurQy04Qz6ICzjCnr7Fg,18383
46
- cartesia/tts/_websocket.py,sha256=Gzd2GvTPUKn59u7quVHn53cGe44H_fCv1jr-opSHRZk,18689
47
- cartesia/tts/client.py,sha256=KMhDaW0gG_uwkSq1EzoC-bCx1G0TLB4K4Gm57L4xDSs,14832
55
+ cartesia/tts/_async_websocket.py,sha256=tJ-6rdJrviKvGhSW8J8t-rCinXM5gXXQJgDO8OgW3EE,18805
56
+ cartesia/tts/_websocket.py,sha256=Uk6B-TP-0nzeyFE9w-_PzNIiVYP14rKqSDZlm6bU24Q,19271
57
+ cartesia/tts/client.py,sha256=oZZDSb9XVVvON4ng5tdL3NeVIMhfUdLs1qSHQ_HBtQw,17376
48
58
  cartesia/tts/requests/__init__.py,sha256=0rcfMLHNbUhkRI1xS09UE4p-WT1BCqrcblFtPxcATOI,3261
49
59
  cartesia/tts/requests/cancel_context_request.py,sha256=Wl8g-o5vwl9ENm-H1wsLx441FkIR_4Wt5UYtuWce2Yw,431
50
60
  cartesia/tts/requests/controls.py,sha256=xzUJlfgqhaJ1A-JD0LTpoHYk4iEpCuGpSD7qE4YYsRg,285
51
- cartesia/tts/requests/generation_request.py,sha256=D7eB1HEOzoGbviMavtK1hwsP0lTO7K-pEs3UQIAZpDs,1980
61
+ cartesia/tts/requests/generation_request.py,sha256=oGCBfIVXc6SvKV5IDdadHvqBT5qLAZLhz_CBVtKfV2Y,3202
52
62
  cartesia/tts/requests/mp_3_output_format.py,sha256=PGDVzC1d7-Jce12rFxtF8G1pTHmlUdiGAhykFTABg0w,316
53
63
  cartesia/tts/requests/output_format.py,sha256=8TKu9AAeHCR5L4edzYch8FIYIldn4bM7ySrsCl8W_g8,842
54
64
  cartesia/tts/requests/phoneme_timestamps.py,sha256=ft81nmqElZAnvTBT27lY6YWfF18ZGsCx3Y1XHv9J7cM,267
55
65
  cartesia/tts/requests/raw_output_format.py,sha256=S60Vp7DeAATCMLF3bXgxhw0zILJBWJ9GhI9irAg_UkI,316
56
66
  cartesia/tts/requests/speed.py,sha256=-YGBWwh7_VtCBnYlT5EVsnrmcHFMEBTxy9LathZhkMA,259
57
- cartesia/tts/requests/tts_request.py,sha256=rh7akZLf_w0RukKclCic9fKIIJi-X1M1GeHnJ14rjKk,921
67
+ cartesia/tts/requests/tts_request.py,sha256=VqBtdNF6JFcBh392e6tyONCexvJZMUyKpamv03hjTjA,1479
58
68
  cartesia/tts/requests/tts_request_embedding_specifier.py,sha256=-M54ZjV0H5LPwcKtz0bOVqlkvO1pPiMbqMbVBMko3Ns,565
59
69
  cartesia/tts/requests/tts_request_id_specifier.py,sha256=-0ClfyJnnaH0uAcF5r84s3cM_cw2wT39dp6T4JYzOQ8,536
60
70
  cartesia/tts/requests/tts_request_voice_specifier.py,sha256=eGzL4aVGq4gKPxeglsV7-wuhxg8x33Qth3uFTTytgeI,337
@@ -71,7 +81,7 @@ cartesia/tts/requests/web_socket_response.py,sha256=WqZ6RgO4suG78wiVSIsOWwyXBioV
71
81
  cartesia/tts/requests/web_socket_stream_options.py,sha256=VIvblFw9hGZvDzFpOnC11G0NvrFSVt-1-0sY5rpcZPI,232
72
82
  cartesia/tts/requests/web_socket_timestamps_response.py,sha256=MK3zN2Q_PVWJtX5DidNB0uXoF2o33rv6qCYPVaourxY,351
73
83
  cartesia/tts/requests/web_socket_tts_output.py,sha256=pX2uf0XVdziFhXCydwLlVOWb-LvBiuq-cBI6R1INiMg,760
74
- cartesia/tts/requests/web_socket_tts_request.py,sha256=jv8EYSxsjb063uzKjybRRNusmNtfzt516-r2urfG-vU,1101
84
+ cartesia/tts/requests/web_socket_tts_request.py,sha256=i6gwa4bvPPCnS2ZnSnu5FY1bjwjp76Kfi0eTb_atBlI,1215
75
85
  cartesia/tts/requests/word_timestamps.py,sha256=WMfBJtETi6wTpES0pYZCFfFRfEbzWE-RtosDJ5seUWg,261
76
86
  cartesia/tts/socket_client.py,sha256=zTPayHbgy-yQQ50AE1HXN4GMyanisZcLXf7Ds1paYks,11621
77
87
  cartesia/tts/types/__init__.py,sha256=yV_-DY9EPNAFEfuIk3wgRLcc4Ta5igv0T5g-IIQ53v0,3251
@@ -80,7 +90,7 @@ cartesia/tts/types/context_id.py,sha256=UCEtq5xFGOeBCECcY6Y-gYVe_Peg1hFhH9YYOkpA
80
90
  cartesia/tts/types/controls.py,sha256=H4CSu79mM1Ld4NZx_5uXw3EwRzTEMQRxKBRvFpcFb8Y,644
81
91
  cartesia/tts/types/emotion.py,sha256=zocyDcHTiFFnNRgo2YLMi70iGyffa080B4mkg9lcqVc,764
82
92
  cartesia/tts/types/flush_id.py,sha256=HCIKo9o8d7YWKtaSNU3TEvfUVBju93ckGQy01Z9wLcE,79
83
- cartesia/tts/types/generation_request.py,sha256=Ig14IIulKgsHtIoRmfrov-U0jpYWQqOjCAUt5Fk20z4,2476
93
+ cartesia/tts/types/generation_request.py,sha256=HfMLj_HOCeKy5p_yLcltvrJly9WNkzoNCxarwlLE7Nw,3732
84
94
  cartesia/tts/types/mp_3_output_format.py,sha256=0WGblkuDUL7pZO1aRuQ_mU2Z5gN9xIabRfRKkjtzms8,731
85
95
  cartesia/tts/types/natural_specifier.py,sha256=K526P1RRuBGy80hyd_tX8tohPrE8DR9EgTCxS5wce0o,188
86
96
  cartesia/tts/types/numerical_specifier.py,sha256=tJpIskWO545luCKMFM9JlVc7VVhBhSvqL1qurhzL9cI,92
@@ -90,7 +100,7 @@ cartesia/tts/types/raw_encoding.py,sha256=eyc2goiYOTxWcuKHAgYZ2SrnfePW22Fbmc-5fG
90
100
  cartesia/tts/types/raw_output_format.py,sha256=jZGVaS0KIi9mU6trfskgA3HbMKJolhrwICnuDhF01ic,673
91
101
  cartesia/tts/types/speed.py,sha256=4c5WdxocBw6WSMnundSaNnceUeooU0vikhy00FW6M-w,239
92
102
  cartesia/tts/types/supported_language.py,sha256=riDRduThMbMWAq9i2uCfxhwVTpgaFwNDZ9LhEIl4zHY,237
93
- cartesia/tts/types/tts_request.py,sha256=MxWcMLxIpotkPiPhFIhdHTtDzYv8yzLJwrwX3kBhkIg,1290
103
+ cartesia/tts/types/tts_request.py,sha256=kUTOjNOZsZivSLbVvLA85EzPNsKCEOnY51NPfUmlDwM,1865
94
104
  cartesia/tts/types/tts_request_embedding_specifier.py,sha256=eL_qCEr4pvWfy4qp9hZBuVdCincX5DBVqfv1vLt2_Vk,942
95
105
  cartesia/tts/types/tts_request_id_specifier.py,sha256=ktGdkkTRQ9scA-lt8qJ2jn_E5WzoOK8AXMrVqi71gf0,906
96
106
  cartesia/tts/types/tts_request_voice_specifier.py,sha256=p-3UQ62uFL1SgbX73Ex1D_V73Ef0wmT1ApOt1iLZmwE,307
@@ -107,7 +117,7 @@ cartesia/tts/types/web_socket_response.py,sha256=mHDECZ4K84QmN2s0IWuBsXBt83Yq7Qx
107
117
  cartesia/tts/types/web_socket_stream_options.py,sha256=MhDSxBFqMuQeWjoyPqXVnTEzLjF8g6aojeigb5dQUgU,596
108
118
  cartesia/tts/types/web_socket_timestamps_response.py,sha256=kuWXI82ncF1QapnaHEjwrL84qWob7ByQU-yh1e0IEmk,667
109
119
  cartesia/tts/types/web_socket_tts_output.py,sha256=uvkv0smTBhdm18Rl17C0Ml4Inh79YBHNzAcKnZBs14Y,979
110
- cartesia/tts/types/web_socket_tts_request.py,sha256=4qp-mPmVZOMlHAr7f8ABMWYS3cy5OWPjxDNeWayU0aE,1429
120
+ cartesia/tts/types/web_socket_tts_request.py,sha256=PzdIyFcj6V9MLwr4rpuh_H3NfEnzq0dHlEv-bKKeTR0,1529
111
121
  cartesia/tts/types/word_timestamps.py,sha256=XZ2Q0prdb3F9c3AiOKXu4s3A3jBxE-qIt1npHOf16R0,631
112
122
  cartesia/tts/utils/constants.py,sha256=1CHa5flJf8--L_eYyOyOiWJNZ-Q81ufHZxDbJs8xYSk,418
113
123
  cartesia/tts/utils/tts.py,sha256=u7PgPxlJs6fcQTfr-jqAvBCAaK3JWLhF5QF4s-PwoMo,2093
@@ -120,35 +130,38 @@ cartesia/voice_changer/requests/streaming_response.py,sha256=cV6L9mMY0w2JpJ0xKoF
120
130
  cartesia/voice_changer/types/__init__.py,sha256=qAiHsdRpnFeS0lBkYp_NRrhSJiRXCg5-uFibqDWzYVU,430
121
131
  cartesia/voice_changer/types/output_format_container.py,sha256=RqLDELdgeOjYqNTJX1Le62qjiFiJGxf0cYnol88-LLM,166
122
132
  cartesia/voice_changer/types/streaming_response.py,sha256=rQ4ZehtOHsCBKijyULz_ahGQYNj1yus6AM6u2wgcBsI,1963
123
- cartesia/voices/__init__.py,sha256=ipS0rBobAU31yoJEbZ-2LcENhmmpzjxfzc_h5v3R0zk,1713
124
- cartesia/voices/client.py,sha256=nOmRRJevMyBtmuTNa6aDFWpQXu1GFkjNdfzFrMMwl5k,37160
133
+ cartesia/voices/__init__.py,sha256=2D58Bir45LvcvP08QMnPlFE8DD8BONTjPLkIDdKs7vg,1891
134
+ cartesia/voices/client.py,sha256=B0T1YRjrAX7fssBw1hyq5qpQ2CCf-dC-E9F1-AvwvSs,38949
125
135
  cartesia/voices/requests/__init__.py,sha256=XiBJbSYeQCgFMtwywKvQ0Nmp7Zf_0WskzRhgr9c8h38,1072
126
- cartesia/voices/requests/create_voice_request.py,sha256=HvxxWBwR5RMMMmxEU5Tj5jsDSXnlT0cS-C6AGlMPlr0,509
136
+ cartesia/voices/requests/create_voice_request.py,sha256=r6dKb9ga0ZsAi_6PXuE43u2lLgfQg2DIYjk2Neng7pI,617
127
137
  cartesia/voices/requests/embedding_response.py,sha256=PGZkBD8UBcv2MYQbBXyD4T6lzaE9oSGGwXx-MoXCp0M,228
128
138
  cartesia/voices/requests/embedding_specifier.py,sha256=PAHdGsVmLLeJC2b1fWHWI_OlhogO1WnJdzoX9pj5N8c,282
129
139
  cartesia/voices/requests/get_voices_response.py,sha256=g-ZCaCaLOlZSitcKVhdCtfdKQQz8N3W6E7_wZUNOi5M,747
130
140
  cartesia/voices/requests/id_specifier.py,sha256=UTtoXBEEYaGvg-Dn2QxUDACNB3Vm1O1XbrPtBA3rGzU,252
131
- cartesia/voices/requests/localize_dialect.py,sha256=9mmLHOFbBvWZoU2PyjXozG6hoDpE0uueymXHi0k_VtE,209
132
- cartesia/voices/requests/localize_voice_request.py,sha256=AkY4cvx31MF3_gkqMpUzibGIOh9cNF5cOCf3Yqnm7Vc,549
141
+ cartesia/voices/requests/localize_dialect.py,sha256=OHAInU6IP0LBzIY3VYSiU9bRLjXfr1pGXunsLgv1QHs,497
142
+ cartesia/voices/requests/localize_voice_request.py,sha256=oh828eqYkiticD_lerc8WemN3bW13mLZpfRDiKbG75g,703
133
143
  cartesia/voices/requests/mix_voice_specifier.py,sha256=YjOJ2Qt3nqMQzHsYbF1DnZgmZS9zZepLXpji6V9mfgs,266
134
144
  cartesia/voices/requests/mix_voices_request.py,sha256=6JCzFmWKIS1_t-uSoO1m-FQbLWB1zaykTcGV-1s-RqM,275
135
145
  cartesia/voices/requests/update_voice_request.py,sha256=XxJ6TKO4M2s1kXQAZRj8uA4okIABvmWiFhAHJv4BS0Q,282
136
146
  cartesia/voices/requests/voice.py,sha256=M-4lf4W57fx84_JFOy55b9mWcqO4LfzpY-G_Ekv-2Bo,1031
137
147
  cartesia/voices/requests/voice_metadata.py,sha256=S0jPQtBpEb2WSnYDLQTS7pcbNJpc0d01uWravHaqzso,697
138
- cartesia/voices/types/__init__.py,sha256=fsPgm1Ma1E_iBIKUMseIie9QrcGD-p31_KeMvPMb_KA,1503
148
+ cartesia/voices/types/__init__.py,sha256=yjxMWjoBpwAZ5UJ2iRSC_kKgZvGmqVd09kQxgcTnMac,1782
139
149
  cartesia/voices/types/base_voice_id.py,sha256=nWRC0rvLpjeMpRbLSmUTPziWo1ZrbPxw22l4gEBWp8Q,118
140
150
  cartesia/voices/types/clone_mode.py,sha256=3sR6wdxym4xDVsoHppp3-V9mpDwP9F9fDfMUQKG24xw,160
141
- cartesia/voices/types/create_voice_request.py,sha256=8vfKu6cD_VYFb3GN5gVpxlRUIZALYE-449NbDSnXaDg,911
151
+ cartesia/voices/types/create_voice_request.py,sha256=_q0d8QojmQrpU-Puzd_YvWmiC7cBp_lrbKmTLuknYqQ,1005
142
152
  cartesia/voices/types/embedding_response.py,sha256=B7MJ79HIAnxtiP6OT0tt27KBDYTZ3VU0MLuQfb5qVOg,624
143
153
  cartesia/voices/types/embedding_specifier.py,sha256=cf6JfVnISyrvjWup3oAg-RFdMVRxytem6HLwZgKl3gA,671
144
154
  cartesia/voices/types/gender.py,sha256=OrbTO__3HVNculvkcb5Pz-Yoa-Xv8N_rNMrFoy2DoaA,148
145
155
  cartesia/voices/types/gender_presentation.py,sha256=rM8pSurYCSH0AGgLsVpVAPp7uz7TQMM1nPa7-Vus7gw,185
146
156
  cartesia/voices/types/get_voices_response.py,sha256=c6KMkmJepTUmT7I6tAVOGrPst2kkXxDCXLIf1AnR9NE,1136
147
157
  cartesia/voices/types/id_specifier.py,sha256=yAY-uc9hRJkHXdsSfRZWkE8ga2Sb-KVipOTSXa8Wmp0,634
148
- cartesia/voices/types/localize_dialect.py,sha256=tRckNEq4EsdYPondF1rrjOrYRZUSL6WW_3627cFwG1I,196
158
+ cartesia/voices/types/localize_dialect.py,sha256=6JpJKeQvtDjCT2n-5yaGOe3D-4nYqUoYrvcCSE2Zxik,463
149
159
  cartesia/voices/types/localize_english_dialect.py,sha256=0PjZNjQv5ll2wWZxGveQIYCUGLtGDVELK9FBWFe7SNc,176
160
+ cartesia/voices/types/localize_french_dialect.py,sha256=aMhqLi_5goAaSGZguZIFOwQ9Yqh5ApL6gS3cDI315lQ,157
161
+ cartesia/voices/types/localize_portuguese_dialect.py,sha256=6dcThK1qWyS3c-W--3Zz7HK5ixS0qslEWrVQmKSrl9E,161
162
+ cartesia/voices/types/localize_spanish_dialect.py,sha256=h-H52vk0MBOvJqlzPVPgajfQU6oxpTzHoQAKmSDyaC4,158
150
163
  cartesia/voices/types/localize_target_language.py,sha256=ttngtFVpMvuWAKQztJu_pCaf7V62DzmNq9zthPCb2LI,242
151
- cartesia/voices/types/localize_voice_request.py,sha256=roZkcA7LiYs_L1R9FgTCTIgmHv9TUfXZMgLEnrajJ3I,887
164
+ cartesia/voices/types/localize_voice_request.py,sha256=gvjg292kMgji0L9TNO3VqDS0pHO1vGJUcf0l_vEW_5Y,1098
152
165
  cartesia/voices/types/mix_voice_specifier.py,sha256=B0FE6UREGk1TxlN0GOPwyCuqJbMkWVUs0EFqiJuQfZ8,236
153
166
  cartesia/voices/types/mix_voices_request.py,sha256=R_8bmUmE1br4wmfH1Qu6EnL9uC-V1z5BV3_B7u51EOw,641
154
167
  cartesia/voices/types/update_voice_request.py,sha256=_CEH8nuSZn2qZa9xZlANZXOhJd49XLel3dRy2dfOvr8,716
@@ -157,6 +170,6 @@ cartesia/voices/types/voice_expand_options.py,sha256=e4FroWdlxEE-LXQfT1RWlGHtswl
157
170
  cartesia/voices/types/voice_id.py,sha256=GDoXcRVeIm-V21R4suxG2zqLD3DLYkXE9kgizadzFKo,79
158
171
  cartesia/voices/types/voice_metadata.py,sha256=4KNGjXMUKm3niv-NvKIFVGtiilpH13heuzKcZYNQxk4,1181
159
172
  cartesia/voices/types/weight.py,sha256=XqDU7_JItNUb5QykIDqTbELlRYQdbt2SviRgW0w2LKo,80
160
- cartesia-2.0.0b7.dist-info/METADATA,sha256=8sWG16O3-gGLZWHd8FrRQRru7cKLH4RiHCr0uEWzqd0,10895
161
- cartesia-2.0.0b7.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
162
- cartesia-2.0.0b7.dist-info/RECORD,,
173
+ cartesia-2.0.2.dist-info/METADATA,sha256=EB_DtN2AaHi0snXgpbisp2T1nsTQ7CQlR3S1rowO8L0,11206
174
+ cartesia-2.0.2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
175
+ cartesia-2.0.2.dist-info/RECORD,,