Ir para a navegação

Unindo várias solicitações

Este guia mostra como manter a prosódia da voz em vários trechos/gerações de texto.

Guia prático · Pressupõe que você concluiu o guia de início rápido da ElevenAPI .

Ao converter um grande volume de texto em áudio, você pode encontrar mudanças abruptas na prosódia de um trecho para outro. Isso pode ser especialmente perceptível ao converter textos que abrangem vários parágrafos ou seções. Para manter a prosódia da voz em vários trechos, você pode usar o recurso de Junção de Solicitações.

Esse recurso permite fornecer contexto sobre o que já foi gerado e o que será gerado no futuro, ajudando a manter uma voz e prosódia consistentes em todo o texto.

A junção de solicitações não está disponível para o modelo eleven_v3.

Veja um exemplo sem Junção de Solicitações:

E o mesmo exemplo com Junção de Solicitações:

Como usar a Junção de Solicitações

A Junção de Solicitações é mais fácil de usar com os SDKs da ElevenLabs.

Este guia pressupõe que você já configurou sua chave de API e o SDK. Conclua o guia de início rápido primeiro, caso ainda não tenha feito isso.

1

Unir várias solicitações

Crie um novo arquivo chamado example.py ou example.mts, dependendo da linguagem que você escolher, e adicione o código a seguir:

Você pode fornecer no máximo 3 IDs de solicitação em previous_request_ids. Solicitações com mais IDs retornam um erro 400. Passe os 3 IDs mais recentes, com a solicitação mais próxima da atual por último.

import os
from io import BytesIO
from elevenlabs.client import ElevenLabs
from elevenlabs.play import play
from dotenv import load_dotenv
load_dotenv()
ELEVENLABS_API_KEY = os.getenv("ELEVENLABS_API_KEY")
elevenlabs = ElevenLabs(
api_key=ELEVENLABS_API_KEY,
)
paragraphs = [
"The advent of technology has transformed countless sectors, with education ",
"standing out as one of the most significantly impacted fields.",
"In recent years, educational technology, or EdTech, has revolutionized the way ",
"teachers deliver instruction and students absorb information.",
"From interactive whiteboards to individual tablets loaded with educational software, ",
"technology has opened up new avenues for learning that were previously unimaginable.",
"One of the primary benefits of technology in education is the accessibility it provides.",
]
request_ids = []
audio_buffers = []
for paragraph in paragraphs:
# Usually we get back a stream from the convert function, but with_raw_response is
# used to get the headers from the response
with elevenlabs.text_to_speech.with_raw_response.convert(
text=paragraph,
voice_id="T7QGPtToiqH4S8VlIkMJ",
model_id="eleven_v4",
# The API accepts at most 3 previous request IDs
previous_request_ids=request_ids[-3:]
) as response:
request_ids.append(response._response.headers.get("request-id"))
# response._response.headers also contains useful information like 'character-cost',
# which shows the cost of the generation in characters.
audio_data = b''.join(chunk for chunk in response.data)
audio_buffers.append(BytesIO(audio_data))
combined_stream = BytesIO(b''.join(buffer.getvalue() for buffer in audio_buffers))
play(combined_stream)
2

Execute o código

python example.py

Você deve ouvir o áudio unido ser reproduzido.

Perguntas frequentes

Para usar os IDs de solicitação de uma solicitação anterior como condicionamento, ela precisa ter sido totalmente processada. No caso de streaming, isso significa que o áudio precisa ser lido por completo do corpo da resposta.

A diferença depende do modelo, da voz e das configurações de voz usadas.

Os IDs de solicitação não devem ter mais de duas horas.

Sim, a menos que você seja um usuário empresarial com requisitos de privacidade mais rigorosos.

Próximas etapas