Skip to main content

duplexjev

Jev-style typed decisions about speech with zero decode steps. Give it audio and one or more option groups (has the user finished? which filler? which intent? speaker gender?); every group comes back as a probability over its options from a single forward pass. Many groups about many calls share one pass, with exact prefix sharing.

pip install "duplexjev[speech]"      # add [all] for the HTTP server
from duplexjev import Decider, Question

d = Decider.from_pretrained("adventists-ai/DuplexJev-B-Gender-Qwen3-ASR-0.6B-Qwen3-32B", device="auto")
groups = [Question("turn", "Has the user finished the turn?", ["finished", "not finished"]),
          Question("gender", "What is the perceived gender of the speaker?", ["female", "male"])]

d.decide("call.wav", groups)
# {'turn': {'answer': 'finished', 'confidence': 0.97, 'probs': {...}}, 'gender': {...}}

# many clips: each option group names its clip(s) with audio=<id> | [ids] | "*"
d.decide_batch({"car1": "a.wav", "car2": "b.wav"},
               [Question("turn", "Has the user finished the turn?", ["finished", "not finished"], audio="*"),
                Question("gender", "Speaker gender", ["female", "male"], audio="car2")])
# {'car1': {'turn': ...}, 'car2': {'turn': ..., 'gender': ...}}

Ask in the language of the clip (Question(..., lang="zh") with Chinese options for Chinese speech): the DuplexJev connectors were trained with language-matched prompts. Released weights, results and licences: https://huggingface.co/adventists-ai. Local copies of the encoder and LLM: from_pretrained(..., text_model=..., audio_model=...), also offline.

Serve with tick batching: duplexjev serve --model <checkpoint> --tick-ms 160.

0.2.1: audio is padded to whole audio tokens at the end instead of the start (start padding cost up to 6 points on emotion); text_model / audio_model overrides work offline.

Project: https://github.com/adventists-ai/duplexjev · License: Apache-2.0

Metadata

Release files for duplexjev 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for duplexjev 0.2.2
File Size Uploaded
duplexjev-0.2.2.tar.gz 30.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for duplexjev 0.2.2
File Interpreter ABI Platform
duplexjev-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 53.3 kB

Release files / duplexjev-0.2.2.tar.gz

Download URL duplexjev-0.2.2.tar.gz
Size 30.5 kB
Tags Source
SHA-256 checksum
How to use checksums
dcbcd38efc7e17601b859e79feff3f779eeea984b0534a2f50b03f7921ab405b
BLAKE2b-256 checksum
How to use checksums
2f83baf6f9e1d9db913914fd1fbabbc20238335682e4c29efc7f57256f483ad0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / duplexjev-0.2.2-py3-none-any.whl

Download URL duplexjev-0.2.2-py3-none-any.whl
Size 22.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0f2b9a16b12b789ee1ed933a5b85614a9d99932a49bbf80f3a906c7a1bfbbef6
BLAKE2b-256 checksum
How to use checksums
62ee1400274a211ce769548c81c1e93240c41c563375bb9a5cdbee5bd0ec4bcb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release history Release notifications | RSS feed

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page