Série ElevenLabs
Os modelos de voz da ElevenLabs, dois no total: Eleven v4 para síntese de voz e Scribe v2 para transcrição de voz. Ambos são chamados pelos endpoints de áudio compatíveis com OpenAI.
elevenlabs/eleven_v4POST /v1/audio/speechelevenlabs/scribe_v2POST /v1/audio/transcriptionsOs parâmetros gerais dos endpoints estão em Audio Speech API e Audio Transcriptions API. Os preços atualizados estão na página do modelo : a síntese de voz é cobrada por caractere e a transcrição, pela duração do áudio.
Síntese de voz com Eleven v4
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"])
with client.audio.speech.with_streaming_response.create(
model="elevenlabs/eleven_v4",
voice="21m00Tcm4TlvDq8ikWAM",
input="Olá, boas-vindas à síntese de voz da OfoxAI.",
response_format="mp3",
) as resp:
resp.stream_to_file("speech.mp3")Nos testes, uma frase em chinês de cerca de 20 caracteres retornou em cerca de 2 segundos, gerando cerca de 4 segundos de áudio.
Transcrição de voz com Scribe v2
Além do texto transcrito, o Scribe v2 retorna os tempos de início e fim de cada palavra e consegue identificar falantes diferentes.
Python
import json
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"])
with open("meeting.mp3", "rb") as f:
result = client.audio.transcriptions.create(
model="elevenlabs/scribe_v2",
file=f,
extra_body={"provider_options": json.dumps({"elevenlabs": {"diarize": True}})},
)
print(result.text)
for w in (result.model_extra or {}).get("words", [])[:10]:
print(w.get("speaker"), w["start"], w["end"], w["word"])Estrutura da resposta:
- A separação de falantes é ativada por
provider_options:{"elevenlabs": {"diarize": true}}, enviado como string JSON em um campo do formulário. response_formataceitajsoneverbose_json, que retornam o mesmo conteúdo. Se precisar de um arquivo de legendas, gere-o a partir dos timestamps emwords.
Erros comuns
Mais erros em Audio Speech API e Audio Transcriptions API.
Documentação oficial
Perguntas frequentes
O que informar em voice na ElevenLabs?
Informe o ID da voz (20 caracteres), por exemplo 21m00Tcm4TlvDq8ikWAM, que pode ser encontrado na biblioteca de vozes da ElevenLabs. Informar o nome da voz (por exemplo, Rachel) ou o alloy da OpenAI retorna 404 voice_id not found.
Quais formatos de áudio o Eleven v4 suporta?
mp3 (padrão), opus, wav e pcm. aac e flac não são suportados.
O Scribe v2 consegue distinguir falantes?
Sim. Envie {"elevenlabs": {"diarize": true}} por provider_options; cada palavra em words na resposta terá um campo speaker, por exemplo speaker_0, speaker_1.
O Scribe v2 pode gerar legendas srt diretamente?
Não. response_format aceita apenas json e verbose_json. Gere as legendas a partir dos timestamps start e end em words na resposta.
Como é cobrada a voz da ElevenLabs?
O Eleven v4 é cobrado pelo número de caracteres de entrada e o Scribe v2, pela duração do áudio. Os preços unitários estão na página do modelo.