Для речи с качеством телефона вы можете изменить до 8 бит на выборку и частоту дискретизации 8000. Это значительно уменьшит объем данных.
Вы помещаете в массив ссылки на один и тот же объект. В результате все элементы отображаются одинаково. Используйте клон для создания нового на основе данных исходного объекта
function getMonths(){
$st_date = new DateTime('2019-01-01');
$yms = array(clone $st_date);
while($st_date < new DateTime()){
array_push($yms, clone $st_date->add(new DateInterval('P1M')));
}
print_r($yms);
}