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

Release files for duplexjev 0.2.1

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.1
File Size Uploaded
duplexjev-0.2.1.tar.gz 27.8 kB Details

Built distribution (wheel)

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

Total release size: 50.2 kB

Release files / duplexjev-0.2.1.tar.gz

Download URL duplexjev-0.2.1.tar.gz
Size 27.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6a5d42c12f37271035ee6d5412ec1eb786078c880711509c356d824ad1cc9acb
BLAKE2b-256 checksum
How to use checksums
99d3941932f35003b38629627b745354c333e032519155e9108081a2070f7c74
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.1-py3-none-any.whl

Download URL duplexjev-0.2.1-py3-none-any.whl
Size 22.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0f7ccd8e4ed37831965d4b8b746385b71c2e4d3a37e88434c72bde8044acf5f7
BLAKE2b-256 checksum
How to use checksums
a2ff2d02863eaabb572434530696151d7c531c6f6a90f6bee465b452f55da28d
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

This release

0.2.1 This release

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