Para quem não sabe (eu também não): spd-say
lê um determinado texto em voz alta (por exemplo, se você não consegue ler a si mesmo ou gosta de ouvir em vez de ler).
Seu script parece ótimo, mas você caiu em uma armadilha:
spd-say
não espera até que tenha falado o texto fornecido. Em vez disso, o comando (quase) retorna imediatamente e continua falando em segundo plano. Se você executá-lo pela segunda vez sem esperar que a primeira conversa seja concluída (como em seu script), ela simplesmente será discutida na primeira parte. Para evitar isso, use a opção -w
(ou --wait
). Então, spd-say
retornará somente quando tiver concluído a conversa. Veja a página de manual para mais opções.
Então, em vez de
spd-say " Sorry, we don't have water, choose something else."
use
spd-say --wait " Sorry, we don't have water, choose something else."