Tłumaczenie automatyczne · Oryginał angielski

Pierwsze kroki

Soniqo Cloud

Preferować prowadzony API? Ta sama transkrypcja, synteza i klonowanie uruchomić jako zarządzane usługi - OpenAI- i ElevenLabs- kompatybilne. soniqo.audio / chmura →

Zainstaluj speech CLI do transkrypcji i generowania dźwięku na swoim Apple Silicon MacUżyj Swift SDK dodać przetwarzanie mowy do macOS oraz iOS aplikacje.

Wymogi CLI

Zainstaluj CLI

Homebrew (CLI)

Użyj rodzimej ARM Homebrew (/opt/homebrew) do instalacji speech oraz speech-server Serwer HTTP / WebSocket.

brew install speech
speech --help

Pierwsze zadanie: przepisywanie pliku M4A

Pobierz zapis próbki, a następnie przepisz go w terminalu:

Połącz się z internetem podczas pierwszego uruchomienia. Wybrany model pobiera z HuggingFace i zostaje na swoim Mac. Po skonfigurowaniu możesz zapisywać lokalne nagrania offline z tym modelem.

curl -fL https://soniqo.audio/audio/samples/cli/transcription-sample.m4a -o transcription-sample.m4a
speech transcribe transcription-sample.m4a --engine parakeet

Kontynuuj z przewodnikiem M4A-to-text.

Szybki start: Text- to- Speech

speech speak "Hello, world!" --output hello.wav

Uruchom lokalną mowę API

Uruchom serwer HTTP / WebSocket dla lokalnych żądań API:

speech-server --port 8080

Swift SDK

Dodaj moduły Swift do swojego macOS 15+ lub iOS z aplikacją 18+ za pomocą Swift Package Manager.

Swift menedżer pakietów

Dodaj speech-swift do Package.swift uzależnienia:

dependencies: [
    .package(url: "https://github.com/soniqo/speech-swift", branch: "main")
]

Następnie dodaj potrzebne moduły do celu:

.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
    ]
)

Dostępne moduły

ModułOpis
Qwen3ASRTekst mowy (Qwen3-ASR)
WhisperASRTekst mowy (Whisper Large-v3 Turbo, CoreML)
ParakeetASRTekst mowy (Parakeet TDT, CoreML)
Qwen3TTSText- to- mowy (Qwen3-TTS)
CosyVoiceTTSText- to- mowy (CosyVoice3, wielojęzyczny)
KokoroTTSText- to- mowy (Kokoro-82M, CoreML i iOS- ready)
Qwen3ChatCzat na urządzeniu pokładowym LLM (Qwen3.5-0.8B, MLX + CoreML)
PersonaPlexPrzemówienie (PersonaPlex 7B)
SpeechVADVAD (Silero + Pyannote), diaryzacja, osadzanie głośników
SpeechEnhancementTłumienie hałasu (DeepFilterNet3, CoreML)
AudioCommonWspólne protokoły, audio I / O, HuggingFace do pobrania

Transcribe audio z 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)

Generuj mowę z 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"))

Budynek ze źródła

Aby zbudować źródło, zainstaluj Xkod 16.3+ za pomocą łańcucha narzędzi Metal i Swift 6+. Klonuj repozytorium, buduj CLI, a następnie sprawdź binarne w kasie:

git clone https://github.com/soniqo/speech-swift.git
cd speech-swift
make build
.build/release/speech --help
Ważne

make build kompiluje automatycznie bibliotekę Shadera MLX Metal. Bez niej, GPU działa ~ 5x wolniej dzięki kompilacji Shadera JIT.

Shader buduje domyślną macOS 15.0 oraz Metal 3.2, nawet z nowszych SDK. Override te z MACOSX_DEPLOYMENT_TARGET oraz MLX_METAL_LANGUAGE_VERSION dla własnych konstrukcji; wyższe cele mogą wykluczać starsze systemy. Kompilator, SDK, flaga, skrypt, lub zmiany źródła unieważniają cache. Nie powiodło się kompilacja lub powiązanie zachowuje poprzednią bibliotekę i hash cache.

Pobieranie modeli

Modele są automatycznie pobierane z HuggingFace przy pierwszym użyciu i buforowane w ~/Library/Caches/qwen3-speech/.

Wszystkie modele są pobierane z HuggingFace przy pierwszym użyciu. Przybliżone rozmiary:

WzórRozmiarZastosowanie RAM
Qwen3-ASR 0.6B (4- bit MLX)680 MB~ 1,0 GB pik
Qwen3-ASR 0.6B (8- bit MLX)1,0 GB- 1,3 GB piku
Qwen3-ASR 0.6B (CoreML INT8)180 MB- 1,4 GB piku
Qwen3-ASR 1.7B (4- bit MLX)2.1 GB~ 3 GB pik
Qwen3-ASR 1.7B (8- bit MLX)3.2 GB- 2,7 GB piku
Parakeet- TDT v3 (CoreML INT8)500 MB- 900 MB pik
Whisper Turbo Large-v3 (CoreML FP16)1.6 GB~ 384 MB pik
Omnillingual CTC 300M (4- bit MLX)193 MB- 400 MB pik
Omnillingual CTC 300M (CoreML INT8)312 MB~ 550 MB pik
Qwen3-TTS 0.6B (4- bit)1.7 GB~ 2 GB pik
Qwen3-TTS 1.7B (4- bit)3.2 GB~ 4 GB pik
CosyVoice3 (4- bit LLM)1.2 GB- 1,5 GB piku
Kokoro-82M (CoreML INT8)89 MB~ 200 MB pik
Qwen3.5-Chat 0.8B (INT4 MLX)418 MB~ 700 MB pik
Qwen3.5-Chat 0.8B (INT8 CoreML)981 MB- 1,2 GB piku
PersonaPlex 7B (8- bit) zalecane9.1 GB~ 11 GB pik
PersonaPlex 7B (4- bit)4.9 GB~ 6.5 GB pik
Pyannote VAD5.7 MB~ 20 MB pik
Silero VAD v51.2 MB~ 5 MB pik
WeSpeaker ResNet3425 MB~ 50 MB pik
DeepFilterNet3 (FP16)4.2 MB~ 10 MB pik

Kolejne kroki