Traduzione automatica · Originale inglese

Guida introduttiva

Soniqo Cloud

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

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

ModuloDesignazione
Qwen3ASRDiscussione su testo ( Qwen3-ASR)
WhisperASRSpeech-to-text ( Whisper Large-v3 Turbo, CoreML
ParakeetASRDiscussione su testo ( Parakeet TDT, CoreML
Qwen3TTSTesto-speech ( Qwen3-TTS)
CosyVoiceTTSTesto-speech (CosyVoice3, multilingue)
KokoroTTSTesto-to-speech (Kokoro-82M, CoreML, iOS-ready)
Qwen3Chatchat su richiesta LLM (Qwen3.5-0.8B, MLX + CoreML)
PersonaPlexDiscorso-speech ( PersonaPlex 7B)
SpeechVADVAD ( Silero + Pyannote), diarizzazione, incorporazione dei diffusori
SpeechEnhancementSoppressione dei rumori ( DeepFilterNet3, CoreML)
AudioCommonProtocolli 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
Importante

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.

ModelloDimensioneRAM Utilizzo
Qwen3-ASR 0.6B (4-bit MLX680 MB~ 1.0 GB picco
Qwen3-ASR 0.6B (8-bit MLX1,0 GB~ 1,3 GB di picco
Qwen3-ASR 0.6B ( CoreML INT8180 MB~ 1,4 GB di picco
Qwen3-ASR 1.7B (4-bit MLX2.1 GB~ 3 GB di picco
Qwen3-ASR 1.7B (8-bit MLX3.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 MLX418 MB~ 700 MB di picco
Qwen3.5-Chat 0,8B ( INT8 CoreML)981 MB~ 1,2 GB di picco
PersonaPlex 7B (8-bit) Consigliato9,1 GB~ 11 GB di picco
PersonaPlex 7B (4-bit)4.9 GB~ 6,5 GB di picco
Pyannote VAD5,7 MB~ 20 MB di picco
Silero VAD v51.2 MB~ 5 MB di picco
WeSpeaker ResNet3425 MB~ 50 MB di picco
DeepFilterNet3 (FP16)4.2 MB~ 10 MB di picco

Prossimo passo