Review comments by aconchillo.
This commit is contained in:
@@ -45,7 +45,7 @@ aws = [ "boto3~=1.35.99" ]
|
|||||||
azure = [ "azure-cognitiveservices-speech~=1.42.0"]
|
azure = [ "azure-cognitiveservices-speech~=1.42.0"]
|
||||||
canonical = [ "aiofiles~=24.1.0" ]
|
canonical = [ "aiofiles~=24.1.0" ]
|
||||||
cartesia = [ "cartesia~=1.3.1", "websockets~=13.1" ]
|
cartesia = [ "cartesia~=1.3.1", "websockets~=13.1" ]
|
||||||
neuphonic = [ "pyneuphonic~=1.5.11", "websockets~=13.1" ]
|
neuphonic = [ "pyneuphonic~=1.5.12", "websockets~=13.1" ]
|
||||||
cerebras = []
|
cerebras = []
|
||||||
deepseek = []
|
deepseek = []
|
||||||
daily = [ "daily-python~=0.15.0" ]
|
daily = [ "daily-python~=0.15.0" ]
|
||||||
|
|||||||
@@ -27,8 +27,7 @@ from pipecat.frames.frames import (
|
|||||||
TTSStoppedFrame,
|
TTSStoppedFrame,
|
||||||
)
|
)
|
||||||
from pipecat.processors.frame_processor import FrameDirection
|
from pipecat.processors.frame_processor import FrameDirection
|
||||||
from pipecat.services.ai_services import TTSService, WordTTSService
|
from pipecat.services.ai_services import InterruptibleTTSService, TTSService
|
||||||
from pipecat.services.websocket_service import WebsocketService
|
|
||||||
from pipecat.transcriptions.language import Language
|
from pipecat.transcriptions.language import Language
|
||||||
|
|
||||||
# See .env.example for Neuphonic configuration needed
|
# See .env.example for Neuphonic configuration needed
|
||||||
@@ -71,7 +70,7 @@ def language_to_neuphonic_lang_code(language: Language) -> Optional[str]:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
class NeuphonicTTSService(WordTTSService, WebsocketService):
|
class NeuphonicTTSService(InterruptibleTTSService):
|
||||||
class InputParams(BaseModel):
|
class InputParams(BaseModel):
|
||||||
language: Optional[Language] = Language.EN
|
language: Optional[Language] = Language.EN
|
||||||
speed: Optional[float] = 1.0
|
speed: Optional[float] = 1.0
|
||||||
@@ -88,7 +87,7 @@ class NeuphonicTTSService(WordTTSService, WebsocketService):
|
|||||||
params: InputParams = InputParams(),
|
params: InputParams = InputParams(),
|
||||||
**kwargs,
|
**kwargs,
|
||||||
):
|
):
|
||||||
WordTTSService.__init__(
|
super().__init__(
|
||||||
self,
|
self,
|
||||||
aggregate_sentences=True,
|
aggregate_sentences=True,
|
||||||
push_text_frames=False,
|
push_text_frames=False,
|
||||||
@@ -97,7 +96,6 @@ class NeuphonicTTSService(WordTTSService, WebsocketService):
|
|||||||
sample_rate=sample_rate,
|
sample_rate=sample_rate,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
)
|
)
|
||||||
WebsocketService.__init__(self)
|
|
||||||
|
|
||||||
self._api_key = api_key
|
self._api_key = api_key
|
||||||
self._url = url
|
self._url = url
|
||||||
@@ -232,7 +230,6 @@ class NeuphonicTTSService(WordTTSService, WebsocketService):
|
|||||||
msg = json.loads(message)
|
msg = json.loads(message)
|
||||||
if msg.get("data", {}).get("audio") is not None:
|
if msg.get("data", {}).get("audio") is not None:
|
||||||
await self.stop_ttfb_metrics()
|
await self.stop_ttfb_metrics()
|
||||||
self.start_word_timestamps()
|
|
||||||
|
|
||||||
audio = base64.b64decode(msg["data"]["audio"])
|
audio = base64.b64decode(msg["data"]["audio"])
|
||||||
frame = TTSAudioRawFrame(audio, self.sample_rate, 1)
|
frame = TTSAudioRawFrame(audio, self.sample_rate, 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user