树莓派3/4 实现天气语音播报与一种新的文本转语音方法 —— 百度云api +python +和风天气api
前言
大一上学期寒假来了,找回吃灰3个月的树莓派3耍耍,想调试一下高中做的早晨天气语音播报,结果,以前用得好好的ilangbd
百度的文本转语音库不能用了,报错如下,查了一圈是mpg123
的问题。
main: [src/mpg123.c:679] error: Unknown mpeg MIME type application/json - is it perhaps a playlist (use -@)?
main: [src/mpg123.c:680] error: If you know the stream is mpeg1/2 audio, then please report this as mpg123 bug
按照下面的教程做,就是会这样报错的。
ilangbd安装及使用
1.安装命令行播放器mpg123
sudo apt-get install mpg123
2.安装百度语音python包
sudo python -m pip install ilangbd
或者
sudo pip install ilangbd
3.直接在命令行使用以下命令(注意是命令行,不是python环境中的命令行)
ilang “你好,world!”
————————————————
版权声明:本文为CSDN博主「IngeTeng」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lovec__/article/details/85273337
现在打开csdn很多小伙伴私信我求解决方案,现在快5月才看到,之前一直都不咋玩csdn……就按以前说的,分享一下我的解决方案。
解决思路
我在1月份的时候解决了这个问题,当时在同样有这个问题的帖子留言说:
提问者也给出了思路:mpg123的锅,百度不背:
于是乎,我想了想其他的解决方法:阿里云、百度云等云平台都有提供免费的文本转语音服务,为啥不尝试一下呢?直接把文本上传到云,云返回一段音频.mp3
,然后用mplayer
播放。
操作
1. 看百度语音合成文档——看懂了后面都不用看
看看百度云语音合成python接口简介,文档说要这样做:
2. 百度云创建应用
到百度云ai应用控制台创建应用
然后到应用详情,看APP_ID
, API_KEY
, SECRET_KEY
,待会写程序用。
3. 安装AipSpeech
按照上文1中百度云的文档,安装安装语音合成 Python SDK
,我印象中是用python3
装的……不行就把下面的pip3
换成pip
,再看看有没有问题,有问题可评论告诉我qaq,树莓派丢家里没带回来学校,只能SSH远程测试了。
pip3 install baidu-aip
看这黄色字体就很想更新,但是好怕出问题……不过看着这黄色的WRANING就一阵不舒服,还是更pip吧:
没有pip
?有点奇怪,于是我不用sudo
试试:
好家伙,sudo
用户为啥就不同呢?于是我找找:
原来是程序不一样……跑题了,砸们继续
4. 写程序尝试
我直接贴个图
图不太好复制……还是贴个代码吧:
import os
from aip import AipSpeechoutstr = '林星月真帅!'""" 你的 APPID AK SK """
# 请自行替换
APP_ID = 'YourAppID'
API_KEY = 'YourAPIKey'
SECRET_KEY = 'YourSercetKey'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)result = client.synthesis(outstr, 'zh', 1, {'vol': 5,
})# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):with open('TTS_audio.mp3', 'wb') as f:f.write(result)cmdline = 'mplayer TTS_audio.mp3'
os.system(cmdline)
好了,编辑好后运行:
用python3就行……问题不大
注意百度云不是一直免费的……我调用忽然间没用了,找了很久,检查了很久问题出在哪,甚至到本地wsl测试了一下……裂开!
这里贴一个能用的吧,白嫖一下,原文链接:https://blog.csdn.net/weixin_38241876/article/details/84949534
from aip import AipSpeech""" 你的 APPID AK SK """
APP_ID = '15079673'
API_KEY = 'mGxvq3Nwr3aVjD4UFIFGsaMD'
SECRET_KEY = 'YIN3wxizj16zCRYZ6EGpdopuA6FwHRhB'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
result = client.synthesis('欢迎入住酒店,祝您入住愉快', 'zh', 1, {'vol': 5,
})# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):with open('test.mp3', 'wb') as f:f.write(result)
————————————————
版权声明:本文为CSDN博主「Alphapeople」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
以及附上天气播报的代码,那时为此学python参考别人的代码重新写的,里面的秘钥已经换成能用的:
import json
import os
import requests
import timeweather_city = "花都"
master_name = "林星月"postdata = {'location': '{city}'.format(city = weather_city), 'key': '3b37afeada384b2abb3a8b5529f9c7e5'}
stra = requests.post('https://free-api.heweather.net/s6/weather/forecast', data=postdata)
json_obj = json.loads(stra.text)
w0 = json_obj['HeWeather6'][0]
wether = w0['daily_forecast'][1]now_time = time.strftime("%")
welcome = '主人{name}早上好,正在为您播送{city}天气预报。'.format(city = weather_city, name = master_name)
outstr = '今天天气{0}转{1},温度{2}到{3}摄氏度.'.format(wether['cond_txt_d'], wether['cond_txt_n'], wether['tmp_max'], wether['tmp_min'])from aip import AipSpeech""" 你的 APPID AK SK """
APP_ID = '15079673'
API_KEY = 'mGxvq3Nwr3aVjD4UFIFGsaMD'
SECRET_KEY = 'YIN3wxizj16zCRYZ6EGpdopuA6FwHRhB'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)result = client.synthesis(welcome + outstr, 'zh', 1, {'vol': 5,
})# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):with open('TTS_audio.mp3', 'wb') as f:f.write(result)cmdline = 'mplayer TTS_audio.mp3'
os.system(cmdline)
效果如下,在wsl也可以生成,不限于树莓派。
小结
- 这种简单的应用python也是挺有意思的,但是学不了啥东西
树莓派3/4 实现天气语音播报与一种新的文本转语音方法 —— 百度云api +python +和风天气api相关推荐
- TTS什么意思,缩写,微软TTS语音引擎(中文)5.1 “TTS”是“文本到语音(Text To Sound)”的简称
微软TTS语音引擎(中文)5.1 "TTS"是"文本到语音(Text To Sound)"的简称,TTS语音引擎为我们提供清晰和标准的美语发音.TTS5.1目前 ...
- php加入语音播报功能_如何使用PHP实现智能语音播报
如何使用PHP实现智能语音播报 发布时间:2020-08-03 16:01:13 来源:亿速云 阅读:59 如何使用PHP实现智能语音播报?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原 ...
- android----Android语音播报的两种简单实现
转自 https://blog.csdn.net/xialong_927/article/details/84256354 a.两种方案 1.Android自带的语音播报(老版本手机Android6. ...
- springboot微软文本转语音(texttospeach) java实现微软文本转语音
java实现微软文本转语音(TTS)经验总结 官网地址: https://docs.microsoft.com/zh-cn/azure/cognitive-services/speech-servic ...
- cordova语音通话_如何在Cordova中将文本转换为语音(语音合成)
本文概述 语音合成是计算机生成的人类语音模拟.它用于将书面信息转换为更方便的听觉信息, 尤其是对于移动应用程序(如启用语音的电子邮件和统一消息传递).作为使用Javascript创建混合应用程序的开发 ...
- python语音转文字库_py库:文本转为语音(pywin32、pyttsx)
http://blog.csdn.net/marksinoberg/article/details/52137547 Python 文本转语音 文本转为语音(使用Speech API) 需要安装 py ...
- Python # 和风天气接口
### 备注只是好奇测试了下. 和风天气官网地址:https://www.heweather.com/ 和风天气接口注册后可以免费试用. 服务器节点 接口地址 付费用户 中国.北美.欧洲.东南亚 ...
- 手把手带你用python+和风天气+腾讯云函数+qmsg实现定时推送每日天气
文章目录 ✨项目前言
- Xamarin Essentials教程语音播报TextToSpeech
Xamarin Essentials教程语音播报TextToSpeech 语音播报是一种将文本信息转化为音频信息的技术.使用该技术,开发者可以让用户不用盯着屏幕,就可以获取到信息.例如,支付宝为商家提 ...
- SpeechSynthesisUtterance文字转语音播报
一.介绍 SpeechSynthesisUtterance是HTML5中新增的API,用于将指定文字合成为对应的语音.也包含一些配置项,指定如何去阅读(语言,音量,音调)等 二.基本属性 var sp ...
最新文章
- 数组-0~n-1 中缺失的数(查找不存在的数)
- 2016-11-15试题解题报告
- vb for循环 combobox的使用 Print的使用
- 从Spring到SpringBoot构建WEB MVC核心配置详解
- MySQL性能优化 分区
- 【报错】android.database.sqlite.SQLiteException: no such column: id (code 1): , while compiling: select
- 音视频Share系列2---基于H.265的编码技术优化实战
- C++二维vector初始化大小方法
- 【UVM基础】虚序列器与虚序列(virtual sequencer与virtual sequence)快速上手指南
- 整数分解 费马方法c语言,因数分解(费马的方法)
- 嵌入式存储封装技术SiP、SOC、MCP、PoP的区别
- OpenCV基于dlib进行人脸关键点检测(摄像头)
- 关于笔记本WLAN被禁用解决方法
- Oracle的下载安装
- JavaScript实现网页关灯效果
- 闲人闲谈PS之十七——系统切换带来的冲击
- PAT甲级-1021 Deepest Root(25分)
- Panadas:groupby.cumcount的理解
- android相机分辨率是多少合适,相机像素高一定好吗 相机像素多少合适【详解】...
- 记录: ATM取款机表的数据库设计思考
热门文章
- R语言使用t.test函数执行t检验获取总体平均值的置信区间(默认输出结果包括95%置信水平的置信区间)
- 目标检测 | 盘点提升小目标检测的思路
- 趁你年轻快来学学如何搭建一个小说网站,这里有超详细教程,快进来看看吧,错过了可不要后悔哟。
- C/C++ 字符数字-‘0‘ 字符数字+‘0‘ 是什么意思
- matlab无人机路径规划,一种新的优化算法,天牛群算法,比蚁群算法效果好,收敛快
- 计算机任意字符替换,Word中级技巧之同类字符的精确替换
- 世界最大最高摩天轮,迪拜之眼迎来首批游客
- js 用 querySelectorAll 提取文本格再式化输出
- 【文献笔记】【精读】Metamorph: Injecting Inaudible Commands into Over-the-air V oice Controlled Systems
- Android屏幕密度计算公式
- TTS什么意思,缩写,微软TTS语音引擎(中文)5.1 “TTS”是“文本到语音(Text To Sound)”的简称