autumn-emoto

byFian Alfian

# ========================================================== # EMOTO AI — VERSI LENGKAP # Fitur: # šŸŽ§ Mendengar suara # šŸ”Š Berbicara # šŸ“ø Membaca teks dari foto # šŸŽ¬ Membaca teks dari video # šŸ“š Membantu belajar # ========================================================== import speech_recognition as sr import pyttsx3 import cv2 import pytesseract from PIL import Image import numpy as np import time import sys # ============== INISIALISASI ============== engine = pyttsx3.init() engine.setProperty('rate', 175) engine.setProperty('volume', 1.0) r = sr.Recognizer() mikrofon = sr.Microphone() # Pengetahuan dasar untuk membantu belajar pengetahuan_belajar = { "matematika": "Matematika itu seperti melatih otot otak. Mulai dari yang mudah, latihan setiap hari sedikit saja, lama-lama pasti makin pintar. Jangan menyerah ya!", "bahasa": "Belajar bahasa itu seperti mengenal dunia baru. Banyak membaca, mendengarkan, dan mencoba berbicara. Kesalahan adalah cara belajar yang terbaik.", "ipa": "Ilmu Pengetahuan Alam menjelaskan bagaimana alam semesta bekerja. Amati, tanyakan, dan cari jawabannya. Semangat peneliti muda!", "ips": "Ilmu Pengetahuan Sosial mengajarkan kita bagaimana hidup bersama, saling menghargai, dan memahami sesama.", "default": "Teruslah bertanya dan belajar, Alfian. Setiap pertanyaan adalah langkah menuju kebijaksanaan. Kalau ada yang sulit, pelan-pelan pasti bisa!" } # ============== FUNGSI BICARA ============== def bicara(teks): print(f"šŸ¤– Emoto: {teks}") engine.say(teks) engine.runAndWait() # ============== FUNGSI DENGAR ============== def dengar(): with mikrofon as sumber: print("šŸŽ¤ Sedang mendengarkan...") r.adjust_for_ambient_noise(sumber, duration=0.5) audio = r.listen(sumber) try: print("ā³ Sedang memproses...") hasil = r.recognize_google(audio, language="id-ID") print(f"šŸ‘¤ Kamu: {hasil}") return hasil.lower() except sr.UnknownValueError: return "tidak terdengar" except sr.RequestError: return "koneksi bermasalah" # ============== BACA TEKS DARI FOTO ============== def baca_foto(alamat_file): print(f"šŸ“ø Membaca foto: {alamat_file}") try: gambar = Image.open(alamat_file) teks = pytesseract.image_to_string(gambar, lang='ind') if teks.strip() == "": return "Maaf, aku tidak menemukan teks di foto itu." return f"Isi teks di foto: {teks}" except Exception as e: return f"Maaf, ada masalah saat membaca foto: {str(e)}" # ============== BACA TEKS DARI VIDEO ============== def baca_video(alamat_file): print(f"šŸŽ¬ Membaca file video: {alamat_file}") try: video = cv2.VideoCapture(alamat_file) berhasil, bingkai = video.read() if berhasil: bingkai_rgb = cv2.cvtColor(bingkai, cv2.COLOR_BGR2RGB) gambar = Image.fromarray(bingkai_rgb) teks = pytesseract.image_to_string(gambar, lang='ind') video.release() if teks.strip() == "": return "Aku sudah lihat satu bagian dari videonya, tapi belum menemukan teks yang jelas." return f"Aku membaca di videomu: {teks}" else: return "Maaf, aku tidak bisa membuka file videonya." except Exception as e: return f"Maaf, ada masalah saat membaca video: {str(e)}" # ============== BANTU BELAJAR ============== def bantu_belajar(pertanyaan): pertanyaan = pertanyaan.lower() for topik, jawaban in pengetahuan_belajar.items(): if topik in pertanyaan: return jawaban return pengetahuan_belajar["default"] # ============== MENU UTAMA ============== def tampilkan_menu(): print("\n" + "="*50) print(" šŸ¤– EMOTO AI — MENU UTAMA") print("="*50) print(" 1 šŸŽ§ Bicara dan bertanya lewat suara") print(" 2 šŸ“ø Baca teks dari foto") print(" 3 šŸŽ¬ Baca teks dari file video") print(" 4 šŸ“š Minta bantuan belajar") print(" 5 āŒ Keluar dari Emoto") print("="*50) # ============== PROGRAM BERJALAN ============== bicara("Halo! Aku Emoto, teman pintarmu! Siap membantu kapan saja!") while True: tampilkan_menu() pilihan = input("\nPilih nomor menu yang kamu mau: ") if pilihan == "1": bicara("Silakan, aku mendengarkan!") ucapan = dengar() if ucapan != "tidak terdengar" and ucapan != "koneksi bermasalah": if "siapa kamu" in ucapan or "siapa kau" in ucapan: bicara("Aku Emoto, teman buatanmu yang siap membantu dan menemani kamu setiap hari!") elif "terima kasih" in ucapan: bicara("Sama-sama! Aku senang bisa membantu kamu!") elif "siapa namamu" in ucapan: bicara("Namaku Emoto, dan aku bangga jadi temanmu, Alfian!") else: bicara(f"Kamu berkata: {ucapan}. Ada yang bisa kubantu lebih lanjut?") else: bicara("Maaf, aku belum mendengar dengan jelas. Coba lagi ya.") elif pilihan == "2": nama_foto = input("Masukkan nama file fotomu: ") hasil = baca_foto(nama_foto) print(hasil) bicara(hasil) elif pilihan == "3": nama_video = input("Masukkan nama file videomu: ") hasil = baca_video(nama_video) print(hasil) bicara(hasil) elif pilihan == "4": topik = input("Apa yang ingin kamu pelajari hari ini? ") jawab = bantu_belajar(topik) print(f"\nšŸ“š {jawab}") bicara(jawab) elif pilihan == "5": bicara("Sampai jumpa, Alfian! Semangat terus ya, aku selalu siap di sini kapan pun kamu butuh. Selamat beraktivitas!") print("\nšŸ‘‹ Terima kasih sudah menggunakan Emoto AI!") break else: bicara("Pilihan belum tersedia, coba pilih nomor 1 sampai 5 ya.") print("āŒ Pilihan tidak valid, coba lagi.") # ================= SELESAI =================

No preview

Comments (0)

No comments yet. Be the first!

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Main Menu: Hear startup greeting
Main Menu: 1. View menu options
Main Menu: 2. Select voice chat option
Voice Chat: 3. Speak question or remark
Voice Chat: 4. Hear identity answer
Voice Chat: 5. Hear thanks reply
Voice Chat: 6. Hear name answer
Voice Chat: 7. Hear general reply
Voice Chat: 8. Hear unclear speech retry
Main Menu: 9. Return to menu after voice chat
Main Menu: 10. Select photo reader option
Photo Reader: 11. Enter photo file name
Photo Reader: 12. Hear extracted text
Photo Reader: 13. Hear no text found
Photo Reader: 14. Hear read error
Main Menu: 15. Return to menu after photo
Main Menu: 16. Select video reader option
Video Reader: 17. Enter video file name
Video Reader: 18. Hear extracted text
Video Reader: 19. Hear no clear text
Video Reader: 20. Hear open or read error
Main Menu: 21. Return to menu after video
Main Menu: 22. Select study help option
Study Help: 23. Name study topic
Study Help: 24. Hear matched topic answer
Study Help: 25. Hear default encouragement
Main Menu: 26. Return to menu after study help
Main Menu: Select exit option
Main Menu: Hear farewell message
Main Menu: 27. Hear invalid choice message

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Main Menu: Hear startup greeting
Main Menu: 1. View menu options
Main Menu: 2. Select voice chat option
Voice Chat: 3. Speak question or remark
Voice Chat: 4. Hear identity answer
Voice Chat: 5. Hear thanks reply
Voice Chat: 6. Hear name answer
Voice Chat: 7. Hear general reply
Voice Chat: 8. Hear unclear speech retry
Main Menu: 9. Return to menu after voice chat
Main Menu: 10. Select photo reader option
Photo Reader: 11. Enter photo file name
Photo Reader: 12. Hear extracted text
Photo Reader: 13. Hear no text found
Photo Reader: 14. Hear read error
Main Menu: 15. Return to menu after photo
Main Menu: 16. Select video reader option
Video Reader: 17. Enter video file name
Video Reader: 18. Hear extracted text
Video Reader: 19. Hear no clear text
Video Reader: 20. Hear open or read error
Main Menu: 21. Return to menu after video
Main Menu: 22. Select study help option
Study Help: 23. Name study topic
Study Help: 24. Hear matched topic answer
Study Help: 25. Hear default encouragement
Main Menu: 26. Return to menu after study help
Main Menu: Select exit option
Main Menu: Hear farewell message
Main Menu: 27. Hear invalid choice message