Skip to content

moontide/AnnounceTime

Repository files navigation

报时脚本

适用于深圳市的报时 bash 脚本,用来播报当前时间、深圳市天气信息(每隔 4 小时)。

  • 建议每隔半小时调度报时。 一个简单的 crontab 设置:
    0,30 * * * * <你的帐号> /本脚本的路径/本脚本

    午休不放音
    0,30 * 0-12,14-23 * * <你的帐号> /本脚本的路径/本脚本
  • 脚本会播报“上午”、“下午”、“晚上”等粗略时辰信息,并根据深圳市当天的日出时间、日落时间,在日出前报时时将时辰播报为“凌晨”,在日落前一小时报时时将时辰信息播报为“傍晚”。 具体时辰信息如下(时间区间为:包含左侧时间点、不包含右侧时间点,即 '[)'):
    • “半夜”: 半夜 12 点及之后的一个小时
    • “凌晨”: 1 点到深圳日出时间
    • “早上”: 深圳日出时间到 08:30
    • “上午”: 08:30 到 11:30
    • “中午”: 11:30 到 13:30
    • “下午”: 13:30 到深圳日落前一小时
    • “傍晚”: 深圳日落前一小时 到 深圳日落
    • “晚上”: 深圳日落 到 半夜 12 点
  • 播报深圳天气信息: 每隔 4 小时的整点(具体说:00:00、04:00、08:00、12:00、16:00、20:00)报时时,附带播报深圳当日天气信息
  • 播报提醒音: 在报时前,会先播报一个提示音。提示音在脚本当前路径下,名称为: announce-time-notification.mp3,可以将其他位置的 mp3 文件软连接到该文件名,格式必须为 mp3

脚本依赖关系

若要正常使用报时,还需要安装如下包

  • sox - 语音处理工具。这里只用到的了它提供的 play 功能,用来将播报提醒音、TTS 语音播放出来。注意:确保你所使用的 sox 带有播放 mp3 格式的插件。
  • jq - 处理 JSON 数据的命令行工具。用来从深圳气象台返回的 JSON 数据中提取有用信息的工具
  • curl - 通常多数发行版都会有这个工具,但 debian 默认安装的是 wget
  • head / tail - 通常多数发行版都会有这两个工具(隶属于 coreutils 包)

百度语音 API 脚本及百度 APP KEY

本脚本使用了百度语音 API 接口来将文字转为语音,所以,你需要先去 http://yuyin.baidu.com/ 申请百度语音 API 的 APP KEY 和 APP 密码。申请后,将 key 的内容放到 /etc/asterisk/baidu-cloud-app-key.txt 文件中,将密码放到 /etc/asterisk/baidu-cloud-app-password.txt 文件中。并确保这两个文件的权限能让运行报时脚本的操作系统帐号访问。

然后,将本项目的 baidu-voice-api.sh 文件存放到 /etc/asterisk 文件夹下(这个脚本原先是用在 asterisk 服务器中的,所以还是沿用了原来的路径,你也可以放在其他地方,但要改一下 announce-time.sh 脚本),并为该文件加上可执行的权限。

最后,还要创建 /var/spool/asterisk/baidu-voice-api-results/ 文件夹,该文件夹用来存储语音合成的语音文件,并确保该文件夹的权限能被运行报时脚本的操作系统帐号访问。

建议安装 asterisk 软件包,然后将你的操作系统帐号加到 asterisk 操作系统工作组中(需要注销或者重启才能生效,或者使用 su - 命令让 asterisk 工作组成员在新的终端窗口内生效),然后将 /var/spool/asterisk/baidu-voice-api-results/ 的权限设置为 775,将 /var/spool/asterisk/ 的权限设置为 770

About

用于深圳市的播报时间 bash 脚本 -- 利用百度语音合成功能,将时间、从深圳气象台获取的天气信息播报出来

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages