diff --git a/core/gallery/parakeet_bundle_entries_test.go b/core/gallery/parakeet_bundle_entries_test.go index c09f69e6b..5facc52fc 100644 --- a/core/gallery/parakeet_bundle_entries_test.go +++ b/core/gallery/parakeet_bundle_entries_test.go @@ -65,18 +65,15 @@ var _ = Describe("gallery/index.yaml parakeet-cpp bundle entries", func() { } }) - // speaker_recognition is deliberately absent: that usecase means the model - // answers the /v1/voice/* RPCs (VoiceEmbed, VoiceVerify), which the - // parakeet-cpp backend does not implement, and it picks the default model - // for those routes. Naming registered speakers works from the - // speaker_component option alone, with no usecase. + // speaker_recognition means the model answers the /v1/voice/* RPCs + // (VoiceEmbed, VoiceVerify). The parakeet-cpp backend does since it binds + // parakeet_capi_speaker_embed_pcm, so entries with a speaker encoder declare it. It("declares the usecases and options of the roles each bundle covers", func() { all := entries() for name, w := range want { e := all[name] Expect(e.Overrides["known_usecases"]).To(ConsistOf(toAny(w.usecases)...), name) Expect(e.Overrides["options"]).To(ConsistOf(toAny(w.options)...), name) - Expect(e.Overrides["known_usecases"]).ToNot(ContainElement("speaker_recognition"), name) } }) diff --git a/docs/content/features/voice-recognition.md b/docs/content/features/voice-recognition.md index 625015b32..b9512ae90 100644 --- a/docs/content/features/voice-recognition.md +++ b/docs/content/features/voice-recognition.md @@ -230,6 +230,9 @@ other. Use a distance threshold near 0.5 for this encoder, as for `speaker_model naming below. The response `model` field is the `sha256:` identity of the encoder weights. +`/v1/voice/verify` uses a distance threshold of 0.5 when the request has none. Set the +model option `voice_verify_threshold:` (a distance in (0, 2)) to change it. + Only embedding, identification and plain verification are available. There is no anti-spoofing head, so a verify request with `anti_spoofing: true` is refused, and `/v1/voice/analyze` is not served by parakeet-cpp. The backend needs a libparakeet.so