Aller au contenu


loic363

Inscrit(e) (le) 01 mai 2023
Déconnecté Dernière activité mai 01 2023 08:21
-----

Sujets que j'ai initiés

projet Prog teensy 4 en modulateur de voix

01 mai 2023 - 10:05

Bonjour a tous, d'abord je m'excuse si je n'ai pas posté au bon endroit j'ai un peu du mal il ya beaucoup de categorie sur ce magnifique forum haha


voila j'ai un projet que j'ai developper avec chatGPT, je dois dans le cadre d'un nouveau cosplay faire un modulateur de voix en temps reel.
j'en suis arrivé a la conclusion que l'ideal etait une carte teensy 4.0 + son module audio ( et aussi micro, haut parleur et ampli).

l'objectif pour moi etant d'avoir ces filtres suivant d'appliquer: Pitch, DoublePitch, HighPass, Distortion et Resonator

 

Donc du coup apres une conversation avec notre amis chatGPT (oui je connais que lui en IA et je maitrise pas assez le codage)

il en est ressorties 2 codes, cependant c'etait trop beau pour etre vrai hahaha, ca ne fonctionne pas enfin du moins lorsque je fais televerser sur la teensy j'ai plein de message d'erreur lié au codage.

es ce que une bonne âme charitable pourrait me donner un petit coup de main svp

voici les codes que j'ai:

 

#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>

// Définition des objets audio
AudioInputI2S            mic;
AudioAnalyzePeak         peak;
AudioEffectPitchShift    pitchshift;
AudioEffectMultiply      doublepitch;
AudioFilterBiquad        highpass;
AudioEffectDistortion    distortion;
AudioFilterStateVariable resonator;
AudioOutputI2S           speaker;

// Définition des connexions audio
AudioConnection          patchCord1(mic, 0, peak, 0);
AudioConnection          patchCord2(mic, 0, pitchshift, 0);
AudioConnection          patchCord3(pitchshift, 0, doublepitch, 0);
AudioConnection          patchCord4(doublepitch, 0, highpass, 0);
AudioConnection          patchCord5(highpass, 0, distortion, 0);
AudioConnection          patchCord6(distortion, 0, resonator, 0);
AudioConnection          patchCord7(resonator, 0, speaker, 0);
AudioConnection          patchCord8(resonator, 1, speaker, 1);

// Définition des broches pour l'interrupteur
const int buttonPin = 14;
bool buttonState = false;

void setup() {
  // Initialisation de la communication série pour le débogage
  Serial.begin(9600);
  
  // Initialisation de la carte audio
  AudioMemory(20);
  
  // Configuration des filtres audio
  pitchshift.amount(0.5);
  doublepitch.gain(0.5);
  highpass.setHighpass(0, 1000);
  distortion.amount(0.5);
  resonator.setBandwidth(0, 3);
  resonator.setFrequency(0, 1000);
  
  // Configuration de la broche pour l'interrupteur
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  // Lecture de l'état de l'interrupteur
  buttonState = digitalRead(buttonPin);
  
  if (buttonState == LOW) {
    // Lecture de l'entrée audio du microphone
    AudioStream::update_all();
    
    // Envoi du flux audio déformé vers le haut-parleur
    if (speaker.update()) {
      Serial.println("Playing audio...");
    }
  }
}



ainsi que 

 

#include <Bounce.h>
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>

AudioInputAnalog mic; // microphone analogique
AudioOutputAnalog speaker; // haut-parleur analogique
AudioEffectPitchShift pitchShift; // filtre Pitch
AudioEffectDoublePitchShift doublePitchShift; // filtre DoublePitch
AudioFilterStateVariable highPass; // filtre HighPass
AudioEffectDistortion distortion; // filtre Distortion
AudioFilterStateVariable resonator; // filtre Resonator
Bounce button = Bounce(0, 10); // bouton poussoir

void setup() {
  AudioMemory(20); // allouer la mémoire audio
  button.attach(0, INPUT_PULLUP); // configurer le bouton poussoir
  highPass.frequency(500.0); // régler la fréquence de coupure du filtre HighPass
  highPass.resonance(1.0); // régler la résonance du filtre HighPass
  distortion.amount(0.5); // régler l'intensité du filtre Distortion
  resonator.frequency(400.0); // régler la fréquence du filtre Resonator
  resonator.resonance(1.5); // régler la résonance du filtre Resonator
}

void loop() {
  button.update(); // mettre à jour l'état du bouton poussoir
  if (button.fallingEdge()) { // si le bouton est enfoncé
    // activer tous les filtres
    pitchShift.begin(1.0, 12.0); // régler l'intensité et la hauteur du filtre Pitch
    doublePitchShift.begin(2.0, 12.0); // régler l'intensité et la hauteur du filtre DoublePitch
    highPass.enable(1); // activer le filtre HighPass
    distortion.enable(1); // activer le filtre Distortion
    resonator.enable(1); // activer le filtre Resonator
  } else if (button.risingEdge()) { // si le bouton est relâché
    // désactiver tous les filtres
    pitchShift.end(); // désactiver le filtre Pitch
    doublePitchShift.end(); // désactiver le filtre DoublePitch
    highPass.disable(1); // désactiver le filtre HighPass
    distortion.disable(1); // désactiver le filtre Distortion
    resonator.disable(1); // désactiver le filtre Resonator
  }
  // lire l'entrée audio du microphone et la traiter avec les filtres activés
  float micLevel = mic.read();
  float outLevel = pitchShift.process(doublePitchShift.process(highPass.process(distortion.process(resonator.process(micLevel)))));
  // envoyer la sortie audio au haut-parleur
  speaker.write(out




merci beaucoup


presentation loic363

01 mai 2023 - 09:46

Salut a tous moi c'est loic 31 ans... deja...  :crigon_03:

 

je suis dans le sud ouest (64), je suis pas un robotitien et j'ai une connaissance assez limité dans ce domaine mais je suis bricoleur en tout genre et en ce moment je m'amuse avec un arduino et une carte teeensy ;)

en revanche je fais pas mal d'impression 3d resine et filament je possede une mega phrozen 8k et une v400