Forum général.cherche-logiciel Modifier le pitch d'un signal audio en temps réel

Posté par .
Tags : aucun
0
7
août
2007
Bonjour,

Je recherche une solution simple, de préférence en ligne de commande, pour modifier en temps-réel le pitch du signal présent sur l'entrée micro ou line-in de la carte son, et de faire sortir le résultat sur la sortie audio. Si on peut aussi appliquer d'autres effets au choix, tant mieux...

J'ai bien vu audacity et terminatorX qui permettent ce genre d'effet, mais uniquement sur des fichiers enregistrés (ou alors, j'ai loupé la fonction)

Merci de votre attention ;-)
  • # man sox

    Posté par . Évalué à 4.

    Ya pas mal d'effet avec, dont un modifieur de pitch, et ça fonctionne avec stdin (infile='-') et stdout (output='-'). C'est donc adapté au traitement au fil de l'eau.
    • [^] # Re: man sox

      Posté par . Évalué à 2.

      Et dire qu'il était déjà installé ... (je m'en suis déjà servi à je ne sais plus quelle occasion.) Merci !!
      • [^] # Re: man sox

        Posté par . Évalué à 2.

        La commande sur une ligne, ça donne:

        $ mkfifo /tmp/sox.wav; brec -s44100 -b16 /dev/stdout | sox -t raw -r44100 -swc1fu - /tmp/sox.wav pitch -300 & play /tmp/sox.wav; killall brec; rm /tmp/sox.wav

        Pour changer de voix, modifier la valeur en gras, soyez généreux sur les chiffres, entre -1000 et 1000 semble le maximum... entre -100 et 100 est presque inaudible.
        • [^] # Re: man sox

          Posté par . Évalué à 2.

          Par contre attention, je viens de rencontrer ce bug:
          http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%23267122

          Sémaphore non libérés par brec à priori...
          • [^] # Re: man sox

            Posté par . Évalué à 2.

            reportbug envoyé. Pour faire le ménage dans l'intervalle:

            $ for s in $(ipcs -s | cut -d' ' -f2); do ipcrm -s $s; done
        • [^] # Re: man sox

          Posté par . Évalué à 1.

          C'est quoi l'interet de brec par rapport à rec (et donc sox) ?
          Et pourquoi créer une fifo ?
          Pourquoi pas tout simlement (si je comprends bien, tu es en mono, freq=44100 et linaire 16 classique):

          sox -t .sw -r 44100 -c 1 /dev/dsp -t .sw -r 44100 -c 1 /dev/dsp pitch -300
          • [^] # Re: man sox

            Posté par . Évalué à 2.

            Disons que c'est la commande qui a fini par fonctionner chez moi... C'est certainement optimisable.

            Pour info, j'ai testé ta commande, j'ai faillit perdre une oreille... je ne sais pas si tu as testé, mais ici j'ai droit a un trux qui ressemble vaguement à un larsen saturé, et qui finit par un segfault...

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.