Uma imagem de onda sonora é visualização estática de amplitude vs. tempo. Seja para estêncil de tatuagem, capa de podcast, presente de casamento, ou figura científica, aqui estão os três caminhos de produção.
Instale: `pip install librosa matplotlib numpy scipy`
# soundwave_art.py — Waveform estático pronto para publicação import librosa, librosa.display, matplotlib.pyplot as plt, numpy as np, sys, os def render_waveform(input_path, output_path, width=3000, height=1000, dpi=300, bg='#0a0a0a', fg='#00ff88', lw=0.5, trim_silence=True, top_db=30): y, sr = librosa.load(input_path, sr=None, mono=True) if trim_silence: y, _ = librosa.effects.trim(y, top_db=top_db) fig, ax = plt.subplots(figsize=(width/dpi, height/dpi), dpi=dpi, facecolor=bg) ax.set_facecolor(bg) librosa.display.waveshow(y, sr=sr, ax=ax, color=fg, alpha=0.9, linewidth=lw) ax.axis('off') plt.subplots_adjust(left=0, right=1, top=1, bottom=0) plt.savefig(output_path, dpi=dpi, facecolor=bg, bbox_inches='tight', pad_inches=0) plt.close() print(f"✓ {os.path.basename(output_path)} ({width}x{height}px)") if __name__ == '__main__': if len(sys.argv) < 2: print("Uso: python soundwave_art.py input.wav [output.png]") sys.exit(1) inp = sys.argv[1] out = sys.argv[2] if len(sys.argv) > 2 else os.path.splitext(inp)[0] + '_waveform.png' render_waveform(inp, out)
Execute: `python soundwave_art.py podcast_ep1.wav ep1_waveform.png`
# radial_waveform.py import librosa, numpy as np, matplotlib.pyplot as plt, sys y, sr = librosa.load(sys.argv[1], sr=None, mono=True) y, _ = librosa.effects.trim(y, top_db=30) N = len(y) theta = np.linspace(0, 2*np.pi, N) r = 1 + 0.3 * (y / np.max(np.abs(y))) # raio base 1, amplitude 0.3 fig, ax = plt.subplots(figsize=(8,8), subplot_kw={'projection': 'polar'}, facecolor='black') ax.plot(theta, r, color='#00ff88', linewidth=0.3, alpha=0.8) ax.set_axis_off() plt.savefig(sys.argv[2] if len(sys.argv)>2 else 'radial.png', dpi=300, facecolor='black', bbox_inches='tight', pad_inches=0)
Waveforms brutos parecem técnicos. Importe PNG/SVG em:
| Elemento | Movimento Pro |
|---|---|
| Fonte Áudio | 10–30 seg faixa dinâmica (fala + música). Normalize loudness (EBU R128 / -16 LUFS). |
| Proporção | 3:1 (print panorâmico), 1:1 (quadrado), 9:16 (wallpaper celular), 16:9 (thumb vídeo). |
| Cor | Fundo escuro + **Único Neon Accent** (Ciano, Magenta, Dourado) > Arco-íris. Monocromático Dourado no Preto = premium. |
| Resolução | **Impressão:** 300 DPI nas polegadas finais. **Web:** 2x/3x pixels CSS alvo. |
| Espaço Negativo | Deixe 20–30% margem. Waveform não deve tocar bordas. |
| Anotação | Adicione marcadores timestamp, trecho letra, data, coords GPS em sans-serif limpa (Inter, Space Grotesk, JetBrains Mono). |
Tecnologia Eletrônica © [www.351231.com]