bot.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:voiceai 作者: vidursatija 项目源码 文件源码
def hello():
    if request.method == 'GET':
        if request.args.get("hub.verify_token") == VERIFY_TOKEN:
            return request.args.get("hub.challenge")
        else:
            return 'Invalid verification token'

    if request.method == 'POST':
        output = request.get_json()
        for event in output['entry']:
            messaging = event['messaging']
            for x in messaging:
                if x.get('message'):
                    recipient_id = x['sender']['id']
                    if x['message'].get('text'):
                        message = x['message']['text']
                        msg =  AI.process_message(message)

                        bot.send_text_message(recipient_id, msg)
                    if x['message'].get('attachments'):
                        for att in x['message'].get('attachments'):
                            print(att['payload']['url'])
                            voice_url = urllib.request.urlopen(att['payload']['url'])
                            with open('voicemsg.aac', 'w+b') as f:
                                f.write(voice_url.read())
                            f.close()
                            aac_file = AudioSegment.from_file('voicemsg.aac', format='aac')
                            wav_handler = aac_file.export('rawmsg.wav', format='wav')
                            os.system("sox rawmsg.wav -r 16000 temp.wav")
                            wav_handler = AudioSegment.from_file('temp.wav', format='wav')
                            raw_handler = wav_handler.export('rawmsg.raw', format='raw')
                            decoder.start_utt()
                            stream = open('rawmsg.raw', 'rb')
                            #stream.seek(44)
                            while True:
                                buf = stream.read(1024)
                                if buf:
                                    decoder.process_raw(buf, False, False)
                                else:
                                    break
                            decoder.end_utt()
                            sentence = " ".join([seg.word for seg in decoder.seg()])
                            bot.send_text_message(recipient_id, sentence)
                            #bot.send_attachment_url(recipient_id, att['type'], att['payload']['url'])
                else:
                    pass
        return "Success"
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号