Todos os produtos
Search
Central de documentação

Intelligent Media Services:Acesse modelos TTS

Última atualização: Jun 28, 2026

Integre um modelo TTS próprio a um fluxo de trabalho em tempo real implantando um endpoint de streaming HTTPS que aceita texto e retorna áudio.

Como funciona

  1. Configure o nó TTS no console com sua URL HTTPS, token e taxa de amostragem.

  2. Inicie o fluxo de trabalho em tempo real. A cada solicitação TTS, o fluxo envia uma requisição POST com o texto, a voz, a taxa de amostragem e os metadados da sessão para seu endpoint.

  3. O servidor TTS gera o áudio e o transmite como resposta HTTP.

  4. O fluxo de trabalho encaminha os blocos de áudio aos nós subsequentes em tempo real.

Pré-requisitos

Antes de começar:

  • O modelo TTS deve estar acessível pela Internet via HTTPS.

  • O servidor HTTP deve oferecer suporte a respostas em streaming.

  • Um modelo de fluxo de trabalho com um nó TTS criado.

Configure o nó TTS

Defina os seguintes parâmetros no nó TTS:

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

Request URL

String

Sim

URL HTTPS do endpoint do modelo TTS.

https://www.abc.com

Token

String

Não

Token de autorização enviado com cada solicitação.

AUJH-pfnTNMPBm6iWXcJAcWsrscb5KYaLitQhHBLKrI

Sample rate

Integer

Sim

Taxa de amostragem de áudio em Hz. Valores válidos: 8000, 16000, 24000, 48000.

48000

Nota

Somente áudio mono S16LE (Signed 16-bit Little-Endian) é suportado. Se o modelo usar outro formato, reamostre a saída para S16LE.

Parâmetros da solicitação

Durante a execução, o fluxo de trabalho envia uma requisição POST ao endpoint com o seguinte corpo JSON:

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

Text

String

Sim

Texto para sintetizar em fala.

Hello

VoiceId

String

Não

Identificador de voz do modelo TTS.

<your-voice-id>

SampleRate

Integer

Sim

Taxa de amostragem em Hz. Corresponde ao valor configurado no console.

48000

Token

String

Não

Token de autorização. Corresponde ao valor configurado no console.

AUJH-pfnTNMPBm6iWXcJAcWsrscb5KYaLitQhHBLKrI

ExtendData

String

Sim

String JSON com metadados da sessão e dados comerciais personalizados. Consulte Campos de ExtendData.

Veja abaixo

Campos de ExtendData

O campo ExtendData contém as seguintes informações:

Campo

Tipo

Obrigatório

Descrição

Exemplo

InstanceId

String

Sim

ID da instância do agente inteligente.

68e00b6640e*****3e943332fee7

ChannelId

String

Sim

ID do canal de comunicação.

123

SentenceId

Int

Sim

ID da sessão de perguntas e respostas. Todas as respostas a uma única consulta do usuário compartilham o mesmo SentenceId.

3

Emotion

String

Não

Emoção da fala sintetizada. Valores válidos: neutral, happy, sad. Se omitido, nenhuma emoção será aplicada.

happy

UserData

String

Não

Dados comerciais personalizados transmitidos na inicialização da instância do agente inteligente.

{"aaaa":"bbbb"}

**Exemplo de valor para ExtendData:**

{
  "InstanceId": "68e00b6640e*****3e943332fee7",
  "ChannelId": "123",
  "SentenceId": "3",
  "Emotion": "happy",
  "UserData": "{\"aaaa\":\"bbbb\"}"
}

Requisitos de resposta

O servidor TTS deve retornar áudio correspondente ao tom e à taxa de amostragem solicitados como resposta HTTP em streaming. Menor latência de streaming melhora diretamente o desempenho de ponta a ponta.

Exemplo de servidor TTS

Python

Utiliza aiohttp para implementar um servidor TTS com streaming no endpoint /stream-audio.

from aiohttp import web

async def stream_audio(request):
    data = await request.json()
    text = data.get('Text', "")
    token = data.get('Token', None)
    sample_rate = data.get('SampleRate', 48000)
    extend_data = data.get('ExtendData', "")
    print(f"text:{text}, token:{token}, sample_rate:{sample_rate}, extend_data:{extend_data}")
    # Validate the token here.

    response = web.StreamResponse(
        status=200,
        reason='OK',
        headers={'Content-Type': 'audio/mpeg'}
    )

    # Start the streaming response.
    await response.prepare(request)

    # generate_tts_data is a coroutine that yields audio chunks.
    async for chunk in generate_tts_data(text, sample_rate):
        await response.write(chunk)

    # Signal the end of the response.
    await response.write_eof()

    return response

async def generate_tts_data(text: str, sample_rate: int):
    # Replace this with your TTS model inference logic.
    # This example reads audio data from a local PCM file.
    file_path = '/your_dir/sample.pcm'
    with open(file_path, 'rb') as f:
        while True:
            chunk = f.read(4096)  # Read 4 KB per chunk.
            if not chunk:
                break
            yield chunk

app = web.Application()
app.add_routes([web.post('/stream-audio', stream_audio)])

if __name__ == '__main__':
    web.run_app(app)

Em produção, substitua generate_tts_data pela lógica de inferência do modelo e atualize /your_dir/sample.pcm para o caminho real do arquivo de áudio.

Referências