


任务1:文字转语音
1. 分析设计
在这个任务中,我们将编写程序,使得在软件中输入的文字内容转换输出成语音文件,并进行播放。
这里,我们可通过计算机输入文字信息,借助百度AI开放平台的语音合成技术,将文本信息转换成音频文件显示在文件目录中。


启动Mind+软件,选择“Python模式”,另存项目并命名为“m天气闹钟”。
STEP2:创建与保存python文件
创建一个python程序文件“任务一.py”,双击打开。
程序编写、运行及回顾:
STEP1:编写python程序
result = client.synthesis(‘上海自来水来自海上’, ‘zh’, 1, {‘vol’: 5,})#文字合成语音
# 识别正确返回语音二进制 错误则返回dict
if not isinstance(result, dict):
with open(‘DDD.mp3’, ‘wb’) as f: #打开
f.write(result) #写入结果




Tips3:可尝试通过调用os库,实现自动播放
Step1:修改程序:(实现功能:终端输入文字+按键控制启停+自动播放语音)
Board(“microbit”).begin()#初始化,选择板型和端口号,不输入端口号则进行自动识别
APP_ID = ”#和我们百度云中创建的应用的三个参数一致,按照自己所创建的应用参数对应进行替换
API_KEY = ”#引号内输入自己的API_KEY
SECRET_KEY = ”#引号内输入自己的SECRET_KEY
client=AipSpeech(APP_ID,API_KEY,SECRET_KEY) #连接百度AI语音合成平台
while True: #循环执行
if button_a.is_pressed() == 1: #按下板载按钮A
DDD = input(“请输入文字内容(回车键确认):”)#将输入的文字内容赋值给DDD
result = client.synthesis(DDD, ‘zh’, 1, {‘vol’: 5,})#文字合成语音
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open(‘DDD.mp3’, ‘wb’) as f: #打开
f.write(result) #写入结果
os.system(“DDD.mp3”)#调用系统默认播放器





程序编写、运行及回顾:
STEP1:编写python程序
params = {
“key”: “”, #引号内填写私钥
“location”: “ip”, # 查询地点设置为访问IP所在地
“language”: “zh-Hans”,
“unit”: “c”,
}
#设置目标网站url
url = “https://api.seniverse.com/v3/weather/now.json”
# 获取数据
r = requests.get(url, params=params)
# 解析数据
data = r.json()[“results”]
address = data[0][“location”][‘path’] # 地点
temperature = data[0][‘now’][“temperature”] # 温度
text = data[0][‘now’][“text”] # 天气情况
# 天气信息
message = address + ” 当前天气:” + “温度:” + temperature + “℃” + ” 天气情况:” + text
print(message)
观察终端界面,我们可以发现,实时的时间和天气的信息都显示了出来。


新建一个python程序文件“任务三.py”,双击打开。
程序编写、运行及回顾:
STEP1:编写python程序
from pinpong.extension.microbit import * #导入pinpong.extension.microbit中所有模块
Board(“microbit”).begin()#初始化,选择板型和端口号,不输入端口号则进行自动识别
APP_ID = ”#和我们百度云中创建的应用的三个参数一致,按照自己所创建的应用参数对应进行替换
API_KEY = ”#引号内输入自己的API_KEY
SECRET_KEY = ”#引号内输入自己的SECRET_KEY
client=AipSpeech(APP_ID,API_KEY,SECRET_KEY) #连接百度AI语音合成平台
params = {
“key”: “”, #引号内填写私钥
“location”: “ip”, #查询地点设置为访问IP所在地
“language”: “zh-Hans”, #语言
“unit”: “c”, #单位
}
url = “https://api.seniverse.com/v3/weather/now.json”#统一资源定位符
# 获取数据
r = requests.get(url, params=params)
# 解析数据
data = r.json()[“results”]
address = data[0][“location”][‘path’] # 地点
temperature = data[0][‘now’][“temperature”] # 温度
text = data[0][‘now’][“text”] # 天气情况
# 弹窗显示消息
message = address + ” 当前温度:” + temperature + “℃” + ” 天气:” + text
print(message)
while True :
now_time1 = datetime.datetime.now().strftime(‘%Y-%m-%d %H:%M:%S’)#年-月-日 时-分-秒
now_time2 = datetime.datetime.now().strftime(‘%H:%M’) #时分
result = client.synthesis(now_time2+message, ‘zh’, 1, {‘vol’: 5,})#文字合成语音
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open(‘DDD.mp3’, ‘wb’) as f: #打开
f.write(result) #写入结果
if now_time2 == ’15:58′:#引号内设置播报的时间
print(now_time1)
display.scroll(now_time1)#屏幕显示时间
os.system(“DDD.mp3”)#调用系统默认播放器
time.sleep(60)#延时60秒

来源:蘑菇云创造
转载请注明:XAMPP中文组官网 » Python编程进阶系列课程P09天气闹钟