Automatische vertaling · Engels origineel
p99 en VAP
p99 schat de eind-to-turn waarschijnlijkheid van één audiokanaal. VAP voorspelt spraakactiviteit van gesynchroniseerde gebruikers- en agentkanalen. De toepassing gebruikt deze scores om te bepalen wanneer ze moeten antwoorden of onderbreken.
Bouw de SDK van de broncode voor deze API's. Swift gebruikt SpeechVAD; C++ vereist SPEECH_CORE_WITH_ONNX=ON. De Android API gebruikt ONNX Runtime. Deze standalone APIs laten de bestaande pijplijnstandaarden achter.
Modellen
| p99 turn-1-mini | 5.3M · CoreML · Float32 | 16 kHz · 160 ms · 1 l | Apache-2.0 |
|---|---|---|---|
| VAP (otoSpraak) | 5.8M · CoreML / ONNX · Float32 | 16 kHz · 20 s · 2 l | CC BY 4.0 / MIT |
Swift API
p99 buffert onvolledige stappen. Elke stap van 160 ms geeft acht 20 ms frames terug. Gebruik beschikbaarNa Seconden voor de timing van de beslissing, en reset de sessie tussen gesprekken.
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 gebruikt de laatste 20 seconden bij 16 kHz. Levert even lange kanalen en nullen voor een inactief middel. Kortere ingangen ontvangen leidende stilte. Elke voorspelling hercompileert het venster; kies een verzoekinterval dat bij het apparaat past.
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
- P99-Turn-1-Mini-CoreML · 22 MB
- VAP-OTO-CoreML · 39 MB
- VAP-OTO-ONNX · 40 MB
Benchmarkresultaten
Vergunningen
- turn-1-mini by p99lab · Apache-2.0 · LICENSE / NOTITY
- VAP otoSpeech · CC BY 4.0 · VoiceActivityProject · MIT · LICENSE / NOTITY