- 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 टिप्पणियां
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 मिलती है
मौजूदा STT→LLM→TTS संरचना tool calling, advanced context management, RAG आदि के साथ अच्छी तरह फिट बैठती है। इंसानों से सीधे बात करने वाले agent और अंदरूनी sub-agent को अलग रखकर latency और context load कम करने का तरीका अच्छी तरह काम करता है।
full-duplex संरचना ज़्यादा dynamic लगती है, लेकिन इसे वास्तविक वॉइस एजेंट में कैसे integrate किया जाए, इस पर अभी स्पष्ट समझ नहीं है। Discord पर इस बारे में विचार साझा करना चाहूँगा
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 से टकराए तो क्या किया जाए—ये सब अभी अनसुलझे सवाल हैं
यह प्रोजेक्ट दिलचस्प है, लेकिन निजी तौर पर मैं चाहता हूँ कि 7B local model में tool calling की सुविधा होती। अभी का वर्ज़न बस wav फ़ाइल इनपुट लेने वाले proof of concept स्तर का है।
लेख की LLM लिखाई शैली इतनी बनावटी लगी कि प्रोजेक्ट की quality पर शक हुआ।
मैंने M1 Max MacBook पर demo चलाया, लेकिन जवाब आने में 10 सेकंड से ज़्यादा लगे और सामग्री भी गड़बड़ थी।
बेशक कुछ खास उपयोगों में यह काम का हो सकता है, लेकिन उस हिस्से के बारे में और सीखना चाहूँगा
यह तकनीक काफ़ी खतरनाक लगती है। संबंधित लेख: The Guardian रिपोर्ट
पहले मैंने जो Sesame देखा था, वह सबसे बेहतरीन full-duplex demo था। अब उसका क्या हुआ, यह जानने की उत्सुकता है (लिंक)
मैं whisperKit का प्रशंसक हूँ। हाल ही में इसमें TTS फीचर जुड़ा है, जिससे यह और भी बेहतर हो गया है। यह speaker diarization और custom dictionary भी सपोर्ट करता है।
एक ही डिवाइस पर 4 मॉडलों को एक साथ real-time में चलाने का load test भी है:
टेस्ट वीडियो
मैं ऐसा सिस्टम बनाना चाहता हूँ जिसमें मेरा फ़ोन spam calls को इस मॉडल पर अपने-आप forward कर दे, और यह धीरे-धीरे नकली निजी जानकारी बताता रहे, बीच-बीच में मौसम या खेलों की बातें मिलाता रहे।
मैं 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 धीमी हो जाती है।
मॉडल लिंक, FluidAudio GitHub
Discord कम्युनिटी भी सक्रिय है, और VAD, TTS, EOU जैसी नई सुविधाओं पर काफ़ी चर्चा होती रहती है