自从我上次写了一篇树莓派入门攻略之后,我的树莓派就闲置了,我的意思是,我虽然写了一篇阅读量很大的入门攻略,致使可能不少人都把我当成高手,但我的水平也仅仅是入门而已,每天都有不少人来看我的这篇文章,时间长了,我还是感觉到有点不好意思,自己水平不够,大家却来看你的教程,这未免有误人子弟的嫌疑,因此,最近我又摸出了角落里的树莓派,打算好好鼓捣鼓捣。

本来我打算做一个智能机器人,但卡在了语音识别上面,我用python的百度语音RESTAPI来做识别,但识别率出奇的低,而录的音听上去很清楚,且百度官方的demo用着还是挺能识别的,所以我怀疑是python的wave库的问题或者编码或者上传的问题。但总之,我遇到了问题,遗憾的是,这个问题现在还存在,所以你不会看到一篇如何用树莓派做智能机器人的教程,不过我不保证以后我的博客不会出现这篇教程,但我可以保证的是,如果哪天出了这个教程,那它教你做的东西,一定酷的翻天。

好了,现在我们来看看,如何用树莓派做一个定时提醒机,提醒机这个名字应该是我发明的,这样听上去厉害一点,但它的主要作用就是在你定好的时间,说出一句话,比如每隔半个小时说一次「认真看书!」或者每天早上的六点半自动开始放一曲提神的凤凰传奇。

我白天要去一家好玩的公司实习,树莓派在家里,每隔一个小时就会提醒我女朋友喝水,每隔一个半小时会提醒她认真学习,还会不定时的说一些好玩的话给她听,这让她觉得非常有意思,她甚至还表示可能会爱上树莓派,当然我对此表示怀疑,树莓派虽然在程序的控制下显得很可爱,但谁也很难对着一块电路板产生感情。

说了这么多废话,下面开始正式一点讲教程了。

首先我默认你拥有一块树莓派,并且你安装好了Linux操作系统,连上了网络,如果你还没有完成上述任务,请先查看我的上一篇教程:树莓派菜鸟入门攻略

好了,现在你拥有一块安装好操作系统,能够上网的树莓派了,我们开始吧。

要能够说话,首先要有嘴巴,对于树莓派来讲,这就意味着扬声器,因此,我们要给树莓派装一个扬声器,树莓派的要求并不高,大多数扬声器都能满足要求且能够工作,我就是用的随便翻出的一对USB小喇叭。

装上了扬声器之后,我们还需要相应的软件去播放声音,我使用的软件是mpg123,mpg123是一个非常便捷高效的Linux命令行播放器,安装mpg123的命令是:

sudo apt-get install mpg123

输入完之后会问你是否继续,输入Y继续

接着它滚动一番,然后就装好了,装好之后就可以通过输入命令mpg123来播放声音了,具体的用法可以通过命令

man mpg123

来查看,我们可以试试这个命令,如果能听到悠扬的歌声,则说明你的mpg123 以及扬声器工作正常

mpg123 “http://music.baidutt.com/up/kwcawskw/dscskw.mp3”

我不会告诉你这是一首非常非主流的音乐。

播放声音的部分搞定了,下面我们要做语音合成,语音合成,就是你听到的死板的电脑声音,虽然死板,但有时候听着却很好玩,我用的是百度的语音合成,百度的语音合成能够自定义音调,语速,男女声,这能够做出很多好玩的声音,百度语音的地址是:http://yuyin.baidu.com

你需要注册账号,注册一个新应用,获得一个id和key,然后用这个id和key获取token,然后就可以通过拼接url的方式来合成语音了,具体的拼接方式是:

http://tsn.baidu.com/text2audio?tex=大家好我是机器人&lan=zh&per=0&pit=9&spd=9&cuid=***&ctp=1&tok=xxxxxxx

tex是要合成的语音内容,per是声音的性别,1是男,0是女,默认是女,pit是音调,spd是语速,调节范围都是1-9,最后的tok是你通过你的id和key获取到的token,具体的获取方式见百度语音的文档。总之,现在你直接在浏览器打开这个链接,就可以听到合成的语音了,你在树莓派里面输入命令

mpg123 “http://tsn.baidu.com/text2audio?tex=大家好我是机器人&lan=zh&per=0&pit=9&spd=9&cuid=***&ctp=1&tok=xxxxxxx”

就可以从树莓派的喇叭里面听到它说这句话了。

为了让说话这件事更简单方便一点,我们写一个python文件来调用,文件名为read.py,python文件代码如下:

# -*- coding: utf-8 -*-

import os

import sys

url = “http://tsn.baidu.com/text2audio?tex=”+sys.argv[1]+”&lan=zh&per=1&pit=1&spd=7&cuid=***&ctp=1&tok=xxxxxxx”

#print url

os.system(‘mpg123 “%s”‘%(url))

这样一来,我们只需要输入命令

python read.py 合成文字内容

来很方便的合成语音了

最后我们要解决的问题是定时,这个Linux系统本身就有很好的解决方案:crontab

我们输入命令

sudo crontab -e

来打开这个定时器,我给你们看看我的

比如第一个,就是每隔一个小时,执行一次后面的命令,第三个是每天的九点四十五,执行一次。

关于crontab的更多用法,你可以自行Google,另外,我并不是秀恩爱,我是满怀着忧伤写的,因为此刻我女朋友正在跟我生气不理我。

好了,这就是本次教程,希望大家能够玩的愉快。


我的微信公众号~