Whispree - कोरियाई डेवलपर्स के लिए STT + LLM करेक्शन वॉइस इनपुट macOS ऐप
(github.com/Arsture)मैं डेवलपमेंट पसंद करने वाला एक कॉलेज छात्र हूँ। जब भी AI से कुछ करवाना होता था, टाइपिंग bottleneck बन जाती थी, इसलिए मैंने voice input ढूँढना शुरू किया और शुरुआत में Superwhisper इस्तेमाल किया। कुल मिलाकर बुरा नहीं था, लेकिन क्योंकि वह सिर्फ कोरियाई के लिए नहीं था, वह शब्द बार-बार गलत पहचानता था.
- अगर मैं कहूँ, "GitHub par PR upload kar diya hai" तो वह इसे
Gitpub peol olryeosseoजैसी किसी चीज़ में transcribe कर देता था - latency अच्छी थी, लेकिन recognition rate निराशाजनक था
पैसे देने पर यह बेहतर होता था। लेकिन मैं कॉलेज छात्र हूँ, इसलिए पैसों की तंगी थी,,, और मैं भुगतान नहीं करना चाहता था।
→ इसलिए मैंने local STT और LLM से इसे implement करके देखा, लेकिन वह बहुत धीमा था।
→ फिर मैंने सोचा कि मैं पहले से GPT subscribe किए हुए हूँ, तो OAuth से LLM उधार लेकर इस्तेमाल कर सकता हूँ, और STT को Groq जैसी सेवा से लगभग मुफ्त के बराबर चला सकता हूँ।
उसी दिशा में मैंने Swift से एक personal macOS ऐप बनाया।
मुख्य काम करने का तरीका: hotkey दबाकर बोलिए, फिर STT → LLM correction → मूल cursor position पर auto paste।
यह typing की तुलना में 3–5 गुना तेज़ है, और recording के दौरान अगर आपने दूसरी window भी देखी हो, तब भी यह शुरुआती focus position को याद रखकर ठीक वहीं insert करता है।
मौजूदा voice typing ऐप्स से फर्क
मौजूदा ऐप्स STT → paste पर खत्म हो जाते हैं, लेकिन Whispree में STT के बाद LLM correction layer जुड़ती है। बाज़ार में कोरियाई-समर्पित ऐप्स नहीं मिले।
"baellideisyeon haeya doegeodeun" → "validation haeya doegeodeun"
"raekteu keomponeonteu" → "React keomponeonteu"
"Githeobe peol olryeonwasseo" → "GitHube PR olryeonwasseo"
इसे बनाने के बाद संतुष्टि काफी ज़्यादा मिली, इसलिए मैं इसे लगातार इस्तेमाल करते हुए नए features जोड़ता गया।
Structured Mode
AI को लगातार बोलकर input देते-देते मुझे एहसास हुआ कि मैं उम्मीद से ज़्यादा बेतरतीब बोलता हूँ। जैसे "और", "उम्" जैसी चीज़ें बहुत आ जाती हैं। इसलिए लगा कि अगर LLM post-processing करके इसे bullet points में structure कर दे तो अच्छा होगा, और मैंने यह feature बना दिया।
जब मुझे planning ideas जल्दी-जल्दी उंडेलने होते हैं, तो hotkey दबाकर लगातार बोलता हूँ और एक व्यवस्थित prompt तैयार होकर अंदर चला जाता है।
Visual Context
सिर्फ आवाज़ से context समझ में नहीं आता, इसलिए कई बार LLM अजीब तरह से correction कर देता था। इसलिए मैंने तय किया कि recording के दौरान जो screen मैं देख रहा हूँ, उसे अपने-आप capture किया जाए।
- शुरुआत में मैंने सिर्फ focused screen डाली थी, लेकिन असल में recording करते समय मैं दूसरे tabs भी देखता रहता था
- इसलिए इसे बढ़ाकर सभी tabs capture करने तक ले गया
- tab switch करते ही पिछला tab तुरंत capture, और अगर एक ही screen पर 1.5 सेकंड रुकें तो उसी क्षण का capture
- screenshots को सीधे prompt में paste करने की सुविधा भी जोड़ी
Quick Fix (Ctrl+Shift+D)
गलत शब्दों को correction dictionary में तुरंत register करता है। इससे recognition rate बढ़ती है। इसके लिए मैंने dictionary feature बनाया था, और फिर सुविधा के लिए उसे hotkey में बदल दिया।
लगभग मुफ्त
- STT: Groq API (मुफ्त)
- LLM correction: Codex CLI authentication token को वैसे ही इस्तेमाल करता है। सिर्फ OpenAI account हो तो अतिरिक्त लागत लगभग नहीं के बराबर
- local-only भी संभव: अगर आपके पास Codex subscription account नहीं है, तो आप local models इस्तेमाल कर सकते हैं। हालांकि Qwen के हल्के models इस्तेमाल करें, या सिर्फ STT ही इस्तेमाल करें, तो DX बेहतर रहेगा...
Providers & Modes
- STT: WhisperKit / Groq / MLX Audio, ये 3 विकल्प
- LLM: local 6 विकल्प (Qwen, GLM) + OpenAI 5 विकल्प
- correction modes: Standard / Filler Removal / Structured / Custom, कुल 4 प्रकार
- ऐप के अंदर Can I Run feature से अपनी device compatibility grade देख सकते हैं
इंस्टॉलेशन
brew tap Arsture/whispree && brew install --cask whispree
यह macOS 14+ (Sonoma), Apple Silicon only है। शुरुआत में मैंने इसे सिर्फ अपने लिए बनाना चाहा था, इसलिए macOS पर बनाया, और अभी दूसरे platforms का support नहीं है।
शुरुआत में इसका नाम FreeWhisper था। क्योंकि मैं इसे सिर्फ अपने लिए मुफ्त में इस्तेमाल करना चाहता था। फिर जब इसे open source के रूप में public करना चाहा, तो FreeWhisper थोड़ा अटपटा लगा। API key उधार लेकर इस्तेमाल करने वाली बात से मैंने "NotMyWhisper" नाम भी सोचा था। उसमें थोड़ा ILLIT के 'borrowed cat' जैसा एहसास था, जो मुझे पसंद आया। लेकिन इसे इस्तेमाल करते-करते लगा, "यह किसी और का whisper नहीं, मेरा whisper है," और आखिरकार इसका नाम Whispree हो गया।
यह MIT license वाला open source है। feedback का स्वागत है।
15 टिप्पणियां
मैं इसे काफी समय बाद फिर से इस्तेमाल कर रहा हूँ, और इस दौरान यह काफी बेहतर हो गया है
लेकिन एक चीज़ है जिसे बेहतर किया जा सकता है
Visual Context फीचर बहुत अच्छा है। लेकिन हर बार रिकॉर्डिंग खत्म होने पर कैप्चर की गई स्क्रीन दिखाना थोड़ा झंझट भरा है। सिर्फ ESC दबाकर इसे रद्द तो किया जा सकता है, लेकिन बेहतर होगा कि यह बिल्कुल ही न दिखे।
अगर रिकॉर्डिंग के समय कैप्चर की गई स्क्रीन को पेस्ट करने के लिए यह दिखाया जा रहा है, तो खत्म होने के बाद फिर से उस कैप्चर स्क्रीन को ढूँढने की सुविधा देकर इसे बेहतर बनाया जा सकता है।
रिकॉर्डिंग के दौरान अगर आप बाईं तरफ़ वाले Option को दबाकर रखें, तो context भेजा जाएगा लेकिन paste को बंद किया जा सकता है!
क्या आप शायद इसी फीचर की बात कर रहे थे??
नहीं। मैं तो सिर्फ ट्रांसक्रिप्शन फीचर ही नियमित रूप से इस्तेमाल करता हूँ। लेकिन हर बार रिकॉर्डिंग खत्म होने पर कैप्चर स्क्रीन की सूची दिखना असुविधाजनक लगता है, इसलिए चाहता हूँ कि इसे बंद किया जा सके.
Option key दबाने पर यह नहीं दिखता है। लेकिन मेरे इस्तेमाल के पैटर्न में यह भी थोड़ा असुविधाजनक है। मुझे लगता है कि ऐसी ही असुविधा महसूस करने वाले लोग काफी होंगे। क्या इसे main option में शामिल किया जा सकता है?
आह, वह शायद main option में default रूप से बंद ही होगा, लेकिन अगर आप पुराना version इस्तेमाल कर रहे हैं तो हो सकता है वह लागू न हुआ हो!
whispree ऐप -> LLM -> screenshot context -> एजेंट तक पहुंचाना को Off कर दें, तो आप इसे स्पष्ट रूप से बंद कर सकते हैं!
आपके usage pattern में जो हिस्सा असुविधाजनक लग रहा है, उसे मैं यहाँ पूरी तरह स्पष्ट रूप से समझ नहीं पाया, शायद इसलिए कि यहाँ photo attachment जैसी चीज़ें नहीं हो सकतीं T_T
अगर ठीक लगे, तो क्या आप इसे GitHub issue के रूप में दर्ज कर सकते हैं? तब मैं context को जितना संभव हो उतना समझकर उसे reflect करने की कोशिश करूँगा!
धन्यवाद। आज से यह दिखाई नहीं दे रहा था, तो मैं सोच रहा था कि ऐसा क्यों है, लेकिन पता चला कि आपने फीचर अपडेट किया था।
तेज़ फ़ीडबैक के लिए धन्यवाद।
Handy इस्तेमाल करते समय मुझे एक कमी महसूस होती थी, यह अच्छा लग रहा है। फिलहाल मैं इसे बदलकर इस्तेमाल करके देखूंगा।
धन्यवाद! फीडबैक का हमेशा स्वागत है!
अच्छा है :) शुभकामनाएँ
धन्यवाद :)
लगता है कि शॉर्टकट सेटिंग में कोई बग है।
अरे, क्या मैं पूछ सकता हूँ कि वह कौन-सा bug है?
शॉर्टकट सेटिंग ही नहीं हो रही है, और रीसेट करने पर तो शॉर्टकट पूरी तरह गायब हो जाता है।
क्या संभव है कि Accessibility permission सेट की गई हो?
अगर नहीं की गई है, तो कृपया Accessibility में Whispree app जोड़ें, फिर shortcut key सेटिंग दोबारा आज़माएँ और हमें बताएं।
मैंने इसे एक बार इस्तेमाल किया, और यह शानदार है। समर्थन करता हूँ।
धन्यवाद!