p99 ve VAP — Konuşma sırası modelleri
p99, tek ses kanalından konuşma sırasının bitme olasılığını tahmin eder. VAP, eşzamanlı kullanıcı ve ajan kanallarından konuşma etkinliğini öngörür. Ne zaman yanıt verileceğine veya araya girileceğine uygulama karar verir.
Bu API’ler için SDK’yı kaynak koddan derleyin. Swift, SpeechVAD kullanır; C++ için SPEECH_CORE_WITH_ONNX=ON gerekir. Android API’si ONNX Runtime kullanır. Mevcut işlem hattının varsayılanları korunur.
Modeller
| p99 turn-1-mini | 5.3M · CoreML · Float32 | 16 kHz · 160 ms · 1 ch | Apache-2.0 |
|---|---|---|---|
| VAP (otoSpeech) | 5.8M · CoreML / ONNX · Float32 | 16 kHz · 20 s · 2 ch | CC BY 4.0 / MIT |
Swift API
p99 eksik adımları tamponlar. Her 160 ms adım, sekiz adet 20 ms kare döndürür. Karar zamanı için availableAfterSeconds kullanın ve konuşmalar arasında oturumu sıfırlayın.
import SpeechVAD
let p99 = try await P99TurnModel.fromPretrained()
let session = try p99.createSession()
let frames = try session.pushAudio(pcm16k)
for frame in frames {
print(frame.probability, frame.availableAfterSeconds)
}
try session.reset()
let vap = try await VAPModel.fromPretrained()
let forecast = try vap.forecast(userAudio: userPcm, agentAudio: agentPcm)
print(forecast.pNow, forecast.pFuture, forecast.voiceActivity)VAP, 16 kHz sesin son 20 saniyesini kullanır. Kanallar eşit uzunlukta olmalıdır; sessiz ajan için sıfır kanalı verin. Kısa girdilerin başına sessizlik eklenir. Her tahminde pencere yeniden hesaplanır; cihaza uygun bir çağrı aralığı seçin.
C++
#include <speech_core/models/onnx_vap.h>
speech_core::OnnxVap model("models/vap.onnx");
auto forecast = model.forecast(user.data(), agent.data(), user.size(), 16000);
// p_now[0]: user, p_now[1]: agent
// p_future and voice_activity use the same channel order.Android
val directory = ModelManager.ensureVapModels(context)
withContext(Dispatchers.Default) {
VoiceActivityProjection(VoiceActivityProjectionConfig(directory)).use { model ->
val forecast = model.forecast(userPcm, agentPcm)
println(forecast.userNearTerm)
println(forecast.agentNearTerm)
}
}İndirmeler
- P99-Turn-1-Mini-CoreML · 22 MB
- VAP-OTO-CoreML · 39 MB
- VAP-OTO-ONNX · 40 MB
Ölçüm sonuçları
Lisanslar
- turn-1-mini by p99lab · Apache-2.0 · LICENSE / NOTICE
- VAP otoSpeech · CC BY 4.0 · VoiceActivityProjection · MIT · LICENSE / NOTICE