Perguntas frequentes

O speech-swift funciona no iOS?

Kokoro TTS, Qwen3.5-Chat, Silero VAD, Parakeet ASR, DeepFilterNet3 e WeSpeaker rodam no iOS 18+ via CoreML no Neural Engine. Modelos baseados em MLX (Qwen3-ASR, Qwen3-TTS, Qwen3.5-Chat MLX, PersonaPlex) exigem macOS 15+ em Apple Silicon.

Precisa de conexão com a internet?

Apenas para o download inicial do modelo a partir do HuggingFace (automático, armazenado em cache em ~/Library/Caches/qwen3-speech/). Depois disso, toda a inferência roda totalmente offline sem acesso à rede. Sem APIs na nuvem, sem chaves de API.

Como o speech-swift se compara ao Whisper?

O Qwen3-ASR-0.6B alcança RTF 0,06 em um M2 Max — 40% mais rápido que o Whisper-large-v3 via whisper.cpp (RTF 0,10) — com precisão comparável em 52 idiomas. O speech-swift oferece uma API nativa Swift async/await, enquanto o whisper.cpp exige uma ponte C++.

Veja as tabelas de comparação completas para benchmarks de ASR e TTS contra whisper.cpp, Apple SFSpeechRecognizer, AVSpeechSynthesizer e APIs na nuvem.

Quais chips Apple Silicon são suportados?

Todos os chips da série M: M1, M2, M3, M4 e suas variantes Pro/Max/Ultra. Requer macOS 15+ (Sequoia) ou iOS 18+.

Por que requer macOS 15 / iOS 18?

O mínimo vem do MLState —— a API de estado persistente do ANE da Apple, introduzida no macOS 15 e iOS 18. Os pipelines CoreML (Qwen3-ASR, Qwen3-Chat, Qwen3-TTS) usam MLState para manter caches KV residentes no Neural Engine entre passos de token, em vez de movê-los para dentro e para fora a cada passo. Isso reduziu a latência CoreML por token em 30–50% em relação à abordagem stateless anterior.

Posso usar em um aplicativo comercial?

Sim. O speech-swift é licenciado sob Apache 2.0. Os pesos dos modelos subjacentes têm suas próprias licenças — confira a página do HuggingFace de cada modelo para detalhes.

Quanta memória é necessária?

De ~3 MB (Silero VAD) a ~6,5 GB (PersonaPlex 7B). Uso típico:

Posso rodar vários modelos ao mesmo tempo?

Sim. Use modelos CoreML no Neural Engine junto com modelos MLX na GPU para evitar contenção — por exemplo, Silero VAD (CoreML) + Qwen3-ASR (MLX) + Qwen3-TTS (MLX).

Existe uma API REST?

Sim. O binário speech-server expõe todos os modelos via endpoints HTTP REST e WebSocket, incluindo um WebSocket compatível com OpenAI Realtime API em /v1/realtime. Veja a Referência da CLI para comandos de servidor.

Como instalar?

Homebrew:

brew install soniqo/tap/speech

Instala tanto a CLI speech quanto o servidor HTTP/WebSocket speech-server no seu PATH.

Swift Package Manager:

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

Veja o guia de Primeiros passos para instruções completas.

Quais modelos de fala estão disponíveis?

Fala para texto: Qwen3-ASR (52 idiomas, MLX) e Parakeet TDT (25 idiomas, CoreML).

Texto para fala: Qwen3-TTS (streaming, 10 idiomas), CosyVoice3 (clonagem de voz, 9 idiomas) e Kokoro-82M (pronto para iOS, 50 vozes, 10 idiomas).

Fala para fala: PersonaPlex 7B (diálogo full-duplex, 18 presets de voz).

Análise de áudio: Silero + Pyannote VAD, diarização de falantes (Pyannote + Sortformer), embeddings de falante WeSpeaker e supressão de ruído DeepFilterNet3.

LLM: Qwen3.5-0.8B Chat (no dispositivo, INT4 MLX + INT8 CoreML, tokens em streaming).

O Soniqo funciona no Android?

Sim. O SDK speech-android oferece uma API Kotlin com aceleração de hardware ONNX Runtime e NNAPI. Suporta arm64-v8a no Android 8+ (API 26). Os modelos são baixados automaticamente do HuggingFace no primeiro uso (~1,2 GB). Veja Primeiros passos — Android para instruções de configuração.

O Soniqo funciona no Linux?

Sim. O projeto speech-core inclui uma API em C para Linux embarcado e automotivo (Yocto, dispositivos de borda) em examples/linux. Usa ONNX Runtime com aceleração QNN opcional para hardware Qualcomm. Suporta ARM64 e x86_64. Veja Primeiros passos — Linux para instruções de configuração.

Posso compartilhar modelos entre plataformas?

Os modelos principais (Parakeet, Kokoro, Silero, DeepFilter) usam o formato ONNX tanto no Android quanto no Linux. A Apple usa formatos CoreML/MLX. Mesmos pesos subjacentes, formatos de exportação diferentes otimizados para a aceleração de hardware de cada plataforma.