Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
 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()
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
    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()
Ejemplo n.º 12
0
    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()
Ejemplo n.º 13
0
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')
Ejemplo n.º 15
0
 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')
Ejemplo n.º 16
0
    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)
Ejemplo n.º 17
0
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)
Ejemplo n.º 18
0
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()
Ejemplo n.º 19
0
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()
Ejemplo n.º 20
0
 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()
Ejemplo n.º 21
0
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()
Ejemplo n.º 22
0
    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)
Ejemplo n.º 23
0
    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)
Ejemplo n.º 24
0
    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()
Ejemplo n.º 25
0
 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)
Ejemplo n.º 26
0
    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()
Ejemplo n.º 27
0
    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)
Ejemplo n.º 28
0
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()
Ejemplo n.º 29
0
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()
Ejemplo n.º 30
0
    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
Ejemplo n.º 31
0
	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()
Ejemplo n.º 32
0
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])