Estoy jugando con sonidos agudos. Me gustaría generar un archivo MP3 con una ráfaga de 1 segundo a 15Khz. ¿Hay una manera simple de hacer esto desde C o Python? No quiero usar MATLAB.Generar un archivo de sonido con un tono de 15Khz
Respuesta
Puede usar el módulo wave
de Python para crear un archivo de onda que luego puede comprimir a MP3. Para crear una onda senoidal un solo segundo 15kHz:
import math
import wave
import struct
nchannels = 1
sampwidth = 2
framerate = 44100
nframes = 44100
comptype = "NONE"
compname = "not compressed"
amplitude = 4000
frequency = 15000
wav_file = wave.open('15khz_sine.wav', 'w')
wav_file.setparams((nchannels, sampwidth, framerate, nframes, comptype, compname))
for i in xrange(nframes):
sample = math.sin(2*math.pi*frequency*(float(i)/framerate))*amplitude/2
wav_file.writeframes(struct.pack('h', sample))
wav_file.close()
Ha intentado:
#include<dos.h>
#include<iostream.h>
#include<conio.h>
main()
{
sound(500); // Frequency
delay(1000); // Time
nosound(); // Stop
}
Esa biblioteca es una maravilla del pasado, pero ¿en qué plataformas se ejecuta hoy? –
¿Cómo se actualiza? No solo prácticas anticuadas de C (valores de retorno implícitos), sino plataforma específica cuando ninguna plataforma especificada en etiquetas o preguntas ... Tampoco tiene nada que ver con la generación de MP3. – dreamlax
Me gustaría romper este en 2 piezas:
- Crear un archivo de onda usando una biblioteca de C++ (como libsndfile biblioteca)
- convertir el archivo de onda de mp3 usando una utilidad (como lame). Esta es una herramienta de línea de comando que también puede ser llamada desde su programa C. ver
-t
para convertir ola a mp3.
Una cosa a tener en cuenta es que 15KHz es una frecuencia muy alta para ser escuchado por humanos y supongo que la mayoría de los altavoces no son capaces de reproducirlo ya que está más allá de la frecuencia de corte de ellos. Así que no te sorprendas si no escuchas el resultado.
+1, pero en cuanto al rango de altavoces, muchos auriculares tienen frecuencias de respuesta de hasta 20,000Hz. Si puedes oirlo es una historia diferente! – dreamlax
- 1. ¿Cómo detectar la frecuencia/tono de sonido en un iPhone?
- 2. ¿Cómo elimino Ess de un archivo de sonido con SoX?
- 3. Grabar el sonido y reproducirlo con cambiada de tono
- 4. Analizar sonido "silbido" para tono/nota
- 5. Cómo reproducir tono de llamada/sonido de alarma en Android
- 6. Cómo reproducir un archivo de sonido
- 7. ¿Cómo toco un tono en Linux usando C?
- 8. Cómo generar un archivo PNG con C#?
- 9. ¿Cómo generar un archivo .json con PHP?
- 10. ¿Cómo generar efectos de sonido en Java?
- 11. Detección de frecuencia de un archivo de sonido
- 12. extraer sonido de un fla
- 13. ¿Cómo generar un archivo WSDL?
- 14. ¿Cómo generar un archivo .po?
- 15. Detección de tono FFT - Extracción de melodía
- 16. Cómo reproducir un sonido de notificación de Android
- 17. Cómo generar una frecuencia de sonido particular?
- 18. ¿Cómo producir un tono y silencio con precisión de tiempo?
- 19. Manera simple de reproducir un archivo de sonido (.aif)
- 20. sonido del sistema de registro (stereomix) a un archivo
- 21. ¿Necesito generar un segundo archivo para ordenar un archivo?
- 22. Cómo reproducir un archivo de onda o un archivo de sonido usando VBA
- 23. Cómo enviar sonido a un altavoz
- 24. Ajuste de tono en Android
- 25. ¿Cómo se detecta cuando un archivo de sonido ha terminado?
- 26. ¿Cómo se generan frecuencias de tono dual en MATLAB?
- 27. Python: Cambiar el tono del archivo de audio
- 28. Android: ¿Cómo puedo incluir un sonido de notificación utilizando un recurso de sonido?
- 29. cómo generar un archivo WSDL de un servicio web C#
- 30. Generar un WSDL a partir de un archivo XSD
Tenga en cuenta que un tono de 15KHz puede tener muchas formas, por ejemplo sinusoidal, cuadrada, triangular, diente de sierra, etc. – dreamlax
estaría muy interesado en una solución, la cual genera el mp3 directamente. Crear un archivo wave y comprimirlo con lame es una solución bastante obvia pero aburrida. Un pequeño C prog que genera un mp3 con un tono (15kHz o lo que sea) que pueda ser reproducido por cualquier decodificador sería increíble. ¿Algún frikis de archivos mp3 aquí? –