Maskinöversättning · Engelskt original
p99 och VAP -- Turn-taking models
p99 uppskattar slut-of-turn sannolikhet från en ljudkanal. VAP prognoser talaktivitet från synkroniserade användare och agentkanaler. Ansökan använder dessa poäng för att bestämma när man ska svara eller avbryta.
Bygg SDK från källa till dessa API:er. Swift använder SpeechVAD; C++ kräver SPEECH_CORE_WITH_ONNX=ON. Android API använder ONNX Runtime. Dessa fristående API lämnar befintliga pipeline-fas på plats.
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 buffertar ofullständiga steg. Varje 160 ms steg returnerar åtta 20 ms ramar. Använd tillgängligaEfterSeconds för beslutstid och återställ sessionen mellan konversationer.
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 använder de senaste 20 sekunderna vid 16 kHz. Supply equal-length-kanaler och nollor för en inaktiv agent. Kortare ingångar får ledande tystnad. Varje prognos rekomputerar fönstret; välj ett förfrågningsintervall som passar enheten.
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)
}
}Nedladdningar
- P99-Turn-1-Mini-CoreML · 22 MB
- VAP-OTO-CoreML 39 MB
- VAP-OTO-ONNX · 40 MB
Benchmark resultat
Licens
- turn-1-mini av p99lab · Apache-2.0 · LICENSE/ NOTICE
- VAP otoSpeech · CC BY 4.0 · VoiceActivityProjection MIT · LICENSE/ NOTICE