以下内容为本人原创
原文链接:https://blog.csdn.net/Yhen1/article/details/113812520
作者:@Yhen
发布网站:CSDN
未经本人同意禁止转载,如需转载请说明此出处,违者必究

大噶好,我是Yhen
这篇文章带给大家的经验分享是树莓派+百度语音识别打造语音定时播报系统

文章目录

  • 一.项目目标
  • 二.前期准备
  • 三.获取树莓派的温度
  • 四.调用百度语音合成接口
  • 五.树莓派连接蓝牙音箱
  • 五.使用树莓派播放语音
  • 六.创建定时任务 定时播报语音
  • 七.完整代码获取
  • 八.往期文章回顾

2021.09.22更新
好消息好消息!我发现百度智能云现在可以免费体验云服务器啦
领取流程可以参考这篇文章哦
「云服务器」白嫖3个月百度智能云4M60G云服务器

一.项目目标

每天在 8:00-23:00的 每个整点时准时报时并播报当前的室内实时温度

二.前期准备

下面是本篇文章所要用到的物品
1.树莓派
2.DS18B20温度传感器
3.蓝牙音箱(其实是个能连接树莓派的音箱都可以,但本篇仅以蓝牙音箱做演示)
4.百度智能云账号
5.所需安装的Python第三方库(pip install +库名)
①schedule
②baidu-aip
③datetime

导入Python第三方库

from aip import AipSpeech
import time
import schedule
import os
import datetime

三.获取树莓派的温度

具体的获取方法我之前在这篇文章中已经有说到了
【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享
这里就不再累赘了,直接贴个代码吧

tfile = open("/sys/bus/w1/devices/28-01202913b0f4/w1_slave")
text =  tfile.read()
tfile.close()
secondline=text.split("\n")[1]
temperaturedata = secondline.split(" ")[9]
temperature = float(temperaturedata[2:])
temperature =round( temperature / 1000,2)

这里的temperature就是温度传感器检测到的温度
PS:这里的28-01202913b0f4每个人都不一样的,具体还是请看上面的文章

代码封装:

def get_weatherresport():# 获取当前的时间 '%Y-%m-%d %H:%M:%S' 获取时间的年月日 时分秒now=datetime.datetime.now().strftime('%H')# 获取当前的温度值tfile = open("/sys/bus/w1/devices/28-01202913b0f4/w1_slave")text = tfile.read()tfile.close()secondline = text.split("\n")[1]temperaturedata = secondline.split(" ")[9]temperature = float(temperaturedata[2:])temperature = round(temperature / 1000, 2)#前面加上00因为树莓派的omxplayer软件用蓝牙耳机播放语音时前面会有一点听不到,所以要放两个0来占位,如无出现此问题,请删掉!text='00现在是北京时间'+str(now)+'时。'+'现在的温度是'+str(temperature)+'摄氏度哦'print(text)return text

四.调用百度语音合成接口

这一步是调用百度的语音合成接口,将文字转为语音

关于百度智能云项目的创建方法我之前也在这篇文章中写到过了
Yhen手把手带你使用百度智能云①----项目的创建

但是这次需要用到的是语音合成接口
https://ai.baidu.com/tech/speech/tts_online

创建好应用后查看自己的AppID,API Key以及Secret Key


并填入下面的代码中

""" 你的 APPID AK SK """
APP_ID = '填你自己的appid'
API_KEY = '填你自己的apikey'
SECRET_KEY = '填你自己的secretkey'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
result = client.synthesis(weather, 'zh', 1, {'vol': 5,  #音量,取值0-15,默认为5中音量'per':3,   #发音人  发音人选择, 0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女'spd':4#语速    语速,取值0-9,默认为5中语速
})
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):with open('auido.mp3', 'wb') as f:f.write(result)time.sleep(1)f.close()

更详细的介绍请看官方文档
https://ai.baidu.com/ai-doc/SPEECH/Gk4nlz8tc

代码封装:

def Speech_recognition(weather):""" 你的 APPID AK SK """APP_ID = 'xxxxxx'API_KEY = 'xxxxxx'SECRET_KEY = 'xxxxxx'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)result = client.synthesis(weather, 'zh', 1, {'vol': 5,  #音量,取值0-15,默认为5中音量'per':3,   #发音人  发音人选择, 0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女'spd':4#语速    语速,取值0-9,默认为5中语速})# 识别正确返回语音二进制 错误则返回dict 参照下面错误码if not isinstance(result, dict):with open('auido.mp3', 'wb') as f:f.write(result)time.sleep(1)f.close()

五.树莓派连接蓝牙音箱

首先在图形界面中点击“蓝牙”图标

点击“Add device”

找到自己的蓝牙音箱设备后点击“Pair”

连接成功后将音频的输出设备更改为蓝牙音箱

五.使用树莓派播放语音

首先在树莓派中安装omxplayer库

apt-get install omxplayer

在Python中用os模块执行linux指令

os.system('omxplayer -o alsa auido.mp3')

六.创建定时任务 定时播报语音

首先将上面两个函数封装在一个任务函数中

def job():weather=get_weatherresport()Speech_recognition(weather)

设置在每天的早上8点到晚上的11点整执行语音播报任务.

schedule.every().day.at("08:00").do(job)
schedule.every().day.at("09:00").do(job)
schedule.every().day.at("10:00").do(job)
schedule.every().day.at("11:00").do(job)
schedule.every().day.at("12:00").do(job)
schedule.every().day.at("13:00").do(job)
schedule.every().day.at("14:00").do(job)
schedule.every().day.at("15:00").do(job)
schedule.every().day.at("16:00").do(job)
schedule.every().day.at("17:00").do(job)
schedule.every().day.at("18:00").do(job)
schedule.every().day.at("19:00").do(job)
schedule.every().day.at("20:00").do(job)
schedule.every().day.at("21:00").do(job)
schedule.every().day.at("22:00").do(job)
schedule.every().day.at("23:00").do(job)while True:schedule.run_pending()   #run_pending:运行所有可以运行的任务

后台执行Python程序

nohup python3 Timing_Task.py &

到这里已经完成了
那么你就可以在每天早上8点到晚上11点整时都可以听到
现在是北京时间xxx时,现在的温度是xxx”了

七.完整代码获取

扫码关注我的微信公众号Yhen杂文铺后台回复关键词定时播报即可获取哦.

创作不易 如果您觉得这篇文章对你有所帮助
可以轻轻点个小赞支持一下 这是对我们创作者最大的动力
谢谢支持 下期见

八.往期文章回顾

Yhen带你趣味入门Python①—Windows下Python下载及安装

【python热搜爬虫+定时发送邮件操作①】不会吧不会吧!不会2020了还有人需要用软件看微博热搜吧?

【python微博爬虫+定时发送邮件操作②】不会吧不会吧!不会2020了还有人需要用软件看微博热搜吧?

【爬虫+数据可视化】Yhen手把手带你爬取CSDN博客访问量数据并绘制成柱状图

【爬虫】Yhen手把手带你爬取去哪儿网热门旅游信息(并打包成旅游信息查询小工具

【实用小技巧】用python自动判断并删除目录下的空文件夹(超优雅)

【爬虫+数据库操作】Yhen手把手带你用pandas将爬取的股票信息存入数据库!

【selenium爬虫】
Yhen手把手带你用selenium自动化爬虫爬取海贼王动漫图片

【爬虫】秀才不出门,天下事尽知。你也能做到!Yhen手把手带你打造每日新闻资讯速达小工具。

【爬虫】Yhen手把手带你用python爬取知乎大佬热门文章

【爬虫】Yhen手把手教你爬取表情包,让你成为斗图界最靓的仔

【前端】学过一天的HTML+CSS后,能做出什么有趣的项目?

【语音定时播报系统】基于树莓派+百度语音合成打造语音定时播报系统相关推荐

  1. 基于树莓派百度Api的人脸门禁系统--毕业设计

    基于树莓派百度Api的人脸门禁系统 在学校中因为上课原因,没有拿到关于电气及其自动化本专业的毕业题目,但是门禁系统让我眼前一亮.此题目是我硬着头皮接下的. 为了更好的做完自己的毕业设计,在不断的学习p ...

  2. python语音控制智能家电_基于树莓派的智能家居语音控制系统

    2018-10 基于树莓派的智能家居语音控制系统 Intelligent home voice control system based on raspberry Pi 刘 华 , 田占生 , 冯宇飞 ...

  3. DIY一个基于树莓派和Python的无人机视觉跟踪系统

    DIY一个基于树莓派和Python的无人机视觉跟踪系统 无人机通过图传将航拍到的图像存储并实时传送回地面站几乎已经是标配.如果想来点高级的--在无人机上直接处理拍摄的图像并实现自动控制要怎么实现呢?其 ...

  4. 树莓派 python 无人机_DIY一个基于树莓派和Python的无人机视觉跟踪系统

    DIY一个基于树莓派和Python的无人机视觉跟踪系统 无人机通过图传将航拍到的图像存储并实时传送回地面站几乎已经是标配.如果想来点高级的--在无人机上直接处理拍摄的图像并实现自动控制要怎么实现呢?其 ...

  5. 基于树莓派实现平菇栽培种 自动种植系统的设计和实现

     基于树莓派实现平菇栽培种 自动种植系统的设计和实现 徐征宇 韩佳辰 摘 要:本文从树莓派实现温湿度和二氧化碳浓度远程监测控制系统的搭建.平菇种植的特点.远程控制支持三个层次介绍了基于树莓派实现平菇栽 ...

  6. thinkphp5 接入百度语音合成接口,前台播报功能实例

    版本:thinkphp5 功能:语音播报功能 描述:前台实现点击播报网页内容的功能实例. 范围:php原生及其他框架均可使用 1.下载百度php-sdk 版本:1.6.0 点此下载:http://ww ...

  7. html5 视频语音对讲,一种基于WebRTC的多人语音视频通话方法及系统与流程

    本发明涉及视频通话领域,特别涉及一种基于WebRTC的多人语音视频通话方法及系统. 背景技术: 随着互联网技术和通信技术的快速发展,人们的交流方式与交流内容得到了极大的丰富和发展.在节奏越来越快的信息 ...

  8. 【语音SBC算法】基于正交滤波器组的语音SBC算法设计与实现

    数字语音编码是现代数字语音通信以及数字语音存储回放的前提和基础,对数字语音通信系统和数字语音存储回放系统的性能具有决定性的作用.目前,主要从编码速率.时延.语音回放质量等指标上研究高效的数字语音编码算 ...

  9. 基于matlab的正交幅度调制系统,基于matlab多进制正交幅度调制系统的仿真终稿.doc...

    基于matlab多进制正交幅度调制系统的仿真终稿 通信系统综合设计与实践 题目基于Matlab的多进制正交幅度调制系统的仿真 院(系)名称信院通信系 专业名称通信工程 学生姓名 学生学号 指导教师 2 ...

  10. 基于web的计算机配件销售系统,基于ASP.NET的计算机配件销售企业门户网站系统...

    摘要: 近年来,互联网技术和应用发展十分迅猛,全世界已经通过网络联系在一起.人们可以通过互联网获取想要的信息.随着时代的发展,人们对于信息的需求也在不断增加.可以说,现在人们生活中的信息大部分都来源于 ...

最新文章

  1. android studio ndk-builld方式开发
  2. 10年C#历程的MVP之路与MVP项目介绍
  3. 学习java多线程,这必须搞懂的这几个概念
  4. Tomcat6项目移到Tomcat7 提示 404 解决方案
  5. c++数据结构队列栈尸体_数据结构-第三章:栈和队列(栈的应用、括号匹配、表达式转换)...
  6. 作者:张慧(1984-),女,中国科学院软件研究所助理研究员
  7. switch支持的类型
  8. python 图像压缩 jpeg_smally:批量无损压缩JPG和PNG
  9. h264和h265解码上的区别
  10. Python SVM手写数字识别
  11. 论文_毕业设计复现机器学习模型案例大本营(收藏)
  12. HTML5期末大作业:网站设计——天天生鲜水果蔬菜商城网站静态模板 (10个页面) HTML+CSS+JavaScript...
  13. VMware14 黑屏问题
  14. pd.DataFrame()函数解析(最清晰的解释)
  15. 我们祝你虎虎生威! 百条春节短信奉送
  16. c# web版本,进销存和财务管理业务系统 ERP系统源码
  17. MyEclipse 注册码分享
  18. python:实现布赖恩·克尼汉法算法(附完整源码)
  19. 东风畅行java_东风畅行D1L单桥商用车,在随车吊中有“四”种配置!
  20. 树上的BFS(Tree Breadth First Search)

热门文章

  1. python http请求时gzip解压
  2. iVMS-8700综合安防管理平台第三方开发
  3. 考勤系统 服务器管理,zktime5.0考勤管理系统
  4. CentOS7安装uwsgi遇到的坑解决方法
  5. 【菜gou的CS61A学习笔记 Midterm1】
  6. 实验3matlab的符号运算,实验3 Matlab 符号运算及求函数极值
  7. QT+VS开发界面入门(qt界面在VS2022实现自动生成槽函数)
  8. RANSAC介绍(Matlab版直线拟合+平面拟合)
  9. Java业内主流框架你知道吗?SSH和SSM有什么区别?
  10. python题目-通过字母判断星期几