Gerar imagens de forma de onda a partir de áudio
🤖/audio/waveform gera imagens de forma de onda para seus arquivos de áudio e permite alterar suas cores e dimensões.

Recomendamos que você use um Step com 🤖/audio/encode antes do seu Step de forma de onda para converter arquivos de áudio em MP3. Assim, fica garantido que 🤖/audio/waveform aceite seu arquivo de áudio, e você também pode reduzir a taxa de amostragem de arquivos de áudio grandes e economizar um pouco.
Da mesma forma, se você precisar da imagem de saída em outro formato, encaminhe o resultado deste Robot para 🤖/image/resize.
Exemplo de uso
Gere uma forma de onda de 400×200 na cor #0099cc a partir de um arquivo de áudio carregado por upload:
{
"steps": {
"waveformed": {
"center_color": "0099ccff",
"height": 200,
"outer_color": "0099ccff",
"robot": "/audio/waveform",
"use": ":original",
"width": 400
}
}
}Parâmetros
interpolateboolean | Record<string, boolean>Controla se as Assembly Variables são interpoladas em campos individuais de instruções.
Por padrão, a maioria dos campos de instruções dos Robots interpola Assembly Variables. Defina isso como
falsepara tratar todos os campos de instruções como texto literal, ou defina o caminho de um campo individual comofalsepara tratar apenas esse campo como texto literal. Para campos específicos de um Robot que são literais por padrão, defina isso comotrueou defina o caminho desse campo comotruepara voltar a usar a interpolação.Use nomes de campos como
pathou caminhos com pontos comoffmpeg.vfpara objetos aninhados.output_metaRecord<string, boolean> | boolean | Array<string>Permite especificar um conjunto de metadados cujo cálculo exige mais CPU e que, por isso, vem desativado por padrão para manter o processamento das suas Assemblies rápido.
Para imagens, você pode adicionar
"has_transparency": trueneste objeto para extrair se a imagem contém partes transparentes e"dominant_colors": truepara extrair um array de códigos de cores hexadecimais da imagem.Para imagens, você também pode adicionar
"blurhash": truepara extrair uma string BlurHash — uma representação compacta de um placeholder da imagem, útil para exibir uma prévia desfocada enquanto a imagem completa carrega.Para vídeos, você pode adicionar o parâmetro
"colorspace": truepara extrair o espaço de cores do vídeo de saída.Para vídeos, você também pode adicionar
"interlaced": truepara detectar se o vídeo é entrelaçado. Isso combina a flag computacionalmente baratafield_orderdo ffprobe com uma passagem de amostragemidetlimitada sobre os primeiros quadros da origem, expondointerlaced,field_ordere um objeto de diagnósticointerlace_detectionemfile.meta. Isso é computacionalmente caro e cobrado de acordo.Para áudio, você pode adicionar
"mean_volume": truepara obter um único valor que representa o volume médio do arquivo de áudio.Você também pode definir isso como
falsepara pular a extração de metadados e acelerar a transcodificação.user_metaRecord<string, any>(padrão:{})Adiciona metadados JSON personalizados a cada arquivo emitido sem modificar seu conteúdo. Objetos e arrays aninhados são suportados.
A herança depende do Robot. Os valores são mesclados com o
user_metaexistente no arquivo de saída; o Step atual substitui as chaves de nível superior com o mesmo nome. Atribua explicitamente as chaves necessárias quando um Robot criar novas saídas.Nos Steps de processamento,
${file.*}se refere à primeira entrada e${result.*}ao arquivo emitido. Os valores são avaliados para cada saída após a execução do Robot, antes da extração subsequente de metadados e do armazenamento temporário. Em:original, os valores são avaliados para cada upload antes da extração de metadados.Os Steps subsequentes leem
${file.user_meta.key}. Consulte Metadados personalizados para ver um exemplo completo e as regras de herança.resultboolean(padrão:false)Se os resultados deste Step devem estar presentes no Assembly Status JSON
queuebatchDefinir a fila como “batch” rebaixa manualmente a prioridade dos Jobs deste Step, para evitar o consumo de vagas prioritárias de Jobs em Jobs que não precisam de tempo zero de espera na fila
force_acceptboolean(padrão:false)Forçar um Robot a aceitar um tipo de arquivo que ele teria ignorado.
Por padrão, os Robots ignoram arquivos que não conhecem. O 🤖/video/encode, por exemplo, ignora tranquilamente imagens de entrada.
Com o parâmetro
force_acceptdefinido comotrue, você pode forçar os Robots a aceitar todos os arquivos enviados a eles. Isso normalmente leva a erros e só deve ser usado para depuração ou para lidar com casos extremos.ignore_errorsboolean | Array<meta | execute>(padrão:[])Ignorar erros durante fases específicas do processamento.
Definir isso como
["meta"]fará com que o Robot ignore erros durante a extração de metadados.Definir isso como
["execute"]fará com que o Robot ignore erros durante a fase principal de execução.Definir isso como
trueequivale a["meta", "execute"]e fará com que erros sejam ignorados nas duas fases.usestring | Array<string> | Array<object> | objectEspecifica quais Steps usar como entrada.
- Você pode escolher qualquer nome para os Steps, exceto
":original"(reservado para uploads de usuários tratados pela Transloadit) - Você pode fornecer vários Steps como entrada usando arrays:
{ "use": [ ":original", "encoded", "resized" ] } - Você também pode marcar os Steps de entrada com
aspara transmitir intenção semântica aos Robots:{ "use": [ { "name": ":original", "as": "image" }, { "name": ":original", "as": "mask" } ] }
DicaProvavelmente é tudo o que você precisa saber sobre
use, mas você pode ver os casos de uso avançados.- Você pode escolher qualquer nome para os Steps, exceto
ffmpegobjectUm objeto de parâmetros a ser passado para o FFmpeg. Se uma predefinição for usada, as opções especificadas são mescladas sobre as da predefinição. Para ver as opções disponíveis, consulte a documentação do FFmpeg. As opções especificadas aqui têm precedência sobre as opções da predefinição.
ffmpeg_stackv6 | v7 | v8 | string(padrão:"v6.0.0")Seleciona a versão do stack do FFmpeg a ser usada na codificação. Atualmente, recomendamos usar “v7”. As versões exatas “v6.0.0”, “v7.0.0” e “v8.0.0” são valores legados que continuam sendo aceitos por compatibilidade retroativa. Valores “v5.x” descontinuados também são aceitos.
formatimage | json(padrão:"image")O formato do arquivo resultante. Pode ser
"image"ou"json". Se"image"for fornecido, será criada uma imagem PNG; caso contrário, um arquivo JSON. Quandostyleé"spectrogram", apenas"image"é compatível.widthstring | number(padrão:256)A largura da imagem resultante se o formato
"image"tiver sido selecionado.heightstring | number(padrão:64)A altura da imagem resultante se o formato
"image"tiver sido selecionado.antialiasing0 | 1 | boolean(padrão:0)Um valor de
0ou1, outrue/false, conforme você queira ou não habilitar o antialiasing para obter bordas mais suaves no gráfico da forma de onda.background_colorstring(padrão:"#00000000")A cor de fundo da imagem resultante no formato “rrggbbaa” (vermelho, verde, azul, alfa), se o formato
"image"tiver sido selecionado.center_colorstring(padrão:"000000ff")A cor usada no centro do gradiente. O formato é “rrggbbaa” (vermelho, verde, azul, alfa).
outer_colorstring(padrão:"000000ff")A cor usada nas partes externas do gradiente. O formato é “rrggbbaa” (vermelho, verde, azul, alfa).
stylev0 | v1 | spectrogramVersão do estilo da forma de onda.
"v0": Geração legada de formas de onda (padrão)."v1": Geração avançada de formas de onda com parâmetros adicionais."spectrogram": Visualização de espectrograma que mostra o conteúdo de frequência ao longo do tempo.
Para manter a compatibilidade com versões anteriores, os valores numéricos
0e1também são aceitos e mapeados para"v0"e"v1".split_channelsbooleanDisponível quando o parâmetro style é
"v1". Se definido comotrue, gera arquivos de dados ou de imagem de forma de onda multicanal, um por canal.zoomstring | numberDisponível quando o parâmetro style é
"v1". Nível de zoom em amostras por pixel. Este parâmetro não pode ser usado junto compixels_per_second.pixels_per_secondstring | numberDisponível quando o parâmetro style é
"v1". Nível de zoom em pixels por segundo. Este parâmetro não pode ser usado junto comzoom.bits8 | 16Disponível quando style é
"v1". Profundidade de bits dos dados da forma de onda. Pode ser 8 ou 16.startstring | numberDisponível quando o parâmetro style é
"v1". Tempo inicial em segundos.endstring | numberDisponível quando style é
"v1". Tempo de fim em segundos (0 significa o fim do áudio).colorsaudition | audacityDisponível quando style é
"v1". Esquema de cores a usar. Pode ser “audition” ou “audacity”.border_colorstringDisponível quando style é
"v1". Cor da borda no formato “rrggbbaa”.waveform_stylenormal | barsDisponível quando o parâmetro style é
"v1". Estilo da forma de onda. Pode ser “normal” ou “bars”.bar_widthstring | numberDisponível quando style é
"v1". Largura das barras em pixels quando waveform_style é “bars”.bar_gapstring | numberDisponível quando style é
"v1". Espaçamento entre as barras em pixels quando waveform_style é “bars”.bar_stylesquare | roundedDisponível quando style é
"v1". Estilo das barras quando waveform_style é “bars”.axis_label_colorstringDisponível quando style é
"v1". Cor dos rótulos dos eixos no formato “rrggbbaa”.no_axis_labelsbooleanDisponível quando o parâmetro style é
"v1". Se definido comotrue, renderiza a imagem da forma de onda sem rótulos nos eixos.with_axis_labelsbooleanDisponível quando o parâmetro style é
"v1". Se definido comotrue, renderiza a imagem da forma de onda com rótulos nos eixos.amplitude_scalestring | numberDisponível quando style é
"v1". Fator de escala da amplitude.compressionstring | numberDisponível quando style é
"v1". Nível de compressão PNG: de 0 (nenhuma) a 9 (melhor), ou -1 (padrão). Aplicável apenas quando format é “image”.color_mapviridis | plasma | magma | cividis | cool | rainbow | moreland |Disponível quando style é
"spectrogram". Esquema de cores para a visualização do espectrograma. O padrão é"viridis".frequency_scalelinear | logarithmicDisponível quando style é
"spectrogram". Escala de frequência do espectrograma."linear"mostra frequências espaçadas uniformemente, enquanto"logarithmic"enfatiza as frequências mais baixas. O padrão é"logarithmic".frequency_minstring | numberDisponível quando style é
"spectrogram". Frequência mínima em Hz a exibir. O padrão é0.frequency_maxstring | numberDisponível quando style é
"spectrogram". Frequência máxima em Hz a exibir. O padrão é metade da taxa de amostragem (frequência de Nyquist).legendbooleanDisponível quando o parâmetro style é
"spectrogram". Define se uma legenda com as escalas de frequência e tempo será incluída. O padrão éfalse.gainstring | numberDisponível quando style é
"spectrogram". Fator de ganho linear para a intensidade do espectrograma. O padrão é1.orientationvertical | horizontalDisponível quando o parâmetro style é
"spectrogram". Orientação do espectrograma."horizontal"mostra o tempo no eixo x (padrão),"vertical"mostra o tempo no eixo y.