शुरुआत

speech-swift Apple Silicon पर macOS और iOS के लिए ऑन-डिवाइस AI स्पीच प्रोसेसिंग प्रदान करता है। मॉडल MLX (Metal GPU) और CoreML (Neural Engine) का उपयोग करके लोकली चलते हैं।

आवश्यकताएँ

इंस्टॉलेशन

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)
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)
SpeechVADVAD (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 धीमी चलती है।

त्वरित प्रारंभ: ऑडियो ट्रांसक्राइब करें

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
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 VAD5.7 MB~20 MB peak
Silero VAD v51.2 MB~5 MB peak
WeSpeaker ResNet3425 MB~50 MB peak
DeepFilterNet3 (FP16)4.2 MB~10 MB peak

अगले कदम