ilhamap commited on
Commit
f20dbc1
·
verified ·
1 Parent(s): d01f879

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +92 -0
main.py CHANGED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import telegram
2
+ from telegram import Bot
3
+ from telegram.ext import *
4
+ import PIL.Image
5
+ import os
6
+ import google.generativeai as genai
7
+ import requests
8
+ import speech_recognition as sr
9
+ import pydub
10
+ from pydub import AudioSegment
11
+ api_genai = os.environ.get("gemini_api")
12
+ api_tele = os.environ.get("tele_api")
13
+ genai.configure(api_key=f'{api_genai}')
14
+ model = genai.GenerativeModel('gemini-pro-vision')
15
+ bot = Bot(f"api_tele")
16
+ a=[]
17
+
18
+
19
+ def start_command(update, context):
20
+ name = update.message.chat.first_name
21
+ update.message.reply_text("Hello " + name)
22
+ update.message.reply_text("Please share your image")
23
+
24
+ def image_handler(update, context):
25
+ #print(update)
26
+ if update.message.photo:
27
+ file = update.message.photo[-1].file_id
28
+ obj = context.bot.get_file(file)
29
+ obj.download(f'{file}.png')
30
+ text=None
31
+ a.append(file)
32
+ else:
33
+ text = update.message.text
34
+
35
+
36
+ try:
37
+ img = PIL.Image.open(f'{a[-1]}.png')
38
+ except:
39
+ img=None
40
+
41
+ if img is not None and text is not None:
42
+ print(text,a[-1])
43
+ model = genai.GenerativeModel('gemini-pro-vision')
44
+ response = model.generate_content([img,text])
45
+ update.message.reply_text(response.text)
46
+ text=None
47
+ img=None
48
+ os.remove(f'{a[-1]}.png')
49
+ if text is not None and img is None:
50
+ model = genai.GenerativeModel('gemini-pro')
51
+ response = model.generate_content(text)
52
+ update.message.reply_text(response.text)
53
+ if update.message.voice:
54
+ file_aud = update.message.voice.file_id
55
+ obj = context.bot.get_file(file_aud)
56
+ obj.download(f'{file_aud}.ogg')
57
+ audio_file = f'{file_aud}.ogg'
58
+
59
+ # Convert the audio file to WAV format
60
+ sound = AudioSegment.from_ogg(audio_file)
61
+ sound.export(f'{file_aud}.wav', format="wav")
62
+
63
+ # Initialize the recognizer
64
+ recognizer = sr.Recognizer()
65
+
66
+ # Load the converted audio file
67
+ audio_file = f'{file_aud}.wav'
68
+
69
+ with sr.AudioFile(audio_file) as source:
70
+ audio_data = recognizer.record(source)
71
+ text1 = recognizer.recognize_google(audio_data)
72
+ print(text1)
73
+ model = genai.GenerativeModel('gemini-pro')
74
+ response = model.generate_content(text1)
75
+ update.message.reply_text(response.text)
76
+ os.remove(f'{file_aud}.wav')
77
+ os.remove(f'{file_aud}.ogg')
78
+
79
+
80
+ def main():
81
+ print("Started")
82
+ TOKEN = f"api_tele"
83
+ updater = Updater(TOKEN, use_context = True)
84
+ dp = updater.dispatcher
85
+ dp.add_handler(CommandHandler("start", start_command))
86
+ dp.add_handler(MessageHandler(Filters.text | Filters.photo | Filters.audio | Filters.voice, image_handler))
87
+
88
+ updater.start_polling()
89
+ updater.idle()
90
+
91
+ if __name__ == '__main__':
92
+ main()