IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

jouer un son (*.wav ou *.mid) avec python


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Points : 24
    Points
    24
    Par défaut jouer un son (*.wav ou *.mid) avec python
    Salut à tous,

    comment jouer un son sous python ?
    un simple wav ou mid ferat l'affaire pour mon appli

    J'ai tenter un paquet de mot dans la fonction recherche, mais sans résultat
    python serait-il muet ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Pymedia devrait faire mon affaire
    http://pymedia.org/tut/play_wav.html

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Tu peux aussi importer le mixer de Pygame (pas besoin des autres modules) ce qui te permet de jouer des .wav, des .ogg et des .mp3, sur 8 canaux différents.

    Tu as aussi Pysound plus riche en possibilité avec un rendu plus propre sur plus de canaux, mais basé sur fmod qui est payant pour des utilisations commerciales.

    Je ne connaissais pas Pymédia, merci
    Si tu veux des exemples pour lancer un son, n'hésite pas à demander.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 50
    Points
    50
    Par défaut
    Une autre possibilité c'est le Snack Sound Tool Kit(très simple à utiliser mais un peu casse pieds à installer) :

    http://www.speech.kth.se/snack/

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Merci pour vos liens,

    avec pymedia, c'est pas gagné dans mon cas.
    Dans mon application, les sons à jouer ne font que quelques dixiemes de secondes sous ce format 22050,16,mono.
    Pourtant il y a un Hic!
    je repette ce son plusieurs fois sur une période d'une seconde et il y a un retard lors des 3/4 premiers play. Trés genant car il doivent etre trés synchro.
    Je vais donc tester les deux autres solutions

    sinon, pymedia est tres facile à mettre en oeuvre.
    ------
    edit
    Avec pygame, ma synchro est nickel, testé et approuvé

  6. #6
    Membre régulier Avatar de Mysti¢
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 116
    Points
    116
    Par défaut
    Salut, moi j'ai essayer le module pygame.
    Quand je lance un programme, ca arrive que le son se joue, mais dans la plupart des cas, j'ai le message d'erreur suivant

    sound=pygame.mixer.Sound('kolorit.wav')
    pygame.error: MPEG Layer 3 data not supported

    (je suis sous debian)
    a ce que je sache, c'est bien le format de compression mp3?
    Je pense que ca viens de python parceque quand j'ouvre le son en question avec n'importe lequel de mes lecteurs, il se lis correctement.
    Alors si quelqu'un à déjà rencontré le même problème ou à une idée de ce que je devrai fair, merci de bien vouloir m'aider

    Surement une librairie externe à installer...
    ''' Life is short, use Python '''
    Business En Ligne
    SearchEngineFight

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Mysti¢
    Salut, moi j'ai essayer le module pygame.
    Quand je lance un programme, ca arrive que le son se joue, mais dans la plupart des cas, j'ai le message d'erreur suivant

    sound=pygame.mixer.Sound('kolorit.wav')
    pygame.error: MPEG Layer 3 data not supported

    (je suis sous debian)
    a ce que je sache, c'est bien le format de compression mp3?
    Je pense que ca viens de python parceque quand j'ouvre le son en question avec n'importe lequel de mes lecteurs, il se lis correctement.
    Alors si quelqu'un à déjà rencontré le même problème ou à une idée de ce que je devrai fair, merci de bien vouloir m'aider

    Surement une librairie externe à installer...
    Ton fichier kolorit est a priori en MP3
    renomme ton fichier kolorit.wav par kolorit.mp3.

    Soit utilise l'un des trés nombreux convertisseurs pour retransformer ton fichier en pcm (wav).
    par ex: http://www.clubic.com/telecharger-fi...converter.html

  8. #8
    Membre régulier Avatar de Mysti¢
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 116
    Points
    116
    Par défaut
    Merci pour ta réponse, mais le message reste identique même apres avoir renommé le fichier.
    (je suis sous debian)
    Heureusement que je l'avais précisé.
    Mais c'est pas un pb :p je mettrais le son sur une clé pour le convertir
    Sinon je ne devrais pas directement pouvoir lire les mp3 avec le module mixer de pygame?
    ''' Life is short, use Python '''
    Business En Ligne
    SearchEngineFight

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Bonjour.

    Citation Envoyé par mAdY
    Si tu veux des exemples pour lancer un son, n'hésite pas à demander.
    Moi ça m'intéresse!

    Je reste coincé sur un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open /dev/sequencer: No such file or directory
    Ma source:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    import pygame.mixer
    pygame.mixer.init()
    sound = pygame.mixer.Sound('samples/clap01.ogg')
    Un paquet manquant? Une configuration à faire? (Ubuntu/Debian).

    Merci.

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Tu as cet exemple qui marche bien mais le seul probleme c'est la boucle qui fige ton programme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import pygame
     
     
    pygame.mixer.init()
    pygame.mixer.music.load("octafish.ogg")
    pygame.mixer.music.load("octafish.ogg")
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
                  pass

  11. #11
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Je me permets de reprendre ce message toujours dans le but d'utiliser une librairie permettant de manipuler du son.

    L'exemple ci-dessus de yakulu est très intéressant. J'aimerai savoir s'il existe un moyen de jouer plusieurs sons à les uns à la suite des autres.

    Le but étant en fait de créer un programme qui me permettrait de créer un fichier audio unique depuis plusieurs fichiers audio.

    D'avance merci
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  12. #12
    Membre averti Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Points : 344
    Points
    344
    Par défaut
    Jiyuu, moi aussi, je suis dans le même cas que toi et après quelques recherches, je suis tombé sur gstreamer, je ne sais pas si ça le fais ou pas mais ça me semble intéressant, pour le moment, je n'ai pas encore réussi à l'installer , on me sort des erreurs comme quoi pyGtk est introuvable (la bibliothèque a besoin de pyGtk) alors que j'ai déjà installé pyGtk

  13. #13
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Pourquoi ne pas utiliser le module wave???

    Pour windows il y a le module winsound aussi

    Le but étant en fait de créer un programme qui me permettrait de créer un fichier audio unique depuis plusieurs fichiers audio.
    Genre tu mets tes fichiers dans un repertoire qui va lire tes fichiers audio les uns derriere les autres.

    Arf je t'ai déjà trop aidé
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  14. #14
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Pourquoi ne pas utiliser le module wave???
    Ben parce que je l'avais pas trouvé
    Par contre je dois être un peu con-con mais j'arrive pas à écouter le morceau.
    Voici ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import wave
    import wx
    #...Partie graphique de mon code avec un bouton déclenchant...
        def Play(self, evt):
            x = wave.open('son1.wav','r')... fin de mon code
    Peux-tu m'aiguiller?

    Citation Envoyé par fred1599 Voir le message
    Pour windows il y a le module winsound aussi
    Idem ci-dessus. Je connais pas. Je vais regarder ça dans la journée.

    Citation Envoyé par fred1599 Voir le message
    Genre tu mets tes fichiers dans un repertoire qui va lire tes fichiers audio les uns derriere les autres.

    Arf je t'ai déjà trop aidé
    Pourquoi pas. En fait ce que je veux essayer de faire c'est un instrument de musique informatique. J'entends par là 1: touche = 1 son. Il faut que je puisse créer, enregistrer et modifier cette séquence musicale à volonté. Et encore plein d'autre truc...

    Comme tu as l'aire de connaitre et si tu as 5min pour me donner des conseils, des soluces... hésite pas.

    Merci
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  15. #15
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Pour windows il y a le module winsound aussi
    I M P E C C A B L E

    La chose primordiale que j'essaye de faire depuis 2 jours se fait avec winsound
    de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import winsound
    winsound.PlaySound("son1.wav", winsound.SND_ALIAS)
    winsound.PlaySound("son2.wav", winsound.SND_ALIAS)
    winsound.PlaySound("son1.wav", winsound.SND_ALIAS)
    winsound.PlaySound("son2.wav", winsound.SND_ALIAS)
    No comment...

    Reste juste à savoir comment on arrête le son...

    J'ai essayé comme ça, mais en fait je reste bloqué sur la fonction play():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #-*- coding:utf-8 -*-
     
    import winsound
    from Tkinter import *
     
    liste = ['son1.wav', 'son2.wav', 'son1.wav']
     
    def play():
    	global a
    	a = 0
    	while a == 0:
    		for i in liste:
    			winsound.PlaySound(i, winsound.SND_ALIAS)
    def stop():
    	global a
    	a = 10
     
     
    #La GUI
    root= Tk()
    play = Button(text="play", command=play)
    play.pack()
    stop = Button(text="stop", command=stop)
    stop.pack()
     
    e = Entry()
    e.pack()
    root.mainloop()
    Aurte souci effectivement va se situer le jour ou je vais vouloir faire mon projet pour linux...
    On verra ça après. Chaque chose en son temps.


    Merci à tous
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  16. #16
    Membre habitué Avatar de moumine
    Profil pro
    Étudiant
    Inscrit en
    Août 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 237
    Points : 178
    Points
    178
    Par défaut
    Salut,

    J’ai le même souci que toi Jiyuu.
    (N’arrive pas a arrêter le son.)
    Par contre je n’utilise pas le même code.
    J’avais ouvert une discussion : http://www.developpez.net/forums/d69...c/#post4037015

    Ps: Le problème n’est toujours pas résolu.

    A+
    On rêvait tous d'une Barack blanche pour Obama

  17. #17
    Membre habitué Avatar de moumine
    Profil pro
    Étudiant
    Inscrit en
    Août 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 237
    Points : 178
    Points
    178
    Par défaut
    Salut,

    J’ai trouvé un moyen de lire des fichiers audio (mp3, wav etc…)
    Mais tu dois installer le module pymedia.
    Et on peut également arrêter quand on le désir.
    Voila:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import pymedia
     
    player=pymedia.Player()
    player.start()
    player.startPlayback('NomDeMusique.mp3')
    Et pour arrêter le son:
    A+
    On rêvait tous d'une Barack blanche pour Obama

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    en faisant une recherche sur internet sur ce thème, je suis tombé ici (un forum que je parcours assez régulièrement en tant que lecteur)

    Je me permet donc de faire resurgir ce post...

    je travaille sur OS X (côté perso) et au boulot, c'est 100% windows.

    Je cherche pour une application que je souhaite développer un moyen de jouer des son (wav, mp3 ou ogg)
    Parmis toutes les possibilités proposées, presque toutes font appel a des bibliothèques autre que les standards que Python.
    Voulant utiliser Python 3.1, je suis bien embêté : pymedia n'existe pas pour 3.1, pygame, pas encore.

    Une autre solution proposée winsound : inconvénient, il ne fonctionne que sur windows.

    J'ai essayer wave, mais rien n'y fait, ça ne joue pas le son. On peut extraire toutes les infos que le veut du fichier wav, mais pas le jouer.

    Existe-t-il une méthode, en utilisant la bibliothèque standard de python pour jouer un son, et ce quelque soit la plateforme ?

  19. #19
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Nikolorig Voir le message
    Bonjour,

    en faisant une recherche sur internet sur ce thème, je suis tombé ici (un forum que je parcours assez régulièrement en tant que lecteur)

    Je me permet donc de faire resurgir ce post...

    je travaille sur OS X (côté perso) et au boulot, c'est 100% windows.

    Je cherche pour une application que je souhaite développer un moyen de jouer des son (wav, mp3 ou ogg)
    Parmis toutes les possibilités proposées, presque toutes font appel a des bibliothèques autre que les standards que Python.
    Voulant utiliser Python 3.1, je suis bien embêté : pymedia n'existe pas pour 3.1, pygame, pas encore.

    Une autre solution proposée winsound : inconvénient, il ne fonctionne que sur windows.

    J'ai essayer wave, mais rien n'y fait, ça ne joue pas le son. On peut extraire toutes les infos que le veut du fichier wav, mais pas le jouer.

    Existe-t-il une méthode, en utilisant la bibliothèque standard de python pour jouer un son, et ce quelque soit la plateforme ?
    Salut l'ami,

    Pour m'être aussi posé la question et avoir "pagayer" ou plutôt "ramer" sur le Net, la réponse est....NON. La librairie standard ne permet pas de jouer du son. Alors il reste effectivement l'utilisation des autres librairies dédiées (Pygame, Pymédia.....). Par contre avec PYTHON 3 çà ne le fait pas.
    Solution : rester avec PYTHON 2.xx. c'est ce que je fais car de ce que j'en conclus au vu de ce qui ce dit sur les forums et autres Blogs, il n'y a aucune raison de passer à la version 3.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Jouer un son wav avec fichier intégré dans les ressources
    Par Claude_Azoulai dans le forum C#
    Réponses: 5
    Dernier message: 29/05/2013, 14h01
  2. Jouer un son wav avec matlab
    Par mattparla dans le forum MATLAB
    Réponses: 7
    Dernier message: 02/03/2010, 16h01
  3. Jouer un son wav avec sndPlaysound
    Par therrm dans le forum Pascal
    Réponses: 1
    Dernier message: 03/02/2008, 04h37
  4. jouer un son WAV avec sndPlaySound ?
    Par gdlbb dans le forum C
    Réponses: 21
    Dernier message: 13/05/2006, 17h26
  5. Avec VBE, faire jouer un son .Wav
    Par francois1955 dans le forum Général VBA
    Réponses: 6
    Dernier message: 09/12/2005, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo