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-mini5.3M · CoreML · Float3216 kHz · 160 ms · 1 chApache-2.0
VAP (otoSpeech)5.8M · CoreML / ONNX · Float3216 kHz · 20 s · 2 chCC 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

Ölçüm sonuçları

TurnBench · Soniqo

Lisanslar