需求

希望每天早上上班之前可以自动语言报告下今天的天气情况

准备

  • 树莓派3

  • 音响(前面已经配置了音响)

环境

python3

获取天气信息

本次我们使用的是墨迹天气,我住在浦东,就获取浦东的天气,浦东墨迹天气


源代码地址:https://github.com/apanly/pi3Robot/blob/master/jobs/tasks/weather/index.py

文字转语音(TTS)

我选择了一个快速可以实现,拿起来就可以用的一个Http Api。我从百度语音演示页面通过开发者工具发现这个api的,拱大家使用。


http://tts.baidu.com/text2audio?idx=1&tex=你好,我是编程浪子&cuid=baidu_speech_demo&cod=2&lan=zh&ctp=1&pdt=1&spd=4&per=4&vol=5&pit=5


然后根据mplayer 直接播放这个网址就可以啦

定时任务

使用linux的crontab


 45 8 * * * export ops_config="production" && python manage.py runjob -m weather/index

总结

通过抓取 墨迹天气的天气信息,然后使用 百度的语音合成Api 生成 语音内容,然后使用mplayer 播放。为了每天定时提醒,借用了Linux的crontab

彩蛋

关于文字转语音,还有软件可以实现,不用依赖api。那就是espeak


安装espeak

$ sudo apt-get install espeak

使用

$ espeak -vzh “hello world”

$ espeak -vzh “你好,编程浪子”


缺点就是声音有点假