seƱales reproducir poner musica modulos lista librerias libreria grabar como basicas python audio mp3 frequency

poner - Biblioteca de Python para reproducir sonido de frecuencia fija



reproducir audio en python (3)

Tengo un problema de mosquito en mi casa. Esto normalmente no afectaría a la comunidad de programadores; Sin embargo, he visto algunos dispositivos que pretenden disuadir a estas desagradables criaturas jugando un tono de 17Khz. Me gustaría hacer esto usando mi computadora portátil.

Un método sería crear un MP3 con un único tono de frecuencia fija ( Esto puede hacerse fácilmente con audacity ), abrirlo con una biblioteca de Python y reproducirlo repetidamente.

El segundo sería reproducir un sonido usando el altavoz integrado de la computadora. Estoy buscando algo similar a QBasic Sound :

SOUND 17000, 100

¿Hay una biblioteca de Python para eso?


El módulo winsound se incluye con Python, por lo que no hay bibliotecas externas para instalar, y debe hacer lo que desee (y no mucho más).

import winsound winsound.Beep(17000, 100)

Es muy simple y fácil, aunque solo está disponible para Windows.

Pero:
Una respuesta completa a esta pregunta debe tener en cuenta que, aunque este método producirá un sonido, no detendrá los mosquitos . Ya ha sido probado: mira here y here



PyAudiere es una solución multiplataforma simple para el problema:

>>> import audiere >>> d = audiere.open_device() >>> t = d.create_tone(17000) # 17 KHz >>> t.play() # non-blocking call >>> import time >>> time.sleep(5) >>> t.stop()

pyaudiere.org se ha ido. El sitio y los instaladores binarios para Python 2 (debian, windows) están disponibles a través de la máquina de retorno, por ejemplo, aquí está el código fuente pyaudiere-0.2.tar.gz .

Para admitir Python 2 y 3 en Linux, Windows, OSX, se puede usar el módulo pyaudio su lugar:

#!/usr/bin/env python """Play a fixed frequency sound.""" from __future__ import division import math from pyaudio import PyAudio # sudo apt-get install python{,3}-pyaudio try: from itertools import izip except ImportError: # Python 3 izip = zip xrange = range def sine_tone(frequency, duration, volume=1, sample_rate=22050): n_samples = int(sample_rate * duration) restframes = n_samples % sample_rate p = PyAudio() stream = p.open(format=p.get_format_from_width(1), # 8bit channels=1, # mono rate=sample_rate, output=True) s = lambda t: volume * math.sin(2 * math.pi * frequency * t / sample_rate) samples = (int(s(t) * 0x7f + 0x80) for t in xrange(n_samples)) for buf in izip(*[samples]*sample_rate): # write several samples at a time stream.write(bytes(bytearray(buf))) # fill remainder of frameset with silence stream.write(b''/x80'' * restframes) stream.stop_stream() stream.close() p.terminate()

Ejemplo:

sine_tone( # see http://www.phy.mtu.edu/~suits/notefreqs.html frequency=440.00, # Hz, waves per second A4 duration=3.21, # seconds to play sound volume=.01, # 0..1 how loud it is # see http://en.wikipedia.org/wiki/Bit_rate#Audio sample_rate=22050 # number of samples per second )

Es una versión modificada (para admitir Python 3) de esta respuesta AskUbuntu .