¿Cómo puedo crear un gráfico de onda de sonido usando generador?
No puede crear un gráfico de onda de sonido * verdadero * directamente usando una función de generador único en la forma en que podría pensar (como una sola función de Python que genera un PNG). Las ondas de sonido son datos inherentemente temporales (la presión cambia con el tiempo). Un gráfico es una representación espacial. Debe *generar los datos de onda de sonido *, luego *procesar esos datos para crear una representación visual *.
Así es como puedes hacer esto usando Python, aprovechando las bibliotecas para la generación de sonido y la creación de imágenes:
1. Genere los datos de onda de sonido:
Esta parte crea los datos numéricos que representan la onda de sonido. Usaremos `Numpy` para el cálculo numérico y 'Scipy` para generar diferentes formas de onda.
`` `Python
importar numpy como np
Importar matplotlib.pyplot como PLT
import scipy.io.wavfile como wav
de scipy.signal import sawtooth, cuadrado
parámetros
frecuencia =440 # Hz (nota A4)
duración =2 # segundos
sample_rate =44100 # Hz (tasa de audio estándar)
amplitud =0.8 # Manténgalo por debajo de 1 para evitar el recorte
Time Vector
t =np.linspace (0, duración, int (sample_rate * duración), punto final =falso)
Elija una forma de onda (seno, cuadrado, diente de sierra, etc.)
#waveform =np.sin (2 * np.pi * frecuencia * t) * Amplitud # sine onda
#WaveForm =Square (2 * np.pi * frecuencia * t) * amplitud # onda cuadrada
forma de onda =sawtooth (2 * np.pi * frecuencia * t) * amplitud # sawtooth onda
#Optional:Agregue algo de ruido
ruido =np.random.normal (0, 0.1, len (forma de onda))
forma de onda +=ruido
Normalizar para evitar el recorte (importante para la salida de audio)
forma de onda =forma de onda / np.max (np.abs (forma de onda))
#Optional:Guardar como archivo WAV
wav.write ("output.wav", sample_rate, waveform.astype (np.float32))
`` `` ``
2. Crea el gráfico:
Esta parte toma los datos de onda de sonido generados y los traza usando `matplotlib`.
`` `Python
traza la forma de onda
plt.figure (figsize =(10, 4))
Plt.plot (T, forma de onda)
plt.xlabel ("Tiempo (s)")
plt.ylabel ("amplitud")
plt.title ("Forma de onda de sonido")
plt.grid (verdadero)
plt.saveFig ("Sound_wave.png") #save como PNG
plt.show ()
`` `` ``
Código completo:
`` `Python
importar numpy como np
Importar matplotlib.pyplot como PLT
import scipy.io.wavfile como wav
de scipy.signal import sawtooth, cuadrado
parámetros
frecuencia =440 # Hz (nota A4)
duración =2 # segundos
sample_rate =44100 # Hz (tasa de audio estándar)
amplitud =0.8 # Manténgalo por debajo de 1 para evitar el recorte
Time Vector
t =np.linspace (0, duración, int (sample_rate * duración), punto final =falso)
Elija una forma de onda
forma de onda =sawtooth (2 * np.pi * frecuencia * t) * amplitud
#Optional:Agregue algo de ruido
ruido =np.random.normal (0, 0.1, len (forma de onda))
forma de onda +=ruido
Normalizar para evitar recortar
forma de onda =forma de onda / np.max (np.abs (forma de onda))
#Optional:Guardar como archivo WAV
wav.write ("output.wav", sample_rate, waveform.astype (np.float32))
traza la forma de onda
plt.figure (figsize =(10, 4))
Plt.plot (T, forma de onda)
plt.xlabel ("Tiempo (s)")
plt.ylabel ("amplitud")
plt.title ("Forma de onda de sonido")
plt.grid (verdadero)
plt.saveFig ("Sound_wave.png")
plt.show ()
`` `` ``
Este código lo hará:
1. Genere una onda de diente de sierra (puede cambiar fácilmente esto a formas de onda sinuso, cuadradas u otras utilizando funciones `scipy.signal`).
2. Opcionalmente, agregue ruido para hacerlo más realista.
3. Normalice la forma de onda para evitar el recorte.
4. Opcionalmente guárdelo como un archivo WAV.
5. Cree y guarde una imagen PNG de la amplitud de la onda de sonido con el tiempo.
Recuerde instalar las bibliotecas necesarias:`numpy`,` matplotlib` y `scipy`. Puede instalarlos usando PIP:`PIP instale numpy matplotlib scipy`
- ·¿Cómo poner música en un walkman Sony Net MD
- ·¿Puede el iPhone reproducir flash desde la web?
- ·¿Estación de conexión para iPod Dynex pero no muestra el vídeo?
- ·¿Cómo pones música en tu página de WeeWorld?
- ·Cómo deshabilitar la detección automática de proxy web de WinHTTP
- ·¿Tienes que descargar el torrent completo o puedes acortar la descarga?
- ·Cómo desconectar el servicio de línea fija de AT&T
- ·¿Cuál es el código de serie de MAGIX mp3 maker 15?
- ¿Cómo se sube el volumen en un reproductor de audio digital Spi?
- ¿Puedes convertir avi en carpetas ts de video y audio sin grabarlas con nero startsmart?
- Cómo obtener un descuento para estudiantes en Apple Store
- Cómo restaurar un Compaq Evo sin disco
- ¿Qué debo poner como nombre de mi cuenta de YouTube como fútbol voleibol softbol y música?
- ¿Cómo se conecta su KP501 LG Cookie a la computadora para descargar canciones, videos e imágenes y subirlos a la web?
