Você poderia usar seu crontab
Crie um pequeno script
mkdir -p ~/bin
nano ~/bin/say_hour
adicione o código abaixo
#!/usr/bin/env bash
my_date=$(date +'%H:%M:%S')
padsp espeak "$my_date"
e definir direitos executáveis
chmod +x ~/bin/say_hour
Edite seu crontab via
crontab -e
e adicione a configuração abaixo
0 * * * * bin/say_hour
Você pode substituir a espeaklinha por uma das possibilidades abaixo
sudo apt-get install espeak
espeak $(date +"%H:%M:%S")
espeak $(date +%T)
# Adjust speed with `-s`, in words per minute, default is 160
espeak -s 10 $(date +"%H:%M:%S")
ou
sudo apt-get install festival
date +"%H:%M:%S" | festival --tts
date +%T | festival --tts
ou
sudo apt-get install speech-dispatcher
spd-say $(date +"%H:%M:%S")
spd-say $(date +%T)
# Adjust speed with (-100 .. 0 .. 100)
spd-say -r -50 $(date +%T)
%I - formato da hora (01..12)
%H - hora no formato (00..23)
%M - minuto (00..59)
%S - segundo (00..60)
%T- HH:MM:SSno formato 24
Mais opções via man date, man espeak, man festivaleman spd-say
dateproduz em texto. talvez você possa canalizar isso através de um programa de conversão de texto em fala?