2回答

1收藏

[教程] [教程]使用树莓派打造一台提醒机亲测成功

Raspberry Pi Raspberry Pi 6899 人阅读 | 2 人回复 | 2016-08-17

本帖最后由 风飞花 于 2016-8-20 09:53 编辑

原文:http://www.tuicool.com/articles/67Nbuir
原创不是我,我只是就原创教程做进一步整理,因为说实话原创让我有点云里雾里。此教程谨献给小白们!
谢谢大家的支持!


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

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

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

首先我默认你拥有一块树莓派,并且你安装好了Linux操作系统,连上了网络。

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

装上了扬声器之后,我们还需要相应的软件去播放声音,我使用的软件是mpg123,mpg123是一个非常便捷高效的Linux命令行播放器,安装mpg123的命令是:
  1. sudo apt-get install mpg123
复制代码
具体的用法可以通过命令
  1. man mpg123
复制代码
来查看,我们可以试试这个命令,如果能听到悠扬的歌声,则说明你的mpg123 以及扬声器工作正常
  1. mpg123 “http://music.baidutt.com/up/kwcawskw/dscskw.mp3″
复制代码
(事实上,链接已经失效,无法播放。但不影响,只是以此展示mpg123的使用方法!)
,当然也可以用mplayer,安装mplayer的命令是:
  1. sudo apt-get install mplayer
复制代码
播放声音的部分搞定了,下面我们要做语音合成,语音合成,就是你听到的死板的电脑声音,虽然死板,但有时候听着却很好玩,我用的是百度的语音合成,百度的语音合成能够自定义音调,语速,男女声,这能够做出很多好玩的声音,百度语音的地址是: http://yuyin.baidu.com

你需要注册账号,注册一个新应用,获得一个id和key,然后用这个id和key获得token



这里是一个获取token的简单方法:

首先在开发者平台申请了web应用,然后会给你一个api key

打开浏览器输入如下URL

https://openapi.baidu.com/oauth/2.0/authorize?response_type=token&client_id={你的API KEY}&redirect_uri=oob&scope=netdisk

显示如下字符

百度


OAuth2.0
在url里找到
http://openapi.baidu.com/oauth/2 ... 92000&access_token={access_token}&session_secret={session_secret}&session_key={session_key}&scope=basic+netdisk

获取token,然后就可以通过拼接url的方式来合成语音了,具体的拼接方式是:
  1. 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,cuid是key,最后的tok是你通过你的id和key获取到的token,具体的获取方式见百度语音的文档。
总之,现在你直接在浏览器打开这个链接,就可以听到合成的语音了,你在树莓派里面输入命令
  1. mpg123 “http://tsn.baidu.com/text2audio?tex=大家好我是机器人&lan=zh&per=0&pit=9&spd=9&cuid=***&ctp=1&tok=xxxxxxx”
复制代码
就可以从树莓派的喇叭里面听到它说这句话了。

为了让说话这件事更简单方便一点,我们写一个python文件来调用,文件名为read.py,python文件代码如下(这里特别要注意引号“  ” 、‘  ’ 的配对,否则会出错 )
  1. # -*- coding: utf-8 -*-

  2. import os

  3. import sys

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

  5. #print url

  6. os.system(‘mpg123 “%s”’%(url))
复制代码
这样一来,我们只需要输入命令

python read.py 合成文字内容

来很方便的合成语音了

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

我们输入命令

sudo crontab -e

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



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

好了,这就是本次教程,希望大家能够玩的愉快。
分享到:
回复

使用道具 举报

回答|共 2 个

倒序浏览

沙发

PokeBox

发表于 2016-9-7 20:34:58 | 只看该作者

其实可以用espeak指令。不然没有网络的时候用云语音就用不了了~
板凳

盛京老驴

发表于 2016-9-12 22:27:36 | 只看该作者

好像和我现在要做的项目有点贴近啊,改天试试!!!
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条