Awtomatikong salin · Orihinal sa Ingles
p99 at VAP — Mga modelong Turn-coating
p99 tantiyang dulo-of-turn probabilidad mula sa isang audio channel. VAP propesiya ng gawain ng pagsasalita mula sa combination user at agent channels. Ang aplikasyon ay gumagamit ng mga iskor na ito upang magpasiya kung kailan sasagutin o sasagutan.
Magtayo ng SDK mula sa pinagmulan ng mga API na ito. Swift ay gumagamit ng SpeakVAD; C++ kailangan ng SPEECH_CORE_WITH_ONNX=ON. Android API gumamit ONNX Runtime. Ang standalone APIs na ito ay nag-iiwan ng mga umiiral na default sa tubo.
Mga modelo
| 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 NG 4.0 / MIT |
Swift API
Ang p99 ay nagreresulta sa hindi kumpletong mga hakbang. Ang bawat 160 ms hakbang ay nagbabalik ng walong 20 ms frames. Gamitin ang mga afterSeconds para sa premise ng desisyon, at ayusin ang sesyon sa pagitan ng mga pag-uusap.
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)Ang VAP ay gumagamit ng pinakahuling 20 segundo sa 16 kHz. supply equal-habad channels at zeros para sa isang di-aktibong agent. Ang Shorter inputs ay tumatanggap ng nangungunang katahimikan. Ang bawat paghula ay muling nagkokodigo sa bintana; pumili ng isang interval na angkop sa aparato.
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)
}
}Mga download
- P99-Turn-1-Mini-CoreML · 22 MB
- VAP-OTO-CoreML · 39 MB
- VAP-OTO-ONNX · 40 MB
Mga resulta ng benchmark
Mga Lisensiya
- turn-1-mini by p99lab · Apache-2.0 · LICENSE / WALANG BABAE
- VAP otospeech · CC BY 4.0 · Pagkasiphayo ng Tinig · MIT · LICENSE / WALANG BABAE