Terjemahan mesin · Versi asli bahasa Inggris

p99 dan VAP - Belok-mengambil model

p99 memperkirakan probabilitas dari satu saluran audio. VAP meramalkan aktivitas percakapan dari pengguna dan saluran agen yang disinkronkan. Aplikasi menggunakan nilai ini untuk memutuskan kapan jawaban atau interupsi.

Bangun SDK dari sumber untuk APIs ini. Swift menggunakan SpeechVAD; C++ Memerlukan SPEECH _ CORE _ WITH _ ONNX = ON. Android API gunakan ONNX RuntimeIni standar APIs meninggalkan baku pipa yang ada di tempat.

Model

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

Swift API

p99 buffer tidak lengkap. Setiap langkah 160 ms langkah kembali delapan frame 20. Gunakan revailableSeventies untuk waktu keputusan, dan reset sesi antara percakapan.

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 menggunakan yang terbaru 20 detik di 16 kHz. Pasokan saluran equal- panjang dan nol untuk sebuah agen tidak aktif. Masukan pengurutan menerima keheningan terkemuka. Setiap perkiraan menghitung ulang jendela; pilih interval permintaan yang cocok dengan perangkat.

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

Unduhan

Hasil tanda-tangan

TurnBench · Soniqo

Batas