Macのsayで単語の間隔を開けてしゃべらせる

数秒おきにforkして子プロセスからsayを呼ばせるが正解

words.each{|word|
  pid = Process.fork()
  if pid == nil
    exec('say', word)
  else
    sleep 3
  end
}

普通にループで回してexecとsleepを繰り返しても最初の1つしか発音しない。
Threadでやっても同様に失敗する。sayにスペースをいくら渡しても無視されてしまう。