如何让我的Ruby脚本在运行时宣布值?

时间:2016-09-25 20:13:02

标签: ruby text-to-speech

假设我已经捕获了两个值,100009/01/2016(并假设今天是10/01/2016)。

如何在运行时将Ruby字符串"one thousand for 30 days"转换为控制台内的可听语音?

1 个答案:

答案 0 :(得分:3)

您可以使用gem humanize将int 1000转换为英文名称,

你还需要date1 - date2这样的东西才能获得天数的差异。

类似的东西:

number.humanize + ' for ' + (Date.today - myDate).to_i.to_s

为了让bash大声说出这个字符串,你可以使用你提到的那个说法; ruby允许从语言中轻松调用bash命令,只需执行以下操作:

str = number.humanize + ' for ' + (Date.today - myDate).to_i.to_s
`say #{str}`

否则,如果您想要更原生的解决方案,可以使用espeak gem:

speech = Speech.new(str)
speech.speak # invokes espeak