Uma "imagem de onda sonora" é visualização de amplitude de áudio no tempo (forma de onda) ou frequência no tempo (espectrograma). Aqui está como gerar visualizações publicáveis, customizáveis usando código, DAWs e ferramentas online.
Bibliotecas: librosa (análise), matplotlib (plot), scipy.io.wavfile (I/O).
import librosa import librosa.display import matplotlib.pyplot as plt import numpy as np # Load y, sr = librosa.load("audio.wav", sr=None, mono=True) # sr=None mantém rate nativo # Plot plt.figure(figsize=(14, 4)) librosa.display.waveshow(y, sr=sr, alpha=0.7, color='#1f77b4') plt.title("Waveform: Amplitude vs Time") plt.xlabel("Time (s)") plt.ylabel("Amplitude") plt.tight_layout() plt.savefig("waveform.png", dpi=300, bbox_inches='tight') plt.close()
# STFT -> Magnitude -> dB D = librosa.amplitude_to_db(np.abs(librosa.stft(y, n_fft=2048, hop_length=512)), ref=np.max) plt.figure(figsize=(14, 5)) librosa.display.specshow(D, sr=sr, hop_length=512, x_axis='time', y_axis='hz', cmap='magma') plt.colorbar(format='%+2.0f dB') plt.title('Spectrogram (Linear Frequency)') plt.tight_layout() plt.savefig('spectrogram_linear.png', dpi=300) plt.close() # Mel Spectrogram (Escala Frequência Perceptual) M = librosa.feature.melspectrogram(y=y, sr=sr, n_fft=2048, hop_length=512, n_mels=128) M_db = librosa.power_to_db(M, ref=np.max) plt.figure(figsize=(14, 5)) librosa.display.specshow(M_db, sr=sr, hop_length=512, x_axis='time', y_axis='mel', cmap='viridis') plt.colorbar(format='%+2.0f dB') plt.title('Mel Spectrogram') plt.tight_layout() plt.savefig('spectrogram_mel.png', dpi=300)
# Onset detection onsets = librosa.onset.onset_detect(y=y, sr=sr, units='time') plt.figure(figsize=(14, 4)) librosa.display.waveshow(y, sr=sr, alpha=0.5) for o in onsets: plt.axvline(o, color='red', alpha=0.5, linestyle='--') plt.title('Onset Detection') plt.savefig('onsets.png', dpi=300)
[x, fs] = audioread('audio.wav'); if size(x,2) > 1, x = mean(x,2); end % Mono % Waveform t = (0:length(x)-1)/fs; figure; plot(t, x); xlabel('Time (s)'); ylabel('Amplitude'); title('Waveform'); print('-dpng', '-r300', 'waveform_matlab.png'); % Spectrogram window = hamming(1024); noverlap = 512; nfft = 1024; figure; spectrogram(x, window, noverlap, nfft, fs, 'yaxis'); colormap('jet'); colorbar; caxis([-100 0]); title('Spectrogram (dB)'); print('-dpng', '-r300', 'spec_matlab.png');
| Software | Waveform View | Spectrogram View | Export Imagem |
|---|---|---|---|
| Audacity (Gratuito) | View track padrão. Zoom (Ctrl+1/2/3). | Track Dropdown > **Spectrogram** / **Spectrogram Settings** (Window, Max Freq). | File > Export > **Export as PNG** (Seleção ou Full). |
| Adobe Audition | Editor Panel. Spectral View (Toggle). | **Spectral Frequency Display** (Shift+D). Resolution, Window, Overlap ajustáveis. | Edit > **Copy Spectral View to Clipboard** → Paste no PS. Ou Screenshot. |
| iZotope RX | Waveform Overview + Spectrogram (Linkados). | Best-in-class. FFT, Window, Dynamic Range, Colormap ajustáveis. | File > Export > **Image** (PNG, TIFF, SVG). Batch via Scripting. |
| Sonic Visualiser (Gratuito, Acadêmico) | Pane 1. | Pane 2: Layer > Add Spectrogram. Mel, ERB, Chroma layers. | File > Export Image. Anotações incluídas. |
| Reaper / Logic / Pro Tools / Ableton | Arrange View. | Limitado / Via Plugins (Voxengo SPAN, Melda MAnalyzer, FabFilter Pro-Q 3). | Screenshot / Region Render (Video). |
Aviso: Upload áudio sensível pra tools web = risco privacidade. Use tools locais pra conteúdo privado.
Pra ciência/reprodutibilidade: **Python (librosa/matplotlib)**. Pra mastering/QC: **iZotope RX / Sonic Visualiser**. Pra arte/motion: **After Effects / TouchDesigner**. Pra olhar rápido: **Audacity / Spektrogram.com**.
Tecnologia Eletrônica © [www.351231.com]