প্রকল্প সম্পর্কে

Bolo হল একটি macOS পুশ-টু-টক ডিক্টেশন অ্যাপ, যা Slack, Notion, Gmail, VS Code, টার্মিনাল এবং ব্রাউজার সহ যেকোনো সক্রিয় টেক্সট ফিল্ডে বক্তৃতাকে প্রতিলিপি করে এবং পেস্ট করে। নামটি হিন্দি থেকে এসেছে, যেখানে "bolo" মানে "বলুন"। এটি macOS 12+ এবং Rust 1.88+ এর জন্য তৈরি, এবং MIT লাইসেন্সের অধীনে প্রকাশিত, যার প্রকল্প ওয়েবসাইট README-এ তালিকাভুক্ত। সেটআপ এবং অনুমতি: install.sh ~/.bolo/venv-এ একটি ব্যক্তিগত Python হেল্পার এনভায়রনমেন্ট তৈরি করে, Rust বাইনারি বিল্ড করে, ~/.codex/.env বা এনভায়রনমেন্টে একটি বিদ্যমান Telnyx API কী খোঁজে (যদি না পাওয়া যায় তবে প্রম্পট করে এবং ~/.bolo/env-এ সেভ করে), Bolo-কে একটি লগইন আইটেম হিসেবে নিবন্ধন করে এবং এটি চালু করে। প্রথমবার চালু করার সময়, একটি অনবোর্ডিং ডায়ালগ জিজ্ঞাসা করে কোন কীটি ডিক্টেশনের জন্য ধরে রাখা হবে, যেমন Right Option, Right Control, F19 এবং Caps Lock; পছন্দটি ~/.bolo/env-এ সংরক্ষিত হয়। Bolo-কে macOS Microphone এবং Accessibility অনুমতি প্রয়োজন, যেখানে后者 ~/.bolo/venv/bin/python3-এ পরিচালিত Python ইন্টারপ্রেটারকে পেস্ট সন্নিবেশনের জন্য দেওয়া হয়। README-এ একটি প্রম্পটও রয়েছে যা একটি কোডিং এজেন্টকে ইনস্টলেশন এবং অনুমতি দেওয়ার মাধ্যমে গাইড করতে পারে। ডিক্টেশন ফ্লো: কনফিগার করা হটকী ধরে রাখুন, কথা বলুন, এবং ছেড়ে দিন। টেক্সটটি ক্লিপবোর্ডের মাধ্যমে কার্সরে সন্নিবেশিত হয়, এবং পূর্ববর্তী ক্লিপবোর্ড বিষয়বস্তু ডিফল্টরূপে পুনরুদ্ধার করা হয়। একটি মেনু বার আইকন সাম্প্রতিক ট্রান্সক্রিপ্টগুলিকে ম্যানুয়ালি কপি করার জন্য প্রকাশ করে, সেইসাথে Clear Transcript History, Run Health Check, Rewrite Selected Text, Add Vocabulary Term, Add Vocabulary Alias, Add Correction Rule এবং Check for Updates-এর মতো কমান্ডগুলি। কনফিগারেশন: সেটিংস এনভায়রনমেন্ট বা ~/.bolo/env থেকে পড়া হয়। বিকল্পগুলির মধ্যে রয়েছে TELNYX_API_KEY; পুশ-টু-টক কীয়ের জন্য BOLO_HOTKEY (right_option, right_control, right_shift, fn, f1 থেকে f19, caps_lock); সর্বশেষ ট্রান্সক্রিপ্ট পুনরায় পেস্ট করার জন্য BOLO_PASTE_LAST_HOTKEY; BOLO_MICROPHONE; BOLO_MAX_RECORDING_SECONDS, যার 30-সেকেন্ডের ওয়াচডগ ডিফল্ট দীর্ঘ রেকর্ডিংগুলিকে স্বয়ংক্রিয়ভাবে ছেড়ে দেয়; BOLO_STT_MODEL এবং BOLO_STT_FALLBACK_MODEL; ভাষা বা উচ্চারণ ইঙ্গিতগুলির জন্য BOLO_STT_LANGUAGE, যেখানে একটি নন-US ইঙ্গিত ধীর প্রমাণিত হলে English (US)-এ fallback হয়; একটি কমা-বিচ্ছিন্ন প্রোভাইডার চেইনের জন্য BOLO_STT_FALLBACKS, যা telnyx:model, xai এবং assemblyai অন্তর্ভুক্ত করতে পারে; Deepgram Nova-3 স্ট্রিমিং বনাম ব্যাচ ট্রান্সক্রিপশনের জন্য BOLO_STT_STREAMING; BOLO_PRESERVE_CLIPBOARD; BOLO_LLM_CLEANUP; BOLO_AUTO_UPDATE; এবং BOLO_LOG_TRANSCRIPTS, যা ডিফল্টরূপে বন্ধ থাকে যাতে ডিক্টেড টেক্সট /tmp/bolo.log থেকে redacted হয়। ক্লীনআপ, শব্দভান্ডার এবং সংশোধন: LLM ক্লীনআপ ডিফল্টরূপে auto, যা ছোট পরিষ্কার ডিক্টেশনগুলিকে স্কিপ করে এবং দীর্ঘ বা বিশৃঙ্খলগুলির জন্য নিযুক্ত হয়; README-এ উল্লেখ করা হয়েছে যে Telnyx Qwen/Qwen3-235B-A22B-এ চিন্তাভাবনা নিষ্ক্রিয়, অথবা LiteLLM কনফিগার করা থাকলে Kimi-K2.5, এবং MiniMax ক্লীনআপের জন্য ইচ্ছাকৃতভাবে ব্যবহৃত হয় না। ক্লীনআপ স্পেসিং এবং ক্যাপিটালাইজেশনের জন্য সামনের অ্যাপ এবং কাছাকাছি কার্সর টেক্সট পড়তে পারে। ভয়েস কমান্ডগুলির মধ্যে রয়েছে "scratch that", "actually ...", "polish that" এবং "prompt that", যা শুধুমাত্র তখনই কাজ করে যখন পূর্ববর্তী ডিক্টেশন এখনও কারেটের ঠিক আগে থাকে এবং ঠিক মিলে যায়। ব্যক্তিগত শব্দভান্ডার ~/.bolo_vocabulary.json-এ থাকে এবং সাধারণ ভুল শোনানোর জন্য alias অবজেক্ট সমর্থন করে; ডিটার্মিনিস্টিক প্রতিস্থাপন নিয়ম ~/.bolo/replacements.json-এ থাকে; অ্যাপ-নির্দিষ্ট ক্লীনআপ শৈলী ~/.bolo/prompt_bindings.json-এ default, email, chat এবং notes প্রোফাইল সহ সংরক্ষিত হয়। গোপনীয়তা এবং ইতিহাস: অডিও ট্রান্সক্রিপশনের জন্য Telnyx API-তে পাঠানো হয় এবং শুধুমাত্র মেমরিতে প্রক্রিয়াজাত করা হয়, README অনুযায়ী, এবং ট্রান্সক্রিপ্টগুলি প্রশিক্ষণের জন্য ব্যবহৃত হয় না। দশটি সাম্প্রতিকতম ট্রান্সক্রিপ্ট ~/.bolo/transcripts.json-এ স্থানীয়ভাবে সংরক্ষিত হয়, ক্লীনআপ টেক্সট পরিবর্তন করলে raw এবং cleaned ভ্যারিয়েন্টগুলি রেখে দেয়, এবং মেনু বার থেকে মুছে ফেলা যেতে পারে। সীমাবদ্ধতা এবং রক্ষণাবেক্ষণ: Bolo-কে ইন্টারনেট সংযোগ প্রয়োজন, ছোট ডিক্টেশন আজ ভাল কাজ করে যখন দীর্ঘ ডিক্টেশন এবং লেটেন্সি এখনও উন্নত হচ্ছে, এবং ক্লীনআপ ইচ্ছাকৃতভাবে রক্ষণশীল যাতে আক্ষরিক অর্থ সংরক্ষিত থাকে। আপডেটগুলি চালু করার সময় বা চাহিদা অনুযায়ী চেক করা হয়, এবং স্থানীয় ফাইলগুলিতে আনকমিটেড পরিবর্তন থাকলে, GitHub পৌঁছানো না গেলে, Rust অনুপস্থিত থাকলে, বা চেকআউটটি cleanly fast-forward করতে না পারলে এগুলি স্কিপ করা হয়। একটি ছোট বাক্যাংশ-ভিত্তিক মূল্যায়ন হারনেস (eval_dictation.py with prompts, init and score commands) অন্তর্ভুক্ত, এবং সমস্যা সমাধানের মধ্যে রয়েছে /tmp/bolo.log, API কী উপস্থিতি, পরিচালিত ইন্টারপ্রেটারের জন্য অনুমতি, এবং restart.sh।