Skip to content

TTS

Os endpoints de TTS permitem a interação com os modelos de síntese de fala disponíveis na plataforma SipPulse AI. Você pode obter uma lista de todos os modelos disponíveis, gerar áudio a partir de texto, e baixar ou transmitir o áudio gerado.

Endpoints

GET /tts/models

Este endpoint retorna uma lista de todos os modelos de TTS disponíveis.

Parâmetros de Consulta

  • status (opcional): O status dos modelos. Pode ser active ou inactive. O padrão é active.

Exemplo de Requisição

bash
curl -X 'GET' \
  'https://api.sippulse.ai/v1/tts/models' \
  -H 'Content-Type: application/json' \
  -H 'api-key: $SIPPULSE_API_KEY'
python
import requests

url = "https://api.sippulse.ai/v1/tts/models"
headers = {
    "Content-Type": "application/json",
    "api-key": "SIPPULSE_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())
javascript
const url = "https://api.sippulse.ai/v1/tts/models";
const headers = {
  "Content-Type": "application/json",
  "api-key": "SIPPULSE_API_KEY",
};

fetch(url, {
  method: "GET",
  headers: headers,
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error("Error:", error));

Exemplo de Resposta

json
[
  {
    "name": "azure-tts",
    "status": "active"
  }
]

GET /tts/azure/voices

Este endpoint retorna uma lista de todas as vozes disponíveis para o modelo azure-tts.

Exemplo de Requisição

bash
curl -X 'GET' \
  'https://api.sippulse.ai/v1/tts/azure/voices' \
  -H 'Content-Type: application/json
  -H 'api-key: $SIPPULSE_API_KEY'
python
import requests

url = "https://api.sippulse.ai/v1/tts/azure/voices"
headers = {
    "Content-Type": "application
    "api-key": "SIPPULSE_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())
javascript
const url = "https://api.sippulse.ai/v1/tts/azure/voices";

const headers = {
  "Content-Type": "application/json",
  "api-key": "SIPPULSE_API_KEY",
};

fetch(url, {
  method: "GET",
  headers: headers,
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error("Error:", error));

Exemplo de Resposta

json
[
  "af-ZA-AdriNeural",
  "af-ZA-WillemNeural",
  "am-ET-MekdesNeural",
  "am-ET-AmehaNeural",
  "ar-AE-FatimaNeural",
  "ar-AE-HamdanNeural",
  "ar-BH-LailaNeural",
  "ar-BH-AliNeural"
  //...
]

POST /tts/generate

Este endpoint gera um arquivo de áudio a partir de um texto usando o modelo especificado.

Corpo da Requisição

json
{
  "model": "string", // Nome do modelo a ser usado
  "text": "string", // Texto a ser convertido em fala
  "voice": "string", // Voz a ser usada para a conversão
  "output_format": 5 // (opcional) Formato de saída do áudio
}

Vozes Disponíveis

Caso o modelo seja azure-tts, o campo voice deve ser uma das vozes disponíveis para o modelo. Para obter a lista de vozes disponíveis, consulte o endpoint GET /tts/azure/voices.

Formatos de Saída

O campo output_format é opcional e só é necessário se o modelo for azure-tts. Para obter mais informações sobre os formatos de saída disponíveis, consulte a documentação da Microsoft.

Exemplo de Requisição

bash
curl -X 'POST' \
  'https://api.sippulse.ai/v1/tts/generate' \
  -H 'Content-Type: application/json' \
  -H 'api-key: $SIPPULSE_API_KEY' \
  -d '{
  "model": "azure-tts",
  "text": "Olá, bem-vindo ao SipPulse AI.",
  "voice": "pt-BR-FranciscaNeural",
  "output_format": 5
}'
python
import requests
import json

url = "https://api.sippulse.ai/v1/tts/generate"
headers = {
    "Content-Type": "application/json",
    "api-key": "SIPPULSE_API_KEY"
}
data = {
    "model": "azure-tts",
    "text": "Olá, bem-vindo ao SipPulse AI.",
    "voice": "pt-BR-FranciscaNeural",
    "output_format": 5
}

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())
javascript
const url = "https://api.sippulse.ai/v1/tts/generate";
const headers = {
  "Content-Type": "application/json",
  "api-key": "SIPPULSE_API_KEY",
};
const data = {
  model: "azure-tts",
  text: "Olá, bem-vindo ao SipPulse AI.",
  voice: "pt-BR-FranciscaNeural",
  output_format: 5,
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(data),
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error("Error:", error));

Exemplo de Resposta

json
{
  "filename": "tts_output.mp3",
  "cache": false,
  "usage": 10,
  "unit": "characters",
  "stream": "https://api.sippulse.ai/v1/tts/stream/tts_output.mp3",
  "download": "https://api.sippulse.ai/v1/tts/download/tts_output.mp3"
}

GET /tts/download/

Este endpoint permite baixar um arquivo de áudio gerado.

Parâmetros de Caminho

  • filename (obrigatório): O nome do arquivo de áudio a ser baixado.

Exemplo de Requisição

bash
curl -X 'GET' \
  'https://api.sippulse.ai/v1/tts/download/tts_output.mp3' \
  -H 'api-key: $SIPPULSE_API_KEY'
python
import requests

url = "https://api.sippulse.ai/v1/tts/download/tts_output.mp3"
headers = {
    "api-key": "SIPPULSE_API_KEY"
}

response = requests.get(url, headers=headers)
with open("tts_output.mp3", "wb") as f:
    f.write(response.content)
javascript
const fs = require("fs");

const url = "https://api.sippulse.ai/v1/tts/download/tts_output.mp3";
const headers = {
  "api-key": "SIPPULSE_API_KEY",
};

fetch(url, {
  method: "GET",
  headers: headers,
})
  .then((response) => response.buffer())
  .then((data) => fs.writeFileSync("tts_output.mp3", data))
  .catch((error) => console.error("Error:", error));

GET /tts/stream/

Este endpoint permite transmitir um arquivo de áudio gerado.

Parâmetros de Caminho

  • filename (obrigatório): O nome do arquivo de áudio a ser transmitido.

Exemplo de Requisição

bash
curl -X 'GET' \
  'https://api.sippulse.ai/v1/tts/stream/tts_output.mp3' \
  -H 'api-key: $SIPPULSE_API_KEY'
python
import requests

url = "https://api.sippulse.ai/v1/tts/stream/tts_output.mp3"
headers = {
    "api-key": "SIPPULSE_API_KEY"
}

response = requests.get(url, headers=headers, stream=True)
with open("tts_output.mp3", "wb") as f:
    for chunk in response.iter_content(chunk_size=8192):
        f.write(chunk)
javascript
const fs = require("fs");

const url = "https://api.sippulse.ai/v1/tts/stream/tts_output.mp3";
const headers = {
  "api-key": "SIPPULSE_API_KEY",
};

fetch(url, {
  method: "GET",
  headers: headers,
})
  .then((response) =>
    response.body.pipe(fs.createWriteStream("tts_output.mp3"))
  )
  .catch((error) => console.error("Error:", error));

Conclusão

Os endpoints de TTS da SipPulse AI oferecem uma forma poderosa de converter texto em áudio e integrar essas funcionalidades em suas aplicações. Utilize as informações e exemplos fornecidos para começar a explorar e implementar essas funcionalidades em seus projetos.