Je me demandais s'il était possible de jouer un son directement dans une entrée de python. J'utilise linux, et que je me sers de l'OSS, ALSA et PulseAudioComment jouer un son sur un flux d'entrée
Répondre
Vous pouvez certainement jouer (et générer) son python
Voici un exemple de code qui génère sinusoïde, ouvre périphérique de lecture par défaut Alsa et pièces sinusoïde par cette
#!/usr/bin/env python3
import math
import struct
import alsaaudio
from itertools import *
def sine_wave(frequency=440.0, framerate=44100, amplitude=0.5):
"""Stolen from here: http://zacharydenton.com/generate-audio-with-python/"""
period = int(framerate/frequency)
if amplitude > 1.0: amplitude = 1.0
if amplitude < 0.0: amplitude = 0.0
lookup_table = [float(amplitude) * math.sin(2.0*math.pi*float(frequency)*(float(i%period)/float(framerate))) for i in range(period)]
return (lookup_table[i%period] for i in count(0))
sound_out = alsaaudio.PCM() # open default sound output
sound_out.setchannels(1) # use only one channel of audio (aka mono)
sound_out.setrate(44100) # how many samples per second
sound_out.setformat(alsaaudio.PCM_FORMAT_FLOAT_LE) # sample format
for sample in sine_wave():
# alsa only eats binnary data
b = struct.pack("<f", sample) # convert python float to binary float
sound_out.write(b)
ou vous pouvez loopback microphone à vos haut-parleurs
#!/usr/bin/env python3
import struct
import alsaaudio
sound_out = alsaaudio.PCM() # open default sound output
sound_out.setchannels(1) # use only one channel of audio (aka mono)
sound_out.setperiodsize(5) # buffer size, default is 32
sound_in = alsaaudio.PCM(type=alsaaudio.PCM_CAPTURE) # default recording device
sound_in.setchannels(1) # use only one channel of audio (aka mono)
sound_in.setperiodsize(5) # buffer size, default is 32
while True:
sample_lenght, sample = sound_in.read()
sound_out.write(sample)
exemples beaucoup plus peuvent être trouvés dans pyth sur la bibliothèque d'alsaaudio http://pyalsaaudio.sourceforge.net/libalsaaudio.html
Cela ne répond pas à la question. –
mais il est néanmoins utile :) – starfry
Je suppose que cela dépend de ce que vous aimeriez faire avec après que vous l'ayez "dans" python. Je regarderais certainement la bibliothèque de scikits.audiolab. C'est ce que vous pourriez utiliser si vous vouliez établir des spectrogrammes de tous les sons que vous essayez de traiter (je suppose que c'est ce que vous voulez faire?).
- 1. Comment jouer un son sur l'iPhone
- 2. iPhone: Comment jouer un son sur le son de l'iPod?
- 3. Jouer un son arbitraire sur Windows?
- 4. comment jouer un son sur un clic de bouton
- 5. iPhone - Comment jouer un son sur un bouton tactile?
- 6. Jouer le son sur un événement tactile?
- 7. Comment jouer un son en C#, .NET
- 8. comment jouer un son en android
- 9. Jouer un son avec Monotouch
- 10. Comment jouer un son avec JS?
- 11. VLC - Comment jouer un MJPEG flux
- 12. Comment jouer son sur un appel téléphonique avec Android?
- 13. jouer son sur AX 09
- 14. Android - jouer un son différent sur jamais secondes cliquez sur
- 15. Comment puis-je jouer un son personnalisé dans iOS?
- 16. Java comment jouer son
- 17. Jouer le son dans un navigateur mobile?
- 18. Jouer un son aléatoire avec Xcode
- 19. Jouer un son pendant une certaine durée
- 20. pour jouer son programme en utilisant un bouton sur l'iPhone
- 21. Jouer un son une fois en Flash
- 22. Jouer un son à travers les sessions
- 23. Jouer un son dans Symbian S60
- 24. Jouer un son dans Firefox ou Chrome
- 25. iPhone SDK: jouer un son avec coreAudio
- 26. OpenAL iPhone: incapable de jouer un son
- 27. Essayer de jouer un son en tapant sur une image
- 28. Comment jouer un son dans une extension Firefox Mobile?
- 29. Comment jouer un son dans Widget: Android (Classe externe)
- 30. Comment créer un bouton de lecture pour jouer au son?
Quel est le problème que vous essayez de résoudre? –
J'ai un fichier son, et j'essaie de lire ce fichier sonore non pas dans un flux de sortie, mais dans un flux d'entrée/flux de capture. – Natecat
Et pourquoi voulez-vous l'avoir dans un flux d'entrée? –