pipecat-respeecher 0.1.1__tar.gz → 0.1.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.
- pipecat_respeecher-0.1.3/CHANGELOG.md +30 -0
- {pipecat_respeecher-0.1.1/src/pipecat_respeecher.egg-info → pipecat_respeecher-0.1.3}/PKG-INFO +6 -2
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/README.md +4 -1
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/example-ukrainian.py +1 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/example.py +1 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/pyproject.toml +2 -1
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/src/pipecat_respeecher/tts.py +23 -1
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3/src/pipecat_respeecher.egg-info}/PKG-INFO +6 -2
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/src/pipecat_respeecher.egg-info/SOURCES.txt +1 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/uv.lock +2 -2
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/.gitignore +0 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/.python-version +0 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/LICENSE +0 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/env.example +0 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/setup.cfg +0 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/src/pipecat_respeecher/__init__.py +0 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/src/pipecat_respeecher.egg-info/dependency_links.txt +0 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/src/pipecat_respeecher.egg-info/requires.txt +0 -0
- {pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/src/pipecat_respeecher.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.1.3] - 2026-02-06
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Increased timeout for audio contexts.
|
|
13
|
+
|
|
14
|
+
## [0.1.2] - 2026-01-26
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Made the reconnection logic more robust.
|
|
19
|
+
|
|
20
|
+
## [0.1.1] - 2026-01-16
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Adjusted the README and the publishing metadata.
|
|
25
|
+
|
|
26
|
+
## [0.1.0] - 2026-01-16
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- Initial release.
|
{pipecat_respeecher-0.1.1/src/pipecat_respeecher.egg-info → pipecat_respeecher-0.1.3}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pipecat-respeecher
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: Respeecher real-time TTS plugin for Pipecat
|
|
5
5
|
Author-email: Respeecher <nv@respeecher.com>
|
|
6
6
|
Maintainer-email: Respeecher <nv@respeecher.com>
|
|
@@ -8,6 +8,7 @@ License-Expression: BSD-2-Clause
|
|
|
8
8
|
Project-URL: Homepage, https://www.respeecher.com/real-time-tts-api
|
|
9
9
|
Project-URL: Documentation, https://space.respeecher.com/docs
|
|
10
10
|
Project-URL: Source, https://github.com/respeecher/pipecat-respeecher
|
|
11
|
+
Project-URL: Changelog, https://github.com/respeecher/pipecat-respeecher/blob/main/CHANGELOG.md
|
|
11
12
|
Keywords: tts,pipecat-ai,pipecat
|
|
12
13
|
Classifier: Intended Audience :: Developers
|
|
13
14
|
Classifier: Operating System :: OS Independent
|
|
@@ -25,7 +26,7 @@ Dynamic: license-file
|
|
|
25
26
|
|
|
26
27
|
# Pipecat Respeecher Real-Time TTS Integration
|
|
27
28
|
|
|
28
|
-
[](https://pypi.python.org/pypi/respeecher)
|
|
29
|
+
[](https://pypi.python.org/pypi/pipecat-respeecher)
|
|
29
30
|
|
|
30
31
|
This is an official Respeecher integration for [Pipecat](https://pipecat.ai).
|
|
31
32
|
|
|
@@ -70,6 +71,9 @@ other [supported Pipecat service](https://docs.pipecat.ai/server/services/suppor
|
|
|
70
71
|
|
|
71
72
|
## Example Snippets
|
|
72
73
|
|
|
74
|
+
**Note:** we recommend setting `audio_out_sample_rate=22050` in `PipelineParams`
|
|
75
|
+
like in [`example.py`](./example.py) for best results.
|
|
76
|
+
|
|
73
77
|
### Minimal Example
|
|
74
78
|
|
|
75
79
|
```python
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Pipecat Respeecher Real-Time TTS Integration
|
|
2
2
|
|
|
3
|
-
[](https://pypi.python.org/pypi/respeecher)
|
|
3
|
+
[](https://pypi.python.org/pypi/pipecat-respeecher)
|
|
4
4
|
|
|
5
5
|
This is an official Respeecher integration for [Pipecat](https://pipecat.ai).
|
|
6
6
|
|
|
@@ -45,6 +45,9 @@ other [supported Pipecat service](https://docs.pipecat.ai/server/services/suppor
|
|
|
45
45
|
|
|
46
46
|
## Example Snippets
|
|
47
47
|
|
|
48
|
+
**Note:** we recommend setting `audio_out_sample_rate=22050` in `PipelineParams`
|
|
49
|
+
like in [`example.py`](./example.py) for best results.
|
|
50
|
+
|
|
48
51
|
### Minimal Example
|
|
49
52
|
|
|
50
53
|
```python
|
|
@@ -148,6 +148,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
|
|
148
148
|
params=PipelineParams(
|
|
149
149
|
enable_metrics=True,
|
|
150
150
|
enable_usage_metrics=True,
|
|
151
|
+
audio_out_sample_rate=22050,
|
|
151
152
|
),
|
|
152
153
|
idle_timeout_secs=runner_args.pipeline_idle_timeout_secs,
|
|
153
154
|
observers=[RTVIObserver(rtvi), whisker],
|
|
@@ -143,6 +143,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
|
|
143
143
|
params=PipelineParams(
|
|
144
144
|
enable_metrics=True,
|
|
145
145
|
enable_usage_metrics=True,
|
|
146
|
+
audio_out_sample_rate=22050,
|
|
146
147
|
),
|
|
147
148
|
idle_timeout_secs=runner_args.pipeline_idle_timeout_secs,
|
|
148
149
|
observers=[RTVIObserver(rtvi), whisker],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "pipecat-respeecher"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.3"
|
|
4
4
|
description = "Respeecher real-time TTS plugin for Pipecat"
|
|
5
5
|
license = "BSD-2-Clause"
|
|
6
6
|
license-files = ["LICENSE"]
|
|
@@ -38,6 +38,7 @@ dev = [
|
|
|
38
38
|
Homepage = "https://www.respeecher.com/real-time-tts-api"
|
|
39
39
|
Documentation = "https://space.respeecher.com/docs"
|
|
40
40
|
Source = "https://github.com/respeecher/pipecat-respeecher"
|
|
41
|
+
Changelog = "https://github.com/respeecher/pipecat-respeecher/blob/main/CHANGELOG.md"
|
|
41
42
|
|
|
42
43
|
[tool.ruff.lint]
|
|
43
44
|
ignore = ["E402"]
|
|
@@ -11,6 +11,7 @@ import base64
|
|
|
11
11
|
import json
|
|
12
12
|
import uuid
|
|
13
13
|
from typing import AsyncGenerator, Optional
|
|
14
|
+
import asyncio
|
|
14
15
|
|
|
15
16
|
from loguru import logger
|
|
16
17
|
from pydantic import BaseModel, TypeAdapter, ValidationError
|
|
@@ -198,7 +199,14 @@ class RespeecherTTSService(AudioContextTTSService, TTSService):
|
|
|
198
199
|
|
|
199
200
|
url += f"/tts/websocket?api_key={self._api_key}"
|
|
200
201
|
|
|
201
|
-
self._websocket = await websocket_connect(
|
|
202
|
+
self._websocket = await websocket_connect(
|
|
203
|
+
url,
|
|
204
|
+
compression=None,
|
|
205
|
+
ping_interval=2.5,
|
|
206
|
+
ping_timeout=2.5,
|
|
207
|
+
close_timeout=2,
|
|
208
|
+
)
|
|
209
|
+
|
|
202
210
|
await self._call_event_handler("on_connected")
|
|
203
211
|
except Exception as e:
|
|
204
212
|
logger.error(f"{self} initialization error: {e}")
|
|
@@ -302,6 +310,7 @@ class RespeecherTTSService(AudioContextTTSService, TTSService):
|
|
|
302
310
|
while True:
|
|
303
311
|
await self._receive_messages_until_closed()
|
|
304
312
|
logger.info(f"{self} Respeecher disconnected, reconnecting")
|
|
313
|
+
await self._disconnect_websocket()
|
|
305
314
|
await self._connect_websocket()
|
|
306
315
|
|
|
307
316
|
@traced_tts
|
|
@@ -341,3 +350,16 @@ class RespeecherTTSService(AudioContextTTSService, TTSService):
|
|
|
341
350
|
yield None
|
|
342
351
|
except Exception as e:
|
|
343
352
|
yield ErrorFrame(error=f"{self} exception: {e}")
|
|
353
|
+
|
|
354
|
+
async def _handle_audio_context(self, context_id: str):
|
|
355
|
+
queue = self._contexts[context_id]
|
|
356
|
+
running = True
|
|
357
|
+
while running:
|
|
358
|
+
try:
|
|
359
|
+
frame = await asyncio.wait_for(queue.get(), timeout=10)
|
|
360
|
+
if frame:
|
|
361
|
+
await self.push_frame(frame)
|
|
362
|
+
running = frame is not None
|
|
363
|
+
except asyncio.TimeoutError:
|
|
364
|
+
logger.trace(f"{self} time out on audio context {context_id}")
|
|
365
|
+
break
|
{pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3/src/pipecat_respeecher.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pipecat-respeecher
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: Respeecher real-time TTS plugin for Pipecat
|
|
5
5
|
Author-email: Respeecher <nv@respeecher.com>
|
|
6
6
|
Maintainer-email: Respeecher <nv@respeecher.com>
|
|
@@ -8,6 +8,7 @@ License-Expression: BSD-2-Clause
|
|
|
8
8
|
Project-URL: Homepage, https://www.respeecher.com/real-time-tts-api
|
|
9
9
|
Project-URL: Documentation, https://space.respeecher.com/docs
|
|
10
10
|
Project-URL: Source, https://github.com/respeecher/pipecat-respeecher
|
|
11
|
+
Project-URL: Changelog, https://github.com/respeecher/pipecat-respeecher/blob/main/CHANGELOG.md
|
|
11
12
|
Keywords: tts,pipecat-ai,pipecat
|
|
12
13
|
Classifier: Intended Audience :: Developers
|
|
13
14
|
Classifier: Operating System :: OS Independent
|
|
@@ -25,7 +26,7 @@ Dynamic: license-file
|
|
|
25
26
|
|
|
26
27
|
# Pipecat Respeecher Real-Time TTS Integration
|
|
27
28
|
|
|
28
|
-
[](https://pypi.python.org/pypi/respeecher)
|
|
29
|
+
[](https://pypi.python.org/pypi/pipecat-respeecher)
|
|
29
30
|
|
|
30
31
|
This is an official Respeecher integration for [Pipecat](https://pipecat.ai).
|
|
31
32
|
|
|
@@ -70,6 +71,9 @@ other [supported Pipecat service](https://docs.pipecat.ai/server/services/suppor
|
|
|
70
71
|
|
|
71
72
|
## Example Snippets
|
|
72
73
|
|
|
74
|
+
**Note:** we recommend setting `audio_out_sample_rate=22050` in `PipelineParams`
|
|
75
|
+
like in [`example.py`](./example.py) for best results.
|
|
76
|
+
|
|
73
77
|
### Minimal Example
|
|
74
78
|
|
|
75
79
|
```python
|
|
@@ -740,7 +740,7 @@ name = "exceptiongroup"
|
|
|
740
740
|
version = "1.3.1"
|
|
741
741
|
source = { registry = "https://pypi.org/simple" }
|
|
742
742
|
dependencies = [
|
|
743
|
-
{ name = "typing-extensions", marker = "python_full_version < '3.
|
|
743
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.11'" },
|
|
744
744
|
]
|
|
745
745
|
sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" }
|
|
746
746
|
wheels = [
|
|
@@ -2444,7 +2444,7 @@ wheels = [
|
|
|
2444
2444
|
|
|
2445
2445
|
[[package]]
|
|
2446
2446
|
name = "pipecat-respeecher"
|
|
2447
|
-
version = "0.1.
|
|
2447
|
+
version = "0.1.2"
|
|
2448
2448
|
source = { editable = "." }
|
|
2449
2449
|
dependencies = [
|
|
2450
2450
|
{ name = "pipecat-ai" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/src/pipecat_respeecher.egg-info/requires.txt
RENAMED
|
File without changes
|
{pipecat_respeecher-0.1.1 → pipecat_respeecher-0.1.3}/src/pipecat_respeecher.egg-info/top_level.txt
RENAMED
|
File without changes
|