इस प्रोजेक्ट के बारे में

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 माइक्रोफोन और एक्सेसिबिलिटी अनुमतियों की आवश्यकता होती है, जिसमें बाद वाली अनुमति ~/.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 (push-to-talk कुंजी के लिए, जैसे 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 संकेत धीमे होने पर अंग्रेजी (US) पर fallback); BOLO_STT_FALLBACKS (telnyx:model, xai और assemblyai सहित एक कॉमा-सेपरेटेड प्रदाता चेन); BOLO_STT_STREAMING (Deepgram Nova-3 स्ट्रीमिंग बनाम बैच ट्रांसक्रिप्शन को नियंत्रित करता है); BOLO_PRESERVE_CLIPBOARD; BOLO_LLM_CLEANUP; BOLO_AUTO_UPDATE; और BOLO_LOG_TRANSCRIPTS (डिफ़ॉल्ट रूप से बंद, ताकि डिक्टेटेड टेक्स्ट को /tmp/bolo.log से redacted किया जा सके)। क्लीनअप, शब्दावली और सुधार: LLM क्लीनअप डिफ़ॉल्ट रूप से ऑटो है, जो छोटे साफ डिक्टेशन को छोड़ देता है और लंबे या गंदे डिक्टेशन के लिए सक्रिय हो जाता है; 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 APIs पर भेजा जाता है और केवल मेमोरी में प्रोसेस किया जाता है, जैसा कि README में कहा गया है, और ट्रांसक्रिप्ट को ट्रेनिंग के लिए इस्तेमाल नहीं किया जाता है। दस सबसे हाल के ट्रांसक्रिप्ट को स्थानीय रूप से ~/.bolo/transcripts.json में स्टोर किया जाता है, जिसमें क्लीनअप के दौरान टेक्स्ट बदलने पर raw और cleaned वेरिएंट दोनों रखे जाते हैं, और इन्हें मेनू बार से डिलीट किया जा सकता है। सीमाएं और रखरखाव: Bolo को इंटरनेट कनेक्शन की आवश्यकता है, छोटे डिक्टेशन आज अच्छी तरह से काम करते हैं जबकि लंबे डिक्टेशन और लेटेंसी पर अभी भी सुधार किया जा रहा है, और क्लीनअप जानबूझकर रूढ़िवादी है ताकि शाब्दिक अर्थ को संरक्षित किया जा सके। अपडेट लॉन्च पर या मांग पर चेक किए जाते हैं और तब छोड़े जाते हैं जब स्थानीय फ़ाइलों में अनकमिडेटेड बदलाव हों, GitHub पहुंच से बाहर हो, Rust गायब हो, या चेकआउट को cleanly फास्ट-फ़ॉरवर्ड नहीं किया जा सकता हो। एक छोटा वाक्यांश-आधारित मूल्यांकन हार्नेस (eval_dictation.py with prompts, init and score commands) शामिल है, और समस्या निवारण /tmp/bolo.log, API कुंजी की उपस्थिति, प्रबंधित इंटरप्रेटर के लिए अनुमतियों, और restart.sh पर केंद्रित है।