Strojový překlad · Anglický originál

p99 a VAP - Modely užívající Turn- taking

p99 odhaduje end- of- turn pravděpodobnost z jednoho zvukového kanálu. VAP předpovídá činnost řeči ze synchronizovaných uživatelských a agentových kanálů. Aplikace používá tyto skóre k rozhodnutí, kdy odpovědět nebo přerušit.

Vybudovat SDK ze zdroje těchto API. Swift používá SpeechVAD; C++ vyžaduje SPEECH _ CORE _ With _ ONNX = ON. Android API použití ONNX Runtime. Tyto samostatné API ponechávají stávající výpadek potrubí na svém místě.

Modely

p99 turn-1-mini5.3M × CoreML · Float3216 kHz · 160 ms · 1 řoApache-2.0
VAP (otoSpeech)5.8M × CoreML / ONNX · Float3216 kHz · 20 s · 2 řoCC BY 4.0 / MIT

Swift API

p99 buffers nekompletní kroky. Každý krok 160 ms vrací osm snímků 20. Použijte dostupné AfterSeconds pro načasování rozhodnutí a resease mezi konverzacemi.

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 používá nejnovější 20 sekundy na 16 kHz. Dodávka rovnoběžných kanálů a nul pro neaktivní činidlo. Shorter vstupy obdrží vedoucí ticho. Každá předpověď ohodnocuje okno; zvolte interval požadavku, který vyhovuje zařízení.

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

Ke stažení

Referenční výsledky

TurnBench · Soniqo

Licence