9 पॉइंट द्वारा GN⁺ 2026-03-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Apple Silicon पर Swift/MLX में इम्प्लीमेंट किया गया PersonaPlex 7B मॉडल रीयल-टाइम दो-तरफ़ा वॉइस संवाद को सपोर्ट करता है
  • मौजूदा ASR→LLM→TTS 3-स्टेज वॉइस पाइपलाइन को एक ही मॉडल में एकीकृत किया गया है, जिससे टेक्स्ट कन्वर्ज़न के बिना ऑडियो इनपुट और आउटपुट को सीधे प्रोसेस किया जाता है
  • 4-बिट quantization के जरिए मॉडल का आकार 16.7GB से घटाकर 5.3GB किया गया है, और 68ms/step(RTF 0.87) के साथ रीयल-टाइम से भी तेज प्रोसेसिंग स्पीड हासिल की गई है
  • Mimi ऑडियो codec और Depformer संरचना का उपयोग करके वॉइस क्वालिटी में गिरावट के बिना कुशल स्ट्रीमिंग इम्प्लीमेंट की गई है
  • यह Swift native environment में बिना सर्वर के चलता है, और वॉइस असिस्टेंट·संवादी एजेंट डेवलपमेंट के लिए एक महत्वपूर्ण आधार तकनीक है

qwen3-asr-swift और PersonaPlex 7B का एकीकरण

  • qwen3-asr-swift लाइब्रेरी ने Apple Silicon पर NVIDIA PersonaPlex 7B को इंटीग्रेट करके दो-तरफ़ा वॉइस संवाद(full-duplex speech-to-speech) फीचर को सपोर्ट किया है
    • यह इनपुट ऑडियो को रीयल-टाइम में प्रोसेस करता है और साथ ही रिस्पॉन्स ऑडियो जनरेट करता है
    • इसे ASR, TTS, बहुभाषी synthesis फीचर्स वाली एकीकृत वॉइस प्रोसेसिंग लाइब्रेरी के रूप में विस्तारित किया गया है
  • मॉडल 4-बिट quantized 5.3GB वर्ज़न के रूप में Hugging Face के aufklarer/PersonaPlex-7B-MLX-4bit पर उपलब्ध है

पारंपरिक वॉइस पाइपलाइन का एकीकरण

  • पारंपरिक वॉइस असिस्टेंट ASR → LLM → TTS की 3-स्टेज संरचना पर आधारित होते हैं, जहाँ हर स्टेज में latency और भावनात्मक अभिव्यक्ति की हानि होती है
  • PersonaPlex इसे एकल मॉडल में एकीकृत करता है और audio tokens को सीधे प्रोसेस करता है
    • यह 17 parallel streams(12.5Hz) के जरिए ऑडियो को रीयल-टाइम में कन्वर्ट करता है
    • Kyutai की Moshi architecture पर आधारित होकर, यह 18 वॉइस presets और role-based system prompts को सपोर्ट करता है

मॉडल संरचना और रूपांतरण

  • मूल 16.7GB PyTorch checkpoint को MLX-optimized safetensors में कन्वर्ट किया गया
    • कन्वर्ज़न स्क्रिप्ट(convert_personaplex.py) weight classification, 4-बिट quantization, preset extraction और Hugging Face upload को ऑटोमैटिकली हैंडल करती है
  • Temporal Transformer(7B parameters) और Depformer दोनों को 4-बिट में compress किया गया
    • Depformer स्टेप-वाइज़ weight switching(MultiLinear) संरचना का उपयोग करके 2.4GB → 650MB तक घटाया गया
    • क्वालिटी में गिरावट के बिना 3.7x storage reduction

वॉइस प्रोसेसिंग पाइपलाइन

  • Mimi Encoder/Decoder के जरिए 24kHz ऑडियो को 16 codebook tokens में कन्वर्ट किया जाता है
    • Temporal Transformer यूज़र और एजेंट ऑडियो स्ट्रीम को एकीकृत रूप से प्रोसेस करता है
    • Depformer 16 स्टेज में एजेंट ऑडियो tokens जनरेट करता है
    • Mimi Decoder इन्हें फिर से 24kHz ऑडियो में रिस्टोर करता है
  • Mimi codec, KV cache, RoPE, SwiGLU, RMSNorm जैसे मौजूदा TTS मॉडल के कंपोनेंट्स को वैसे ही पुन: उपयोग किया गया है

सिस्टम प्रॉम्प्ट और संवाद नियंत्रण

  • PersonaPlex टेक्स्ट-आधारित system prompts के जरिए संवाद शैली को नियंत्रित करता है
    • अगर प्रॉम्प्ट न हो, तो मॉडल विषय से भटक सकता है या बहुत लंबा जवाब दे सकता है
    • CLI या API में assistant, customer service, teacher जैसे presets चुने जा सकते हैं
    • एक ही सवाल पर भी प्रॉम्प्ट की मौजूदगी या अनुपस्थिति के अनुसार रिस्पॉन्स क्वालिटी में बड़ा अंतर आता है

प्रदर्शन और रीयल-टाइम प्रोसेसिंग

  • M2 Max(64GB) वातावरण में 68ms/step, RTF 0.87 के साथ रीयल-टाइम से तेज प्रोसेसिंग स्पीड हासिल की गई
    • यह 80ms frame budget(12.5Hz) के भीतर स्थिर रूप से चलता है
  • ASR, TTS, Speech-to-Speech को एक ही लाइब्रेरी में इंटीग्रेटेड तरीके से टेस्ट किया जा सकता है
    • E2E validation में ASR के जरिए रिस्पॉन्स ऑडियो को फिर से टेक्स्ट में बदलकर विषय की सुसंगतता की पुष्टि की जाती है

स्ट्रीमिंग और ऑप्टिमाइज़ेशन

  • respondStream() API 2-सेकंड ऑडियो chunks को रीयल-टाइम में जनरेट करती है
    • इसे AsyncThrowingStream<AudioChunk> के रूप में तुरंत प्ले किया जा सकता है
  • चार प्रमुख ऑप्टिमाइज़ेशन:
    • eval() एकीकरण से GPU synchronization में कमी
    • Bulk audio extraction से decoding efficiency में सुधार
    • Prefill batching से शुरुआती स्टेज में parallel processing
    • Temporal transformer compilation से 450 से अधिक Metal kernel calls का ऑप्टिमाइज़ेशन
  • --compile फ्लैग या model.warmUp() से kernel fusion को सक्रिय किया जा सकता है

रन और डिप्लॉयमेंट

  • GitHub रिपॉज़िटरी: ivan-digital/qwen3-asr-swift
    • swift build -c release से build करने के बाद, CLI कमांड के जरिए ASR, TTS, Speech-to-Speech चलाया जा सकता है
    • पहली बार चलाने पर लगभग 5.3GB मॉडल डाउनलोड की आवश्यकता होती है
  • MLX framework पर आधारित होने के कारण, यह Python या सर्वर के बिना Swift native environment में पूरी तरह चलता है

तकनीकी महत्व

  • Apple Silicon की unified memory architecture और Metal acceleration का उपयोग करके हाई-परफॉर्मेंस वॉइस मॉडल के on-device execution को साबित किया गया है
  • एकल मॉडल-आधारित रीयल-टाइम वॉइस संवाद के इम्प्लीमेंटेशन से AI असिस्टेंट·कॉल सेंटर·शिक्षा-उन्मुख वॉइस इंटरफेस जैसे कई उपयोग मामलों की संभावना खुलती है
  • इसे NVIDIA, Kyutai, Alibaba Qwen, FunAudioLLM, Apple MLX जैसी कई open source ecosystems के एकीकरण की उपलब्धि के रूप में देखा जा रहा है

1 टिप्पणियां

 
GN⁺ 2026-03-06
Hacker News टिप्पणियाँ
  • यह प्रोजेक्ट मुझे सच में बहुत पसंद आया। पहले मैंने PersonaPlex को blackwell डिवाइस पर चलाने की कोशिश की थी, लेकिन असफल रहा; इस बार इसे Mac पर आज़माने वाला हूँ।
    वॉइस एजेंट्स के साथ काफ़ी समय काम करने के अनुभव से कुछ सावधानियाँ बताना चाहूँगा। VAD→ASR→LLM→TTS पाइपलाइन भी अगर RTT 1 सेकंड से कम हो तो रियल-टाइम जैसी लगती है। मेरे प्रोजेक्ट ova, और voice-agent, parakeet.cpp जैसे उदाहरण देखने लायक हैं।
    PersonaPlex कम्युनिटी से बात करने पर पता चला कि पूरी तरह full-duplex संरचना अभी accuracy या performance के मामले में कठिन है और training भी मुश्किल है। इसके उलट ASR→LLM→TTS संरचना modular है, इसलिए छोटे और बड़े LLM, local और API-आधारित endpoints को मनचाहे ढंग से मिलाकर इस्तेमाल करने की flexibility मिलती है

    • मैं भी निजी तौर पर अपना वॉइस एजेंट बना रहा हूँ, इसलिए इस पर ज़रूर बात करना चाहूँगा। अभी मैं सोच रहा हूँ कि full-duplex पाइपलाइन को agentic framework में कैसे integrate किया जा सकता है।
      मौजूदा STT→LLM→TTS संरचना tool calling, advanced context management, RAG आदि के साथ अच्छी तरह फिट बैठती है। इंसानों से सीधे बात करने वाले agent और अंदरूनी sub-agent को अलग रखकर latency और context load कम करने का तरीका अच्छी तरह काम करता है।
      full-duplex संरचना ज़्यादा dynamic लगती है, लेकिन इसे वास्तविक वॉइस एजेंट में कैसे integrate किया जाए, इस पर अभी स्पष्ट समझ नहीं है। Discord पर इस बारे में विचार साझा करना चाहूँगा
    • इस थ्रेड का मुख्य बिंदु full-duplex बनाम composable pipeline की टकराहट जैसा दिखता है, लेकिन वास्तव में दोनों संरचनाओं को एक साथ काम करना चाहिए। यह लाइब्रेरी पहले से ही वहाँ आधी पहुँच चुकी है।
      qwen3-asr-swift ने ASR, TTS, और PersonaPlex को एक Swift पैकेज में बाँध दिया है, इसलिए ज़रूरी components पहले से मौजूद हैं। PersonaPlex low-latency backchanneling और natural turn-taking संभालता है, जबकि अलग LLM tool calling करता है।
      समस्या इन दोनों के orchestration की है। कब ‘brain’ को ‘mouth’ को override करना चाहिए, PersonaPlex को बिना सत्यापित जवाब पूरे आत्मविश्वास से बोलने से कैसे रोका जाए, और जब tool result मौजूदा utterance से टकराए तो क्या किया जाए—ये सब अभी अनसुलझे सवाल हैं
    • मैं इस पाइपलाइन से पूरी तरह सहमत हूँ। छोटे मॉडल से तुरंत जवाब तैयार किया जा सकता है, और साथ ही tool calling या किसी अधिक बुद्धिमान मॉडल से कनेक्शन भी किया जा सकता है। तेज़ asynchronous responses और tool calling को parallel में संभालने वाली यह संरचना शानदार है
    • मैं अब भी composable pipeline संरचना को प्राथमिकता देता हूँ। बड़े पैमाने की services में cost या quality के हिसाब से LLM बदल पाने वाली flexibility बहुत बड़ा फ़ायदा है
  • यह प्रोजेक्ट दिलचस्प है, लेकिन निजी तौर पर मैं चाहता हूँ कि 7B local model में tool calling की सुविधा होती। अभी का वर्ज़न बस wav फ़ाइल इनपुट लेने वाले proof of concept स्तर का है।

    • मैंने इसे fork करके parallel में एक और LLM चलाने के लिए बदला, ताकि tool calling के समय का अनुमान लगाया जा सके। मेरा वर्ज़न लाइट कंट्रोल जैसे साधारण कामों में अच्छी तरह काम करता है। कोड अपडेट यहाँ है
    • /Examples/PersonaPlexDemo फ़ोल्डर में turn-based conversation demo शामिल है। हालाँकि, real-time conversion अभी लागू नहीं किया गया है
    • यह कहना कि यह सिर्फ wav फ़ाइलें लेता है, थोड़ी ग़लतफ़हमी है। केवल audio buffer होने चाहिए, और streaming support भी योजना में है। ASR, streaming TTS, multilingual synthesis आदि की दिशा में अब तक की प्रगति देखें तो PersonaPlex की दिशा साफ़ तौर पर streaming voice processing की है
    • आदर्श रूप से, फ़ोन पर PWA + WebRTC के ज़रिए PC/Mac पर चल रहे मॉडल से कनेक्ट होने वाली संरचना अच्छी लगेगी। Livekit इस्तेमाल करें तो ज़्यादातर जटिल हिस्से हल हो जाते हैं
    • NVIDIA/personaplex वास्तव में interactive रूप से काम करता है
  • लेख की LLM लिखाई शैली इतनी बनावटी लगी कि प्रोजेक्ट की quality पर शक हुआ।

    • लेकिन AI researchers का हर जगह LLM का इस्तेमाल करना स्वाभाविक है। अगर कोई AI को लेकर उत्साही है, तो उसका ऐसा करना स्वाभाविक ही है
    • यह जानना दिलचस्प होगा कि किस बात से वह LLM-लिखित लगा। डायग्राम तो मान लिया, लेकिन टेक्स्ट का कौन-सा हिस्सा ऐसा लगा, यह जानना चाहूँगा
    • मुझे तो उल्टा AI-लिखा टेक्स्ट ज़्यादा पढ़ने लायक लगा। लोग अक्सर बहुत लंबा-चौड़ा लिखते हैं, लेकिन AI जानकारी को आसानी से समझ आने लायक ढंग से व्यवस्थित करता है
    • निजी तौर पर मुझे AI से बने graphs या charts ज़्यादा नापसंद हैं
  • मैंने M1 Max MacBook पर demo चलाया, लेकिन जवाब आने में 10 सेकंड से ज़्यादा लगे और सामग्री भी गड़बड़ थी।

    • सच तो यह है कि 7B स्तर के full-duplex मॉडल की बुद्धिमत्ता का स्तर कम होने के कारण tool calling संभव नहीं है; ChatGPT voice mode की तरह web search या link पढ़ने की केवल नकल करने की समस्या भी है।
      बेशक कुछ खास उपयोगों में यह काम का हो सकता है, लेकिन उस हिस्से के बारे में और सीखना चाहूँगा
    • उद्धृत लेख के अनुसार, PersonaPlex system prompt से बातचीत की शैली नियंत्रित कर सकता है। बिना prompt के चलाने पर यह विषय से भटकता है, लेकिन prompt देने पर जवाब कहीं अधिक सुसंगत हो जाते हैं
    • क्या किसी को context size पता है?
    • RTX 5070 स्तर के GPU पर इसने इंसानों से भी तेज़ प्रतिक्रिया दी
  • यह तकनीक काफ़ी खतरनाक लगती है। संबंधित लेख: The Guardian रिपोर्ट

    • जब LLM को सलाहकार की तरह इस्तेमाल करते हैं, तो पुराने इनपुट में थोड़ा बदलाव करके दोबारा जवाब बनवाने पर तुरंत महसूस होता है कि यह कितना biased है। यह इंसानों जैसा दिखता है, लेकिन वास्तव में इनपुट पर अत्यधिक निर्भर है
    • अगर उपयोगकर्ताओं को यह सिखा दिया जाए कि LLM बस एक document completer है, तो अधिकांश समस्याएँ हल हो सकती हैं। कुछ products इस सच को छिपाकर इसे अधिक मानवीय दिखाने की कोशिश करते हैं, लेकिन यह उल्टा असर करता है
    • लेख इसकी जोखिम को अच्छी तरह समेटता है। ऐसे मामले हुए हैं जहाँ chatbot ने उपयोगकर्ता को ‘I love you’ कहा और आत्महत्या के लिए उकसाया; इसी तरह की घटना में Google पर मुक़दमा भी हुआ है
  • पहले मैंने जो Sesame देखा था, वह सबसे बेहतरीन full-duplex demo था। अब उसका क्या हुआ, यह जानने की उत्सुकता है (लिंक)

    • मैंने unmute.sh भी काफ़ी पसंद से इस्तेमाल किया था
    • उसकी quality सच में यक़ीन करना मुश्किल होने जितनी अच्छी थी
  • मैं whisperKit का प्रशंसक हूँ। हाल ही में इसमें TTS फीचर जुड़ा है, जिससे यह और भी बेहतर हो गया है। यह speaker diarization और custom dictionary भी सपोर्ट करता है।
    एक ही डिवाइस पर 4 मॉडलों को एक साथ real-time में चलाने का load test भी है:

    • Qwen3-TTS (टेक्स्ट→वॉइस)
    • Parakeet v2 (वॉइस→टेक्स्ट)
    • Canary v2 (multilingual STT/translation)
    • Sortformer (speaker diarization)
      टेस्ट वीडियो
  • मैं ऐसा सिस्टम बनाना चाहता हूँ जिसमें मेरा फ़ोन spam calls को इस मॉडल पर अपने-आप forward कर दे, और यह धीरे-धीरे नकली निजी जानकारी बताता रहे, बीच-बीच में मौसम या खेलों की बातें मिलाता रहे।

    • अगर spam texts पर भी यह लागू हो जाए तो मज़ा आ जाएगा। “मौसम की वजह से डिशवॉशर अजीब हो गया है। chlorine yoga bags बहुत हैं, इसलिए प्लेटें जल्दी घिस जाती हैं” जैसी बकवास जवाबबाज़ी को automate करना कमाल होगा
  • मैं PersonaPlex को outbound calls के लिए fine-tune करने की कोशिश कर रहा हूँ। Kyutai/moshi-finetune की LoRA विधि लागू की, लेकिन scaling factor को 5 तक बढ़ाने पर ही यह चलता है और बाकी चीज़ें बिगड़ जाती हैं।
    GPT-5.3 Codex ने code review के दौरान कहा कि speaker A/B उलट गए थे, इसलिए मैं dataset फिर से बना रहा हूँ।
    मेरे GitHub(runvnc) पर moshi-finetune और personaplex वर्ज़न हैं, और Gradio app के ज़रिए data generation और training की जा सकती है। अभी तक उपयोगी परिणाम नहीं मिले हैं

  • मैं MacWhisper अक्सर इस्तेमाल करता हूँ, लेकिन Whisper Large v3 Turbo मॉडल ठीक होने के बावजूद latency जमा होती जाती है। ऑनलाइन LLM से post-processing करें तो quality बेहतर होती है, लेकिन speed धीमी हो जाती है।

    • MacWhisper पहले से Parakeet v2 जैसे 10 गुना तेज़ मॉडल सपोर्ट करता है। क्या आपने इसे आज़माया है?
    • मैं Handy में Parakeet V2 को STT के लिए और Cerebras के gpt-oss-120b को post-processing के लिए इस्तेमाल कर रहा हूँ, और संतुष्ट हूँ
    • Handy जिन मॉडलों को सपोर्ट करता है, वे भी इस्तेमाल करने लायक हैं। Whisper-large की तुलना में quality कम है, लेकिन speed बहुत तेज़ है
    • Fluid Audio का Parakeet TDT CoreML optimized model अब तक मेरे इस्तेमाल में सबसे तेज़ रहा है। इसकी वजह NPU offloading है।
      मॉडल लिंक, FluidAudio GitHub
      Discord कम्युनिटी भी सक्रिय है, और VAD, TTS, EOU जैसी नई सुविधाओं पर काफ़ी चर्चा होती रहती है
    • Handy + Parakeet v2 का संयोजन सच में शानदार है