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