报时钟声音:用任意声音自制会说话的时钟
会说话的时钟会把时间读出来:每个整点、按下按钮时或在固定时间。现成的时钟只有一个内置声音。如果想让旁白、卡通角色或家人的声音来报时,可以自己动手做一个。
本指南介绍如何用免费的 SuperClonica 引擎把一天中的每个时刻生成一次,以及如何在树莓派或任何 Linux 电脑上播放对应的文件,无需联网,无需订阅。注意:SuperClonica 引擎不支持中文朗读,可以用英语、日语等 31 种语言报时。
每个时刻只生成一次
一天有 1440 分钟,所以 1440 个短文件就能覆盖任意时刻;只做整点报时的话 24 个就够了。按应有的读法用文字写出时间,例如英语 “It is seven oh five” 或 “It is half past nine”,这样声音就不必猜测 07:05 该怎么读。用 python -m pip install superclonica-cpu 安装免费引擎,在 Python 中写 from superclonica import Superclonica, tts = Superclonica(), then for h in range(24) and m in range(60): text = words(h, m); audio, rate = tts.synthesize(text, voice="voice.json", lang="en", seed=4); tts.save(f"{h:02d}{m:02d}.wav", audio),其中 words 是你为所用语言编写的小函数。固定 seed 能让所有文件保持同一个声音。
每个整点播放对应文件
在接有扬声器的树莓派或任何 Linux 电脑上,计划任务工具 cron 可以播放当前时刻的文件。像 0 * * * * aplay /home/pi/clock/$(date +\%H\%M).wav 这样的一行 crontab 会在每个整点报时。在 crontab 中,百分号必须写成 \%,否则 cron 会把它变成换行。如果想用按钮报时,就在按钮触发的脚本里运行同样的 aplay 命令。
选择声音
在各声音页面输入一句报时语(30 到 100 个字符),无需账号即可免费试听:床头时钟适合平稳的旁白,儿童房适合角色声音。如果想做家人声音的时钟,请在对方同意后录制 5 到 10 秒清晰的语音,并在工作室训练声音;在自己的 NVIDIA 显卡上训练是免费的。
其他语言的时钟
引擎支持 31 种语言,目前不支持中文。每种语言报时的方式不同:德语把 7:30 说成 “halb acht”,俄语中“小时”和“分钟”的词形随数字变化,日语使用 時 和 分。在函数中写好你所用语言的时间说法,在生成一整天之前先听几个不同时刻的文件。
什么时候现成的时钟更好
如果有人因为视力不好需要随时听到时间,现成的语音报时钟或手机的读屏功能比自制装置更简单、更可靠。自制的会说话的时钟最适合作为兴趣项目、带有熟悉声音的礼物,或在工作间、商店、教室里整点报时。