Pocket TTS 100M
Apple için yerel çalışma zamanı · PocketTTS
PocketTTS, speech-swift'e yerel CoreML konuşma sentezi ekler. Tüm aşamalar varsayılan olarak yalnızca CPU kullanır. İngilizce Alba sesi 24 kHz'de 1.920 örneklik kareler, yani kare başına 80 ms ses aktarır.
Teslimatın beklenmesi geri basınç sağlar. Her isteğin kendi durumu ve tohumu vardır. İptal, alıcı hataları ve üretim sınırları hata bildirir; başarıda tek bir boş son parça gönderilir. Bu paket ses klonlamayı veya diğer dilleri desteklemez.
İlk kullanımda yayımlanan aufklarer/Pocket-TTS-100M-CoreML-INT8 paketini indirin veya yerel dışa aktarımı yükleyin. CC BY 4.0 kapsamında Kyutai, FluidInference ve Alba MacKenna atıflarını koruyun.
Swift ve CLI kullanımı
speech speak "Hello world." --engine pocket --stream \
--pocket-bundle-dir /path/to/bundle --pocket-seed 42 -o hello.wavimport PocketTTS
let model = try PocketTTSModel.fromBundle(URL(fileURLWithPath: "/path/to/bundle"))
try await model.generateStreaming(text: "Hello world.") { chunk in
await consume(chunk.samples)
}HTTP ve WebSocket
pocket-tts ve alba sesini kullanın. HTTP akışı PCM gerektirir; WebSocket ses parçaları gönderir. Mevcut varsayılan modeller korunur.
curl http://localhost:8080/v1/audio/speech \
-H 'Content-Type: application/json' \
-d '{"model":"pocket-tts","voice":"alba","input":"Hello world.","response_format":"pcm","stream":true}' \
-o hello.pcmApple CPU ölçümü
Apple M5 Pro · 48 GiB · cpuOnly · first_audio_ms 78.9 · RTF 0.337 · peak_rss 866.8 MiB · n=5 · seed=42 · 2026-10-17
Pocket TTS 100M, speech-core içindeki düşük gecikmeli, cihaz üzerinde çalışan İngilizce metinden konuşmaya backend’idir. Genel ONNX paketi sabit Alba sesini kullanır ve her akustik kare hazır olur olmaz sesi akıtır.
Çıkarım gerçekten iç içedir: bir otoregresif latent çözümlenip yayınlandıktan sonra sıradaki üretilir. Her son olmayan callback 1.920 Float32 örneği — 24 kHz’de 80 ms — verir ve tamponlu TTS grafiklerinin sabit taban gecikmesini önler.
Yayınlanan paket
| Item | Details |
|---|---|
| Model | soniqo/Pocket-TTS-100M-ONNX-INT8 |
| Release | v1.0.0 · ad5d3fae3fb2f10024583708597afca8337c094c |
| Bundle size | 120.3 MiB |
| Runtime | ONNX Runtime · C++17 · dynamic INT8 + FP32 |
| Output | 24 kHz mono Float32 PCM · 1,920 samples / 80 ms per frame |
| Language / voice | English · fixed Alba voice |
İndirme ve doğrulama
speech-core indiricisi v1.0.0 sürümünü sabitler ve her yayın dosyasını SHA-256 ile doğrular.
bash scripts/download_pocket_tts_onnx.sh /models/pocket-tts-onnx
C++ API
#include <speech_core/models/onnx_pocket_tts.h>
speech_core::PocketTtsConfig config;
config.intra_threads = 2;
config.flow_steps = 4;
speech_core::OnnxPocketTts tts("/models/pocket-tts-onnx", config);
tts.synthesize("Hello world.", "en",
[](const float* samples, size_t length, bool is_final) {
// Each non-final callback is 1,920 Float32 samples:
// 80 ms at 24 kHz.
});
Akış sözleşmesi
Callback her seferinde bir 80 ms kare alır; son callback akış sonunu işaretler. last_metrics() koşullama, ilk ses ve toplam gecikme, kare/örnek sayıları, EOS, iptal ve kullanılan seed’i bildirir. cancel() etkin sentezi durdurur.
Galaxy S23 Ultra benchmark
Genel v1.0.0 paketinin temiz tekrar testi ONNX Runtime 1.27, iki CPU thread’i ve Galaxy S23 Ultra kullandı. Bunlar UI veya tüm ses hattı değil, doğrudan motor ölçümleridir.
| Metric | Result |
|---|---|
| TTFA p50 / p95 | 127.7 / 133.7 ms |
| Total latency p50 / p95 | 467.5 / 485.3 ms |
| Median RTF | 0.4495 |
| Peak RSS | 373.7 MiB |
Gidiş-dönüş anlaşılabilirlik
Cihaz testi 46 komut ve yanıt cümlesi sentezledi, production 24→16 kHz yeniden örnekleyiciden geçirdi ve dağıtılmış Parakeet-EOU ile yazıya döktü.
| Metric | Result |
|---|---|
| Corpus | 46 phrases |
| Exact transcripts | 31 / 46 |
| WER / CER | 8.00% / 3.47% |
| Empty audio / transcript / EOS failures | 0 / 0 / 0 |
Gidiş-dönüş ASR doğallığı veya dinleyici tercihini değil anlaşılabilirliği ölçer; dinleme testlerini tamamlar.
Entegrasyon durumu
C++17 ONNX backend speech-core’a merge edildi ve Windows, Linux, Android için build ediliyor. Mevcut speech-android SDK/JNI yolu hâlâ varsayılan olarak Kokoro’yu seçiyor; Kotlin model seçimi, indirme ve SDK sunumu sonraki iştir. Bu bölüm ONNX sürümünü açıklar; yerel Swift CoreML çalışma zamanı yukarıda belgelenmiştir.
Sınırlar ve lisans
- Yalnızca İngilizce; genel checkpoint sabit Alba sesini içerir ve keyfi ses klonlamayı desteklemez.
- Model ve ses CC BY 4.0’dır. Paket manifestindeki Alba MacKenna atfını koruyun.
- Tekrarlayan grafikler CPU odaklıdır. Android provider desteği cihaza ve ONNX Runtime build’ine göre değiştiği için donanım hızlandırması isteğe bağlıdır.
- speech-core kaynağı Apache 2.0, model paketi ise CC BY 4.0 koşullarını korur.