शुरुआत
होस्टेड API चाहिए? वही ट्रांसक्रिप्शन, संश्लेषण और क्लोनिंग प्रबंधित सेवा के रूप में — OpenAI और ElevenLabs संगत। soniqo.audio/cloud →
speech-swift Apple Silicon पर macOS और iOS के लिए ऑन-डिवाइस AI स्पीच प्रोसेसिंग प्रदान करता है। मॉडल MLX (Metal GPU) और CoreML (Neural Engine) का उपयोग करके लोकली चलते हैं।
आवश्यकताएँ
- macOS 15+ (Sequoia या बाद में)
- Apple Silicon (M1, M2, M3, M4 सीरीज़)
- Xcode 16+ / Swift 6.0+
- न्यूनतम 8 GB RAM (बड़े मॉडलों के लिए 16 GB अनुशंसित)
इंस्टॉलेशन
Homebrew (CLI)
macOS पर speech-swift आज़माने का सबसे तेज़ तरीका। speech CLI और HTTP/WebSocket सर्वर speech-server (OpenAI-संगत /v1/realtime एंडपॉइंट) दोनों इंस्टॉल करता है। नेटिव ARM Homebrew (/opt/homebrew) आवश्यक है।
brew install speech
इंस्टॉल के बाद, दोनों बाइनरी आपके PATH में हैं:
speech transcribe recording.wav
speech speak "Hello, world!" --output hello.wav
speech-server --port 8080 # स्थानीय HTTP / WebSocket सर्वर
Swift Package Manager
अपने Package.swift dependencies में speech-swift जोड़ें:
dependencies: [
.package(url: "https://github.com/soniqo/speech-swift", branch: "main")
]
फिर अपने टारगेट में आवश्यक मॉड्यूल जोड़ें:
.target(
name: "MyApp",
dependencies: [
.product(name: "Qwen3ASR", package: "speech-swift"),
.product(name: "Qwen3TTS", package: "speech-swift"),
.product(name: "SpeechVAD", package: "speech-swift"),
// ... add any modules you need
]
)
उपलब्ध मॉड्यूल
| मॉड्यूल | विवरण |
|---|---|
Qwen3ASR | स्पीच-टू-टेक्स्ट (Qwen3-ASR) |
WhisperASR | स्पीच-टू-टेक्स्ट (Whisper Large-v3 Turbo, CoreML) |
ParakeetASR | स्पीच-टू-टेक्स्ट (Parakeet TDT, CoreML) |
Qwen3TTS | टेक्स्ट-टू-स्पीच (Qwen3-TTS) |
CosyVoiceTTS | टेक्स्ट-टू-स्पीच (CosyVoice3, बहुभाषी) |
KokoroTTS | टेक्स्ट-टू-स्पीच (Kokoro-82M, CoreML, iOS-ready) |
Qwen3Chat | ऑन-डिवाइस LLM चैट (Qwen3.5-0.8B, MLX + CoreML) |
PersonaPlex | स्पीच-टू-स्पीच (PersonaPlex 7B) |
SpeechVAD | VAD (Silero + Pyannote), डायराइज़ेशन, स्पीकर एम्बेडिंग |
SpeechEnhancement | नॉइज़ सप्रेशन (DeepFilterNet3, CoreML) |
AudioCommon | साझा प्रोटोकॉल, ऑडियो I/O, HuggingFace downloader |
सोर्स से बिल्ड करना
रिपॉज़िटरी को क्लोन करें और बिल्ड करें:
git clone https://github.com/soniqo/speech-swift.git
cd speech-swift
make build
make build MLX Metal shader library को स्वचालित रूप से कंपाइल करता है। इसके बिना, JIT shader कंपाइलेशन के कारण GPU इन्फ़रेंस ~5x धीमी चलती है।
नए SDK के साथ भी शेडर बिल्ड डिफ़ॉल्ट रूप से macOS 15.0 और Metal 3.2 को लक्षित करता है। कस्टम बिल्ड में MACOSX_DEPLOYMENT_TARGET और MLX_METAL_LANGUAGE_VERSION इन मानों को बदलते हैं; उच्च लक्ष्य संस्करण पुराने सिस्टम पर नहीं चल सकते। कंपाइलर, SDK, फ़्लैग, स्क्रिप्ट या स्रोत में बदलाव से कैश अमान्य हो जाता है। कंपाइलेशन या लिंकिंग विफल होने पर पिछली लाइब्रेरी और कैश हैश सुरक्षित रहते हैं।
त्वरित प्रारंभ: ऑडियो ट्रांसक्राइब करें
CLI
# Transcribe a WAV file
.build/release/speech transcribe recording.wav
Swift API
import Qwen3ASR
let model = try await Qwen3ASRModel.fromPretrained()
// audioSamples: [Float] PCM at 16 kHz (e.g. decoded from a WAV)
let text = model.transcribe(audio: audioSamples, sampleRate: 16000)
print(text)
मॉडल पहले उपयोग पर HuggingFace से स्वचालित रूप से डाउनलोड होते हैं और ~/Library/Caches/qwen3-speech/ में कैश होते हैं।
त्वरित प्रारंभ: टेक्स्ट-टू-स्पीच
CLI
# Generate speech
.build/release/speech speak "Hello, world!" --output hello.wav
Swift API
import Qwen3TTS
import AudioCommon
let model = try await Qwen3TTSModel.fromPretrained()
let audio = model.synthesize(text: "Hello, world!", language: "english")
try WAVWriter.write(samples: audio, sampleRate: 24000, to: URL(filePath: "hello.wav"))
मॉडल डाउनलोड
सभी मॉडल पहले उपयोग पर HuggingFace से डाउनलोड होते हैं। अनुमानित आकार:
| मॉडल | आकार | RAM उपयोग |
|---|---|---|
| Qwen3-ASR 0.6B (4-bit MLX) | 680 MB | ~1.0 GB peak |
| Qwen3-ASR 0.6B (8-bit MLX) | 1.0 GB | ~1.3 GB peak |
| Qwen3-ASR 0.6B (CoreML INT8) | 180 MB | ~1.4 GB peak |
| Qwen3-ASR 1.7B (4-bit MLX) | 2.1 GB | ~3 GB peak |
| Qwen3-ASR 1.7B (8-bit MLX) | 3.2 GB | ~2.7 GB peak |
| Parakeet-TDT v3 (CoreML INT8) | 500 MB | ~900 MB peak |
| Whisper Large-v3 Turbo (CoreML FP16) | 1.6 GB | ~384 MB peak |
| Omnilingual CTC 300M (4-bit MLX) | 193 MB | ~400 MB peak |
| Omnilingual CTC 300M (CoreML INT8) | 312 MB | ~550 MB peak |
| Qwen3-TTS 0.6B (4-bit) | 1.7 GB | ~2 GB peak |
| Qwen3-TTS 1.7B (4-bit) | 3.2 GB | ~4 GB peak |
| CosyVoice3 (4-bit LLM) | 1.2 GB | ~1.5 GB peak |
| Kokoro-82M (CoreML INT8) | 89 MB | ~200 MB peak |
| Qwen3.5-Chat 0.8B (INT4 MLX) | 418 MB | ~700 MB peak |
| Qwen3.5-Chat 0.8B (INT8 CoreML) | 981 MB | ~1.2 GB peak |
| PersonaPlex 7B (8-bit) अनुशंसित | 9.1 GB | ~11 GB peak |
| PersonaPlex 7B (4-bit) | 4.9 GB | ~6.5 GB peak |
| Pyannote VAD | 5.7 MB | ~20 MB peak |
| Silero VAD v5 | 1.2 MB | ~5 MB peak |
| WeSpeaker ResNet34 | 25 MB | ~50 MB peak |
| DeepFilterNet3 (FP16) | 4.2 MB | ~10 MB peak |
अगले कदम
- CLI संदर्भ — सभी उपलब्ध कमांड और विकल्प
- Qwen3-ASR गाइड — विस्तृत स्पीच-टू-टेक्स्ट दस्तावेज़ीकरण
- Qwen3-TTS गाइड — विस्तृत टेक्स्ट-टू-स्पीच दस्तावेज़ीकरण
- API और प्रोटोकॉल — साझा प्रोटोकॉल और types