智能聊天功能
垃圾分类
2019年我国出台了一系列有关垃圾分类的政策,并在部分城市进行试点。然而受多种因素影响,我国对垃圾分类的知识普及程度不高,大部分人常常因不知垃圾种类而面临着垃圾分类的难题。随着越来越多的城市也开始试点实行,这一现象更加明显。
本系统提供了垃圾分类功能,用户只需唤醒“依米”,询问你想知道的垃圾种类,“依米”便会告诉你结果。用户在出门丢垃圾时不再需要拿出手机打开百度进行搜索,只需开口询问系统即可,使用方便快捷。具体实现流程如图所示。
天行数据API平台提供给开发者免费且轻松的各种API数据调用接口,可用于不同类型的开发项目。本系统基于天行数据API平台,通过调用其垃圾分类接口,获取结果并写入文件,实现了垃圾分类的功能。
关键代码如下所示:
1. if "垃圾" in recognition_result:
2. s=recognition_result.replace('。','')
3. s=recognition_result.replace('?','')
4. s=s.replace('请问','')
5. s=s.replace('是什么垃圾','')
6. try:
7. rt.rubbish(s)
8. weather.tts("./result/question_result.txt")
9. os.system('mpg123 ase.mp3')
10. except Exception:
11. url = baiduAPI.voiceSynthesis("识别错误,请这样问'某某是什么垃圾'")
12. voice.playVoice(url)
13. break
用户唤醒“依米”后开始录音,然后进行语音识别,若包含关键词“垃圾”,开始执行垃圾分类功能,将语音识别内容进行处理,提取垃圾的关键词,再调用垃圾分类api接口,获取到结果后再通过语音合成播放给用户。若接口调用失败,则提示用户错误信息,指导用户正确的提问方式。
天行数据API平台提供垃圾分类接口:
http://api.tianapi.com/txapi/lajifenlei/index?key=469d3a6c72258e619a77667e68574d25&word=你想搜索的垃圾名称
比如猪肉
具体代码
import os
import requests
import json
import sys
from aip import AipSpeech
reload(sys)
sys.setdefaultencoding("utf-8")
def rubbish(rubbish_name):
print(rubbish_name)
url_rubbish='http://api.tianapi.com/txapi/lajifenlei/index?key=469d3a6c72258e619a77667e68574d25&word='+rubbish_name+''
print(url_rubbish)
req=requests.get(url_rubbish)
a=req.json()["newslist"][0]["name"]
b=req.json()["newslist"][0]["explain"]
print(a+"属于"+b)
f=open("/home/pi/sheji/robot/result/question_result.txt",'w')
f.write(a+"属于"+b)
f.close()
获取到的结果先写入文件,后边再通过语音合成输出至用户。