快速开始

Soniqo Cloud

想用托管 API?同样的转写、合成与克隆能力以云服务方式提供 — 兼容 OpenAI 与 ElevenLabs 接口。 soniqo.audio/cloud →

安装 speech 命令行工具,即可在 Apple Silicon Mac 上转写和生成音频。使用 Swift SDK 为 macOS 和 iOS 应用添加语音处理功能。

命令行工具的环境要求

安装命令行工具

Homebrew (CLI)

使用原生 ARM 版 Homebrew(/opt/homebrew)安装 speech 和 speech-server HTTP/WebSocket 服务器。

brew install speech
speech --help

第一个任务:转写 M4A 文件

下载示例录音,然后在终端中转写:

首次运行时请连接互联网。所选模型会从 HuggingFace 下载,并缓存在 Mac 上。完成设置后,即可使用该模型离线转写本地录音。

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

继续阅读 M4A 转文字指南.

快速开始:文本转语音

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

运行本地语音 API

启动 HTTP/WebSocket 服务器,处理本地 API 请求:

speech-server --port 8080

Swift SDK

通过 Swift Package Manager,将 Swift 模块添加到 macOS 15+ 或 iOS 18+ 应用中。

Swift Package Manager

将 speech-swift 添加到你的 Package.swift 依赖中:

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

然后按需将所需模块添加到你的 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
    ]
)

可用模块

模块说明
Qwen3ASR语音转文字(Qwen3-ASR)
WhisperASR语音转文字(Whisper Large-v3 Turbo,CoreML)
ParakeetASR语音转文字(Parakeet TDT,CoreML)
Qwen3TTS文本转语音(Qwen3-TTS)
CosyVoiceTTS文本转语音(CosyVoice3,多语种)
KokoroTTS文本转语音(Kokoro-82M,CoreML,iOS 就绪)
Qwen3Chat端侧 LLM 对话(Qwen3.5-0.8B,MLX + CoreML)
PersonaPlex语音到语音(PersonaPlex 7B)
SpeechVADVAD(Silero + Pyannote)、说话人分离、说话人 embedding
SpeechEnhancement降噪(DeepFilterNet3,CoreML)
AudioCommon共享协议、音频 I/O、HuggingFace 下载器

使用 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)

使用 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"))

从源码构建

如需从源码构建,请安装包含 Metal Toolchain 的 Xcode 16.3+ 和 Swift 6+。克隆仓库、构建命令行工具,然后检查源码目录中的可执行文件:

git clone https://github.com/soniqo/speech-swift.git
cd speech-swift
make build
.build/release/speech --help
重要

make build 会自动编译 MLX Metal 着色器库。如果没有它,由于 JIT 着色器编译,GPU 推理速度会慢约 5 倍。

即使使用较新的 SDK,着色器构建也默认使用 macOS 15.0 和 Metal 3.2。自定义构建可通过 MACOSX_DEPLOYMENT_TARGET 和 MLX_METAL_LANGUAGE_VERSION 覆盖默认值;更高的目标版本可能不支持旧系统。编译器、SDK、选项、脚本或源文件的变化会使缓存失效。编译或链接失败时会保留之前的库和缓存哈希。

模型下载

模型在首次使用时会自动从 HuggingFace 下载,并缓存在 ~/Library/Caches/qwen3-speech/。

所有模型在首次使用时从 HuggingFace 下载。大致大小:

模型大小RAM 占用
Qwen3-ASR 0.6B (4-bit MLX)680 MB~1.0 GB peak
Qwen3-ASR 0.6B (8-bit MLX)1.0 GB~1.3 GB peak
Qwen3-ASR 0.6B (CoreML INT8)180 MB~1.4 GB peak
Qwen3-ASR 1.7B (4-bit MLX)2.1 GB~3 GB peak
Qwen3-ASR 1.7B (8-bit MLX)3.2 GB~2.7 GB peak
Parakeet-TDT v3 (CoreML INT8)500 MB~900 MB peak
Whisper Large-v3 Turbo (CoreML FP16)1.6 GB~384 MB peak
Omnilingual CTC 300M (4-bit MLX)193 MB~400 MB peak
Omnilingual CTC 300M (CoreML INT8)312 MB~550 MB peak
Qwen3-TTS 0.6B(4 位)1.7 GB峰值约 2 GB
Qwen3-TTS 1.7B(4 位)3.2 GB峰值约 4 GB
CosyVoice3(4 位 LLM)1.2 GB峰值约 1.5 GB
Kokoro-82M(CoreML INT8)89 MB峰值约 200 MB
Qwen3.5-Chat 0.8B(INT4 MLX)418 MB峰值约 700 MB
Qwen3.5-Chat 0.8B(INT8 CoreML)981 MB峰值约 1.2 GB
PersonaPlex 7B(8 位)推荐9.1 GB峰值约 11 GB
PersonaPlex 7B(4 位)4.9 GB峰值约 6.5 GB
Pyannote VAD5.7 MB峰值约 20 MB
Silero VAD v51.2 MB峰值约 5 MB
WeSpeaker ResNet3425 MB峰值约 50 MB
DeepFilterNet3(FP16)4.2 MB峰值约 10 MB

下一步