Skip to content

Commit 42a49ad

Browse files
committed
SDK regeneration
1 parent b9c7fd9 commit 42a49ad

10 files changed

+359
-57
lines changed

src/elevenlabs/__init__.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
BatchCallRecipientStatus,
5757
BatchCallResponse,
5858
BatchCallStatus,
59-
BodyComposeMusicWithADetailedResponseV1MusicDetailedPost,
6059
BodyGenerateARandomVoiceV1VoiceGenerationGenerateVoicePostAge,
6160
BodyGenerateARandomVoiceV1VoiceGenerationGenerateVoicePostGender,
6261
BreakdownTypes,
@@ -769,7 +768,11 @@
769768
from .dubbing import DubbingListRequestDubbingStatus, DubbingListRequestFilterByCreator
770769
from .environment import ElevenLabsEnvironment
771770
from .history import HistoryListRequestSource
772-
from .music import MusicComposeRequestOutputFormat, MusicStreamRequestOutputFormat
771+
from .music import (
772+
MusicComposeDetailedRequestOutputFormat,
773+
MusicComposeRequestOutputFormat,
774+
MusicStreamRequestOutputFormat,
775+
)
773776
from .play import play, save, stream
774777
from .pronunciation_dictionaries import (
775778
BodyAddAPronunciationDictionaryV1PronunciationDictionariesAddFromRulesPostRulesItem,
@@ -886,7 +889,6 @@
886889
"BodyAddAPronunciationDictionaryV1PronunciationDictionariesAddFromRulesPostRulesItem_Alias",
887890
"BodyAddAPronunciationDictionaryV1PronunciationDictionariesAddFromRulesPostRulesItem_Phoneme",
888891
"BodyAddAPronunciationDictionaryV1PronunciationDictionariesAddFromRulesPostWorkspaceAccess",
889-
"BodyComposeMusicWithADetailedResponseV1MusicDetailedPost",
890892
"BodyCreatePodcastV1StudioPodcastsPostDurationScale",
891893
"BodyCreatePodcastV1StudioPodcastsPostMode",
892894
"BodyCreatePodcastV1StudioPodcastsPostMode_Bulletin",
@@ -1270,6 +1272,7 @@
12701272
"ModerationStatusResponseModelSafetyStatus",
12711273
"ModerationStatusResponseModelWarningStatus",
12721274
"MultichannelSpeechToTextResponseModel",
1275+
"MusicComposeDetailedRequestOutputFormat",
12731276
"MusicComposeRequestOutputFormat",
12741277
"MusicPrompt",
12751278
"MusicStreamRequestOutputFormat",

src/elevenlabs/core/client_wrapper.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ def __init__(self, *, api_key: typing.Optional[str] = None, base_url: str, timeo
1414

1515
def get_headers(self) -> typing.Dict[str, str]:
1616
headers: typing.Dict[str, str] = {
17-
"User-Agent": "elevenlabs/v2.10.0",
17+
"User-Agent": "elevenlabs/v2.11.0",
1818
"X-Fern-Language": "Python",
1919
"X-Fern-SDK-Name": "elevenlabs",
20-
"X-Fern-SDK-Version": "v2.10.0",
20+
"X-Fern-SDK-Version": "v2.11.0",
2121
}
2222
if self._api_key is not None:
2323
headers["xi-api-key"] = self._api_key

src/elevenlabs/music/__init__.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,16 @@
22

33
# isort: skip_file
44

5-
from .types import MusicComposeRequestOutputFormat, MusicStreamRequestOutputFormat
5+
from .types import (
6+
MusicComposeDetailedRequestOutputFormat,
7+
MusicComposeRequestOutputFormat,
8+
MusicStreamRequestOutputFormat,
9+
)
610
from . import composition_plan
711

8-
__all__ = ["MusicComposeRequestOutputFormat", "MusicStreamRequestOutputFormat", "composition_plan"]
12+
__all__ = [
13+
"MusicComposeDetailedRequestOutputFormat",
14+
"MusicComposeRequestOutputFormat",
15+
"MusicStreamRequestOutputFormat",
16+
"composition_plan",
17+
]

src/elevenlabs/music/client.py

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from ..types.music_prompt import MusicPrompt
88
from .composition_plan.client import AsyncCompositionPlanClient, CompositionPlanClient
99
from .raw_client import AsyncRawMusicClient, RawMusicClient
10+
from .types.music_compose_detailed_request_output_format import MusicComposeDetailedRequestOutputFormat
1011
from .types.music_compose_request_output_format import MusicComposeRequestOutputFormat
1112
from .types.music_stream_request_output_format import MusicStreamRequestOutputFormat
1213

@@ -83,6 +84,59 @@ def compose(
8384
) as r:
8485
yield from r.data
8586

87+
def compose_detailed(
88+
self,
89+
*,
90+
output_format: typing.Optional[MusicComposeDetailedRequestOutputFormat] = None,
91+
prompt: typing.Optional[str] = OMIT,
92+
music_prompt: typing.Optional[MusicPrompt] = OMIT,
93+
composition_plan: typing.Optional[MusicPrompt] = OMIT,
94+
music_length_ms: typing.Optional[int] = OMIT,
95+
model_id: typing.Optional[typing.Literal["music_v1"]] = OMIT,
96+
request_options: typing.Optional[RequestOptions] = None,
97+
) -> typing.Iterator[bytes]:
98+
"""
99+
Compose a song from a prompt or a composition plan.
100+
101+
Parameters
102+
----------
103+
output_format : typing.Optional[MusicComposeDetailedRequestOutputFormat]
104+
Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.
105+
106+
prompt : typing.Optional[str]
107+
A simple text prompt to generate a song from. Cannot be used in conjunction with `composition_plan`.
108+
109+
music_prompt : typing.Optional[MusicPrompt]
110+
A music prompt. Deprecated. Use `composition_plan` instead.
111+
112+
composition_plan : typing.Optional[MusicPrompt]
113+
A detailed composition plan to guide music generation. Cannot be used in conjunction with `prompt`.
114+
115+
music_length_ms : typing.Optional[int]
116+
The length of the song to generate in milliseconds. Used only in conjunction with `prompt`. Must be between 10000ms and 300000ms. Optional - if not provided, the model will choose a length based on the prompt.
117+
118+
model_id : typing.Optional[typing.Literal["music_v1"]]
119+
The model to use for the generation.
120+
121+
request_options : typing.Optional[RequestOptions]
122+
Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response.
123+
124+
Returns
125+
-------
126+
typing.Iterator[bytes]
127+
Successful Response
128+
"""
129+
with self._raw_client.compose_detailed(
130+
output_format=output_format,
131+
prompt=prompt,
132+
music_prompt=music_prompt,
133+
composition_plan=composition_plan,
134+
music_length_ms=music_length_ms,
135+
model_id=model_id,
136+
request_options=request_options,
137+
) as r:
138+
yield from r.data
139+
86140
def stream(
87141
self,
88142
*,
@@ -207,6 +261,60 @@ async def compose(
207261
async for _chunk in r.data:
208262
yield _chunk
209263

264+
async def compose_detailed(
265+
self,
266+
*,
267+
output_format: typing.Optional[MusicComposeDetailedRequestOutputFormat] = None,
268+
prompt: typing.Optional[str] = OMIT,
269+
music_prompt: typing.Optional[MusicPrompt] = OMIT,
270+
composition_plan: typing.Optional[MusicPrompt] = OMIT,
271+
music_length_ms: typing.Optional[int] = OMIT,
272+
model_id: typing.Optional[typing.Literal["music_v1"]] = OMIT,
273+
request_options: typing.Optional[RequestOptions] = None,
274+
) -> typing.AsyncIterator[bytes]:
275+
"""
276+
Compose a song from a prompt or a composition plan.
277+
278+
Parameters
279+
----------
280+
output_format : typing.Optional[MusicComposeDetailedRequestOutputFormat]
281+
Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.
282+
283+
prompt : typing.Optional[str]
284+
A simple text prompt to generate a song from. Cannot be used in conjunction with `composition_plan`.
285+
286+
music_prompt : typing.Optional[MusicPrompt]
287+
A music prompt. Deprecated. Use `composition_plan` instead.
288+
289+
composition_plan : typing.Optional[MusicPrompt]
290+
A detailed composition plan to guide music generation. Cannot be used in conjunction with `prompt`.
291+
292+
music_length_ms : typing.Optional[int]
293+
The length of the song to generate in milliseconds. Used only in conjunction with `prompt`. Must be between 10000ms and 300000ms. Optional - if not provided, the model will choose a length based on the prompt.
294+
295+
model_id : typing.Optional[typing.Literal["music_v1"]]
296+
The model to use for the generation.
297+
298+
request_options : typing.Optional[RequestOptions]
299+
Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response.
300+
301+
Returns
302+
-------
303+
typing.AsyncIterator[bytes]
304+
Successful Response
305+
"""
306+
async with self._raw_client.compose_detailed(
307+
output_format=output_format,
308+
prompt=prompt,
309+
music_prompt=music_prompt,
310+
composition_plan=composition_plan,
311+
music_length_ms=music_length_ms,
312+
model_id=model_id,
313+
request_options=request_options,
314+
) as r:
315+
async for _chunk in r.data:
316+
yield _chunk
317+
210318
async def stream(
211319
self,
212320
*,

0 commit comments

Comments
 (0)