>> Tecnologia elettronica >  >> Audio personale >> Lettori MiniDisc

Come posso creare un grafico ondulato audio usando il generatore?

Non è possibile creare una grafica * vera * onda audio utilizzando direttamente una funzione del singolo generatore nel modo in cui potresti pensare (come una singola funzione Python che genera un PNG). Le onde sonore sono intrinsecamente dati temporali (cambiamenti di pressione nel tempo). Un grafico è una rappresentazione spaziale. È necessario *generare i dati dell'onda sonora *, quindi *elaborare tali dati per creare una rappresentazione visiva *.

Ecco come puoi farlo usando Python, sfruttando le librerie per la generazione del suono e la creazione di immagini:

1. Genera i dati dell'onda sonora:

Questa parte crea i dati numerici che rappresentano l'onda sonora. Useremo `numpy` per il calcolo numerico e` Scipy` per generare diverse forme d'onda.

`` `Python

Importa Numpy come NP

Importa matplotlib.pyplot come plt

Import Scipy.io.Wavfile come WAV

da Scipy.signal Import Highoth, Square

Parametri

Frequenza =440 # Hz (Nota A4)

durata =2 # secondi

Sample_rate =44100 # Hz (velocità audio standard)

ampiezza =0,8 # mantienilo al di sotto di 1 per evitare il ritaglio

Time Vector

t =np.linspace (0, durata, int (campione_rate * durata), endpoint =false)

Scegli una forma d'onda (seno, quadrato, dente di sega, ecc.)

#WaveForm =np.sin (2 * np.pi * frequenza * t) * ampiezza # sine wave

#WaveForm =Square (2 * np.pi * Frequency * T) * Amplitude # Square Wave

WaveForm =sewtooth (2 * np.pi * frequenza * t) * ampiezza # sewtooth wave

#Optional:aggiungi un po 'di rumore

rumore =np.random.normal (0, 0.1, len (forma d'onda))

forma d'onda +=rumore

normalizza per evitare il ritaglio (importante per l'uscita audio)

WaveForm =WaveForm / Np.Max (NP.ABS (Wave Form))

#Optional:salva come file wav

wav.write ("output.wav", sample_rate, waveform.astype (np.float32))

`` `

2. Crea il grafico:

Questa parte prende i dati di onda audio generati e lo traccia usando `matplotlib`.

`` `Python

Traccia la forma d'onda

plt.figure (figsize =(10, 4))

plt.plot (t, forma d'onda)

plt.xlabel ("time (s)")

plt.ylabel ("ampiezza")

plt.title ("forma d'onda sonora")

plt.grid (vero)

plt.savefig ("sound_wave.png") #Save come png

plt.show ()

`` `

Codice completo:

`` `Python

Importa Numpy come NP

Importa matplotlib.pyplot come plt

Import Scipy.io.Wavfile come WAV

da Scipy.signal Import Highoth, Square

Parametri

Frequenza =440 # Hz (Nota A4)

durata =2 # secondi

Sample_rate =44100 # Hz (velocità audio standard)

ampiezza =0,8 # mantienilo al di sotto di 1 per evitare il ritaglio

Time Vector

t =np.linspace (0, durata, int (campione_rate * durata), endpoint =false)

Scegli una forma d'onda

WaveForm =sewtooth (2 * np.pi * frequenza * t) * ampiezza

#Optional:aggiungi un po 'di rumore

rumore =np.random.normal (0, 0.1, len (forma d'onda))

forma d'onda +=rumore

normalizza per evitare il ritaglio

WaveForm =WaveForm / Np.Max (NP.ABS (Wave Form))

#Optional:salva come file wav

wav.write ("output.wav", sample_rate, waveform.astype (np.float32))

Traccia la forma d'onda

plt.figure (figsize =(10, 4))

plt.plot (t, forma d'onda)

plt.xlabel ("time (s)")

plt.ylabel ("ampiezza")

plt.title ("forma d'onda sonora")

plt.grid (vero)

plt.savefig ("sound_wave.png")

plt.show ()

`` `

Questo codice lo farà:

1. Genera un'onda a dente di sega (puoi facilmente cambiarlo in forme d'onda sinusoidali, quadrate o utilizzando le funzioni `Scipy.signal`).

2. Opzionalmente aggiungere rumore per renderlo più realistico.

3. Normalizzare la forma d'onda per prevenire il ritaglio.

4. Opzionalmente salvalo come file WAV.

5. Creare e salvare un'immagine PNG dell'ampiezza dell'onda sonora nel tempo.

Ricorda di installare le librerie necessarie:`numpy`,` matplotlib` e `Scipy`. È possibile installarli utilizzando PIP:`PIP Installa numpy matplotlib Scipy`

  1. Come funziona un lettore di compact disc?
  2. Qual è la migliore marca per un lettore MP4?
  3. Quanto costa un I Pod 4?
  4. Come riprodurre video a 240p utilizzando il browser Google Chrome?
  5. Chi produce i lettori Missil mp3 e mp4?
  6. Qual è il canale di emergenza per il walkie-talkie Binatone Terrain 750?