Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

تقویم قرار با فرمان صوتی (VoiceCal)

اپلیکیشن اندرویدی برای ثبت قرار ملاقات با صدا (فارسی)، استخراج خودکار تاریخ/ساعت/محل/شخص، پیش‌نمایش قابل‌ویرایش برای تایید، ذخیره در دیتابیس محلی همراه با فایل صوتی، یادآوری خودکار قبل از قرار، و نمایش لیست گروه‌بندی‌شده با قابلیت پخش صدا و حذف.

✨ ویژگی‌ها

🎙️ ثبت قرار ملاقات با صدا

  • دکمه‌ی «Start Talk»: با نگه‌داشتن، ضبط صدا شروع می‌شود؛ با رهاکردن، متوقف و پردازش می‌شود.
  • انیمیشن پالس‌دار میکروفون هنگام ضبط، برای بازخورد بصری واضح.
  • ضبط با یک جلسه‌ی صوتی منحصر (بدون تداخل با تشخیص گفتار هم‌زمان) برای پایداری بالا.

🧠 تشخیص گفتار فارسی — دو حالت قابل‌انتخاب

  • آنلاین (Groq — رایگان): با مدل Whisper Large v3، دقت بالا و سریع؛ فقط نیاز به یک کلید API رایگان.
  • آفلاین (Vosk): کاملاً روی خود گوشی، بدون نیاز به اینترنت؛ مناسب مناطق بدون دسترسی پایدار به اینترنت.
  • جابه‌جایی بین دو حالت فقط با چند لمس، از تنظیمات داخل اپ.

🤖 استخراج هوشمند اطلاعات قرار ملاقات

  • با کمک هوش مصنوعی (Groq/Llama در حالت آنلاین)، تاریخ، ساعت، محل و شخص به‌طور خودکار از جمله‌ی گفته‌شده استخراج می‌شوند.
  • درک تاریخ‌های نسبی («فردا»، «پس‌فردا»، «دو روز دیگر») و تبدیل خودکار به تقویم شمسی.
  • درک روزهای نوشته‌شده با کلمه («هفتم شهریور»، «دوازدهم مرداد») در کنار فرمت‌های عددی.
  • تفکیک درست نام شخص از نام محل، حتی در جملات پیچیده.
  • در صورت نبود اینترنت یا خطای سرویس آنلاین، به‌طور خودکار به موتور استخراج آفلاین (مبتنی بر قواعد زبانی فارسی) سوئیچ می‌کند.
  • محاسبه‌ی خودکار و همیشه‌درست روز هفته از روی تاریخ (نه صرفاً از گفتار).

✅ پیش‌نمایش و ویرایش قبل از ذخیره

  • بعد از پردازش صدا، تمام فیلدهای استخراج‌شده (تاریخ، ساعت، محل، شخص) در یک فرم قابل‌ویرایش نمایش داده می‌شوند.
  • امکان اصلاح دستی هر فیلد قبل از تایید نهایی، برای مواقعی که تشخیص گفتار کامل نبوده.
  • نمایش متن خام شنیده‌شده برای مرجع.

💾 ذخیره‌سازی محلی و امن

  • تمام اطلاعات قرار ملاقات‌ها در یک دیتابیس محلی (Room) روی خود گوشی ذخیره می‌شوند.
  • فایل صوتی اصلی هر قرار ملاقات هم به‌طور کامل نگه داشته می‌شود و از داخل لیست قابل پخش است.
  • بدون وابستگی به سرور یا حساب کاربری؛ داده‌ها فقط روی دستگاه خودتان هستند.

📋 نمایش و مدیریت قرار ملاقات‌ها

  • لیست کامل قرارها، گروه‌بندی‌شده زیر سربرگ‌های «امروز»، «فردا»، «این هفته»، «به‌زودی».
  • مرتب‌سازی خودکار از نزدیک‌ترین تا دورترین تاریخ.
  • پخش/توقف صدای هر قرار مستقیماً از داخل لیست با یک لمس.
  • ویرایش هر قرار ثبت‌شده (بدون نیاز به ضبط دوباره‌ی صدا).
  • حذف با قابلیت «واگرد» (Undo) چند ثانیه‌ای، برای جلوگیری از حذف تصادفی.

🔔 یادآوری و آلارم هوشمند

  • یادآوری خودکار ۳۰ دقیقه پیش از هر قرار ملاقات، حتی بعد از ریستارت گوشی.
  • امکان انتخاب آهنگ دلخواه برای آلارم یادآوری از بین فایل‌های گوشی.
  • تنظیم مدت زمان پخش آلارم (بین ۳ تا ۱۲۰ ثانیه).
  • دکمه‌ی «توقف» روی نوتیفیکیشن برای خاموش‌کردن سریع آلارم.

🎨 طراحی و تجربه‌ی کاربری

  • رابط کاربری کاملاً فارسی و راست‌به‌چپ (RTL).
  • پشتیبانی خودکار از حالت تیره (Dark Mode) بر اساس تنظیمات گوشی.
  • طراحی مدرن با گرادیان رنگی و انیمیشن‌های روان (Jetpack Compose).
  • پیام‌های بازخورد واضح و کوتاه برای هر عملیات (ذخیره، حذف، خطا).

🔒 حریم خصوصی

  • تمام داده‌ها (قرارها، فایل‌های صوتی) فقط به‌صورت محلی روی گوشی ذخیره می‌شوند.
  • در حالت آنلاین، فقط صدا برای تبدیل به متن به سرویس Groq فرستاده می‌شود؛ کلید API فقط روی همان گوشی نگه داشته می‌شود.
  • در حالت آفلاین، هیچ داده‌ای هرگز از گوشی خارج نمی‌شود.

🌐 راه‌اندازی تشخیص گفتار آنلاین (پیش‌فرض — رایگان)

  1. به console.groq.com بروید و با ایمیل یا حساب گوگل ثبت‌نام کنید (بدون نیاز به کارت بانکی).
  2. از صفحه‌ی console.groq.com/keys یک کلید API جدید بسازید (با gsk_ شروع می‌شود).
  3. داخل اپ، روی آیکون ⚙ بالای صفحه‌ی اصلی بزنید، حالت «آنلاین (Groq — رایگان)» را انتخاب کنید، کلید را در فیلد مربوطه وارد و ذخیره کنید.
  4. همین! کلید فقط به‌صورت محلی روی گوشی خودتان ذخیره می‌شود (هیچ‌جای دیگری فرستاده نمی‌شود). Groq در پلن رایگان روزانه حدود ۲۰۰۰ درخواست تشخیص گفتار اجازه می‌دهد که برای استفاده‌ی شخصی کاملاً کافی است. اگر سرویس‌های Groq در شبکه‌ی شما فیلتر است، فعال‌کردن فیلترشکن هنگام ارسال صدا (بعد از رهاکردن دکمه) کافی است — چون این‌بار ضبط و ارسال دو مرحله‌ی جدا هستند، مشکل «سکوت» قبلی دیگر تکرار نمی‌شود.

دسترسی‌های لازم

  • RECORD_AUDIO: برای ضبط صدا (در زمان اجرا هم درخواست می‌شود).
  • POST_NOTIFICATIONS (اندروید ۱۳ به بالا): برای نمایش نوتیفیکیشن یادآوری (در زمان اجرا درخواست می‌شود؛ در صورت رد شدن، اپ کاملاً کار می‌کند فقط یادآوری نمایش داده نمی‌شود).
  • RECEIVE_BOOT_COMPLETED: برای زمان‌بندی دوباره‌ی یادآوری‌ها بعد از ریستارت گوشی (چون AlarmManager با ریبوت پاک می‌شود).
  • فایل‌های صوتی در حافظه‌ی خصوصی اپ ذخیره می‌شوند، پس نیازی به دسترسی حافظه‌ی عمومی نیست.

Releases

Packages

Contributors

Languages