def start(text, token): """ 启动 :param text: 文本 :param token: token :return: """ r = recorder() bt = baidu_tts() bs = baidu_stt(1, 'a', 2, '{') song_list = ["冲鸭冲鸭.mp3", "招财进宝.mp3", "毒液前来.mp3", "跟着我一起.mp3"] ycy = "杨超越,1998年7月31日出生于江苏省盐城市,中国内地流行乐女歌手,女子演唱组合CH2、火箭少女101成员。 2017年,加入女子演唱组合CH2,从而正式出道,并签约了多家游戏平台,为高校电竞比赛做内容推广;同年,随CH2相继推出了《启航》、《听雪恋歌》等单曲。2018年,参加腾讯视频女团青春成长节目《创造101》,最终获得第3名,并加入女子演唱组合火箭少女101;8月18日,随火箭少女101推出组合首张EP专辑《撞》;9月23日,推出首支个人单曲《跟着我一起》;11月15日,推出第2支个人单曲《冲鸭冲鸭》;11月27日,推出第3支个人单曲《招财进宝》;12月15日,获得“影响中国”年度人物荣誉盛典年度演艺人物奖。2019年,她被评选为LikeTCCAsia亚太区最美100张面孔第3位、中国区最美100张面孔第1位呢!" bt.tts(ycy, token) speaker.speak() bt.tts("我这里还有杨超越姐姐唱的歌哦~要不要听一听呢?", token) speaker.speak() speaker.ding() r.record() speaker.dong() text = bs.stt("./voice.wav", token) if "不" in text: bt.tts("哦,那好吧~再见啦", token) speaker.speak() else: bt.tts("那你想要听什么呢?不知道的话,可以说随机哦~", token) speaker.speak() speaker.ding() r.record() speaker.dong() text = bs.stt("./voice.wav", token) if "随机" in text: speaker.play(song_list[random.randint(0, 4)]) else: kugou_request(text)
def paly(self, song_name, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() m = xlMusic() while song_name != None: speaker.play() bt.tts('请问还要听什么吗?可以输入指令,如,这首歌叫什么,或者,搜索歌曲', tok) speaker.speak() speaker.ding() r.record() speaker.dong() commands = bs.stt('./voice.wav', tok) command = m.command_choose(commands, tok) if command == 'sui_ji': m.sui_ji(services, tok) elif command == 'sou_suo': m.sou_suo(services, tok) elif command == 'exit': bt.tts('谢谢使用,下次再见', tok) speaker.speak() os.system('python /home/pi/xiaolan/xiaolan/xldo.py b') break elif command == 're': bt.tts('对不起,我没有听清楚您说了什么?', tok) speaker.speak() m.main(tok) else: bt.tts('对不起,发生了故障', tok) speaker.speak()
def main(tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() m = hashlib.md5() host = 'http://api.fanyi.baidu.com/api/trans/vip/translate' appid = '20180425000150592' apikey = 'gN56Mdv4mh2KJ0Ko2p6v' asktext = '请问您要翻译什么?请在滴一声后说出内容,文言文也可以翻译哦!' bt.tts(asktext, tok) speaker.speak() speaker.ding() r.tsrecord() speaker.dong() tstext = bs.stt('./voice.wav', tok) signf = appid + tstext + '1435660288' + apikey m.update(signf) sign = m.hexdigest() data = 'q=' + tstext + '&from=auto&to=zh&appid=' + appid + '&salt=1435660288&sign=' + sign url = host + data r = requests(url) json = r.json() print json tsback = ['trans_result'][0]['dst'] saytext = tsback bt.tts(saytext, tok) speaker.speak()
def main(self, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() h = hass() bt.tts('欢迎使用小蓝专用智能家居控制系统!请在,滴,一声之后说出指令,目前仅支持homeassistant', tok) speaker.speak() speaker.ding() r.record() speaker.dong() commands = bs.stt('./voice.wav', tok) while commands == None: sorry = '对不起,我没有听清楚,请重复一遍' bt.tts(sorry, tok) speaker.speak() speaker.ding() r.record() speaker.speak() commands = bs.stt('./voice.wav', tok) if commands != None: break else: pass #print commands[6:-2] hass.choose_command(commands)
def main(self, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() gpioc = gpioc() bt.tts('请说出要控制的针脚和控制模式,如打开针脚十七', tok) speaker.speak() speaker.ding() r.record() speaker.dong() text = bs.stt('./voice.wav', tok) while text == None or text == '': bt.tts('对不起,我没有听清楚您说了什么,请说出要控制的针脚和控制模式,如打开针脚十七', tok) speaker.speak() speaker.speak() speaker.ding() r.record() speaker.dong() text = bs.stt('./voice.wav', tok) if text != None or text != '': break else: pass gpio_n = gpioc.choose_gpio(text, tok) gpio_m = gpioc.choose_mode(text, tok) if gpio_n == 'none': os.system('python /home/pi/xiaolan/xldo.py awaken') else: if gpio_m == 'none': os.system('python /home/pi/xiaolan/xldo.py awaken') else: gpio.output(gpio_n, gpio_m)
def main(self, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() e = email() mail_host = 'smtp.qq.com' #这里默认qq邮箱,可以更改 mail_user = '' #邮箱账户 mail_pass = '' #邮箱密码 mail_port = '465' #与邮箱服务商相通 sender = '*****@*****.**' receivers = [] bt.tts('欢迎使用小蓝邮件助手,请问您有什么需要吗', tok) speaker.speak() speaker.ding() r.record() speaker.dong() commands = bs.stt('./voice.wav', tok) command = e.command_choose(commands, tok) if command == 'send': e.send(mail_host, mail_user, mail_pass, mail_port, sender, tok) else: bt.tts('对不起,我们还暂时不支持该功能', tok) speaker.speak()
def main(self, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() m = xlMusic() url = 'http://tingapi.ting.baidu.com/v1/restserver/ting?' services = { 'musicurl_get': 'method=baidu.ting.song.play&songid=', 'search': 'method=baidu.ting.search.catalogSug&query=', 'hot': 'method=baidu.ting.song.getRecommandSongList&song_id=877578&num=12' } bt.tts('欢迎使用小蓝音乐播放器,云服务使用百度音乐', tok) speaker.speak() bt.tts('请问您要随机播放还是搜索播放?', tok) speaker.speak() speaker.ding() r.record() speaker.dong() try: commands = bs.stt('./voice.wav', tok) m.command_choose(commands, tok) except TypeError: speaker.speak() speaker.ding() r.record() speaker.dong() m.command_choose(commands, tok)
def sui_ji(self, services, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() m = xlMusic() url = 'http://tingapi.ting.baidu.com/v1/restserver/ting?' song_name_c = random.uniform(0, 12) song_name_s = [ '皮皮虾我们走', 'I hope you think of me', '小幸运', '全部都是你', '佛系少女', 'Something just like this', 'Feel this Moment', 'Welcome to NewYork', '洛天依投食歌', '带你去旅行', '死机之歌', 'Shape of You', 'Kiss Fight', 'Hot song' ] if song_name_s[random.uniform(0, 12)] != 'Hot song': get_song_id_rawj = requests.get(url + services['search'] + song_name_c) else: get_song_id_rawj = requests.get(url + services['hot']) get_song_id_j = get_song_id_rawj.json() try: if song_name_s[random.uniform(0, 12)] == 'Hot song': id = get_song_id_j['result']['list'][song_name_c]['song_id'] else: id = get_song_id_j['song'][song_name_c]['songid'] except KeyError: try: if song_name == 'Hot song': id = get_song_id_j['result']['list'][song_name_c][ 'song_id'] else: id = get_song_id_j['song'][song_name_c]['songid'] except KeyError: bt.tts('对不起,播放错误') speaker.speak() else: pass else: get_song_url_rawj = requests.get(url + services['musicurl_get'] + id) get_song_url_j = get_song_url_rawj.json() song_name = get_song_url_j['songinfo']['title'] song_url_f = get_song_url_j['bitrate']['file_link'] song_url = (song_url_f.replace('\', ' '')) download = requests.get(song_url) with open("/home/pi/xiaolan/musiclib/music.mp3", "wb") as code: code.write(download.content) m.play(song_name, tok)
def main(tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() youdao = youdao_tts() appKey = selfset['ts']['appkey'] secretkey = selfset['ts']['secretkey'] httpClient = None myurl = '/api' q = 'good' bt.tts('请问您要翻译的是什么语言?', tok) speaker.speak() speaker.ding() r.record() speaker.dong() fromLang = lang_choose(bs.stt('./voice.wav', tok), tok) bt.tts('请问您要翻译为什么语言?', tok) speaker.speak() speaker.ding() r.record() speaker.dong() toLang = lang_choose(bs.stt('./voice.wav', tok), tok) bt.tts('请说出您要翻译的内容', tok) speaker.speak() speaker.ding() r.tsrecord() speaker.dong() tstext = bs.stt('./voice.wav', tok) salt = random.randint(1, 65536) sign = appKey+q+str(salt)+secretKey m1 = md5.new() m1.update(sign) sign = m1.hexdigest() myurl = myurl + '?appKey=' + appKey + '&q=' + urllib.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(salt) + '&sign=' + sign try: httpClient = httplib.HTTPConnection('openapi.youdao.com') httpClient.request('GET', myurl) #response是HTTPResponse对象 response = httpClient.getresponse() json = json.loads(response.read()) try: youdao.tts('第一种意思为,' + json['translation'][0] + ',第二种意思为,' + json['translation'][1], toLang) speaker.speak() except: youdao.tts('翻译结果为' + json['translation'][0], toLang) speaker.speak() except Exception, e: print e
def convenstation(): b = baidu_stt(1, 3, 2, '{') r = recorder() s = skills() speaker.ding() r.record() speaker.dong() tok = b.get_token() text = b.stt('./voice.wav', tok) intent = nlp.get_intent(text) s.getskills(intent, text, tok)
def study(self, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() h = hass() url = 'http://hassio.local' port = '8123' passwd = 'y20050801' headers = {'x-ha-access': passwd, 'content-type': 'application/json'} say = '该功能暂未开发完毕,sorry' bt.tts(say, tok) speaker.speak()
def __init__(self): self.awaken = Xiaolan.awaken() self.selfset = setting.setting() self.r = recorder() self.bt = baidu_tts() self.yt = youdao_tts() self.bs = baidu_stt(1, 2, 3, 4) self.sk = Skills() self.sm = hass() self.mu = xlMusic() self.ma = maps() self.xlnlu = Nlu() self.tok = bt.get_token()
def convenstation(tok): bs = baidu_stt(1, 2, 3, 4) bt = baidu_tts() r = recorder() s = skills() speaker.ding() r.record() speaker.dong() text = bs.stt('./voice.wav', tok) intent = nlp.get_intent(text) s.getskills(intent, text, tok)
def recorder_ok(): #录音,超过两秒,小于10秒即可,超出范围,直接pass isOk = recorder.recorder() if isOk: #print (isOk) #print ('recording finish') #x=time.time() try_1() #y=time.time() #print ('time is ',y-x) if myword != "听不清": tuling() else: print('pass')
def __init__(self, parent=None): super(gui, self).__init__(parent) self.about = childwindow() self.tool = recorder() self.setupUi(self) self.timer = QTimer() self.timer.timeout.connect(self.showtime) self.pushButton.clicked.connect(self.start) self.pushButton.clicked.connect(self.tool.run) self.pushButton_2.clicked.connect(self.timestop) self.pushButton_2.clicked.connect(self.tool.stop) self.toolButton.clicked.connect(self.showDialog) self.toolButton_2.clicked.connect(self.about.show) self.lcdNumber.setDigitCount(8) self.lcdNumber.display('00:00:00')
def main(self, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() m = xlMusic() welcome = '欢迎使用小蓝音乐播放器,云服务使用百度音乐' ask = '请问您要随机播放还是搜索播放?' url = 'http://tingapi.ting.baidu.com/v1/restserver/ting?' services = { 'musicurl_get': 'method=baidu.ting.song.play&songid=', 'search': 'method=baidu.ting.search.catalogSug&query=', 'hot': 'method=baidu.ting.song.getRecommandSongList&song_id=877578&num=12' } bt.tts(welcome, tok) speaker.speak() bt.tts(ask, tok) speaker.speak() speaker.ding() r.record() speaker.dong() try: commands = bs.stt('./voice.wav', tok) except TypeError: speaker.speak() speaker.ding() r.record() speaker.dong() command = m.command_choose(commands, tok) else: if command == 'sui_ji': m.sui_ji(services, tok) elif command == 'sou_suo': m.sou_suo(services, tok) elif command == 'exit': bt.tts('谢谢使用,下次再见', tok) speaker.speak() os.system('python /home/pi/xiaolan/xiaolan/xldo.py b') elif command == 're': bt.tts('对不起,我没有听清楚您说了什么?', tok) speaker.speak() m.main(tok)
def convenstation(tok): bs = baidu_stt(1, 2, 3, 4) bt = baidu_tts() r = recorder() s = skills() speaker.ding() r.record() speaker.dong() text = bs.stt('./voice.wav', tok).Remove(str.Length - 1) if text == None: speaker.speacilrecorder() else: intent = nlu.get_intent(text, tok) s.getskills(intent, text, tok)
def main(tok): bt = baidu_tts() bs = baidu_stt(1, 'a', 2, '{') r = recorder() selfset = setting.setting() host = 'https://api.seniverse.com/v3/weather/now.json?key=' key = selfset['weather']['key'] r = requests.get(host + key + '&location=ip&language=zh-Hans&unit=c') json = r.json() bt.tts( ',今天的天气是,' + json['results'][0]['now']['text'] + ',温度是,' + json['results'][0]['now']['temperature'] + ',摄氏度,', tok) speaker.speak()
def main(tok): bt = baidu_tts() bs = baidu_stt(1, 'a', 2, '{') r = recorder() selfset = setting.setting() host = 'https://api.seniverse.com/v3/weather/now.json?key=' key = selfset['weather']['key'] data = {'key': key, 'location': 'ip', 'language': 'zh-Hans', 'unit': 'c'} r = requests.get(host, data=data) json = r.json() bt.tts( ',今天的天气是,' + json['results'][0]['now']['text'] + ',温度是,' + json['results'][0]['now']['temperature'] + ',摄氏度,', tok) speaker.speak()
def choose_command(self, text, tok): m = maps() bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() if '从' in text and '怎么去' in text: m.go_way(text[0:-7], text[-8:-4], tok) elif '我在哪' in text or '我的位置,' == text: m.ip_loc(tok) elif '从' in text and '怎么走' in text: m.go_way(text[0:-7], text[-8:-4], tok) elif '附近' in text: m.near(text[0:5], tok) else: bt.tts('对不起,暂时不支持该功能', tok) speaker.speak()
def main(tok): bt = baidu_tts() yt = youdao_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() selfset = setting.setting() hash = hashlib.md5() bt.tts('您好,请说出您的快递单号和快递公司', tok) speaker.speak() speaker.ding() r.exrecord() speaker.dong() idss = bs.stt('./voice.wav', tok) ids = number_choose(ids, tok) requestData = { 'OrderCode': ids, 'ShipperCode': service, 'LogisticCode':'12345678' } data = { 'EBusinessID': '1349773', 'RequestType': '1002', 'RequestData': parse.quote(str(requestData)), 'DataType': '2', } strings = str(requestData) + '1f0c5c35-67a8-495f-b3ab-a7fc534a826f' string = strings.encode(encoding='UTF-8',errors='strict') hashs.update(string) s = hashs.hexdigest().encode('utf-8') y = base64.b64encode(s) z = str(y, 'utf-8') data['DataSign'] = parse.quote(z, 'utf-8') r = requests.post('http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx', data=data) json = r.json() try: bt.tts(json['Traces'][-1]['AcceptStation'], tok) speaker.speak() except KeyError: bt.tts('对不起,包裹信息查询失败', tok) speaker.speak()
def start(self, tok): #判断 bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() h = hass() welcome = '欢迎使用小蓝专用智能家居控制系统!请在,滴,一声之后说出指令' bt.tts(welcome, tok) speaker.speak() speaker.ding() r.record() speaker.dong() text = bs.stt('./voice.wav', tok) while text == None: sorry = '对不起,我没有听清楚,请重复一遍' bt.tts(sorry, tok) speaker.speak() speaker.ding() r.record() speaker.speak() text = bs.stt('./voice.wav', tok) if text != None: break texts = str.encode(encoding='UTF-8', errors='strict') if '打开' in text: cortolthings = texts[6:-2] cortolmode = 'turn_on' h.cortol(cortolthings, cortolmode, tok) elif '关闭' in text: cortolthings = texts[6:-2] cortolmode = 'turn_off' h.cortol(cortolthings, cortolmode, tok) elif '查看' in text: if '传感器' in text: getstatethings = texts[6:-5] getmode = 'sensor' h.sensor(getstatethings, tok) if '红外' in text: if '学习' in text: h.study(tok) else: h.usuallycortol(text, tok)
def sou_suo(self, services, song_name, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() m = xlMusic() url = 'http://tingapi.ting.baidu.com/v1/restserver/ting?' if song_name == '' or song_name == None: bt.tts('请问您要听什么歌?', tok) speaker.speak() speaker.ding() r.record() speaker.dong() song_name = bs.stt('./voice.wav', tok) else: get_song_id_rawj = requests.get(url + services['search'] + song_name) get_song_id_j = get_song_id_rawj.json() try: id = get_song_id_j['song'][song_name_c]['songid'] except KeyError: try: id = get_song_id_j['song'][0]['songid'] except KeyError: bt.tts('对不起,播放错误') speaker.speak() else: pass else: get_song_url_rawj = requests.get(url + services['musicurl_get'] + id) get_song_url_j = get_song_url_rawj.json() song_name = get_song_url_j['songinfo']['title'] song_url_f = get_song_url_j['bitrate']['file_link'] song_url = (song_url_f.replace('\', ' '')) download = requests.get(song_url) with open("/home/pi/xiaolan/xiaolan/musiclib/music.mp3", "wb") as code: code.write(download.content) m.play(song_name, tok)
def paly(self, song_name, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() m = xlMusic() while song_name != None: speaker.play() bt.tts('请问还要听什么吗?可以输入指令,如,这首歌叫什么,或者,搜索歌曲', tok) speaker.speak() speaker.ding() r.record() speaker.dong() m.command_choose(bs.stt('./voice.wav', tok), tok) else: bt.tts('对不起,发生了故障', tok) speaker.speak()
def main(self, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() m = maps() bt.tts('欢迎使用小蓝地图技能', tok) speaker.speak() bt.tts('支持查找路线,附近有什么服务等,如:从这里到美丽公园怎么走?,又比如:美丽公园附近有什么吃的?', tok) speaker.speak() bt.tts('请说出您的需要', tok) speaker.speak() speaker.ding() r.record() speaker.dong() text = bs.stt('./voice.wav', tok) command = m.choose_command(text, tok)
def sensor(self, getstatethings, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() h = hass() url = 'http://hassio.local' port = '8123' passwd = 'y20050801' headers = {'x-ha-access': passwd, 'content-type': 'application/json'} e_id = e_id() getstatesthings = unicode(getstatethings, "utf-8", "ignore") getstatesthings_eid = e_id[getstatesthings] getstatesthings_l = getstatesthings_eid.encode('utf-8') service = '/api/states' + getstatesthings_l r = requests.get(url + ':' + port + service, headers=headers) json = r.json() if cortolback.status_code == 200 or cortolback.status_code == 201: state = json['state'] if state == 'on': say = '此设备为开启状态' bt.tts(say, tok) speaker.speak() elif state == 'off': say = '此设备为关闭状态' bt.tts(say, tok) speaker.speak() elif state == 'below_horizon': say = '太阳已经下山了' bt.tts(say, tok) speaker.speak() else: if state.isdigit() == True: say = '数据是' + state bt.tts(say, tok) speaker.speak() else: sayback = '执行错误' bt.tts(sayback, tok) speaker.speak()
def main(self, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() h = hass() bt.tts('欢迎使用小蓝专用智能家居控制系统!请在,滴,一声之后说出指令,目前仅支持homeassistant', tok) speaker.speak() speaker.ding() r.record() speaker.dong() commands = bs.stt('./voice.wav', tok) while commands == None: sorry = '对不起,我没有听清楚,请重复一遍' bt.tts(sorry, tok) speaker.speak() speaker.ding() r.record() speaker.speak() commands = bs.stt('./voice.wav', tok) if commands != None: break else: pass #print commands[6:-2] command = hass.choose_command(commands) if command == 'turn_on': h.cortol('turn_on', commands[6:-2], tok) elif command == 'turn_off': h.cortol('turn_off', commands[6:-2], tok) elif command == 'get_sensor': if '传感器' in command: getstatemode = 'sensor' else: getstatemode = 'switch' h.sensor(getstatemode, commands[6:-3], tok)
def main(tok): setting = selfset.setting() APPKEY = selfset['news']['key'] url = 'http://v.juhe.cn/toutiao/index?type=' r = recorder() bt = baidu_tts() bs = baidu_stt(1, 'a', 2, '{') bt.tts('请问您要听什么新闻?', tok) speaker.speak() speaker.ding() r.record() speaker.dong() text = bs.stt('./voice.wav', tok) if '国内新闻' in text: r = requests.post(url + 'guonei' + '&key=' + APPKEY) json = r.json() bt.tts(json['result']['data'][random.randint(0, 9)]['title'], tok) speaker.speak() elif '国际新闻' in text: r = requests.post(url + 'guoji' + '&key=' + APPKEY) json = r.json() saytext = json['result']['data'][random.randint(0, 9)]['title'] bt.tts(saytext, tok) speaker.speak() elif '科技新闻' in text: r = requests.post(url + 'keji' + '&key=' + APPKEY) json = r.json() bt.tts(json['result'][random.randint(0, 9)]['title'], tok) speaker.speak() elif '体育新闻' in text: r = requests.post(url + 'tiyu' + '&key=' + APPKEY) json = r.json() bt.tts(json['result'][random.randint(0, 9)]['title'], tok) speaker.speak() else: r = requests.post(url + 'top' + '&key=' + APPKEY) json = r.json() bt.tts(json['result'][random.randint(0, 9)]['title'], tok) speaker.speak()
def main(tok): bt = baidu_tts() bs = baidu_stt(1, 'a', 2, '{') r = recorder() host = 'https://api.seniverse.com/v3/weather/now.json?key=' key = setting.setting()['weather']['key'] APIURL = key + '&location=ip&language=zh-Hans&unit=c' url = host + APIURL r = requests.get(url) json = r.json() print json weather = json['results'][0]['now']['text'] temperature = json['results'][0]['now']['temperature'] tweatherstates = ',今天,' + weather + ',温度是,' + temperature + ',摄氏度,' bt.tts(saytext, tok) speaker.speak()
def sensor(self, getstatemode, getstatethings, tok): bt = baidu_tts() bs = baidu_stt(1, 2, 3, 4) r = recorder() h = hass() setting = setting.setting() url = setting['smarthome']['url'] port = setting['smarthome']['port'] passwd = setting['smarthome']['passwd'] service = '/api/states' headers = {'x-ha-access': passwd, 'content-type': 'application/json'} if passwd != None or passwd != '': e_id = h.e_id(tok) service = '/api/states' + e_id[getstatethings] r = requests.get(url + ':' + port + service, headers=headers) if cortolback.status_code == 200 or cortolback.status_code == 201: json = r.json() if json['state'] == 'turn_on' and getstatemode == 'switch': bt.tts(getstatethins + '为开启状态', tok) speaker.speak() elif json['state'] == 'turn_on' and getstatemode == 'switch': bt.tts(getstatethings + '为关闭状态', tok) speaker.speak() elif json['state'] == 'turn_on' and getstatemode == 'sensor': bt.tts(getstatethings + '为关闭状态', tok) speaker.speak() elif json['state'].isdigit() == True: bt.tts(getstatethings + '的数据是' + json['state'], tok) speaker.speak() else: bt.tts('对不起,暂时不支持读取改设备的状态', tok) speaker.speak() else: bt.tts('执行错误', tok) speaker.speak() else: pass
def __init__(self): wx.Frame.__init__(self,None,title=u'媳妇的记账器') self.SetSizeHintsSz((900,400),(900,400)) self.panel=wx.Panel(self,-1,style=wx.SIMPLE_BORDER) self.panel.SetBackgroundColour(wx.Colour(230,255,255)) self.recorder=recorder.recorder() self.Bind(wx.EVT_CLOSE,self.closeaction) self.userlistselectionindex=0 self.font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD) self.currentusers=wx.StaticText(self.panel,label=u'当前记录的用户:') self.currentusers.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD)) self.currentusers.SetForegroundColour(wx.Colour(0,0,255)) self.currentusers.SetFont(self.font) self.searchheader=wx.StaticText(self.panel,label=u'搜素栏') self.searchheader.SetFont(self.font) self.searchheader.SetForegroundColour(wx.Colour(255,0,0)) self.updateheader=wx.StaticText(self.panel,label=u'更新栏') self.updateheader.SetFont(self.font) self.updateheader.SetForegroundColour(wx.Colour(255,0,0)) self.leftheader=wx.StaticText(self.panel,label=u'填入用户购买的商品信息') self.leftheader.SetFont(self.font) self.leftheader.SetForegroundColour(wx.Colour(255,0,0)) self.filename=wx.TextCtrl(self.panel) self.username=wx.TextCtrl(self.panel) self.address=wx.TextCtrl(self.panel,style=wx.TE_MULTILINE) self.product=wx.TextCtrl(self.panel) self.product.Bind(wx.EVT_TEXT,self.valuechangemoreaction) self.price=wx.TextCtrl(self.panel,style=wx.TE_PROCESS_ENTER) self.price.Bind(wx.EVT_TEXT_ENTER,self.textenteraction) self.price.Bind(wx.EVT_TEXT,self.valuechangeaction) self.changerate=wx.TextCtrl(self.panel,style=wx.TE_PROCESS_ENTER) self.changerate.Bind(wx.EVT_TEXT_ENTER,self.textenteraction) self.changerate.Bind(wx.EVT_TEXT,self.valuechangeaction) self.counts=wx.TextCtrl(self.panel,style=wx.TE_PROCESS_ENTER) self.counts.Bind(wx.EVT_TEXT_ENTER,self.textenteraction) self.counts.Bind(wx.EVT_TEXT,self.valuechangeaction) self.fee=wx.TextCtrl(self.panel,style=wx.TE_PROCESS_ENTER) self.fee.Bind(wx.EVT_TEXT_ENTER,self.textenteraction) self.fee.Bind(wx.EVT_TEXT,self.valuechangeaction) self.totalkr=wx.TextCtrl(self.panel) self.totalkr.SetEditable(False) self.totalrmb=wx.TextCtrl(self.panel) self.totalrmb.SetEditable(False) self.savebutton=wx.Button(self.panel,label=u'保存') self.savebutton.Bind(wx.EVT_BUTTON,self.saveaction) self.clearbutton=wx.Button(self.panel,label=u'清空') self.clearbutton.Bind(wx.EVT_BUTTON,self.clearaction) self.leftstatus=wx.StaticText(self.panel) self.leftstatus.SetFont(self.font) self.leftstatus.SetForegroundColour(wx.RED) self.searchusername=wx.TextCtrl(self.panel,style=wx.TE_PROCESS_ENTER) self.searchusername.Bind(wx.EVT_TEXT_ENTER,self.searchaction) self.searchusername.Bind(wx.EVT_TEXT,self.searchvaluechangeaction) self.searchaddress=wx.TextCtrl(self.panel,style=wx.TE_PROCESS_ENTER) self.searchaddress.Bind(wx.EVT_TEXT_ENTER,self.searchaction) self.searchaddress.Bind(wx.EVT_TEXT,self.searchvaluechangeaction) self.searchbutton=wx.Button(self.panel,label=u'搜素') self.searchdeletebutton=wx.Button(self.panel,label=u'删除该项') self.searchdeletebutton.Enable(False) self.searchdeletebutton.Bind(wx.EVT_BUTTON,self.searchdeleteaction) self.searchbutton.Bind(wx.EVT_BUTTON,self.searchaction) self.userlist=wx.ListBox(self.panel,-1,(100,100),(150,170),[],wx.LB_SINGLE) self.userlist.SetBackgroundColour(wx.Colour(255, 255, 255)) self.userlist.Bind(wx.EVT_LISTBOX,self.userlistselection) self.updateusername=wx.TextCtrl(self.panel) self.updateusername.Bind(wx.EVT_TEXT,self.updatetextchangeaction2) self.updateaddress=wx.TextCtrl(self.panel,style=wx.TE_MULTILINE) self.updateaddress.Bind(wx.EVT_TEXT,self.updatetextchangeaction2) self.updateproduct=wx.TextCtrl(self.panel) self.updateproduct.Bind(wx.EVT_TEXT,self.updatetextchangeaction2) self.updateprice=wx.TextCtrl(self.panel,style=wx.TE_PROCESS_ENTER) self.updateprice.Bind(wx.EVT_TEXT_ENTER,self.updatepriceaction) self.updateprice.Bind(wx.EVT_TEXT,self.updatetextchangeaction) self.updatechangerate=wx.TextCtrl(self.panel,style=wx.TE_PROCESS_ENTER) self.updatechangerate.Bind(wx.EVT_TEXT_ENTER,self.updatepriceaction) self.updatechangerate.Bind(wx.EVT_TEXT,self.updatetextchangeaction) self.updatecounts=wx.TextCtrl(self.panel,style=wx.TE_PROCESS_ENTER) self.updatecounts.Bind(wx.EVT_TEXT_ENTER,self.updatepriceaction) self.updatecounts.Bind(wx.EVT_TEXT,self.updatetextchangeaction) self.updatefee=wx.TextCtrl(self.panel,style=wx.TE_PROCESS_ENTER) self.updatefee.Bind(wx.EVT_TEXT_ENTER,self.updatepriceaction) self.updatefee.Bind(wx.EVT_TEXT,self.updatetextchangeaction) self.updatetotalkr=wx.TextCtrl(self.panel) self.updatetotalkr.SetEditable(False) self.updatetotalrmb=wx.TextCtrl(self.panel) self.updatetotalrmb.SetEditable(False) self.updatebutton=wx.Button(self.panel,label=u'更新') self.updatebutton.Bind(wx.EVT_BUTTON,self.updateaction) self.updatebutton.Disable() self.deletebutton=wx.Button(self.panel,label=u'删除此人') self.deletebutton.Bind(wx.EVT_BUTTON,self.deleteaction) self.deletebutton.Disable() self.updatestatus=wx.StaticText(self.panel) self.updatestatus.SetFont(self.font) self.updatestatus.SetForegroundColour(wx.RED) self.lefthbox1=wx.BoxSizer() self.lefthbox1.Add(wx.StaticText(self.panel,label=u'用户名:'),proportion=1,flag=wx.ALIGN_RIGHT,border=0) self.lefthbox1.Add(self.username,proportion=1,flag=wx.EXPAND,border=1) self.lefthbox2=wx.BoxSizer() self.lefthbox2.Add(wx.StaticText(self.panel,label=u'地址:'),proportion=1,flag=wx.EXPAND|wx.ALL,border=0) self.lefthbox2.Add(self.address,proportion=1,flag=wx.EXPAND,border=1) # self.lefthbox3=wx.BoxSizer() self.lefthbox1.Add(wx.StaticText(self.panel,label=u'商品名:'),proportion=1,flag=wx.EXPAND,border=0) self.lefthbox1.Add(self.product,proportion=1,flag=wx.EXPAND,border=1) self.lefthbox4=wx.BoxSizer() self.lefthbox4.Add(wx.StaticText(self.panel,label=u'单价:'),proportion=1,flag=wx.EXPAND,border=0) self.lefthbox4.Add(self.price,proportion=1,flag=wx.EXPAND,border=1) # self.lefthbox5=wx.BoxSizer() self.lefthbox4.Add(wx.StaticText(self.panel,label=u'数量:'),proportion=1,flag=wx.EXPAND,border=0) self.lefthbox4.Add(self.counts,proportion=1,flag=wx.EXPAND,border=1) self.lefthbox6=wx.BoxSizer() self.lefthbox6.Add(wx.StaticText(self.panel,label=u'邮费:'),proportion=1,flag=wx.EXPAND,border=0) self.lefthbox6.Add(self.fee,proportion=1,flag=wx.EXPAND,border=1) self.lefthbox7=wx.BoxSizer() self.lefthbox7.Add(wx.StaticText(self.panel,label=u'总数(韩元):'),proportion=1,flag=wx.EXPAND,border=0) self.lefthbox7.Add(self.totalkr,proportion=1,flag=wx.EXPAND,border=1) # self.lefthbox8=wx.BoxSizer() self.lefthbox6.Add(wx.StaticText(self.panel,label=u'汇率:'),proportion=1,flag=wx.EXPAND,border=0) self.lefthbox6.Add(self.changerate,proportion=1,flag=wx.EXPAND,border=1) # self.lefthbox9=wx.BoxSizer() self.lefthbox7.Add(wx.StaticText(self.panel,label=u'总数(人民币):'),proportion=1,flag=wx.EXPAND,border=0) self.lefthbox7.Add(self.totalrmb,proportion=1,flag=wx.EXPAND,border=1) self.lefthbox10=wx.BoxSizer() self.lefthbox10.Add(self.savebutton,proportion=1,flag=wx.EXPAND,border=1) self.lefthbox10.Add(self.clearbutton,proportion=1,flag=wx.EXPAND,border=1) self.lefthbox11=wx.BoxSizer() self.lefthbox11.Add(self.leftstatus,proportion=1,flag=wx.EXPAND|wx.ALIGN_LEFT|wx.ALIGN_RIGHT,border=1) self.lefthbox12=wx.BoxSizer() self.lefthbox12.Add(wx.StaticText(self.panel,label=u'另存为其他文件名:'),proportion=1) self.lefthbox12.Add(self.filename,proportion=1) self.lefthbox13=wx.BoxSizer() self.lefthbox13.Add(self.leftheader,proportion=1) self.leftvbox=wx.BoxSizer(orient=wx.VERTICAL) self.leftvbox.Add(self.lefthbox13) self.leftvbox.Add(self.lefthbox12) self.leftvbox.Add(self.lefthbox1) self.leftvbox.Add(self.lefthbox2) # self.leftvbox.Add(self.lefthbox3) self.leftvbox.Add(self.lefthbox4) # self.leftvbox.Add(self.lefthbox5) self.leftvbox.Add(self.lefthbox6) self.leftvbox.Add(self.lefthbox7) # self.leftvbox.Add(self.lefthbox8) # self.leftvbox.Add(self.lefthbox9) self.leftvbox.Add(self.lefthbox10) self.leftvbox.Add(self.lefthbox11) self.midhbox1=wx.BoxSizer() self.midhbox1.Add(self.searchheader,proportion=1,flag=wx.EXPAND,border=1) self.midhbox2=wx.BoxSizer() self.midhbox2.Add(wx.StaticText(self.panel,label=u'用户名:'),proportion=1,flag=wx.EXPAND,border=0) self.midhbox2.Add(self.searchusername,proportion=1,flag=wx.EXPAND,border=0) self.midhbox3=wx.BoxSizer() self.midhbox3.Add(wx.StaticText(self.panel,label=u'地址:'),proportion=1,flag=wx.EXPAND,border=0) self.midhbox3.Add(self.searchaddress,proportion=1,flag=wx.EXPAND,border=0) self.midhbox4=wx.BoxSizer() self.midhbox4.Add(self.userlist,proportion=1,flag=wx.EXPAND|wx.ALIGN_LEFT|wx.ALIGN_RIGHT,border=0) self.midhbox5=wx.BoxSizer() self.midhbox5.Add(self.searchbutton,proportion=1,flag=wx.EXPAND,border=0) self.midhbox5.Add(self.searchdeletebutton,proportion=1,flag=wx.EXPAND,border=0) self.midvbox=wx.BoxSizer(orient=wx.VERTICAL) self.midvbox.Add(self.midhbox1) self.midvbox.Add(self.midhbox2) self.midvbox.Add(self.midhbox3) self.midvbox.Add(self.midhbox4) self.midvbox.Add(self.midhbox5) self.righthbox1=wx.BoxSizer() self.righthbox1.Add(wx.StaticText(self.panel,label=u'用户名:'),proportion=1,flag=wx.EXPAND,border=1) self.righthbox1.Add(self.updateusername,proportion=1,flag=wx.EXPAND,border=1) self.righthbox2=wx.BoxSizer() self.righthbox2.Add(wx.StaticText(self.panel,label=u'地址:'),proportion=1,flag=wx.EXPAND,border=1) self.righthbox2.Add(self.updateaddress,proportion=1,flag=wx.EXPAND,border=1) # self.righthbox3=wx.BoxSizer() self.righthbox1.Add(wx.StaticText(self.panel,label=u'商品名:'),proportion=1,flag=wx.EXPAND,border=1) self.righthbox1.Add(self.updateproduct,proportion=1,flag=wx.EXPAND,border=1) self.righthbox4=wx.BoxSizer() self.righthbox4.Add(wx.StaticText(self.panel,label=u'单价:'),proportion=1,flag=wx.EXPAND,border=1) self.righthbox4.Add(self.updateprice,proportion=1,flag=wx.EXPAND,border=1) # self.righthbox5=wx.BoxSizer() self.righthbox4.Add(wx.StaticText(self.panel,label=u'数量:'),proportion=1,flag=wx.EXPAND,border=1) self.righthbox4.Add(self.updatecounts,proportion=1,flag=wx.EXPAND,border=1) self.righthbox6=wx.BoxSizer() self.righthbox6.Add(wx.StaticText(self.panel,label=u'邮费:'),proportion=1,flag=wx.EXPAND,border=1) self.righthbox6.Add(self.updatefee,proportion=1,flag=wx.EXPAND,border=1) self.righthbox7=wx.BoxSizer() self.righthbox7.Add(wx.StaticText(self.panel,label=u'总数(韩元):'),proportion=1,flag=wx.EXPAND,border=1) self.righthbox7.Add(self.updatetotalkr,proportion=1,flag=wx.EXPAND,border=1) # self.righthbox8=wx.BoxSizer() self.righthbox6.Add(wx.StaticText(self.panel,label=u'汇率:'),proportion=1,flag=wx.EXPAND,border=1) self.righthbox6.Add(self.updatechangerate,proportion=1,flag=wx.EXPAND,border=1) # self.righthbox9=wx.BoxSizer() self.righthbox7.Add(wx.StaticText(self.panel,label=u'总数(人民币):'),proportion=1,flag=wx.EXPAND,border=5) self.righthbox7.Add(self.updatetotalrmb,proportion=1,flag=wx.EXPAND,border=1) self.righthbox10=wx.BoxSizer() self.righthbox10.Add(self.updatebutton,proportion=1,flag=wx.EXPAND,border=1) self.righthbox10.Add(self.deletebutton,proportion=1,flag=wx.EXPAND,border=1) self.righthbox11=wx.BoxSizer() self.righthbox11.Add(self.updatestatus,proportion=1,flag=wx.EXPAND|wx.LEFT|wx.RIGHT,border=1) self.righthbox12=wx.BoxSizer() self.righthbox12.Add(self.updateheader) self.rightvbox=wx.BoxSizer(wx.VERTICAL) self.rightvbox.Add(self.righthbox12) self.rightvbox.Add(self.righthbox1) self.rightvbox.Add(self.righthbox2) # self.rightvbox.Add(self.righthbox3) self.rightvbox.Add(self.righthbox4) # self.rightvbox.Add(self.righthbox5) self.rightvbox.Add(self.righthbox6) self.rightvbox.Add(self.righthbox7) # self.rightvbox.Add(self.righthbox8) # self.rightvbox.Add(self.righthbox9) self.rightvbox.Add(self.righthbox10) self.rightvbox.Add(self.righthbox11) self.vbox=wx.BoxSizer() self.vbox.Add((20,0)) self.vbox.Add(self.leftvbox,border=1) self.vbox.Add(self.midvbox,border=1) self.vbox.Add(self.rightvbox,border=1) self.generalhbox=wx.BoxSizer(wx.VERTICAL) self.generalhbox.Add(self.vbox) self.bottomhbox=wx.BoxSizer() self.bottomhbox.Add(self.currentusers) self.generalhbox.Add(self.bottomhbox) self.panel.SetSizer(self.generalhbox) self.loadcurrentusers() Publisher.subscribe(self.getrateresult,'getrateresult') t=getratethread() t.start()
sys.path.append("src") from db import Db db = Db("db/") choice = -1 while( not choice in range(1,4) ): try: choice = int(input("Que voulez-vous faire ?\n1-Enregistrer un element\n\ 2-Realiser l'analyse d'un mot\n3-Gestion des fichiers de la base de donnees\n")) except NameError: print "Ceci n'est pas un nombre !" if choice == 1: #Réaliser un enregistrement from recorder import recorder recorder(db) elif choice == 2: fileOk = False while not fileOk: #On choisit le dossier à afficher print "Voici la liste des mots a etudier : " dirList = db.printDirFiles("waves/") dirChoice = -1 while( not dirChoice in range(len(dirList)) ): try: dirChoice = int( input( "Choisissez un fichier a traiter et entrez son numero : " ) ) except NameError: print "Ceci n'est pas un nombre !" print "Dossier choisi : ", dirList[dirChoice] fileOk = True filesList = db.printFilesList(dirList[dirChoice])