Колбек использует то значение стейта что было на момент создания колбека. 
Соответственно хоть speak вызван после setCounts значение там предыдущее.
Есть два решения:
1. Не вызывать speak вручную по клику а добавить useEffect отслеживающий изменение count и вызвать speak в нем.
2. Вместо useState использовать useRef, тогда значение count.current будет всегда браться актуальное по ссылке
Upd. 
Ещё можно передать аргументом в колбек speak что мы хотим озвучить. На мой взгляд это самое явное и прямолинейное решение