Strange behavior of Piezo Beeper on pin D10 when writing to EEPROM

I have a piezo beeper on D10, and I’ve noticed it gives a very faint beep/buzz sound. I thought it was everytime I read my DS3234 RTC chip, but I’ve with some commenting out of things, I see it’s when I call the writeAnything() function. This function is shown below, but basically it saves my struct variable to EERPOM.
Is there an explanation for why this is happening, and is it anything to worry about? (This is a commercial product I’m working on, so I need it to be reliable).

My variable is:

struct confing_mySettings {
  boolean Alarm; //true = alarm is set
  int systemON; //for power failure
}
s;

and I save it to EEPROM by:

  noInterrupts(); //disable interrupts while we do this
  EEPROM_writeAnything(0, s); //save settings to EEPROM
  interrupts();

This is the writeAnything function:

typedef unsigned char byte;

template <class T> int EEPROM_writeAnything(int ee, const T& value)
{
    const byte* p = (const byte*)(const void*)&value;
    int i;
    for (i = 0; i < sizeof(value); i++)
	  EEPROM.write(ee++, *p++);
    return i;
}

template <class T> int EEPROM_readAnything(int ee, T& value)
{
    byte* p = (byte*)(void*)&value;
    int i;
    for (i = 0; i < sizeof(value); i++)
	  *p++ = EEPROM.read(ee++);
    return i;
}

What else is D10 connected to?

Nothing else.

It could be that the supply dips slightly under the "pressure" of doing the write to the EEPROM as this takes a bit of a surge in current. I would look at some more heavy decoupling on the processor. Or you could try buffering the beeper with a transistor or logic gate.