Arduino Due plays audio with cell phone speaker?

I am trying to do a project in conjunction with several sensors and in the mode of wanting to reproduce an audio from a micro sd for an alarm, I bought a speaker from a cell phone and when connecting to the DAC output of the arduino Due the audio has a very low volume so I want to know if an amplifier circuit is needed for this type of speaker.


Also for misinformation I bought a speaker grove:
images
and I tried to play audio but I hear a lot of static and the audio itself sounds very low, so I would like to know if someone knows how to do to have a relatively loud and clear audio Thanks
the code used is the same test code of Arduino Due Audio, I attach it

#include <SD.h>
  #include <SPI.h>
  #include <Audio.h>
  
  const int chipSelect = 53;
  int count = 1;
  const int S = 1024; // Number of samples to read in block
  int volume = 1024;
  
  void setup() {
  
    // debug output at 9600 baud
  
    Serial.begin(9600);
  
    // setup SD-card
  
    Serial.print("Initializing SD card...");
    pinMode(4,OUTPUT);
  
    if (!SD.begin(chipSelect)) {
  
      Serial.println(" failed!");
  
      while(true);
  
    }
  
    Serial.println(" done.");
  
    // hi-speed SPI transfers
  
    // 44100kHz stereo => 88200 sample rate
  
    // 100 mSec of prebuffering.
  
    Audio.begin(88200, 100);
  }
  
  void loop() {
    // open wave file from sdcard
    File myFile = SD.open("test.wav");
    if (!myFile) {
  
      // if the file didn't open, print an error and stop
  
      Serial.println("error opening test.wav");
  
      while (true);
  
    }
    short buffer[S];
  
    Serial.print("Playing");
  
    // until the file is not finished
  
    while (myFile.available()) {
      
      // read from the file into buffer
  
      myFile.read(buffer, sizeof(buffer));
  
      // Prepare samples
  
      Audio.prepare(buffer, S, volume);
  
      // Feed sampletks to audio
  
      Audio.write(buffer, S);
  
      // Every 100 block print a '.'
  
      count++;
  
      if (count == 100) {
  
        Serial.print(".");
  
        count = 0;
  
      }
  
    }
  
    myFile.close();
  
    Serial.println("End of file. Thank you for listening!");
  
    while (true) ;
  }

Moderador:
Por favor, lee las Normas del foro y no publiques la misma pregunta por cuanta sección e idioma encuentres.
Acabas de cometer un doble posteo o cross post.
Este hilo permanecerá cerrado y luego será borrado.