Bắt đầu
speech-swift cung cấp khả năng xử lý giọng nói bằng AI trên thiết bị cho macOS và iOS chạy trên Apple Silicon. Các mô hình chạy cục bộ thông qua MLX (Metal GPU) và CoreML (Neural Engine).
Yêu cầu
- macOS 15+ (Sequoia trở lên)
- Apple Silicon (dòng M1, M2, M3, M4)
- Xcode 15.4+ / Swift 6.0+
- Tối thiểu 8 GB RAM (khuyến nghị 16 GB cho các mô hình lớn hơn)
Cài đặt
Homebrew (CLI)
Cách nhanh nhất để dùng thử speech-swift trên macOS. Cài đặt cả CLI speech và máy chủ HTTP/WebSocket speech-server (endpoint /v1/realtime tương thích OpenAI). Yêu cầu Homebrew ARM gốc (/opt/homebrew).
brew install soniqo/tap/speech
Sau khi cài đặt, cả hai tệp thực thi đều có sẵn trong PATH của bạn:
speech transcribe recording.wav
speech speak "Hello, world!" --output hello.wav
speech-server --port 8080 # máy chủ HTTP / WebSocket cục bộ
Swift Package Manager
Thêm speech-swift vào các phụ thuộc trong Package.swift của bạn:
dependencies: [
.package(url: "https://github.com/soniqo/speech-swift", from: "0.0.9")
]
Sau đó thêm các module bạn cần vào target:
.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
]
)
Các module có sẵn
| Module | Mô tả |
|---|---|
Qwen3ASR | Giọng nói thành văn bản (Qwen3-ASR) |
ParakeetASR | Giọng nói thành văn bản (Parakeet TDT, CoreML) |
Qwen3TTS | Văn bản thành giọng nói (Qwen3-TTS) |
CosyVoiceTTS | Văn bản thành giọng nói (CosyVoice3, đa ngôn ngữ) |
KokoroTTS | Văn bản thành giọng nói (Kokoro-82M, CoreML, sẵn sàng cho iOS) |
Qwen3Chat | Chat LLM trên thiết bị (Qwen3.5-0.8B, MLX + CoreML) |
PersonaPlex | Giọng nói tới giọng nói (PersonaPlex 7B) |
SpeechVAD | VAD (Silero + Pyannote), phân tách người nói, embedding người nói |
SpeechEnhancement | Khử nhiễu (DeepFilterNet3, CoreML) |
AudioCommon | Giao thức dùng chung, I/O âm thanh, trình tải HuggingFace |
Biên dịch từ mã nguồn
Sao chép kho mã và biên dịch:
git clone https://github.com/soniqo/speech-swift.git
cd speech-swift
make build
make build sẽ tự động biên dịch thư viện shader MLX Metal. Nếu không có nó, suy luận trên GPU chạy chậm hơn ~5 lần do phải biên dịch shader theo kiểu JIT.
Khởi động nhanh: chuyển âm thanh thành văn bản
CLI
# Chuyển một tệp WAV thành văn bản
.build/release/speech transcribe recording.wav
API Swift
import Qwen3ASR
let model = try await Qwen3ASRModel.loadFromHub()
let result = try await model.transcribe(audioFile: "recording.wav")
print(result.text)
Các mô hình được tải tự động từ HuggingFace ở lần dùng đầu tiên và lưu trong ~/Library/Caches/qwen3-speech/.
Khởi động nhanh: văn bản thành giọng nói
CLI
# Tạo giọng nói
.build/release/speech speak "Hello, world!" --output hello.wav
API Swift
import Qwen3TTS
let model = try await Qwen3TTSModel.loadFromHub()
let audio = try await model.speak("Hello, world!")
try audio.write(to: "hello.wav")
Tải mô hình
Tất cả các mô hình đều được tải từ HuggingFace ở lần dùng đầu tiên. Kích thước ước tính:
| Mô hình | Kích thước | Sử dụng RAM |
|---|---|---|
| Qwen3-ASR 0.6B (4-bit) | 680 MB | ~2.2 GB đỉnh |
| Qwen3-ASR 0.6B (8-bit) | 1.0 GB | ~2.5 GB đỉnh |
| Qwen3-ASR 1.7B (4-bit) | 2.1 GB | ~4 GB đỉnh |
| Parakeet-TDT (CoreML INT8) | 500 MB | ~600 MB đỉnh |
| Qwen3-TTS 0.6B (4-bit) | 1.7 GB | ~2 GB đỉnh |
| Qwen3-TTS 1.7B (4-bit) | 3.2 GB | ~4 GB đỉnh |
| CosyVoice3 (4-bit LLM) | 1.2 GB | ~1.5 GB đỉnh |
| Kokoro-82M (CoreML INT8) | 89 MB | ~200 MB đỉnh |
| Qwen3.5-Chat 0.8B (INT4 MLX) | 418 MB | ~700 MB đỉnh |
| Qwen3.5-Chat 0.8B (INT8 CoreML) | 981 MB | ~1.2 GB đỉnh |
| PersonaPlex 7B (8-bit) khuyến nghị | 9.1 GB | ~11 GB đỉnh |
| PersonaPlex 7B (4-bit) | 4.9 GB | ~6.5 GB đỉnh |
| Pyannote VAD | 5.7 MB | ~20 MB đỉnh |
| Silero VAD v5 | 1.2 MB | ~5 MB đỉnh |
| WeSpeaker ResNet34 | 25 MB | ~50 MB đỉnh |
| DeepFilterNet3 (FP16) | 4.2 MB | ~10 MB đỉnh |
Bước tiếp theo
- Tham khảo CLI — tất cả các lệnh và tùy chọn có sẵn
- Hướng dẫn Qwen3-ASR — tài liệu chi tiết về chuyển giọng nói thành văn bản
- Hướng dẫn Qwen3-TTS — tài liệu chi tiết về văn bản thành giọng nói
- API và giao thức — các giao thức và kiểu dữ liệu dùng chung