livekit-plugins-duplexjev 0.3.1__tar.gz → 0.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (16) hide show
  1. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/CHANGELOG.md +8 -0
  2. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/PKG-INFO +5 -4
  3. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/README.md +4 -3
  4. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/livekit/plugins/duplexjev/turn_detector.py +5 -3
  5. livekit_plugins_duplexjev-0.3.3/livekit/plugins/duplexjev/version.py +1 -0
  6. livekit_plugins_duplexjev-0.3.1/livekit/plugins/duplexjev/version.py +0 -1
  7. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/.gitignore +0 -0
  8. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/LICENSE +0 -0
  9. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/examples/agent.py +0 -0
  10. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/livekit/plugins/duplexjev/__init__.py +0 -0
  11. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/livekit/plugins/duplexjev/log.py +0 -0
  12. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/livekit/plugins/duplexjev/py.typed +0 -0
  13. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/pyproject.toml +0 -0
  14. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/tests/conftest.py +0 -0
  15. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/tests/test_live.py +0 -0
  16. {livekit_plugins_duplexjev-0.3.1 → livekit_plugins_duplexjev-0.3.3}/tests/test_turn_detector.py +0 -0
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.3 (2026-10-13)
4
+
5
+ - The free trial API now serves DuplexJev-32B-Para v1.2; the startup hint and README say so.
6
+
7
+ ## 0.3.2 (2026-10-13)
8
+
9
+ - Sends an `X-DuplexJev-Client: livekit-plugins-duplexjev/<version>` header (no personal data), so trial-API usage can be counted per integration.
10
+
3
11
  ## 0.3.1 (2026-10-13)
4
12
 
5
13
  - Logs a one-time hint when the free trial API is used: it runs DuplexJev-4B-Para, so
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: livekit-plugins-duplexjev
3
- Version: 0.3.1
3
+ Version: 0.3.3
4
4
  Summary: Audio end-of-turn detection for LiveKit Agents with DuplexJev: turn state, emotion and non-verbal sounds from one request, no transcript needed.
5
5
  Project-URL: Homepage, https://github.com/adventists-ai/duplexjev/tree/main/integrations/livekit
6
6
  Project-URL: Models, https://huggingface.co/adventists-ai/DuplexJev-4B-Para
@@ -46,8 +46,9 @@ Tested with `livekit-agents` 1.8.6. Maintained by Adventists.ai (AI降临派).
46
46
  > **Getting the published turn-taking numbers.** LiveKit eot-bench (English, false cut-offs at 300 ms): **20.0%** for
47
47
  > DuplexJev-32B-Para v1.2 with the agent's previous message, 23.5% audio only, vs 35.2% for Smart Turn v3.2. That needs
48
48
  > DuplexJev-32B-Para **v1.2 on your own GPU** behind `duplexjev gateway` >= 0.6 (see *Run the model yourself*), the
49
- > default `readout="turn"`, and the agent's previous message (below). The free trial API runs the smaller DuplexJev-4B-Para
50
- > (no v1.2 turn-taking update): use it to try the plugin, not to judge turn-taking quality.
49
+ > default `readout="turn"`, and the agent's previous message (below). Since 2026-10-13 the free trial API serves the same
50
+ > DuplexJev-32B-Para v1.2, but it is rate limited (30 requests per minute) and served from mainland China: fine for trying
51
+ > the plugin, self-host for a live agent or a benchmark run.
51
52
 
52
53
  ## Install
53
54
 
@@ -98,7 +99,7 @@ commits the turn, as with any turn detector, because the LLM needs the text.
98
99
 
99
100
  ## Run the model yourself (recommended for real-time)
100
101
 
101
- The default URL is our free trial API (rate limited to 30 requests per minute; the round trip from outside mainland China adds network latency; it runs the smaller DuplexJev-4B-Para without the v1.2 turn-taking update). For a live agent, serve the model next to it. For turn-taking, use DuplexJev-32B-Para v1.2 on one 80 GB GPU (the eot-bench numbers above):
102
+ The default URL is our free trial API (rate limited to 30 requests per minute; the round trip from outside mainland China adds network latency; since 2026-10-13 it serves DuplexJev-32B-Para v1.2). For a live agent, serve the model next to it. For turn-taking, use DuplexJev-32B-Para v1.2 on one 80 GB GPU (the eot-bench numbers above):
102
103
 
103
104
  ```bash
104
105
  pip install "vllm[audio]>=0.29" duplexjev-vllm "duplexjev[server]>=0.6"
@@ -20,8 +20,9 @@ Tested with `livekit-agents` 1.8.6. Maintained by Adventists.ai (AI降临派).
20
20
  > **Getting the published turn-taking numbers.** LiveKit eot-bench (English, false cut-offs at 300 ms): **20.0%** for
21
21
  > DuplexJev-32B-Para v1.2 with the agent's previous message, 23.5% audio only, vs 35.2% for Smart Turn v3.2. That needs
22
22
  > DuplexJev-32B-Para **v1.2 on your own GPU** behind `duplexjev gateway` >= 0.6 (see *Run the model yourself*), the
23
- > default `readout="turn"`, and the agent's previous message (below). The free trial API runs the smaller DuplexJev-4B-Para
24
- > (no v1.2 turn-taking update): use it to try the plugin, not to judge turn-taking quality.
23
+ > default `readout="turn"`, and the agent's previous message (below). Since 2026-10-13 the free trial API serves the same
24
+ > DuplexJev-32B-Para v1.2, but it is rate limited (30 requests per minute) and served from mainland China: fine for trying
25
+ > the plugin, self-host for a live agent or a benchmark run.
25
26
 
26
27
  ## Install
27
28
 
@@ -72,7 +73,7 @@ commits the turn, as with any turn detector, because the LLM needs the text.
72
73
 
73
74
  ## Run the model yourself (recommended for real-time)
74
75
 
75
- The default URL is our free trial API (rate limited to 30 requests per minute; the round trip from outside mainland China adds network latency; it runs the smaller DuplexJev-4B-Para without the v1.2 turn-taking update). For a live agent, serve the model next to it. For turn-taking, use DuplexJev-32B-Para v1.2 on one 80 GB GPU (the eot-bench numbers above):
76
+ The default URL is our free trial API (rate limited to 30 requests per minute; the round trip from outside mainland China adds network latency; since 2026-10-13 it serves DuplexJev-32B-Para v1.2). For a live agent, serve the model next to it. For turn-taking, use DuplexJev-32B-Para v1.2 on one 80 GB GPU (the eot-bench numbers above):
76
77
 
77
78
  ```bash
78
79
  pip install "vllm[audio]>=0.29" duplexjev-vllm "duplexjev[server]>=0.6"
@@ -158,6 +158,8 @@ class TurnDetector:
158
158
  self._decide_url = self._base_url + "/v1/decide"
159
159
  api_key = api_key or os.environ.get("DUPLEXJEV_API_KEY")
160
160
  self._headers = {"Authorization": f"Bearer {api_key}"} if api_key else {}
161
+ from .version import __version__ as _v
162
+ self._headers["X-DuplexJev-Client"] = f"livekit-plugins-duplexjev/{_v}" # usage stats on the trial API
161
163
  self._lang = lang
162
164
  self._unlikely_threshold = unlikely_threshold
163
165
  self._backchannel_threshold = backchannel_threshold
@@ -170,9 +172,9 @@ class TurnDetector:
170
172
  )
171
173
  self._prediction_timeout = prediction_timeout
172
174
  if self._base_url == DEFAULT_URL:
173
- logger.info("Using the free DuplexJev trial API (DuplexJev-4B-Para, rate limited). "
174
- "For the turn-taking quality reported on eot-bench, serve DuplexJev-32B-Para v1.2 behind "
175
- "`duplexjev gateway` >= 0.6 and pass its URL; see the README.")
175
+ logger.info("Using the free DuplexJev trial API (DuplexJev-32B-Para v1.2, 30 requests per minute, served "
176
+ "from mainland China). For a live agent, serve the model yourself behind `duplexjev gateway` "
177
+ ">= 0.6 and pass its URL; see the README.")
176
178
  self._fallback_probability = fallback_probability
177
179
  self._http_session = http_session
178
180
 
@@ -0,0 +1 @@
1
+ __version__ = "0.3.3"
@@ -1 +0,0 @@
1
- __version__ = "0.3.1"