Forma de onda
A geração de forma de onda transforma um arquivo de áudio na imagem do seu som: aquele desenho de picos e vales usado em players, posts e audiogramas. Você envia a gravação pela API e recebe o gráfico pronto — útil para quem publica podcast, corta trechos ou monta peças visuais a partir de áudio.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
O desenho que todo player mostra
A forma de onda é o retrato do som: picos onde a voz sobe, vales nos silêncios, blocos densos onde entra a música. É o desenho que aparece no player de qualquer aplicativo de áudio — inclusive nas mensagens de voz que você recebe todo dia. Além de bonita, ela é informativa: num olhar, dá para ver onde a gravação tem pausas longas, onde o volume estoura e onde o episódio realmente começa. Esta tarefa gera essa imagem a partir de qualquer arquivo de áudio, por chamada de API.
Áudio não aparece no feed — o audiograma resolve
Rede social é território visual: um episódio de podcast publicado como link puro passa despercebido no feed. O audiograma — aquele card ou vídeo com a forma de onda desenhada sobre a capa — virou o formato padrão de divulgar áudio no Instagram e no TikTok, justamente porque dá rosto a algo que não tem imagem. A forma de onda gerada aqui é a matéria-prima dessa peça: você recebe o gráfico do trecho escolhido e monta o card no seu editor de sempre, com a identidade visual do seu programa.
Em série, direto do seu sistema
O fluxo é de API: seu sistema envia o arquivo, o motor — baseado em ffmpeg, o padrão da indústria audiovisual — percorre o áudio e devolve a imagem da forma de onda. Por ser uma chamada, a geração entra em qualquer rotina automática: cada episódio novo do acervo ganha sua imagem sem que ninguém abra editor, cada áudio recebido numa plataforma ganha a pré-visualização do player na hora do envio. Arquivos de até 200 MB e 180 minutos entram numa chamada só.
Preço publicado — e um aviso honesto
A cobrança é por uso, sem mensalidade: US$ 0,077 pela chamada mais US$ 0,0045 por minuto de áudio processado. Um episódio de uma hora, portanto, sai por menos de US$ 0,35. Dois avisos antes de você planejar: a capacidade está marcada como beta e ainda em fase de implantação — a página já publica especificação, limites e preço, mas a execução ainda não abriu. O que está escrito aqui é o que vai valer quando abrir.
Casos de uso
Audiograma do episódio da semana
Um podcast independente de Belo Horizonte corta o melhor minuto do episódio, gera a forma de onda do trecho e monta o card de divulgação para o Instagram. A identidade do programa se mantém — só muda o desenho do som de cada semana.
Player com cara de player
A TecnoSul Soluções Digitais mantém uma plataforma de depoimentos em áudio. A cada gravação enviada, o sistema gera a forma de onda e mostra o desenho no player da página — o visitante vê o que vai ouvir antes de apertar o play.
Mapa visual de gravações longas
Uma produtora recebe entrevistas de duas horas para editar. Antes de abrir o material, gera a forma de onda de cada arquivo e enxerga de cara onde estão os silêncios, as risadas e os picos — o mapa que orienta os cortes.
Acervo com miniatura
Um site de aulas em áudio gera a imagem de cada gravação no momento do envio e usa como miniatura na biblioteca. Centenas de arquivos ganham identidade visual sem nenhum trabalho manual de design.
Perguntas frequentes
O resultado é uma imagem pronta para usar?
Sim: a resposta da tarefa é a imagem da forma de onda gerada a partir do arquivo enviado, pronta para entrar num player, num card ou numa miniatura. As opções de aparência disponíveis ficam na documentação técnica da API.
Quanto custa a imagem de um episódio de uma hora?
US$ 0,077 pela chamada mais 60 minutos a US$ 0,0045 cada: US$ 0,347 no total. O valor acompanha a duração do áudio e é o único cobrado — não existe mensalidade nem pacote mínimo.
Por que se paga por minuto se a saída é uma imagem só?
Porque, para desenhar o gráfico, o motor precisa percorrer o áudio inteiro, amostra por amostra. O trabalho cresce com a duração da gravação, não com o tamanho da imagem — por isso a unidade de cobrança é o minuto.
Áudio de WhatsApp serve como entrada?
Serve. O motor é baseado em ffmpeg e lê os formatos de áudio correntes, incluindo o das mensagens de voz. Vale o limite geral da categoria: arquivos de até 200 MB e 180 minutos.
Já consigo executar, ou é só a página que está no ar?
Por enquanto, só a página: a capacidade está em implantação e a execução ainda não abriu. Especificação, limites e preço já estão publicados e não mudam na estreia — dá para desenhar sua integração desde já.
O que acontece com a gravação depois que a imagem sai?
O arquivo é processado para gerar o gráfico e nada dele é publicado nem reaproveitado. A imagem devolvida mostra apenas o volume ao longo do tempo — não é possível reconstruir a fala a partir dela, o que costuma tranquilizar quem lida com material sensível sob a LGPD.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/audio/waveform \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/audio/waveform", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/waveform",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/waveform", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/waveform", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"audio": "https://ejemplo.com/audio.mp3"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.waveform",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 200 |
max_minutes | 180 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |