livekit-plugins-tenms 0.1.1__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.
- livekit_plugins_tenms-0.1.1/.gitignore +7 -0
- livekit_plugins_tenms-0.1.1/PKG-INFO +57 -0
- livekit_plugins_tenms-0.1.1/livekit/plugins/tenms/__init__.py +53 -0
- livekit_plugins_tenms-0.1.1/livekit/plugins/tenms/log.py +3 -0
- livekit_plugins_tenms-0.1.1/livekit/plugins/tenms/py.typed +0 -0
- livekit_plugins_tenms-0.1.1/livekit/plugins/tenms/version.py +1 -0
- livekit_plugins_tenms-0.1.1/pyproject.toml +71 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: livekit-plugins-tenms
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Tenms (Focus noise/echo/speaker isolation, Turn end-of-turn + interruption classification, Pulse quality) for LiveKit Agents
|
|
5
|
+
Project-URL: Homepage, https://tenms.cloud
|
|
6
|
+
Project-URL: Documentation, https://tenms.cloud/docs
|
|
7
|
+
Author: Tenms
|
|
8
|
+
License-Expression: LicenseRef-Proprietary
|
|
9
|
+
Keywords: livekit,livekit-agents,noise cancellation,tenms,turn detection,vad,voice agents
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
21
|
+
Classifier: Typing :: Typed
|
|
22
|
+
Requires-Python: >=3.10
|
|
23
|
+
Requires-Dist: livekit-agents<1.9,>=1.8
|
|
24
|
+
Requires-Dist: tenms[livekit]<0.2,>=0.1.1
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
|
|
27
|
+
# livekit-plugins-tenms
|
|
28
|
+
|
|
29
|
+
[Tenms](https://tenms.cloud) for [LiveKit Agents](https://docs.livekit.io/agents/) (tested with livekit-agents 1.8):
|
|
30
|
+
|
|
31
|
+
* **Focus**: agent echo, background noise and other voices removed from the caller's audio
|
|
32
|
+
(`AudioInputOptions(noise_cancellation=call.noise_cancellation())`)
|
|
33
|
+
* **Turn**: VAD gated against echo and backchannels, prosodic end-of-turn detection, and
|
|
34
|
+
barge-in / backchannel / noise / other-speaker classification of interruptions
|
|
35
|
+
* **Pulse**: live call quality and a call summary at the end of the call
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
pip install livekit-plugins-tenms
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
from livekit.agents import AgentSession, room_io
|
|
43
|
+
from livekit.plugins import tenms
|
|
44
|
+
|
|
45
|
+
async def entrypoint(ctx):
|
|
46
|
+
call = tenms.TenmsLiveKit() # license from $TENMS_LICENSE (https://app.tenms.cloud)
|
|
47
|
+
session = AgentSession(stt=..., llm=..., tts=..., vad=call.vad(),
|
|
48
|
+
turn_handling={"turn_detection": call.turn_detector()})
|
|
49
|
+
await session.start(agent=tenms.TenmsAgent(call, instructions="..."), room=ctx.room,
|
|
50
|
+
room_options=room_io.RoomOptions(audio_input=room_io.AudioInputOptions(
|
|
51
|
+
noise_cancellation=call.noise_cancellation())))
|
|
52
|
+
call.attach(session)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
This package re-exports `tenms.livekit` from the [`tenms`](https://pypi.org/project/tenms/) SDK.
|
|
56
|
+
A Tenms license is required: create one at https://app.tenms.cloud and set `TENMS_LICENSE`.
|
|
57
|
+
Documentation: https://tenms.cloud/docs
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""LiveKit Agents plugin for Tenms (``livekit-plugins-tenms``).
|
|
2
|
+
|
|
3
|
+
from livekit.plugins import tenms
|
|
4
|
+
|
|
5
|
+
call = tenms.TenmsLiveKit()
|
|
6
|
+
session = AgentSession(vad=call.vad(), turn_handling={"turn_detection": call.turn_detector()}, ...)
|
|
7
|
+
await session.start(agent=tenms.TenmsAgent(call, instructions="..."), room=ctx.room,
|
|
8
|
+
room_options=room_io.RoomOptions(audio_input=room_io.AudioInputOptions(
|
|
9
|
+
noise_cancellation=call.noise_cancellation())))
|
|
10
|
+
call.attach(session)
|
|
11
|
+
|
|
12
|
+
See :mod:`tenms.livekit` for details.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from livekit.agents import Plugin
|
|
16
|
+
|
|
17
|
+
from tenms.livekit import (
|
|
18
|
+
VAD,
|
|
19
|
+
TenmsAgent,
|
|
20
|
+
TenmsAudioOutput,
|
|
21
|
+
TenmsFocus,
|
|
22
|
+
TenmsLiveKit,
|
|
23
|
+
TenmsSession,
|
|
24
|
+
TurnDetector,
|
|
25
|
+
gate_stt_events,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
from .log import logger
|
|
29
|
+
from .version import __version__
|
|
30
|
+
|
|
31
|
+
Focus = TenmsFocus
|
|
32
|
+
"""Alias: ``noise_cancellation=tenms.Focus()``."""
|
|
33
|
+
|
|
34
|
+
__all__ = [
|
|
35
|
+
"VAD",
|
|
36
|
+
"Focus",
|
|
37
|
+
"TenmsAgent",
|
|
38
|
+
"TenmsAudioOutput",
|
|
39
|
+
"TenmsFocus",
|
|
40
|
+
"TenmsLiveKit",
|
|
41
|
+
"TenmsSession",
|
|
42
|
+
"TurnDetector",
|
|
43
|
+
"gate_stt_events",
|
|
44
|
+
"__version__",
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class TenmsPlugin(Plugin):
|
|
49
|
+
def __init__(self) -> None:
|
|
50
|
+
super().__init__(__name__, __version__, __package__, logger)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
Plugin.register_plugin(TenmsPlugin())
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.1"
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling>=1.27"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "livekit-plugins-tenms"
|
|
7
|
+
version = "0.1.1"
|
|
8
|
+
description = "Tenms (Focus noise/echo/speaker isolation, Turn end-of-turn + interruption classification, Pulse quality) for LiveKit Agents"
|
|
9
|
+
readme = { content-type = "text/markdown", text = """
|
|
10
|
+
# livekit-plugins-tenms
|
|
11
|
+
|
|
12
|
+
[Tenms](https://tenms.cloud) for [LiveKit Agents](https://docs.livekit.io/agents/) (tested with livekit-agents 1.8):
|
|
13
|
+
|
|
14
|
+
* **Focus**: agent echo, background noise and other voices removed from the caller's audio
|
|
15
|
+
(`AudioInputOptions(noise_cancellation=call.noise_cancellation())`)
|
|
16
|
+
* **Turn**: VAD gated against echo and backchannels, prosodic end-of-turn detection, and
|
|
17
|
+
barge-in / backchannel / noise / other-speaker classification of interruptions
|
|
18
|
+
* **Pulse**: live call quality and a call summary at the end of the call
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
pip install livekit-plugins-tenms
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
from livekit.agents import AgentSession, room_io
|
|
26
|
+
from livekit.plugins import tenms
|
|
27
|
+
|
|
28
|
+
async def entrypoint(ctx):
|
|
29
|
+
call = tenms.TenmsLiveKit() # license from $TENMS_LICENSE (https://app.tenms.cloud)
|
|
30
|
+
session = AgentSession(stt=..., llm=..., tts=..., vad=call.vad(),
|
|
31
|
+
turn_handling={"turn_detection": call.turn_detector()})
|
|
32
|
+
await session.start(agent=tenms.TenmsAgent(call, instructions="..."), room=ctx.room,
|
|
33
|
+
room_options=room_io.RoomOptions(audio_input=room_io.AudioInputOptions(
|
|
34
|
+
noise_cancellation=call.noise_cancellation())))
|
|
35
|
+
call.attach(session)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
This package re-exports `tenms.livekit` from the [`tenms`](https://pypi.org/project/tenms/) SDK.
|
|
39
|
+
A Tenms license is required: create one at https://app.tenms.cloud and set `TENMS_LICENSE`.
|
|
40
|
+
Documentation: https://tenms.cloud/docs
|
|
41
|
+
""" }
|
|
42
|
+
requires-python = ">=3.10"
|
|
43
|
+
license = "LicenseRef-Proprietary"
|
|
44
|
+
authors = [{ name = "Tenms" }]
|
|
45
|
+
keywords = ["livekit", "livekit-agents", "voice agents", "noise cancellation", "turn detection", "vad", "tenms"]
|
|
46
|
+
classifiers = [
|
|
47
|
+
"Development Status :: 3 - Alpha",
|
|
48
|
+
"Intended Audience :: Developers",
|
|
49
|
+
"Operating System :: OS Independent",
|
|
50
|
+
"Programming Language :: Python :: 3",
|
|
51
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
52
|
+
"Programming Language :: Python :: 3.10",
|
|
53
|
+
"Programming Language :: Python :: 3.11",
|
|
54
|
+
"Programming Language :: Python :: 3.12",
|
|
55
|
+
"Programming Language :: Python :: 3.13",
|
|
56
|
+
"Topic :: Multimedia :: Sound/Audio :: Speech",
|
|
57
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
58
|
+
"Typing :: Typed",
|
|
59
|
+
]
|
|
60
|
+
# Keep the tenms range in step with python/pyproject.toml: same release train (0.1.x).
|
|
61
|
+
dependencies = ["tenms[livekit]>=0.1.1,<0.2", "livekit-agents>=1.8,<1.9"]
|
|
62
|
+
|
|
63
|
+
[project.urls]
|
|
64
|
+
Homepage = "https://tenms.cloud"
|
|
65
|
+
Documentation = "https://tenms.cloud/docs"
|
|
66
|
+
|
|
67
|
+
[tool.hatch.build.targets.wheel]
|
|
68
|
+
packages = ["livekit"]
|
|
69
|
+
|
|
70
|
+
[tool.hatch.build.targets.sdist]
|
|
71
|
+
include = ["livekit", "pyproject.toml"]
|