Tłumaczenie automatyczne · Oryginał angielski
Pierwsze kroki
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
- macOS 15+ (Sequoia lub późniejsza)
- Apple Silicon (arm64)
- 8 GB RAM minimum (16 Gibbs zalecane dla większych modeli)
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 |
|---|---|
Qwen3ASR | Tekst mowy (Qwen3-ASR) |
WhisperASR | Tekst mowy (Whisper Large-v3 Turbo, CoreML) |
ParakeetASR | Tekst mowy (Parakeet TDT, CoreML) |
Qwen3TTS | Text- to- mowy (Qwen3-TTS) |
CosyVoiceTTS | Text- to- mowy (CosyVoice3, wielojęzyczny) |
KokoroTTS | Text- to- mowy (Kokoro-82M, CoreML i iOS- ready) |
Qwen3Chat | Czat na urządzeniu pokładowym LLM (Qwen3.5-0.8B, MLX + CoreML) |
PersonaPlex | Przemówienie (PersonaPlex 7B) |
SpeechVAD | VAD (Silero + Pyannote), diaryzacja, osadzanie głośników |
SpeechEnhancement | Tłumienie hałasu (DeepFilterNet3, CoreML) |
AudioCommon | Wspó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
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ór | Rozmiar | Zastosowanie 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) zalecane | 9.1 GB | ~ 11 GB pik |
| PersonaPlex 7B (4- bit) | 4.9 GB | ~ 6.5 GB pik |
| Pyannote VAD | 5.7 MB | ~ 20 MB pik |
| Silero VAD v5 | 1.2 MB | ~ 5 MB pik |
| WeSpeaker ResNet34 | 25 MB | ~ 50 MB pik |
| DeepFilterNet3 (FP16) | 4.2 MB | ~ 10 MB pik |
Kolejne kroki
- Kontynuuj z przewodnikiem M4A-to-text
- Odniesienie do CLI - wszystkie dostępne polecenia i opcje
- Przewodnik Qwen3-ASR - szczegółową dokumentację przemówień do tekstu
- Przewodnik Qwen3-TTS - szczegółową dokumentację podręczną do mowy
- API i protokoły - wspólne protokoły i typy