Traduzione automatica · Originale inglese
Guida introduttiva
Preferire un API? La stessa trascrizione, sintesi e clonazione funzionano come servizio gestito — OpenAI- e ElevenLabs-compatibile. soniqo audio/cloud →
Installare il speech CLI per trascrivere e generare audio sul tuo Apple Silicon Mac. Utilizzare Swift SDK per aggiungere il trattamento vocale a macOS e iOS app.
Requisiti CLI
- macOS 15+ (Sequoia o successivo)
- Apple Silicon (arm64)
- 8 GB RAM minimo (16 GB raccomandato per modelli più grandi)
Installare il CLI
Homebrew (CLI)
Utilizzare ARM nativo Homebrew (/opt/homebrew) da installare speech e il speech-server Server HTTP/WebSocket.
brew install speech
speech --help
Primo compito: trascrivere un file M4A
Scarica la registrazione del campione, quindi trascrivilo nel tuo terminale:
Connettiti a Internet per la prima esecuzione. Il modello selezionato scarica da HuggingFace e rimane memorizzato sul tuo Mac. Dopo l'installazione, è possibile trascrivere registrazioni locali offline con quel modello.
curl -fL https://soniqo.audio/audio/samples/cli/transcription-sample.m4a -o transcription-sample.m4a
speech transcribe transcription-sample.m4a --engine parakeet
Continuare con la guida M4A-to-text.
Avvio rapido: Testo a velocità
speech speak "Hello, world!" --output hello.wav
Esegui un discorso locale API
Avviare il server HTTP/WebSocket per le richieste API locali:
speech-server --port 8080
Swift SDK
Aggiungi i moduli Swift alla tua app macOS 15+ o iOS, 18+ con Swift Package Manager.
Swift Responsabile del pacchetto
Aggiungere speech-swift al vostro Package.swift
dependencies: [
.package(url: "https://github.com/soniqo/speech-swift", branch: "main")
]
Quindi aggiungere i moduli che è necessario per il vostro obiettivo:
.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
]
)
Moduli disponibili
| Modulo | Designazione |
|---|---|
Qwen3ASR | Discussione su testo ( Qwen3-ASR) |
WhisperASR | Speech-to-text ( Whisper Large-v3 Turbo, CoreML |
ParakeetASR | Discussione su testo ( Parakeet TDT, CoreML |
Qwen3TTS | Testo-speech ( Qwen3-TTS) |
CosyVoiceTTS | Testo-speech (CosyVoice3, multilingue) |
KokoroTTS | Testo-to-speech (Kokoro-82M, CoreML, iOS-ready) |
Qwen3Chat | chat su richiesta LLM (Qwen3.5-0.8B, MLX + CoreML) |
PersonaPlex | Discorso-speech ( PersonaPlex 7B) |
SpeechVAD | VAD ( Silero + Pyannote), diarizzazione, incorporazione dei diffusori |
SpeechEnhancement | Soppressione dei rumori ( DeepFilterNet3, CoreML) |
AudioCommon | Protocolli condivisi, audio I/O, HuggingFace |
Trascrivi l'audio con Swift
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)
Generare il discorso con Swift
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"))
Edificio da Fonte
Per la creazione di una sorgente, installare Xcode 16.3+ con la Metal Toolchain e Swift 6+. clonare il repository, costruire il CLI, quindi controllare il binario nel checkout:
git clone https://github.com/soniqo/speech-swift.git
cd speech-swift
make build
.build/release/speech --help
make build compila automaticamente la libreria ombrer MLX Metal. Senza di essa, l'inferenza GPU corre ~5x più lenta a causa della compilazione di JIT shader.
Shader costruisce il default a macOS 15.0 e Metal, 3.2 anche con SDK più recenti. MACOSX_DEPLOYMENT_TARGET e MLX_METAL_LANGUAGE_VERSION Compiler, SDK, flag, script o modifiche di origine invalidano la cache. La compilazione o il collegamento non eseguito conserva l'hash precedente della libreria e della cache.
Download del modello
I modelli vengono scaricati automaticamente da HuggingFace sul primo utilizzo e memorizzati nella cache in ~/Library/Caches/qwen3-speech/
Tutti i modelli sono scaricati da HuggingFace sul primo utilizzo.
| Modello | Dimensione | RAM Utilizzo |
|---|---|---|
| Qwen3-ASR 0.6B (4-bit MLX | 680 MB | ~ 1.0 GB picco |
| Qwen3-ASR 0.6B (8-bit MLX | 1,0 GB | ~ 1,3 GB di picco |
| Qwen3-ASR 0.6B ( CoreML INT8 | 180 MB | ~ 1,4 GB di picco |
| Qwen3-ASR 1.7B (4-bit MLX | 2.1 GB | ~ 3 GB di picco |
| Qwen3-ASR 1.7B (8-bit MLX | 3.2 GB | ~ 2,7 GB di picco |
| Parakeet-TDT v3 ( CoreML INT8) | 500 MB | ~ 900 MB di picco |
| Whisper Turbo Large-v3 (CoreML FP16) | 1.6 GB | ~384 MB di picco |
| Omnilingual CTC 300M (4-bit MLX) | 193 MB | ~ 400 MB di picco |
| Omnilingual CTC 300M ( CoreML INT8) | 312 MB | ~ 550 MB di picco |
| Qwen3-TTS 0.6B (4-bit) | 1,7 GB | ~ 2 GB di picco |
| Qwen3-TTS 1.7B (4-bit) | 3.2 GB | ~ 4 GB di picco |
| CosyVoice3 (4-bit LLM) | 1.2 GB | ~ 1,5 GB di picco |
| Kokoro-82M ( CoreML INT8) | 89 MB | ~ 200 MB di picco |
| Qwen3.5-Chat 0,8B ( INT4 MLX | 418 MB | ~ 700 MB di picco |
| Qwen3.5-Chat 0,8B ( INT8 CoreML) | 981 MB | ~ 1,2 GB di picco |
| PersonaPlex 7B (8-bit) Consigliato | 9,1 GB | ~ 11 GB di picco |
| PersonaPlex 7B (4-bit) | 4.9 GB | ~ 6,5 GB di picco |
| Pyannote VAD | 5,7 MB | ~ 20 MB di picco |
| Silero VAD v5 | 1.2 MB | ~ 5 MB di picco |
| WeSpeaker ResNet34 | 25 MB | ~ 50 MB di picco |
| DeepFilterNet3 (FP16) | 4.2 MB | ~ 10 MB di picco |
Prossimo passo
- Continuare con la guida M4A-to-text
- CLI Riferimento — tutti i comandi e le opzioni disponibili
- Guida Qwen3-ASR — documentazione dettagliata del discorso al testo
- Guida Qwen3-TTS — documentazione dettagliata del testo in lingua spagnola
- API & Protocols — Protocolli e tipi condivisi