Maskinoversættelse · Engelsk original

p99 og VAP - Turn- take modeller

p99 estimerer end- of- turn sandsynlighed fra en lydkanal. VAP prognoser tale aktivitet fra synkroniserede bruger og agent kanaler. Applikationen bruger disse scorer til at beslutte, hvornår du skal svare eller afbryde.

Byg SDK fra kilde til disse API 'er. Swift bruger SpeechVAD; C++ kræver SPEECH _ CORE _ WITH _ ONNX = ON. Android API anvendelser ONNX RuntimeDisse selvstændige API 'er lader de eksisterende rørledningsdefekter være på plads.

Modeller

p99 turn-1-mini5.3M * CoreML · Float3216 kHz · 160 ms · 1 lmApache-2.0
VAP (otoTale)5.8M · CoreML / ONNX · Float3216 kHz · 20 s · 2 lmCC BY 4.0 / MIT

Swift API

p99 buffere ufuldstændige trin. Hver 160 ms trin returnerer otte 20 MS rammer. Brug availableAfterSeconds for beslutning timing, og nulstille sessionen mellem samtaler.

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 bruger de nyeste 20 sekunder på 16 kHz. Tilvejebringelse af lige lange kanaler og nuller til en inaktiv agent. Kortere indgange modtager førende stilhed. Hver prognose genberegner vinduet; vælger et forespørgselsinterval, der passer til enheden.

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)
    }
}

Downloads

Benchmark-resultater

TurnBench · Soniqo

Licenser