SUNDARI VOICE STUDIO — Mac mini M4 / 16 GB

स्थिति: वेबसाइट और स्थानीय इंजन का कोड तैयार है। असली M4 पर मॉडल installation, speed और voice quality का परीक्षण अभी बाकी है। Python syntax तथा app logic की जाँच की गई है। यह पैकेज ElevenLabs वाला clone import नहीं करता; आपकी असली आवाज़ का sample चाहिए।

पहली बार:
1. ZIP खोलें। Terminal में इस फोल्डर तक जाएँ (Terminal में cd लिखकर फोल्डर drag कर सकते हैं)।
2. bash Setup-Sundari.command
3. Python 3.10, 3.11 या 3.12 चाहिए; 3.11 सबसे सुरक्षित शुरुआती चुनाव है। यदि उपलब्ध नहीं है और Homebrew पहले से लगा है: brew install python@3.11 ffmpeg
   Homebrew नहीं है तो पहले Python और ffmpeg का trusted installation करना होगा; installer अपने-आप Homebrew install नहीं करता।
4. Setup अलग .venv बनाता है और requirements.txt के open-source packages install करता है। पहला download कई GB हो सकता है। पर्याप्त खाली disk रखें (आरंभ में कम से कम लगभग 10 GB जगह रखना उपयोगी है, actual model/cache पर निर्भर)।
5. Terminal में Connection key दिखाई देगी। इसे निजी रखें। पैनल में पेस्ट करें। key किसी को भेजने की जरूरत नहीं।
6. http://127.0.0.1:8765 या https://voice.sundarirecords.com खोलें। लाइव वेबसाइट इसी Mac का local engine जोड़ती है; फोन से वह आपके Mac को अपने-आप नहीं खोजती। Chrome स्थानीय नेटवर्क permission माँगे तो अनुमति दें। परेशानी पर local panel इस्तेमाल करें।
7. 10–20 सेकंड की सामान्य हिंदी आवाज़ रिकॉर्ड करें। बिना संगीत/रिवर्ब। sample save करें। पहले 55 शब्दों का test बनाएँ और सुनें।
8. पूरी स्क्रिप्ट डालें। मॉडल पहला काम शुरू होने पर download/load होता है। समय और आवाज़ की समानता आपके Mac पर test के बाद पता चलेगी।

अगली बार:
bash Start-Sundari.command
Terminal खुला रखें। बंद करने के लिए Control+C। अधूरे job में बने WAV हिस्से बचते हैं; अगली बार Resume करें।

लंबी स्क्रिप्ट:
10, 15, 20 मिनट या उससे लंबी स्क्रिप्ट समर्थित डिजाइन। एक project में 200,000 अक्षर का safety limit है। इससे बड़ा text अलग projects में दें। कोई daily paid credit quota नहीं। समय, disk और machine क्षमता सीमाएँ हैं; सचमुच अनंत या instant output नहीं। हर chunk sequential बनता है और अंत में streaming WAV join होता है। हिंदी spelling, numbers को शब्दों में और punctuation साफ रखें। कोई automatic pronunciation accuracy guarantee नहीं।

शुरुआती voice settings:
अभिव्यक्ति 0.45, CFG 0.40, chunk gap 0.30 सेकंड। यह starting preset है, आपके sample पर tuned होने का दावा नहीं। Chatterbox का native watermark बना रहता है। WAV output मिलता है; MP3 conversion इस version में नहीं है।

डेटा:
~/Library/Application Support/SundariVoice
इसमें connection-key, voices और jobs रहते हैं। reference या script Hostinger पर upload नहीं होते। केवल local engine को भेजे जाते हैं। “इस निजी ब्राउज़र में key याद रखें” चालू होने पर key उसी browser/origin के localStorage में सेव होती है। “सेव key हटाएँ” उसे हटाता है। Local panel और live domain में key एक-एक बार डालनी होगी। Incognito या browser data साफ करने पर key हट जाएगी। स्क्रिप्ट draft भी इसी browser में सेव होता है। Engine केवल 127.0.0.1:8765 पर bind करता है, public internet पर नहीं।

रिकॉर्डिंग:
Browser में record और upload दोनों हैं। Browser recording 20 सेकंड पर रुकती है। Uploaded samples 5–30 सेकंड, अधिकतम 30 MB। अपने या अनुमति प्राप्त आवाज़ के samples दें।

प्रायोगिक सीमाएँ:
Chatterbox/PyTorch की MPS support में model/package-specific errors आ सकते हैं। MPS fallback enabled है लेकिन हर error resolve होने की गारंटी नहीं। Error दिखे तो उसका संदेश दें। Install विफल होने पर Terminal की last error साझा करें, connection key नहीं। Download failure पर network जाँचें और retry करें।

Technical overview:
FastAPI + Uvicorn local engine; Chatterbox Multilingual, Hindi hi; MPS when available, CPU otherwise. Serial queue, per-chunk checkpoints, pause/resume, browser recording, authenticated API and exact-origin CORS. External remote Mac access/tunnel and public multi-user service are not configured.

Third-party references / licenses:
Chatterbox: https://github.com/resemble-ai/chatterbox (MIT)
FastAPI: https://github.com/fastapi/fastapi (MIT)
Uvicorn: https://github.com/encode/uvicorn (BSD)
Model dependencies retain their own licenses. This bundle contains app code, not model weights.

UPDATE v2: गति 0.75–1.15, light denoise, Enhance (gentle compression/loudness), narration presets और sentence/paragraph pauses जोड़े हैं। Original WAV भी रखा जाता है। Output quality सुनकर जाँचें।


MEMORY UPDATE v3 — M4 16GB
CPU सुरक्षित मोड default है। हर voice chunk अलग process में बनता है और process
बंद होने पर allocations निकलते हैं। मॉडल हर chunk में दोबारा load होता है, इसलिए
समय अधिक लगेगा। Cache में model files बनी रहती हैं; फिर download नहीं करना होता।
पुराने error/paused jobs “यहीं से फिर शुरू करें” पर CPU में चलते हैं और पहले के
पूरे WAV chunks बचते हैं। MPS mode में allocation limit चालू है; OOM होने पर उसी
chunk का CPU retry होता है। PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0 न लगाएँ।
पहले पुराने Terminal में Control+C करें, फिर Update-Sundari.command चलाएँ।
यह MPS memory pressure घटाने का बदलाव है; वास्तविक M4 benchmark बाकी है।
