Partage
  • Partager sur Facebook
  • Partager sur Twitter

Streamer du son ?

    4 mai 2015 à 16:00:16

    Hello ! :)

    Alors voilà, tout est dans le titre.

    Je souhaiterai savoir s'il est possible de streamer du son avec Python.

    C'est-à-dire : créer un flux de son .wav et l'envoyer simulanément en direct, sans pour autant bloquer l'utilisation de l'application qui diffuse le son.

    Est-ce possible? Auriez-vous des pistes?

    Merci d'avance ! ;)

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      4 mai 2015 à 16:56:29

      Oui, c'est possible.

      Je pense que j'utiliserais PyAudio pour avoir le flux audio que je pourrais immédiatement transmettre par socket UDP/IP.

      Pour développer quelque chose d'un peu plus poussé, je crois qu'il faudrait se renseigner sur le protocole XMPP (anciennement nommé Jabber).

      -
      Edité par Anonyme 4 mai 2015 à 16:57:06

      • Partager sur Facebook
      • Partager sur Twitter
        7 mai 2015 à 10:57:19

        Merci @celthon, je regarde ça ! :)

        C'est vrai que j'avais essayé avec Pyaudio mais pendant la lecture du son ça me bloquait l'utilisation de l'appli.

        Il fallait attendre que la lecture soit terminée pour pouvoir reprendre la main sur l'appli, mais peut-être que je m'y étais mal prise... :euh:

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          7 mai 2015 à 12:12:17

          Il faut threader la lecture audio. Etant donné le très bas niveau d'abstraction de PyAudio, les perfs de Python vont peut-être faire défaut. À la place du module threading, utiliser plusieurs processus avec multiprocessing sera plus pertinent.

          • Partager sur Facebook
          • Partager sur Twitter
            19 mai 2015 à 11:51:13

            Hello @celthon, depuis quelques jours j'essaie de streamer le son sans faire attention à mon appli mais je patauge un peu...

            Je ne vois pas comment créer le son via pyaudio et l'envoyer directement pour le lire en temps réel... Et j'avoue ne pas voir le lien avec les sockets, comment les utiliser?

            Si tu pouvais m'éclairer un peu.

            Voici un bout du code que j'ai fait pour le moment :

            		PyAudio = pyaudio.PyAudio
            		RATE = 16000
            		WAVE = 1000
            		data = ''.join([random.randint(-32768, 32767) for x in xrange(RATE)])
            		p = PyAudio()
            
            		stream = p.open(format =
            						p.get_format_from_width(1),
            						channels = 1,
            						rate = RATE,
            						output = True)
            		for DISCARD in xrange(5):
            			stream.write(data)
            		stream.stop_stream()
            		stream.close()
            		p.terminate()

            Une fois le son envoyé, comment faire pour modifier des valeurs qui ont été passées dans data?

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              19 mai 2015 à 12:26:08

              PyAudio sert uniquement à lire/écrire le son depuis/dans tes périphériques (microphone/haut-parleur, input/output). C'est son seul rôle. Le reste tu le gère avec les threads et les sockets.

              • Partager sur Facebook
              • Partager sur Twitter

              Streamer du son ?

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown